With this chunking strategy, the runtimes of tests are taken into account, such that each chunk
takes roughly the same amount of time to finish. Tests belonging to the same manifest will not get
split up.
The algorithm works by sorting every manifest from slowest to fastest. Each manifest is popped off
and its tests are added to the fastest chunk to date until no manifests are left. Total runtimes of
the chunks are re-calculated after every addition.
This patch detects when breaking away from the parent job isn't strictly necessary to manage processses in a new job to allow using nested job objects to manage processes and their children. Loss of job object functionality is handled in mozprocess as non-fatal, however mozrunner and others doing things like restarting firefox require it.
This is slightly wasteful since this will also always upload the full black texture. The wastage here is so rare and generally so few though that I don't think it's worth adding plumming for the texture host to know if this is the texture on white of on black.
- Implemented scroll snapping at the end of a middle-mouse-button scroll.
- As this scrolling occurs within chrome Javascript, chrome-only DOM methods
had to be added: window.MozScrollSnap and element.MozScrollSnap
- Bug 1137937 tracks implementation of a replacement for these chome-only DOM methods,
to be replaced with a web accessible API.
- Triggering scroll snapping at the end of an autoscroll.
- This enables text selection to be unencumbered by scroll snapping, while
restoring the scroll position to a valid snapping position when the drag
operation is completed.
- Implemented ScrollVelocityQueue class to calculate the velocity of a scroll
when given periodic samples of scroll position.
- Added BasePoint::Clamp to simplify code.
- Added preferences to allow trackpad and mousewheel flinging between
snap points to be tuned:
- layout.css.scroll-snap.prediction-max-velocity
- layout.css.scroll-snap.prediction-sensitivity
- Mouse wheel events synthesized by OSX for momentum scrolling can now
be interrupted by DOM triggered and CSS scroll snapping triggered scroll
events for consistent behavior with the scrolling and fling gestures
in the APZC.
- ScrollbarStyles now carries additional variables to support new
CSS scroll snapping attributes:
- scroll-snap-type / scroll-snap-type-x / scroll-snap-type-y
- scroll-snap-points-x / scroll-snap-points-y
- scroll-snap-destination
- (scroll-snap-coordinate does not apply to the scroll container)
- Simplified the constructor and operator== for ScrollbarStyles.