<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[171951] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/171951">171951</a></dd>
<dt>Author</dt> <dd>bdakin@apple.com</dd>
<dt>Date</dt> <dd>2014-08-01 15:39:52 -0700 (Fri, 01 Aug 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Inspector highlights clipped at the bottom on the page in WK1 views with 
contentInsets
https://bugs.webkit.org/show_bug.cgi?id=135480
-and corresponding-
&lt;rdar://problem/17850323&gt;

Reviewed by Simon Fraser.

unscaledTotalVisibleContentSize() was the main function on Mac that was expected 
to return the rect representing ALL visible content, including content that might 
be in an inset area and obscured by UI elements. This patch re-names that function 
to unscaledVisibleContentSizeIncludingObscuredArea(), and that patch makes that 
function return the right thing in the platformWidget() case.

Re-name.
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::update):

Return platformVisibleContentSizeIncludingObscuredArea() for the platformWidget() 
case and re-name.
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):

This was just wrong. It was returning the big rectangle instead of the small one 
for platformWidget().
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):

New platform functions.
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
(WebCore::ScrollView::unscaledTotalVisibleContentSize): Deleted.
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformVisibleContentRect):
(WebCore::ScrollView::platformVisibleContentSize):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
(WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):

Re-name.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::ensureRootLayer):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorOverlaycpp">trunk/Source/WebCore/inspector/InspectorOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewcpp">trunk/Source/WebCore/platform/ScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformScrollViewh">trunk/Source/WebCore/platform/ScrollView.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosScrollViewIOSmm">trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollViewMacmm">trunk/Source/WebCore/platform/mac/ScrollViewMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/ChangeLog        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -1,3 +1,53 @@
</span><ins>+2014-08-01  Beth Dakin  &lt;bdakin@apple.com&gt;
+
+        Inspector highlights clipped at the bottom on the page in WK1 views with 
+        contentInsets
+        https://bugs.webkit.org/show_bug.cgi?id=135480
+        -and corresponding-
+        &lt;rdar://problem/17850323&gt;
+
+        Reviewed by Simon Fraser.
+
+        unscaledTotalVisibleContentSize() was the main function on Mac that was expected 
+        to return the rect representing ALL visible content, including content that might 
+        be in an inset area and obscured by UI elements. This patch re-names that function 
+        to unscaledVisibleContentSizeIncludingObscuredArea(), and that patch makes that 
+        function return the right thing in the platformWidget() case.
+
+        Re-name.
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::update):
+
+        Return platformVisibleContentSizeIncludingObscuredArea() for the platformWidget() 
+        case and re-name.
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):
+
+        This was just wrong. It was returning the big rectangle instead of the small one 
+        for platformWidget().
+        (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
+
+        New platform functions.
+        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
+        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
+        (WebCore::ScrollView::unscaledTotalVisibleContentSize): Deleted.
+        * platform/ScrollView.h:
+        * platform/ios/ScrollViewIOS.mm:
+        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
+        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
+        * platform/mac/ScrollViewMac.mm:
+        (WebCore::ScrollView::platformVisibleContentRect):
+        (WebCore::ScrollView::platformVisibleContentSize):
+        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
+        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
+
+        Re-name.
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
+        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
+        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
+        (WebCore::RenderLayerCompositor::ensureRootLayer):
+
</ins><span class="cx"> 2014-08-01  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         SVGGlyph wastes space due to padding
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -344,8 +344,8 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     FrameView* overlayView = overlayPage()-&gt;mainFrame().view();
</span><del>-    IntSize viewportSize = view-&gt;unscaledTotalVisibleContentSize();
-    IntSize frameViewFullSize = view-&gt;unscaledTotalVisibleContentSize(ScrollableArea::IncludeScrollbars);
</del><ins>+    IntSize viewportSize = view-&gt;unscaledVisibleContentSizeIncludingObscuredArea();
+    IntSize frameViewFullSize = view-&gt;unscaledVisibleContentSizeIncludingObscuredArea(ScrollableArea::IncludeScrollbars);
</ins><span class="cx">     overlayPage()-&gt;setPageScaleFactor(m_page.pageScaleFactor(), IntPoint());
</span><span class="cx">     frameViewFullSize.scale(m_page.pageScaleFactor());
</span><span class="cx">     overlayView-&gt;resize(frameViewFullSize);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.cpp (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.cpp        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/platform/ScrollView.cpp        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -266,7 +266,7 @@
</span><span class="cx">     return IntRect(IntPoint(m_scrollOffset), expandedIntSize(visibleContentSize));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize ScrollView::unscaledTotalVisibleContentSize(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
</del><ins>+IntSize ScrollView::unscaledVisibleContentSizeIncludingObscuredArea(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
</ins><span class="cx"> {
</span><span class="cx">     if (platformWidget())
</span><span class="cx">         return platformVisibleContentSize(scrollbarInclusion == IncludeScrollbars);
</span><span class="lines">@@ -291,10 +291,10 @@
</span><span class="cx">     
</span><span class="cx"> IntSize ScrollView::unscaledUnobscuredVisibleContentSize(VisibleContentRectIncludesScrollbars scrollbarInclusion) const
</span><span class="cx"> {
</span><del>-    IntSize visibleContentSize = unscaledTotalVisibleContentSize(scrollbarInclusion);
-    
</del><ins>+    IntSize visibleContentSize = unscaledVisibleContentSizeIncludingObscuredArea(scrollbarInclusion);
+
</ins><span class="cx">     if (platformWidget())
</span><del>-        return visibleContentSize;
</del><ins>+        return platformVisibleContentSize(scrollbarInclusion == IncludeScrollbars);
</ins><span class="cx"> 
</span><span class="cx"> #if USE(TILED_BACKING_STORE)
</span><span class="cx">     if (!m_fixedVisibleContentRect.isEmpty())
</span><span class="lines">@@ -1529,6 +1529,16 @@
</span><span class="cx">     return IntSize();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+IntRect ScrollView::platformVisibleContentRectIncludingObscuredArea(bool) const
+{
+    return IntRect();
+}
+
+IntSize ScrollView::platformVisibleContentSizeIncludingObscuredArea(bool) const
+{
+    return IntSize();
+}
+
</ins><span class="cx"> void ScrollView::platformSetContentsSize()
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformScrollViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ScrollView.h (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ScrollView.h        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/platform/ScrollView.h        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -206,9 +206,9 @@
</span><span class="cx">     // visibleContentScaleFactor is usually 1, except when the setting delegatesPageScaling is true and the
</span><span class="cx">     // ScrollView is the main frame; in that case, visibleContentScaleFactor is equal to the page's pageScaleFactor.
</span><span class="cx">     // Ports that don't use pageScaleFactor can treat unscaledUnobscuredVisibleContentSize and visibleContentRect().size() as equivalent.
</span><del>-    // unscaledTotalVisibleContentSize() includes areas in the content that might be obscured by UI elements.
</del><ins>+    // unscaledVisibleContentSizeIncludingObscuredArea() includes areas in the content that might be obscured by UI elements.
</ins><span class="cx">     IntSize unscaledUnobscuredVisibleContentSize(VisibleContentRectIncludesScrollbars = ExcludeScrollbars) const;
</span><del>-    IntSize unscaledTotalVisibleContentSize(VisibleContentRectIncludesScrollbars = ExcludeScrollbars) const;
</del><ins>+    IntSize unscaledVisibleContentSizeIncludingObscuredArea(VisibleContentRectIncludesScrollbars = ExcludeScrollbars) const;
</ins><span class="cx">     virtual float visibleContentScaleFactor() const { return 1; }
</span><span class="cx"> 
</span><span class="cx">     // Functions for getting/setting the size webkit should use to layout the contents. By default this is the same as the visible
</span><span class="lines">@@ -481,6 +481,8 @@
</span><span class="cx">     bool platformCanBlitOnScroll() const;
</span><span class="cx">     IntRect platformVisibleContentRect(bool includeScrollbars) const;
</span><span class="cx">     IntSize platformVisibleContentSize(bool includeScrollbars) const;
</span><ins>+    IntRect platformVisibleContentRectIncludingObscuredArea(bool includeScrollbars) const;
+    IntSize platformVisibleContentSizeIncludingObscuredArea(bool includeScrollbars) const;
</ins><span class="cx">     void platformSetContentsSize();
</span><span class="cx">     IntRect platformContentsToScreen(const IntRect&amp;) const;
</span><span class="cx">     IntPoint platformScreenToContents(const IntPoint&amp;) const;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosScrollViewIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -195,6 +195,16 @@
</span><span class="cx">     return IntSize();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+IntRect ScrollView::platformVisibleContentRectIncludingObscuredArea(bool includeScrollbars) const
+{
+    return platformVisibleContentRect(includeScrollbars);
+}
+
+IntSize ScrollView::platformVisibleContentSizeIncludingObscuredArea(bool includeScrollbars) const
+{
+    return platformVisibleContentSize(includeScrollbars);
+}
+
</ins><span class="cx"> LegacyTileCache* ScrollView::legacyTileCache()
</span><span class="cx"> {
</span><span class="cx">     // Make tile cache pointer available via the main frame only. Tile cache interaction should be managed by
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollViewMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollViewMac.mm (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollViewMac.mm        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/platform/mac/ScrollViewMac.mm        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -141,30 +141,43 @@
</span><span class="cx"> IntRect ScrollView::platformVisibleContentRect(bool includeScrollbars) const
</span><span class="cx"> {
</span><span class="cx">     BEGIN_BLOCK_OBJC_EXCEPTIONS;
</span><ins>+    IntRect visibleContentRect = platformVisibleContentRectIncludingObscuredArea(includeScrollbars);
</ins><span class="cx"> 
</span><del>-    IntRect visibleContentRect = enclosingIntRect([scrollView() documentVisibleRect]);
</del><span class="cx"> #if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101000
</span><span class="cx">     visibleContentRect.move(scrollView().contentInsets.left, scrollView().contentInsets.top);
</span><span class="cx">     visibleContentRect.contract(scrollView().contentInsets.left + scrollView().contentInsets.right, scrollView().contentInsets.top + scrollView().contentInsets.bottom);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    return visibleContentRect;
+    END_BLOCK_OBJC_EXCEPTIONS;
+
+    return IntRect();
+}
+
+IntSize ScrollView::platformVisibleContentSize(bool includeScrollbars) const
+{
+    return platformVisibleContentRect(includeScrollbars).size();
+}
+
+IntRect ScrollView::platformVisibleContentRectIncludingObscuredArea(bool includeScrollbars) const
+{
+    BEGIN_BLOCK_OBJC_EXCEPTIONS;
+    IntRect visibleContentRectIncludingObscuredArea = enclosingIntRect([scrollView() documentVisibleRect]);
+
</ins><span class="cx">     if (includeScrollbars) {
</span><span class="cx">         IntSize frameSize = IntSize([scrollView() frame].size);
</span><del>-#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101000
-        frameSize.contract(scrollView().contentInsets.left + scrollView().contentInsets.right, scrollView().contentInsets.top + scrollView().contentInsets.bottom);
-#endif
-        visibleContentRect.setSize(frameSize);
</del><ins>+        visibleContentRectIncludingObscuredArea.setSize(frameSize);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return visibleContentRect;
</del><ins>+    return visibleContentRectIncludingObscuredArea;
</ins><span class="cx">     END_BLOCK_OBJC_EXCEPTIONS;
</span><span class="cx"> 
</span><span class="cx">     return IntRect();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-IntSize ScrollView::platformVisibleContentSize(bool includeScrollbars) const
</del><ins>+IntSize ScrollView::platformVisibleContentSizeIncludingObscuredArea(bool includeScrollbars) const
</ins><span class="cx"> {
</span><del>-    return platformVisibleContentRect(includeScrollbars).size();
</del><ins>+    return platformVisibleContentRectIncludingObscuredArea(includeScrollbars).size();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void ScrollView::platformSetContentsSize()
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (171950 => 171951)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-08-01 22:33:50 UTC (rev 171950)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-08-01 22:39:52 UTC (rev 171951)
</span><span class="lines">@@ -460,7 +460,7 @@
</span><span class="cx">         rootLayer-&gt;flushCompositingState(visibleRect);
</span><span class="cx"> #else
</span><span class="cx">         // Having a m_clipLayer indicates that we're doing scrolling via GraphicsLayers.
</span><del>-        IntRect visibleRect = m_clipLayer ? IntRect(IntPoint(), frameView.unscaledTotalVisibleContentSize()) : frameView.visibleContentRect();
</del><ins>+        IntRect visibleRect = m_clipLayer ? IntRect(IntPoint(), frameView.unscaledVisibleContentSizeIncludingObscuredArea()) : frameView.visibleContentRect();
</ins><span class="cx">         if (!frameView.exposedRect().isInfinite())
</span><span class="cx">             visibleRect.intersect(IntRect(frameView.exposedRect()));
</span><span class="cx">         rootLayer-&gt;flushCompositingState(visibleRect);
</span><span class="lines">@@ -1562,7 +1562,7 @@
</span><span class="cx"> {
</span><span class="cx">     if (m_clipLayer) {
</span><span class="cx">         const FrameView&amp; frameView = m_renderView.frameView();
</span><del>-        m_clipLayer-&gt;setSize(frameView.unscaledTotalVisibleContentSize());
</del><ins>+        m_clipLayer-&gt;setSize(frameView.unscaledVisibleContentSizeIncludingObscuredArea());
</ins><span class="cx">         m_clipLayer-&gt;setPosition(positionForClipLayer());
</span><span class="cx"> 
</span><span class="cx">         frameViewDidScroll();
</span><span class="lines">@@ -1970,7 +1970,7 @@
</span><span class="cx">         m_rootContentLayer-&gt;setAnchorPoint(FloatPoint3D());
</span><span class="cx">     }
</span><span class="cx">     if (m_clipLayer) {
</span><del>-        m_clipLayer-&gt;setSize(m_renderView.frameView().unscaledTotalVisibleContentSize());
</del><ins>+        m_clipLayer-&gt;setSize(m_renderView.frameView().unscaledVisibleContentSizeIncludingObscuredArea());
</ins><span class="cx">         m_clipLayer-&gt;setPosition(positionForClipLayer());
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -3267,7 +3267,7 @@
</span><span class="cx">             m_clipLayer-&gt;addChild(m_scrollLayer.get());
</span><span class="cx">             m_scrollLayer-&gt;addChild(m_rootContentLayer.get());
</span><span class="cx"> 
</span><del>-            m_clipLayer-&gt;setSize(m_renderView.frameView().unscaledTotalVisibleContentSize());
</del><ins>+            m_clipLayer-&gt;setSize(m_renderView.frameView().unscaledVisibleContentSizeIncludingObscuredArea());
</ins><span class="cx">             m_clipLayer-&gt;setPosition(positionForClipLayer());
</span><span class="cx">             m_clipLayer-&gt;setAnchorPoint(FloatPoint3D());
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>