This patch revises the logic in SystemTimeConverter to detect backwards and
forwards skew between the two time sources: the native time source (represented
by the Time type) and the time source used to generate TimeStamp objects.
--HG--
extra : rebase_source : 208b4535f8a7d33a81dd0937a4fcbe38ee46335d
Previously the CurrentX11TimeGetter and CurrentWindowsTimeGetter classes acted
as functors with a single operator() method. In preparation for handling clock
skew, this patch refactors these two helper classes into regular classes with
two named methods:
GetCurrentTime which matches the existing operator() method, and
GetTimeAsyncForPossibleBackwardsSkew which will be used when possible
backwards skew is detected to fetch the current time asynchronously.
Some renaming is also included to match the expanded role of these classes.
--HG--
extra : rebase_source : 4d46e09bd09cbb0dbffcb0aa46742157384d37e8
This patch exploits the fact that the underlying Time type is an unsigned
integer to simplify some of the overflow checks in SystemTimeConvert by relying
on unsigned integer overflow behavior, which, unlike signed integer overflow, is
well-defined.
--HG--
extra : rebase_source : e21f865e1ed22e1d3adc5e835e052cb9f80b9beb
Various operations in the time conversion assume that the native event time is
an unsigned integer so this patch adds and assertion to check this precondition
is met.
--HG--
extra : rebase_source : bd197c71b09a2c58c4ffeca8326b5aadff14750c
This just moves the code from widget/windows/nsWindow.cpp to a template class in
widget/xpwidgets/WrappingTimeConverter.h so that we can reuse this code for
other platforms (GTK at least).
--HG--
extra : rebase_source : efa9582fd8cf5b26d1a59219f427aa20a460f7cd