We want to resume video-decoding as soon as possible so playback is less likely to reach the end before finishing all tests.
MozReview-Commit-ID: 4NrbejT8LgI
--HG--
extra : rebase_source : 5c3151a212a1a797cd3d71cfae5510e494af1041
When a test case times out, it will dump debugging info for each media element in the tree.
We would like to remove the ones that pass the test to avoid noise.
MozReview-Commit-ID: HgyvUfpyCqA
--HG--
extra : rebase_source : 4a1187db14c13bdd976179ba3d2b25123c9acb78
Our transition/animation code uses "calc" to represent interpolated values between percent & pixel endpoints. But it only does that if the property has this CSS_PROPERTY_STORES_CALC flag. (This check is in StyleAnimationValue.cpp's static helper, GetCommonUnit().)
We do indeed store (& honor) calc() units for "clip-path" in its style struct, so we can & should add this flag.
MozReview-Commit-ID: 7eEEo9ROnpU
--HG--
extra : rebase_source : b2aa4887bf17048c7fe485f77302e4df91a20f1c
Add opt-out telemetry probe to track which EME CDMs are being instantiated.
This will enable us to determine when it's safe to remove the Adobe CDM.
MozReview-Commit-ID: iEPSTk7UtP
--HG--
extra : rebase_source : fb51d77f4c15fe2d9ef0adf3c87f6125bb758b9c
These builds can be run on taskcluster to obtain per-test (JSDebugger) code coverage with the linux64-jsdcov build and overall (GCOV) code coverage with the linux64-ccov build. The linux64-jsdcov build also needed to have leak checking disabled for debug mode.
MozReview-Commit-ID: ASgrU2X7RQV
--HG--
extra : rebase_source : b2098e4d01039edd6cff37f3e6a26c2ed3d3d3ba
This is follow up work to the VideoPuppeteer changes that have it take snapshots
to prevent racing. For this work the motivations are the same: prevent racing by
querying a stable snapshot of video state, rather than making sequential JS
requests to the browser between which video state may change.
Much of the YouTubePuppeteer has been made internal, so the class can
encapsulate its snapshotting. The property methods have been rolled into the
snapshotted data named tuple to make it clear they're derived from snapshotted
data.
A number of broken parts of the code have been removed or reworked:
- Disabling autoplay was not working and has been removed. This is partially
addressed by using embedded URLs (in another commit) -- embedded videos do not
play next video automatically. However, there may be merit in reinstating a
working version of this in future if possible - particularly for videos that
can't be embedded, which we have some of in our tests.
- Ad skipping was not working. The getOption('ad', 'displaystate') JS call
appears to always report an ad is not skippable even if it is. Code related to
skipping ads has been removed for now, and ads are waited out. This may also
be something worth revisiting if a working implementation is possible.
***
Review feedback: update YT puppeteer to use more concise calling conventions,
compatibility with changes to VideoPuppeteer.
MozReview-Commit-ID: CCxf9ItFYtl
--HG--
extra : rebase_source : 99aac08fd86d41e7fa3df9b00604dd583ca27bf8
The tests that use VideoPuppeteer often expect the state queried by the
puppeteer to be consistent if done closely in the code. However, this has not
been the case, as there can be significant lags in the data returning from
marionette. This means that if one line queries the current time of the
underlying video, and the very next line queries the same thing, there can be
significantly different results.
This causes issues with tests making multiple sequential checks on the
underlying video, and the state changing between checks. On test fails it means
that the information logged my be inconsistent with the state that resulted in
the test failing, as time passes between the fail check and the logging.
This patch attempts to address this by having the VideoPuppeteer store a
snapshot of state and examining that instead. This snap shot should be
internally consistent.
I've removed a large number of public members from the class, and moved a couple
of the testing functions into the class. The thinking here is that the new logic
complicates the internal state of the class, and I want to keep the interface
slim to hide that complexity.
***
Review feedback: Log interval, expected duration, stall wait time, and timeout
times in VideoPuppeteer string.
***
Review feedback: make video var script a class var instead of a staticmethod.
***
Review feedback: move _fetch_state_script to be a property on VideoPuppeteer.
***
Review feedback: simplify calling of _create_video_state_info with a dict.
Fix played docstring.
***
Review feedback: simplify _create_video_state_info using kwargs.
MozReview-Commit-ID: 6mN56bFMge0
--HG--
extra : rebase_source : a25a9a45c8dced9439360b9664b1d768100ed2be