This PR switches the browser's scroll restoration into manual mode, taking the process over from the browser.
We're doing this primarily because of history encryption, as the process is async and we don't know how long it will take, we can then manually restore the document's scroll position whenever decryption has finished.
This PR also separates out scroll data in the history state, preventing it from being encrypted with the rest of the payload as it is not sensitive data.
This PR switches the browser's scroll restoration into manual mode, taking the process over from the browser.
We're doing this primarily because of history encryption, as the process is async and we don't know how long it will take, we can then manually restore the document's scroll position whenever decryption has finished.