Fix build on openSUSE 11.2 (x86_64) by reverting a temporary debug patch (bmo#621446)
authorWolfgang Rosenauer <wr@rosenauer.org>
Tue, 20 Mar 2012 08:18:12 +0100
changeset 413 974b8a3e2d55
parent 412 aa28c4f2962a
child 414 88a71e903038
Fix build on openSUSE 11.2 (x86_64) by reverting a temporary debug patch (bmo#621446)
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/mozilla-revert_621446.patch
mozilla-revert_621446.patch
series
xulrunner/mozilla-revert_621446.patch
xulrunner/xulrunner.spec
--- a/MozillaFirefox/MozillaFirefox.spec	Mon Mar 19 10:35:51 2012 +0100
+++ b/MozillaFirefox/MozillaFirefox.spec	Tue Mar 20 08:18:12 2012 +0100
@@ -91,6 +91,7 @@
 Patch12:        mozilla-linux3.patch
 Patch14:        mozilla-disable-neon-option.patch
 Patch15:        mozilla-yarr-pcre.patch
+Patch16:        mozilla-revert_621446.patch
 # Firefox/browser
 Patch31:        firefox-browser-css.patch
 Patch32:        firefox-cross-desktop.patch
@@ -220,6 +221,7 @@
 %patch12 -p1
 %patch14 -p1
 #%patch15 -p1
+%patch16 -p1
 #
 %patch31 -p1
 %patch32 -p1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-revert_621446.patch	Tue Mar 20 08:18:12 2012 +0100
@@ -0,0 +1,1 @@
+../mozilla-revert_621446.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-revert_621446.patch	Tue Mar 20 08:18:12 2012 +0100
@@ -0,0 +1,148 @@
+# 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
--- a/series	Mon Mar 19 10:35:51 2012 +0100
+++ b/series	Tue Mar 20 08:18:12 2012 +0100
@@ -18,6 +18,7 @@
 mozilla-linux3.patch
 mozilla-arm-cpu-detection.patch
 mozilla-disable-neon-option.patch
+mozilla-revert_621446.patch
 #mozilla-yarr-pcre.patch
 
 # Firefox patches
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xulrunner/mozilla-revert_621446.patch	Tue Mar 20 08:18:12 2012 +0100
@@ -0,0 +1,1 @@
+../mozilla-revert_621446.patch
\ No newline at end of file
--- a/xulrunner/xulrunner.spec	Mon Mar 19 10:35:51 2012 +0100
+++ b/xulrunner/xulrunner.spec	Tue Mar 20 08:18:12 2012 +0100
@@ -79,6 +79,7 @@
 Patch13:        mozilla-sle11.patch
 Patch14:        mozilla-linux3.patch
 Patch15:        mozilla-arm-cpu-detection.patch
+Patch16:        mozilla-revert_621446.patch
 Patch17:        mozilla-yarr-pcre.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires:       mozilla-js = %{version}
@@ -198,6 +199,7 @@
 %endif
 %patch14 -p1
 %patch15 -p1
+%patch16 -p1
 #%patch17 -p1
 
 %build