rpms/firefox/FC-6 mozilla-369814-1.patch, NONE, 1.1 mozilla-369814-2.patch, NONE, 1.1 mozilla-373911.patch, NONE, 1.1 mozilla-391028.patch, NONE, 1.1 mozilla-393326.patch, NONE, 1.1 mozilla-402649.patch, NONE, 1.1 mozilla-403331.patch, NONE, 1.1 firefox.spec, 1.174, 1.175

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Nov 27 01:41:09 UTC 2007


Author: caillon

Update of /cvs/dist/rpms/firefox/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv7086

Modified Files:
	firefox.spec 
Added Files:
	mozilla-369814-1.patch mozilla-369814-2.patch 
	mozilla-373911.patch mozilla-391028.patch mozilla-393326.patch 
	mozilla-402649.patch mozilla-403331.patch 
Log Message:
* Thu Nov 22 2007 Christopher Aillon <caillon at redhat.com> - 1.5.0.12-7
- Add patches for mozilla bugs:
  369814,373911,391028,393326,402649,403331


mozilla-369814-1.patch:
 docshell/base/nsDocShell.cpp     |    5 +++++
 docshell/base/nsWebShell.cpp     |    3 ++-
 modules/libjar/nsJARChannel.cpp  |   33 ++++++++++++++++++++++++++++++++-
 modules/libjar/nsJARChannel.h    |    3 ++-
 netwerk/base/public/nsNetError.h |    7 +++++++
 5 files changed, 48 insertions(+), 3 deletions(-)

--- NEW FILE mozilla-369814-1.patch ---
Index: docshell/base/nsDocShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/docshell/base/nsDocShell.cpp,v
retrieving revision 1.719.2.64
diff -u -8 -p -r1.719.2.64 nsDocShell.cpp
--- docshell/base/nsDocShell.cpp	13 Sep 2007 18:32:48 -0000	1.719.2.64
+++ docshell/base/nsDocShell.cpp	14 Nov 2007 17:44:45 -0000
@@ -3052,16 +3052,21 @@ nsDocShell::DisplayLoadError(nsresult aE
         case NS_ERROR_UNKNOWN_PROXY_HOST:
             // Proxy hostname could not be resolved.
             error.AssignLiteral("proxyResolveFailure");
             break;
         case NS_ERROR_PROXY_CONNECTION_REFUSED:
             // Proxy connection was refused.
             error.AssignLiteral("proxyConnectFailure");
             break;
+        case NS_ERROR_UNSAFE_CONTENT_TYPE:
+            // XXX: We can't add new strings on the branch, abuse
+            // malformedURI
+            error.AssignLiteral("malformedURI");
+            break;
         }
     }
 
     // Test if the error should be displayed
     if (error.IsEmpty()) {
         return NS_OK;
     }
 
Index: docshell/base/nsWebShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/docshell/base/nsWebShell.cpp,v
retrieving revision 1.656.2.7
diff -u -8 -p -r1.656.2.7 nsWebShell.cpp
--- docshell/base/nsWebShell.cpp	13 Sep 2007 18:23:50 -0000	1.656.2.7
+++ docshell/base/nsWebShell.cpp	14 Nov 2007 17:44:45 -0000
@@ -843,17 +843,18 @@ nsresult nsWebShell::EndPageLoad(nsIWebP
             (isTopFrame || mUseErrorPages)) {
       DisplayLoadError(aStatus, url, nsnull, channel);
     }
     // Errors to be shown for any frame
     else if (aStatus == NS_ERROR_NET_TIMEOUT ||
              aStatus == NS_ERROR_REDIRECT_LOOP ||
              aStatus == NS_ERROR_UNKNOWN_SOCKET_TYPE ||
              aStatus == NS_ERROR_NET_INTERRUPT ||
-             aStatus == NS_ERROR_NET_RESET) {
+             aStatus == NS_ERROR_NET_RESET ||
+             aStatus == NS_ERROR_UNSAFE_CONTENT_TYPE) {
       DisplayLoadError(aStatus, url, nsnull, channel);
     }
     else if (aStatus == NS_ERROR_DOCUMENT_NOT_CACHED) {
       /* A document that was requested to be fetched *only* from
        * the cache is not in cache. May be this is one of those 
        * postdata results. Throw a  dialog to the user,
        * saying that the page has expired from cache and ask if 
        * they wish to refetch the page from the net. Do this only
Index: modules/libjar/nsJARChannel.cpp
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsJARChannel.cpp,v
retrieving revision 1.116.2.2
diff -u -8 -p -r1.116.2.2 nsJARChannel.cpp
--- modules/libjar/nsJARChannel.cpp	13 Nov 2007 19:59:01 -0000	1.116.2.2
+++ modules/libjar/nsJARChannel.cpp	14 Nov 2007 17:44:52 -0000
@@ -188,16 +188,17 @@ nsJARInputThunk::IsNonBlocking(PRBool *n
 
 //-----------------------------------------------------------------------------
 
 nsJARChannel::nsJARChannel()
     : mContentLength(-1)
     , mLoadFlags(LOAD_NORMAL)
     , mStatus(NS_OK)
     , mIsPending(PR_FALSE)
+    , mIsUnsafe(PR_TRUE)
     , mJarInput(nsnull)
 {
 #if defined(PR_LOGGING)
     if (!gJarProtocolLog)
         gJarProtocolLog = PR_NewLogModule("nsJarProtocol");
 #endif
 
     // hold an owning reference to the jar handler
@@ -283,31 +284,33 @@ nsJARChannel::EnsureJarInput(PRBool bloc
     // try to get a nsIFile directly from the url, which will often succeed.
     {
         nsCOMPtr<nsIFileURL> fileURL = do_QueryInterface(mJarBaseURI);
         if (fileURL)
             fileURL->GetFile(getter_AddRefs(mJarFile));
     }
 
     if (mJarFile) {
+        mIsUnsafe = PR_FALSE;
+
         // NOTE: we do not need to deal with mSecurityInfo here,
         // because we're loading from a local file
         rv = CreateJarInput(gJarHandler->JarCache());
     }
     else if (blocking) {
         NS_NOTREACHED("need sync downloader");
         rv = NS_ERROR_NOT_IMPLEMENTED;
     }
     else {
         // kick off an async download of the base URI...
         rv = NS_NewDownloader(getter_AddRefs(mDownloader), this);
         if (NS_SUCCEEDED(rv))
             rv = NS_OpenURI(mDownloader, nsnull, mJarBaseURI, nsnull,
                             mLoadGroup, mCallbacks,
-                            mLoadFlags & ~LOAD_DOCUMENT_URI);
+                            mLoadFlags & ~(LOAD_DOCUMENT_URI /* | LOAD_CALL_CONTENT_SNIFFERS*/));
     }
     return rv;
 
 }
 
 //-----------------------------------------------------------------------------
 // nsIRequest
 //-----------------------------------------------------------------------------
@@ -599,16 +602,19 @@ nsJARChannel::SetContentLength(PRInt32 a
 NS_IMETHODIMP
 nsJARChannel::Open(nsIInputStream **stream)
 {
     LOG(("nsJARChannel::Open [this=%x]\n", this));
 
     NS_ENSURE_TRUE(!mJarInput, NS_ERROR_IN_PROGRESS);
     NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS);
 
+    mJarFile = nsnull;
+    mIsUnsafe = PR_TRUE;
+
     nsresult rv = EnsureJarInput(PR_TRUE);
     if (NS_FAILED(rv)) return rv;
 
     if (!mJarInput)
         return NS_ERROR_UNEXPECTED;
 
     // force load the jar file now so GetContentLength will return a
     // meaningful value once we return.
@@ -620,16 +626,19 @@ nsJARChannel::Open(nsIInputStream **stre
 
 NS_IMETHODIMP
 nsJARChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *ctx)
 {
     LOG(("nsJARChannel::AsyncOpen [this=%x]\n", this));
 
     NS_ENSURE_TRUE(!mIsPending, NS_ERROR_IN_PROGRESS);
 
+    mJarFile = nsnull;
+    mIsUnsafe = PR_TRUE;
+
     // Initialize mProgressSink
     NS_QueryNotificationCallbacks(mCallbacks, mLoadGroup, mProgressSink);
 
     nsresult rv = EnsureJarInput(PR_FALSE);
     if (NS_FAILED(rv)) return rv;
 
     if (mJarInput) {
         // create input stream pump
@@ -685,32 +694,54 @@ nsJARChannel::OnDownloadComplete(nsIDown
                 rv = jarURIBranch->CloneWithJARFile(innerURI,
                                                     getter_AddRefs(newURI));
                 if (NS_SUCCEEDED(rv)) {
                     mJarURI = newURI;
                 }
             }
             status = rv;
         }
+
+        nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
+        if (httpChannel) {
+            // We only want to run scripts if the server really intended to
+            // send us a JAR file.  Check the server-supplied content type for
+            // a JAR type.
+            nsCAutoString header;
+            httpChannel->GetResponseHeader(NS_LITERAL_CSTRING("Content-Type"),
+                                           header);
+
+            nsCAutoString contentType;
+            nsCAutoString charset;
+            NS_ParseContentType(header, contentType, charset);
+
+            mIsUnsafe = !contentType.EqualsLiteral("application/java-archive") &&
+                        !contentType.EqualsLiteral("application/x-jar");
+        }
+    }
+
+    if (mIsUnsafe) {
+        status = NS_ERROR_UNSAFE_CONTENT_TYPE;
     }
 
     if (NS_SUCCEEDED(status)) {
         mJarFile = file;
     
         rv = CreateJarInput(nsnull);
         if (NS_SUCCEEDED(rv)) {
             // create input stream pump
             rv = NS_NewInputStreamPump(getter_AddRefs(mPump), mJarInput);
             if (NS_SUCCEEDED(rv))
                 rv = mPump->AsyncRead(this, nsnull);
         }
         status = rv;
     }
 
     if (NS_FAILED(status)) {
+        mStatus = status;
         OnStartRequest(nsnull, nsnull);
         OnStopRequest(nsnull, nsnull, status);
     }
 
     return NS_OK;
 }
 
 //-----------------------------------------------------------------------------
Index: modules/libjar/nsJARChannel.h
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsJARChannel.h,v
retrieving revision 1.46
diff -u -8 -p -r1.46 nsJARChannel.h
--- modules/libjar/nsJARChannel.h	21 Apr 2004 14:58:45 -0000	1.46
+++ modules/libjar/nsJARChannel.h	14 Nov 2007 17:44:52 -0000
@@ -92,17 +92,18 @@ private:
     nsCOMPtr<nsILoadGroup>          mLoadGroup;
     nsCOMPtr<nsIStreamListener>     mListener;
     nsCOMPtr<nsISupports>           mListenerContext;
     nsCString                       mContentType;
     nsCString                       mContentCharset;
     PRInt32                         mContentLength;
     PRUint32                        mLoadFlags;
     nsresult                        mStatus;
-    PRBool                          mIsPending;
+    PRPackedBool                    mIsPending;
+    PRPackedBool                    mIsUnsafe;
 
     nsJARInputThunk                *mJarInput;
     nsCOMPtr<nsIStreamListener>     mDownloader;
     nsCOMPtr<nsIInputStreamPump>    mPump;
     nsCOMPtr<nsIFile>               mJarFile;
     nsCOMPtr<nsIURI>                mJarBaseURI;
     nsCString                       mJarEntry;
 };
Index: netwerk/base/public/nsNetError.h
===================================================================
RCS file: /cvsroot/mozilla/netwerk/base/public/nsNetError.h,v
retrieving revision 1.5
diff -u -8 -p -r1.5 nsNetError.h
--- netwerk/base/public/nsNetError.h	16 Jun 2004 19:51:19 -0000	1.5
+++ netwerk/base/public/nsNetError.h	14 Nov 2007 17:44:53 -0000
@@ -214,16 +214,23 @@
     NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_NETWORK, 32)
 
 /**
  * The request failed as a result of a detected redirection loop.
  */
 #define NS_ERROR_REDIRECT_LOOP \
     NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_NETWORK, 31)
 
+/**
+ * The request failed because the content type returned by the server was
+ * not a type expected by the channel (for nested channels such as the JAR
+ * channel).
+ */
+#define NS_ERROR_UNSAFE_CONTENT_TYPE \
+    NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_NETWORK, 74)
 
 /******************************************************************************
  * FTP specific error codes:
  *
  * XXX document me
  */
 
 #define NS_ERROR_FTP_LOGIN \

mozilla-369814-2.patch:
 docshell/base/Makefile.in        |    1 
 docshell/base/nsDocShell.cpp     |   72 +++++++++++++++++++++++++++++++++++++++
 docshell/base/nsDocShell.h       |    2 +
 docshell/base/nsIDocShell.idl    |   12 ++++++
 modules/libjar/nsIJARChannel.idl |   12 ++++++
 modules/libjar/nsJARChannel.cpp  |   17 ++++++++-
 modules/libjar/nsJARChannel.h    |    2 +
 modules/libpref/src/init/all.js  |    5 ++
 8 files changed, 121 insertions(+), 2 deletions(-)

--- NEW FILE mozilla-369814-2.patch ---
diff -up mozilla/modules/libpref/src/init/all.js.mozilla-369814-2 mozilla/modules/libpref/src/init/all.js
--- mozilla/modules/libpref/src/init/all.js.mozilla-369814-2	2007-11-22 12:10:29.000000000 +0100
+++ mozilla/modules/libpref/src/init/all.js	2007-11-22 12:10:30.000000000 +0100
@@ -570,6 +570,11 @@ pref("network.http.pipelining.maxrequest
 
 // </http>
 
+// If false, remote JAR files that are served with a content type other than
+// application/java-archive or application/x-jar will not be opened
+// by the jar channel.
+pref("network.jar.open-unsafe-types", false);
+
 // This preference controls whether or not internationalized domain names (IDN)
 // are handled.  IDN requires a nsIIDNService implementation.
 pref("network.enableIDN", true);
diff -up mozilla/modules/libjar/nsIJARChannel.idl.mozilla-369814-2 mozilla/modules/libjar/nsIJARChannel.idl
--- mozilla/modules/libjar/nsIJARChannel.idl.mozilla-369814-2	2004-04-18 23:59:18.000000000 +0200
+++ mozilla/modules/libjar/nsIJARChannel.idl	2007-11-22 12:10:30.000000000 +0100
@@ -41,3 +41,15 @@
 interface nsIJARChannel : nsIChannel 
 {
 };
+
+[scriptable, uuid(2ee6d5ab-248b-47d0-aac3-3c29417e2164)]
+interface nsIJARChannel_MOZILLA_1_8_BRANCH : nsISupports
+{
+    /**
+     * Returns TRUE if the JAR file is not safe (if the content type reported
+     * by the server for a remote JAR is not of an expected type).  Scripting,
+     * redirects, and plugins should be disabled when loading from this
+     * channel.
+     */
+    readonly attribute boolean isUnsafe;
+};
diff -up mozilla/modules/libjar/nsJARChannel.h.mozilla-369814-2 mozilla/modules/libjar/nsJARChannel.h
--- mozilla/modules/libjar/nsJARChannel.h.mozilla-369814-2	2007-11-22 12:10:30.000000000 +0100
+++ mozilla/modules/libjar/nsJARChannel.h	2007-11-22 12:10:30.000000000 +0100
@@ -58,6 +58,7 @@ class nsJARInputThunk;
 //-----------------------------------------------------------------------------
 
 class nsJARChannel : public nsIJARChannel
+                   , public nsIJARChannel_MOZILLA_1_8_BRANCH
                    , public nsIDownloadObserver
                    , public nsIStreamListener
 {
@@ -66,6 +67,7 @@ public:
     NS_DECL_NSIREQUEST
     NS_DECL_NSICHANNEL
     NS_DECL_NSIJARCHANNEL
+    NS_DECL_NSIJARCHANNEL_MOZILLA_1_8_BRANCH
     NS_DECL_NSIDOWNLOADOBSERVER
     NS_DECL_NSIREQUESTOBSERVER
     NS_DECL_NSISTREAMLISTENER
diff -up mozilla/modules/libjar/nsJARChannel.cpp.mozilla-369814-2 mozilla/modules/libjar/nsJARChannel.cpp
--- mozilla/modules/libjar/nsJARChannel.cpp.mozilla-369814-2	2007-11-22 12:10:30.000000000 +0100
+++ mozilla/modules/libjar/nsJARChannel.cpp	2007-11-22 12:10:30.000000000 +0100
@@ -41,6 +41,8 @@
 #include "nsMimeTypes.h"
 #include "nsNetUtil.h"
 #include "nsInt64.h"
+#include "nsIPrefService.h"
+#include "nsIPrefBranch.h"
 
 #include "nsIScriptSecurityManager.h"
 #include "nsIPrincipal.h"
@@ -215,13 +217,14 @@ nsJARChannel::~nsJARChannel()
     NS_RELEASE(handler); // NULL parameter
 }
 
-NS_IMPL_ISUPPORTS6(nsJARChannel,
+NS_IMPL_ISUPPORTS7(nsJARChannel,
                    nsIRequest,
                    nsIChannel,
                    nsIStreamListener,
                    nsIRequestObserver,
                    nsIDownloadObserver,
-                   nsIJARChannel)
+                   nsIJARChannel,
+                   nsIJARChannel_MOZILLA_1_8_BRANCH)
 
 nsresult 
 nsJARChannel::Init(nsIURI *uri)
@@ -659,6 +662,16 @@ nsJARChannel::AsyncOpen(nsIStreamListene
 }
 
 //-----------------------------------------------------------------------------
+// nsIJARChannel
+//-----------------------------------------------------------------------------
+NS_IMETHODIMP
+nsJARChannel::GetIsUnsafe(PRBool *isUnsafe)
+{
+    *isUnsafe = mIsUnsafe;
+    return NS_OK;
+}
+
+//-----------------------------------------------------------------------------
 // nsIDownloadObserver
 //-----------------------------------------------------------------------------
 
diff -up mozilla/docshell/base/nsDocShell.cpp.mozilla-369814-2 mozilla/docshell/base/nsDocShell.cpp
--- mozilla/docshell/base/nsDocShell.cpp.mozilla-369814-2	2007-11-22 12:10:30.000000000 +0100
+++ mozilla/docshell/base/nsDocShell.cpp	2007-11-22 12:25:52.000000000 +0100
@@ -148,6 +148,8 @@
 
 #include "nsITextToSubURI.h"
 
+#include "nsIJARChannel.h"
+
 #include "prlog.h"
 #include "prmem.h"
 
@@ -372,6 +374,7 @@ NS_IMPL_RELEASE_INHERITED(nsDocShell, ns
 NS_INTERFACE_MAP_BEGIN(nsDocShell)
     NS_INTERFACE_MAP_ENTRY(nsIDocShell)
     NS_INTERFACE_MAP_ENTRY(nsIDocShell_MOZILLA_1_8_BRANCH2)
+    NS_INTERFACE_MAP_ENTRY(nsIDocShell_MOZILLA_1_8_BRANCH3)
     NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeItem)
     NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeNode)
     NS_INTERFACE_MAP_ENTRY(nsIDocShellHistory)
@@ -1522,11 +1525,50 @@ nsDocShell::SetDocumentCharsetInfo(nsIDo
 }
 
 NS_IMETHODIMP
+nsDocShell::GetChannelIsUnsafe(PRBool *aUnsafe)
+{
+    *aUnsafe = PR_FALSE;
+
+    nsCOMPtr<nsIChannel> channel;
+    if (!mContentViewer) {
+        return NS_OK;
+    }
+
+    nsCOMPtr<nsIDOMDocument> domDoc;
+    nsresult rv = mContentViewer->GetDOMDocument(getter_AddRefs(domDoc));
+    if (NS_FAILED(rv)) {
+        return NS_OK;
+    }
+
+    nsCOMPtr<nsIDocument> doc(do_QueryInterface(domDoc));
+    if (doc) {
+        channel = doc->GetChannel();
+    }
+
+    if (!channel) {
+        return NS_OK;
+    }
+
+    nsCOMPtr<nsIJARChannel_MOZILLA_1_8_BRANCH> jarChannel = do_QueryInterface(channel);
+    if (!jarChannel) {
+        return NS_OK;
+    }
+
+    return jarChannel->GetIsUnsafe(aUnsafe);
+}
+
+NS_IMETHODIMP
 nsDocShell::GetAllowPlugins(PRBool * aAllowPlugins)
 {
     NS_ENSURE_ARG_POINTER(aAllowPlugins);
 
     *aAllowPlugins = mAllowPlugins;
+    if (!mAllowPlugins) {
+        return NS_OK;
+    }
+
+    PRBool unsafe;
+    *aAllowPlugins = NS_SUCCEEDED(GetChannelIsUnsafe(&unsafe)) && !unsafe;
     return NS_OK;
 }
 
@@ -1544,6 +1586,12 @@ nsDocShell::GetAllowJavascript(PRBool * 
     NS_ENSURE_ARG_POINTER(aAllowJavascript);
 
     *aAllowJavascript = mAllowJavascript;
+    if (!mAllowJavascript) {
+        return NS_OK;
+    }
+
+    PRBool unsafe;
+    *aAllowJavascript = NS_SUCCEEDED(GetChannelIsUnsafe(&unsafe)) && !unsafe;
     return NS_OK;
 }
 
@@ -1559,6 +1607,12 @@ NS_IMETHODIMP nsDocShell::GetAllowMetaRe
     NS_ENSURE_ARG_POINTER(aReturn);
 
     *aReturn = mAllowMetaRedirects;
+    if (!mAllowMetaRedirects) {
+        return NS_OK;
+    }
+
+    PRBool unsafe;
+    *aReturn = NS_SUCCEEDED(GetChannelIsUnsafe(&unsafe)) && !unsafe;
     return NS_OK;
 }
 
@@ -6392,6 +6446,24 @@ nsDocShell::InternalLoad(nsIURI * aURI,
             (NS_SUCCEEDED(aURI->SchemeIs("data", &isScheme)) &&
              isScheme);
         if (inherits) {
+            // Don't allow loads that would inherit our security context
+            // if this document came from an unsafe channel.
+            nsCOMPtr<nsIDocShellTreeItem> treeItem = this;
+            do {
+                nsCOMPtr<nsIDocShell_MOZILLA_1_8_BRANCH3> itemDocShell =
+                    do_QueryInterface(treeItem);
+                PRBool isUnsafe;
+                if (itemDocShell &&
+                    NS_SUCCEEDED(itemDocShell->GetChannelIsUnsafe(&isUnsafe)) &&
+                    isUnsafe) {
+                    return NS_ERROR_DOM_SECURITY_ERR;
+                }
+
+                nsCOMPtr<nsIDocShellTreeItem> parent;
+                treeItem->GetSameTypeParent(getter_AddRefs(parent));
+                parent.swap(treeItem);
+            } while (treeItem);
+
             owner = GetInheritedPrincipal(PR_TRUE);
         }
     }
diff -up mozilla/docshell/base/nsIDocShell.idl.mozilla-369814-2 mozilla/docshell/base/nsIDocShell.idl
--- mozilla/docshell/base/nsIDocShell.idl.mozilla-369814-2	2007-09-13 20:29:37.000000000 +0200
+++ mozilla/docshell/base/nsIDocShell.idl	2007-11-22 12:10:30.000000000 +0100
@@ -415,3 +415,15 @@ interface nsIDocShell_MOZILLA_1_8_BRANCH
    */
   readonly attribute boolean isInUnload;
 };
+
+[scriptable, uuid(833fdff8-e0ca-4987-bf13-e10e631e504d)]
+interface nsIDocShell_MOZILLA_1_8_BRANCH3 : nsISupports
+{
+  /**
+   * Find out if the currently loaded document came from a suspicious channel
+   * (such as a JAR channel where the server-returned content type isn't a
+   * known JAR type).
+   */
+  readonly attribute boolean channelIsUnsafe;
+};
+
diff -up mozilla/docshell/base/Makefile.in.mozilla-369814-2 mozilla/docshell/base/Makefile.in
--- mozilla/docshell/base/Makefile.in.mozilla-369814-2	2005-08-10 03:45:30.000000000 +0200
+++ mozilla/docshell/base/Makefile.in	2007-11-22 12:10:30.000000000 +0100
@@ -84,6 +84,7 @@ REQUIRES	= xpcom \
 		  windowwatcher \
 		  imglib2 \
 		  mimetype \
+		  jar \
 		  $(NULL)
 
 SDK_XPIDLSRCS = \
diff -up mozilla/docshell/base/nsDocShell.h.mozilla-369814-2 mozilla/docshell/base/nsDocShell.h
--- mozilla/docshell/base/nsDocShell.h.mozilla-369814-2	2007-11-22 12:10:29.000000000 +0100
+++ mozilla/docshell/base/nsDocShell.h	2007-11-22 12:10:30.000000000 +0100
@@ -205,6 +205,7 @@ protected:
 class nsDocShell : public nsDocLoader,
                    public nsIDocShell,
                    public nsIDocShell_MOZILLA_1_8_BRANCH2,
+                   public nsIDocShell_MOZILLA_1_8_BRANCH3,
                    public nsIDocShellTreeItem, 
                    public nsIDocShellTreeNode,
                    public nsIDocShellHistory,
@@ -233,6 +234,7 @@ public:
 
     NS_DECL_NSIDOCSHELL
     NS_DECL_NSIDOCSHELL_MOZILLA_1_8_BRANCH2
+    NS_DECL_NSIDOCSHELL_MOZILLA_1_8_BRANCH3
     NS_DECL_NSIDOCSHELLTREEITEM
     NS_DECL_NSIDOCSHELLTREENODE
     NS_DECL_NSIDOCSHELLHISTORY

mozilla-373911.patch:
 content/xbl/src/nsBindingManager.cpp |   48 +++++++++++++++++++++--------------
 layout/base/nsPresShell.cpp          |    9 ++++--
 2 files changed, 35 insertions(+), 22 deletions(-)

--- NEW FILE mozilla-373911.patch ---
https://bugzilla.mozilla.org/show_bug.cgi?id=373911

Index: content/xbl/src/nsBindingManager.cpp
===================================================================
RCS file: /cvsroot/mozilla/content/xbl/src/nsBindingManager.cpp,v
retrieving revision 1.136.2.6
diff -u -8 -p -r1.136.2.6 nsBindingManager.cpp
--- content/xbl/src/nsBindingManager.cpp	4 Oct 2007 02:37:43 -0000	1.136.2.6
+++ content/xbl/src/nsBindingManager.cpp	23 Oct 2007 11:56:00 -0000
@@ -852,46 +852,56 @@ nsBindingManager::ProcessAttachedQueue()
     NS_RELEASE(binding);
   }
 
   mProcessingAttachedStack = PR_FALSE;
   NS_ASSERTION(mAttachedStack.Count() == 0, "How did we get here?");
   return NS_OK;
 }
 
+// Keep bindings and bound elements alive while executing detached handlers.
+struct BindingTableReadClosure
+{
+  nsCOMArray<nsIContent> mBoundElements;
+  nsVoidArray            mBindings;
+};
+
 PR_STATIC_CALLBACK(PLDHashOperator)
 AccumulateBindingsToDetach(nsISupports *aKey, nsXBLBinding *aBinding,
-                           void* aVoidArray)
+                           void* aClosure)
 {
-  nsVoidArray* arr = NS_STATIC_CAST(nsVoidArray*, aVoidArray);
-  // Hold an owning reference to this binding, just in case
-  if (arr->AppendElement(aBinding))
-    NS_ADDREF(aBinding);
-  return PL_DHASH_NEXT;
-}
+  BindingTableReadClosure* closure =
+    NS_STATIC_CAST(BindingTableReadClosure*, aClosure);
+  if (aBinding && closure->mBindings.AppendElement(aBinding)) {
+    if (!closure->mBoundElements.AppendObject(aBinding->GetBoundElement())) {
+      closure->mBindings.RemoveElementAt(closure->mBindings.Count() - 1);
+    } else {
+      NS_ADDREF(aBinding);
+    }
+  }
 
-PR_STATIC_CALLBACK(PRBool)
-ExecuteDetachedHandler(void* aBinding, void* aClosure)
-{
-  NS_PRECONDITION(aBinding, "Null binding in list?");
-  nsXBLBinding* binding = NS_STATIC_CAST(nsXBLBinding*, aBinding);
-  binding->ExecuteDetachedHandler();
-  // Drop our ref to the binding now
-  NS_RELEASE(binding);
-  return PR_TRUE;
+  return PL_DHASH_NEXT;
 }
 
 NS_IMETHODIMP
 nsBindingManager::ExecuteDetachedHandlers()
 {
   // Walk our hashtable of bindings.
   if (mBindingTable.IsInitialized()) {
-    nsVoidArray bindingsToDetach;
-    mBindingTable.EnumerateRead(AccumulateBindingsToDetach, &bindingsToDetach);
-    bindingsToDetach.EnumerateForwards(ExecuteDetachedHandler, nsnull);
+    BindingTableReadClosure closure;
+    mBindingTable.EnumerateRead(AccumulateBindingsToDetach, &closure);
+    PRUint32 i, count = closure.mBindings.Count();
+    for (i = 0; i < count; ++i) {
+      NS_STATIC_CAST(nsXBLBinding*, closure.mBindings[i])
+        ->ExecuteDetachedHandler();
+    }
+    for (i = 0; i < count; ++i) {
+      nsXBLBinding* b = NS_STATIC_CAST(nsXBLBinding*, closure.mBindings[i]);
+      NS_RELEASE(b);
+    }
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsBindingManager::PutXBLDocumentInfo(nsIXBLDocumentInfo* aDocumentInfo)
 {
   NS_PRECONDITION(aDocumentInfo, "Must have a non-null documentinfo!");
Index: layout/base/nsPresShell.cpp
===================================================================
RCS file: /cvsroot/mozilla/layout/base/nsPresShell.cpp,v
retrieving revision 3.852.2.23
diff -u -8 -p -r3.852.2.23 nsPresShell.cpp
--- layout/base/nsPresShell.cpp	8 Oct 2007 19:30:56 -0000	3.852.2.23
+++ layout/base/nsPresShell.cpp	23 Oct 2007 11:56:03 -0000
@@ -5400,21 +5400,24 @@ PresShell::FlushPendingNotifications(moz
   NS_ASSERTION(aType & (Flush_StyleReresolves | Flush_OnlyReflow |
                         Flush_OnlyPaint),
                "Why did we get called?");
   
   PRBool isSafeToFlush;
   IsSafeToFlush(isSafeToFlush);
 
   NS_ASSERTION(!isSafeToFlush || mViewManager, "Must have view manager");
-  if (isSafeToFlush && mViewManager) {
+  // Make sure the view manager stays alive while batching view updates.
+  nsCOMPtr<nsIViewManager> viewManager = mViewManager;
+  if (isSafeToFlush && viewManager) {
+
     // Style reresolves not in conjunction with reflows can't cause
     // painting or geometry changes, so don't bother with view update
     // batching if we only have style reresolve
-    mViewManager->BeginUpdateViewBatch();
+    viewManager->BeginUpdateViewBatch();
 
     if (aType & Flush_StyleReresolves) {
       // Processing pending restyles can kill us, and some callers only
       // hold weak refs when calling FlushPendingNotifications().  :(
       nsCOMPtr<nsIPresShell> kungFuDeathGrip(this);
       mFrameConstructor->ProcessPendingRestyles();
       if (mIsDestroying) {
         // We no longer have a view manager and all that.
@@ -5444,17 +5447,17 @@ PresShell::FlushPendingNotifications(moz
       updateFlags = NS_VMREFRESH_IMMEDIATE;
     }
     else if (!(aType & Flush_OnlyReflow)) {
       // Not flushing reflows, so do deferred invalidates.  This will keep us
       // from possibly flushing out reflows due to invalidates being processed
       // at the end of this view batch.
       updateFlags = NS_VMREFRESH_DEFERRED;
     }
-    mViewManager->EndUpdateViewBatch(updateFlags);
+    viewManager->EndUpdateViewBatch(updateFlags);
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 PresShell::IsReflowLocked(PRBool* aIsReflowLocked) 
 {


mozilla-391028.patch:
 nsCanvasRenderingContext2D.cpp |    5 +++++
 1 files changed, 5 insertions(+)

--- NEW FILE mozilla-391028.patch ---
Index: mozilla/content/canvas/src/nsCanvasRenderingContext2D.cpp
===================================================================
RCS file: /cvsroot/mozilla/content/canvas/src/nsCanvasRenderingContext2D.cpp,v
retrieving revision 1.22.2.3.2.5
diff -d -u -p -r1.22.2.3.2.5 nsCanvasRenderingContext2D.cpp
--- mozilla/content/canvas/src/nsCanvasRenderingContext2D.cpp	29 Nov 2006 21:22:41 -0000	1.22.2.3.2.5
+++ mozilla/content/canvas/src/nsCanvasRenderingContext2D.cpp	21 Nov 2007 19:45:28 -0000
@@ -1611,6 +1611,11 @@ nsCanvasRenderingContext2D::CairoSurface
         NS_ENSURE_SUCCESS(rv, rv);
         if (!imgRequest)
             return NS_ERROR_NOT_AVAILABLE;
+
+        PRUint32 status;
+        imgRequest->GetImageStatus(&status);
+        if ((status & imgIRequest::STATUS_LOAD_COMPLETE) == 0)
+            return NS_ERROR_NOT_AVAILABLE;
         
         rv = imgRequest->GetImage(getter_AddRefs(imgContainer));
         NS_ENSURE_SUCCESS(rv, rv);

mozilla-393326.patch:
 nsXBLService.cpp |    3 +++
 1 files changed, 3 insertions(+)

--- NEW FILE mozilla-393326.patch ---
https://bugzilla.mozilla.org/show_bug.cgi?id=393326

Index: content/xbl/src/nsXBLService.cpp
===================================================================
RCS file: /cvsroot/mozilla/content/xbl/src/nsXBLService.cpp,v
retrieving revision 1.204.4.2
diff -u -p -d -8 -r1.204.4.2 nsXBLService.cpp
--- content/xbl/src/nsXBLService.cpp	4 Apr 2006 18:09:29 -0000	1.204.4.2
+++ content/xbl/src/nsXBLService.cpp	6 Oct 2007 06:02:37 -0000
@@ -160,17 +160,20 @@ public:
       shell->GetPrimaryFrameFor(mBoundElement, &childFrame);
       if (!childFrame) {
         // Check to see if it's in the undisplayed content map.
         nsStyleContext* sc =
           shell->FrameManager()->GetUndisplayedContent(mBoundElement);
 
         if (!sc) {
           nsCOMPtr<nsIDocumentObserver> obs(do_QueryInterface(shell));
+          nsCOMPtr<nsIDocument> doc = shell->GetDocument();
+          obs->BeginUpdate(doc, UPDATE_CONTENT_MODEL);
           obs->ContentInserted(doc, parent, mBoundElement, index);
+          obs->EndUpdate(doc, UPDATE_CONTENT_MODEL);
         }
       }
     }
   }
 
   static nsIXBLService* gXBLService;
   static int gRefCnt;
 


mozilla-402649.patch:
 nsGlobalWindow.h |    3 ++-
 nsLocation.cpp   |   20 +++++++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

--- NEW FILE mozilla-402649.patch ---
Index: dom/src/base/nsGlobalWindow.h
===================================================================
RCS file: /cvsroot/mozilla/dom/src/base/nsGlobalWindow.h,v
retrieving revision 1.250.2.25
diff -u -p -d -8 -r1.250.2.25 nsGlobalWindow.h
--- dom/src/base/nsGlobalWindow.h	11 Jul 2007 17:45:52 -0000	1.250.2.25
+++ dom/src/base/nsGlobalWindow.h	7 Nov 2007 05:13:30 -0000
@@ -751,17 +751,18 @@ protected:
   nsresult GetURI(nsIURI** aURL, PRBool aGetInnermostURI = PR_FALSE);
   nsresult GetWritableURI(nsIURI** aURL);
   nsresult SetURI(nsIURI* aURL, PRBool aReplace = PR_FALSE);
   nsresult SetHrefWithBase(const nsAString& aHref, nsIURI* aBase,
                            PRBool aReplace);
   nsresult SetHrefWithContext(JSContext* cx, const nsAString& aHref,
                               PRBool aReplace);
 
-  nsresult GetSourceURL(JSContext* cx, nsIURI** sourceURL);
+  nsresult GetSourceURL(JSContext* cx, nsIPrincipal* callerPrincipal,
+                        nsIURI** sourceURL);
   nsresult GetSourceBaseURL(JSContext* cx, nsIURI** sourceURL);
   nsresult GetSourceDocument(JSContext* cx, nsIDocument** aDocument);
 
   nsresult CheckURL(nsIURI *url, nsIDocShellLoadInfo** aLoadInfo);
   nsresult FindUsableBaseURI(nsIURI * aBaseURI, nsIDocShell * aParent, nsIURI ** aUsableURI);
 
   nsWeakPtr mDocShell;
 };
Index: dom/src/base/nsLocation.cpp
===================================================================
RCS file: /cvsroot/mozilla/dom/src/base/nsLocation.cpp,v
retrieving revision 1.136.2.2
diff -u -p -d -8 -r1.136.2.2 nsLocation.cpp
--- dom/src/base/nsLocation.cpp	22 Jun 2006 22:19:29 -0000	1.136.2.2
+++ dom/src/base/nsLocation.cpp	7 Nov 2007 05:16:45 -0000
@@ -215,17 +215,17 @@ nsLocation::CheckURL(nsIURI* aURI, nsIDo
 
     // Now get the principal to use when loading the URI
     nsCOMPtr<nsIPrincipal> principal;
     if (NS_FAILED(secMan->GetSubjectPrincipal(getter_AddRefs(principal))) ||
         !principal)
       return NS_ERROR_FAILURE;
     owner = do_QueryInterface(principal);
 
-    GetSourceURL(cx, getter_AddRefs(sourceURI));
+    GetSourceURL(cx, principal, getter_AddRefs(sourceURI));
   }
 
   // Create load info
   nsCOMPtr<nsIDocShellLoadInfo> loadInfo;
   docShell->CreateLoadInfo(getter_AddRefs(loadInfo));
   NS_ENSURE_TRUE(loadInfo, NS_ERROR_FAILURE);
 
   loadInfo->SetOwner(owner);
@@ -1021,20 +1021,30 @@ nsLocation::GetSourceBaseURL(JSContext* 
   } else {
     *sourceURL = nsnull;
   }
 
   return rv;
 }
 
 nsresult
-nsLocation::GetSourceURL(JSContext* cx, nsIURI** sourceURL)
+nsLocation::GetSourceURL(JSContext* cx, nsIPrincipal* callerPrincipal,
+                         nsIURI** sourceURL)
 {
+  NS_PRECONDITION(callerPrincipal, "Must have caller principal here");
+  
+  *sourceURL = nsnull;
+  
   nsCOMPtr<nsIDocument> doc;
   nsresult rv = GetSourceDocument(cx, getter_AddRefs(doc));
   if (doc) {
-    NS_IF_ADDREF(*sourceURL = doc->GetDocumentURI());
-  } else {
-    *sourceURL = nsnull;
+    nsIPrincipal* docPrincipal = doc->GetPrincipal();
+    if (docPrincipal) {
+      PRBool subsumes;
+      rv = callerPrincipal->Subsumes(docPrincipal, &subsumes);
+      if (NS_SUCCEEDED(rv) && subsumes) {
+        NS_IF_ADDREF(*sourceURL = doc->GetDocumentURI());
+      }
+    }
   }
 
   return rv;
 }


mozilla-403331.patch:
 nsIJARURI.idl    |   10 +++++++++
 nsJARChannel.cpp |   33 ++++++++++++++++++++++++++++---
 nsJARURI.cpp     |   58 ++++++++++++++++++++++++++++++++++++-------------------
 nsJARURI.h       |    3 +-
 4 files changed, 80 insertions(+), 24 deletions(-)

--- NEW FILE mozilla-403331.patch ---
? netwerk/base/public/nsIAllowScriptsChannel.idl
Index: modules/libjar/nsIJARURI.idl
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsIJARURI.idl,v
retrieving revision 1.5
diff -u -8 -p -r1.5 nsIJARURI.idl
--- modules/libjar/nsIJARURI.idl	18 Apr 2004 21:59:18 -0000	1.5
+++ modules/libjar/nsIJARURI.idl	13 Nov 2007 10:20:31 -0000
@@ -57,8 +57,18 @@ interface nsIJARURI : nsIURL {
     attribute nsIURI JARFile;
 
     /**
      * Returns the entry specified for this JAR URI.
      * eg ocean.html
      */
     attribute AUTF8String JAREntry;
 };
+
+[scriptable, uuid(66072817-f872-42ee-a0a1-cdedd59eb8cb)]
+interface nsIJARURI_MOZILLA_1_8_BRANCH : nsISupports
+{
+    /**
+     * Create a clone of the JAR URI with a new root URI (the URI for the
+     * actual JAR file).
+     */
+    nsIJARURI cloneWithJARFile(in nsIURI jarFile);
+};
Index: modules/libjar/nsJARChannel.cpp
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsJARChannel.cpp,v
retrieving revision 1.116.2.1
diff -u -8 -p -r1.116.2.1 nsJARChannel.cpp
--- modules/libjar/nsJARChannel.cpp	13 Aug 2005 19:33:52 -0000	1.116.2.1
+++ modules/libjar/nsJARChannel.cpp	13 Nov 2007 10:20:32 -0000
@@ -655,25 +655,52 @@ nsJARChannel::AsyncOpen(nsIStreamListene
 
 NS_IMETHODIMP
 nsJARChannel::OnDownloadComplete(nsIDownloader *downloader,
                                  nsIRequest    *request,
                                  nsISupports   *context,
                                  nsresult       status,
                                  nsIFile       *file)
 {
+    nsresult rv;
+
     // Grab the security info from our base channel
     nsCOMPtr<nsIChannel> channel(do_QueryInterface(request));
-    if (channel)
+    if (channel) {
         channel->GetSecurityInfo(getter_AddRefs(mSecurityInfo));
-    
+
+        PRUint32 loadFlags;
+        channel->GetLoadFlags(&loadFlags);
+        if (loadFlags & LOAD_REPLACE) {
+            mLoadFlags |= LOAD_REPLACE;
+
+            if (!mOriginalURI) {
+                SetOriginalURI(mJarURI);
+            }
+
+            nsCOMPtr<nsIURI> innerURI;
+            rv = channel->GetURI(getter_AddRefs(innerURI));
+            if (NS_SUCCEEDED(rv)) {
+                nsCOMPtr<nsIJARURI> newURI;
+                nsCOMPtr<nsIJARURI_MOZILLA_1_8_BRANCH> jarURIBranch =
+                    do_QueryInterface(mJarURI);
+                rv = jarURIBranch->CloneWithJARFile(innerURI,
+                                                    getter_AddRefs(newURI));
+                if (NS_SUCCEEDED(rv)) {
+                    mJarURI = newURI;
+                }
+            }
+            status = rv;
+        }
+    }
+
     if (NS_SUCCEEDED(status)) {
         mJarFile = file;
     
-        nsresult rv = CreateJarInput(nsnull);
+        rv = CreateJarInput(nsnull);
         if (NS_SUCCEEDED(rv)) {
             // create input stream pump
             rv = NS_NewInputStreamPump(getter_AddRefs(mPump), mJarInput);
             if (NS_SUCCEEDED(rv))
                 rv = mPump->AsyncRead(this, nsnull);
         }
         status = rv;
     }
Index: modules/libjar/nsJARURI.cpp
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsJARURI.cpp,v
retrieving revision 1.51
diff -u -8 -p -r1.51 nsJARURI.cpp
--- modules/libjar/nsJARURI.cpp	23 Jan 2005 23:03:39 -0000	1.51
+++ modules/libjar/nsJARURI.cpp	13 Nov 2007 10:20:33 -0000
@@ -65,16 +65,17 @@ nsJARURI::~nsJARURI()
 // XXX Why is this threadsafe?
 NS_IMPL_THREADSAFE_ADDREF(nsJARURI)
 NS_IMPL_THREADSAFE_RELEASE(nsJARURI)
 NS_INTERFACE_MAP_BEGIN(nsJARURI)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIJARURI)
   NS_INTERFACE_MAP_ENTRY(nsIURI)
   NS_INTERFACE_MAP_ENTRY(nsIURL)
   NS_INTERFACE_MAP_ENTRY(nsIJARURI)
+  NS_INTERFACE_MAP_ENTRY(nsIJARURI_MOZILLA_1_8_BRANCH)
   NS_INTERFACE_MAP_ENTRY(nsISerializable)
   NS_INTERFACE_MAP_ENTRY(nsIClassInfo)
   // see nsJARURI::Equals
   if (aIID.Equals(NS_GET_IID(nsJARURI)))
       foundInterface = NS_REINTERPRET_CAST(nsISupports*, this);
   else
 NS_INTERFACE_MAP_END
 
@@ -490,38 +491,21 @@ nsJARURI::SchemeIs(const char *i_Scheme,
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsJARURI::Clone(nsIURI **result)
 {
     nsresult rv;
 
-    nsCOMPtr<nsIURI> newJARFile;
-    rv = mJARFile->Clone(getter_AddRefs(newJARFile));
-    if (NS_FAILED(rv)) return rv;
-
-    nsCOMPtr<nsIURI> newJAREntryURI;
-    rv = mJAREntry->Clone(getter_AddRefs(newJAREntryURI));
+    nsCOMPtr<nsIJARURI> uri;
+    rv = CloneWithJARFile(mJARFile, getter_AddRefs(uri));
     if (NS_FAILED(rv)) return rv;
 
-    nsCOMPtr<nsIURL> newJAREntry(do_QueryInterface(newJAREntryURI));
-    NS_ASSERTION(newJAREntry, "This had better QI to nsIURL!");
-    
-    nsJARURI* uri = new nsJARURI();
-    if (uri) {
-        NS_ADDREF(uri);
-        uri->mJARFile = newJARFile;
-        uri->mJAREntry = newJAREntry;
-        *result = uri;
-    } else {
-        rv = NS_ERROR_OUT_OF_MEMORY;
-    }
-
-    return NS_OK;
+    return CallQueryInterface(uri, result);
 }
 
 NS_IMETHODIMP
 nsJARURI::Resolve(const nsACString &relativePath, nsACString &result)
 {
     nsresult rv;
 
     nsCOMPtr<nsIIOService> ioServ(do_GetIOService(&rv));
@@ -783,9 +767,43 @@ nsJARURI::GetJAREntry(nsACString &entryP
 
 NS_IMETHODIMP
 nsJARURI::SetJAREntry(const nsACString &entryPath)
 {
     return CreateEntryURL(entryPath, mCharsetHint.get(),
                           getter_AddRefs(mJAREntry));
 }
 
+NS_IMETHODIMP
+nsJARURI::CloneWithJARFile(nsIURI *jarFile, nsIJARURI **result)
+{
+    if (!jarFile) {
+        return NS_ERROR_INVALID_ARG;
+    }
+
+    nsresult rv;
+
+    nsCOMPtr<nsIURI> newJARFile;
+    rv = jarFile->Clone(getter_AddRefs(newJARFile));
+    if (NS_FAILED(rv)) return rv;
+
+    nsCOMPtr<nsIURI> newJAREntryURI;
+    rv = mJAREntry->Clone(getter_AddRefs(newJAREntryURI));
+    if (NS_FAILED(rv)) return rv;
+
+    nsCOMPtr<nsIURL> newJAREntry(do_QueryInterface(newJAREntryURI));
+    NS_ASSERTION(newJAREntry, "This had better QI to nsIURL!");
+    
+    nsJARURI* uri = new nsJARURI();
+    if (uri) {
+        NS_ADDREF(uri);
+        uri->mJARFile = newJARFile;
+        uri->mJAREntry = newJAREntry;
+        *result = uri;
+        rv = NS_OK;
+    } else {
+        rv = NS_ERROR_OUT_OF_MEMORY;
+    }
+
+    return rv;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
Index: modules/libjar/nsJARURI.h
===================================================================
RCS file: /cvsroot/mozilla/modules/libjar/nsJARURI.h,v
retrieving revision 1.18
diff -u -8 -p -r1.18 nsJARURI.h
--- modules/libjar/nsJARURI.h	23 Jan 2005 23:03:39 -0000	1.18
+++ modules/libjar/nsJARURI.h	13 Nov 2007 10:20:34 -0000
@@ -59,23 +59,24 @@
 { /* 245abae2-b947-4ded-a46d-9829d3cca462 */         \
     0x245abae2,                                      \
     0xb947,                                          \
     0x4ded,                                          \
     {0xa4, 0x6d, 0x98, 0x29, 0xd3, 0xcc, 0xa4, 0x62} \
 }
 
 
-class nsJARURI : public nsIJARURI, nsISerializable, nsIClassInfo
+class nsJARURI : public nsIJARURI, nsIJARURI_MOZILLA_1_8_BRANCH, nsISerializable, nsIClassInfo
 {
 public:    
     NS_DECL_ISUPPORTS
     NS_DECL_NSIURI
     NS_DECL_NSIURL
     NS_DECL_NSIJARURI
+    NS_DECL_NSIJARURI_MOZILLA_1_8_BRANCH
     NS_DECL_NSISERIALIZABLE
     NS_DECL_NSICLASSINFO
 
     NS_DEFINE_STATIC_IID_ACCESSOR(NS_THIS_JARURI_IMPL_CID);
 
     // nsJARURI
     nsJARURI();
     virtual ~nsJARURI();


Index: firefox.spec
===================================================================
RCS file: /cvs/dist/rpms/firefox/FC-6/firefox.spec,v
retrieving revision 1.174
retrieving revision 1.175
diff -u -r1.174 -r1.175
--- firefox.spec	19 Oct 2007 10:57:29 -0000	1.174
+++ firefox.spec	27 Nov 2007 01:41:07 -0000	1.175
@@ -11,7 +11,7 @@
 Summary:        Mozilla Firefox Web browser.
 Name:           firefox
 Version:        1.5.0.12
-Release:        5%{?dist}
+Release:        7%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPL/LGPL
 Group:          Applications/Internet
@@ -51,6 +51,17 @@
 Patch26:        firefox-RC1-stock-icons-gnomestripe.patch
 Patch27:        firefox-gnomestripe-0.1-livemarks.patch
 
+# font system fixes
+Patch31:        firefox-1.5-nopangoxft.patch
+Patch32:        firefox-1.5-pango-mathml.patch
+Patch33:        firefox-1.5-pango-cursor-position.patch
+Patch34:        firefox-1.5-pango-printing.patch
+Patch35:        firefox-1.5-pango-cursor-position-more.patch
+Patch36:        firefox-1.5-pango-justified-range.patch
+Patch37:        firefox-1.5-pango-underline.patch
+Patch38:        firefox-1.5-xft-rangewidth.patch
+
+
 # local bugfixes
 Patch40:        firefox-1.5-bullet-bill.patch
 Patch42:        firefox-1.1-uriloader.patch
@@ -81,16 +92,12 @@
 Patch76:        mozilla-325761.patch
 Patch77:        mozilla-392149-180.patch
 
-
-# font system fixes
-Patch81:        firefox-1.5-nopangoxft.patch
-Patch82:        firefox-1.5-pango-mathml.patch
-Patch83:        firefox-1.5-pango-cursor-position.patch
-Patch84:        firefox-1.5-pango-printing.patch
-Patch85:        firefox-1.5-pango-cursor-position-more.patch
-Patch86:        firefox-1.5-pango-justified-range.patch
-Patch87:        firefox-1.5-pango-underline.patch
-Patch88:        firefox-1.5-xft-rangewidth.patch
+Patch78:        mozilla-373911.patch
+Patch79:        mozilla-391028.patch
+Patch80:        mozilla-393326.patch
+Patch81:        mozilla-403331.patch
+Patch82:        mozilla-369814-1.patch
+Patch83:        mozilla-369814-2.patch
 
 # Other
 Patch102:       firefox-1.5-theme-change.patch
@@ -180,6 +187,24 @@
 #%patch25 -p0
 #%patch26 -p0
 #%patch27 -p1
+
+# font system fixes
+%patch31 -p1 -b .nopangoxft
+%patch32 -p1 -b .pango-mathml
+%patch33 -p1 -b .pango-cursor-position
+%patch34 -p1 -b .pango-printing
+%patch35 -p1 -b .pango-cursor-position-more
+%patch36 -p1 -b .pango-justified-range
+%patch37 -p1 -b .pango-underline
+%patch38 -p1 -b .nopangoxft2
+pushd gfx/src/ps
+  # This sort of sucks, but it works for now.
+  ln -s ../gtk/nsFontMetricsPango.h .
+  ln -s ../gtk/nsFontMetricsPango.cpp .
+  ln -s ../gtk/mozilla-decoder.h .
+  ln -s ../gtk/mozilla-decoder.cpp .
+popd
+
 %patch40 -p1
 %patch42 -p0
 %patch50 -p1
@@ -209,22 +234,13 @@
 %patch76 -p1
 %patch77 -p1
 
-# font system fixes
-%patch81 -p1 -b .nopangoxft
-%patch82 -p1 -b .pango-mathml
-%patch83 -p1 -b .pango-cursor-position
-%patch84 -p1 -b .pango-printing
-%patch85 -p1 -b .pango-cursor-position-more
-%patch86 -p1 -b .pango-justified-range
-%patch87 -p1 -b .pango-underline
-%patch88 -p1 -b .nopangoxft2
-pushd gfx/src/ps
-  # This sort of sucks, but it works for now.
-  ln -s ../gtk/nsFontMetricsPango.h .
-  ln -s ../gtk/nsFontMetricsPango.cpp .
-  ln -s ../gtk/mozilla-decoder.h .
-  ln -s ../gtk/mozilla-decoder.cpp .
-popd
+%patch78 -p0
+%patch79 -p1
+%patch80 -p0
+%patch81 -p0
+%patch82 -p0
+%patch83 -p1 -b .mozilla-369814-2
+
 
 %patch102 -p0 -b .theme-change
 %patch103 -p1 -b .ppc64
@@ -510,6 +526,10 @@
 #---------------------------------------------------------------------
 
 %changelog
+* Thu Nov 22 2007 Christopher Aillon <caillon at redhat.com> - 1.5.0.12-7
+- Add patches for mozilla bugs:
+  369814,373911,391028,393326,402649,403331
+
 * Fri Oct 19 2007 Martin Stransky <stransky at redhat.com> 1.5.0.12-5
 - Update to latest snapshot of Mozilla 1.8.0 branch
 - added pathes for Mozilla bugs 199088,267833,309322,345305,361745,




More information about the fedora-cvs-commits mailing list