[tor-commits] [torbrowser/master] Update firefox patches for bugs #8324 and #8312.
mikeperry at torproject.org
mikeperry at torproject.org
Fri Mar 1 03:27:03 UTC 2013
commit 2a543b9359029938dfa98f8e285fb5528104d527
Author: Mike Perry <mikeperry-git at fscked.org>
Date: Thu Feb 28 19:22:26 2013 -0800
Update firefox patches for bugs #8324 and #8312.
---
...-Block-Components.interfaces-from-content.patch | 4 +-
...0002-Make-Permissions-Manager-memory-only.patch | 4 +-
...-Make-Intermediate-Cert-Store-memory-only.patch | 4 +-
.../firefox/0004-Add-a-string-based-cacheKey.patch | 12 +-
.../0005-Block-all-plugins-except-flash.patch | 4 +-
...ontent-pref-service-memory-only-clearable.patch | 4 +-
...owser-exit-when-not-launched-from-Vidalia.patch | 10 +-
.../0008-Disable-SSL-Session-ID-tracking.patch | 4 +-
...observer-event-to-close-persistent-connec.patch | 4 +-
...ice-and-system-specific-CSS-Media-Queries.patch | 4 +-
...11-Limit-the-number-of-fonts-per-document.patch | 4 +-
.../0012-Rebrand-Firefox-to-TorBrowser.patch | 4 +-
.../0013-Make-Download-manager-memory-only.patch | 4 +-
.../0014-Add-DDG-and-StartPage-to-Omnibox.patch | 4 +-
...-nsICacheService.EvictEntries-synchronous.patch | 4 +-
.../firefox/0016-Prevent-WebSocket-DNS-leak.patch | 4 +-
...ize-HTTP-request-order-and-pipeline-depth.patch | 4 +-
...Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch | 545 --------------------
...er-event-to-filter-the-Drag-Drop-url-list.patch | 74 +++
...d-mozIThirdPartyUtil.getFirstPartyURI-API.patch | 4 +-
.../0020-Add-canvas-image-extraction-prompt.patch | 20 +-
...nt-window-coordinates-for-mouse-event-scr.patch | 4 +-
...se-physical-screen-info.-via-window-and-w.patch | 6 +-
...not-expose-system-colors-to-CSS-or-canvas.patch | 8 +-
...solate-the-Image-Cache-per-url-bar-domain.patch | 4 +-
.../0025-nsIHTTPChannel.redirectTo-API.patch | 22 +-
...26-Isolate-DOM-storage-to-first-party-URI.patch | 26 +-
...nk-to-plugin-manager-for-disabled-plugins.patch | 26 +
28 files changed, 188 insertions(+), 633 deletions(-)
diff --git a/src/current-patches/firefox/0001-Block-Components.interfaces-from-content.patch b/src/current-patches/firefox/0001-Block-Components.interfaces-from-content.patch
index 5f2cbf7..a1ed5a8 100644
--- a/src/current-patches/firefox/0001-Block-Components.interfaces-from-content.patch
+++ b/src/current-patches/firefox/0001-Block-Components.interfaces-from-content.patch
@@ -1,7 +1,7 @@
-From d96e65b539df362bd495b51d2db02e56eca76851 Mon Sep 17 00:00:00 2001
+From 26ab2cbf5b925a3f1251bd536728a7e222b4f9e4 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 15:41:09 -0800
-Subject: [PATCH 01/26] Block Components.interfaces from content
+Subject: [PATCH 01/27] Block Components.interfaces from content
This patch removes the ability of content script to access
Components.interfaces.*.
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 1051aec..4a2b515 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 5aadfe392688fde8bd93ed549b1f2988268a7987 Mon Sep 17 00:00:00 2001
+From 2391ce37afd5da908fc986cec6018795cb06fa63 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 15:45:59 -0800
-Subject: [PATCH 02/26] Make Permissions Manager memory-only
+Subject: [PATCH 02/27] 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
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 990a900..37daf66 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 7b028c106cfca269406641a8c7cd9380eafeecca Mon Sep 17 00:00:00 2001
+From 5130a82dcc2dd7385d7d1cd2b15daa1dc4577f5b Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 15:51:07 -0800
-Subject: [PATCH 03/26] Make Intermediate Cert Store memory-only.
+Subject: [PATCH 03/27] Make Intermediate Cert Store memory-only.
This patch makes the intermediate SSL cert store exist in memory only.
diff --git a/src/current-patches/firefox/0004-Add-a-string-based-cacheKey.patch b/src/current-patches/firefox/0004-Add-a-string-based-cacheKey.patch
index f75db89..b9f4572 100644
--- a/src/current-patches/firefox/0004-Add-a-string-based-cacheKey.patch
+++ b/src/current-patches/firefox/0004-Add-a-string-based-cacheKey.patch
@@ -1,7 +1,7 @@
-From 7e6a70ebef4fdf0c9d1e50a42500eaa1daa15bd1 Mon Sep 17 00:00:00 2001
+From 0d1a840e58117d83d910d3eb09e9f7deaaeabbff Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 16:01:42 -0800
-Subject: [PATCH 04/26] Add a string-based cacheKey.
+Subject: [PATCH 04/27] Add a string-based cacheKey.
Used for isolating cache according to same-origin policy.
---
@@ -29,10 +29,10 @@ index 3119dd9..fd2ec89 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 ef6ff4d..dc49b81 100644
+index a1c2a1f..6242ddc 100644
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
-@@ -2721,6 +2721,12 @@ nsHttpChannel::AssembleCacheKey(const char *spec, uint32_t postID,
+@@ -2725,6 +2725,12 @@ nsHttpChannel::AssembleCacheKey(const char *spec, uint32_t postID,
cacheKey.Append(buf);
}
@@ -45,7 +45,7 @@ index ef6ff4d..dc49b81 100644
if (!cacheKey.IsEmpty()) {
cacheKey.AppendLiteral("uri=");
}
-@@ -5184,6 +5190,22 @@ nsHttpChannel::SetCacheTokenCachedCharset(const nsACString &aCharset)
+@@ -5209,6 +5215,22 @@ nsHttpChannel::SetCacheTokenCachedCharset(const nsACString &aCharset)
//-----------------------------------------------------------------------------
NS_IMETHODIMP
@@ -69,7 +69,7 @@ index ef6ff4d..dc49b81 100644
{
NS_ENSURE_ARG_POINTER(token);
diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h
-index 5b8c654..5b4ddb9 100644
+index d66415f..b1f0848 100644
--- a/netwerk/protocol/http/nsHttpChannel.h
+++ b/netwerk/protocol/http/nsHttpChannel.h
@@ -298,6 +298,7 @@ private:
diff --git a/src/current-patches/firefox/0005-Block-all-plugins-except-flash.patch b/src/current-patches/firefox/0005-Block-all-plugins-except-flash.patch
index 4b3e603..6f70b29 100644
--- a/src/current-patches/firefox/0005-Block-all-plugins-except-flash.patch
+++ b/src/current-patches/firefox/0005-Block-all-plugins-except-flash.patch
@@ -1,7 +1,7 @@
-From ab69ac8d9594555e284e130a45bb17dcfcdf23c7 Mon Sep 17 00:00:00 2001
+From 7c95e69c73f64e45f9a1f5821a1e96457f9ae83a Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 16:03:13 -0800
-Subject: [PATCH 05/26] Block all plugins except flash.
+Subject: [PATCH 05/27] 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
diff --git a/src/current-patches/firefox/0006-Make-content-pref-service-memory-only-clearable.patch b/src/current-patches/firefox/0006-Make-content-pref-service-memory-only-clearable.patch
index 33a83cd..ac514c1 100644
--- a/src/current-patches/firefox/0006-Make-content-pref-service-memory-only-clearable.patch
+++ b/src/current-patches/firefox/0006-Make-content-pref-service-memory-only-clearable.patch
@@ -1,7 +1,7 @@
-From 03c7c715835e41ad6d5e6043e176ee34503a2753 Mon Sep 17 00:00:00 2001
+From 50293cf7c107df2d76492890b945d17f63536f90 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at fscked.org>
Date: Thu, 8 Sep 2011 08:40:17 -0700
-Subject: [PATCH 06/26] Make content pref service memory-only + clearable
+Subject: [PATCH 06/27] 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
diff --git a/src/current-patches/firefox/0007-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch b/src/current-patches/firefox/0007-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch
index e83a0d2..5304a1a 100644
--- a/src/current-patches/firefox/0007-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch
+++ b/src/current-patches/firefox/0007-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch
@@ -1,7 +1,7 @@
-From 8fb01f1b02160e9fd6e91641694a80acbeb6c05f Mon Sep 17 00:00:00 2001
+From b2c1cd58fda04daa92b6f69253fd2ff8bc7ce8f4 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 16:29:24 -0800
-Subject: [PATCH 07/26] Make Tor Browser exit when not launched from Vidalia
+Subject: [PATCH 07/27] 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
@@ -12,14 +12,14 @@ https://trac.torproject.org/projects/tor/ticket/4192. We can do a better
localized fix w/ a translated alert menu later, if it seems like this might
actually be common.
---
- browser/base/content/browser.js | 14 +++++++++++++
+ browser/base/content/browser.js | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
-index f46a33d..9f77fd0 100644
+index 35664ec..bd2feed 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
-@@ -1096,6 +1096,20 @@ var gBrowserInit = {
+@@ -1093,6 +1093,20 @@ var gBrowserInit = {
// setup simple gestures support
gGestureSupport.init(true);
diff --git a/src/current-patches/firefox/0008-Disable-SSL-Session-ID-tracking.patch b/src/current-patches/firefox/0008-Disable-SSL-Session-ID-tracking.patch
index ef227d9..1a20c3a 100644
--- a/src/current-patches/firefox/0008-Disable-SSL-Session-ID-tracking.patch
+++ b/src/current-patches/firefox/0008-Disable-SSL-Session-ID-tracking.patch
@@ -1,7 +1,7 @@
-From aa2165d4a1d496fc2d0e918ef99747ddfc7fd31e Mon Sep 17 00:00:00 2001
+From 0cdbc52ac00f33e532b5485cf12286a1dc11b981 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at fscked.org>
Date: Wed, 7 Dec 2011 19:36:38 -0800
-Subject: [PATCH 08/26] Disable SSL Session ID tracking.
+Subject: [PATCH 08/27] 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
diff --git a/src/current-patches/firefox/0009-Provide-an-observer-event-to-close-persistent-connec.patch b/src/current-patches/firefox/0009-Provide-an-observer-event-to-close-persistent-connec.patch
index bdf080c..1457815 100644
--- a/src/current-patches/firefox/0009-Provide-an-observer-event-to-close-persistent-connec.patch
+++ b/src/current-patches/firefox/0009-Provide-an-observer-event-to-close-persistent-connec.patch
@@ -1,7 +1,7 @@
-From bc23775c26e066a4abbd68727f92a9fe8ed21977 Mon Sep 17 00:00:00 2001
+From 41c163c0497ef16faaf103debf5bf7ef8244849a Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Fri, 7 Sep 2012 16:18:26 -0700
-Subject: [PATCH 09/26] Provide an observer event to close persistent
+Subject: [PATCH 09/27] Provide an observer event to close persistent
connections
We need to prevent linkability across "New Identity", which includes closing
diff --git a/src/current-patches/firefox/0010-Limit-device-and-system-specific-CSS-Media-Queries.patch b/src/current-patches/firefox/0010-Limit-device-and-system-specific-CSS-Media-Queries.patch
index a983794..e2876b3 100644
--- a/src/current-patches/firefox/0010-Limit-device-and-system-specific-CSS-Media-Queries.patch
+++ b/src/current-patches/firefox/0010-Limit-device-and-system-specific-CSS-Media-Queries.patch
@@ -1,7 +1,7 @@
-From 8fc251b2c49b46f0d07a7f80f814f5dae3a73ae6 Mon Sep 17 00:00:00 2001
+From 0c006870b9d96a8093ca66751e9738b4237c9251 Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
Date: Wed, 28 Nov 2012 09:49:40 -0500
-Subject: [PATCH 10/26] Limit device and system specific CSS Media Queries.
+Subject: [PATCH 10/27] Limit device and system specific CSS Media Queries.
---
layout/style/nsMediaFeatures.cpp | 68 +++++++++++++++++++++++++-------------
diff --git a/src/current-patches/firefox/0011-Limit-the-number-of-fonts-per-document.patch b/src/current-patches/firefox/0011-Limit-the-number-of-fonts-per-document.patch
index dbf34a9..f02926a 100644
--- a/src/current-patches/firefox/0011-Limit-the-number-of-fonts-per-document.patch
+++ b/src/current-patches/firefox/0011-Limit-the-number-of-fonts-per-document.patch
@@ -1,7 +1,7 @@
-From 6b7306a50a304bcf12b04784115f21f34b71864a Mon Sep 17 00:00:00 2001
+From 094f1e4c33656e3f0922d6fcb941deb672fa44a8 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Wed, 5 Dec 2012 12:25:21 -0800
-Subject: [PATCH 11/26] Limit the number of fonts per document.
+Subject: [PATCH 11/27] Limit the number of fonts per document.
We create two prefs:
browser.display.max_font_count and browser.display.max_font_attempts.
diff --git a/src/current-patches/firefox/0012-Rebrand-Firefox-to-TorBrowser.patch b/src/current-patches/firefox/0012-Rebrand-Firefox-to-TorBrowser.patch
index 3c0c2a2..38097b2 100644
--- a/src/current-patches/firefox/0012-Rebrand-Firefox-to-TorBrowser.patch
+++ b/src/current-patches/firefox/0012-Rebrand-Firefox-to-TorBrowser.patch
@@ -1,7 +1,7 @@
-From 0c832e01da6845fc0f56ee9fce68f219b56950c3 Mon Sep 17 00:00:00 2001
+From e04a04b7d3837b12c728a04b48be3748248e8342 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 28 Aug 2012 18:05:11 -0700
-Subject: [PATCH 12/26] Rebrand Firefox to TorBrowser
+Subject: [PATCH 12/27] Rebrand Firefox to TorBrowser
This patch does some basic renaming of Firefox to TorBrowser. The rest of the
branding is done by images and icons.
diff --git a/src/current-patches/firefox/0013-Make-Download-manager-memory-only.patch b/src/current-patches/firefox/0013-Make-Download-manager-memory-only.patch
index c84be7d..4959935 100644
--- a/src/current-patches/firefox/0013-Make-Download-manager-memory-only.patch
+++ b/src/current-patches/firefox/0013-Make-Download-manager-memory-only.patch
@@ -1,7 +1,7 @@
-From 0cb96bdc00f9b1fa37916f92bc4fc5850c13f96f Mon Sep 17 00:00:00 2001
+From 5f9d765db5e0f09fd64c710644dfed872cec3942 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 16:05:55 -0800
-Subject: [PATCH 13/26] Make Download manager memory only.
+Subject: [PATCH 13/27] Make Download manager memory only.
Solves https://trac.torproject.org/projects/tor/ticket/4017.
diff --git a/src/current-patches/firefox/0014-Add-DDG-and-StartPage-to-Omnibox.patch b/src/current-patches/firefox/0014-Add-DDG-and-StartPage-to-Omnibox.patch
index caa96f6..d26c57f 100644
--- a/src/current-patches/firefox/0014-Add-DDG-and-StartPage-to-Omnibox.patch
+++ b/src/current-patches/firefox/0014-Add-DDG-and-StartPage-to-Omnibox.patch
@@ -1,7 +1,7 @@
-From ab1a01ca37e8ca848c2629d8b1d0768094d3a1ea Mon Sep 17 00:00:00 2001
+From fc4686de9d34eec32fafd34a35fd94c3f58d11e2 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Wed, 25 Apr 2012 15:03:46 -0700
-Subject: [PATCH 14/26] Add DDG and StartPage to Omnibox.
+Subject: [PATCH 14/27] Add DDG and StartPage to Omnibox.
You mean there are search engines that don't require captchas if you don't
have a cookie? Holy crap. Get those in there now.
diff --git a/src/current-patches/firefox/0015-Make-nsICacheService.EvictEntries-synchronous.patch b/src/current-patches/firefox/0015-Make-nsICacheService.EvictEntries-synchronous.patch
index ff25754..b0de192 100644
--- a/src/current-patches/firefox/0015-Make-nsICacheService.EvictEntries-synchronous.patch
+++ b/src/current-patches/firefox/0015-Make-nsICacheService.EvictEntries-synchronous.patch
@@ -1,7 +1,7 @@
-From 95a3b60fdd0dac8ba1fb1755312072558ea75c13 Mon Sep 17 00:00:00 2001
+From fa4ea3d80ec00ec29bdd286c2269b6370c107fce Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 16:25:52 -0800
-Subject: [PATCH 15/26] Make nsICacheService.EvictEntries synchronous
+Subject: [PATCH 15/27] Make nsICacheService.EvictEntries synchronous
This fixes a race condition that allows cache-based EverCookies to persist for
a brief time (on the order of minutes?) after cache clearing/"New Identity".
diff --git a/src/current-patches/firefox/0016-Prevent-WebSocket-DNS-leak.patch b/src/current-patches/firefox/0016-Prevent-WebSocket-DNS-leak.patch
index 7028ed7..587df41 100644
--- a/src/current-patches/firefox/0016-Prevent-WebSocket-DNS-leak.patch
+++ b/src/current-patches/firefox/0016-Prevent-WebSocket-DNS-leak.patch
@@ -1,7 +1,7 @@
-From d9a76d292f33b7e36c4d1aa3834eed69f0287a4e Mon Sep 17 00:00:00 2001
+From fa93f12f0a727b5ed097b7de2e59d473680f4b8c Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 28 Aug 2012 18:07:37 -0700
-Subject: [PATCH 16/26] Prevent WebSocket DNS leak.
+Subject: [PATCH 16/27] Prevent WebSocket DNS leak.
This is due to an improper implementation of the WebSocket spec by Mozilla.
diff --git a/src/current-patches/firefox/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch b/src/current-patches/firefox/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch
index dbf380d..ecc329b 100644
--- a/src/current-patches/firefox/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch
+++ b/src/current-patches/firefox/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch
@@ -1,7 +1,7 @@
-From db11101312a3bb8912817fa910a87ce0ebd9c00d Mon Sep 17 00:00:00 2001
+From e818ee33a8fd443dda1edbda03b16d49cdb5a47d Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Tue, 4 Dec 2012 17:38:51 -0800
-Subject: [PATCH 17/26] Randomize HTTP request order and pipeline depth.
+Subject: [PATCH 17/27] Randomize HTTP request order and pipeline depth.
This is an experimental defense against
http://lorre.uni.lu/~andriy/papers/acmccs-wpes11-fingerprinting.pdf
diff --git a/src/current-patches/firefox/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch b/src/current-patches/firefox/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch
deleted file mode 100644
index e9ecba2..0000000
--- a/src/current-patches/firefox/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch
+++ /dev/null
@@ -1,545 +0,0 @@
-From 8b97d84e891fb593bd48db41abcebbcb8e4da953 Mon Sep 17 00:00:00 2001
-From: Mike Perry <mikeperry-git at torproject.org>
-Date: Tue, 4 Dec 2012 17:48:53 -0800
-Subject: [PATCH 18/26] Adapt Steven Michaud's Mac crashfix patch
-
-Source is: https://bugzilla.mozilla.org/show_bug.cgi?id=715885#c35
-
-Some minor tweaks were needed to get it to apply and to compile on
-MacOS.
----
- widget/Makefile.in | 1 +
- widget/cocoa/nsChildView.mm | 28 +++++++++++------
- widget/gtk2/nsDragService.cpp | 9 +++--
- widget/nsIDragService.idl | 4 +--
- widget/nsPIDragService.idl | 48 +++++++++++++++++++++++++++++
- widget/qt/nsDragService.h | 2 +
- widget/windows/Makefile.in | 4 ++
- widget/windows/nsDragService.cpp | 13 +++++---
- widget/windows/nsDragService.h | 12 +++---
- widget/windows/nsNativeDragSource.cpp | 7 ++--
- widget/windows/nsNativeDragTarget.cpp | 28 ++++++++++------
- widget/windows/nsPIDragServiceWindows.idl | 46 +++++++++++++++++++++++++++
- widget/xpwidgets/nsBaseDragService.cpp | 16 +++++++++-
- widget/xpwidgets/nsBaseDragService.h | 9 ++---
- 14 files changed, 179 insertions(+), 48 deletions(-)
- create mode 100644 widget/nsPIDragService.idl
- create mode 100644 widget/windows/nsPIDragServiceWindows.idl
-
-diff --git a/widget/Makefile.in b/widget/Makefile.in
-index 4ab8a48..bc5aa5c 100644
---- a/widget/Makefile.in
-+++ b/widget/Makefile.in
-@@ -106,6 +106,7 @@ XPIDLSRCS = \
- nsIClipboardDragDropHooks.idl \
- nsIClipboardDragDropHookList.idl \
- nsIDragSession.idl \
-+ nsPIDragService.idl \
- nsIDragService.idl \
- nsIFormatConverter.idl \
- nsIClipboard.idl \
-diff --git a/widget/cocoa/nsChildView.mm b/widget/cocoa/nsChildView.mm
-index aa919fa..d5fa58f 100644
---- a/widget/cocoa/nsChildView.mm
-+++ b/widget/cocoa/nsChildView.mm
-@@ -4518,11 +4518,12 @@ static int32_t RoundUp(double aDouble)
- if (!dragService) {
- dragService = do_GetService(kDragServiceContractID);
- }
-+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(dragService);
-
- if (dragService) {
- NSPoint pnt = [NSEvent mouseLocation];
- FlipCocoaScreenCoordinate(pnt);
-- dragService->DragMoved(NSToIntRound(pnt.x), NSToIntRound(pnt.y));
-+ dragServicePriv->DragMoved(NSToIntRound(pnt.x), NSToIntRound(pnt.y));
- }
- }
-
-@@ -4543,11 +4544,13 @@ static int32_t RoundUp(double aDouble)
- }
-
- if (mDragService) {
-- // set the dragend point from the current mouse location
-- nsDragService* dragService = static_cast<nsDragService *>(mDragService);
-- NSPoint pnt = [NSEvent mouseLocation];
-- FlipCocoaScreenCoordinate(pnt);
-- dragService->SetDragEndPoint(nsIntPoint(NSToIntRound(pnt.x), NSToIntRound(pnt.y)));
-+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(mDragService);
-+ if (dragServicePriv) {
-+ // set the dragend point from the current mouse location
-+ NSPoint pnt = [NSEvent mouseLocation];
-+ FlipCocoaScreenCoordinate(pnt);
-+ dragServicePriv->SetDragEndPoint(NSToIntRound(pnt.x), NSToIntRound(pnt.y));
-+ }
-
- // XXX: dropEffect should be updated per |operation|.
- // As things stand though, |operation| isn't well handled within "our"
-@@ -4558,10 +4561,15 @@ static int32_t RoundUp(double aDouble)
- // value for NSDragOperationGeneric that is passed by other applications.
- // All that said, NSDragOperationNone is still reliable.
- if (operation == NSDragOperationNone) {
-- nsCOMPtr<nsIDOMDataTransfer> dataTransfer;
-- dragService->GetDataTransfer(getter_AddRefs(dataTransfer));
-- if (dataTransfer)
-- dataTransfer->SetDropEffectInt(nsIDragService::DRAGDROP_ACTION_NONE);
-+ nsCOMPtr<nsIDragSession> dragSession;
-+ mDragService->GetCurrentSession(getter_AddRefs(dragSession));
-+ if (dragSession) {
-+ nsCOMPtr<nsIDOMDataTransfer> dataTransfer;
-+ dragSession->GetDataTransfer(getter_AddRefs(dataTransfer));
-+ if (dataTransfer) {
-+ dataTransfer->SetDropEffectInt(nsIDragService::DRAGDROP_ACTION_NONE);
-+ }
-+ }
- }
-
- mDragService->EndDragSession(true);
-diff --git a/widget/gtk2/nsDragService.cpp b/widget/gtk2/nsDragService.cpp
-index 10985cc..bac4160 100644
---- a/widget/gtk2/nsDragService.cpp
-+++ b/widget/gtk2/nsDragService.cpp
-@@ -234,8 +234,8 @@ OnSourceGrabEventAfter(GtkWidget *widget, GdkEvent *event, gpointer user_data)
- // Update the cursor position. The last of these recorded gets used for
- // the NS_DRAGDROP_END event.
- nsDragService *dragService = static_cast<nsDragService*>(user_data);
-- dragService->SetDragEndPoint(nsIntPoint(event->motion.x_root,
-- event->motion.y_root));
-+ dragService->SetDragEndPoint(event->motion.x_root,
-+ event->motion.y_root);
- } else if (sMotionEvent && (event->type != GDK_KEY_PRESS ||
- event->type != GDK_KEY_RELEASE)) {
- // Update modifier state from keypress events.
-@@ -1343,7 +1343,7 @@ nsDragService::SourceEndDragSession(GdkDragContext *aContext,
- GdkDisplay* display = gdk_display_get_default();
- if (display) {
- gdk_display_get_pointer(display, NULL, &x, &y, NULL);
-- SetDragEndPoint(nsIntPoint(x, y));
-+ SetDragEndPoint(x, y);
- }
- }
-
-@@ -1760,8 +1760,9 @@ nsDragService::ScheduleDropEvent(nsWindow *aWindow,
- NS_WARNING("Additional drag drop ignored");
- return FALSE;
- }
-+ nsIntPoint pt = aWindowPoint + aWindow->WidgetToScreenOffset();
-
-- SetDragEndPoint(aWindowPoint + aWindow->WidgetToScreenOffset());
-+ SetDragEndPoint(pt.x, pt.y);
-
- // We'll reply with gtk_drag_finish().
- return TRUE;
-diff --git a/widget/nsIDragService.idl b/widget/nsIDragService.idl
-index 196761e..c0565bb 100644
---- a/widget/nsIDragService.idl
-+++ b/widget/nsIDragService.idl
-@@ -15,7 +15,7 @@ interface nsIDOMDragEvent;
- interface nsIDOMDataTransfer;
- interface nsISelection;
-
--[scriptable, uuid(82B58ADA-F490-4C3D-B737-1057C4F1D052), builtinclass]
-+[scriptable, uuid(82B58ADA-F490-4C3D-B737-1057C4F1D052)]
- interface nsIDragService : nsISupports
- {
- const long DRAGDROP_ACTION_NONE = 0;
-@@ -112,8 +112,6 @@ interface nsIDragService : nsISupports
- */
- void suppress();
- void unsuppress();
--
-- [noscript] void dragMoved(in long aX, in long aY);
- };
-
-
-diff --git a/widget/nsPIDragService.idl b/widget/nsPIDragService.idl
-new file mode 100644
-index 0000000..7a703c1
---- /dev/null
-+++ b/widget/nsPIDragService.idl
-@@ -0,0 +1,48 @@
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * The Mozilla Foundation.
-+ * Portions created by the Initial Developer are Copyright (C) 2012
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Steven Michaud <smichaud at pobox.com>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+#include "nsISupports.idl"
-+
-+[scriptable, uuid(FAD8C90B-8E1D-446A-9B6C-241486A85CBD)]
-+interface nsPIDragService : nsISupports
-+{
-+ void dragMoved(in long aX, in long aY);
-+
-+ uint16_t getInputSource();
-+
-+ void setDragEndPoint(in long aX, in long aY);
-+};
-diff --git a/widget/qt/nsDragService.h b/widget/qt/nsDragService.h
-index ee145ad..b03b74e 100644
---- a/widget/qt/nsDragService.h
-+++ b/widget/qt/nsDragService.h
-@@ -17,6 +17,8 @@ public:
- NS_DECL_ISUPPORTS
- NS_DECL_NSIDRAGSERVICE
-
-+ NS_IMETHOD DragMoved(PRInt32 aX, PRInt32 aY);
-+
- nsDragService();
-
- private:
-diff --git a/widget/windows/Makefile.in b/widget/windows/Makefile.in
-index ec383bd..7000ec0 100644
---- a/widget/windows/Makefile.in
-+++ b/widget/windows/Makefile.in
-@@ -88,6 +88,10 @@ ifdef MOZ_ENABLE_D3D10_LAYER
- DEFINES += -DMOZ_ENABLE_D3D10_LAYER
- endif
-
-+XPIDLSRCS += \
-+ nsPIDragServiceWindows.idl \
-+ $(NULL)
-+
- SHARED_LIBRARY_LIBS = \
- ../xpwidgets/$(LIB_PREFIX)xpwidgets_s.$(LIB_SUFFIX) \
- $(NULL)
-diff --git a/widget/windows/nsDragService.cpp b/widget/windows/nsDragService.cpp
-index 899154a..9511457 100644
---- a/widget/windows/nsDragService.cpp
-+++ b/widget/windows/nsDragService.cpp
-@@ -60,6 +60,8 @@ nsDragService::~nsDragService()
- NS_IF_RELEASE(mDataObject);
- }
-
-+NS_IMPL_ISUPPORTS_INHERITED1(nsDragService, nsBaseDragService, nsPIDragServiceWindows)
-+
- bool
- nsDragService::CreateDragImage(nsIDOMNode *aDOMNode,
- nsIScriptableRegion *aRegion,
-@@ -305,7 +307,7 @@ nsDragService::StartInvokingDragSession(IDataObject * aDataObj,
- POINT cpos;
- cpos.x = GET_X_LPARAM(pos);
- cpos.y = GET_Y_LPARAM(pos);
-- SetDragEndPoint(nsIntPoint(cpos.x, cpos.y));
-+ SetDragEndPoint(cpos.x, cpos.y);
- EndDragSession(true);
-
- mDoingDrag = false;
-@@ -426,25 +428,26 @@ nsDragService::GetData(nsITransferable * aTransferable, uint32_t anItem)
-
- //---------------------------------------------------------
- NS_IMETHODIMP
--nsDragService::SetIDataObject(IDataObject * aDataObj)
-+nsDragService::SetIDataObject(nsISupports * aDataObj)
- {
-+ IDataObject *dataObj = (IDataObject*) aDataObj;
- // When the native drag starts the DragService gets
- // the IDataObject that is being dragged
- NS_IF_RELEASE(mDataObject);
-- mDataObject = aDataObj;
-+ mDataObject = dataObj;
- NS_IF_ADDREF(mDataObject);
-
- return NS_OK;
- }
-
- //---------------------------------------------------------
--void
-+NS_IMETHODIMP
- nsDragService::SetDroppedLocal()
- {
- // Sent from the native drag handler, letting us know
- // a drop occurred within the application vs. outside of it.
- mSentLocalDropEvent = true;
-- return;
-+ return NS_OK;
- }
-
- //-------------------------------------------------------------------------
-diff --git a/widget/windows/nsDragService.h b/widget/windows/nsDragService.h
-index 236910a..e83167d 100644
---- a/widget/windows/nsDragService.h
-+++ b/widget/windows/nsDragService.h
-@@ -7,6 +7,7 @@
- #define nsDragService_h__
-
- #include "nsBaseDragService.h"
-+#include "nsPIDragServiceWindows.h"
- #include <windows.h>
- #include <shlobj.h>
-
-@@ -20,12 +21,15 @@ class nsString;
- * Native Win32 DragService wrapper
- */
-
--class nsDragService : public nsBaseDragService
-+class nsDragService : public nsBaseDragService, public nsPIDragServiceWindows
- {
- public:
- nsDragService();
- virtual ~nsDragService();
--
-+
-+ NS_DECL_ISUPPORTS_INHERITED
-+ NS_DECL_NSPIDRAGSERVICEWINDOWS
-+
- // nsIDragService
- NS_IMETHOD InvokeDragSession(nsIDOMNode *aDOMNode,
- nsISupportsArray *anArrayTransferables,
-@@ -39,13 +43,9 @@ public:
- NS_IMETHOD EndDragSession(bool aDoneDrag);
-
- // native impl.
-- NS_IMETHOD SetIDataObject(IDataObject * aDataObj);
- NS_IMETHOD StartInvokingDragSession(IDataObject * aDataObj,
- uint32_t aActionType);
-
-- // A drop occurred within the application vs. outside of it.
-- void SetDroppedLocal();
--
- protected:
- nsDataObjCollection* GetDataObjCollection(IDataObject * aDataObj);
-
-diff --git a/widget/windows/nsNativeDragSource.cpp b/widget/windows/nsNativeDragSource.cpp
-index 3acee30..3662c18 100644
---- a/widget/windows/nsNativeDragSource.cpp
-+++ b/widget/windows/nsNativeDragSource.cpp
-@@ -10,7 +10,7 @@
- #include "nsIServiceManager.h"
- #include "nsToolkit.h"
- #include "nsWidgetsCID.h"
--#include "nsIDragService.h"
-+#include "nsDragService.h"
-
- static NS_DEFINE_IID(kCDragServiceCID, NS_DRAGSERVICE_CID);
-
-@@ -69,9 +69,10 @@ STDMETHODIMP
- nsNativeDragSource::QueryContinueDrag(BOOL fEsc, DWORD grfKeyState)
- {
- nsCOMPtr<nsIDragService> dragService = do_GetService(kCDragServiceCID);
-- if (dragService) {
-+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(dragService);
-+ if (dragServicePriv) {
- DWORD pos = ::GetMessagePos();
-- dragService->DragMoved(GET_X_LPARAM(pos), GET_Y_LPARAM(pos));
-+ dragServicePriv->DragMoved(GET_X_LPARAM(pos), GET_Y_LPARAM(pos));
- }
-
- if (fEsc) {
-diff --git a/widget/windows/nsNativeDragTarget.cpp b/widget/windows/nsNativeDragTarget.cpp
-index ec12f8e..8b72f6d 100644
---- a/widget/windows/nsNativeDragTarget.cpp
-+++ b/widget/windows/nsNativeDragTarget.cpp
-@@ -174,7 +174,11 @@ nsNativeDragTarget::DispatchDragDropEvent(uint32_t aEventType, POINTL aPT)
- ModifierKeyState modifierKeyState;
- modifierKeyState.InitInputEvent(event);
-
-- event.inputSource = static_cast<nsBaseDragService*>(mDragService)->GetInputSource();
-+ event.inputSource = 0;
-+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(mDragService);
-+ if (dragServicePriv) {
-+ dragServicePriv->GetInputSource(&event.inputSource);
-+ }
-
- mWidget->DispatchEvent(&event, status);
- }
-@@ -261,9 +265,8 @@ nsNativeDragTarget::DragEnter(LPDATAOBJECT pIDataSource,
- // This cast is ok because in the constructor we created a
- // the actual implementation we wanted, so we know this is
- // a nsDragService. It should be a private interface, though.
-- nsDragService * winDragService =
-- static_cast<nsDragService *>(mDragService);
-- winDragService->SetIDataObject(pIDataSource);
-+ nsCOMPtr<nsPIDragServiceWindows> winDragService = do_QueryInterface(mDragService);
-+ winDragService->SetIDataObject((nsISupports*)pIDataSource);
-
- // Now process the native drag state and then dispatch the event
- ProcessDrag(NS_DRAGDROP_ENTER, grfKeyState, ptl, pdwEffect);
-@@ -401,8 +404,8 @@ nsNativeDragTarget::Drop(LPDATAOBJECT pData,
- // This cast is ok because in the constructor we created a
- // the actual implementation we wanted, so we know this is
- // a nsDragService (but it should still be a private interface)
-- nsDragService* winDragService = static_cast<nsDragService*>(mDragService);
-- winDragService->SetIDataObject(pData);
-+ nsCOMPtr<nsPIDragServiceWindows> winDragService = do_QueryInterface(mDragService);
-+ winDragService->SetIDataObject((nsISupports*)pData);
-
- // NOTE: ProcessDrag spins the event loop which may destroy arbitrary objects.
- // We use strong refs to prevent it from destroying these:
-@@ -426,11 +429,14 @@ nsNativeDragTarget::Drop(LPDATAOBJECT pData,
- // tell the drag service we're done with the session
- // Use GetMessagePos to get the position of the mouse at the last message
- // seen by the event loop. (Bug 489729)
-- DWORD pos = ::GetMessagePos();
-- POINT cpos;
-- cpos.x = GET_X_LPARAM(pos);
-- cpos.y = GET_Y_LPARAM(pos);
-- winDragService->SetDragEndPoint(nsIntPoint(cpos.x, cpos.y));
-+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(mDragService);
-+ if (dragServicePriv) {
-+ DWORD pos = ::GetMessagePos();
-+ POINT cpos;
-+ cpos.x = GET_X_LPARAM(pos);
-+ cpos.y = GET_Y_LPARAM(pos);
-+ dragServicePriv->SetDragEndPoint(cpos.x, cpos.y);
-+ }
- serv->EndDragSession(true);
-
- // release the ref that was taken in DragEnter
-diff --git a/widget/windows/nsPIDragServiceWindows.idl b/widget/windows/nsPIDragServiceWindows.idl
-new file mode 100644
-index 0000000..c8a46dd
---- /dev/null
-+++ b/widget/windows/nsPIDragServiceWindows.idl
-@@ -0,0 +1,46 @@
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * The Mozilla Foundation.
-+ * Portions created by the Initial Developer are Copyright (C) 2012
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ * Steven Michaud <smichaud at pobox.com>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either the GNU General Public License Version 2 or later (the "GPL"), or
-+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+#include "nsISupports.idl"
-+
-+[scriptable, uuid(6FC2117D-5EB4-441A-9C12-62A783BEBC0C)]
-+interface nsPIDragServiceWindows : nsISupports
-+{
-+ void setIDataObject(in nsISupports aDataObj);
-+
-+ void setDroppedLocal();
-+};
-diff --git a/widget/xpwidgets/nsBaseDragService.cpp b/widget/xpwidgets/nsBaseDragService.cpp
-index 805d83f..9b69793 100644
---- a/widget/xpwidgets/nsBaseDragService.cpp
-+++ b/widget/xpwidgets/nsBaseDragService.cpp
-@@ -55,7 +55,7 @@ nsBaseDragService::~nsBaseDragService()
- {
- }
-
--NS_IMPL_ISUPPORTS2(nsBaseDragService, nsIDragService, nsIDragSession)
-+NS_IMPL_ISUPPORTS3(nsBaseDragService, nsIDragService, nsPIDragService, nsIDragSession)
-
- //---------------------------------------------------------
- NS_IMETHODIMP
-@@ -403,6 +403,20 @@ nsBaseDragService::DragMoved(int32_t aX, int32_t aY)
- return NS_OK;
- }
-
-+NS_IMETHODIMP
-+nsBaseDragService::SetDragEndPoint(PRInt32 aX, PRInt32 aY)
-+{
-+ mEndDragPoint = nsIntPoint(aX, aY);
-+ return NS_OK;
-+}
-+
-+NS_IMETHODIMP
-+nsBaseDragService::GetInputSource(PRUint16* aInputSource)
-+{
-+ *aInputSource = mInputSource;
-+ return NS_OK;
-+}
-+
- static nsIPresShell*
- GetPresShellForContent(nsIDOMNode* aDOMNode)
- {
-diff --git a/widget/xpwidgets/nsBaseDragService.h b/widget/xpwidgets/nsBaseDragService.h
-index cb00f8e..741c287 100644
---- a/widget/xpwidgets/nsBaseDragService.h
-+++ b/widget/xpwidgets/nsBaseDragService.h
-@@ -7,6 +7,7 @@
- #define nsBaseDragService_h__
-
- #include "nsIDragService.h"
-+#include "nsPIDragService.h"
- #include "nsIDragSession.h"
- #include "nsITransferable.h"
- #include "nsISupportsArray.h"
-@@ -32,6 +33,7 @@ class nsICanvasElementExternal;
- */
-
- class nsBaseDragService : public nsIDragService,
-+ public nsPIDragService,
- public nsIDragSession
- {
-
-@@ -42,14 +44,11 @@ public:
- //nsISupports
- NS_DECL_ISUPPORTS
-
-- //nsIDragSession and nsIDragService
-+ //nsIDragSession, nsIDragService and nsPIDragService
- NS_DECL_NSIDRAGSERVICE
-+ NS_DECL_NSPIDRAGSERVICE
- NS_DECL_NSIDRAGSESSION
-
-- void SetDragEndPoint(nsIntPoint aEndDragPoint) { mEndDragPoint = aEndDragPoint; }
--
-- uint16_t GetInputSource() { return mInputSource; }
--
- protected:
-
- /**
---
-1.7.5.4
-
diff --git a/src/current-patches/firefox/0018-Emit-observer-event-to-filter-the-Drag-Drop-url-list.patch b/src/current-patches/firefox/0018-Emit-observer-event-to-filter-the-Drag-Drop-url-list.patch
new file mode 100644
index 0000000..299d9c4
--- /dev/null
+++ b/src/current-patches/firefox/0018-Emit-observer-event-to-filter-the-Drag-Drop-url-list.patch
@@ -0,0 +1,74 @@
+From c8c34d3df6d8a6cefdc9acee0520a7b0176aef6d Mon Sep 17 00:00:00 2001
+From: Mike Perry <mikeperry-git at torproject.org>
+Date: Thu, 28 Feb 2013 18:10:16 -0800
+Subject: [PATCH 18/27] Emit observer event to filter the Drag+Drop url list
+
+This patch creates an "on-modify-drag-list" observer that addons can listen
+to. For us, it supports Torbutton code that filters out Drag+Drop mime types
+that the OS Desktop sniffs and attempts to load without Tor.
+
+Such proxy bypass behavior is immediate on Mac and Ubuntu: you don't even have
+to release the object for it to get sniffed and cause the OS to load it
+without Tor. In fact, accidentally clicking for too long on an image is enough
+to cause proxy bypass on those systems.
+---
+ widget/xpwidgets/nsBaseDragService.cpp | 8 ++++++++
+ widget/xpwidgets/nsBaseDragService.h | 2 ++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/widget/xpwidgets/nsBaseDragService.cpp b/widget/xpwidgets/nsBaseDragService.cpp
+index 805d83f..4c99b9c 100644
+--- a/widget/xpwidgets/nsBaseDragService.cpp
++++ b/widget/xpwidgets/nsBaseDragService.cpp
+@@ -34,6 +34,7 @@
+ #include "nsXULPopupManager.h"
+ #include "nsMenuPopupFrame.h"
+ #include "mozilla/Preferences.h"
++#include "mozilla/Services.h"
+
+ #include "gfxContext.h"
+ #include "gfxPlatform.h"
+@@ -49,6 +50,7 @@ nsBaseDragService::nsBaseDragService()
+ mImageX(0), mImageY(0), mScreenX(-1), mScreenY(-1), mSuppressLevel(0),
+ mInputSource(nsIDOMMouseEvent::MOZ_SOURCE_MOUSE)
+ {
++ mObserverService = mozilla::services::GetObserverService();
+ }
+
+ nsBaseDragService::~nsBaseDragService()
+@@ -203,6 +205,12 @@ nsBaseDragService::InvokeDragSession(nsIDOMNode *aDOMNode,
+ NS_ENSURE_TRUE(aDOMNode, NS_ERROR_INVALID_ARG);
+ NS_ENSURE_TRUE(mSuppressLevel == 0, NS_ERROR_FAILURE);
+
++ // Emit observer event to allow addons to modify the transfer array.
++ if (mObserverService)
++ mObserverService->NotifyObservers(aTransferableArray,
++ "on-modify-drag-list",
++ nullptr);
++
+ // stash the document of the dom node
+ aDOMNode->GetOwnerDocument(getter_AddRefs(mSourceDocument));
+ mSourceNode = aDOMNode;
+diff --git a/widget/xpwidgets/nsBaseDragService.h b/widget/xpwidgets/nsBaseDragService.h
+index cb00f8e..8b91899 100644
+--- a/widget/xpwidgets/nsBaseDragService.h
++++ b/widget/xpwidgets/nsBaseDragService.h
+@@ -6,6 +6,7 @@
+ #ifndef nsBaseDragService_h__
+ #define nsBaseDragService_h__
+
++#include "nsIObserverService.h"
+ #include "nsIDragService.h"
+ #include "nsIDragSession.h"
+ #include "nsITransferable.h"
+@@ -113,6 +114,7 @@ protected:
+
+ uint32_t mDragAction;
+ nsSize mTargetSize;
++ nsCOMPtr<nsIObserverService> mObserverService;
+ nsCOMPtr<nsIDOMNode> mSourceNode;
+ nsCOMPtr<nsIDOMDocument> mSourceDocument; // the document at the drag source. will be null
+ // if it came from outside the app.
+--
+1.7.5.4
+
diff --git a/src/current-patches/firefox/0019-Add-mozIThirdPartyUtil.getFirstPartyURI-API.patch b/src/current-patches/firefox/0019-Add-mozIThirdPartyUtil.getFirstPartyURI-API.patch
index f23117e..bf34575 100644
--- a/src/current-patches/firefox/0019-Add-mozIThirdPartyUtil.getFirstPartyURI-API.patch
+++ b/src/current-patches/firefox/0019-Add-mozIThirdPartyUtil.getFirstPartyURI-API.patch
@@ -1,7 +1,7 @@
-From 81c1a8a664d433686367e44ebd49320be337a2f3 Mon Sep 17 00:00:00 2001
+From 5ae9b5b0f8254c9335d770c36e7dad617054ae2e Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Wed, 28 Nov 2012 17:08:29 -0500
-Subject: [PATCH 19/26] Add mozIThirdPartyUtil.getFirstPartyURI API
+Subject: [PATCH 19/27] Add mozIThirdPartyUtil.getFirstPartyURI API
API allows you to get the url bar URI for a channel or nsIDocument.
---
diff --git a/src/current-patches/firefox/0020-Add-canvas-image-extraction-prompt.patch b/src/current-patches/firefox/0020-Add-canvas-image-extraction-prompt.patch
index 5b0979f..9dae773 100644
--- a/src/current-patches/firefox/0020-Add-canvas-image-extraction-prompt.patch
+++ b/src/current-patches/firefox/0020-Add-canvas-image-extraction-prompt.patch
@@ -1,7 +1,7 @@
-From e62f1676c6b9ddaf6a3fa29075378263fbd9067d Mon Sep 17 00:00:00 2001
+From e94cff1b650ca95ae937b2eaac0ef6ec95dec6cd Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
Date: Tue, 27 Nov 2012 13:13:40 -0500
-Subject: [PATCH 20/26] Add canvas image extraction prompt.
+Subject: [PATCH 20/27] Add canvas image extraction prompt.
---
browser/base/content/browser.js | 102 ++++++++++++++++++++
@@ -20,10 +20,10 @@ Subject: [PATCH 20/26] Add canvas image extraction prompt.
13 files changed, 249 insertions(+), 10 deletions(-)
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
-index 9f77fd0..5316da6 100644
+index bd2feed..50054e7 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
-@@ -1279,6 +1279,7 @@ var gBrowserInit = {
+@@ -1280,6 +1280,7 @@ var gBrowserInit = {
BrowserOffline.init();
OfflineApps.init();
IndexedDBPromptHelper.init();
@@ -31,7 +31,7 @@ index 9f77fd0..5316da6 100644
gFormSubmitObserver.init();
SocialUI.init();
AddonManager.addAddonListener(AddonsMgrListener);
-@@ -1636,6 +1637,7 @@ var gBrowserInit = {
+@@ -1637,6 +1638,7 @@ var gBrowserInit = {
BrowserOffline.uninit();
OfflineApps.uninit();
IndexedDBPromptHelper.uninit();
@@ -39,7 +39,7 @@ index 9f77fd0..5316da6 100644
AddonManager.removeAddonListener(AddonsMgrListener);
SocialUI.uninit();
}
-@@ -6126,6 +6128,106 @@ var IndexedDBPromptHelper = {
+@@ -6127,6 +6129,106 @@ var IndexedDBPromptHelper = {
}
};
@@ -177,7 +177,7 @@ index 1a9f457..4e61cb9 100644
# %2$S a number of megabytes.
indexedDB.usage=This website (%1$S) is attempting to store more than %2$S MB of data on your computer for offline use.
diff --git a/browser/themes/gnomestripe/browser.css b/browser/themes/gnomestripe/browser.css
-index f62d5a8..77df3a8 100644
+index a90d500..fd5d042 100644
--- a/browser/themes/gnomestripe/browser.css
+++ b/browser/themes/gnomestripe/browser.css
@@ -1185,6 +1185,7 @@ toolbar[iconsize="small"] #feed-button {
@@ -197,10 +197,10 @@ index f62d5a8..77df3a8 100644
list-style-image: url(chrome://global/skin/icons/question-16.png);
}
diff --git a/browser/themes/pinstripe/browser.css b/browser/themes/pinstripe/browser.css
-index 510af73..1f11603 100644
+index cb98808..69b908f 100644
--- a/browser/themes/pinstripe/browser.css
+++ b/browser/themes/pinstripe/browser.css
-@@ -2426,10 +2426,12 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
+@@ -2433,10 +2433,12 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
-moz-image-region: rect(0px, 48px, 16px, 32px);
}
@@ -214,7 +214,7 @@ index 510af73..1f11603 100644
.popup-notification-icon[popupid="indexedDB-quota-prompt"] {
list-style-image: url(chrome://global/skin/icons/question-64.png);
diff --git a/browser/themes/winstripe/browser.css b/browser/themes/winstripe/browser.css
-index 30fb26c..360d80a 100644
+index d02eed6..70aab91 100644
--- a/browser/themes/winstripe/browser.css
+++ b/browser/themes/winstripe/browser.css
@@ -2319,6 +2319,7 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
diff --git a/src/current-patches/firefox/0021-Return-client-window-coordinates-for-mouse-event-scr.patch b/src/current-patches/firefox/0021-Return-client-window-coordinates-for-mouse-event-scr.patch
index d1bbfcd..e978f2e 100644
--- a/src/current-patches/firefox/0021-Return-client-window-coordinates-for-mouse-event-scr.patch
+++ b/src/current-patches/firefox/0021-Return-client-window-coordinates-for-mouse-event-scr.patch
@@ -1,7 +1,7 @@
-From 56a087769b2a258659bae4f626b37755c0961d6d Mon Sep 17 00:00:00 2001
+From a895a19ed20e59425397ec63b5797bb61d038ed1 Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
Date: Wed, 28 Nov 2012 10:49:09 -0500
-Subject: [PATCH 21/26] Return client window coordinates for mouse event
+Subject: [PATCH 21/27] Return client window coordinates for mouse event
screenX/Y (for dragend, 0,0 is returned).
---
diff --git a/src/current-patches/firefox/0022-Do-not-expose-physical-screen-info.-via-window-and-w.patch b/src/current-patches/firefox/0022-Do-not-expose-physical-screen-info.-via-window-and-w.patch
index d8ea69d..6330a28 100644
--- a/src/current-patches/firefox/0022-Do-not-expose-physical-screen-info.-via-window-and-w.patch
+++ b/src/current-patches/firefox/0022-Do-not-expose-physical-screen-info.-via-window-and-w.patch
@@ -1,7 +1,7 @@
-From 0149732cf5201db298f4b13be4cd73ae6094f011 Mon Sep 17 00:00:00 2001
+From af28611d01df9d584f69b8ae48fa17a5a9d30ce5 Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
Date: Wed, 28 Nov 2012 11:25:14 -0500
-Subject: [PATCH 22/26] Do not expose physical screen info. via window and
+Subject: [PATCH 22/27] Do not expose physical screen info. via window and
window.screen.
---
@@ -12,7 +12,7 @@ Subject: [PATCH 22/26] Do not expose physical screen info. via window and
4 files changed, 141 insertions(+), 0 deletions(-)
diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp
-index c06b715..b480ee5 100644
+index f675f87..48bd71d 100644
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -3745,6 +3745,10 @@ nsGlobalWindow::GetOuterWidth(int32_t* aOuterWidth)
diff --git a/src/current-patches/firefox/0023-Do-not-expose-system-colors-to-CSS-or-canvas.patch b/src/current-patches/firefox/0023-Do-not-expose-system-colors-to-CSS-or-canvas.patch
index a06ad44..fb6bb18 100644
--- a/src/current-patches/firefox/0023-Do-not-expose-system-colors-to-CSS-or-canvas.patch
+++ b/src/current-patches/firefox/0023-Do-not-expose-system-colors-to-CSS-or-canvas.patch
@@ -1,7 +1,7 @@
-From 39a2141abd8fd7c2723c4276a3501cb9cb120550 Mon Sep 17 00:00:00 2001
+From cf6f3b4441ff3ad850a04f461b875c2b99b3ec54 Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
Date: Wed, 28 Nov 2012 15:08:40 -0500
-Subject: [PATCH 23/26] Do not expose system colors to CSS or canvas.
+Subject: [PATCH 23/27] Do not expose system colors to CSS or canvas.
---
content/canvas/src/nsCanvasRenderingContext2D.cpp | 28 +++-
@@ -191,10 +191,10 @@ index 05ccf61..629d78a 100644
virtual ~nsCanvasGradientAzure() {}
};
diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp
-index 33ce21e..078af3e 100644
+index 86eff1f..732b1fe 100644
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
-@@ -746,7 +746,10 @@ static bool SetColor(const nsCSSValue& aValue, const nscolor aParentColor,
+@@ -747,7 +747,10 @@ static bool SetColor(const nsCSSValue& aValue, const nscolor aParentColor,
int32_t intValue = aValue.GetIntValue();
if (0 <= intValue) {
LookAndFeel::ColorID colorID = (LookAndFeel::ColorID) intValue;
diff --git a/src/current-patches/firefox/0024-Isolate-the-Image-Cache-per-url-bar-domain.patch b/src/current-patches/firefox/0024-Isolate-the-Image-Cache-per-url-bar-domain.patch
index 3fb55cf..f603315 100644
--- a/src/current-patches/firefox/0024-Isolate-the-Image-Cache-per-url-bar-domain.patch
+++ b/src/current-patches/firefox/0024-Isolate-the-Image-Cache-per-url-bar-domain.patch
@@ -1,7 +1,7 @@
-From 3454d300fca2eea0e652f8982ec996575886dd1a Mon Sep 17 00:00:00 2001
+From b168d43626d13fe64b33f194778af21114c3549d Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Thu, 6 Dec 2012 14:19:34 -0800
-Subject: [PATCH 24/26] Isolate the Image Cache per url bar domain.
+Subject: [PATCH 24/27] Isolate the Image Cache per url bar domain.
The image cache maintains its own table outside of the main cache, and does
not obey cacheKeys by default.
diff --git a/src/current-patches/firefox/0025-nsIHTTPChannel.redirectTo-API.patch b/src/current-patches/firefox/0025-nsIHTTPChannel.redirectTo-API.patch
index 725e159..f5e42ac 100644
--- a/src/current-patches/firefox/0025-nsIHTTPChannel.redirectTo-API.patch
+++ b/src/current-patches/firefox/0025-nsIHTTPChannel.redirectTo-API.patch
@@ -1,7 +1,7 @@
-From b3e34b6997e2aa709177210b6a1517bb4262843a Mon Sep 17 00:00:00 2001
+From f24d1c4d3b2d434313b0c7a7c6f0f145794a8797 Mon Sep 17 00:00:00 2001
From: Mike Perry <mikeperry-git at torproject.org>
Date: Mon, 14 Jan 2013 19:36:14 -0800
-Subject: [PATCH 25/26] nsIHTTPChannel.redirectTo API.
+Subject: [PATCH 25/27] nsIHTTPChannel.redirectTo API.
Provides an API for HTTPS-Everywhere to perform redirects to https
in a more secure and reliable way.
@@ -266,10 +266,10 @@ index c13c969..e16afd6 100644
// For document loads we keep this protocol open after child's
// OnStopRequest, and send this msg (instead of __delete__) to allow
diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp
-index dc49b81..ca55d02 100644
+index 6242ddc..bcfa0c9 100644
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
-@@ -1580,18 +1580,17 @@ nsHttpChannel::HandleAsyncRedirectChannelToHttps()
+@@ -1584,18 +1584,17 @@ nsHttpChannel::HandleAsyncRedirectChannelToHttps()
return;
}
@@ -291,7 +291,7 @@ index dc49b81..ca55d02 100644
nsCOMPtr<nsIURI> upgradedURI;
rv = mURI->Clone(getter_AddRefs(upgradedURI));
-@@ -1613,6 +1612,36 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
+@@ -1617,6 +1616,36 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
else
upgradedURI->SetPort(oldPort);
@@ -328,7 +328,7 @@ index dc49b81..ca55d02 100644
nsCOMPtr<nsIIOService> ioService;
rv = gHttpHandler->GetIOService(getter_AddRefs(ioService));
NS_ENSURE_SUCCESS(rv, rv);
-@@ -1628,7 +1657,7 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
+@@ -1632,7 +1661,7 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
uint32_t flags = nsIChannelEventSink::REDIRECT_PERMANENT;
PushRedirectAsyncFunc(
@@ -337,7 +337,7 @@ index dc49b81..ca55d02 100644
rv = gHttpHandler->AsyncOnChannelRedirect(this, newChannel, flags);
if (NS_SUCCEEDED(rv))
-@@ -1636,15 +1665,19 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
+@@ -1640,15 +1669,19 @@ nsHttpChannel::AsyncRedirectChannelToHttps()
if (NS_FAILED(rv)) {
AutoRedirectVetoNotifier notifier(this);
@@ -359,7 +359,7 @@ index dc49b81..ca55d02 100644
{
AutoRedirectVetoNotifier notifier(this);
-@@ -4374,7 +4407,7 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context)
+@@ -4399,7 +4432,7 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context)
mAuthProvider->AddAuthorizationHeaders();
// notify "http-on-modify-request" observers
@@ -368,7 +368,7 @@ index dc49b81..ca55d02 100644
// Adjust mCaps according to our request headers:
// - If "Connection: close" is set as a request header, then do not bother
-@@ -4406,6 +4439,12 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context)
+@@ -4431,6 +4464,12 @@ nsHttpChannel::AsyncOpen(nsIStreamListener *listener, nsISupports *context)
if (mLoadGroup)
mLoadGroup->AddRequest(this, nullptr);
@@ -381,7 +381,7 @@ index dc49b81..ca55d02 100644
// Collect mAsyncOpenTime after we have called all obsrevers like
// "http-on-modify-request" and load group observers that may set
// mTimingEnabled flag.
-@@ -5536,7 +5575,7 @@ nsHttpChannel::DoAuthRetry(nsAHttpConnection *conn)
+@@ -5561,7 +5600,7 @@ nsHttpChannel::DoAuthRetry(nsAHttpConnection *conn)
AddCookiesToRequest();
// notify "http-on-modify-request" observers
@@ -391,7 +391,7 @@ index dc49b81..ca55d02 100644
mIsPending = true;
diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h
-index 5b4ddb9..1c0c6b7 100644
+index b1f0848..a05e70d 100644
--- a/netwerk/protocol/http/nsHttpChannel.h
+++ b/netwerk/protocol/http/nsHttpChannel.h
@@ -174,12 +174,14 @@ private:
diff --git a/src/current-patches/firefox/0026-Isolate-DOM-storage-to-first-party-URI.patch b/src/current-patches/firefox/0026-Isolate-DOM-storage-to-first-party-URI.patch
index f431693..c2edf99 100644
--- a/src/current-patches/firefox/0026-Isolate-DOM-storage-to-first-party-URI.patch
+++ b/src/current-patches/firefox/0026-Isolate-DOM-storage-to-first-party-URI.patch
@@ -1,7 +1,7 @@
-From 580d7d145ac93a42b6f0b1cfad8a1965a02c5050 Mon Sep 17 00:00:00 2001
+From 1c49a4f4a5312050b03ba8e9d37a073cca049278 Mon Sep 17 00:00:00 2001
From: Kathleen Brade <brade at pearlcrescent.com>
-Date: Tue, 15 Jan 2013 14:18:43 -0800
-Subject: [PATCH 26/26] Isolate DOM storage to first party URI
+Date: Thu, 28 Feb 2013 18:02:34 -0800
+Subject: [PATCH 26/27] Isolate DOM storage to first party URI
Also prevents DOM storage from writing to disk (hardcoded).
---
@@ -23,7 +23,7 @@ Also prevents DOM storage from writing to disk (hardcoded).
15 files changed, 255 insertions(+), 50 deletions(-)
diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp
-index 7a141d9..84a0043 100644
+index 0d56d9e..0726c07 100644
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -184,6 +184,7 @@
@@ -132,9 +132,9 @@ index 7a141d9..84a0043 100644
NS_IMETHODIMP
nsDocShell::CloneSessionStoragesTo(nsIDocShell* aDocShell)
{
-@@ -12389,3 +12421,39 @@ nsDocShell::GetAsyncPanZoomEnabled(bool* aOut)
- *aOut = false;
- return NS_OK;
+@@ -12411,3 +12443,39 @@ nsDocShell::HasUnloadedParent()
+ }
+ return false;
}
+
+nsresult
@@ -173,19 +173,19 @@ index 7a141d9..84a0043 100644
+}
+
diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h
-index 225a636..aeb00c9 100644
+index 427630a..4bcd341 100644
--- a/docshell/base/nsDocShell.h
+++ b/docshell/base/nsDocShell.h
-@@ -679,7 +679,7 @@ protected:
- FrameType GetInheritedFrameType();
- FrameType GetFrameType();
+@@ -681,7 +681,7 @@ protected:
+
+ bool HasUnloadedParent();
- // hash of session storages, keyed by domain
+ // hash of session storages, keyed by domain&firstPartyHost
nsInterfaceHashtable<nsCStringHashKey, nsIDOMStorage> mStorages;
// Dimensions of the docshell
-@@ -846,6 +846,10 @@ private:
+@@ -848,6 +848,10 @@ private:
static unsigned long gNumberOfDocShells;
#endif /* DEBUG */
@@ -255,7 +255,7 @@ index 986f4b4..4f26a04 100644
* Clones all session storage objects and attaches them to the given docshell.
* Useful when duplicating tabs and their states.
diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp
-index b480ee5..0cc147a 100644
+index 48bd71d..1e16c03 100644
--- a/dom/base/nsGlobalWindow.cpp
+++ b/dom/base/nsGlobalWindow.cpp
@@ -8385,7 +8385,18 @@ nsGlobalWindow::GetLocalStorage(nsIDOMStorage ** aLocalStorage)
diff --git a/src/current-patches/firefox/0027-Remove-link-to-plugin-manager-for-disabled-plugins.patch b/src/current-patches/firefox/0027-Remove-link-to-plugin-manager-for-disabled-plugins.patch
new file mode 100644
index 0000000..a9f97ea
--- /dev/null
+++ b/src/current-patches/firefox/0027-Remove-link-to-plugin-manager-for-disabled-plugins.patch
@@ -0,0 +1,26 @@
+From 3725f3f825af99091586aba65b3a14a412d460c5 Mon Sep 17 00:00:00 2001
+From: Mike Perry <mikeperry-git at torproject.org>
+Date: Thu, 28 Feb 2013 17:41:57 -0800
+Subject: [PATCH 27/27] Remove link to plugin manager for disabled plugins.
+
+We do not want to encourage our users to enable plugins at this point.
+---
+ toolkit/mozapps/plugins/content/pluginProblem.xml | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/toolkit/mozapps/plugins/content/pluginProblem.xml b/toolkit/mozapps/plugins/content/pluginProblem.xml
+index f61cb48..ed83569 100644
+--- a/toolkit/mozapps/plugins/content/pluginProblem.xml
++++ b/toolkit/mozapps/plugins/content/pluginProblem.xml
+@@ -38,7 +38,7 @@
+ <html:div class="installStatus">
+ <html:div class="msg msgInstallPlugin"><html:a class="installPluginLink" href="">&installPlugin;</html:a></html:div>
+ </html:div>
+- <html:div class="msg msgManagePlugins"><html:a class="managePluginsLink" href="">&managePlugins;</html:a></html:div>
++ <html:div class="msg msgManagePlugins"><html:a class="managePluginsLink" href=""></html:a></html:div>
+ <html:div class="submitStatus">
+ <!-- links set at runtime -->
+ <html:div class="msg msgPleaseSubmit"><html:a class="pleaseSubmitLink" href="">&report.please;</html:a></html:div>
+--
+1.7.5.4
+
More information about the tor-commits
mailing list