It appears to cause crashes, and the effects of not calling on memory reporting
accuracy are minor. The code should be able to be re-enabled once
heap-allocated js::Class instances no longer occur.
--HG--
extra : rebase_source : 6dcf36aa21ade45b0397b3df531aaaa8f754af49
If the FFmpeg decoder module cannot be started, the failure is recorded in the
DecoderDoctorDiagnostics structure.
In this case, on Linux if there are no suitable decoders for any requested
format, a "platform decoder not found" notification is sent to Chrome (a
separate bug will implement the actual front-end notification), and logged to
the web console.
Note: All front-end notifications (that could display a notification bar) are
currently disabled by default. Set the following pref to true to enable them:
"media.decoderdoctor.enable-notification-bar".
MozReview-Commit-ID: CdaX7QUdWtd
If the Decoder Doctor analysis needs to report something, a notification
is sent to listeners of "decoder-doctor-notification", with data identifying
the type of notification along with the media format(s) that could not be
decoded.
In this patch, there are only two notification types: "cannot-play", or
"can-play-but-some-missing-decoders" (if pref "media.decoderdoctor.verbose" is
true).
In a future bug, the Firefox front-end will handle this notification and then
optionally display a user notification.
Note: "can-play-but-some-missing-decoders" should be useful to help implement
the front-end side (as sites like YouTube will probably have some formats we
don't handle); it may be removed later on if it has no further use.
MozReview-Commit-ID: GL3JRqLxzxL
Minimal implementation of DecoderDoctorDiagnostics.
If the Decoder Doctor analysis needs to report something, a notification is
logged to the web console, with the media format(s) that cannot be decoded.
In this patch, there are only two notification types: "Cannot play" when no
decoders are found for any of the requested formats), or "Can play" (if pref
"media.decoderdoctor.verbose" is true) when decoders are missing for only
some of the requested formats.
MozReview-Commit-ID: 4QkiVvcNSU3
DecoderDoctorDiagnostics are now used at places where Firefox Chrome and/or
websites checks whether some media formats may be played:
- audio|video.canPlayType()
- audio|video resource loader
- MediaSource.IsTypeSupported()
- MediaSource.AddSourceBuffer()
MozReview-Commit-ID: B1KdjXODq9j
Pass declared-but-yet-undefined DecoderDoctorDiagnostics pointer to various
routines that contribute to deciding if a media format can be played, and
those that create decoders.
Points where a DecoderDoctorDiagnostics can be injected are currently marked
with "/* DecoderDoctorDiagnostics* */ nullptr", and some will be used in
following patches.
MozReview-Commit-ID: 7u37bvY4CpW
We were unconditionally adding them, now actually check what the
compilers default to and add the flags if they are necessary.
This will, in the future, allow finer grained policy changes, where
we can decide that C++11 and C++14 are fine, downgrading compilers
that do C++17, etc.
This patch also temporarily disables the test by commenting it out in mochitest.ini, its new home. (I'm disabling it temporarily because it won't pass until later patches in this queue have landed.)
MozReview-Commit-ID: 2CixMWUin8W
--HG--
rename : layout/base/tests/chrome/test_bug370436.html => layout/base/tests/test_bug370436.html
If we botch things in libxul badly enough that startup cache
precompilation works, but xpcshell self tests fail, it's nice to get
understandable stacks for asserts or crashes inside libxul.