This patch includes:
* GUIDHelper.getItemGUID() must return a GUID.
* GUIDHelper should resolve promises after other operations are finished.
* GUIDHelper.getItemId should deliver itself as |this| to its internal executeAsync callback.
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
The change in 0633949f1000 was buggy. If a new Addon instance were
created, it would always return the value stored in the database. This
meant that if you set userDisabled = false and called getAddonByID(),
userDisabled would likely be reported as true.
--HG--
extra : rebase_source : 02be7302b6e168b5d56cbf02de0cca4810ccd700
extra : amend_source : 4cdc73bfbc826abd594d6f8a2374672be834dba8
The test experiments had unnecessary content in their install.rdf files.
<targetApplication> does not apply to experiment types and has been
removed.
The bootstrap setting is also implied and has been removed.
--HG--
extra : rebase_source : 52c297b17244b2cf160bc41018897ecc3fb0eabd
A common pattern for logging is to have multiple loggers for multiple
underlying object instances. You often want to have each instance attach
some identifying metdata contained in each logged message. This patch
provides an API to facilitate that.
--HG--
extra : rebase_source : 5816e0671c78f55cca45bdd1aed52c85695945c4
Experiment add-ons are now disabled by default on application load. It
is up to the Experiments Manager to enable them.
This means that experiments may not be able to reliably collect data or
modify behavior close to application startup. (There is a window between
when the Addon Manager initializes and when the Experiments Manager
initializes.) This window is acceptable for the initial version of the
experiments feature.
The Experiments Manager doesn't currently enable experiments on startup.
This will be addressed in a subsequent patch. Its tests do not regress
(indicating a lack of test coverage), so no harm no foul.
--HG--
extra : rebase_source : 3c550090e3480127dc679cc5247f249ee822e76f
extra : amend_source : 9b5349b507c73b4713ec447e4f1a6cb841c11c56
extra : source : 0d72fd2fbd1d091c27fa4a0a9c1944282eaa9ac5
Experiment add-ons are installed and updated via the Experiments Manager
service. With this change, the Add-ons Manager lets experiment add-ons
play by their own rules without interference.
--HG--
extra : rebase_source : 4a7c30f8ce36a64f91f9fee49da9061eda568b99
Experiment add-ons are now disabled by default on application load. It
is up to the Experiments Manager to enable them.
This means that experiments may not be able to reliably collect data or
modify behavior close to application startup. (There is a window between
when the Addon Manager initializes and when the Experiments Manager
initializes.) This window is acceptable for the initial version of the
experiments feature.
The Experiments Manager doesn't currently enable experiments on startup.
This will be addressed in a subsequent patch. Its tests do not regress
(indicating a lack of test coverage), so no harm no foul.
--HG--
extra : rebase_source : 00a55146576f490200a6148bd5516f84def9879c
extra : source : bd901384b973c7ff581fe24a3012f0191b8bbe67
Experiment add-ons are installed and updated via the Experiments Manager
service. With this change, the Add-ons Manager lets experiment add-ons
play by their own rules without interference.
--HG--
extra : rebase_source : 12f990198fed7171b9572c24aa2f8319620414a2
Use DirectoryLinksProvider for Firefox and make PlacesProvider match in expected Links format.
Make sure there's at least 2 of each type so Telemetry doesn't know for sure which links were used.
A new type of add-on is introduced: experiments.
Experiments are add-ons that conduct data experiments. They are deployed
to compatible clients and collect additional information about the
client.
--HG--
extra : rebase_source : 98a612933978b3e4bcfb83da9f6a9782c62dc0da
extra : amend_source : 9347a56bc3034c7ea1e50918278c6b9cc1270521
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2