Outer scrolling content
Inner scrolling content
Fixed background

(scrolling tree
  (frame scrolling node
    (scrollable area size width=800 height=600)
    (total content size width=800 height=600)
    (last committed scroll position (0,0))
    (scrollable area parameters
      (horizontal scroll elasticity 2)
      (vertical scroll elasticity 2)
      (horizontal scrollbar mode 0)
      (vertical scrollbar mode 0))
    (synchronous scrolling reasons Has slow repaint objects, Has slow repaint descendant scrollers)
    (layout viewport (0,0) width=800 height=600)
    (min layoutViewport origin (0,0))
    (max layoutViewport origin (0,0))
    (behavior for fixed 0)
    (overflow scrolling node
      (scrollable area size width=405 height=305)
      (total content size width=405 height=1020)
      (last committed scroll position (0,0))
      (scrollable area parameters
        (horizontal scroll elasticity 0)
        (vertical scroll elasticity 0)
        (horizontal scrollbar mode 0)
        (vertical scrollbar mode 0)
        (allows vertical scrolling 1))
      (synchronous scrolling reasons Has slow repaint descendant scrollers)
      (positioned node
        (layout constraints
          (layer-position-at-last-layout (10,128)))
        (related overflow nodes 1)
        (overflow scrolling node
          (scrollable area size width=355 height=305)
          (total content size width=410 height=1020)
          (last committed scroll position (0,0))
          (scrollable area parameters
            (horizontal scroll elasticity 0)
            (vertical scroll elasticity 0)
            (horizontal scrollbar mode 0)
            (vertical scrollbar mode 0)
            (allows horizontal scrolling 1)
            (allows vertical scrolling 1))
          (synchronous scrolling reasons Has slow repaint objects))))))

