1. Wait 1 second for the blue div to be appended.
  2. Scroll to the bottom of the page.
  3. Reload the page.

On reload most browsers will log 'Load', 'Scrolled', 'Appended' and will end up scrolled to the bottom of the yellow div. They attempt to restore scroll state once and stop before the asynchronous function appends the new blue div. Gecko will log 'Load', 'Scrolled', 'Appended', 'Scrolled'. It continues to try to restore the scroll state, making the same intermediate scroll update but also waiting for asynchronous functions to finish before it tries again.

I don't know who is doing it right. Or maybe the spec leaves this up to the user agent.