From 6d24bfde173c82349afaf4ead728b16782e65351 Mon Sep 17 00:00:00 2001 From: Jason Duell Date: Mon, 5 Mar 2012 23:11:19 -0800 Subject: [PATCH] bug 664163 - Fix Get(Local|Remote)(Address|Port) in HttpChannelChild. r=jdm --- netwerk/protocol/http/HttpChannelChild.cpp | 35 ++------------------- netwerk/protocol/http/HttpChannelChild.h | 4 --- netwerk/test/unit/test_traceable_channel.js | 24 ++++++++------ 3 files changed, 17 insertions(+), 46 deletions(-) diff --git a/netwerk/protocol/http/HttpChannelChild.cpp b/netwerk/protocol/http/HttpChannelChild.cpp index 4df4d51f61a5..dcaf4dcc2b03 100644 --- a/netwerk/protocol/http/HttpChannelChild.cpp +++ b/netwerk/protocol/http/HttpChannelChild.cpp @@ -291,6 +291,8 @@ HttpChannelChild::OnStartRequest(const nsHttpResponseHead& responseHead, mCacheEntryAvailable = cacheEntryAvailable; mCacheExpirationTime = cacheExpirationTime; mCachedCharset = cachedCharset; + mSelfAddr = selfAddr; + mPeerAddr = peerAddr; AutoEventEnqueuer ensureSerialDispatch(mEventQ); @@ -313,9 +315,6 @@ HttpChannelChild::OnStartRequest(const nsHttpResponseHead& responseHead, rv = ApplyContentConversions(); if (NS_FAILED(rv)) Cancel(rv); - - mSelfAddr = selfAddr; - mPeerAddr = peerAddr; } class TransportAndDataEvent : public ChannelEvent @@ -1113,36 +1112,6 @@ HttpChannelChild::SetupFallbackChannel(const char *aFallbackKey) DROP_DEAD(); } -// The next four _should_ be implemented, but we need to figure out how -// to transfer the data from the chrome process first. - -NS_IMETHODIMP -HttpChannelChild::GetRemoteAddress(nsACString & _result) -{ - return NS_ERROR_NOT_AVAILABLE; -} - -NS_IMETHODIMP -HttpChannelChild::GetRemotePort(PRInt32 * _result) -{ - NS_ENSURE_ARG_POINTER(_result); - return NS_ERROR_NOT_AVAILABLE; -} - -NS_IMETHODIMP -HttpChannelChild::GetLocalAddress(nsACString & _result) -{ - return NS_ERROR_NOT_AVAILABLE; -} - -NS_IMETHODIMP -HttpChannelChild::GetLocalPort(PRInt32 * _result) -{ - NS_ENSURE_ARG_POINTER(_result); - return NS_ERROR_NOT_AVAILABLE; -} - - //----------------------------------------------------------------------------- // HttpChannelChild::nsICacheInfoChannel //----------------------------------------------------------------------------- diff --git a/netwerk/protocol/http/HttpChannelChild.h b/netwerk/protocol/http/HttpChannelChild.h index 43617ef5589c..f9f7c2e0003a 100644 --- a/netwerk/protocol/http/HttpChannelChild.h +++ b/netwerk/protocol/http/HttpChannelChild.h @@ -106,10 +106,6 @@ public: bool aMerge); // nsIHttpChannelInternal NS_IMETHOD SetupFallbackChannel(const char *aFallbackKey); - NS_IMETHOD GetLocalAddress(nsACString& addr); - NS_IMETHOD GetLocalPort(PRInt32* port); - NS_IMETHOD GetRemoteAddress(nsACString& addr); - NS_IMETHOD GetRemotePort(PRInt32* port); // nsISupportsPriority NS_IMETHOD SetPriority(PRInt32 value); // nsIResumableChannel diff --git a/netwerk/test/unit/test_traceable_channel.js b/netwerk/test/unit/test_traceable_channel.js index a62b8a2c92b3..8fb562ea57fa 100644 --- a/netwerk/test/unit/test_traceable_channel.js +++ b/netwerk/test/unit/test_traceable_channel.js @@ -22,14 +22,18 @@ TracingListener.prototype = { request.QueryInterface(Components.interfaces.nsIHttpChannelInternal); -// local/remote addresses broken in e10s: disable for now -/* - do_check_eq(request.localAddress, "127.0.0.1"); - do_check_eq(request.localPort > 0, true); - do_check_neq(request.localPort, 4444); - do_check_eq(request.remoteAddress, "127.0.0.1"); - do_check_eq(request.remotePort, 4444); -*/ + try { + do_check_eq(request.localAddress, "127.0.0.1"); + do_check_eq(request.localPort > 0, true); + do_check_neq(request.localPort, 4444); + do_check_eq(request.remoteAddress, "127.0.0.1"); + do_check_eq(request.remotePort, 4444); + } catch(e) { + do_throw("failed to get local/remote socket info"); + } + + request.QueryInterface(Components.interfaces.nsISupportsPriority); + request.priority = Ci.nsISupportsPriority.PRIORITY_LOW; // Make sure listener can't be replaced after OnStartRequest was called. request.QueryInterface(Components.interfaces.nsITraceableChannel); @@ -138,8 +142,10 @@ function channel_finished(request, input, ctx) { httpserver.stop(do_test_finished); } +// needs to be global or it'll go out of scope before it observes request +var observer = new HttpResponseExaminer(); + function run_test() { - var observer = new HttpResponseExaminer(); observer.register(); httpserver = new nsHttpServer();