Граф коммитов

24 Коммитов

Автор SHA1 Сообщение Дата
Gerald Squelart 2035e18855 Bug 1271483 - p16. gtest for list-string functions - r=cpearce
Moved templated code to VideoUtils.h, so it can more easily be reused, and
tested.

MozReview-Commit-ID: 3vOvaj5VVhm
2016-05-26 19:24:35 +10:00
Gerald Squelart 456dd77006 Bug 1271483 - p15. Check if issues have been solved - r=cpearce
To determine if an issue has been solved, go through the possible prefs that
would have been saved by the front-end, to see if any previously-unplayable
formats/key systems are now playable, in which case we notify the frontend, to
record the issue-solved telemetry.

MozReview-Commit-ID: DmU50i6FtG8
2016-05-25 00:41:53 +10:00
Gerald Squelart a5e2720c3e Bug 1271483 - p14. Demagicify ReportStringId strings - r=cpearce
Combine notification type and web-console string id into structs, simpler to
pass around, and will be useful to go through them when checking for solved
issues.

MozReview-Commit-ID: Hy3bMG3m12V
2016-05-25 01:03:21 +10:00
Gerald Squelart 9e8d2c970f Bug 1271483 - p13. Rework formats list - r=cpearce
Renamed AppendToStringList to AppendToFormatsList, to distinguish from other
string-based lists.
Ensure that list items don't contain commas, as commas are used as separators,
and we don't want&need to introduce escaping.
Added FormatsListContains.

MozReview-Commit-ID: 8KpuhSjCW3d
2016-05-25 03:24:14 +10:00
Gerald Squelart 0766dd1f45 Bug 1271483 - p12. Use StringListContains to filter notifications - r=cpearce
Using string-list iterator instead of bespoke code, to go through the decoder
doctor notifications-allowed pref.

MozReview-Commit-ID: 8sxopvlRrz7
2016-05-26 17:01:52 +10:00
Gerald Squelart 02df0decc1 Bug 1271483 - p11. Implement comma-sep-string for-range iterator - r=cpearce
Utility class&function that creates an iteratable range from a comma-separated
string, where each iteration will give a dependent substring (i.e., no string
copy happening).
This will help with going through lists of unplayable formats, to see if
issues have been solved.
If useful enough, this could later be published to a more public location
(e.g. mfbt or xpcom).

MozReview-Commit-ID: 3XP5PwQZFA1
2016-05-26 16:43:16 +10:00
Gerald Squelart 9c71d22090 Bug 1271483 - p9. Report more details from DecDecDiagnostics - r=cpearce
Fill up extra details in notification: Web-console notification string id (will
be used as telemetry key), and whether the issue is present or has been solved.

MozReview-Commit-ID: AzhuIvGqb2p
2016-05-26 23:26:10 +10:00
Gerald Squelart 71f71b3646 Bug 1271483 - p6. Separate unplayable formats by missing decoder - r=cpearce
This helps determine how each format is affected by some issues. It will be
needed in later patches, to see when the issue get fixed (by noticing that
these formats become playable again).

MozReview-Commit-ID: 2wFzmnX5rBY
2016-05-12 16:28:11 +10:00
Gerald Squelart c89979e5f5 Bug 1271483 - p5. Remove 'canPlay', can be inferred otherwise - r=cpearce
Instead of having yet-another variable, just infer playability from the lists
of playable&unplayable formats, which we need to look at anyway.

MozReview-Commit-ID: ABc2WtWADzN
2016-05-12 12:49:36 +10:00
Gerald Squelart 941f072570 Bug 1271483 - p4. Fixed console reporting for Widevine case - r=cpearce
Message was not including the actual Key System at issue.

MozReview-Commit-ID: CavgSGmYCa3
2016-05-16 15:43:19 +10:00
Gerald Squelart 484d14eab0 Bug 1271483 - p3. constify loop variable - r=cpearce
MozReview-Commit-ID: zp0VicPXxk
2016-05-12 15:52:24 +10:00
Gerald Squelart 6f32ce2640 Bug 1271483 - p2. Fixed whitespace style - r=cpearce
MozReview-Commit-ID: IypVNdXjoSr
2016-05-16 21:35:14 +10:00
Kaku Kuo 0f9602ef0a Bug 1267985 - include nsContentUtils.h and nsIScriptError.h; r=gerald
MozReview-Commit-ID: JmCUzGj1kBX

--HG--
extra : rebase_source : fcf64dc7a49e2ec6edc0ef58c5bd54e3d83df962
2016-04-27 19:03:44 +08:00
Gerald Squelart 9f570eb4fa Bug 848994 - p7. Filter front-end notifications - r=cpearce
Pref "media.decoder-doctor.notifications-allowed" defines which notifications
may be forwarded to the front-end (based on the web-console message ID for
that situation). This allows fine-grained filtering.

The current default is to only notify the user about Widevine requests when WMF
and Silverlight are missing (because Widevine does not include an AAC decoder).

MozReview-Commit-ID: KPFH5XjuwnZ
2016-04-22 13:42:11 +10:00
Gerald Squelart e23866c192 Bug 848994 - p6. Analyze Windows issues - r=cpearce
Analyze the diagnostics information gathered so far, and dispatch
notifications as appropriate.
The most important case in this bug is when Widevine is requested but WMF and
Silverlight are missing.
The generic case of WMF missing (when needed to play) is there too.

Note: Currently no notifications are actually sent to the front-end by default,
the following patch will add filtering to allow/prevent targeted notifications.

MozReview-Commit-ID: EB9PKrMgKSr
2016-04-22 13:42:11 +10:00
Gerald Squelart 04d6608e8c Bug 848994 - p5. Check Silverlight presence - r=cpearce
MozReview-Commit-ID: JRzyIWmMTtf
2016-04-22 13:42:11 +10:00
Gerald Squelart b1be604d62 Bug 848994 - p4. Record GMP diagnostics - r=cpearce
Record diagnostics information about whether the GMP CDM failed to load
(though currently impossible!), and which GMP is used in the current media
format check.

MozReview-Commit-ID: 4B8kDTAiV6b
2016-04-22 13:42:11 +10:00
Gerald Squelart 5853b8739b Bug 848994 - p3. Check MediaKeySystem requests - r=cpearce
Media Key System access requests are now recorded with their success/failure,
as well as accompanying issues of importance.
In this bug we focus on the Widevine-with-no-WMF case.

MozReview-Commit-ID: ElBN6cXKwAW
2016-04-22 13:42:11 +10:00
Gerald Squelart 6494d247f8 Bug 848994 - p2. Detect when WMF is not found - r=cpearce
MozReview-Commit-ID: IHvgJNjuyQA
2016-04-22 13:42:11 +10:00
Gerald Squelart 0451e54ac6 Bug 848994 - p1. Refactor Decoder Doctor - r=cpearce
Some refactoring, clean-ups, etc.

The main change is that the can-play status is passed when diagnostics are
finally recorded. This will help when introducing different types of
diagnostics in future patches (e.g., Key System issues).

MozReview-Commit-ID: 182ePlrMqn4
2016-04-22 13:42:11 +10:00
Gerald Squelart 5d11be9eef Bug 1248507 - p10. Detect and report when FFMpeg/Linux fails to load - r=jya
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
2016-04-19 17:36:20 +10:00
Gerald Squelart 5f8533edb0 Bug 1248507 - p7. Notify decoder-doctor-notification listeners - r=jya,bz
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
2016-04-19 17:36:19 +10:00
Gerald Squelart 5918188906 Bug 1248507 - p5. DecoderDoctorDiagnostics implementation - r=jya,bz
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
2016-04-19 17:36:19 +10:00
Gerald Squelart 28dbe24b69 Bug 1248507 - p2. DecoderDoctorDiagnostics boilerplate - r=jya
Minimal DecoderDoctorDiagnostics interface and skeleton implementation.

MozReview-Commit-ID: EUXRABPeoIg
2016-04-19 17:36:19 +10:00