Generalise RenderBlockViewport so that it can be used by a Widget that knows its children's dimensions.