[tor-bugs] #29859 [Applications/Tor Browser]: Playing videos on Twitter is not working and freezing the mobile browser

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Mar 25 21:16:27 UTC 2019


#29859: Playing videos on Twitter is not working and freezing the mobile browser
-------------------------------------------------+-------------------------
 Reporter:  gk                                   |          Owner:  tbb-
                                                 |  team
     Type:  defect                               |         Status:  new
 Priority:  High                                 |      Milestone:
Component:  Applications/Tor Browser             |        Version:
 Severity:  Normal                               |     Resolution:
 Keywords:  tbb-mobile, GeorgKoppen201903,       |  Actual Points:
  TorBrowserTeam201903, tbb-8.5-must             |
Parent ID:                                       |         Points:
 Reviewer:                                       |        Sponsor:
-------------------------------------------------+-------------------------

Comment (by sysrqb):

 Okay, I dug into this a little today. This is coming from Fennec's support
 for HLS (HTTP Live Streaming) via the vendored exoplayer2 library.

 Three easy solutions I see:
 1. Disable `MOZ_ANDROID_HLS_SUPPORT` (we can change the default value in
 `mobile/android/moz.configure`)
 1. Change the returned value in
 `dom/media/DecoderTraits.cpp::CanHandleMediaType()` for HLSDecoder from
 `CANPLAY_MAYBE` -> `CANPLAY_NO`.
 1. Disable the `media.hls.enabled` pref on Android.

 These changes are not tested. I worry only disabling
 `MOZ_ANDROID_HLS_SUPPORT` will not solve the problem if one of the other
 conditional blocks in that function returns `CANPLAY_MAYBE`. Maybe one of
 the other changes will be enough (or a combination of these).

 These don't solve the root cause where throwing an Exception within
 exoplayer2 (Java code) results in native Gecko freezing/crashing/etc. I
 suspect this is because Gecko is multi-threaded but one of the threads is
 "blocking" on a callback from exoplayer - however, this callback never
 occurs because the exception is thrown and exoplayer doesn't inform Gecko
 about this failure. exoplayer catches the exception internally and resets
 its own state. It's possible/likely the "blocking" behavior is more
 complicated, but I'm not familiar with the this area of the code or
 MediaDecoder{,StateMachine}.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29859#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list