[webkit-dev] Scrolling overflow:hidden boxes..

Antonio Gomes tonikitoo at webkit.org
Fri Aug 16 16:03:36 PDT 2013


I did not test exhaustively (various different scenarios), but
hopefully it is of help:

- text selection drag-scrolling of overflow:hidden :
http://jsfiddle.net/auk9S/8/

Safari/Chrome/Opera15: perform scroll
Mozilla: does not perform scroll
Opera12 (pre-blink): does not perform scroll

- programmatic scrolling of overflow:hidden (via
element.scrollIntoView):
LayoutTests/fast/transforms/scrollIntoView-transformed.html

Sarafi/Chrome/Opera15: perform scroll
Mozilla: perform scroll
Opera12 (pre-blink): perform scroll


On Fri, Aug 16, 2013 at 6:26 PM, Simon Fraser <simon.fraser at apple.com> wrote:
> On Aug 16, 2013, at 2:45 PM, Antonio Gomes <tonikitoo at webkit.org> wrote:
>
>> Hi.
>>
>> Bug https://bugs.webkit.org/show_bug.cgi?id=119760 (Text dragging can
>> scroll overflow:hidden boxes) caught  my attention to the following
>> situation:
>>
>> - imagine a page has an input field within a overflow:hidden <div>,
>> and user starts text selecting from the input field text by dragging
>> with the mouse. At some point it goes outside of the input boundary,
>> reaches the outer <div> boundary. By then, 'autoscroll' takes place
>> (see WebCore/page/AutoscrollController.cpp/h), and scrolls the outter
>> <div>. In my opinion, it should not happen, due to div's
>> overflow:hidden style.
>>
>> A natural solution for that could be hardening
>> RenderLayer::scrollRectToVisible, when its upwards recursion occurs;
>> so instead of picking the current layer parent, it picks the enclosing
>> scrollable layer instead.
>>
>> However, it seems acceptable that overflow:hidden div's RenderLayers
>> are  scrollable in certain situations. Consider the case of
>> Element.scrollIntoView(), for example: as of now, WebKit scrolls an
>> container overflow:hidden div, if it is to bring an HTML element into
>> view.
>>
>> Both situations go through the same RenderLayer::scrollRectToVisible method.
>>
>> Introducing a ScrollSource parameter to indicate where the scrolling
>> action came from (user interaction or not), and relax or harden the
>> recursion criteria accordingly would not help, because it would break
>> autoscrolling within shadow DOM content (think of autoscrolling an
>> input's shadow DOM div).
>>
>> Do you guys have thoughts on that?
>
> How do other browsers behave in terms of drag-scrolling of overflow:hidden,
> revealing content in overflow:hidden, and programmatic scrolling of overflow:hidden?
>
> Simon
>


More information about the webkit-dev mailing list