Auto merge of #14470 - gterzian:implement_scroll_transactions, r=mbrubeck
Auto merge of #14470 - gterzian:implement_scroll_transactions, r=mbrubeck

Implement scroll transactions

<!-- Please describe your changes on the following line: -->
@glennw Here is a first pass at faking Start scroll events by way of 'transactions', as suggested by @mstange at https://github.com/servo/webrender/pull/599#issuecomment-263323105

Since I still don't have a Linux environment available for testing(and my Mac doesn't have enough resources to run a VM at the moment), I tested this with both https://github.com/servo/webrender/pull/599 and https://github.com/servo/webrender/pull/600 on a Mac by:

* disabling start and end events by removing the content of these two functions: https://github.com/servo/servo/blob/master/components/compositing/compositor.rs#L1080 and https://github.com/servo/servo/blob/master/components/compositing/compositor.rs#L1093

* Setting `CAN_OVERSCROLL` to false for Mac OS in Webrender https://github.com/servo/webrender/blob/master/webrender/src/frame.rs#L29

* This PR also requires a `./mach update-cargo -a`

The desired behavior of both Webrender PR's, based on my manual testing, now also works when there are no end or start scroll events provided by the os. The scroll transactions do not affect normal scrolling on Mac OS, and both PR still work as before on that platform.

Both PR in Webrender need some re-basing and cleaning up, as does this one, and I first wanted to put this proposal forward, and also ask if someone has the time to do some testing in a real Linux environment...

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #13249 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14470)
<!-- Reviewable:end -->

szeged/servo,sadmansk/servo,DominoTree/servo,rnestler/servo,thiagopnts/servo,mbrubeck/servo,emilio/servo,cbrewster/servo,avadacatavra/servo,splav/servo,sadmansk/servo,pyfisch/servo,peterjoel/servo,fiji-flo/servo,upsuper/servo,cbrewster/servo,dsandeephegde/servo,thiagopnts/servo,CJ8664/servo,pyfisch/servo,notriddle/servo,ConnorGBrewster/servo,eddyb/servo,CJ8664/servo,KiChjang/servo,paulrouget/servo,mattnenterprise/servo,mbrubeck/servo,mattnenterprise/servo,pyfisch/servo,mbrubeck/servo,cbrewster/servo,cbrewster/servo,szeged/servo,saneyuki/servo,saneyuki/servo,cbrewster/servo,pyfisch/servo,rnestler/servo,notriddle/servo,szeged/servo,nnethercote/servo,anthgur/servo,notriddle/servo,jimberlage/servo,paulrouget/servo,nnethercote/servo,mattnenterprise/servo,mbrubeck/servo,larsbergstrom/servo,szeged/servo,mattnenterprise/servo,anthgur/servo,dati91/servo,KiChjang/servo,CJ8664/servo,jimberlage/servo,avadacatavra/servo,rnestler/servo,sadmansk/servo,ConnorGBrewster/servo,jimberlage/servo,avadacatavra/servo,anthgur/servo,jimberlage/servo,szeged/servo,nnethercote/servo,ConnorGBrewster/servo,jimberlage/servo,avadacatavra/servo,KiChjang/servo,ConnorGBrewster/servo,fiji-flo/servo,dsandeephegde/servo,eddyb/servo,SimonSapin/servo,upsuper/servo,DominoTree/servo,larsbergstrom/servo,upsuper/servo,fiji-flo/servo,anthgur/servo,saneyuki/servo,dati91/servo,saneyuki/servo,peterjoel/servo,thiagopnts/servo,szeged/servo,saneyuki/servo,peterjoel/servo,rnestler/servo,CJ8664/servo,saneyuki/servo,larsbergstrom/servo,mattnenterprise/servo,jimberlage/servo,canaltinova/servo,larsbergstrom/servo,fiji-flo/servo,paulrouget/servo,dati91/servo,splav/servo,emilio/servo,emilio/servo,thiagopnts/servo,emilio/servo,pyfisch/servo,anthgur/servo,sadmansk/servo,fiji-flo/servo,splav/servo,sadmansk/servo,paulrouget/servo,peterjoel/servo,paulrouget/servo,nnethercote/servo,sadmansk/servo,paulrouget/servo,eddyb/servo,DominoTree/servo,notriddle/servo,peterjoel/servo,splav/servo,dati91/servo,szeged/servo,upsuper/servo,nnethercote/servo,dsandeephegde/servo,nnethercote/servo,splav/servo,splav/servo,nnethercote/servo,emilio/servo,eddyb/servo,mattnenterprise/servo,paulrouget/servo,jimberlage/servo,eddyb/servo,thiagopnts/servo,dati91/servo,larsbergstrom/servo,notriddle/servo,nnethercote/servo,pyfisch/servo,upsuper/servo,DominoTree/servo,avadacatavra/servo,ConnorGBrewster/servo,larsbergstrom/servo,SimonSapin/servo,dati91/servo,DominoTree/servo,paulrouget/servo,saneyuki/servo,dsandeephegde/servo,DominoTree/servo,splav/servo,KiChjang/servo,sadmansk/servo,notriddle/servo,CJ8664/servo,larsbergstrom/servo,KiChjang/servo,DominoTree/servo,avadacatavra/servo,eddyb/servo,peterjoel/servo,paulrouget/servo,canaltinova/servo,szeged/servo,SimonSapin/servo,emilio/servo,rnestler/servo,saneyuki/servo,paulrouget/servo,canaltinova/servo,pyfisch/servo,avadacatavra/servo,rnestler/servo,upsuper/servo,cbrewster/servo,upsuper/servo,splav/servo,cbrewster/servo,canaltinova/servo,dsandeephegde/servo,KiChjang/servo,emilio/servo,notriddle/servo,SimonSapin/servo,thiagopnts/servo,KiChjang/servo,canaltinova/servo,CJ8664/servo,jimberlage/servo,CJ8664/servo,ConnorGBrewster/servo,szeged/servo,thiagopnts/servo,DominoTree/servo,pyfisch/servo,DominoTree/servo,mattnenterprise/servo,fiji-flo/servo,ConnorGBrewster/servo,rnestler/servo,emilio/servo,pyfisch/servo,SimonSapin/servo,rnestler/servo,SimonSapin/servo,dsandeephegde/servo,KiChjang/servo,canaltinova/servo,nnethercote/servo,larsbergstrom/servo,dati91/servo,KiChjang/servo,fiji-flo/servo,DominoTree/servo,sadmansk/servo,anthgur/servo,SimonSapin/servo,peterjoel/servo,mbrubeck/servo,peterjoel/servo,thiagopnts/servo,cbrewster/servo,notriddle/servo,SimonSapin/servo,peterjoel/servo,ConnorGBrewster/servo,szeged/servo,emilio/servo,canaltinova/servo,KiChjang/servo,mattnenterprise/servo,splav/servo,mbrubeck/servo,notriddle/servo,pyfisch/servo,anthgur/servo,larsbergstrom/servo,eddyb/servo,mbrubeck/servo,CJ8664/servo,eddyb/servo,emilio/servo,saneyuki/servo,fiji-flo/servo,dati91/servo,dsandeephegde/servo,avadacatavra/servo,larsbergstrom/servo,anthgur/servo,upsuper/servo,dsandeephegde/servo,mbrubeck/servo,canaltinova/servo,peterjoel/servo,jimberlage/servo,notriddle/servo,splav/servo,nnethercote/servo,saneyuki/servo