| Index: third_party/WebKit/crp
|
| ===================================================================
|
| --- third_party/WebKit/crp (revision 0)
|
| +++ third_party/WebKit/crp (revision 0)
|
| @@ -0,0 +1,168 @@
|
| +Index: WebCore/WebCore.base.exp
|
| +===================================================================
|
| +--- WebCore/WebCore.base.exp (revision 50516)
|
| ++++ WebCore/WebCore.base.exp (working copy)
|
| +@@ -688,6 +688,7 @@
|
| + __ZN7WebCore9FrameView21scrollPositionChangedEv
|
| + __ZN7WebCore9FrameView22setBaseBackgroundColorENS_5ColorE
|
| + __ZN7WebCore9FrameView23layoutIfNeededRecursiveEv
|
| ++__ZN7WebCore9FrameView23updateCanHaveScrollbarsEv
|
| + __ZN7WebCore9FrameView29forceLayoutWithPageWidthRangeEffb
|
| + __ZN7WebCore9FrameView29setShouldUpdateWhileOffscreenEb
|
| + __ZN7WebCore9FrameView29syncCompositingStateRecursiveEv
|
| +Index: WebCore/page/FrameView.h
|
| +===================================================================
|
| +--- WebCore/page/FrameView.h (revision 50516)
|
| ++++ WebCore/page/FrameView.h (working copy)
|
| +@@ -72,6 +72,9 @@
|
| + void setMarginWidth(int);
|
| + void setMarginHeight(int);
|
| +
|
| ++ virtual void setCanHaveScrollbars(bool);
|
| ++ void updateCanHaveScrollbars();
|
| ++
|
| + virtual PassRefPtr<Scrollbar> createScrollbar(ScrollbarOrientation);
|
| +
|
| + virtual void setContentsSize(const IntSize&);
|
| +@@ -258,6 +261,7 @@
|
| +
|
| + bool m_doFullRepaint;
|
| +
|
| ++ bool m_canHaveScrollbars;
|
| + bool m_useSlowRepaints;
|
| + bool m_isOverlapped;
|
| + bool m_contentIsOpaque;
|
| +Index: WebCore/page/FrameView.cpp
|
| +===================================================================
|
| +--- WebCore/page/FrameView.cpp (revision 50516)
|
| ++++ WebCore/page/FrameView.cpp (working copy)
|
| +@@ -105,6 +105,7 @@
|
| +
|
| + FrameView::FrameView(Frame* frame)
|
| + : m_frame(frame)
|
| ++ , m_canHaveScrollbars(true)
|
| + , m_slowRepaintObjectCount(0)
|
| + , m_layoutTimer(this, &FrameView::layoutTimerFired)
|
| + , m_layoutRoot(0)
|
| +@@ -219,7 +220,10 @@
|
| + // Reset the document's scrollbars back to our defaults before we yield the floor.
|
| + m_firstLayout = true;
|
| + setScrollbarsSuppressed(true);
|
| +- setScrollbarModes(ScrollbarAuto, ScrollbarAuto);
|
| ++ if (m_canHaveScrollbars)
|
| ++ setScrollbarModes(ScrollbarAuto, ScrollbarAuto);
|
| ++ else
|
| ++ setScrollbarModes(ScrollbarAlwaysOff, ScrollbarAlwaysOff);
|
| + setScrollbarsSuppressed(false);
|
| + }
|
| +
|
| +@@ -316,6 +320,23 @@
|
| + m_margins.setHeight(h);
|
| + }
|
| +
|
| ++void FrameView::setCanHaveScrollbars(bool canHaveScrollbars)
|
| ++{
|
| ++ m_canHaveScrollbars = canHaveScrollbars;
|
| ++ ScrollView::setCanHaveScrollbars(canHaveScrollbars);
|
| ++}
|
| ++
|
| ++void FrameView::updateCanHaveScrollbars()
|
| ++{
|
| ++ ScrollbarMode hMode;
|
| ++ ScrollbarMode vMode;
|
| ++ scrollbarModes(hMode, vMode);
|
| ++ if (hMode == ScrollbarAlwaysOff && vMode == ScrollbarAlwaysOff)
|
| ++ m_canHaveScrollbars = false;
|
| ++ else
|
| ++ m_canHaveScrollbars = true;
|
| ++}
|
| ++
|
| + PassRefPtr<Scrollbar> FrameView::createScrollbar(ScrollbarOrientation orientation)
|
| + {
|
| + // FIXME: We need to update the scrollbar dynamically as documents change (or as doc elements and bodies get discovered that have custom styles).
|
| +@@ -563,7 +584,13 @@
|
| +
|
| + ScrollbarMode hMode;
|
| + ScrollbarMode vMode;
|
| +- scrollbarModes(hMode, vMode);
|
| ++ if (m_canHaveScrollbars) {
|
| ++ hMode = ScrollbarAuto;
|
| ++ vMode = ScrollbarAuto;
|
| ++ } else {
|
| ++ hMode = ScrollbarAlwaysOff;
|
| ++ vMode = ScrollbarAlwaysOff;
|
| ++ }
|
| +
|
| + if (!subtree) {
|
| + RenderObject* rootRenderer = document->documentElement() ? document->documentElement()->renderer() : 0;
|
| +Index: WebCore/platform/ScrollView.h
|
| +===================================================================
|
| +--- WebCore/platform/ScrollView.h (revision 50516)
|
| ++++ WebCore/platform/ScrollView.h (working copy)
|
| +@@ -89,7 +89,7 @@
|
| + void scrollbarModes(ScrollbarMode& horizontalMode, ScrollbarMode& verticalMode) const;
|
| + ScrollbarMode horizontalScrollbarMode() const { ScrollbarMode horizontal, vertical; scrollbarModes(horizontal, vertical); return horizontal; }
|
| + ScrollbarMode verticalScrollbarMode() const { ScrollbarMode horizontal, vertical; scrollbarModes(horizontal, vertical); return vertical; }
|
| +- void setCanHaveScrollbars(bool flag);
|
| ++ virtual void setCanHaveScrollbars(bool);
|
| + bool canHaveScrollbars() const { return horizontalScrollbarMode() != ScrollbarAlwaysOff || verticalScrollbarMode() != ScrollbarAlwaysOff; }
|
| +
|
| + // Overridden by FrameView to create custom CSS scrollbars if applicable.
|
| +Index: LayoutTests/fast/overflow/scrollbar-restored-expected.txt
|
| +===================================================================
|
| +--- LayoutTests/fast/overflow/scrollbar-restored-expected.txt (revision 0)
|
| ++++ LayoutTests/fast/overflow/scrollbar-restored-expected.txt (revision 0)
|
| +@@ -0,0 +1,5 @@
|
| ++Test for rdar://problem/7215132, bug 29167, REGRESSION (r48064): mint.com loses scrollbars after coming out of edit mode, and rdar://problem/7314421, bug 30517, REGRESSION (r48064): Extra scroll bars in GarageBand Lesson Store.
|
| ++
|
| ++This tests that after setting 'overflow' on the document element to 'hidden' and back to 'visible', scrollbars appear as necessary.
|
| ++
|
| ++PASS
|
| +
|
| +Property changes on: LayoutTests/fast/overflow/scrollbar-restored-expected.txt
|
| +___________________________________________________________________
|
| +Added: svn:eol-style
|
| + + native
|
| +
|
| +Index: LayoutTests/fast/overflow/scrollbar-restored.html
|
| +===================================================================
|
| +--- LayoutTests/fast/overflow/scrollbar-restored.html (revision 0)
|
| ++++ LayoutTests/fast/overflow/scrollbar-restored.html (revision 0)
|
| +@@ -0,0 +1,29 @@
|
| ++<body>
|
| ++ <p>
|
| ++ Test for <i><a href="rdar://problem/7215132">rdar://problem/7215132</a>,
|
| ++ <a href="https://bugs.webkit.org/show_bug.cgi?id=29167">bug 29167</a>,
|
| ++ REGRESSION (r48064): mint.com loses scrollbars after coming out of edit mode</i>,
|
| ++ and <i><a href="rdar://problem/7314421">rdar://problem/7314421</a>,
|
| ++ <a href="https://bugs.webkit.org/show_bug.cgi?id=30517">bug 30517</a>,
|
| ++ REGRESSION (r48064): Extra scroll bars in GarageBand Lesson Store</i>.
|
| ++ </p>
|
| ++ <p>
|
| ++ This tests that after setting 'overflow' on the document element to
|
| ++ 'hidden' and back to 'visible', scrollbars appear as necessary.
|
| ++ </p>
|
| ++ <p id="result">FAIL: Test did not run to completion</p>
|
| ++ <script>
|
| ++ if (window.layoutTestController)
|
| ++ layoutTestController.dumpAsText();
|
| ++
|
| ++ document.documentElement.style.overflow = "hidden";
|
| ++ document.body.offsetTop;
|
| ++ document.documentElement.style.removeProperty("overflow");
|
| ++ document.body.style.height = "200%";
|
| ++ var result = (innerWidth === document.documentElement.offsetWidth)
|
| ++ ? "FAIL: Scrollbar did not appear after resetting 'overflow'"
|
| ++ : "PASS"
|
| ++
|
| ++ document.getElementById("result").innerText = result;
|
| ++ </script>
|
| ++</body>
|
| +
|
| +Property changes on: LayoutTests/fast/overflow/scrollbar-restored.html
|
| +___________________________________________________________________
|
| +Added: svn:mime-type
|
| + + text/html
|
| +Added: svn:eol-style
|
| + + native
|
| +
|
|
|