void
OverscrollHandoffChain::RequestSnapOnLock(Layer::ScrollDirection aAxis) const
{
  for (uint32_t i = 0; i < Length(); ++i) {
    AsyncPanZoomController* apzc = mChain[i];
    if (!apzc->IsDestroyed()) {
      switch (aAxis) {
      case Layer::HORIZONTAL:
        if (!apzc->CanScroll(Layer::VERTICAL)) {
          apzc->RequestSnap();
        }
        break;
      case Layer::VERTICAL:
        if (!apzc->CanScroll(Layer::HORIZONTAL)) {
          apzc->RequestSnap();
        }
        break;
      default:
        MOZ_ASSERT(false);
        break;
      }
    }
  }
}