# HG changeset patch
# Parent a4b050d8677d437a205e1cb88079ecd359cbd08d
Revert investigation patch for bmo#621446; as it is useless on desktop and breaks the build for certain compilers

diff --git a/netwerk/protocol/http/HttpChannelParent.cpp b/netwerk/protocol/http/HttpChannelParent.cpp
--- a/netwerk/protocol/http/HttpChannelParent.cpp
+++ b/netwerk/protocol/http/HttpChannelParent.cpp
@@ -52,29 +52,25 @@
 #include "nsIBadCertListener2.h"
 #include "nsICacheEntryDescriptor.h"
 #include "nsSerializationHelper.h"
 #include "nsISerializable.h"
 #include "nsIAssociatedContentSecurity.h"
 #include "nsIApplicationCacheService.h"
 #include "nsIOfflineCacheUpdate.h"
 #include "nsIRedirectChannelRegistrar.h"
-#include "prinit.h"
 
 namespace mozilla {
 namespace net {
 
 HttpChannelParent::HttpChannelParent(PBrowserParent* iframeEmbedding)
   : mIPCClosed(false)
   , mStoredStatus(0)
   , mStoredProgress(0)
   , mStoredProgressMax(0)
-  , mSentRedirect1Begin(false)
-  , mSentRedirect1BeginFailed(false)
-  , mReceivedRedirect2Verify(false)
 {
   // Ensure gHttpHandler is initialized: we need the atom table up and running.
   nsIHttpProtocolHandler* handler;
   CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &handler);
   NS_ASSERTION(handler, "no http handler");
 
   mTabParent = do_QueryObject(static_cast<TabParent*>(iframeEmbedding));
 }
@@ -326,21 +322,16 @@ HttpChannelParent::RecvUpdateAssociatedC
     mAssociatedContentSecurity->SetCountSubRequestsHighSecurity(high);
     mAssociatedContentSecurity->SetCountSubRequestsLowSecurity(low);
     mAssociatedContentSecurity->SetCountSubRequestsBrokenSecurity(broken);
     mAssociatedContentSecurity->SetCountSubRequestsNoSecurity(no);
   }
   return true;
 }
 
-// Bug 621446 investigation, we don't want conditional PR_Aborts bellow to be
-// merged to a single address.
-#pragma warning(disable : 4068)
-#pragma GCC optimize ("O0")
-
 bool
 HttpChannelParent::RecvRedirect2Verify(const nsresult& result, 
                                        const RequestHeaderTuples& changedHeaders)
 {
   if (NS_SUCCEEDED(result)) {
     nsCOMPtr<nsIHttpChannel> newHttpChannel =
         do_QueryInterface(mRedirectChannel);
 
@@ -348,40 +339,23 @@ HttpChannelParent::RecvRedirect2Verify(c
       for (PRUint32 i = 0; i < changedHeaders.Length(); i++) {
         newHttpChannel->SetRequestHeader(changedHeaders[i].mHeader,
                                          changedHeaders[i].mValue,
                                          changedHeaders[i].mMerge);
       }
     }
   }
 
-  if (!mRedirectCallback) {
-    // Bug 621446 investigation (optimization turned off above)
-    if (mReceivedRedirect2Verify)
-      NS_RUNTIMEABORT("Duplicate fire");
-    if (mSentRedirect1BeginFailed)
-      NS_RUNTIMEABORT("Send to child failed");
-    if (mSentRedirect1Begin && NS_FAILED(result))
-      NS_RUNTIMEABORT("Redirect failed");
-    if (mSentRedirect1Begin && NS_SUCCEEDED(result))
-      NS_RUNTIMEABORT("Redirect succeeded");
-    if (!mRedirectChannel)
-      NS_RUNTIMEABORT("Missing redirect channel");
-  }
-
   mReceivedRedirect2Verify = true;
 
   mRedirectCallback->OnRedirectVerifyCallback(result);
   mRedirectCallback = nsnull;
   return true;
 }
 
-// Bug 621446 investigation
-#pragma GCC reset_options
-
 bool
 HttpChannelParent::RecvDocumentChannelCleanup()
 {
   // From now on only using mAssociatedContentSecurity.  Free everything else.
   mChannel = 0;          // Reclaim some memory sooner.
   mCacheDescriptor = 0;  // Else we'll block other channels reading same URI
   return true;
 }
@@ -583,24 +557,18 @@ HttpChannelParent::StartRedirect(PRUint3
 
   nsHttpChannel *httpChan = static_cast<nsHttpChannel *>(mChannel.get());
   nsHttpResponseHead *responseHead = httpChan->GetResponseHead();
   bool result = SendRedirect1Begin(newChannelId,
                                    IPC::URI(newURI),
                                    redirectFlags,
                                    responseHead ? *responseHead
                                                 : nsHttpResponseHead());
-  if (!result) {
-    // Bug 621446 investigation
-    mSentRedirect1BeginFailed = true;
+  if (!result)
     return NS_BINDING_ABORTED;
-  }
-
-  // Bug 621446 investigation
-  mSentRedirect1Begin = true;
 
   // Result is handled in RecvRedirect2Verify above
 
   mRedirectChannel = newChannel;
   mRedirectCallback = callback;
   return NS_OK;
 }
 
diff --git a/netwerk/protocol/http/HttpChannelParent.h b/netwerk/protocol/http/HttpChannelParent.h
--- a/netwerk/protocol/http/HttpChannelParent.h
+++ b/netwerk/protocol/http/HttpChannelParent.h
@@ -128,18 +128,14 @@ private:
   nsCOMPtr<nsIChannel> mRedirectChannel;
   nsCOMPtr<nsIAsyncVerifyRedirectCallback> mRedirectCallback;
 
   // state for combining OnStatus/OnProgress with OnDataAvailable
   // into one IPDL call to child.
   nsresult mStoredStatus;
   PRUint64 mStoredProgress;
   PRUint64 mStoredProgressMax;
-
-  bool mSentRedirect1Begin : 1;
-  bool mSentRedirect1BeginFailed : 1;
-  bool mReceivedRedirect2Verify : 1;
 };
 
 } // namespace net
 } // namespace mozilla
 
 #endif // mozilla_net_HttpChannelParent_h
