New issue
Advanced search Search tips

Issue 756109 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Feature



Sign in to add a comment

Add UMA stat to indicate when a EME load session returns false

Project Member Reported by hbengali@chromium.org, Aug 16 2017

Issue description

We want to understand how frequently an offline playback attempt fails due to a missing license. Preferably this would be another bucket in the Media.EME.Widevine.LoadSession stat.

Getting this on Android is the main priority. Other platforms can land alongside their respective persistent license support.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78cf93348c353ab9dd7454c3e85ce4f199a5568e

commit 78cf93348c353ab9dd7454c3e85ce4f199a5568e
Author: John Rummell <jrummell@chromium.org>
Date: Thu Aug 17 21:52:51 2017

Add UMA result for failed EME session creation

MediaKeySession.generateRequest() and MediaKeySession.load() internally use
promises that return the result as a string (session_id). Validation of the
returned |session_id| may result in generateRequest() failing, or in false
being returned by load(), indicating that the session to be loaded can't be
found. Current UMA logging of the result always reports SUCCESS. Add
additional values to the UMA logged to indicate SESSION_NOT_FOUND or
SESSION_ALREADY_EXISTS.

BUG= 756109 
TEST=tested locally

Change-Id: Ic8134efcbc95f2fd468dfe73439a6f1d5d6ababa
Reviewed-on: https://chromium-review.googlesource.com/619408
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Commit-Queue: John Rummell <jrummell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495334}
[modify] https://crrev.com/78cf93348c353ab9dd7454c3e85ce4f199a5568e/media/blink/cdm_result_promise_helper.h
[modify] https://crrev.com/78cf93348c353ab9dd7454c3e85ce4f199a5568e/media/blink/new_session_cdm_result_promise.cc
[modify] https://crrev.com/78cf93348c353ab9dd7454c3e85ce4f199a5568e/tools/metrics/histograms/enums.xml

Status: Fixed (was: Assigned)
Marking this as fixed, although it may take a few days before we see any data.

generateRequest() promise succeeds if SUCCESS reported. SESSION_NOT_FOUND and SESSION_ALREADY_EXISTS end up as an InvalidStateError rejection, so those three buckets can be combined.

load() promise succeeds with true if SUCCESS reported. If SESSION_NOT_FOUND reported, load() promise succeeds with false returned (meaning the session can't be loaded since it doesn't exist). SESSION_ALREADY_EXISTS ends up as an InvalidStateError rejection.

Sign in to add a comment