Closed Bug 949675 Opened 6 years ago Closed 5 years ago

Support HTTP->Rtsp Channel redirects

Categories

(Firefox OS Graveyard :: RTSP, defect)

defect
Not set

Tracking

(feature-b2g:2.0, tracking-b2g:backlog)

VERIFIED FIXED
2.0 S1 (9may)
feature-b2g 2.0
tracking-b2g backlog

People

(Reporter: mayhemer, Assigned: ethan)

References

Details

(Whiteboard: [p=1])

Attachments

(1 file, 4 obsolete files)

Right now all the job of rtsp handling is done on the child process.  This is a) insecure and unwanted b) doesn't support being redirected to (http->rtsp doesn't work).
OS: Windows 7 → All
Hardware: x86_64 → All
Blocks: 940460
Assignee: nobody → sworkman
It blocks 1.4 feature.
blocking-b2g: --- → 1.4+
Duplicate of this bug: 929897
Honza, correct me if I'm wrong, but I'm guessing the solution here is to have RTSPChannelChild implement nsIChildChannel (and RtspChannelParent implement nsIParentChannel), like FTPChannel{Child|Parent} do, and then have the RtspParentChannel call ConnectChannel if it's been created as part of a redirect?
  
  http://mxr.mozilla.org/mozilla-central/source/netwerk/protocol/ftp/FTPChannelParent.cpp#77

The situation is complicated by the fact that we seem to have a split between RtspChannel and then the e10s is done somehow by RtspChannelController--I'm not sure how that maps onto this.  But hopefully it's enough to get Ethan/Steve thinking about things at least.

(Note: the IPDL magic that creates FTPChannelCreationArgs as a type is in /netwerk/ipc/NeckoChannelParams.ipdlh)
Flags: needinfo?(honzab.moz)
RTSP has never mapped neatly onto our regular necko channels, so Honza thinks we may have an easier time supporting it by implementing bug 590682 and having it use the universal redirect logic instead.
Depends on: 590682
Flags: needinfo?(honzab.moz)
Summary: Implement IPC for RtspChannel to support redirects and be generally correct → Support HTTP->Rtsp Channel redirects
I think we should give a try to bug 590682.  There is a work-in-progress patch that allows universally wrap any nsIChannel implantation that can only work on the parent process to allow it to be used from child process.  The patch needs to be rebased tho.


Ethan, first, check that we can rip all e10s code from the current RTSP implementation and that their nsIChannel implementation conforms the contract (see the IDL, ask questions).  If it's confirmed as doable and there is no extra e10s communication (means: they DON'T send anything more then just OnStartRequest, OnDataAvailable, OnStopRequest) then it's IMO doable.

Then, please take bug 590682 and make the patch apply on top of current mozilla-central and make it build again.  It should be easy, mostly mechanical work, still, it's quite old, so some APIs or so might changed since that time.  Ask me or Jason when something is not clear.
(In reply to Honza Bambas (:mayhemer) from comment #5)
> Ethan, first, check that we can rip all e10s code from the current RTSP
> implementation and that their nsIChannel implementation conforms the
> contract (see the IDL, ask questions).  If it's confirmed as doable and
> there is no extra e10s communication (means: they DON'T send anything more
> then just OnStartRequest, OnDataAvailable, OnStopRequest) then it's IMO
> doable.

The goal is to let it work only on parent process on in the single process model.
parent process OR in the single process model.

(3:30am....)
remove 1.4 flag as this is a feature work. let's use bug dependency to manage.
blocking-b2g: 1.4+ → backlog
Whiteboard: [FT:RIL]
Assignee: sworkman → ettseng
Status: NEW → ASSIGNED
Attached patch rtsp-channel-child-wip.patch (obsolete) — Splinter Review
An initial WIP patch, which implements RtspChannelChild.
1. Inherit from nsIChildChannel, in order to use CompleteRedirectSetup().
2. Transfer the creation of RtspController from RtspMediaResource to RtspChannelChild.
3. Add itself to LoadGroup so that we can release RtspController via channel::Cancel().
Component: Networking → RTSP
Product: Core → Firefox OS
Attached patch refactor-rtspchannel-wip.patch (obsolete) — Splinter Review
Update the WIP patch.
Attachment #8393427 - Attachment is obsolete: true
Attached patch refactor-rtspchannel-wip.patch (obsolete) — Splinter Review
Attachment #8399286 - Attachment is obsolete: true
Depends on: 990862
No longer depends on: 590682
Attached patch rtsp-redirect.patch (obsolete) — Splinter Review
A WIP patch for http->rtsp redirection.
Attachment #8399406 - Attachment is obsolete: true
Remove trailing whitespaces.
Attachment #8401210 - Attachment is obsolete: true
Depends on: 992568
This bug will be resolved in bug 992568 (Refactor RtspChannel to support HTTP->RTSP redirection and rendering inside the browser), which converging implementations of several bugs.
Whiteboard: [FT:RIL]
Resolved fixed by bug 992568.

Verified by two different HTTP->RTSP redirect cases:
1. Shorten URL:
http://goo.gl/G437gm
will be redirected to:
rtsp://m.streaming.imusica.com.br/vod/mp4:takemeout?=3529931==web.local=1262=0

2. Redirect specified in HTTP URL
http://tiv-dmz.homeip.net/content/sdpgen/h264_192kbps_aacPlus_24kbps_3sec_QVGA_10_fps.sdp?redirect=1&sessionID=jSN1gtpJV1pbbxum
(This site requires authentication. User/passwd: VQGTester/VQG8017)
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
*** Note ***
RTSP video is not enabled by default for now.
Turn on it by manually setting preference:
pref("media.rtsp.video.enabled", true);

Bug 999914 will turn on RTSP video.
Whiteboard: [p=1]
Target Milestone: --- → 2.0 S1 (9may)
Verified it.

* Build information.
 - Gaia      e8a08a3f7a608993f0b302371e016e73faceea70
 - Gecko     https://hg.mozilla.org/mozilla-central/rev/2897fb554990
 - BuildID   20140505160203
 - Version   32.0a1
Status: RESOLVED → VERIFIED
feature-b2g: --- → 2.0
blocking-b2g: backlog → ---
You need to log in before you can comment on or make changes to this bug.