Bug 447866's "prepatch" (attachment 581263 [details] [diff] [review]) deals with a case we first build a pipeline of pending transaction prior to discovery of Next Protocol Negotiation and transiting to SPDY on the connection. IMO it is wrong to first build a pipeline and then throw it away and alter with a spdy session. My suggestion was to first establish the SSL connection and discover the NPN value prior to building any pipelines. Patrick well argued against my suggestion since his suggested solution (to break the not-anymore-needed pipeline and spill all the transaction to a new spdy session) is needed as nsHttpConnection is used for HTTP proxying to an HTTPS server. It means, we may discover NPN=SPDY later while already having an active nsHttpConnection with a pipeline over it (currently not implemented, it is a future todo for SPDY). According this and what all specific code for HTTP proxy CONNECT we've got and going to have in nsHttpConnection, nsHttpPipeline and on some other places, my suggestion is to: - negotiate SSL in nsHalfOpenSocket to discover NPN prior to having an active connection - completely separate HTTP proxy CONNECT logic to a new class and use it also before we have an active connection object This may also ease implementation of support for secure HTTPS proxies (bug 378637).
Changing summary. This bug should overly improve issues we now have: - remove complexity of SPDY vs pipelining code, connection management, error propagation, thus make fixes of regressions simpler in all these areas - allow simpler implementation of Happy Eyeballs, etc There is more. I really believe we need to do this.
Assignee: nobody → honzab.moz
Status: NEW → ASSIGNED
Summary: Separate HTTP proxy CONNECT logic to its own class → Separate connection establishment from nsHttpConnection* code
Assignee: honzab.moz → nobody
Status: ASSIGNED → NEW
Whiteboard: [http-conn] → [http-conn][necko-would-take]
Bulk change to priority: https://bugzilla.mozilla.org/show_bug.cgi?id=1399258
Priority: -- → P5
You need to log in before you can comment on or make changes to this bug.