Bug 1280644 - part1 : add Telemetry for webvtt. r=bsmedberg,rillian

MozReview-Commit-ID: 4a6JmfolqkW
This commit is contained in:
Alastor Wu
2016-07-11 10:51:08 +08:00
parent fce21e48f1
commit b698b3ba71
4 changed files with 58 additions and 0 deletions

View File

@@ -12,6 +12,7 @@
#include "mozilla/dom/TextTrackCue.h"
#include "mozilla/dom/Event.h"
#include "mozilla/ClearOnShutdown.h"
#include "mozilla/Telemetry.h"
#include "nsComponentManagerUtils.h"
#include "nsVariant.h"
#include "nsVideoFrame.h"
@@ -96,6 +97,7 @@ TextTrackManager::TextTrackManager(HTMLMediaElement *aMediaElement)
, mLastTimeMarchesOnCalled(0.0)
, mTimeMarchesOnDispatched(false)
, performedTrackSelection(false)
, mCueTelemetryReported(false)
, mShutdown(false)
{
nsISupports* parentObject =
@@ -143,6 +145,7 @@ TextTrackManager::AddTextTrack(TextTrackKind aKind, const nsAString& aLabel,
mTextTracks->AddTextTrack(aKind, aLabel, aLanguage, aMode, aReadyState,
aTextTrackSource, CompareTextTracks(mMediaElement));
AddCues(ttrack);
ReportTelemetryForTrack(ttrack);
if (aTextTrackSource == Track) {
NS_DispatchToMainThread(NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection));
@@ -159,6 +162,8 @@ TextTrackManager::AddTextTrack(TextTrack* aTextTrack)
}
mTextTracks->AddTextTrack(aTextTrack, CompareTextTracks(mMediaElement));
AddCues(aTextTrack);
ReportTelemetryForTrack(aTextTrack);
if (aTextTrack->GetTextTrackSource() == Track) {
NS_DispatchToMainThread(NewRunnableMethod(this, &TextTrackManager::HonorUserPreferencesForTrackSelection));
}
@@ -262,6 +267,7 @@ TextTrackManager::NotifyCueAdded(TextTrackCue& aCue)
mNewCues->AddCue(aCue);
}
DispatchTimeMarchesOn();
ReportTelemetryForCue();
}
void
@@ -747,5 +753,28 @@ TextTrackManager::NotifyReset()
mLastTimeMarchesOnCalled = 0.0;
}
void
TextTrackManager::ReportTelemetryForTrack(TextTrack* aTextTrack) const
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(aTextTrack);
MOZ_ASSERT(mTextTracks->Length() > 0);
TextTrackKind kind = aTextTrack->Kind();
Telemetry::Accumulate(Telemetry::WEBVTT_TRACK_KINDS, uint32_t(kind));
}
void
TextTrackManager::ReportTelemetryForCue()
{
MOZ_ASSERT(NS_IsMainThread());
MOZ_ASSERT(!mNewCues->IsEmpty() || !mLastActiveCues->IsEmpty());
if (!mCueTelemetryReported) {
Telemetry::Accumulate(Telemetry::WEBVTT_USED_VTT_CUES, 1);
mCueTelemetryReported = true;
}
}
} // namespace dom
} // namespace mozilla