commit b4780f07d6af74ee72d2e63aa032cf614b71c310 Author: Mike Perry mikeperry-git@fscked.org Date: Wed Feb 1 16:54:29 2012 -0800
Rebase to Firefox 10. --- ...nents.interfaces-lookupMethod-from-conten.patch | 24 ++++++------ ...0002-Make-Permissions-Manager-memory-only.patch | 24 ++++++------ ...-Make-Intermediate-Cert-Store-memory-only.patch | 12 +++--- ...th-headers-before-the-modify-request-obse.patch | 15 ++++---- .../firefox/0005-Add-a-string-based-cacheKey.patch | 14 ++++---- ...6-Randomize-HTTP-pipeline-order-and-depth.patch | 30 ++++++++-------- .../0007-Block-all-plugins-except-flash.patch | 20 +++++----- ...ontent-pref-service-memory-only-clearable.patch | 12 +++--- ...owser-exit-when-not-launched-from-Vidalia.patch | 8 ++-- .../0010-Disable-SSL-Session-ID-tracking.patch | 6 ++-- ...observer-event-to-close-persistent-connec.patch | 21 ++++++----- ...e-client-values-only-to-CSS-Media-Queries.patch | 18 +++++----- ...13-Limit-the-number-of-fonts-per-document.patch | 36 ++++++++++---------- 13 files changed, 121 insertions(+), 119 deletions(-)
diff --git a/src/current-patches/firefox/0001-Block-Components.interfaces-lookupMethod-from-conten.patch b/src/current-patches/firefox/0001-Block-Components.interfaces-lookupMethod-from-conten.patch index de0903c..ba0da28 100644 --- a/src/current-patches/firefox/0001-Block-Components.interfaces-lookupMethod-from-conten.patch +++ b/src/current-patches/firefox/0001-Block-Components.interfaces-lookupMethod-from-conten.patch @@ -1,7 +1,7 @@ -From 658f53653a37767802d9cd992b8dd58d7503ea1b Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Mon, 20 Jun 2011 17:07:41 -0700 -Subject: [PATCH 01/12] Block Components.interfaces,lookupMethod from content +From 67b86f0c22070cbf86112174ae1e2ce6d6a36dee Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 15:40:40 -0800 +Subject: [PATCH 01/13] Block Components.interfaces,lookupMethod from content
This patch removes the ability of content script to access Components.interfaces.* as well as call or access Components.lookupMethod. @@ -16,14 +16,14 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=429070 https://trac.torproject.org/projects/tor/ticket/2873 https://trac.torproject.org/projects/tor/ticket/2874 --- - js/src/xpconnect/src/xpccomponents.cpp | 8 ++++++-- + js/xpconnect/src/XPCComponents.cpp | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
-diff --git a/js/src/xpconnect/src/xpccomponents.cpp b/js/src/xpconnect/src/xpccomponents.cpp -index ca38e47..34175a5 100644 ---- a/js/src/xpconnect/src/xpccomponents.cpp -+++ b/js/src/xpconnect/src/xpccomponents.cpp -@@ -4431,7 +4431,9 @@ nsXPCComponents::CanCreateWrapper(const nsIID * iid, char **_retval) +diff --git a/js/xpconnect/src/XPCComponents.cpp b/js/xpconnect/src/XPCComponents.cpp +index 3bcbf91..d5c020a 100644 +--- a/js/xpconnect/src/XPCComponents.cpp ++++ b/js/xpconnect/src/XPCComponents.cpp +@@ -4456,7 +4456,9 @@ nsXPCComponents::CanCreateWrapper(const nsIID * iid, char **_retval) NS_IMETHODIMP nsXPCComponents::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, char **_retval) { @@ -34,7 +34,7 @@ index ca38e47..34175a5 100644 *_retval = xpc_CheckAccessList(methodName, allowed); return NS_OK; } -@@ -4440,7 +4442,9 @@ nsXPCComponents::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, c +@@ -4465,7 +4467,9 @@ nsXPCComponents::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, c NS_IMETHODIMP nsXPCComponents::CanGetProperty(const nsIID * iid, const PRUnichar *propertyName, char **_retval) { @@ -46,5 +46,5 @@ index ca38e47..34175a5 100644 return NS_OK; } -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0002-Make-Permissions-Manager-memory-only.patch b/src/current-patches/firefox/0002-Make-Permissions-Manager-memory-only.patch index fcc3802..ecd1e32 100644 --- a/src/current-patches/firefox/0002-Make-Permissions-Manager-memory-only.patch +++ b/src/current-patches/firefox/0002-Make-Permissions-Manager-memory-only.patch @@ -1,7 +1,7 @@ -From b390a17593f20c837facf0b9da1ee4696697f1b6 Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Mon, 20 Jun 2011 17:07:56 -0700 -Subject: [PATCH 02/12] Make Permissions Manager memory-only +From 193c50c03aa61eef5415d0476467c22941022a11 Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 15:45:16 -0800 +Subject: [PATCH 02/13] Make Permissions Manager memory-only
This patch exposes a pref 'permissions.memory_only' that properly isolates the permissions manager to memory, which is responsible for all user specified @@ -16,7 +16,7 @@ https://trac.torproject.org/projects/tor/ticket/2950 1 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp -index d72b794..b89887e 100644 +index 67eb216..12cc7cf 100644 --- a/extensions/cookie/nsPermissionManager.cpp +++ b/extensions/cookie/nsPermissionManager.cpp @@ -58,6 +58,10 @@ @@ -31,7 +31,7 @@ index d72b794..b89887e 100644 static nsPermissionManager *gPermissionManager = nsnull;
@@ -203,6 +207,11 @@ nsPermissionManager::Init() - mObserverService->AddObserver(this, "profile-do-change", PR_TRUE); + mObserverService->AddObserver(this, "profile-do-change", true); }
+ nsCOMPtr<nsIPrefBranch2> pbi = do_GetService(NS_PREFSERVICE_CONTRACTID); @@ -42,11 +42,11 @@ index d72b794..b89887e 100644 if (IsChildProcess()) { // Get the permissions from the parent process InfallibleTArrayIPC::Permission perms; -@@ -251,8 +260,18 @@ nsPermissionManager::InitDB(PRBool aRemoveFile) +@@ -251,8 +260,18 @@ nsPermissionManager::InitDB(bool aRemoveFile) if (!storage) return NS_ERROR_UNEXPECTED;
-+ PRBool memory_db = false; ++ bool memory_db = false; + nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); + if (prefs) { + prefs->GetBoolPref("permissions.memory_only", &memory_db); @@ -61,9 +61,9 @@ index d72b794..b89887e 100644 + } NS_ENSURE_SUCCESS(rv, rv);
- PRBool ready; -@@ -262,7 +281,11 @@ nsPermissionManager::InitDB(PRBool aRemoveFile) - rv = permissionsFile->Remove(PR_FALSE); + bool ready; +@@ -262,7 +281,11 @@ nsPermissionManager::InitDB(bool aRemoveFile) + rv = permissionsFile->Remove(false); NS_ENSURE_SUCCESS(rv, rv);
- rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); @@ -90,5 +90,5 @@ index d72b794..b89887e 100644 // or is going away because the application is shutting down. if (!nsCRT::strcmp(someData, NS_LITERAL_STRING("shutdown-cleanse").get())) { -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0003-Make-Intermediate-Cert-Store-memory-only.patch b/src/current-patches/firefox/0003-Make-Intermediate-Cert-Store-memory-only.patch index e921f7d..ec575bc 100644 --- a/src/current-patches/firefox/0003-Make-Intermediate-Cert-Store-memory-only.patch +++ b/src/current-patches/firefox/0003-Make-Intermediate-Cert-Store-memory-only.patch @@ -1,7 +1,7 @@ -From 93a3a1886d34e5f73a385726c22ecfc4e72598a3 Mon Sep 17 00:00:00 2001 +From 5d72233faeba1745962f55fa09fe2f537eda93ec Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Fri, 19 Aug 2011 17:58:23 -0700 -Subject: [PATCH 03/12] Make Intermediate Cert Store memory-only. +Subject: [PATCH 03/13] Make Intermediate Cert Store memory-only.
This patch makes the intermediate SSL cert store exist in memory only.
@@ -12,15 +12,15 @@ https://trac.torproject.org/projects/tor/ticket/2949 1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp -index 5bb09ae..737715d 100644 +index a08c4ef..0ec3713 100644 --- a/security/manager/ssl/src/nsNSSComponent.cpp +++ b/security/manager/ssl/src/nsNSSComponent.cpp -@@ -1732,8 +1732,21 @@ nsNSSComponent::InitializeNSS(PRBool showWarningBox) +@@ -1730,8 +1730,21 @@ nsNSSComponent::InitializeNSS(bool showWarningBox) // Ubuntu 8.04, which loads any nonexistent "<configdir>/libnssckbi.so" as // "/usr/lib/nss/libnssckbi.so". PRUint32 init_flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE; - SECStatus init_rv = ::NSS_Initialize(profileStr.get(), "", "", -+ PRBool nocertdb = false; ++ bool nocertdb = false; + mPrefBranch->GetBoolPref("security.nocertdb", &nocertdb); + + // XXX: We can also do the the following to only disable the certdb. @@ -39,5 +39,5 @@ index 5bb09ae..737715d 100644 if (init_rv != SECSuccess) { PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get())); -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0004-Add-HTTP-auth-headers-before-the-modify-request-obse.patch b/src/current-patches/firefox/0004-Add-HTTP-auth-headers-before-the-modify-request-obse.patch index c0b2070..44dfccc 100644 --- a/src/current-patches/firefox/0004-Add-HTTP-auth-headers-before-the-modify-request-obse.patch +++ b/src/current-patches/firefox/0004-Add-HTTP-auth-headers-before-the-modify-request-obse.patch @@ -1,7 +1,8 @@ -From f30579c50a6915314a470579da533f53200e61d8 Mon Sep 17 00:00:00 2001 +From 6dc27a50e06bca139a07546f94a827f1fdb762b7 Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Fri, 2 Sep 2011 15:33:20 -0700 -Subject: [PATCH 04/12] Add HTTP auth headers before the modify-request observer. +Subject: [PATCH 04/13] Add HTTP auth headers before the modify-request + observer.
Otherwise, how are we supposed to modify them?
@@ -11,10 +12,10 @@ Thanks to Georg Koppen for spotting both the problem and this fix. 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp -index 3f9d049..945bc0d 100644 +index dec2a83..4c5e759 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp -@@ -291,9 +291,6 @@ nsHttpChannel::Connect(PRBool firstTime) +@@ -316,9 +316,6 @@ nsHttpChannel::Connect(bool firstTime) return NS_ERROR_DOCUMENT_NOT_CACHED; }
@@ -24,7 +25,7 @@ index 3f9d049..945bc0d 100644 if (mLoadFlags & LOAD_NO_NETWORK_IO) { return NS_ERROR_DOCUMENT_NOT_CACHED; } -@@ -3665,6 +3662,9 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context) +@@ -3701,6 +3698,9 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context)
AddCookiesToRequest();
@@ -34,7 +35,7 @@ index 3f9d049..945bc0d 100644 // notify "http-on-modify-request" observers gHttpHandler->OnModifyRequest(this);
-@@ -4741,7 +4741,10 @@ nsHttpChannel::DoAuthRetry(nsAHttpConnection *conn) +@@ -4795,7 +4795,10 @@ nsHttpChannel::DoAuthRetry(nsAHttpConnection *conn) // this authentication attempt (bug 84794). // TODO: save cookies from auth response and send them here (bug 572151). AddCookiesToRequest(); @@ -47,5 +48,5 @@ index 3f9d049..945bc0d 100644 gHttpHandler->OnModifyRequest(this);
-- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0005-Add-a-string-based-cacheKey.patch b/src/current-patches/firefox/0005-Add-a-string-based-cacheKey.patch index 87941e2..822033a 100644 --- a/src/current-patches/firefox/0005-Add-a-string-based-cacheKey.patch +++ b/src/current-patches/firefox/0005-Add-a-string-based-cacheKey.patch @@ -1,7 +1,7 @@ -From 65410adb53fafe4ec717ab464cdefee3cdd35708 Mon Sep 17 00:00:00 2001 +From a06818f3a358e6c4502b944ecd264fd2ccaff5bf Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Fri, 2 Sep 2011 20:47:02 -0700 -Subject: [PATCH 05/12] Add a string-based cacheKey. +Subject: [PATCH 05/13] Add a string-based cacheKey.
Used for isolating cache according to same-origin policy. --- @@ -29,10 +29,10 @@ index 2da46d6..4ee5774 100644 * may fail if the disk cache is not present. The value of this attribute * is usually only settable during the processing of a channel's diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp -index 945bc0d..9e838d8 100644 +index 4c5e759..6205d62 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp -@@ -2356,6 +2356,12 @@ nsHttpChannel::AssembleCacheKey(const char *spec, PRUint32 postID, +@@ -2389,6 +2389,12 @@ nsHttpChannel::AssembleCacheKey(const char *spec, PRUint32 postID, cacheKey.Append(buf); }
@@ -45,7 +45,7 @@ index 945bc0d..9e838d8 100644 if (!cacheKey.IsEmpty()) { cacheKey.AppendLiteral("uri="); } -@@ -4641,6 +4647,22 @@ nsHttpChannel::SetCacheForOfflineUse(PRBool value) +@@ -4695,6 +4701,22 @@ nsHttpChannel::SetCacheForOfflineUse(bool value) }
NS_IMETHODIMP @@ -69,7 +69,7 @@ index 945bc0d..9e838d8 100644 { value = mOfflineCacheClientID; diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h -index 6e0f360..9df9e38 100644 +index 88ce469..53538cf 100644 --- a/netwerk/protocol/http/nsHttpChannel.h +++ b/netwerk/protocol/http/nsHttpChannel.h @@ -303,6 +303,7 @@ private: @@ -81,5 +81,5 @@ index 6e0f360..9df9e38 100644 // auth specific data nsCOMPtr<nsIHttpChannelAuthProvider> mAuthProvider; -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0006-Randomize-HTTP-pipeline-order-and-depth.patch b/src/current-patches/firefox/0006-Randomize-HTTP-pipeline-order-and-depth.patch index 2935289..de40bfe 100644 --- a/src/current-patches/firefox/0006-Randomize-HTTP-pipeline-order-and-depth.patch +++ b/src/current-patches/firefox/0006-Randomize-HTTP-pipeline-order-and-depth.patch @@ -1,7 +1,7 @@ -From 797fecf94e73e4f65fa8fdd58e0980e0d79ec092 Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Tue, 8 Nov 2011 17:34:54 -0800 -Subject: [PATCH 06/12] Randomize HTTP pipeline order and depth. +From 755f71320538b0a813807cc3f4076dd20cbe9849 Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 16:05:22 -0800 +Subject: [PATCH 06/13] Randomize HTTP pipeline order and depth.
This is an experimental defense against http://lorre.uni.lu/~andriy/papers/acmccs-wpes11-fingerprinting.pdf @@ -14,7 +14,7 @@ https://blog.torproject.org/blog/experimental-defense-website-traffic-finger... 2 files changed, 81 insertions(+), 1 deletions(-)
diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.cpp b/netwerk/protocol/http/nsHttpConnectionMgr.cpp -index 3bb2b55..89ec350 100644 +index 23ef893..bba456d 100644 --- a/netwerk/protocol/http/nsHttpConnectionMgr.cpp +++ b/netwerk/protocol/http/nsHttpConnectionMgr.cpp @@ -94,6 +94,11 @@ nsHttpConnectionMgr::nsHttpConnectionMgr() @@ -29,7 +29,7 @@ index 3bb2b55..89ec350 100644 }
nsHttpConnectionMgr::~nsHttpConnectionMgr() -@@ -856,7 +861,7 @@ nsHttpConnectionMgr::DispatchTransaction(nsConnectionEntry *ent, +@@ -865,7 +870,7 @@ nsHttpConnectionMgr::DispatchTransaction(nsConnectionEntry *ent, nsHttpPipeline *pipeline = nsnull; if (conn->SupportsPipelining() && (caps & NS_HTTP_ALLOW_PIPELINING)) { LOG((" looking to build pipeline...\n")); @@ -38,11 +38,11 @@ index 3bb2b55..89ec350 100644 trans = pipeline; }
-@@ -929,6 +934,77 @@ nsHttpConnectionMgr::BuildPipeline(nsConnectionEntry *ent, - return PR_TRUE; +@@ -938,6 +943,77 @@ nsHttpConnectionMgr::BuildPipeline(nsConnectionEntry *ent, + return true; }
-+PRBool ++bool +nsHttpConnectionMgr::BuildRandomizedPipeline(nsConnectionEntry *ent, + nsAHttpTransaction *firstTrans, + nsHttpPipeline **result) @@ -117,7 +117,7 @@ index 3bb2b55..89ec350 100644 nsHttpConnectionMgr::ProcessNewTransaction(nsHttpTransaction *trans) { diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.h b/netwerk/protocol/http/nsHttpConnectionMgr.h -index d6dba79..c6e295f 100644 +index cdf21a9..9647225 100644 --- a/netwerk/protocol/http/nsHttpConnectionMgr.h +++ b/netwerk/protocol/http/nsHttpConnectionMgr.h @@ -48,6 +48,7 @@ @@ -128,15 +128,15 @@ index d6dba79..c6e295f 100644
#include "nsIObserver.h" #include "nsITimer.h" -@@ -275,6 +276,7 @@ private: +@@ -276,6 +277,7 @@ private: nsresult DispatchTransaction(nsConnectionEntry *, nsAHttpTransaction *, PRUint8 caps, nsHttpConnection *); - PRBool BuildPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); -+ PRBool BuildRandomizedPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); + bool BuildPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); ++ bool BuildRandomizedPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); nsresult ProcessNewTransaction(nsHttpTransaction *); nsresult EnsureSocketThreadTargetIfOnline(); void ClosePersistentConnections(nsConnectionEntry *ent); -@@ -352,6 +354,8 @@ private: +@@ -353,6 +355,8 @@ private: PRUint64 mTimeOfNextWakeUp; // Timer for next pruning of dead connections. nsCOMPtr<nsITimer> mTimer; @@ -146,5 +146,5 @@ index d6dba79..c6e295f 100644 // // the connection table -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0007-Block-all-plugins-except-flash.patch b/src/current-patches/firefox/0007-Block-all-plugins-except-flash.patch index c8d55f8..ef83185 100644 --- a/src/current-patches/firefox/0007-Block-all-plugins-except-flash.patch +++ b/src/current-patches/firefox/0007-Block-all-plugins-except-flash.patch @@ -1,7 +1,7 @@ -From 2954118c9ab70d2e1c4d983a8f101b3a237461bb Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Wed, 28 Sep 2011 13:24:20 -0700 -Subject: [PATCH 07/12] Block all plugins except flash. +From 7d6e270e1a05e1fe57d069b9859c9b51904db33e Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 15:50:15 -0800 +Subject: [PATCH 07/13] Block all plugins except flash.
We cannot use the @mozilla.org/extensions/blocklist;1 service, because we actually want to stop plugins from ever entering the browser's process space @@ -17,11 +17,11 @@ on a better way. Until then, it is delta-darwinism for us. 2 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp -index 8578d56..3fbae53 100644 +index 729c9ef..1f4652d 100644 --- a/dom/plugins/base/nsPluginHost.cpp +++ b/dom/plugins/base/nsPluginHost.cpp -@@ -1964,6 +1964,35 @@ PRBool nsPluginHost::IsDuplicatePlugin(nsPluginTag * aPluginTag) - return PR_FALSE; +@@ -1965,6 +1965,35 @@ bool nsPluginHost::IsDuplicatePlugin(nsPluginTag * aPluginTag) + return false; }
+PRBool nsPluginHost::GhettoBlacklist(nsIFile *pluginFile) @@ -56,7 +56,7 @@ index 8578d56..3fbae53 100644 typedef NS_NPAPIPLUGIN_CALLBACK(char *, NP_GETMIMEDESCRIPTION)(void);
nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir, -@@ -2085,6 +2114,10 @@ nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir, +@@ -2086,6 +2115,10 @@ nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir, continue; }
@@ -68,7 +68,7 @@ index 8578d56..3fbae53 100644 if (!pluginTag) { nsPluginFile pluginFile(localfile); diff --git a/dom/plugins/base/nsPluginHost.h b/dom/plugins/base/nsPluginHost.h -index 1cfd59b..7d83c20 100644 +index 39a8891..c262abf 100644 --- a/dom/plugins/base/nsPluginHost.h +++ b/dom/plugins/base/nsPluginHost.h @@ -278,6 +278,8 @@ private: @@ -81,5 +81,5 @@ index 1cfd59b..7d83c20 100644 // and removes it from the cache. void RemoveCachedPluginsInfo(const char *filePath, -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0008-Make-content-pref-service-memory-only-clearable.patch b/src/current-patches/firefox/0008-Make-content-pref-service-memory-only-clearable.patch index 6473b13..ac91170 100644 --- a/src/current-patches/firefox/0008-Make-content-pref-service-memory-only-clearable.patch +++ b/src/current-patches/firefox/0008-Make-content-pref-service-memory-only-clearable.patch @@ -1,7 +1,7 @@ -From e14ab520ed4e012dbeb051eb9320e59f06873674 Mon Sep 17 00:00:00 2001 +From 23a09d0a6def1e2f7190177a875ab5a85c5da7b7 Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Thu, 8 Sep 2011 08:40:17 -0700 -Subject: [PATCH 08/12] Make content pref service memory-only + clearable +Subject: [PATCH 08/13] Make content pref service memory-only + clearable
This prevents random urls from being inserted into content-prefs.sqllite in the profile directory as content prefs change (includes site-zoom and perhaps @@ -11,10 +11,10 @@ other site prefs?). 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/toolkit/components/contentprefs/nsContentPrefService.js b/toolkit/components/contentprefs/nsContentPrefService.js -index 0d12b36..494515b 100644 +index adfb650..1619d5f 100644 --- a/toolkit/components/contentprefs/nsContentPrefService.js +++ b/toolkit/components/contentprefs/nsContentPrefService.js -@@ -1183,7 +1183,7 @@ ContentPrefService.prototype = { +@@ -1240,7 +1240,7 @@ ContentPrefService.prototype = {
var dbConnection;
@@ -23,7 +23,7 @@ index 0d12b36..494515b 100644 dbConnection = this._dbCreate(dbService, dbFile); else { try { -@@ -1231,7 +1231,7 @@ ContentPrefService.prototype = { +@@ -1288,7 +1288,7 @@ ContentPrefService.prototype = { },
_dbCreate: function ContentPrefService__dbCreate(aDBService, aDBFile) { @@ -33,5 +33,5 @@ index 0d12b36..494515b 100644 try { this._dbCreateSchema(dbConnection); -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0009-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch b/src/current-patches/firefox/0009-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch index 11d3cdf..3dc98ed 100644 --- a/src/current-patches/firefox/0009-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch +++ b/src/current-patches/firefox/0009-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch @@ -1,7 +1,7 @@ -From 84286ac84d1973747f9ff541df90ed79c34ed443 Mon Sep 17 00:00:00 2001 +From b9c2e8d93cf62ea8f8fec63f0db955d8d0c4bc24 Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Sun, 9 Oct 2011 22:50:07 -0700 -Subject: [PATCH 09/12] Make Tor Browser exit when not launched from Vidalia +Subject: [PATCH 09/13] Make Tor Browser exit when not launched from Vidalia
Turns out the Windows 7 UI encourages users to "dock" their Tor Browser app for easy relaunch. If they manage to do this, we should fail closed rather @@ -16,7 +16,7 @@ actually be common. 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js -index e78919d..c1e90f3 100644 +index a463fac..4480050 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -1217,6 +1217,21 @@ function BrowserStartup() { @@ -42,5 +42,5 @@ index e78919d..c1e90f3 100644 if (uriToLoad instanceof Ci.nsISupportsArray) { let count = uriToLoad.Count(); -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0010-Disable-SSL-Session-ID-tracking.patch b/src/current-patches/firefox/0010-Disable-SSL-Session-ID-tracking.patch index 53553f1..8722540 100644 --- a/src/current-patches/firefox/0010-Disable-SSL-Session-ID-tracking.patch +++ b/src/current-patches/firefox/0010-Disable-SSL-Session-ID-tracking.patch @@ -1,7 +1,7 @@ -From 5e8424690ef1d9f5c38dbf87811f82fa92e29eb5 Mon Sep 17 00:00:00 2001 +From 8bfcf12fe59b7b9940830446bf331729f5c86b3d Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Wed, 7 Dec 2011 19:36:38 -0800 -Subject: [PATCH 10/12] Disable SSL Session ID tracking. +Subject: [PATCH 10/13] Disable SSL Session ID tracking.
We can't easily bind SSL Session ID tracking to url bar domain, so we have to disable them to satisfy @@ -24,5 +24,5 @@ index 2e6f9ed..c8a993b 100644 PR_FALSE, /* v2CompatibleHello */ /* now defaults to off in NSS 3.13 */ PR_TRUE, /* detectRollBack */ -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0011-Provide-an-observer-event-to-close-persistent-connec.patch b/src/current-patches/firefox/0011-Provide-an-observer-event-to-close-persistent-connec.patch index 0b67cd6..7d91c66 100644 --- a/src/current-patches/firefox/0011-Provide-an-observer-event-to-close-persistent-connec.patch +++ b/src/current-patches/firefox/0011-Provide-an-observer-event-to-close-persistent-connec.patch @@ -1,7 +1,8 @@ -From f29be5f0e41e9915bcd15b692685bebce9d33f91 Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Wed, 7 Dec 2011 20:05:19 -0800 -Subject: [PATCH 11/12] Provide an observer event to close persistent connections +From befcfaff647b1e09722d100fbf2dadcc22cfdc2b Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 15:53:28 -0800 +Subject: [PATCH 11/13] Provide an observer event to close persistent + connections
We need to prevent linkability across "New Identity", which includes closing keep-alive connections. @@ -10,18 +11,18 @@ keep-alive connections. 1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp -index f79f23e..ed70ecd 100644 +index f21598e..f3bf6af 100644 --- a/netwerk/protocol/http/nsHttpHandler.cpp +++ b/netwerk/protocol/http/nsHttpHandler.cpp @@ -321,6 +321,7 @@ nsHttpHandler::Init() - mObserverService->AddObserver(this, "net:clear-active-logins", PR_TRUE); - mObserverService->AddObserver(this, NS_PRIVATE_BROWSING_SWITCH_TOPIC, PR_TRUE); - mObserverService->AddObserver(this, "net:prune-dead-connections", PR_TRUE); + mObserverService->AddObserver(this, "net:clear-active-logins", true); + mObserverService->AddObserver(this, NS_PRIVATE_BROWSING_SWITCH_TOPIC, true); + mObserverService->AddObserver(this, "net:prune-dead-connections", true); + mObserverService->AddObserver(this, "net:prune-all-connections", PR_TRUE); }
return NS_OK; -@@ -1611,6 +1612,12 @@ nsHttpHandler::Observe(nsISupports *subject, +@@ -1481,6 +1482,12 @@ nsHttpHandler::Observe(nsISupports *subject, mConnMgr->PruneDeadConnections(); } } @@ -35,5 +36,5 @@ index f79f23e..ed70ecd 100644 return NS_OK; } -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0012-Provide-client-values-only-to-CSS-Media-Queries.patch b/src/current-patches/firefox/0012-Provide-client-values-only-to-CSS-Media-Queries.patch index 7253f9c..d3e636b 100644 --- a/src/current-patches/firefox/0012-Provide-client-values-only-to-CSS-Media-Queries.patch +++ b/src/current-patches/firefox/0012-Provide-client-values-only-to-CSS-Media-Queries.patch @@ -1,7 +1,7 @@ -From e4586005446c57161e14adc153aa5890f5694223 Mon Sep 17 00:00:00 2001 +From b5c42aa7668ac12b034cc1806ae1dc48732fa9b5 Mon Sep 17 00:00:00 2001 From: Mike Perry mikeperry-git@fscked.org Date: Tue, 20 Dec 2011 21:02:49 -0800 -Subject: [PATCH 12/12] Provide client values only to CSS Media Queries +Subject: [PATCH 12/13] Provide client values only to CSS Media Queries
Also disable a bunch of Mozilla extensions that smell like they are fingerprintable. @@ -13,10 +13,10 @@ https://www.torproject.org/projects/torbrowser/design/#fingerprinting-linkab... 1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 9a65c8e..d633dd1 100644 +index 6eca06e..c68f191 100644 --- a/layout/style/nsMediaFeatures.cpp +++ b/layout/style/nsMediaFeatures.cpp -@@ -381,14 +381,14 @@ nsMediaFeatures::features[] = { +@@ -383,14 +383,14 @@ nsMediaFeatures::features[] = { nsMediaFeature::eMinMaxAllowed, nsMediaFeature::eLength, { nsnull }, @@ -33,7 +33,7 @@ index 9a65c8e..d633dd1 100644 }, { &nsGkAtoms::orientation, -@@ -409,7 +409,7 @@ nsMediaFeatures::features[] = { +@@ -411,7 +411,7 @@ nsMediaFeatures::features[] = { nsMediaFeature::eMinMaxAllowed, nsMediaFeature::eIntRatio, { nsnull }, @@ -42,7 +42,7 @@ index 9a65c8e..d633dd1 100644 }, { &nsGkAtoms::color, -@@ -455,6 +455,7 @@ nsMediaFeatures::features[] = { +@@ -457,6 +457,7 @@ nsMediaFeatures::features[] = { },
// Mozilla extensions @@ -50,7 +50,7 @@ index 9a65c8e..d633dd1 100644 { &nsGkAtoms::_moz_device_pixel_ratio, nsMediaFeature::eMinMaxAllowed, -@@ -467,7 +468,7 @@ nsMediaFeatures::features[] = { +@@ -469,7 +470,7 @@ nsMediaFeatures::features[] = { nsMediaFeature::eMinMaxNotAllowed, nsMediaFeature::eEnumerated, { kOrientationKeywords }, @@ -59,7 +59,7 @@ index 9a65c8e..d633dd1 100644 }, { &nsGkAtoms::_moz_is_resource_document, -@@ -588,6 +589,7 @@ nsMediaFeatures::features[] = { +@@ -590,6 +591,7 @@ nsMediaFeatures::features[] = { { nsnull }, GetWindowsTheme }, @@ -68,5 +68,5 @@ index 9a65c8e..d633dd1 100644 { nsnull, -- -1.7.3.4 +1.7.5.4
diff --git a/src/current-patches/firefox/0013-Limit-the-number-of-fonts-per-document.patch b/src/current-patches/firefox/0013-Limit-the-number-of-fonts-per-document.patch index 989d072..4ae2487 100644 --- a/src/current-patches/firefox/0013-Limit-the-number-of-fonts-per-document.patch +++ b/src/current-patches/firefox/0013-Limit-the-number-of-fonts-per-document.patch @@ -1,6 +1,6 @@ -From 27c2a4a72504fe9a08cbfdf2210b05263bd693dd Mon Sep 17 00:00:00 2001 -From: Mike Perry mikeperry-git@fscked.org -Date: Tue, 27 Dec 2011 15:28:22 -0600 +From 4ed1e1c2372216cfcf377b369a9d44bb9f60ee14 Mon Sep 17 00:00:00 2001 +From: Mike Perry mikeperry-git@torproject.org +Date: Wed, 1 Feb 2012 16:01:21 -0800 Subject: [PATCH 13/13] Limit the number of fonts per document.
We create two prefs: @@ -23,19 +23,19 @@ https://www.torproject.org/projects/torbrowser/design/#fingerprinting-linkab... 3 files changed, 119 insertions(+), 3 deletions(-)
diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp -index 0d5b1ce..ab9a7ba 100644 +index e1587db..9690d9c 100644 --- a/layout/base/nsPresContext.cpp +++ b/layout/base/nsPresContext.cpp @@ -98,6 +98,8 @@ - #include "nsIFrameMessageManager.h" #include "FrameLayerBuilder.h" #include "nsDOMMediaQueryList.h" + #include "nsSMILAnimationController.h" +#include "nsString.h" +#include "nsUnicharUtils.h"
- #ifdef MOZ_SMIL - #include "nsSMILAnimationController.h" -@@ -707,6 +709,10 @@ nsPresContext::GetUserPreferences() + #ifdef IBMBIDI + #include "nsBidiPresUtils.h" +@@ -706,6 +708,10 @@ nsPresContext::GetUserPreferences() // * use fonts? mUseDocumentFonts = Preferences::GetInt("browser.display.use_document_fonts") != 0; @@ -46,7 +46,7 @@ index 0d5b1ce..ab9a7ba 100644
// * replace backslashes with Yen signs? (bug 245770) mEnableJapaneseTransform = -@@ -1306,6 +1312,100 @@ nsPresContext::GetDefaultFont(PRUint8 aFontID) const +@@ -1300,6 +1306,100 @@ nsPresContext::GetDefaultFont(PRUint8 aFontID) const return font; }
@@ -148,7 +148,7 @@ index 0d5b1ce..ab9a7ba 100644 nsPresContext::SetFullZoom(float aZoom) { diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h -index 2b09cc0..fe8a926 100644 +index ecd01d8..552a69a 100644 --- a/layout/base/nsPresContext.h +++ b/layout/base/nsPresContext.h @@ -548,6 +548,13 @@ public: @@ -165,7 +165,7 @@ index 2b09cc0..fe8a926 100644 PRInt32 MinFontSize() const { return NS_MAX(mMinFontSize, mMinimumFontSizePref); } -@@ -1123,6 +1130,8 @@ protected: +@@ -1117,6 +1124,8 @@ protected: PRUint32 mInterruptChecksToSkip;
mozilla::TimeStamp mReflowStartTime; @@ -175,10 +175,10 @@ index 2b09cc0..fe8a926 100644 unsigned mHasPendingInterrupt : 1; unsigned mInterruptsEnabled : 1; diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp -index a791723..5d65984 100644 +index 27336bf..827585a 100644 --- a/layout/style/nsRuleNode.cpp +++ b/layout/style/nsRuleNode.cpp -@@ -3087,6 +3087,7 @@ nsRuleNode::ComputeFontData(void* aStartStruct, +@@ -3091,6 +3091,7 @@ nsRuleNode::ComputeFontData(void* aStartStruct,
// See if there is a minimum font-size constraint to honor nscoord minimumFontSize = mPresContext->MinFontSize(); @@ -186,7 +186,7 @@ index a791723..5d65984 100644
if (minimumFontSize < 0) minimumFontSize = 0; -@@ -3098,10 +3099,10 @@ nsRuleNode::ComputeFontData(void* aStartStruct, +@@ -3102,10 +3103,10 @@ nsRuleNode::ComputeFontData(void* aStartStruct, // We only need to know this to determine if we have to use the // document fonts (overriding the useDocumentFonts flag), or to // determine if we have to override the minimum font-size constraint. @@ -194,12 +194,12 @@ index a791723..5d65984 100644 + if (mPresContext->IsChrome()) { // if we are not using document fonts, but this is a XUL document, // then we use the document fonts anyway -- useDocumentFonts = PR_TRUE; +- useDocumentFonts = true; + isXUL = PR_TRUE; minimumFontSize = 0; }
-@@ -3116,9 +3117,13 @@ nsRuleNode::ComputeFontData(void* aStartStruct, +@@ -3120,9 +3121,13 @@ nsRuleNode::ComputeFontData(void* aStartStruct, // generic? nsFont::GetGenericID(font->mFont.name, &generic);
@@ -214,7 +214,7 @@ index a791723..5d65984 100644 // Extract the generic from the specified font family... nsAutoString genericName; if (!font->mFont.EnumerateFamilies(ExtractGeneric, &genericName)) { -@@ -3154,6 +3159,8 @@ nsRuleNode::ComputeFontData(void* aStartStruct, +@@ -3158,6 +3163,8 @@ nsRuleNode::ComputeFontData(void* aStartStruct, minimumFontSize, font); }
@@ -224,5 +224,5 @@ index a791723..5d65984 100644 }
-- -1.7.3.4 +1.7.5.4