[webkit-dev] Adding "Scroll Padding" to allow scroll beyond the edge of the page (within some bounds)

Fady Samuel fsamuel at chromium.org
Thu Oct 6 10:03:51 PDT 2011

Hi all,

We'd like to provide a general mechanism in WebKit for embedders to scroll
page content so that it is not hidden by embedder-provided UI elements that
overlap the page.

In some cases, if a floating UI element overlaps the edge of the page, we'd
like to allow the embedder to scroll beyond the edge of the page to allow
the hidden content to move to an area that isn't overlapped by UI
elements. This feature is orthogonal to rubber band scrolling.

One approach we considered taking is to allow the platform to set "scroll
padding" to a FrameView/ScrollableArea to allow scrolling beyond the edge of
the page.

As a more concrete example, one can imagine a persistent Chromium extension
that floats above the edge of the page. A link may lie behind the floating
window.  That link would be inaccessible unless the page is allowed to
scroll beyond its edge.

An experimental and incomplete implementation of this idea can be found
here: https://bugs.webkit.org/show_bug.cgi?id=68184

After some additional consideration since this patch was posted, I don't
believe scroll padding should interact with
ScrollView::constrainsScrollingToContentEdge the way it does in the patch.
Instead, I feel that scroll padding should be ignored
if constrainsScrollingToContentEdge is false. That way rubber band scrolling
is not affected at all by this.

What are your thoughts and suggestions? Is this feature sufficiently general
to be implemented in WebCore? What are your thoughts about its interaction
with ScrollView::constrainsScrollingToContentEdge?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20111006/ccdf0192/attachment.html>

More information about the webkit-dev mailing list