[tbb-commits] [tor-browser/tor-browser-45.2.0esr-6.5-1] fixup! Bug 1517: Reduce precision of time for Javascript.
gk at torproject.org
gk at torproject.org
Fri Jun 3 22:15:04 UTC 2016
commit 49d0c6389eea055e94a8fb492bd95de56b9111a4
Author: Arthur Edelstein <arthuredelstein at gmail.com>
Date: Fri May 27 12:39:10 2016 -0700
fixup! Bug 1517: Reduce precision of time for Javascript.
---
dom/html/HTMLMediaElement.cpp | 8 +++++++-
dom/html/HTMLMediaElement.h | 3 +++
dom/media/DOMMediaStream.cpp | 3 ++-
dom/media/webaudio/AudioContext.cpp | 6 ++++--
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/dom/html/HTMLMediaElement.cpp b/dom/html/HTMLMediaElement.cpp
index 393ddb1..6bd644c 100644
--- a/dom/html/HTMLMediaElement.cpp
+++ b/dom/html/HTMLMediaElement.cpp
@@ -1403,7 +1403,7 @@ NS_IMETHODIMP HTMLMediaElement::GetSeeking(bool* aSeeking)
}
double
-HTMLMediaElement::CurrentTime() const
+HTMLMediaElement::CurrentTimeImpl() const
{
if (MediaStream* stream = GetSrcMediaStream()) {
if (mSrcStreamPausedCurrentTime >= 0) {
@@ -1419,6 +1419,12 @@ HTMLMediaElement::CurrentTime() const
return mDefaultPlaybackStartPosition;
}
+double
+HTMLMediaElement::CurrentTime() const
+{
+ return floor(10 * CurrentTimeImpl()) / 10;
+}
+
NS_IMETHODIMP HTMLMediaElement::GetCurrentTime(double* aCurrentTime)
{
*aCurrentTime = CurrentTime();
diff --git a/dom/html/HTMLMediaElement.h b/dom/html/HTMLMediaElement.h
index ed95ad6..3909e50 100644
--- a/dom/html/HTMLMediaElement.h
+++ b/dom/html/HTMLMediaElement.h
@@ -1527,6 +1527,9 @@ private:
// initially be set to zero seconds. This time is used to allow the element to
// be seeked even before the media is loaded.
double mDefaultPlaybackStartPosition;
+
+ // The unrounded current time
+ double CurrentTimeImpl() const;
};
} // namespace dom
diff --git a/dom/media/DOMMediaStream.cpp b/dom/media/DOMMediaStream.cpp
index fc56140..40d09c3 100644
--- a/dom/media/DOMMediaStream.cpp
+++ b/dom/media/DOMMediaStream.cpp
@@ -448,8 +448,9 @@ DOMMediaStream::CurrentTime()
if (!mPlaybackStream) {
return 0.0;
}
- return mPlaybackStream->
+ double currentTime = mPlaybackStream->
StreamTimeToSeconds(mPlaybackStream->GetCurrentTime() - mLogicalStreamStartTime);
+ return floor(10 * currentTime) / 10;
}
void
diff --git a/dom/media/webaudio/AudioContext.cpp b/dom/media/webaudio/AudioContext.cpp
index 2bb4242..c7c399b 100644
--- a/dom/media/webaudio/AudioContext.cpp
+++ b/dom/media/webaudio/AudioContext.cpp
@@ -672,8 +672,10 @@ double
AudioContext::CurrentTime() const
{
MediaStream* stream = Destination()->Stream();
- return stream->StreamTimeToSeconds(stream->GetCurrentTime() +
- Destination()->ExtraCurrentTime());
+ double currentTime = stream->StreamTimeToSeconds(
+ stream->GetCurrentTime() + Destination()->ExtraCurrentTime());
+ // Round to the latest 100 ms.
+ return floor(10 * currentTime) / 10;
}
void
More information about the tbb-commits
mailing list