OK, I think you convinced me. Feel free to land the behavior change now. If no one complains, we can gain confidence in tying architecture and APIs to it going forward.
The scrolling code in Firefox for Android indeed behaves this way, but it will change pretty soon. On Firefox OS we do have scroll chaining (we call it scroll handoff), and the scrolling implementation that is being used there will be coming to desktop and Android in the near future.
Of course, it may be that once it arrives people will want to disable the chaining behavior but as it stands we do plan on keeping it. The reasons are the ones already mentioned in this thread, particularly the whole "getting stuck inside a giant iframe" thing.
Cheers,
kats
To unsubscribe from this group and stop receiving emails from it, send an email to input-dev+...@chromium.org.
This is the scenario I had in mind: let's say you have a document with an iframe. The iframe is already scrolled up to the top and the user puts their finger on it. At this point our implementation needs to decide which scrollframe is going to be the active one - the iframe or the parent document. It sounds like with the Safari model it could be either - if the user moves their finger upwards it would be the iframe that scrolls downwards, but if the user moves their finger downwards it would be the outer document that scrolls upwards.
In our implementation it's simplest to start off with the inner scrollframe as active and then allow chaining to let the outer document scroll if the user moves their finger downwards. Changing the implementation to defer the decision until the user starts moving their finger would be quite hard; as a result we need to at least have the code to implement chaining. We *could* only allow scroll chaining if the scroll offset starts at 0 (or at other end, the max allowed scroll offset) but we never really saw a need to add that extra complexity and nobody ever asked for it.
The wheel transaction timeout is pretty independent of all this, and doesn't carry over to touch input.
Hope that helps (and that it makes sense).
Cheers,
kats