Commit Graph

12729 Commits

Author SHA1 Message Date
Jean-Yves Avenard
998881b06e Bug 1404997 - P24. Make AutoTaskQueue deliver runnables to nsIEventTarget. r=gerald
Similar to bug 1300118 for TaskQueue.

MozReview-Commit-ID: 8jIifvs2r4U

--HG--
extra : rebase_source : f1c8ab791fa853c4d69cfb8791a418654a5d4142
2017-12-15 18:14:02 +01:00
Jean-Yves Avenard
1fc0ccabbd Bug 1404997 - P20. Make MediaStreamListener::NotifyPull asynchronous. r=padenot
The operations is done in two ways:
1- Process all the MediaStreamListener at once, which returns a promise that will be resolved once the operation is completed.
2- As the Cubeb audio callback must be resolved immediately, the MSG will wait for all the promises to be resolved until it continues the operation of feeding the callback the necessary data.

This will allow to parallelize the stream's tracks' audio decoding.

MozReview-Commit-ID: EeoDvxnJyWV

--HG--
extra : rebase_source : 3d09af5aa3c80c4892a4d9af80842541d8fc33bb
2017-12-10 21:33:43 +01:00
Jean-Yves Avenard
95126c57ea Bug 1404997 - P18. Add Await convenience methods. r=gerald
Takes either a MozPromise or an AllPromiseType and will execute the resolve/reject functions synchronously once the promise has resolved/rejected.

MozReview-Commit-ID: EyfMTPtA1Lu

--HG--
extra : rebase_source : 780ab41307158d7887cd76782e43693079f78c91
2017-12-08 13:35:29 +01:00
Jean-Yves Avenard
8ee5b6a296 Bug 1404997 - P17. Split ExtractPendingInput into two methods. r=padenot
There were two steps happening inside ExtractPendingInput:
1- Retrieve the data from the StreamTracks
2- Process any pending pending states change

We split it so that the retrieval from the StreamTrack can be promisified in an upcoming change

MozReview-Commit-ID: 53O4fXWMDGL

--HG--
extra : rebase_source : da082fa8db3a9029dc05d845cb9f58514f5ffcff
2017-12-07 20:52:56 +01:00
Jean-Yves Avenard
ec5bd7af01 Bug 1404997 - P16. Properly finish the SourceMediaStream during shutdown. r=padenot
Despite the name of the function, the original SourceMediaStream::Finish() (consequently renamed FinishPending) didn't actually finished the stream, but instead set a bool that would indicate to completely finish the stream once ExtractPendingInput ran. But here it could never run again.
So actually do what the original fix intended to do (bug 1410829)

MozReview-Commit-ID: 1hHiOLiovG

--HG--
extra : rebase_source : 7b108a96b54c92812ba583b0dc78ceddbfe15636
2017-12-07 20:20:53 +01:00
Jean-Yves Avenard
d62fc9df33 Bug 1404997 - P15. Move MSG::FinishStream logic to MediaStream. r=padenot
It is good practice for the MSG to now know the implementation details of the MediaStream.

Additionally, this will allow to make a thread-safe version later.,

MozReview-Commit-ID: CTacCLSeKRP

--HG--
extra : rebase_source : 4feb4beb12f4cd2a6fb67fd6a18f003ea8b18869
2017-12-07 16:12:19 +01:00
Jean-Yves Avenard
a21ef82be7 Bug 1404997 - P14. Rename members to clarify the finish meaning. r=padenot
We have different concept of "finish" between the base class and its hierarchy.
Attempt to clear the sitatuation by renaming the members and related methods.

MozReview-Commit-ID: vFsXhMK5GY

--HG--
extra : rebase_source : 65eda9257e447584161da51af7c240e31027c501
2017-12-06 19:00:22 +01:00
Jean-Yves Avenard
55065b688d Bug 1404997 - P13. Move ExtractPendingInput logic to SourceMediaStream. r=padenot
The MSG shouldn't have to know about the inner details of the SourceMediaStream

MozReview-Commit-ID: 2S81SPzy09E

--HG--
extra : rebase_source : dff8384b19442e7686cef42420372e39f10094b6
2017-12-06 16:55:56 +01:00
Jean-Yves Avenard
b8ec246a1f Bug 1404997 - P7. Simplify played time calculations. r=pehrsons
Now that the graph rate match the one out of NetEQ, we can remove an unecessary conversion.

Additionally, move a member from the base case to the only one where it's used.

MozReview-Commit-ID: II5mdcl0vhK

--HG--
extra : rebase_source : 1d9edfc2803c3fadde7505b4d84293640e4311e0
2017-12-08 20:58:09 +01:00
JW Wang
a6dc3c33c1 Bug 1425170. P2 - remove unused members. r=bechen,gerald
MozReview-Commit-ID: TJZzVuEI8J

--HG--
extra : rebase_source : 3f6208a74c2a2d88373936a3dc4ee5c873fc297a
2017-12-14 10:19:41 +08:00
JW Wang
d764d94fc5 Bug 1425170. P1 - add a member to ChannelMediaResource to store the nsIPrincipal. r=bechen,gerald
Note SharedInfo contains an array to store the original and cloned resources.
This allows us to iterate over resources on the main thread without taking the
cache monitor.

MozReview-Commit-ID: K3gcPYbf72Z

--HG--
extra : rebase_source : eaa070a889797c29d2599b4c3d2507f440d476e7
extra : source : 5dc420815d7a26771c176cdc7b6a87a1c2278da8
2017-12-08 11:08:38 +08:00
Jean-Yves Avenard
ec469fdddc Bug 1425608 - Don't delete AutoTaskQueue::mTaskQueue on the main thread. r=gerald
MozReview-Commit-ID: I2R4OYB0Jyc

--HG--
extra : rebase_source : 1b8c1caffef91b5888b04b336bd20a74df6711a1
2017-12-16 00:46:49 +01:00
John Lin
2ced369af1 Bug 1424930 - remove telemetry for tunneled playback support on Android devices. r=jwwang
MozReview-Commit-ID: HKJ0gBBfRKT

--HG--
extra : rebase_source : 545e1ae8f97cfebed6c2ac6e8c3b837274687f14
2017-12-13 10:23:58 -06:00
Munro Mengjue Chiang
cd5c9af5e7 Bug 1424191 - set mImages[i] to nullptr in MediaEngineRemoteVideoSource::Start(). r=pehrsons
MozReview-Commit-ID: LK3gFynesoE

--HG--
extra : rebase_source : ead4957e39029ae7828654d0f6dc92ab5d11a508
2017-12-12 14:56:52 -06:00
Dan Minor
1907956909 Bug 1424906 - Fix PeriodicWave disableNormalization false behaviour; r=padenot
This adds a scaling factor of 0.5 even when normalization is
disabled, which is required for correct results.

MozReview-Commit-ID: J0VbMcaacGc

--HG--
extra : rebase_source : 1a8e2dd21a6a48a02fbafda994e42b59c5761ea4
2017-12-14 09:43:21 -06:00
Narcis Beleuzu
a8f33facb2 Backed out changeset db713228c8e3 (bug 1425150) for wpt failures on core/platform.cpp r=abackout on a CLOSED TREE 2017-12-14 23:23:20 +02:00
Paul Adenot
17ca0b45f8 Bug 1425150 - Register AudioCallbackDriver to the Gecko Profiler. r=jya
MozReview-Commit-ID: 3rJbF8Kq0zx

--HG--
extra : rebase_source : 49719ea92da9c1c556b1c3d10a06d3f2cdc3b08f
2017-12-13 17:10:14 -06:00
Dorel Luca
110706c3c0 Merge mozilla-inbound to mozilla-central r=merge a=merge 2017-12-14 11:54:15 +02:00
JW Wang
4b584fc48b Bug 1424973. P2 - remove unused MediaDecoder::IsLiveStream() and friends. r=bechen,gerald
MozReview-Commit-ID: Hf3QAFoq97x

--HG--
extra : rebase_source : 0cbfaaec37dea3ab0ab4ad0622bae8056e383ec0
extra : intermediate-source : b591e2e854d0c480f889aa6ebe87f4892ffc0cdc
extra : source : 13db1fcd03825077382e41235c02d1f8ecc5edf2
2017-12-06 16:24:31 +08:00
JW Wang
bb45ff010e Bug 1424973. P1 - propagate 'IsLiveStream' changes to MDSM in MediaDecoder subclasses. r=bechen,gerald
MozReview-Commit-ID: 8wSZf7pRERP

--HG--
extra : rebase_source : c2bea725064f5ad2e1cd1de1b8b9c19994bad89b
extra : intermediate-source : 54da627350d8a6276f9ad5d14a7191cb05957901
extra : source : dc582401401272df3150fb639bdf0ad05d749a06
2017-12-06 16:00:20 +08:00
JW Wang
0764603851 Bug 1424937 - read as many bytes as possible before giving up reading due to download ends abnormally. r=bechen,gerald
MozReview-Commit-ID: 39vdgyY5NCT

--HG--
extra : rebase_source : d476d0d2b725b94ed750c575bbb6708098f89bb3
2017-12-13 18:28:16 +08:00
Alastor Wu
3a6045f260 Bug 1424903 - disable test_autoplay_policy.html on Android 6.0. r=jolin
MozReview-Commit-ID: 1QKNh4jrNYw

--HG--
extra : rebase_source : aed78cb8659c66c662525331c3c98104b84b2bdf
2017-12-12 13:38:17 -06:00
JW Wang
381f8f5795 Bug 1423482 - ChannelMediaResource::CacheClientNotifyDataReceived() should use mCallback->AbstractMainThread() to dispatch tasks. r=bechen
To be consistent with other functions.

MozReview-Commit-ID: 1adZkXx2VkB

--HG--
extra : rebase_source : b7c420c717ffc95feb73749305fd25e3bba12ae1
extra : intermediate-source : a7a9f6ae0a0291c76f2eee0e89f57684df98a061
extra : source : 9055561c3203e06c0e2d6d0daaa76f3e85dc1b2c
2017-12-06 16:01:12 +08:00
JW Wang
29f9e59896 Bug 1423465. P7 - GetOwner()->DownloadProgressed() should be called after updating mCanPlayThrough. r=bechen,gerald
GetOwner()->DownloadProgressed() will update readyState of the media element
which will need to read mCanPlayThrough.

MozReview-Commit-ID: EDHlLJjKDoL

--HG--
extra : rebase_source : df4ffabc02f9e6b4b20e5fa6c9be6988570a9974
extra : intermediate-source : 371a6509c04bf89edb07b3437a41a9b36dba25ff
extra : source : 227ffb87de637994baefab6b178afeae4673a2ef
2017-12-05 16:01:18 +08:00
JW Wang
dffc1aa9bb Bug 1423465. P6 - assert some MediaCacheStream functions are run off the main thread. r=bechen,gerald
MozReview-Commit-ID: I0GWj6I82Iv

--HG--
extra : rebase_source : 1f0271b1eae63391d23f5997359227af73d427d5
extra : intermediate-source : 30c996ff54197b85b97393762b7598cbbb528c0c
extra : source : 1f3a35716479caf1e493472762e28c586ef5f7dd
2017-12-05 15:23:43 +08:00
JW Wang
477cabbc8f Bug 1423465. P5 - run ComputePlaybackRate() off the main thread. r=bechen,gerald
MozReview-Commit-ID: DhaZUVcHhiy

--HG--
extra : rebase_source : ff8e0ce52daee77aebee94bca8ec4f95b5ea51df
extra : intermediate-source : 25eb2b6120e83602b06bc8ef76c2c7e45a412966
extra : source : c3c25dee22ef2019a96e0c66cf5a1c2d6d1f4f17
2017-12-05 15:21:45 +08:00
JW Wang
2d2b8a57e9 Bug 1423465. P4 - run GetStatistics() off the main thread. r=bechen,gerald
Note we cache the result of GetStatistics().CanPlayThrough() which is needed
by CanPlayThroughImpl().

MozReview-Commit-ID: QYNqk1pUN5

--HG--
extra : rebase_source : e4ce549f1069fd3106da4f68dcb429afa291aa5d
extra : intermediate-source : 9d7c532bdad7733bc3f9e725feecd83bea1ab156
extra : source : b552dad39a644026eb0d62e7e975c4120e550447
2017-12-05 15:06:34 +08:00
JW Wang
26a216be5d Bug 1423465. P3 - assert MediaCacheStream::SetPlaybackRate() is called off the main thread. r=bechen,gerald
MozReview-Commit-ID: CZCLkRa0T2v

--HG--
extra : rebase_source : d0a8afda90bd429891ead94788de81d743c1216c
extra : intermediate-source : 4adc4ebb716f29f0a2de5510ff36607283024687
extra : source : 1ed4c290b9294e965f2d9a80ace20776a5e84ead
2017-12-05 14:15:38 +08:00
JW Wang
8bf10990f3 Bug 1423465. P2 - run UpdatePlaybackRate() off the main thread. r=bechen,gerald
MozReview-Commit-ID: Ktw4IxzHT2f

--HG--
extra : rebase_source : 9edd14062ad1692bf4a85655ac126e1d199e9e8c
extra : intermediate-source : 78e2a1d577508ff3619debdbdd35c64fcd1b0b1e
extra : source : 970eb209afa288929bed8f8b16c40c48c0dc5fda
2017-12-05 14:13:22 +08:00
JW Wang
a017f96aba Bug 1423465. P1 - expose MDSM::OwnerThread() to the public. r=bechen,gerald
This will be used by ChannelMediaDecoder to run some code off the main thread.

MozReview-Commit-ID: 7Ecej11GBvy

--HG--
extra : rebase_source : aeafd934cb76d426d3c4f49ebd0736b013cbe588
extra : intermediate-source : 5cb1e7b389daf48c77c2e0bf632cefaeff5a2b40
extra : source : 813e6593f8e9772895df7acb353dbf0137008bb0
2017-12-05 11:03:34 +08:00
JW Wang
9d9ec003d1 Bug 1420608. P1 - don't switch off blank decoder when seeking begins. r=gerald
When looping videos in a background tab, SeekingState::Enter() will switch off
blank decoder and then DecodingState::Enter() will switch it on again. It is a
waste of CPU cycles when the tab never goes to the foreground. The overhread is
even more significant when looping short files.

We should resume video decoding only when necessary that is we check in
DecodingState::Enter() to see if mVideoDecodeSuspended matches mVideoDecodeMode.

MozReview-Commit-ID: 54vq7mEjWQf

--HG--
extra : rebase_source : ce04310d06df2effd65d8c301e07c7fef01bdbd1
extra : intermediate-source : 83dff897174fb440e5da24843186ff9fd39d15c9
extra : source : d0834777c96255e15dc44d1865bd354ab67ec8fe
2017-12-07 11:38:23 +08:00
JW Wang
32ec06ebb2 Bug 1422657. P2 - remove unused mDecoderPosition and related code. r=bechen,gerald
MozReview-Commit-ID: 8RobmJKC40i

--HG--
extra : rebase_source : 2b9abaa1a22b78cadbbdbf99d1c778fe82f84eac
extra : source : 7267883c2b722f806fc11c35ff9c8c5743a57bf3
2017-12-01 14:02:44 +08:00
JW Wang
d72cfc05d2 Bug 1422657. P1 - GetStatistics() should pass mPlaybackPosition to mResource->GetCachedDataEnd(). r=bechen,gerald
Usually mDecoderPosition and mPlaybackPosition are in the same cached range so
GetCachedDataEnd(mDecoderPosition) and GetCachedDataEnd(mPlaybackPosition) will
give the same result.

It also makes more sense to pass the playback position instead of decoder
position since 'canplaythrough' is about playback instead of decoding.

MozReview-Commit-ID: Kk1uUeSFTCI

--HG--
extra : rebase_source : 1f40adce4b93dbcf55cb3de9f5c16fdd6d0b6bee
extra : source : 9c77dddb2faca84bd8cf09fc2007e18986e62f64
2017-12-01 13:53:46 +08:00
James Cheng
8107c910bc Bug 1422669 - Part4 - Kill string16 and replace with our SHA1 implementation. r=gerald
The reason explained in patch Part1 of Bug 1214018 and I just copy the reason below.

GetRawMachineId was returning its generated data through a 'string16', which on
Windows was conveniently equivalent to a std::wstring.

However on Mac, wstring uses 32-bit characters, so in order to comply with the
string16 interface, a lot of non-trivial code would have to be imported and
vetted.

Also, in the end GMPLoader::Load passes this string16 to SHA256_Update() as a
sequence of bytes, the actual type of the data is lost!

So to simplify this work, GetRawMachineId will now return its data through a
vector of bytes, and the platform-dependent implementations may use whatever
data type they want internally.

The Windows GetRawMachineId actually returns the same data in this vector, so
it stays compatible with the previous code.

MozReview-Commit-ID: 7xYgjndXWDX

--HG--
extra : rebase_source : 6a46bd7f06d6e4bc10bb98b600e7e5bc14c136ce
2017-12-06 16:52:31 +08:00
James Cheng
d9be66f8f8 Bug 1422669 - Part3 - Introduce rlz_lib::GetMachineId and its related helper functions. r=cpearce
Chromium uses rlz_lib::GetMachineId as a factor when calculating storage id.

MozReview-Commit-ID: AJbcnRXzi3m

--HG--
extra : rebase_source : 4e6a0eebaeec01fc7a78caeb8406d1e2ed09f1d4
2017-12-06 14:41:38 +08:00
jacheng@mozilla.com
8e31e4ddf5 Bug 1422669 - Part2 - Fix compiling error [-Werror,-Wcomma] by Part1 on OSX. r=gerald
--HG--
extra : rebase_source : 13c1151aefc9dfcfdd41bd44eafcb11828853528
2017-12-06 06:33:02 +00:00
jacheng@mozilla.com
92826eb75f Bug 1422669 - Part1 - Restore librlz from Bug 1332530. r=cpearce
Sync with the upstream(Chromium src/rlz/) and try to revert the functionality of Bug 1332530.
rlz is linked into xul.

MozReview-Commit-ID: HsjnBRPnifh

--HG--
extra : rebase_source : 2867fe353d0c8c67535d29943f3536ef59d1d75e
2017-12-06 06:33:02 +00:00
Paul Adenot
087931a5ef Bug 1423923 - Properly feed reverse stream to the AudioProcessingModule. r=pehrsons
We need to feed deinterleaved data, not interleaved data.

MozReview-Commit-ID: 99z8HA7tJgT

--HG--
extra : rebase_source : eb61b602630008683c6afdd2aad1dca0d663db86
extra : intermediate-source : 2d718ca90e07d9dfc71e86434cb04c5580405f9f
extra : source : 3ba7fe1cddec0a3dcaaf526a85b7f34072c3e199
2017-12-07 16:22:28 +01:00
Paul Adenot
ade63a75da Bug 1397793 - Don't use the AEC on a 440Hz tone when testing that audio is flowing. r=pehrsons
This brings in a lot of noise and makes the test fail.

MozReview-Commit-ID: 70EGM1q1J24

--HG--
extra : rebase_source : cab81fdfd53c537c04f1d2360a9340a3740b66a0
extra : source : c02fd9acc634860ef540a0cddb1591f294fc1f61
2017-12-04 18:16:22 +01:00
Paul Adenot
68ba9be263 Bug 1397793 - Share SharedBuffer accross SourceMediaStream. r=pehrsons
MozReview-Commit-ID: 4PEjwiA6PR8

--HG--
extra : rebase_source : 8c3d3f15eaa926f35311b66026f4d3aa10ce3ffa
extra : source : 81889a72ac45db0507c38423084f3cfce71d2ecd
2017-11-28 18:43:11 +01:00
Paul Adenot
469073f238 Bug 1397793 - Add asserts for AudioChunk invariants. r=pehrsons
MozReview-Commit-ID: CFqyMPMMHyA

--HG--
extra : rebase_source : 47d1cef3a0052a17743cfb3f77442d416cb90e28
extra : source : a0d519ba5332cacfa2fa5c070f056318ef786a42
2017-11-29 19:22:00 +01:00
Paul Adenot
0866864396 Bug 1397793 - Remove mRate from MediaEngineDefault and use GraphRate(). r=pehrsons
MozReview-Commit-ID: D9x3wICAMNA

--HG--
extra : rebase_source : 1b83343c8a459d8720a6445efbd0d390824325e4
extra : source : ea8d6efcf3efbadab838c3f720d4ad73e7afed2e
2017-11-08 15:16:06 +01:00
Paul Adenot
4c63f88aa9 Bug 1397793 - Make the assertions in the rate conversion functions in StreamTracks.h be fatal. r=pehrsons
MozReview-Commit-ID: 8nLask8nqV4

--HG--
extra : rebase_source : 33a4b5a4ff61e663d68ec7a80ab9f0b5182a2987
extra : source : 16f44ac4978a5fbeea4c11d7247a1528972314d6
2017-11-21 20:53:51 +01:00
Paul Adenot
30d795740b Bug 1397793 - Use a ControlMessage to switch between passthrough and processing mode for microphone input. r=pehsrons
MozReview-Commit-ID: EIvQKZf7oGq

--HG--
extra : rebase_source : 7e7e0cedb7069639cd6dc3d1612c4d75ce71faa3
extra : source : 771c95f2963b64f52f32c9d2770136748bbf943a
2017-11-08 14:10:45 +01:00
Paul Adenot
dce032329a Bug 1397793 - Refactor the code that sets the processing modes. r=pehrsons
MozReview-Commit-ID: IUgAfHawFIz

--HG--
extra : rebase_source : ec99875aaf24954cc93e28d4f0fe6172e6b2f9ce
extra : source : 1cf542ff868736857488fd1f2bc2271b686b5b56
2017-11-07 14:28:06 +01:00
Paul Adenot
d4aeb652b5 Bug 1397793 - Allow switching processing on/off dynamically. r=pehrsons
MozReview-Commit-ID: G0NJRkKEVeM

--HG--
extra : rebase_source : 0574254dfbfa0965ed4d1c8a07c9f535c390d8a1
extra : source : d12894d7777055463b68b8d9ea7e3d6c0940b4aa
2017-11-23 15:53:25 +01:00
Paul Adenot
14fb321adc Bug 1397793 - Move to APM - Part 2 - Actual processing. r=pehrsons
This also is long, but simple.

First, we switch to floats everywhere. This allows to work with any rate, is
more flexible with channel layout, and is a stable API (see audio_processing.h
in webrtc.org).

Then, 10ms worth of audio (already at the graph rate) are poped from the
lock-free queue (fed on the other end by the MSG mixer), and does the following:
- Down mixing to stereo (if needed)
- De-interleaving into planar buffer
- Prepare input and output config
- Actually make the API call
- Free the data

Now, first, we should use a ring buffer, and not have to free any data. Then we
also should not use a lock-free queue, and synchronously process the
reverse-stream, but this is enough code already.

Then, the actual mic data processing:
- Pop a packet from the packetizer (that gives us 10ms worth of audio, note that
we switch from int16_t to float, i.e. we don't do this conversion anymore).
- We convert to planar buffers, deinterleaving
- Prepare input and output config
- Allocate a SharedBuffer of the right size
- Process the data with the processing algorithm selected in UpdateSingleSource
- Append to the a MediaSegment, and append to the right MediaStreamTrack for the
correct SourceMediaStream (the data is already planar and all well).

MozReview-Commit-ID: 2IjgHP0GAmw

--HG--
extra : rebase_source : 1e08c4a781db8778e0532f9ef1a8e369513a2c66
extra : source : 0107b3feb84bbe0e643f505ec58e303dfd94e1a7
2017-12-04 13:34:14 +01:00
Paul Adenot
49545441d4 Bug 1397793 - Move to APM - Part 1 - UpdateSingleSource. r=pehrsons
This part is about setting on/off audio processing feature. It's long, but
it's mostly mechanichal changes, from the old API to the new one.

This also covers reseting the processing in case of device changes (with
macros).

MozReview-Commit-ID: EI2TxHRicEr

--HG--
extra : rebase_source : 5c389e00019633d371d74cdd2d881dab4d353848
extra : source : 2c7a56648de9125ae1893d54ec011b6cbb181d86
2017-10-31 18:25:41 +01:00
Paul Adenot
17c1d145ae Bug 1397793 - Remove VoEExternalMedia usage in MediaEngineWebRTCAudio and MediaEngineWebRTC. r=pehrsons
This needs the next patches to build fine, but is split out for the review.

A side effect of this patch is to break non-duplex, making the whole
init/cleanup phase much simpler.

MozReview-Commit-ID: Caqc8v7CWwZ

--HG--
extra : rebase_source : 604551cc937ee60064a263ebb5fb1550fa9a9e9f
extra : source : a781b123b252b464f805674144cc01d9dd69c391
2017-10-31 18:11:48 +01:00
Paul Adenot
520a34963f Bug 1397793 - Move MediaEngineDefault to use the MSG rate instead of something hard-coded. r=pehrsons
This is "just" for testing, but is cleaner, and skips some resampling, and is in
line with the other patches, to converge with always using MSG rate when we can.

MozReview-Commit-ID: CBQHEDQWJE3

--HG--
extra : rebase_source : 9cc113efbaa982c20d62c2863ce231dda4735257
extra : source : bf8977e0f440c0280da32a7052214834dc6701ca
2017-10-31 17:43:10 +01:00