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