Bug 864382 - Cherry-pick pieces of bug 647216 to b2g18 so that nsDOMWindowUtils::SendMouseEvent returns whether the event was PreventDefault()'ed. a=leo+
Bug 864382 - Send a click event after a contextmenu event if the later has not been caught. r=jlebar, a=leo+
Bug 878493 - DeviceStorage: Invalidate used space cache if free space changes. r=janv, a=leo+
Bug 817972 - Make Gecko Bluetooth capable of queueing file-sending requests, r=gyeh, a=leo+
Bug 879387 - Is not possible to display the buttons of " install or cancel " when the payment is completed. r=fabrice, a=leo+
Bug 868913 - [Buri][Tethering] PC can't display RNDIS com port when reset handset. r=mrbkap, a=leo+
Bug 880217 - [MMS] 'undefined' tag appears instead of MMS in thread list view. r=gene.lian, a=leo+
Bug 869196 - Update leo backup directory again, r=rail a=leo+
Backed out changeset 7fbf56d72d34 (bug 868913) for causing bug 879927 a=bustage
Back out bug 868913 for causing bug 879927. a=bustage
Bug 861896 - [b2g-ril] Call waiting feature is not working on Geeksphone Peak and Leo devices. r=vicamo, a=leo+
Bug 882105 - Typo error breaking NetworkManager.js. r=vicamo, a=leo+
Bug 880644 - [SMS/MMS] Auto suggestions returning incorrect results. r=bent, a=leo+
Bug 877302 - [Dialer] When searching for a number in contacts, display partial matches (matching the end of the number). r=bent, r=reuben, a=leo+
Bug 877607 - Convert sample dates to local timezone when return. r=gene.lian, a=leo+
Bug 877607 - Tests. r=gene.lian, a=leo+
Bug 869615 - Sanitize Contact properties everywhere, not just in init. r=bent a=leo+
Bug 856258 - Use |is| instead of |ok| to test the length of result arrays in test_contacts_basics.html. r=gwagner a=test-only
Bug 882027. Route all calls to GetNextFrameStatus for determining the readyState through nsBuiltinDecoder::UpdateReadyStateForData on the main thread. r=cpearce,a=leo+
Bug 880601. Emulate a form of keyframe skipping by allowing nsMediaOmxReader::DecodeVideoFrame to decode more than one video frame if video decoding is falling behind. r=cpearce,a=leo+

If we don't support this in any way, then we get into trouble when there is
plenty of compressed data buffered but for some reason video decoding falls
behind (maybe there was a short period where the video data wasn't available).
Audio playback continues normally, but nsMediaOmxReader keeps making one call
to ReadAudio and one to ReadVideo, and if each call to ReadAudio decodes at
least as much as the calls to ReadVideo, video decoding can never catch up
to the current audio playback position. So video never plays. And when the
video decoding point gets far enough away from the audio decoding point,
horrible things start to happen, such as video and audio reading completely
different parts of the media cache and interfering with the caching mechanism
(which assumes audio and video reads are close together).

This patch approximates keyframe skipping, and is basically just a way for
nsMediaOmxReader::DecodeVideoFrame to decode more than one frame at a time
if we need video decoding to catch up.

To prevent pathological situations, we cap both the maximum number of frames
decoded per DecodeVideoFrame and the amount of time we spend in the method
(excluding the time for the last frame).