Rework our mp4 sample iterator to handle cbcs crypto data.
To support this we populate the following new data for samples:
- Crypto pattern information, this is split into a count of encrypted blocks
and a count of clear blocks.
- A constant IV.
This information is available at a track level and a sample group level. The
sample group level supersedes track level information if both a present.
Prior to this patch, some crypto information was written to samples in
the SampleIterator in Index.cpp, and some in the MP4Demuxer (based on if the
SampleIterator had not populated the data). This patch moves all these
operations into the SampleIterator -- the idea being that the sample iterator
should be the component responsible for setting up sample meta data.
Differential Revision: https://phabricator.services.mozilla.com/D15877
--HG--
extra : moz-landing-system : lando
Explicitly store the crypto scheme being used on our crypto structs to let us
differentiate between cenc and cbcs data. In doing so remove mMode and replace
mValid with IsEncrypted() for the following reasons:
- Different modes within the existing schemes are not currently utilized by the
spec of implementation. Having a mode and a scheme could lead to confusion
between the two. We can return mMode if ever needed by the spec.
- mValid was typically used to check if these structs contained valid crypto
data or not. With only one scheme this was often shorthand for 'IsEncrypted',
but with multiple schemes what is considered valid data for one may not be for
another. Do away with this and just explicitly have an 'IsEncrypted'.
Differential Revision: https://phabricator.services.mozilla.com/D15874
--HG--
extra : moz-landing-system : lando
When Firefox runs we cache a number of things, JS, XUL, XBL, CSS etc. Whenever
a new build of Firefox runs against a profile we clear the cache to rebuild with
the new information.
On the first run of a profile where compatibility.ini doesn't exist (presumably
to cover the case of upgrading from a very old versions of Firefox, but also
affects new profiles) we attempt to clear the cache as well.
If any attempt to clear the cache fails we set a flag in compatibility.ini
telling us to clear the cache on next startup.
Unfortunately nsIFile.remove returns different error codes on different
platforms when the file in question already doesn't exist. So an attempt to
remove a cache that does't exist is counted as a failure on Windows and so the
cache will be cleared again on second run.
This change counts the file not found return code as counting as a success when
clearing the cache.
Differential Revision: https://phabricator.services.mozilla.com/D16224
--HG--
extra : moz-landing-system : lando
Collapsing thumb causes frame of scrollbar to cache an incorrect pref
size, which makes it not able to appear in certain cases.
This patch changes it to use "visibility: hidden" instead so that the
thumb is hidden but still contributes to the width of scrollbar.
An alternative would be also change the code in nsScrollbarFrame to set
something other than collapsed attribute instead, but I'm not sure
whether doing that is any better than just adding a rule. We need the
rule anyway regardless of what we set on the element.
Differential Revision: https://phabricator.services.mozilla.com/D15244
--HG--
extra : moz-landing-system : lando
We need to recognize IPDL errors in order to return the proper error status when the right PluginScriptableObject could not be found.
Differential Revision: https://phabricator.services.mozilla.com/D15469
--HG--
extra : moz-landing-system : lando
The `GEOLOCATION_REQUEST_GRANTED` probe was renewed in Bug #1494496 to support targeting for a survey project that I originally expected to launch in November. Thanks to the usual vagaries of IRBs, holidays, and other priorities, we haven't launched yet, and the probe expiry is configured to stop collecting in 65. To mitigate the risk of failing to deploy the survey before the targeting probe expires, I'd like to bump the probe expiration out another couple of releases and uplift to beta.
I think we're actually ready to launch now so I'm confident another 12 weeks will be more than enough time and we won't have to repeat this exercise again.
I expect the data review in Bug #1494496 provides coverage for this change.
Differential Revision: https://phabricator.services.mozilla.com/D16211
--HG--
extra : moz-landing-system : lando
This allows us to centralize the logic about which field names are "sensitive" and shouldn't be saved in things like form history or session history.
Differential Revision: https://phabricator.services.mozilla.com/D16128
--HG--
extra : moz-landing-system : lando
In 1404608, the OS was revealed in both the HTTP User-Agent
header and to JavaScript code via navigator.userAgent. To avoid
leaking the OS inside each HTTP request (which many web servers
log), always use the Windows 7 OS value in the desktop User-Agent
header. We continue to allow access to the actual OS via JavaScript,
since doing so improves compatibility with web applications such
as GitHub and Google Docs.
This is an uplift of Tor's 26146
Avoid resetting volume in every AudioSink restart to stop unexpected volume change during play/pause and seek. Volume changes could occur if the volume has been modified outside firefox (for example pavucontrol in Linux).
Differential Revision: https://phabricator.services.mozilla.com/D15210
--HG--
extra : moz-landing-system : lando
The patch updates the Marionette client and all Marionette unit
tests to make use of the new `Create Window` command as much as
possible.
Depends on D13663
Differential Revision: https://phabricator.services.mozilla.com/D13664
--HG--
extra : moz-landing-system : lando