New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 710617 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Launch-OWP
Launch-Accessibility: ----
Launch-Exp-Leadership: ----
Launch-Leadership: ----
Launch-Legal: ----
Launch-M-Approved: ----
Launch-M-Target: ----
Launch-Privacy: ----
Launch-Security: ----
Launch-Test: ----
Launch-UI: ----
Rollout-Type: ----



Sign in to add a comment

Add MediaError.message field

Project Member Reported by wolenetz@chromium.org, Apr 11 2017

Issue description

Change description:
Add a MediaError.message DOMString field that provides, if available, any additional vendor-specific error message detail to assist web authors debugging media player errors. The format and content of the string is left to vendors. It is populated at the time of MediaError creation.

Changes to API surface:
MediaError.message DOMString is added

Links:
Public standards discussion:
WHATWG HTML5 spec changed in [1]. Exists in spec [6].
W3C web-platform-tests includes test in [2].
MSFT responded positively to a request for input from W3C participants in [3], improving on their existing vendor-prefixed "MediaError.msExtendedCode".
Firefox has expressed strong support for this ([4]).

Support in other browsers:
Firefox describes support for in in 51 [5].

[1] https://github.com/whatwg/html/issues/2085
[2] https://github.com/w3c/web-platform-tests/pull/4638
[3] https://lists.w3.org/Archives/Public/www-archive/2016Dec/0000.html
[4] https://github.com/whatwg/html/issues/2085#issuecomment-262634835
[5] https://developer.mozilla.org/en-US/docs/Web/API/MediaError/message
[6] https://html.spec.whatwg.org/multipage/embedded-content.html#dom-mediaerror-message
 
Intent to implement and ship thread: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/yDIyWozG1xk

CL containing the intended change: https://codereview.chromium.org/2660003003/
Reminder that https://developer.mozilla.org/en-US/docs/Web/API/MediaError/message will need to be updated to indicate Chrome+Opera support once this ships.
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 21 2017

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

commit ed8e7091b5b0a51a8c0781f95813a5929c1f8110
Author: wolenetz <wolenetz@chromium.org>
Date: Fri Apr 21 16:28:59 2017

Add MediaError.message

This improves the level of information available for web authors to use
when debugging media playback errors.

* Adds support for the MediaError.message field [1] [2]

* Changes MediaLog::PipelineStatusToString() to return just a
  stringified version of the enum identifier, suitable for use as a
  UA-specific-code when included in MediaError.message.

* Changes MediaLog::GetErrorMessage() to produce messages in the form:
  [[Stringified pipeline error code, if any, without any colon][: The
  first MEDIA_ERROR_LOG_ENTRY from the log, if any, since that is most
  likely to contain the most precise error information]]
  The produced message does not contain any newlines.
  See the updated media_browsertest.cc for basic examples.

* When the message would otherwise be empty for various cases in
  HTMLMediaElement, and more meaningful information beyond the basic
  standard MediaError codes and HTMLMediaElement networkStates is
  available, reports basic additional information (prefixed by error
  code "MEDIA_ELEMENT_ERROR: ".) This should assist edge case
  differentiation. See the updated media_browsertest.cc for basic
  examples.

* Test coverage:
  * Adds basic layout test coverage test similar to that added in [3].
  * Adds basic content browser test coverage for a small variety of
    errors, since these messages' format and content are specific to
    Chrom*.

The format of the message string may change in future (for example, see
discussion in [4]). Also, the variety of error codes in the message
prior to the first ':' will likely change in future, and the descriptive
error message detail following the ':' will likely change to include
more cases or more consistent format in future.

[1] - https://github.com/whatwg/html/issues/2085
[2] - https://github.com/whatwg/html/pull/2086
[3] - https://github.com/w3c/web-platform-tests/pull/4638
[4] - https://github.com/whatwg/html/issues/2531
[Intent to implement and ship] -
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/yDIyWozG1xk

BUG= 601086 ,  710617 

Review-Url: https://codereview.chromium.org/2660003003
Cr-Commit-Position: refs/heads/master@{#466359}

[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/browser/media/media_browsertest.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/browser/media/media_browsertest.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/renderer/media/render_media_log.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/renderer/media/render_media_log.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/renderer/media/webmediaplayer_ms.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/renderer/media/webmediaplayer_ms.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/media/base/media_log.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/media/base/media_log.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/media/blink/webmediaplayer_impl.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/media/test/data/player.html
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/LayoutTests/media/video-error-does-not-exist.html
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/core/html/HTMLMediaElement.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/core/html/media/MediaError.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/core/html/media/MediaError.idl
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/platform/testing/EmptyWebMediaPlayer.cpp
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/Source/platform/testing/EmptyWebMediaPlayer.h
[modify] https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110/third_party/WebKit/public/platform/WebMediaPlayer.h

Cc: abdulsyed@chromium.org xhw...@chromium.org dalecur...@chromium.org foolip@chromium.org sande...@chromium.org
Components: Internals>Media Blink>Media
abdulsyed@: Heads-up, it this bakes over the weekend, I expect to request formal merge to M59 of the CL in c#3(https://chromium.googlesource.com/chromium/src/+/ed8e7091b5b0a51a8c0781f95813a5929c1f8110)

Since this is near enough to the branch cut, today there is no cherry-pick conflict to M59 release branch; risk of build failure at the moment seems low.
minor edit to c#4, s/it this bakes/after it bakes/
Labels: Merge-Request-59
Requesting merge of https://crrev.com/ed8e7091b5b0a51a8c0781f95813a5929c1f8110 (committed here in c#3) to M59. See c#3 and c#4 for further details.


Project Member

Comment 7 by sheriffbot@chromium.org, Apr 24 2017

Labels: -Merge-Request-59 Hotlist-Merge-Approved Merge-Approved-59
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 24 2017

Labels: -merge-approved-59 merge-merged-3071
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9ea56b10a39d0ec3c0fa81962d6cb0702020586

commit e9ea56b10a39d0ec3c0fa81962d6cb0702020586
Author: Matt Wolenetz <wolenetz@chromium.org>
Date: Mon Apr 24 20:20:44 2017

To M59: Add MediaError.message

This improves the level of information available for web authors to use
when debugging media playback errors.

* Adds support for the MediaError.message field [1] [2]

* Changes MediaLog::PipelineStatusToString() to return just a
  stringified version of the enum identifier, suitable for use as a
  UA-specific-code when included in MediaError.message.

* Changes MediaLog::GetErrorMessage() to produce messages in the form:
  [[Stringified pipeline error code, if any, without any colon][: The
  first MEDIA_ERROR_LOG_ENTRY from the log, if any, since that is most
  likely to contain the most precise error information]]
  The produced message does not contain any newlines.
  See the updated media_browsertest.cc for basic examples.

* When the message would otherwise be empty for various cases in
  HTMLMediaElement, and more meaningful information beyond the basic
  standard MediaError codes and HTMLMediaElement networkStates is
  available, reports basic additional information (prefixed by error
  code "MEDIA_ELEMENT_ERROR: ".) This should assist edge case
  differentiation. See the updated media_browsertest.cc for basic
  examples.

* Test coverage:
  * Adds basic layout test coverage test similar to that added in [3].
  * Adds basic content browser test coverage for a small variety of
    errors, since these messages' format and content are specific to
    Chrom*.

The format of the message string may change in future (for example, see
discussion in [4]). Also, the variety of error codes in the message
prior to the first ':' will likely change in future, and the descriptive
error message detail following the ':' will likely change to include
more cases or more consistent format in future.

[1] - https://github.com/whatwg/html/issues/2085
[2] - https://github.com/whatwg/html/pull/2086
[3] - https://github.com/w3c/web-platform-tests/pull/4638
[4] - https://github.com/whatwg/html/issues/2531
[Intent to implement and ship] -
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/yDIyWozG1xk

BUG= 601086 ,  710617 

Review-Url: https://codereview.chromium.org/2660003003
Cr-Commit-Position: refs/heads/master@{#466359}
(cherry picked from commit ed8e7091b5b0a51a8c0781f95813a5929c1f8110)

TBR=jochen@chromium.org,sandersd@chromium.org,mlamouri@chromium.org,mcasas@chromium.org,dalecurtis@chromium.org,foolip@chromium.org

Review-Url: https://codereview.chromium.org/2837133002 .
Cr-Commit-Position: refs/branch-heads/3071@{#173}
Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641}

[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/browser/media/media_browsertest.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/browser/media/media_browsertest.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/renderer/media/render_media_log.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/renderer/media/render_media_log.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/renderer/media/webmediaplayer_ms.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/renderer/media/webmediaplayer_ms.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/media/base/media_log.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/media/base/media_log.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/media/blink/webmediaplayer_impl.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/media/test/data/player.html
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/LayoutTests/media/video-error-does-not-exist.html
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/core/html/HTMLMediaElement.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/core/html/media/MediaError.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/core/html/media/MediaError.idl
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/platform/testing/EmptyWebMediaPlayer.cpp
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/Source/platform/testing/EmptyWebMediaPlayer.h
[modify] https://crrev.com/e9ea56b10a39d0ec3c0fa81962d6cb0702020586/third_party/WebKit/public/platform/WebMediaPlayer.h

Status: Fixed (was: Assigned)
@#2, I've updated https://developer.mozilla.org/en-US/docs/Web/API/MediaError/message today to reflect Chrome (59) and (per chromestatus) Opera (46) contain MediaError.message support.

Sign in to add a comment