diff options
24 files changed, 0 insertions, 2710 deletions
diff --git a/www-client/torbrowser/ChangeLog b/www-client/torbrowser/ChangeLog deleted file mode 100644 index 205c49ee02f9..000000000000 --- a/www-client/torbrowser/ChangeLog +++ /dev/null @@ -1,145 +0,0 @@ -# ChangeLog for www-client/torbrowser -# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/torbrowser/ChangeLog,v 1.8 2012/08/28 23:49:56 hasufell Exp $ - - 28 Aug 2012; Julian Ospald <hasufell@gentoo.org> metadata.xml: - add mozilla herd - - 14 Jul 2012; Julian Ospald <hasufell@gentoo.org> torbrowser-13.0-r1.ebuild: - rename icon to avoid possible issues with mirrors - -*torbrowser-13.0-r1 (14 Jul 2012) - - 14 Jul 2012; Julian Ospald <hasufell@gentoo.org> -torbrowser-13.0.ebuild, - +torbrowser-13.0-r1.ebuild: - split profile stuff into www-misc/torbrowser-profile - -*torbrowser-13.0 (30 Jun 2012) - - 30 Jun 2012; Julian Ospald <hasufell@gentoo.org> - +files/torbrowser-patches/0007-Disable-SSL-Session-ID-tracking.patch, - +files/torbrowser-patches/0008-Provide-an-observer-event-to-close-persistent- - connec.patch, - +files/torbrowser-patches/0009-Limit-device-and-system-specific-CSS-Media-Que - ries.patch, - +files/torbrowser-patches/0010-Rebrand-Firefox-to-TorBrowser.patch, - +files/torbrowser-patches/0011-Make-Download-manager-memory-only.patch, - +files/torbrowser-patches/0012-Add-DDG-and-StartPage-to-Omnibox.patch, - +files/torbrowser-patches/0013-Make-nsICacheService.EvictEntries-synchronous. - patch, +files/torbrowser-patches/0014-Prevent-WebSocket-DNS-leak.patch, - +files/torbrowser-patches/0015-Make-Tor-Browser-exit-when-not-launched-from-V - idalia.patch, - +files/torbrowser-patches/0016-Limit-the-number-of-fonts-per-document.patch, - +files/torbrowser-patches/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patc - h, - +files/torbrowser-patches/0020-Fix-internal-compile-error-for-sub-ancient-GCC - s.patch, - -files/torbrowser-patches/0007-Make-Tor-Browser-exit-when-not-launched-from-V - idalia.patch, - -files/torbrowser-patches/0008-Disable-SSL-Session-ID-tracking.patch, - -files/torbrowser-patches/0009-Provide-an-observer-event-to-close-persistent- - connec.patch, - -files/torbrowser-patches/0010-Provide-client-values-only-to-CSS-Media-Querie - s.patch, - -files/torbrowser-patches/0011-Limit-the-number-of-fonts-per-document.patch, - -files/torbrowser-patches/0012-Rebrand-Firefox-to-TorBrowser.patch, - -files/torbrowser-patches/0013-Make-Download-manager-memory-only.patch, - -files/torbrowser-patches/0014-Add-DDG-and-StartPage-to-Omnibox.patch, - -files/torbrowser-patches/0015-Make-nsICacheService.EvictEntries-synchronous. - patch, -files/torbrowser-patches/0016-Prevent-WebSocket-DNS-leak.patch, - -files/torbrowser-patches/0018-Add-HTTP-auth-headers-before-the-modify-reques - t-obse.patch, - files/torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from-c - onten.patch, - files/torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch, - -torbrowser-10.0.5.ebuild, - files/torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch, - files/torbrowser-patches/0004-Add-a-string-based-cacheKey.patch, - files/torbrowser-patches/0005-Block-all-plugins-except-flash.patch, - files/torbrowser-patches/0006-Make-content-pref-service-memory-only-clearable - .patch, - files/torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-depth - .patch, +torbrowser-13.0.ebuild, - +files/torbrowser-patches/0019-Fix-Firefox-13-build-process.patch: - version bump, also fixes bug #423343 - -*torbrowser-10.0.5 (06 Jun 2012) - - 06 Jun 2012; Julian Ospald <hasufell@gentoo.org> - +files/torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from- - conten.patch, - +files/torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch, - +files/torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch - , +files/torbrowser-patches/0004-Add-a-string-based-cacheKey.patch, - +files/torbrowser-patches/0005-Block-all-plugins-except-flash.patch, - +files/torbrowser-patches/0006-Make-content-pref-service-memory-only-clearabl - e.patch, - +files/torbrowser-patches/0007-Make-Tor-Browser-exit-when-not-launched-from-V - idalia.patch, - +files/torbrowser-patches/0008-Disable-SSL-Session-ID-tracking.patch, - +files/torbrowser-patches/0009-Provide-an-observer-event-to-close-persistent- - connec.patch, - +files/torbrowser-patches/0010-Provide-client-values-only-to-CSS-Media-Querie - s.patch, - +files/torbrowser-patches/0011-Limit-the-number-of-fonts-per-document.patch, - +files/torbrowser-patches/0012-Rebrand-Firefox-to-TorBrowser.patch, - +files/torbrowser-patches/0013-Make-Download-manager-memory-only.patch, - +files/torbrowser-patches/0014-Add-DDG-and-StartPage-to-Omnibox.patch, - +files/torbrowser-patches/0015-Make-nsICacheService.EvictEntries-synchronous. - patch, +files/torbrowser-patches/0016-Prevent-WebSocket-DNS-leak.patch, - +files/torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-dept - h.patch, - +files/torbrowser-patches/0018-Add-HTTP-auth-headers-before-the-modify-reques - t-obse.patch, - -files/12.0/0001-Block-Components.interfaces-lookupMethod-from-conten.patch, - -files/12.0/0002-Make-Permissions-Manager-memory-only.patch, - -files/12.0/0003-Make-Intermediate-Cert-Store-memory-only.patch, - -files/12.0/0004-Add-a-string-based-cacheKey.patch, - -files/12.0/0005-Block-all-plugins-except-flash.patch, - -files/12.0/0006-Make-content-pref-service-memory-only-clearable.patch, - -files/12.0/0008-Disable-SSL-Session-ID-tracking.patch, - -files/12.0/0009-Provide-an-observer-event-to-close-persistent-connec.patch, - -files/12.0/0010-Provide-client-values-only-to-CSS-Media-Queries.patch, - -files/12.0/0011-Limit-the-number-of-fonts-per-document.patch, - -files/12.0/0012-Randomize-HTTP-request-order-and-pipeline-depth.patch, - -files/12.0/0013-Rebrand-Firefox-to-TorBrowser.patch, - -files/12.0/0014-Make-Download-manager-memory-only.patch, - -files/12.0/0015-Add-DDG-and-StartPage-to-Omnibox.patch, - -files/12.0/0016-Adapt-Steven-Michaud-s-Mac-crashfix-patch-for-FF12.patch, - -files/12.0/0017-Make-nsICacheService.EvictEntries-synchronous.patch, - -files/12.0/0018-Prevent-WebSocket-DNS-leak.patch, +torbrowser-10.0.5.ebuild, - -torbrowser-12.0-r2.ebuild: - version bump/dump... tor upstream switched to ESR - - 01 Jun 2012; Julian Ospald <hasufell@gentoo.org> torbrowser-12.0-r2.ebuild: - bump profile-folder version - -*torbrowser-12.0-r2 (01 Jun 2012) - - 01 Jun 2012; Julian Ospald <hasufell@gentoo.org> -torbrowser-12.0.ebuild, - +torbrowser-12.0-r2.ebuild: - sync with firefox ebuild - -*torbrowser-12.0 (12 May 2012) - - 12 May 2012; Julian Ospald <hasufell@gentoo.org> - +files/12.0/0001-Block-Components.interfaces-lookupMethod-from-conten.patch, - +files/12.0/0002-Make-Permissions-Manager-memory-only.patch, - +files/12.0/0003-Make-Intermediate-Cert-Store-memory-only.patch, - +files/12.0/0004-Add-a-string-based-cacheKey.patch, - +files/12.0/0005-Block-all-plugins-except-flash.patch, - +files/12.0/0006-Make-content-pref-service-memory-only-clearable.patch, - +files/12.0/0008-Disable-SSL-Session-ID-tracking.patch, - +files/12.0/0009-Provide-an-observer-event-to-close-persistent-connec.patch, - +files/12.0/0010-Provide-client-values-only-to-CSS-Media-Queries.patch, - +files/12.0/0011-Limit-the-number-of-fonts-per-document.patch, - +files/12.0/0012-Randomize-HTTP-request-order-and-pipeline-depth.patch, - +files/12.0/0013-Rebrand-Firefox-to-TorBrowser.patch, - +files/12.0/0014-Make-Download-manager-memory-only.patch, - +files/12.0/0015-Add-DDG-and-StartPage-to-Omnibox.patch, - +files/12.0/0016-Adapt-Steven-Michaud-s-Mac-crashfix-patch-for-FF12.patch, - +files/12.0/0017-Make-nsICacheService.EvictEntries-synchronous.patch, - +torbrowser-12.0.ebuild, +files/12.0/0018-Prevent-WebSocket-DNS-leak.patch, - +metadata.xml: - initial import with help from Poncho wrt #406361 - diff --git a/www-client/torbrowser/Manifest b/www-client/torbrowser/Manifest deleted file mode 100644 index 06878aec06aa..000000000000 --- a/www-client/torbrowser/Manifest +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - -AUX torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from-conten.patch 2341 SHA256 e5d04716849564b89bc44c812140234b2399e6bdedcaf709dfe84b69ded8a539 SHA512 dbfc3b65169d4ded3a317bb3e8feba5bdc29a85a8c4ad2c19896e49ac562adf6afb5557614fc1b2c829840dca44e709967bc58968010f57526fe04a61db64999 WHIRLPOOL c80fb6d6ef49fdea0e62c0e3937b46cac2602a8ed247247040861c1ecd2c52bbd051a7efa8dcd9a9a0cee06f950ab689db69921e034c9d2060c7f1ab33a2b595 -AUX torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch 3527 SHA256 cec0b082c95379082eda464f0edfd92629a9f9f72a56d5634db79499c3a1e56c SHA512 1e93504b0fac22d1da86b79f15e44c3e20ff3cf56c7563e7cb7abe4378ac00ead87baf64052cb553dc4e76697c50421ced405fdbba64eb6529a12976ee8c463f WHIRLPOOL 35431fbb72aa54995930482df76b409227d6dfc285abf4cbf41508d596fe6b955792657c94e912d9d8a6451c5599fc0a97753218c805b625062d4c4d1aa8a5c7 -AUX torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch 1759 SHA256 da173b530f68900912839bf12f94013e8da64e1d23e695ea3793a4500d8cc72f SHA512 89295ff957bda3dad889d524e36a0e203b35485bcd228d1ee8ce8299f0ecedda1d7faa4c860138b4525d43dd430770e6cf4e4f6bebf1d091daaa870acfbbb5d7 WHIRLPOOL 444222224b281c4ba80ebade878d64d9adf478742d847d7ed2c4a1d1c3ab87cc8ba2a30782df2f92fdd1c1cf056bc6e5e59ac4c329a5e532b029e4b8ed708d2a -AUX torbrowser-patches/0004-Add-a-string-based-cacheKey.patch 2944 SHA256 69b895018ca09981506ac83d8e149aa2af79b12d27457fc062eb3a7c10d6820e SHA512 71175e217638aae7a6eb26d5967ba7a140db64ccbb39df196634e1f10a61c14d9aa562e2d1111c5b5e4dce40fc347be190ebb32be2e30f96fe63d41d9f2774b3 WHIRLPOOL 13f8c0cdf28a2a1a656c5a7bfc8fa85f69c97262d0efcb9eaeddb821164301c14b88e5060942425eadd76d4966896a820dfa62cd65cf40b33b2b946b81c99939 -AUX torbrowser-patches/0005-Block-all-plugins-except-flash.patch 2976 SHA256 0ea31dcdb2374835dc1ae263e08e3bf690a937e27e3c550809d2e4bac07c9ca3 SHA512 c06e28e3b052690a300bf7445735625cf285b3f7b0387b84a283611418eb343dc0397fde60ba9d872d1021dd4cda3e45998857585edbc3f0e8a574e855b47cde WHIRLPOOL bde9b3b9021ad2a09a708d852830e5d7afdeebb0bf15c63a9a696cdb5b7417c30e38152c3e66838efbe7ab0a7eb494154e6283db7f0a2edae3fa0b1473a7ebd3 -AUX torbrowser-patches/0006-Make-content-pref-service-memory-only-clearable.patch 1357 SHA256 8058cfecc5fcf5ad65c614622856ef1f35ed06dca231bac141b3c8ac3501ee5f SHA512 3893146f4333c809f286dd67b2cb02044dfb62f87ecdc9eaad41bae45533b2c3c586aa41697c667513d49ae00fcc9e1a898bc255614ba70baa6e3a685c7a6cd9 WHIRLPOOL 98abd784bde74be75bc484769b252d22aa41cb93e8efc8f8139e07d332ce49730c8e509f88cd2aae09b33874a3fe92848f6d3f48264dea9741073771d688b5c7 -AUX torbrowser-patches/0007-Disable-SSL-Session-ID-tracking.patch 1165 SHA256 a93eb05fd553ce543647c804f0a370d2732fed7e91b3718007c3c31d69182b24 SHA512 09bd5741f34147761605a200737d9cda96aa50184a6d0e557de97b57d1beaf8af4f6420ba3cec2765eb6846a2a543052bf7b13527ab44b895116e87447005644 WHIRLPOOL 6361a5597f4317c121b62430a8ca38425afd18520a22477ea5f92531f3db11dd48515817d1020b82bc74da13380e52b48b6c4d7334a4c4a4e75984ff78281b1b -AUX torbrowser-patches/0008-Provide-an-observer-event-to-close-persistent-connec.patch 1448 SHA256 ac3a8c3fc29e26fcd94cb39efe580abc414c42fe71221c35ae908d81db0258d7 SHA512 9c2c338d7e758fe483e3d3aeeb4a8ed4d9f153344a733f579142db373545d33cc5585e67b8b49f3af4563bfbffd38453e06cf7fa8e16efea880eb704707f5139 WHIRLPOOL a8f4efc28df77d60648fd42a04ae560ed607198b142b59c4de828395e914f2a9767d5ff7005df8609349e204061b69008ef8a63b79c287baa58038953d0fc1b4 -AUX torbrowser-patches/0009-Limit-device-and-system-specific-CSS-Media-Queries.patch 3794 SHA256 b43a4e6bf6bbac6dbf0c2815263d3a9c1f40c1b1426cfe601df5035cc37fe4a1 SHA512 50a80a0b21bd9e43dcad1ae0e1b5e7ef4e6d62a712073ba729b6f30e1a6721deab5b2ae0492a6bf4ca45baf5f0104065751ed9864997386430dca071c043fe6c WHIRLPOOL 585a4f6476a16b68732e3fbdc0a29eb02fb21e6e1b8ea075cc01369865727c1965ef3924209d79a44abab06ba6b20b81a1406ad8876869d22fbac55e54b67e8c -AUX torbrowser-patches/0010-Rebrand-Firefox-to-TorBrowser.patch 2151 SHA256 c4934d474c93ba82a1e847c114205f07fc36b25d784615d5052b72103cc7b290 SHA512 1f7b96f4e2c66d9daa6e1b3ea84bd7d1d14b022e208c9c678368eb25cacea2cf7dbcc3a1911dca850d0a38725d8c8ac7e6e3e0b497a19e3a1e5e82a0deb698bc WHIRLPOOL 54c1eab552479b35e9606e5e099b9bd1eedc3c4e14e31e12cfc8b94b23e8a6ceebde82a08a58ccca1f3d0217288bee264198ee00822ca8ab7023e40840ea8e1e -AUX torbrowser-patches/0011-Make-Download-manager-memory-only.patch 2296 SHA256 3eda498afecb8073539714f2f13be4a1230a31d49ee7304dbc363e682347199d SHA512 9289e9dff2d90f78f3c07f8fcbd0f1dacdc7feed16ed234ef07b5525e5cb1b5ce86cac142b431364d89ab8037d1869c7f139de69dce69f78b6b17dd25211838b WHIRLPOOL 04a4e51c512ef399f36b1ef93dcfffe3c564761c203138041690b34550114473893d8b84d1638071390a09b9d20bc32cd9e8a27600d475ce7b685dd58cb15d8b -AUX torbrowser-patches/0012-Add-DDG-and-StartPage-to-Omnibox.patch 5597 SHA256 c8e240438efa09d750c7d64a5208c69f3919c79a6dd12848b10dd96d531dbf47 SHA512 0fe62b8f529d12d06e3f015e2ece756bfdd67c55af9fffc322ff1dc627e35e669d43c5dc9db2ec967b11fc88169f6366d7e077ff33b8b11814365eefa301aa5c WHIRLPOOL d5e54f44c8688d185c0970004b51e1f6349e5d4778f96fdfdf3fc7475ed1315a1d0da67021773f9faf408ec76a7ea54d0befd56e83cb6a2d5dab6454620743fe -AUX torbrowser-patches/0013-Make-nsICacheService.EvictEntries-synchronous.patch 1654 SHA256 42f16b0eccd742f04d49dd682c441cabe609e1cb3ed4dc73121b36fa01c3e546 SHA512 e3cb65e377734809170be4d9ddbc0ca085301970af22fe1e464699ee01331e7c3fbe36aa8f36646d99cfd741d693ca5d4b9395041fd9cbe18e670cabdd433cd5 WHIRLPOOL f33961e814eca514c2faf99a549a7fdfbc6672979dfe92a841c08af8deeef199a0db00ca256913dd798de3d1f900969dd0c91dcb9a45f2a10e0309380afc00cd -AUX torbrowser-patches/0014-Prevent-WebSocket-DNS-leak.patch 5425 SHA256 95b88d6f7e6274fd11cd4fde9afd0815e49bd0b4e08536f17e52258fafefae53 SHA512 bc23a7f4cb8866e648edc65c042897bed7348307a8e1984103a0e3855fd1ad965a8bb71fbe94b36c3c6c9edeabd367f126006d4a8f6db4cc402a879ad13f1867 WHIRLPOOL 6c9781d99caac8b401880fa6fcd08893d59222fd22807795bb8fd1131e8f73aa5e0bd4458b53a39fb5eb05725c3cd7072145383b339493d3e572921315680952 -AUX torbrowser-patches/0015-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch 1700 SHA256 8b15b12a8e0684d032f72d39eb039d9f84e7acdc0794dc2ebd041ea069b993bd SHA512 19accb709707f6b0395fc163a95c648f1cdbfd3d4a9c06b7bf039120280a9ca369779a7164842c2b8d25bf1073327a95eb67de86366b268780c10f3eda5b6b70 WHIRLPOOL 6933d121be769ca4bbc7f7a777df4d1af31bf6239554f28dcff412c851b2c9beaaae0c31eee5afcdee8354752da70ee81d429689026315e4fb79762e2c97205c -AUX torbrowser-patches/0016-Limit-the-number-of-fonts-per-document.patch 7155 SHA256 ffb8dbda58a0926dec89ff32dab994da489a2c3732938b29fe927322de9d789b SHA512 873d70628d5408e838e0031f5bc8fb752ecc22756a123f7b76271810d00fc20507bc4aaf8293e86c205792521080b2469d3a104ff2e9e824725e96031732912c WHIRLPOOL f4f4f28e7911270118fdc20bf209b00c645668f408cb938e97097252bd5c0ea19ac719708e90634ac5b24e1f3ea0bb0e0c12f100c59e8b873d9227b7359d2a9d -AUX torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch 8866 SHA256 058c644d8dfb07c30196ca49ec968119fdfe34455e496188b92ac9996694702c SHA512 1c65bd4fabef338d3db6796bfdf2df3ba06fd17335ffa4f4b13cd655ac152447de8cb14f4f0e3137c2678c6056375289aeeff63b85d7e32e6c26e116b9e4107d WHIRLPOOL 379d8bc87c35bb0e68065f9ad63fb4bfc2f737f994c27380530a4d4d4a99cc471a795f090db035d9e44abd8a153e284d78f4fdc1a7a767ce70a464bda504ee2a -AUX torbrowser-patches/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch 19993 SHA256 c1b6b1e07e77197fcb6fcf897adbb698071ada7a4b62b9b3c3a47046fc80fccc SHA512 a89d00355742c61b0fd9ef99c12d79c1fcfd367bbee8f67c9ce1f7ecb755b7d76e190f819797c532596ea8976fdc435261619b463e899dba6558008182a40445 WHIRLPOOL f0996dd9c6932c49c9cd6b66fc03281fdaee1d37aecdeba9c595f8beb73c090eb71213b073ec6cb8a3c7f6ea7e625de58f79714a45ef4a75397fcabfe6bf8444 -AUX torbrowser-patches/0019-Fix-Firefox-13-build-process.patch 6521 SHA256 97c50d149cfd733565ebe5c221ef1933586172dd6736d7458dd6d792f75455f7 SHA512 615fa1070b38dc5eb773ca4e519289dbb97220a40af3b39443be7e6eea8ed5c1895b53f192a0ef08d262c1c8aecb467f3f21d27ca429c60ed51bc6fb8b6c58ca WHIRLPOOL a1ec542bff564712dae63522177fecdfffeab2c9563e2e0aabe3040021d5ed13c1a838e5a785bc1275af5ef657aa06872259a8d6edc37f72ad712ffc0afc2f91 -AUX torbrowser-patches/0020-Fix-internal-compile-error-for-sub-ancient-GCCs.patch 1561 SHA256 e3831cbd4c93c3062078f672285fdc819bb1df7e686d6b675005b500ae4d958c SHA512 0823fc261fbe0781c9f573631b17dc7c0978c384638010a6c31dc5108a7f86961560b1c5abf8ad713f4d3237fa842e13413ad51d6a5c0976e9de9ab6404dd913 WHIRLPOOL 445a0d9b6eea9b9e17e0ac70af97b73c84624fb02d819097939a5e6caf43e6e188f2f2796d10fbd4b955b6acc4f06df0b2f47da8dc242a1ed6717d21a5549645 -DIST firefox-13.0-patches-0.2.tar.xz 10656 SHA256 afe8de25a651a624550bfe26ecc3fae23a35063a8e6e2d93bf904171f7ef82f9 SHA512 38a9b2d19200636b840c8ba64a38954b87c1529fb333c8575669ed8fb4f1cd694a8729b154122fdc3402bdddab217ef6d2b0d82fb536a085a6f26bf15c33c5f9 WHIRLPOOL 02d6276c805848522a4cd97d481cbf321ad82ce7aa09c9a331fc7e31e00a1f8780c51c475c7c683d0a6a2d18917e605aabb2d5667310a3835e52b6579d76613d -DIST firefox-13.0.source.tar.bz2 79605635 SHA256 dc801286e752ba3c2006caa0728024cb5b92460d9a3a1636c111c1f4f4f50b55 SHA512 aa26b165e41b22d7515c2f85f276ded5374c417cedfdbfca0ac9a1576d92d104111e5fdcb5b1faed27ef9d41ee9221948961bc2009c55cc23a7f90fab952cb6e WHIRLPOOL ddc1a1a32541e3f8fd802235e6583eadc070985306a51f4da6e6a3ab68fed7189ddd01ecafcc2baae51567bf08bffe4f8c486ec0503dca31c2de82112f122c4e -DIST torbrowser256.png 48898 SHA256 0d562acc255c8c068828d1282905f1b4e8a5ffc8f4411f60539f05bc7ed14382 SHA512 de31cc341cacc4fd3ea1648ff37b25e772dd2598aa71a5c4cfd038b174cedddc8e79fc8d9dd91de8d16fca00c86f4e76e87096f9402790a04f4db1a37e17f979 WHIRLPOOL 776b17f634a8b5d8a420b6ae06385d213c9a4e38da09c32fceee8cf606b132dfc58177b1186df84fffd7e2803d09dc2a1a95792d6e597b5a323dd895fc63fc44 -EBUILD torbrowser-13.0-r1.ebuild 9883 SHA256 383a0c703bcd68da3d7defddaae61b7a24db09f03d4c6c8abc0aeabf8d8afe18 SHA512 03b3203bb2ad2ffe0de71d9ef37295d3679e3ba7337f9de5d318fbc3ae9396c2c2a05f7617c7b106d95a6fa2d7ad3a39f026813e1c2755339bd33102362ec471 WHIRLPOOL d0be806902b4eda773811fbbbb3e0f3aff4a094cccf2438d8f7ca1b5bc1dfbd5b0ccf946e25c7555c49ac7ad0b5b4180ae2b74508d02a89b0f4f5efe196a6e82 -MISC ChangeLog 7698 SHA256 d133ec661d63ab688be8a255b23cb528fdcabe6cdb8674f2ac1d711ec5ade550 SHA512 c632cd4f5e282b517bd15c0a085986f03027002a6a9bb4be78cb5a46d3310a65b32f606fc343f82eb747880b8e0072b837aedbbfa64eff9392df26b3195d96dd WHIRLPOOL 54161bf64d8297a50d5b78d0c6f2e4ca5c587bc3a4401c6a1ffa5170f5e1c5e3ff2a1b22302ec8898724357e0b7ddbddb960e5ed0f7205d8c1fa462ad4a308b2 -MISC metadata.xml 1589 SHA256 598835d01d903398d22834532bb8aad00abdf0ac0bb7f7b6cab1505707e110b1 SHA512 d54f6658e8e09b4420ab5ce97696dc7a6e81782b74676fc919bde188f1060bca754eb601a52c8e34449f1fec34d4be6ffe85bbf68fce1e692c547a3a430d8005 WHIRLPOOL a7766ed1c5661f0b72b843fe09c6f029e806003ca46c2398713dafcdac2ef20d9693f94d86ffee44864132cc5259dcdb2d79b27de503ca23ae25adf31a42780e ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.19 (GNU/Linux) - -iQEcBAEBCAAGBQJQPVkwAAoJEFpvPKfnPDWz50IH/0Ohsj08qaWiPilK7d2uTHyl -kADAaHrYtuuCljFhmR6eBNuxzLilgWLsKPyS0Iiqu8G7Te9PFjjcIznFcmtGZTqe -IOW7kKt+v+DVZBsfA5MBf42VtkBh4uCCeXd/NYc3YLQdNwwFKqlpqUo+XL8bd1Ez -uF7feBD55qQaz9BYjKjd2KgVuK3RE3vKl5BI1WZDzMp2d7sMRSuJXV9VtIW0e2l/ -TMTy8hXjn6ZggW5V8Lu2X9yxg6xaV1OkO0LlnsrVvzbZf4hAQz3ijsktpi8wCLVE -PbtT/Pk316T7Nb04zUvJOFCxyth6mJtj0qjbkfce45qIiCapwJCbsz+U7htJ7gQ= -=vjCD ------END PGP SIGNATURE----- diff --git a/www-client/torbrowser/files/torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from-conten.patch b/www-client/torbrowser/files/torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from-conten.patch deleted file mode 100644 index fe7ff85019d8..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0001-Block-Components.interfaces-lookupMethod-from-conten.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 801d2dcc512ca5e64b72d56faaab7d8ef0fadf39 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/20] 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. - -These two interfaces seem to be exposed to content script only to make our -lives difficult. Components.lookupMethod can undo our JS hooks, and -Components.interfaces is useful for fingerprinting the platform, OS, and -Firebox version. - -They appear to have no other legitimate use. See also: -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/xpconnect/src/XPCComponents.cpp | 8 ++++++-- - 1 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/js/xpconnect/src/XPCComponents.cpp b/js/xpconnect/src/XPCComponents.cpp -index a2a1102..49e4c7e 100644 ---- a/js/xpconnect/src/XPCComponents.cpp -+++ b/js/xpconnect/src/XPCComponents.cpp -@@ -4287,7 +4287,9 @@ nsXPCComponents::CanCreateWrapper(const nsIID * iid, char **_retval) - NS_IMETHODIMP - nsXPCComponents::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, char **_retval) - { -- static const char* allowed[] = { "isSuccessCode", "lookupMethod", nsnull }; -+ // XXX: Pref observer? Also, is this what we want? Seems like a plan -+ //static const char* allowed[] = { "isSuccessCode", "lookupMethod", nsnull }; -+ static const char* allowed[] = { "isSuccessCode", nsnull }; - *_retval = xpc_CheckAccessList(methodName, allowed); - return NS_OK; - } -@@ -4296,7 +4298,9 @@ nsXPCComponents::CanCallMethod(const nsIID * iid, const PRUnichar *methodName, c - NS_IMETHODIMP - nsXPCComponents::CanGetProperty(const nsIID * iid, const PRUnichar *propertyName, char **_retval) - { -- static const char* allowed[] = { "interfaces", "interfacesByID", "results", nsnull}; -+ // XXX: Pref observer? Also, is this what we want? Seems like a plan -+ // static const char* allowed[] = { "interfaces", "interfacesByID", "results", nsnull}; -+ static const char* allowed[] = { "results", nsnull}; - *_retval = xpc_CheckAccessList(propertyName, allowed); - return NS_OK; - } --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch b/www-client/torbrowser/files/torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch deleted file mode 100644 index 524ca62b19a2..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0002-Make-Permissions-Manager-memory-only.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 4c65de64fc28ca767009a0d0acfcefd8f2a73ad8 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/20] 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 -site permissions, as well as stored STS policy. - -The pref does successfully clear the permissions manager memory if toggled. It -does not need to be set in prefs.js, and can be handled by Torbutton. - -https://trac.torproject.org/projects/tor/ticket/2950 ---- - extensions/cookie/nsPermissionManager.cpp | 34 ++++++++++++++++++++++++++-- - 1 files changed, 31 insertions(+), 3 deletions(-) - -diff --git a/extensions/cookie/nsPermissionManager.cpp b/extensions/cookie/nsPermissionManager.cpp -index cdfe21b..a7a0efb 100644 ---- a/extensions/cookie/nsPermissionManager.cpp -+++ b/extensions/cookie/nsPermissionManager.cpp -@@ -58,6 +58,10 @@ - #include "mozStorageHelper.h" - #include "mozStorageCID.h" - #include "nsXULAppAPI.h" -+#include "nsCOMPtr.h" -+#include "nsIPrefService.h" -+#include "nsIPrefBranch.h" -+#include "nsIPrefBranch2.h" - - static nsPermissionManager *gPermissionManager = nsnull; - -@@ -203,6 +207,11 @@ nsPermissionManager::Init() - mObserverService->AddObserver(this, "profile-do-change", true); - } - -+ nsCOMPtr<nsIPrefBranch2> pbi = do_GetService(NS_PREFSERVICE_CONTRACTID); -+ if (pbi) { -+ pbi->AddObserver("permissions.", this, PR_FALSE); -+ } -+ - if (IsChildProcess()) { - // Get the permissions from the parent process - InfallibleTArray<IPC::Permission> perms; -@@ -251,8 +260,18 @@ nsPermissionManager::InitDB(bool aRemoveFile) - if (!storage) - return NS_ERROR_UNEXPECTED; - -+ bool memory_db = false; -+ nsCOMPtr<nsIPrefBranch> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID); -+ if (prefs) { -+ prefs->GetBoolPref("permissions.memory_only", &memory_db); -+ } -+ - // cache a connection to the hosts database -- rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); -+ if (memory_db) { -+ rv = storage->OpenSpecialDatabase("memory", getter_AddRefs(mDBConn)); -+ } else { -+ rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); -+ } - NS_ENSURE_SUCCESS(rv, rv); - - 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)); -+ if (memory_db) { -+ rv = storage->OpenSpecialDatabase("memory", getter_AddRefs(mDBConn)); -+ } else { -+ rv = storage->OpenDatabase(permissionsFile, getter_AddRefs(mDBConn)); -+ } - NS_ENSURE_SUCCESS(rv, rv); - - mDBConn->GetConnectionReady(&ready); -@@ -794,7 +817,12 @@ NS_IMETHODIMP nsPermissionManager::Observe(nsISupports *aSubject, const char *aT - { - ENSURE_NOT_CHILD_PROCESS; - -- if (!nsCRT::strcmp(aTopic, "profile-before-change")) { -+ if (nsCRT::strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) { -+ if (!nsCRT::strcmp(someData, NS_LITERAL_STRING("permissions.memory_only").get())) { -+ // XXX: Should we remove the file? Probably not.. -+ InitDB(PR_FALSE); -+ } -+ } else if (!nsCRT::strcmp(aTopic, "profile-before-change")) { - // The profile is about to change, - // or is going away because the application is shutting down. - if (!nsCRT::strcmp(someData, NS_LITERAL_STRING("shutdown-cleanse").get())) { --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch b/www-client/torbrowser/files/torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch deleted file mode 100644 index bb97b2d580f1..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0003-Make-Intermediate-Cert-Store-memory-only.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 6b5b4816ffff9875f8fd3364841fde872a2af7a4 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/20] Make Intermediate Cert Store memory-only. - -This patch makes the intermediate SSL cert store exist in memory only. - -The pref must be set before startup in prefs.js. -https://trac.torproject.org/projects/tor/ticket/2949 ---- - security/manager/ssl/src/nsNSSComponent.cpp | 15 ++++++++++++++- - 1 files changed, 14 insertions(+), 1 deletions(-) - -diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/src/nsNSSComponent.cpp -index 89ad70e..783d0d2 100644 ---- a/security/manager/ssl/src/nsNSSComponent.cpp -+++ b/security/manager/ssl/src/nsNSSComponent.cpp -@@ -1755,8 +1755,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(), "", "", -+ bool nocertdb = false; -+ mPrefBranch->GetBoolPref("security.nocertdb", &nocertdb); -+ -+ // XXX: We can also do the the following to only disable the certdb. -+ // Leaving this codepath in as a fallback in case InitNODB fails -+ if (nocertdb) -+ init_flags |= NSS_INIT_NOCERTDB; -+ -+ SECStatus init_rv; -+ if (nocertdb) { -+ init_rv = ::NSS_NoDB_Init(NULL); -+ } else { -+ init_rv = ::NSS_Initialize(profileStr.get(), "", "", - SECMOD_DB, init_flags); -+ } - - if (init_rv != SECSuccess) { - PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", profileStr.get())); --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0004-Add-a-string-based-cacheKey.patch b/www-client/torbrowser/files/torbrowser-patches/0004-Add-a-string-based-cacheKey.patch deleted file mode 100644 index b33a62866a40..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0004-Add-a-string-based-cacheKey.patch +++ /dev/null @@ -1,85 +0,0 @@ -From b2dfbf250bc83592e73abf932c5301f1688a277b 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 04/20] Add a string-based cacheKey. - -Used for isolating cache according to same-origin policy. ---- - netwerk/base/public/nsICachingChannel.idl | 7 +++++++ - netwerk/protocol/http/nsHttpChannel.cpp | 22 ++++++++++++++++++++++ - netwerk/protocol/http/nsHttpChannel.h | 1 + - 3 files changed, 30 insertions(+), 0 deletions(-) - -diff --git a/netwerk/base/public/nsICachingChannel.idl b/netwerk/base/public/nsICachingChannel.idl -index 2da46d6..4ee5774 100644 ---- a/netwerk/base/public/nsICachingChannel.idl -+++ b/netwerk/base/public/nsICachingChannel.idl -@@ -98,6 +98,13 @@ interface nsICachingChannel : nsICacheInfoChannel - attribute nsISupports cacheKey; - - /** -+ * Set/get the cache domain... uniquely identifies the data in the cache -+ * for this channel. Holding a reference to this key does NOT prevent -+ * the cached data from being removed. -+ */ -+ attribute AUTF8String cacheDomain; -+ -+ /** - * Specifies whether or not the data should be cached to a file. This - * 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 34291f4..92f2d7d 100644 ---- a/netwerk/protocol/http/nsHttpChannel.cpp -+++ b/netwerk/protocol/http/nsHttpChannel.cpp -@@ -2415,6 +2415,12 @@ nsHttpChannel::AssembleCacheKey(const char *spec, PRUint32 postID, - cacheKey.Append(buf); - } - -+ if (strlen(mCacheDomain.get()) > 0) { -+ cacheKey.AppendLiteral("domain="); -+ cacheKey.Append(mCacheDomain.get()); -+ cacheKey.AppendLiteral("&"); -+ } -+ - if (!cacheKey.IsEmpty()) { - cacheKey.AppendLiteral("uri="); - } -@@ -4784,6 +4790,22 @@ nsHttpChannel::SetCacheForOfflineUse(bool value) - } - - NS_IMETHODIMP -+nsHttpChannel::GetCacheDomain(nsACString &value) -+{ -+ value = mCacheDomain; -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsHttpChannel::SetCacheDomain(const nsACString &value) -+{ -+ mCacheDomain = value; -+ -+ return NS_OK; -+} -+ -+NS_IMETHODIMP - nsHttpChannel::GetOfflineCacheClientID(nsACString &value) - { - value = mOfflineCacheClientID; -diff --git a/netwerk/protocol/http/nsHttpChannel.h b/netwerk/protocol/http/nsHttpChannel.h -index f8e59fe..a5b7d1e 100644 ---- a/netwerk/protocol/http/nsHttpChannel.h -+++ b/netwerk/protocol/http/nsHttpChannel.h -@@ -306,6 +306,7 @@ private: - nsCOMPtr<nsICacheEntryDescriptor> mOfflineCacheEntry; - nsCacheAccessMode mOfflineCacheAccess; - nsCString mOfflineCacheClientID; -+ nsCString mCacheDomain; - - // auth specific data - nsCOMPtr<nsIHttpChannelAuthProvider> mAuthProvider; --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0005-Block-all-plugins-except-flash.patch b/www-client/torbrowser/files/torbrowser-patches/0005-Block-all-plugins-except-flash.patch deleted file mode 100644 index 2cfa7ba2bb04..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0005-Block-all-plugins-except-flash.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 47235106c9e1257c66bab774aab330be4dabcfb0 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 05/20] 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 -and/or executing code (for example, AV plugins that collect statistics/analyse -urls, magical toolbars that phone home or "help" the user, skype buttons that -ruin our day, and censorship filters). Hence we rolled our own. - -See https://trac.torproject.org/projects/tor/ticket/3547#comment:6 for musings -on a better way. Until then, it is delta-darwinism for us. ---- - dom/plugins/base/nsPluginHost.cpp | 33 +++++++++++++++++++++++++++++++++ - dom/plugins/base/nsPluginHost.h | 2 ++ - 2 files changed, 35 insertions(+), 0 deletions(-) - -diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp -index 0c3efa0..e607e68 100644 ---- a/dom/plugins/base/nsPluginHost.cpp -+++ b/dom/plugins/base/nsPluginHost.cpp -@@ -2002,6 +2002,35 @@ bool nsPluginHost::IsDuplicatePlugin(nsPluginTag * aPluginTag) - return false; - } - -+PRBool nsPluginHost::GhettoBlacklist(nsIFile *pluginFile) -+{ -+ nsCString leaf; -+ const char *leafStr; -+ nsresult rv; -+ -+ rv = pluginFile->GetNativeLeafName(leaf); -+ if (NS_FAILED(rv)) { -+ return PR_TRUE; // fuck 'em. blacklist. -+ } -+ -+ leafStr = leaf.get(); -+ -+ if (!leafStr) { -+ return PR_TRUE; // fuck 'em. blacklist. -+ } -+ -+ // libgnashplugin.so, libflashplayer.so, Flash Player-10.4-10.5.plugin, -+ // NPSWF32.dll, NPSWF64.dll -+ if (strstr(leafStr, "libgnashplugin") == leafStr || -+ strstr(leafStr, "libflashplayer") == leafStr || -+ strstr(leafStr, "Flash Player") == leafStr || -+ strstr(leafStr, "NPSWF") == leafStr) { -+ return PR_FALSE; -+ } -+ -+ return PR_TRUE; // fuck 'em. blacklist. -+} -+ - typedef NS_NPAPIPLUGIN_CALLBACK(char *, NP_GETMIMEDESCRIPTION)(void); - - nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir, -@@ -2135,6 +2164,10 @@ nsresult nsPluginHost::ScanPluginsDirectory(nsIFile *pluginsDir, - continue; - } - -+ if (GhettoBlacklist(localfile)) { -+ continue; -+ } -+ - // if it is not found in cache info list or has been changed, create a new one - if (!pluginTag) { - nsPluginFile pluginFile(localfile); -diff --git a/dom/plugins/base/nsPluginHost.h b/dom/plugins/base/nsPluginHost.h -index 1b46957..4f1e890 100644 ---- a/dom/plugins/base/nsPluginHost.h -+++ b/dom/plugins/base/nsPluginHost.h -@@ -285,6 +285,8 @@ private: - // Loads all cached plugins info into mCachedPlugins - nsresult ReadPluginInfo(); - -+ PRBool GhettoBlacklist(nsIFile *pluginFile); -+ - // Given a file path, returns the plugins info from our cache - // and removes it from the cache. - void RemoveCachedPluginsInfo(const char *filePath, --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0006-Make-content-pref-service-memory-only-clearable.patch b/www-client/torbrowser/files/torbrowser-patches/0006-Make-content-pref-service-memory-only-clearable.patch deleted file mode 100644 index 77f9e41d2589..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0006-Make-content-pref-service-memory-only-clearable.patch +++ /dev/null @@ -1,37 +0,0 @@ -From bd560666419266a862d5b0387c7941c8ef7bb624 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 06/20] 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 -other site prefs?). ---- - .../contentprefs/nsContentPrefService.js | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/toolkit/components/contentprefs/nsContentPrefService.js b/toolkit/components/contentprefs/nsContentPrefService.js -index 68a5561..effc33c 100644 ---- a/toolkit/components/contentprefs/nsContentPrefService.js -+++ b/toolkit/components/contentprefs/nsContentPrefService.js -@@ -1242,7 +1242,7 @@ ContentPrefService.prototype = { - - var dbConnection; - -- if (!dbFile.exists()) -+ if (true || !dbFile.exists()) - dbConnection = this._dbCreate(dbService, dbFile); - else { - try { -@@ -1290,7 +1290,7 @@ ContentPrefService.prototype = { - }, - - _dbCreate: function ContentPrefService__dbCreate(aDBService, aDBFile) { -- var dbConnection = aDBService.openDatabase(aDBFile); -+ var dbConnection = aDBService.openSpecialDatabase("memory"); - - try { - this._dbCreateSchema(dbConnection); --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0007-Disable-SSL-Session-ID-tracking.patch b/www-client/torbrowser/files/torbrowser-patches/0007-Disable-SSL-Session-ID-tracking.patch deleted file mode 100644 index 1f19c8afd988..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0007-Disable-SSL-Session-ID-tracking.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 3eebe3b7e2882de39e2c686a38e7084cccfa4c60 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 07/20] 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 -https://www.torproject.org/projects/torbrowser/design/#identifier-linkability. ---- - security/nss/lib/ssl/sslsock.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/security/nss/lib/ssl/sslsock.c b/security/nss/lib/ssl/sslsock.c -index 28e6210..fa48ecd 100644 ---- a/security/nss/lib/ssl/sslsock.c -+++ b/security/nss/lib/ssl/sslsock.c -@@ -173,7 +173,7 @@ static sslOptions ssl_defaults = { - PR_FALSE, /* enableSSL2 */ /* now defaults to off in NSS 3.13 */ - PR_TRUE, /* enableSSL3 */ - PR_TRUE, /* enableTLS */ /* now defaults to on in NSS 3.0 */ -- PR_FALSE, /* noCache */ -+ PR_TRUE, /* noCache */ - PR_FALSE, /* fdx */ - PR_FALSE, /* v2CompatibleHello */ /* now defaults to off in NSS 3.13 */ - PR_TRUE, /* detectRollBack */ --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0008-Provide-an-observer-event-to-close-persistent-connec.patch b/www-client/torbrowser/files/torbrowser-patches/0008-Provide-an-observer-event-to-close-persistent-connec.patch deleted file mode 100644 index 1de839ec4773..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0008-Provide-an-observer-event-to-close-persistent-connec.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 9594d3f2df4f20308406deea30aaccd577587438 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 08/20] Provide an observer event to close persistent - connections - -We need to prevent linkability across "New Identity", which includes closing -keep-alive connections. ---- - netwerk/protocol/http/nsHttpHandler.cpp | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp -index dcdf729..672d436 100644 ---- a/netwerk/protocol/http/nsHttpHandler.cpp -+++ b/netwerk/protocol/http/nsHttpHandler.cpp -@@ -338,6 +338,7 @@ nsHttpHandler::Init() - 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; -@@ -1587,6 +1588,12 @@ nsHttpHandler::Observe(nsISupports *subject, - mConnMgr->PruneDeadConnections(); - } - } -+ else if (strcmp(topic, "net:prune-all-connections") == 0) { -+ if (mConnMgr) { -+ mConnMgr->ClosePersistentConnections(); -+ mConnMgr->PruneDeadConnections(); -+ } -+ } - - return NS_OK; - } --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0009-Limit-device-and-system-specific-CSS-Media-Queries.patch b/www-client/torbrowser/files/torbrowser-patches/0009-Limit-device-and-system-specific-CSS-Media-Queries.patch deleted file mode 100644 index 06e3e813bb81..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0009-Limit-device-and-system-specific-CSS-Media-Queries.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 6c09a21d1db29dc28b359294ededc047ba5b463e Mon Sep 17 00:00:00 2001 -From: Shondoit Walker <shondoit@gmail.com> -Date: Mon, 4 Jun 2012 19:15:31 +0200 -Subject: [PATCH 09/20] Limit device- and system-specific CSS Media Queries - -This is done to address -https://www.torproject.org/projects/torbrowser/design/#fingerprinting-linkability - -This also fixes bug #4795 by making queries still available for chrome windows, -whilst returning nothing or non-device-specific values for web pages or extensions. ---- - layout/style/nsMediaFeatures.cpp | 42 ++++++++++++++++++++++++------------- - 1 files changed, 27 insertions(+), 15 deletions(-) - -diff --git a/layout/style/nsMediaFeatures.cpp b/layout/style/nsMediaFeatures.cpp -index 6eca06e..25735e8 100644 ---- a/layout/style/nsMediaFeatures.cpp -+++ b/layout/style/nsMediaFeatures.cpp -@@ -130,6 +130,9 @@ GetDeviceContextFor(nsPresContext* aPresContext) - static nsSize - GetDeviceSize(nsPresContext* aPresContext) - { -+ if (!aPresContext->IsChrome()) { -+ return GetSize(aPresContext); -+ } else { - nsSize size; - if (aPresContext->IsRootPaginatedDocument()) - // We want the page size, including unprintable areas and margins. -@@ -140,6 +143,7 @@ GetDeviceSize(nsPresContext* aPresContext) - GetDeviceContextFor(aPresContext)-> - GetDeviceSurfaceDimensions(size.width, size.height); - return size; -+ } - } - - static nsresult -@@ -183,17 +187,17 @@ static nsresult - GetDeviceOrientation(nsPresContext* aPresContext, const nsMediaFeature*, - nsCSSValue& aResult) - { -- nsSize size = GetDeviceSize(aPresContext); -- PRInt32 orientation; -- if (size.width > size.height) { -- orientation = NS_STYLE_ORIENTATION_LANDSCAPE; -- } else { -- // Per spec, square viewports should be 'portrait' -- orientation = NS_STYLE_ORIENTATION_PORTRAIT; -- } -- -- aResult.SetIntValue(orientation, eCSSUnit_Enumerated); -- return NS_OK; -+ nsSize size = GetDeviceSize(aPresContext); -+ PRInt32 orientation; -+ if (size.width > size.height) { -+ orientation = NS_STYLE_ORIENTATION_LANDSCAPE; -+ } else { -+ // Per spec, square viewports should be 'portrait' -+ orientation = NS_STYLE_ORIENTATION_PORTRAIT; -+ } -+ -+ aResult.SetIntValue(orientation, eCSSUnit_Enumerated); -+ return NS_OK; - } - - static nsresult -@@ -311,8 +315,12 @@ static nsresult - GetDevicePixelRatio(nsPresContext* aPresContext, const nsMediaFeature*, - nsCSSValue& aResult) - { -- float ratio = aPresContext->CSSPixelsToDevPixels(1.0f); -- aResult.SetFloatValue(ratio, eCSSUnit_Number); -+ if (aPresContext->IsChrome()) { -+ float ratio = aPresContext->CSSPixelsToDevPixels(1.0f); -+ aResult.SetFloatValue(ratio, eCSSUnit_Number); -+ } else { -+ aResult.SetFloatValue(1.0, eCSSUnit_Number); -+ } - return NS_OK; - } - -@@ -320,18 +328,21 @@ static nsresult - GetSystemMetric(nsPresContext* aPresContext, const nsMediaFeature* aFeature, - nsCSSValue& aResult) - { -+ if (aPresContext->IsChrome()) { - NS_ABORT_IF_FALSE(aFeature->mValueType == nsMediaFeature::eBoolInteger, - "unexpected type"); - nsIAtom *metricAtom = *aFeature->mData.mMetric; - bool hasMetric = nsCSSRuleProcessor::HasSystemMetric(metricAtom); - aResult.SetIntValue(hasMetric ? 1 : 0, eCSSUnit_Integer); -- return NS_OK; -+ } -+ return NS_OK; - } - - static nsresult - GetWindowsTheme(nsPresContext* aPresContext, const nsMediaFeature* aFeature, - nsCSSValue& aResult) - { -+ if (aPresContext->IsChrome()) { - aResult.Reset(); - #ifdef XP_WIN - PRUint8 windowsThemeId = -@@ -350,7 +361,8 @@ GetWindowsTheme(nsPresContext* aPresContext, const nsMediaFeature* aFeature, - } - } - #endif -- return NS_OK; -+ } -+ return NS_OK; - } - - /* --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0010-Rebrand-Firefox-to-TorBrowser.patch b/www-client/torbrowser/files/torbrowser-patches/0010-Rebrand-Firefox-to-TorBrowser.patch deleted file mode 100644 index baffded3d08d..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0010-Rebrand-Firefox-to-TorBrowser.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 622437f3baf410f14610b21bcca7f9a0fcc8c6d9 Mon Sep 17 00:00:00 2001 -From: Erinn Clark <erinn@torproject.org> -Date: Wed, 25 Apr 2012 09:14:00 -0300 -Subject: [PATCH 10/20] 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. ---- - browser/branding/official/configure.sh | 2 +- - browser/branding/official/locales/en-US/brand.dtd | 6 +++--- - .../official/locales/en-US/brand.properties | 6 +++--- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/browser/branding/official/configure.sh b/browser/branding/official/configure.sh -index 4d3d297..e9b3738 100644 ---- a/browser/branding/official/configure.sh -+++ b/browser/branding/official/configure.sh -@@ -1,2 +1,2 @@ --MOZ_APP_DISPLAYNAME=Firefox -+MOZ_APP_DISPLAYNAME=TorBrowser - MOZ_UA_BUILDID=20100101 -diff --git a/browser/branding/official/locales/en-US/brand.dtd b/browser/branding/official/locales/en-US/brand.dtd -index 142d79b..c137e04 100644 ---- a/browser/branding/official/locales/en-US/brand.dtd -+++ b/browser/branding/official/locales/en-US/brand.dtd -@@ -1,4 +1,4 @@ --<!ENTITY brandShortName "Firefox"> --<!ENTITY brandFullName "Mozilla Firefox"> --<!ENTITY vendorShortName "Mozilla"> -+<!ENTITY brandShortName "TorBrowser"> -+<!ENTITY brandFullName "Tor Browser"> -+<!ENTITY vendorShortName "Tor Project"> - <!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation."> -diff --git a/browser/branding/official/locales/en-US/brand.properties b/browser/branding/official/locales/en-US/brand.properties -index 5f3ad54..62ac2fd 100644 ---- a/browser/branding/official/locales/en-US/brand.properties -+++ b/browser/branding/official/locales/en-US/brand.properties -@@ -1,6 +1,6 @@ --brandShortName=Firefox --brandFullName=Mozilla Firefox --vendorShortName=Mozilla -+brandShortName=TorBrowser -+brandFullName=Tor Browser -+vendorShortName=Tor Project - - homePageSingleStartMain=Firefox Start, a fast home page with built-in search - homePageImport=Import your home page from %S --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0011-Make-Download-manager-memory-only.patch b/www-client/torbrowser/files/torbrowser-patches/0011-Make-Download-manager-memory-only.patch deleted file mode 100644 index 67d48175a93b..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0011-Make-Download-manager-memory-only.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 8992ae1cb7e1545413e649027ab7827799c53300 Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Wed, 25 Apr 2012 13:39:35 -0700 -Subject: [PATCH 11/20] Make Download manager memory only. - -Solves https://trac.torproject.org/projects/tor/ticket/4017. - -Yes, this is an ugly hack. We *could* send the observer notification from -Torbutton to tell the download manager to switch to memory, but then we have -to dance around and tell it again if the user switches in and out of private -browsing mode.. - -The right way to do this is with a pref. Maybe I'll get to that someday, if -this breaks enough times in conflict. ---- - toolkit/components/downloads/nsDownloadManager.cpp | 4 ++-- - toolkit/components/downloads/nsDownloadManager.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp -index cb1f1f6..1de653b 100644 ---- a/toolkit/components/downloads/nsDownloadManager.cpp -+++ b/toolkit/components/downloads/nsDownloadManager.cpp -@@ -1999,7 +1999,7 @@ nsDownloadManager::Observe(nsISupports *aSubject, - if (NS_LITERAL_STRING("memory").Equals(aData)) - return SwitchDatabaseTypeTo(DATABASE_MEMORY); - else if (NS_LITERAL_STRING("disk").Equals(aData)) -- return SwitchDatabaseTypeTo(DATABASE_DISK); -+ return SwitchDatabaseTypeTo(DATABASE_MEMORY); - } - else if (strcmp(aTopic, "alertclickcallback") == 0) { - nsCOMPtr<nsIDownloadManagerUI> dmui = -@@ -2076,7 +2076,7 @@ nsDownloadManager::OnLeavePrivateBrowsingMode() - (void)ResumeAllDownloads(false); - - // Switch back to the on-disk DB again -- (void)SwitchDatabaseTypeTo(DATABASE_DISK); -+ //(void)SwitchDatabaseTypeTo(DATABASE_DISK); - - mInPrivateBrowsing = false; - } -diff --git a/toolkit/components/downloads/nsDownloadManager.h b/toolkit/components/downloads/nsDownloadManager.h -index 16a861e..e729cbf 100644 ---- a/toolkit/components/downloads/nsDownloadManager.h -+++ b/toolkit/components/downloads/nsDownloadManager.h -@@ -92,7 +92,7 @@ public: - - virtual ~nsDownloadManager(); - nsDownloadManager() : -- mDBType(DATABASE_DISK) -+ mDBType(DATABASE_MEMORY) - , mInPrivateBrowsing(false) - #ifdef DOWNLOAD_SCANNER - , mScanner(nsnull) --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0012-Add-DDG-and-StartPage-to-Omnibox.patch b/www-client/torbrowser/files/torbrowser-patches/0012-Add-DDG-and-StartPage-to-Omnibox.patch deleted file mode 100644 index 9452b8b03ad0..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0012-Add-DDG-and-StartPage-to-Omnibox.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 59b8b663b93248db34ad741ccb9972ecb6814c1f Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Wed, 25 Apr 2012 15:03:46 -0700 -Subject: [PATCH 12/20] 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. ---- - browser/locales/en-US/searchplugins/duckduckgo.xml | 29 ++++++++++++++++++++ - browser/locales/en-US/searchplugins/list.txt | 2 + - browser/locales/en-US/searchplugins/startpage.xml | 11 +++++++ - 3 files changed, 42 insertions(+), 0 deletions(-) - create mode 100644 browser/locales/en-US/searchplugins/duckduckgo.xml - create mode 100644 browser/locales/en-US/searchplugins/startpage.xml - -diff --git a/browser/locales/en-US/searchplugins/duckduckgo.xml b/browser/locales/en-US/searchplugins/duckduckgo.xml -new file mode 100644 -index 0000000..4f00b4d ---- /dev/null -+++ b/browser/locales/en-US/searchplugins/duckduckgo.xml -@@ -0,0 +1,29 @@ -+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> -+<ShortName>DuckDuckGo</ShortName> -+<Description>Duck Duck Go</Description> -+<InputEncoding>UTF-8</InputEncoding> -+<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAA -+AAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8n -+IOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rB -+Uv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n///// -+/05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v// -+//////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9h -+XPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg -+7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs -+5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/ -+JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8n IOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg -+7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1 -+/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/ -+fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y -+1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg -+7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDs -+AScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAA -+AAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAA -+AAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMAD -+AADwDwAA+B8AAA==</Image> -+<Url type="text/html" method="POST" template="https://duckduckgo.com/html/"> -+ <Param name="q" value="{searchTerms}"/> -+</Url> -+<SearchForm>https://duckduckgo.com/html/</SearchForm> -+</SearchPlugin> -diff --git a/browser/locales/en-US/searchplugins/list.txt b/browser/locales/en-US/searchplugins/list.txt -index 2a1141a..0466f4e 100644 ---- a/browser/locales/en-US/searchplugins/list.txt -+++ b/browser/locales/en-US/searchplugins/list.txt -@@ -1,7 +1,9 @@ - amazondotcom - bing -+duckduckgo - eBay - google -+startpage - twitter - wikipedia - yahoo -diff --git a/browser/locales/en-US/searchplugins/startpage.xml b/browser/locales/en-US/searchplugins/startpage.xml -new file mode 100644 -index 0000000..1a310b1 ---- /dev/null -+++ b/browser/locales/en-US/searchplugins/startpage.xml -@@ -0,0 +1,11 @@ -+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/"> -+<ShortName>Startpage</ShortName> -+<Description>Start Page</Description> -+<InputEncoding>UTF-8</InputEncoding> -+<Image width="16" height="16">data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2jkj+9YtD/vWLQ/71i0P+9otD/vaLRP72i0T+9YtE/vWLRP72i0T+9otD/vaNRP72jUT+9otF/vaLRf73kkv+9Yc///WJP//1iT//9Yk///rAmf/94Mz/+sCa//aRTv/1iUH/9ok///aJP//2i0H/9otB//aJQv/2iUL/9otC//aNRP/2jUT/9o1E//aNRP/6wpv////////////96dr/95dQ//aNRP/2kET/9pBG//aQRv/2kEb/9pBG//aRR//3lEz/95BH//mueP/7xJ3/959g//efYf/4p23//vDm//3p2//3kEr/95FJ//aRSf/niFH/95FK//aRSv/2mE//95hS/vq4iP/////////////////81bj/95xZ//q4iP//////+bF+//eZT//njFT/PSqi/2xGjv/2mVD/951V/vedVv783cX///////vQrf/++PP///////748//+8uj///////m3gf/olFr/PSuj/w8Pt/9sSJD/951V//eeWf73oVv++8ul///////5sXf/+KRi//vRsf////////////3r3v/olF//Piyk/w8Pt/9sSJH/+J5Z//ieWv/3oV/++KZf/vihXP/97N7//vn0//zTs//6wJP/+bBy//q6iP/onW//Piyl/w8Pt/8fGbH/m2iB/+icY//4pGD/96hl/viqZf74pmD/+Kxr//3iy/////////n1//ivbP/onGj/Pi2m/w8Pt/8uJKz/fFeQ/x8Zsf8+Lqb/6J9r//ivbP74rm3++Klm//mpZv/5q2f/+bR9//m0e//poW7/Pi6n/w8Pt/9sTZj/+Ktp//ira/+rd4P/Dw+3/4xijv/5snH++LN1/vmvbf/5r23/+a5t//mvb//4r2//TTuk/w8Pt/8fGrL/6ah1//ivcP/4r3P/q3yI/w8Pt/+MZpP/+bN5/vm4ev75t3X/+bV1//m1df/5t3X/+Ld3/8qUhP98XZn/Hxqz/+mse//5t3f/2p+B/x8as/8PD7f/u4qK//m7fv76u4D++bl7//m3fP/5uXz/+bl8//m5fP/5t3z/+bl//x8as/9NPKf/fWCb/x8as/8PD7f/bVOh//q5f//6v4X++sGI/vm9g//5voX/+b6F//m9hf/6vYX/+r6F//nCh/+bepr/Hxu0/w8Pt/8PD7f/fWOh//q+hf/6wof/+saN/vrGjf75xIv/+ceL//nEi//5xIv/+sSL//rHi//6x43/+ceN/+m7kP+7lpj/6ruQ//rHkP/6x43/+seQ//rLlf76ypT++seR//rJkf/6yZH/+seR//rJkf/6yZH/+8mR//vJlP/7yZT/+smU//rJlP/6yZT/+8yV//rJlf/6zpn+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</Image> -+ -+<Url type="text/html" method="POST" template="https://startpage.com/do/search"> -+ <Param name="q" value="{searchTerms}"/> -+</Url> -+<SearchForm>https://startpage.com/do/search/</SearchForm> -+</SearchPlugin> --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0013-Make-nsICacheService.EvictEntries-synchronous.patch b/www-client/torbrowser/files/torbrowser-patches/0013-Make-nsICacheService.EvictEntries-synchronous.patch deleted file mode 100644 index 0514fb85f599..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0013-Make-nsICacheService.EvictEntries-synchronous.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3b6137594c9f25725b3dd0fd46cfc8c86d6a772e Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Tue, 1 May 2012 15:02:03 -0700 -Subject: [PATCH 13/20] 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". - -https://trac.torproject.org/projects/tor/ticket/5715 ---- - netwerk/cache/nsCacheService.cpp | 15 +++++++++++++-- - 1 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/netwerk/cache/nsCacheService.cpp b/netwerk/cache/nsCacheService.cpp -index 8c85b68..d43f121 100644 ---- a/netwerk/cache/nsCacheService.cpp -+++ b/netwerk/cache/nsCacheService.cpp -@@ -1414,10 +1414,21 @@ NS_IMETHODIMP nsCacheService::VisitEntries(nsICacheVisitor *visitor) - return NS_OK; - } - -- - NS_IMETHODIMP nsCacheService::EvictEntries(nsCacheStoragePolicy storagePolicy) - { -- return EvictEntriesForClient(nsnull, storagePolicy); -+ NS_IMETHODIMP r; -+ r = EvictEntriesForClient(nsnull, storagePolicy); -+ -+ // XXX: Bloody hack until we get this notifier in FF14.0: -+ // https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsICacheListener#onCacheEntryDoomed%28%29 -+ if (storagePolicy == nsICache::STORE_ANYWHERE && -+ NS_IsMainThread() && gService && gService->mInitialized) { -+ nsCacheServiceAutoLock lock; -+ gService->DoomActiveEntries(); -+ gService->ClearDoomList(); -+ (void) SyncWithCacheIOThread(); -+ } -+ return r; - } - - NS_IMETHODIMP nsCacheService::GetCacheIOTarget(nsIEventTarget * *aCacheIOTarget) --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0014-Prevent-WebSocket-DNS-leak.patch b/www-client/torbrowser/files/torbrowser-patches/0014-Prevent-WebSocket-DNS-leak.patch deleted file mode 100644 index e95b223d96e3..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0014-Prevent-WebSocket-DNS-leak.patch +++ /dev/null @@ -1,132 +0,0 @@ -From 0607517f87c2a0060f4f1e437f0ac37a889047a9 Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Wed, 2 May 2012 17:44:39 -0700 -Subject: [PATCH 14/20] Prevent WebSocket DNS leak. - -This is due to an improper implementation of the WebSocket spec by Mozilla. - -"There MUST be no more than one connection in a CONNECTING state. If multiple -connections to the same IP address are attempted simultaneously, the client -MUST serialize them so that there is no more than one connection at a time -running through the following steps. - -If the client cannot determine the IP address of the remote host (for -example, because all communication is being done through a proxy server that -performs DNS queries itself), then the client MUST assume for the purposes of -this step that each host name refers to a distinct remote host," - -https://tools.ietf.org/html/rfc6455#page-15 - -They implmented the first paragraph, but not the second... - -While we're at it, we also prevent the DNS service from being used to look up -anything other than IP addresses if socks_remote_dns is set to true, so this -bug can't turn up in other components or due to 3rd party addons. ---- - netwerk/dns/nsDNSService2.cpp | 24 ++++++++++++++++++++++- - netwerk/dns/nsDNSService2.h | 1 + - netwerk/protocol/websocket/WebSocketChannel.cpp | 8 +++++- - 3 files changed, 30 insertions(+), 3 deletions(-) - -diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp -index 7458729..40fbaba 100644 ---- a/netwerk/dns/nsDNSService2.cpp -+++ b/netwerk/dns/nsDNSService2.cpp -@@ -403,6 +403,7 @@ nsDNSService::Init() - bool enableIDN = true; - bool disableIPv6 = false; - bool disablePrefetch = false; -+ bool disableDNS = false; - int proxyType = nsIProtocolProxyService::PROXYCONFIG_DIRECT; - - nsAdoptingCString ipv4OnlyDomains; -@@ -426,6 +427,10 @@ nsDNSService::Init() - - // If a manual proxy is in use, disable prefetch implicitly - prefs->GetIntPref("network.proxy.type", &proxyType); -+ -+ // If the user wants remote DNS, we should fail any lookups that still -+ // make it here. -+ prefs->GetBoolPref("network.proxy.socks_remote_dns", &disableDNS); - } - - if (mFirstTime) { -@@ -443,7 +448,7 @@ nsDNSService::Init() - - // Monitor these to see if there is a change in proxy configuration - // If a manual proxy is in use, disable prefetch implicitly -- prefs->AddObserver("network.proxy.type", this, false); -+ prefs->AddObserver("network.proxy.", this, false); - } - } - -@@ -472,6 +477,7 @@ nsDNSService::Init() - mIDN = idn; - mIPv4OnlyDomains = ipv4OnlyDomains; // exchanges buffer ownership - mDisableIPv6 = disableIPv6; -+ mDisableDNS = disableDNS; - - // Disable prefetching either by explicit preference or if a manual proxy is configured - mDisablePrefetch = disablePrefetch || (proxyType == nsIProtocolProxyService::PROXYCONFIG_MANUAL); -@@ -583,6 +589,14 @@ nsDNSService::AsyncResolve(const nsACString &hostname, - if (mDisablePrefetch && (flags & RESOLVE_SPECULATE)) - return NS_ERROR_DNS_LOOKUP_QUEUE_FULL; - -+ PRNetAddr tempAddr; -+ if (mDisableDNS) { -+ // Allow IP lookups through, but nothing else. -+ if (PR_StringToNetAddr(hostname.BeginReading(), &tempAddr) != PR_SUCCESS) { -+ return NS_ERROR_UNKNOWN_PROXY_HOST; // XXX: NS_ERROR_NOT_IMPLEMENTED? -+ } -+ } -+ - res = mResolver; - idn = mIDN; - } -@@ -669,6 +683,14 @@ nsDNSService::Resolve(const nsACString &hostname, - MutexAutoLock lock(mLock); - res = mResolver; - idn = mIDN; -+ -+ PRNetAddr tempAddr; -+ if (mDisableDNS) { -+ // Allow IP lookups through, but nothing else. -+ if (PR_StringToNetAddr(hostname.BeginReading(), &tempAddr) != PR_SUCCESS) { -+ return NS_ERROR_UNKNOWN_PROXY_HOST; // XXX: NS_ERROR_NOT_IMPLEMENTED? -+ } -+ } - } - NS_ENSURE_TRUE(res, NS_ERROR_OFFLINE); - -diff --git a/netwerk/dns/nsDNSService2.h b/netwerk/dns/nsDNSService2.h -index 1749b41..3ec8eba 100644 ---- a/netwerk/dns/nsDNSService2.h -+++ b/netwerk/dns/nsDNSService2.h -@@ -70,4 +70,5 @@ private: - bool mDisableIPv6; - bool mDisablePrefetch; - bool mFirstTime; -+ bool mDisableDNS; - }; -diff --git a/netwerk/protocol/websocket/WebSocketChannel.cpp b/netwerk/protocol/websocket/WebSocketChannel.cpp -index 3578866..b1aaec2 100644 ---- a/netwerk/protocol/websocket/WebSocketChannel.cpp -+++ b/netwerk/protocol/websocket/WebSocketChannel.cpp -@@ -1884,8 +1884,12 @@ WebSocketChannel::ApplyForAdmission() - LOG(("WebSocketChannel::ApplyForAdmission: checking for concurrent open\n")); - nsCOMPtr<nsIThread> mainThread; - NS_GetMainThread(getter_AddRefs(mainThread)); -- dns->AsyncResolve(hostName, 0, this, mainThread, getter_AddRefs(mDNSRequest)); -- NS_ENSURE_SUCCESS(rv, rv); -+ rv = dns->AsyncResolve(hostName, 0, this, mainThread, getter_AddRefs(mDNSRequest)); -+ if (NS_FAILED(rv)) { -+ // Fall back to hostname on dispatch failure -+ mDNSRequest = nsnull; -+ OnLookupComplete(nsnull, nsnull, rv); -+ } - - return NS_OK; - } --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0015-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch b/www-client/torbrowser/files/torbrowser-patches/0015-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch deleted file mode 100644 index 8d0aee3dbad0..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0015-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch +++ /dev/null @@ -1,45 +0,0 @@ -From c482a4bd10c58099f7bab0c5990c6e5a29b6c59d Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Thu, 7 Jun 2012 14:45:26 -0700 -Subject: [PATCH 15/20] 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 -than opened. Hopefully they will get the hint and dock Vidalia instead. - -This is an emergency fix for -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 ++++++++++++++ - 1 files changed, 14 insertions(+), 0 deletions(-) - -diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js -index 6e254ca..57ca373 100644 ---- a/browser/base/content/browser.js -+++ b/browser/base/content/browser.js -@@ -1234,6 +1234,20 @@ function BrowserStartup() { - - prepareForStartup(); - -+ // If this is not a TBB profile, exit. -+ // Solves https://trac.torproject.org/projects/tor/ticket/4192 -+ var foundPref = false; -+ try { -+ foundPref = gPrefService.prefHasUserValue("torbrowser.version"); -+ } catch(e) { -+ //dump("No pref: "+e); -+ } -+ if(!foundPref) { -+ var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"] -+ .getService(Components.interfaces.nsIAppStartup); -+ appStartup.quit(3); // Force all windows to close, and then quit. -+ } -+ - if (uriToLoad && uriToLoad != "about:blank") { - if (uriToLoad instanceof Ci.nsISupportsArray) { - let count = uriToLoad.Count(); --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0016-Limit-the-number-of-fonts-per-document.patch b/www-client/torbrowser/files/torbrowser-patches/0016-Limit-the-number-of-fonts-per-document.patch deleted file mode 100644 index dcb5f52af5d0..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0016-Limit-the-number-of-fonts-per-document.patch +++ /dev/null @@ -1,225 +0,0 @@ -From 649b237e95315e9858cfb038f9f7f95199584cbd Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Thu, 7 Jun 2012 15:09:59 -0700 -Subject: [PATCH 16/20] Limit the number of fonts per document. - -We create two prefs: -browser.display.max_font_count and browser.display.max_font_attempts. -max_font_count sets a limit on the number of fonts actually used in the -document, and max_font_attempts sets a limit on the total number of CSS -queries that a document is allowed to perform. - -Once either limit is reached, the browser behaves as if -browser.display.use_document_fonts was set to 0 for subsequent font queries. - -If a pref is not set or is negative, that limit does not apply. - -This is done to address: -https://www.torproject.org/projects/torbrowser/design/#fingerprinting-linkability ---- - layout/base/nsPresContext.cpp | 100 +++++++++++++++++++++++++++++++++++++++++ - layout/base/nsPresContext.h | 9 ++++ - layout/style/nsRuleNode.cpp | 13 ++++- - 3 files changed, 119 insertions(+), 3 deletions(-) - -diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp -index f3815fb..1ab210e 100644 ---- a/layout/base/nsPresContext.cpp -+++ b/layout/base/nsPresContext.cpp -@@ -97,6 +97,8 @@ - #include "FrameLayerBuilder.h" - #include "nsDOMMediaQueryList.h" - #include "nsSMILAnimationController.h" -+#include "nsString.h" -+#include "nsUnicharUtils.h" - - #ifdef IBMBIDI - #include "nsBidiPresUtils.h" -@@ -772,6 +774,10 @@ nsPresContext::GetUserPreferences() - // * use fonts? - mUseDocumentFonts = - Preferences::GetInt("browser.display.use_document_fonts") != 0; -+ mMaxFonts = -+ Preferences::GetInt("browser.display.max_font_count", -1); -+ mMaxFontAttempts = -+ Preferences::GetInt("browser.display.max_font_attempts", -1); - - // * replace backslashes with Yen signs? (bug 245770) - mEnableJapaneseTransform = -@@ -1381,6 +1387,100 @@ nsPresContext::GetDefaultFont(PRUint8 aFontID, nsIAtom *aLanguage) const - return font; - } - -+PRBool -+nsPresContext::FontUseCountReached(const nsFont &font) { -+ if (mMaxFonts < 0) { -+ return PR_FALSE; -+ } -+ -+ for (PRUint32 i = 0; i < mFontsUsed.Length(); i++) { -+ if (mFontsUsed[i].name.Equals(font.name, -+ nsCaseInsensitiveStringComparator()) -+ // XXX: Style is sometimes filled with garbage?? -+ /*&& mFontsUsed[i].style == font.style*/) { -+ // seen it before: OK -+ return PR_FALSE; -+ } -+ } -+ -+ if (mFontsUsed.Length() >= mMaxFonts) { -+ return PR_TRUE; -+ } -+ -+ return PR_FALSE; -+} -+ -+PRBool -+nsPresContext::FontAttemptCountReached(const nsFont &font) { -+ if (mMaxFontAttempts < 0) { -+ return PR_FALSE; -+ } -+ -+ for (PRUint32 i = 0; i < mFontsTried.Length(); i++) { -+ if (mFontsTried[i].name.Equals(font.name, -+ nsCaseInsensitiveStringComparator()) -+ // XXX: Style is sometimes filled with garbage?? -+ /*&& mFontsTried[i].style == font.style*/) { -+ // seen it before: OK -+ return PR_FALSE; -+ } -+ } -+ -+ if (mFontsTried.Length() >= mMaxFontAttempts) { -+ return PR_TRUE; -+ } -+ -+ return PR_FALSE; -+} -+ -+void -+nsPresContext::AddFontUse(const nsFont &font) { -+ if (mMaxFonts < 0) { -+ return; -+ } -+ -+ for (PRUint32 i = 0; i < mFontsUsed.Length(); i++) { -+ if (mFontsUsed[i].name.Equals(font.name, -+ nsCaseInsensitiveStringComparator()) -+ // XXX: Style is sometimes filled with garbage?? -+ /*&& mFontsUsed[i].style == font.style*/) { -+ // seen it before: OK -+ return; -+ } -+ } -+ -+ if (mFontsUsed.Length() >= mMaxFonts) { -+ return; -+ } -+ -+ mFontsUsed.AppendElement(font); -+ return; -+} -+ -+void -+nsPresContext::AddFontAttempt(const nsFont &font) { -+ if (mMaxFontAttempts < 0) { -+ return; -+ } -+ -+ for (PRUint32 i = 0; i < mFontsTried.Length(); i++) { -+ if (mFontsTried[i].name.Equals(font.name, -+ nsCaseInsensitiveStringComparator()) -+ // XXX: Style is sometimes filled with garbage?? -+ /*&& mFontsTried[i].style == font.style*/) { -+ // seen it before: OK -+ return; -+ } -+ } -+ -+ if (mFontsTried.Length() >= mMaxFontAttempts) { -+ return; -+ } -+ -+ mFontsTried.AppendElement(font); -+ return; -+} -+ - void - nsPresContext::SetFullZoom(float aZoom) - { -diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h -index e367c5f..3d979f1 100644 ---- a/layout/base/nsPresContext.h -+++ b/layout/base/nsPresContext.h -@@ -535,6 +535,13 @@ public: - } - } - -+ nsTArray<nsFont> mFontsUsed; // currently for font-count limiting only -+ nsTArray<nsFont> mFontsTried; // currently for font-count limiting only -+ void AddFontUse(const nsFont &font); -+ void AddFontAttempt(const nsFont &font); -+ PRBool FontUseCountReached(const nsFont &font); -+ PRBool FontAttemptCountReached(const nsFont &font); -+ - /** - * Get the minimum font size for the specified language. If aLanguage - * is nsnull, then the document's language is used. -@@ -1188,6 +1195,8 @@ protected: - PRUint32 mInterruptChecksToSkip; - - mozilla::TimeStamp mReflowStartTime; -+ PRInt32 mMaxFontAttempts; -+ PRInt32 mMaxFonts; - - unsigned mHasPendingInterrupt : 1; - unsigned mInterruptsEnabled : 1; -diff --git a/layout/style/nsRuleNode.cpp b/layout/style/nsRuleNode.cpp -index 4b134b2..82b1dd7 100644 ---- a/layout/style/nsRuleNode.cpp -+++ b/layout/style/nsRuleNode.cpp -@@ -3102,14 +3102,15 @@ nsRuleNode::ComputeFontData(void* aStartStruct, - - bool useDocumentFonts = - mPresContext->GetCachedBoolPref(kPresContext_UseDocumentFonts); -+ bool isXUL = PR_FALSE; - - // See if we are in the chrome - // We only need to know this to determine if we have to use the - // document fonts (overriding the useDocumentFonts flag). -- if (!useDocumentFonts && mPresContext->IsChrome()) { -+ if (mPresContext->IsChrome()) { - // if we are not using document fonts, but this is a XUL document, - // then we use the document fonts anyway -- useDocumentFonts = true; -+ isXUL = true; - } - - // Figure out if we are a generic font -@@ -3123,9 +3124,13 @@ nsRuleNode::ComputeFontData(void* aStartStruct, - // generic? - nsFont::GetGenericID(font->mFont.name, &generic); - -+ mPresContext->AddFontAttempt(font->mFont); -+ - // If we aren't allowed to use document fonts, then we are only entitled - // to use the user's default variable-width font and fixed-width font -- if (!useDocumentFonts) { -+ if (!isXUL && (!useDocumentFonts || -+ mPresContext->FontAttemptCountReached(font->mFont) || -+ mPresContext->FontUseCountReached(font->mFont))) { - // Extract the generic from the specified font family... - nsAutoString genericName; - if (!font->mFont.EnumerateFamilies(ExtractGeneric, &genericName)) { -@@ -3161,6 +3166,8 @@ nsRuleNode::ComputeFontData(void* aStartStruct, - font); - } - -+ if (font->mGenericID == kGenericFont_NONE) -+ mPresContext->AddFontUse(font->mFont); - COMPUTE_END_INHERITED(Font, font) - } - --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch b/www-client/torbrowser/files/torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch deleted file mode 100644 index 6ea29eb4594f..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0017-Randomize-HTTP-request-order-and-pipeline-depth.patch +++ /dev/null @@ -1,251 +0,0 @@ -From 09c27d0aee130959ee1aae211e9400600c26ade6 Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Thu, 7 Jun 2012 15:13:45 -0700 -Subject: [PATCH 17/20] Randomize HTTP request order and pipeline depth. - -This is an experimental defense against -http://lorre.uni.lu/~andriy/papers/acmccs-wpes11-fingerprinting.pdf - -See: -https://blog.torproject.org/blog/experimental-defense-website-traffic-fingerprinting - -This defense has been improved since that blog post to additionally randomize -the order and concurrency of non-pipelined HTTP requests. ---- - netwerk/protocol/http/nsHttpConnectionMgr.cpp | 136 ++++++++++++++++++++++++- - netwerk/protocol/http/nsHttpConnectionMgr.h | 5 + - 2 files changed, 136 insertions(+), 5 deletions(-) - -diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.cpp b/netwerk/protocol/http/nsHttpConnectionMgr.cpp -index 463584f..e05669c 100644 ---- a/netwerk/protocol/http/nsHttpConnectionMgr.cpp -+++ b/netwerk/protocol/http/nsHttpConnectionMgr.cpp -@@ -101,6 +101,12 @@ nsHttpConnectionMgr::nsHttpConnectionMgr() - mCT.Init(); - mAlternateProtocolHash.Init(16); - mSpdyPreferredHash.Init(); -+ -+ nsresult rv; -+ mRandomGenerator = do_GetService("@mozilla.org/security/random-generator;1", &rv); -+ if (NS_FAILED(rv)) { -+ mRandomGenerator = nsnull; -+ } - } - - nsHttpConnectionMgr::~nsHttpConnectionMgr() -@@ -380,8 +386,12 @@ nsHttpConnectionMgr::AddTransactionToPipeline(nsHttpPipeline *pipeline) - nsConnectionEntry *ent = mCT.Get(ci->HashKey()); - if (ent) { - // search for another request to pipeline... -- PRInt32 i, count = ent->mPendingQ.Length(); -- for (i=0; i<count; ++i) { -+ PRInt32 i, h, count = ent->mPendingQ.Length(); -+ PRInt32* ind = new PRInt32[count]; -+ ShuffleRequestOrder((PRUint32*)ind, (PRUint32)count); -+ -+ for (h=0; h<count; ++h) { -+ i = ind[h]; // random request sequence - nsHttpTransaction *trans = ent->mPendingQ[i]; - if (trans->Caps() & NS_HTTP_ALLOW_PIPELINING) { - pipeline->AddTransaction(trans); -@@ -392,6 +402,8 @@ nsHttpConnectionMgr::AddTransactionToPipeline(nsHttpPipeline *pipeline) - break; - } - } -+ -+ delete [] ind; - } - } - } -@@ -922,12 +934,17 @@ nsHttpConnectionMgr::ProcessPendingQForEntry(nsConnectionEntry *ent) - - ProcessSpdyPendingQ(ent); - -- PRUint32 i, count = ent->mPendingQ.Length(); -+ PRUint32 h, i = 0, count = ent->mPendingQ.Length(); - if (count > 0) { - LOG((" pending-count=%u\n", count)); - nsHttpTransaction *trans = nsnull; - nsHttpConnection *conn = nsnull; -- for (i = 0; i < count; ++i) { -+ -+ PRUint32* ind = new PRUint32[count]; -+ ShuffleRequestOrder(ind, count); -+ -+ for (h=0; h<count; ++h) { -+ i = ind[h]; // random request sequence - trans = ent->mPendingQ[i]; - - // When this transaction has already established a half-open -@@ -951,6 +968,7 @@ nsHttpConnectionMgr::ProcessPendingQForEntry(nsConnectionEntry *ent) - "something mutated pending queue from " - "GetConnection()"); - } -+ delete [] ind; - if (conn) { - LOG((" dispatching pending transaction...\n")); - -@@ -1035,6 +1053,19 @@ nsHttpConnectionMgr::AtActiveConnectionLimit(nsConnectionEntry *ent, PRUint8 cap - maxPersistConns = mMaxPersistConnsPerHost; - } - -+ // Fuzz maxConns for website fingerprinting attack -+ // We create a range of maxConns/5 up to 6*maxConns/5 -+ // because this function is called repeatedly, and we'll -+ // end up converging on a the high side of concurrent connections -+ // after a short while. -+ PRUint8 *bytes = nsnull; -+ nsresult rv = mRandomGenerator->GenerateRandomBytes(1, &bytes); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ bytes[0] = bytes[0] % (maxConns + 1); -+ maxConns = (maxConns/5) + bytes[0]; -+ NS_Free(bytes); -+ - // use >= just to be safe - return (totalCount >= maxConns) || ( (caps & NS_HTTP_ALLOW_KEEPALIVE) && - (persistCount >= maxPersistConns) ); -@@ -1274,7 +1305,7 @@ nsHttpConnectionMgr::DispatchTransaction(nsConnectionEntry *ent, - - if (conn->SupportsPipelining() && (caps & NS_HTTP_ALLOW_PIPELINING)) { - LOG((" looking to build pipeline...\n")); -- if (BuildPipeline(ent, trans, &pipeline)) -+ if (BuildRandomizedPipeline(ent, trans, &pipeline)) - trans = pipeline; - } - -@@ -1349,6 +1380,101 @@ nsHttpConnectionMgr::BuildPipeline(nsConnectionEntry *ent, - return true; - } - -+ -+// Generate a shuffled request ordering sequence -+void -+nsHttpConnectionMgr::ShuffleRequestOrder(PRUint32 *ind, PRUint32 count) -+{ -+ PRUint32 i; -+ PRUint32 *rints; -+ -+ for (i=0; i<count; ++i) { -+ ind[i] = i; -+ } -+ nsresult rv = mRandomGenerator->GenerateRandomBytes(sizeof(PRUint32)*count, -+ (PRUint8**)&rints); -+ if (NS_FAILED(rv)) -+ return; // Leave unshuffled if error -+ -+ for (i=0; i < count; ++i) { -+ PRInt32 temp = ind[i]; -+ ind[i] = ind[rints[i]%count]; -+ ind[rints[i]%count] = temp; -+ } -+ NS_Free(rints); -+} -+ -+bool -+nsHttpConnectionMgr::BuildRandomizedPipeline(nsConnectionEntry *ent, -+ nsAHttpTransaction *firstTrans, -+ nsHttpPipeline **result) -+{ -+ if (mRandomGenerator == nsnull) -+ return BuildPipeline(ent, firstTrans, result); -+ if (mMaxPipelinedRequests < 2) -+ return PR_FALSE; -+ -+ nsresult rv; -+ PRUint8 *bytes = nsnull; -+ -+ nsHttpPipeline *pipeline = nsnull; -+ nsHttpTransaction *trans; -+ -+ PRUint32 i = 0, numAdded = 0, numAllowed = 0; -+ PRUint32 max = 0; -+ -+ while (i < ent->mPendingQ.Length()) { -+ if (ent->mPendingQ[i]->Caps() & NS_HTTP_ALLOW_PIPELINING) -+ numAllowed++; -+ i++; -+ } -+ -+ rv = mRandomGenerator->GenerateRandomBytes(1, &bytes); -+ NS_ENSURE_SUCCESS(rv, rv); -+ // 4...12 -+ max = 4 + (bytes[0] % (mMaxPipelinedRequests + 1)); -+ NS_Free(bytes); -+ -+ while (numAllowed > 0) { -+ rv = mRandomGenerator->GenerateRandomBytes(1, &bytes); -+ NS_ENSURE_SUCCESS(rv, rv); -+ i = bytes[0] % ent->mPendingQ.Length(); -+ NS_Free(bytes); -+ -+ trans = ent->mPendingQ[i]; -+ -+ if (!(ent->mPendingQ[i]->Caps() & NS_HTTP_ALLOW_PIPELINING)) -+ continue; -+ -+ if (numAdded == 0) { -+ pipeline = new nsHttpPipeline; -+ if (!pipeline) -+ return PR_FALSE; -+ pipeline->AddTransaction(firstTrans); -+ numAdded = 1; -+ } -+ pipeline->AddTransaction(trans); -+ -+ // remove transaction from pending queue -+ ent->mPendingQ.RemoveElementAt(i); -+ NS_RELEASE(trans); -+ -+ numAllowed--; -+ -+ if (++numAdded == max) -+ break; -+ } -+ -+ //fprintf(stderr, "Yay!!! pipelined %u/%u transactions\n", numAdded, max); -+ LOG((" pipelined %u/%u transactions\n", numAdded, max)); -+ -+ if (numAdded == 0) -+ return PR_FALSE; -+ -+ NS_ADDREF(*result = pipeline); -+ return PR_TRUE; -+} -+ - nsresult - nsHttpConnectionMgr::ProcessNewTransaction(nsHttpTransaction *trans) - { -diff --git a/netwerk/protocol/http/nsHttpConnectionMgr.h b/netwerk/protocol/http/nsHttpConnectionMgr.h -index 6b4398b..c33870f 100644 ---- a/netwerk/protocol/http/nsHttpConnectionMgr.h -+++ b/netwerk/protocol/http/nsHttpConnectionMgr.h -@@ -53,6 +53,7 @@ - #include "nsIObserver.h" - #include "nsITimer.h" - #include "nsIX509Cert3.h" -+#include "nsIRandomGenerator.h" - - class nsHttpPipeline; - -@@ -320,6 +321,8 @@ private: - nsresult DispatchTransaction(nsConnectionEntry *, nsHttpTransaction *, - PRUint8 caps, nsHttpConnection *); - bool BuildPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); -+ bool BuildRandomizedPipeline(nsConnectionEntry *, nsAHttpTransaction *, nsHttpPipeline **); -+ void ShuffleRequestOrder(PRUint32 *, PRUint32); - nsresult ProcessNewTransaction(nsHttpTransaction *); - nsresult EnsureSocketThreadTargetIfOnline(); - void ClosePersistentConnections(nsConnectionEntry *ent); -@@ -412,6 +415,8 @@ private: - PRUint64 mTimeOfNextWakeUp; - // Timer for next pruning of dead connections. - nsCOMPtr<nsITimer> mTimer; -+ // Random number generator for reordering HTTP pipeline -+ nsCOMPtr<nsIRandomGenerator> mRandomGenerator; - - // A 1s tick to call nsHttpConnection::ReadTimeoutTick on - // active http/1 connections. Disabled when there are no --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch b/www-client/torbrowser/files/torbrowser-patches/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch deleted file mode 100644 index b4ff8981e270..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0018-Adapt-Steven-Michaud-s-Mac-crashfix-patch.patch +++ /dev/null @@ -1,537 +0,0 @@ -From 7c321c4d75c7c80d899db962804d288ed7db162e Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Thu, 7 Jun 2012 15:26:13 -0700 -Subject: [PATCH 18/20] 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 | 2 +- - widget/gtk2/nsWindow.cpp | 2 +- - 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 ++--- - 15 files changed, 176 insertions(+), 46 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 4a3405b..4c105a4 100644 ---- a/widget/Makefile.in -+++ b/widget/Makefile.in -@@ -138,6 +138,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 0db6b1c..8d59716 100644 ---- a/widget/cocoa/nsChildView.mm -+++ b/widget/cocoa/nsChildView.mm -@@ -4555,11 +4555,12 @@ NSEvent* gLastDragMouseDownEvent = nil; - 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)); - } - } - -@@ -4580,11 +4581,13 @@ NSEvent* gLastDragMouseDownEvent = nil; - } - - 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" -@@ -4595,10 +4598,15 @@ NSEvent* gLastDragMouseDownEvent = nil; - // 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 be8f388..99d3878 100644 ---- a/widget/gtk2/nsDragService.cpp -+++ b/widget/gtk2/nsDragService.cpp -@@ -1332,7 +1332,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); - } - - // Either the drag was aborted or the drop occurred outside the app. -diff --git a/widget/gtk2/nsWindow.cpp b/widget/gtk2/nsWindow.cpp -index 9de734e..81fe553 100644 ---- a/widget/gtk2/nsWindow.cpp -+++ b/widget/gtk2/nsWindow.cpp -@@ -3517,7 +3517,7 @@ nsWindow::OnDragDropEvent(GtkWidget *aWidget, - if (display) { - // get the current cursor position - gdk_display_get_pointer(display, NULL, &x, &y, NULL); -- ((nsDragService *)dragService.get())->SetDragEndPoint(nsIntPoint(x, y)); -+ ((nsDragService *)dragService.get())->SetDragEndPoint(x, y); - } - dragService->EndDragSession(true); - -diff --git a/widget/nsIDragService.idl b/widget/nsIDragService.idl -index e42c578..ef8c46f 100644 ---- a/widget/nsIDragService.idl -+++ b/widget/nsIDragService.idl -@@ -48,7 +48,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; -@@ -145,8 +145,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..93a144d ---- /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@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); -+ -+ PRUint16 getInputSource(); -+ -+ void setDragEndPoint(in long aX, in long aY); -+}; -diff --git a/widget/qt/nsDragService.h b/widget/qt/nsDragService.h -index 5a3e5bb..50dcfac 100644 ---- a/widget/qt/nsDragService.h -+++ b/widget/qt/nsDragService.h -@@ -50,6 +50,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 df811ac..8d5ea4b 100644 ---- a/widget/windows/Makefile.in -+++ b/widget/windows/Makefile.in -@@ -120,6 +120,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 b6b5b62..9657263 100644 ---- a/widget/windows/nsDragService.cpp -+++ b/widget/windows/nsDragService.cpp -@@ -97,6 +97,8 @@ nsDragService::~nsDragService() - NS_IF_RELEASE(mDataObject); - } - -+NS_IMPL_ISUPPORTS_INHERITED1(nsDragService, nsBaseDragService, nsPIDragServiceWindows) -+ - bool - nsDragService::CreateDragImage(nsIDOMNode *aDOMNode, - nsIScriptableRegion *aRegion, -@@ -347,7 +349,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; -@@ -465,25 +467,26 @@ nsDragService::GetData(nsITransferable * aTransferable, PRUint32 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 87d6cc9..04c8746 100644 ---- a/widget/windows/nsDragService.h -+++ b/widget/windows/nsDragService.h -@@ -39,6 +39,7 @@ - #define nsDragService_h__ - - #include "nsBaseDragService.h" -+#include "nsPIDragServiceWindows.h" - #include <windows.h> - #include <shlobj.h> - -@@ -52,12 +53,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, -@@ -71,13 +75,9 @@ public: - NS_IMETHOD EndDragSession(bool aDoneDrag); - - // native impl. -- NS_IMETHOD SetIDataObject(IDataObject * aDataObj); - NS_IMETHOD StartInvokingDragSession(IDataObject * aDataObj, - PRUint32 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 e51101e..0fe6ffe 100644 ---- a/widget/windows/nsNativeDragSource.cpp -+++ b/widget/windows/nsNativeDragSource.cpp -@@ -42,7 +42,7 @@ - #include "nsIServiceManager.h" - #include "nsToolkit.h" - #include "nsWidgetsCID.h" --#include "nsIDragService.h" -+#include "nsDragService.h" - - static NS_DEFINE_IID(kCDragServiceCID, NS_DRAGSERVICE_CID); - -@@ -101,9 +101,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 3362ca6..a69817c 100644 ---- a/widget/windows/nsNativeDragTarget.cpp -+++ b/widget/windows/nsNativeDragTarget.cpp -@@ -205,7 +205,11 @@ nsNativeDragTarget::DispatchDragDropEvent(PRUint32 aEventType, POINTL aPT) - event.isControl = IsKeyDown(NS_VK_CONTROL); - event.isMeta = false; - event.isAlt = IsKeyDown(NS_VK_ALT); -- event.inputSource = static_cast<nsBaseDragService*>(mDragService)->GetInputSource(); -+ event.inputSource = 0; -+ nsCOMPtr<nsPIDragService> dragServicePriv = do_QueryInterface(mDragService); -+ if (dragServicePriv) { -+ dragServicePriv->GetInputSource(&event.inputSource); -+ } - - mWindow->DispatchEvent(&event, status); - } -@@ -292,9 +296,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); -@@ -432,8 +435,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: -@@ -457,11 +460,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@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 342a036..87e28f7 100644 ---- a/widget/xpwidgets/nsBaseDragService.cpp -+++ b/widget/xpwidgets/nsBaseDragService.cpp -@@ -88,7 +88,7 @@ nsBaseDragService::~nsBaseDragService() - { - } - --NS_IMPL_ISUPPORTS2(nsBaseDragService, nsIDragService, nsIDragSession) -+NS_IMPL_ISUPPORTS3(nsBaseDragService, nsIDragService, nsPIDragService, nsIDragSession) - - //--------------------------------------------------------- - NS_IMETHODIMP -@@ -436,6 +436,20 @@ nsBaseDragService::DragMoved(PRInt32 aX, PRInt32 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 290c0cb..2ceac2b 100644 ---- a/widget/xpwidgets/nsBaseDragService.h -+++ b/widget/xpwidgets/nsBaseDragService.h -@@ -39,6 +39,7 @@ - #define nsBaseDragService_h__ - - #include "nsIDragService.h" -+#include "nsPIDragService.h" - #include "nsIDragSession.h" - #include "nsITransferable.h" - #include "nsISupportsArray.h" -@@ -64,6 +65,7 @@ class nsICanvasElementExternal; - */ - - class nsBaseDragService : public nsIDragService, -+ public nsPIDragService, - public nsIDragSession - { - -@@ -74,14 +76,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; } -- -- PRUint16 GetInputSource() { return mInputSource; } -- - protected: - - /** --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0019-Fix-Firefox-13-build-process.patch b/www-client/torbrowser/files/torbrowser-patches/0019-Fix-Firefox-13-build-process.patch deleted file mode 100644 index 4ac5d0acb7ee..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0019-Fix-Firefox-13-build-process.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 41f44964edbee300c098d110be3f029ebb711081 Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Fri, 8 Jun 2012 12:42:25 -0700 -Subject: [PATCH 19/20] Fix Firefox 13 build process. - -Patch is from https://bugzilla.mozilla.org/show_bug.cgi?id=736961. ---- - config/rules.mk | 4 ++-- - js/src/config/rules.mk | 4 ++-- - js/xpconnect/src/Makefile.in | 10 +++++----- - xpcom/idl-parser/Makefile.in | 2 +- - xpcom/typelib/xpidl/Makefile.in | 4 ++-- - 5 files changed, 12 insertions(+), 12 deletions(-) - -diff --git a/config/rules.mk b/config/rules.mk -index e6353e1..c65c1f3 100644 ---- a/config/rules.mk -+++ b/config/rules.mk -@@ -1479,7 +1479,7 @@ $(XPIDL_GEN_DIR)/%.h: %.idl $(XPIDL_DEPS) $(XPIDL_GEN_DIR)/.done - $(PYTHON_PATH) \ - -I$(topsrcdir)/other-licenses/ply \ - -I$(topsrcdir)/xpcom/idl-parser \ -- $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=$(DEPTH)/xpcom/idl-parser $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ -+ $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ - @if test -n "$(findstring $*.h, $(EXPORTS))"; \ - then echo "*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true; fi - -@@ -1492,7 +1492,7 @@ $(XPIDL_GEN_DIR)/%.xpt: %.idl $(XPIDL_DEPS) $(XPIDL_GEN_DIR)/.done - -I$(topsrcdir)/other-licenses/ply \ - -I$(topsrcdir)/xpcom/idl-parser \ - -I$(topsrcdir)/xpcom/typelib/xpt/tools \ -- $(topsrcdir)/xpcom/idl-parser/typelib.py --cachedir=$(DEPTH)/xpcom/idl-parser $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ -+ $(topsrcdir)/xpcom/idl-parser/typelib.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ - - # no need to link together if XPIDLSRCS contains only XPIDL_MODULE - ifneq ($(XPIDL_MODULE).idl,$(strip $(XPIDLSRCS))) -diff --git a/js/src/config/rules.mk b/js/src/config/rules.mk -index e6353e1..c65c1f3 100644 ---- a/js/src/config/rules.mk -+++ b/js/src/config/rules.mk -@@ -1479,7 +1479,7 @@ $(XPIDL_GEN_DIR)/%.h: %.idl $(XPIDL_DEPS) $(XPIDL_GEN_DIR)/.done - $(PYTHON_PATH) \ - -I$(topsrcdir)/other-licenses/ply \ - -I$(topsrcdir)/xpcom/idl-parser \ -- $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=$(DEPTH)/xpcom/idl-parser $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ -+ $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ - @if test -n "$(findstring $*.h, $(EXPORTS))"; \ - then echo "*** WARNING: file $*.h generated from $*.idl overrides $(srcdir)/$*.h"; else true; fi - -@@ -1492,7 +1492,7 @@ $(XPIDL_GEN_DIR)/%.xpt: %.idl $(XPIDL_DEPS) $(XPIDL_GEN_DIR)/.done - -I$(topsrcdir)/other-licenses/ply \ - -I$(topsrcdir)/xpcom/idl-parser \ - -I$(topsrcdir)/xpcom/typelib/xpt/tools \ -- $(topsrcdir)/xpcom/idl-parser/typelib.py --cachedir=$(DEPTH)/xpcom/idl-parser $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ -+ $(topsrcdir)/xpcom/idl-parser/typelib.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache $(XPIDL_FLAGS) $(_VPATH_SRCS) -d $(MDDEPDIR)/$(@F).pp -o $@ - - # no need to link together if XPIDLSRCS contains only XPIDL_MODULE - ifneq ($(XPIDL_MODULE).idl,$(strip $(XPIDLSRCS))) -diff --git a/js/xpconnect/src/Makefile.in b/js/xpconnect/src/Makefile.in -index 7dc7812..a369bcd 100644 ---- a/js/xpconnect/src/Makefile.in -+++ b/js/xpconnect/src/Makefile.in -@@ -151,7 +151,7 @@ dom_quickstubs.cpp: $(srcdir)/dom_quickstubs.qsconf \ - -I$(topsrcdir)/xpcom/idl-parser \ - $(srcdir)/qsgen.py \ - --idlpath=$(DEPTH)/dist/idl \ -- --cachedir=$(DEPTH)/xpcom/idl-parser \ -+ --cachedir=$(DEPTH)/xpcom/idl-parser/cache \ - --header-output dom_quickstubs.h \ - --stub-output dom_quickstubs.cpp \ - --makedepend-output $(MDDEPDIR)/dom_qsgen.pp \ -@@ -172,7 +172,7 @@ dombindings_gen.h: $(srcdir)/dombindings.conf \ - -I$(topsrcdir)/xpcom/idl-parser \ - $(srcdir)/dombindingsgen.py \ - --idlpath=$(DEPTH)/dist/idl \ -- --cachedir=$(DEPTH)/xpcom/idl-parser \ -+ --cachedir=$(DEPTH)/xpcom/idl-parser/cache \ - --header-output dombindings_gen.h \ - $(srcdir)/dombindings.conf - -@@ -189,7 +189,7 @@ dombindings_gen.cpp: $(srcdir)/dombindings.conf \ - -I$(topsrcdir)/xpcom/idl-parser \ - $(srcdir)/dombindingsgen.py \ - --idlpath=$(DEPTH)/dist/idl \ -- --cachedir=$(DEPTH)/xpcom/idl-parser \ -+ --cachedir=$(DEPTH)/xpcom/idl-parser/cache \ - --stub-output dombindings_gen.cpp \ - --makedepend-output $(MDDEPDIR)/dombindingsgen.pp \ - $(srcdir)/dombindings.conf -@@ -208,7 +208,7 @@ DictionaryHelpers.h: $(srcdir)/dictionary_helper_gen.conf \ - -I$(topsrcdir)/xpcom/idl-parser \ - $(srcdir)/dictionary_helper_gen.py \ - -I $(DEPTH)/dist/idl \ -- --cachedir=$(DEPTH)/xpcom/idl-parser \ -+ --cachedir=$(DEPTH)/xpcom/idl-parser/cache \ - --header-output DictionaryHelpers.h \ - $(srcdir)/dictionary_helper_gen.conf - -@@ -223,7 +223,7 @@ DictionaryHelpers.cpp: $(srcdir)/dictionary_helper_gen.conf \ - -I$(topsrcdir)/xpcom/idl-parser \ - $(srcdir)/dictionary_helper_gen.py \ - -I $(DEPTH)/dist/idl \ -- --cachedir=$(DEPTH)/xpcom/idl-parser \ -+ --cachedir=$(DEPTH)/xpcom/idl-parser/cache \ - --header-output DictionaryHelpers.h \ - --stub-output DictionaryHelpers.cpp \ - --makedepend-output $(MDDEPDIR)/dictionary_helper_gen.pp \ -diff --git a/xpcom/idl-parser/Makefile.in b/xpcom/idl-parser/Makefile.in -index f5ff178..97390c5 100644 ---- a/xpcom/idl-parser/Makefile.in -+++ b/xpcom/idl-parser/Makefile.in -@@ -61,7 +61,7 @@ export:: $(PARSER_SRCS) $(PLY_PROGS) - $(PYTHON_PATH) \ - -I$(topsrcdir)/other-licenses/ply \ - -I$(topsrcdir)/xpcom/idl-parser \ -- $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=. --regen -+ $(topsrcdir)/xpcom/idl-parser/header.py --cachedir=$(DEPTH)/xpcom/idl-parser/cache --regen - - check:: - $(PYTHON_PATH) \ -diff --git a/xpcom/typelib/xpidl/Makefile.in b/xpcom/typelib/xpidl/Makefile.in -index bcae13a..4edda5d 100644 ---- a/xpcom/typelib/xpidl/Makefile.in -+++ b/xpcom/typelib/xpidl/Makefile.in -@@ -48,8 +48,8 @@ SDK_BINARY = \ - $(topsrcdir)/xpcom/idl-parser/xpidl.py \ - $(topsrcdir)/xpcom/idl-parser/header.py \ - $(topsrcdir)/xpcom/idl-parser/typelib.py \ -- $(DEPTH)/xpcom/idl-parser/xpidllex.py \ -- $(DEPTH)/xpcom/idl-parser/xpidlyacc.py \ -+ $(DEPTH)/xpcom/idl-parser/cache/xpidllex.py \ -+ $(DEPTH)/xpcom/idl-parser/cache/xpidlyacc.py \ - $(NULL) - - ifndef MOZ_SYSTEM_PLY --- -1.7.5.4 - diff --git a/www-client/torbrowser/files/torbrowser-patches/0020-Fix-internal-compile-error-for-sub-ancient-GCCs.patch b/www-client/torbrowser/files/torbrowser-patches/0020-Fix-internal-compile-error-for-sub-ancient-GCCs.patch deleted file mode 100644 index d66f79a53c9f..000000000000 --- a/www-client/torbrowser/files/torbrowser-patches/0020-Fix-internal-compile-error-for-sub-ancient-GCCs.patch +++ /dev/null @@ -1,45 +0,0 @@ -From fb210909f6fd3a4a5253101d44edc8c884bf6c04 Mon Sep 17 00:00:00 2001 -From: Mike Perry <mikeperry-git@torproject.org> -Date: Wed, 20 Jun 2012 15:26:11 -0700 -Subject: [PATCH 20/20] Fix 'internal compile error' for sub-ancient GCCs. - -Also fix a related null pointer deref. ---- - netwerk/protocol/http/HttpChannelParent.cpp | 13 ++++++++++--- - 1 files changed, 10 insertions(+), 3 deletions(-) - -diff --git a/netwerk/protocol/http/HttpChannelParent.cpp b/netwerk/protocol/http/HttpChannelParent.cpp -index c0d2fff..982c4e0 100644 ---- a/netwerk/protocol/http/HttpChannelParent.cpp -+++ b/netwerk/protocol/http/HttpChannelParent.cpp -@@ -333,8 +333,13 @@ HttpChannelParent::RecvUpdateAssociatedContentSecurity(const PRInt32& high, - - // Bug 621446 investigation, we don't want conditional PR_Aborts bellow to be - // merged to a single address. --#pragma warning(disable : 4068) -+// Compiling with a version of GCC <= 4.4 fails with an internal compiler -+// error. -+#if !defined(__GNUC__) || \ -+ (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) - #pragma GCC optimize ("O0") -+#pragma warning(disable : 4068) -+#endif - - bool - HttpChannelParent::RecvRedirect2Verify(const nsresult& result, -@@ -369,8 +374,10 @@ HttpChannelParent::RecvRedirect2Verify(const nsresult& result, - - mReceivedRedirect2Verify = true; - -- mRedirectCallback->OnRedirectVerifyCallback(result); -- mRedirectCallback = nsnull; -+ if (mRedirectCallback) { -+ mRedirectCallback->OnRedirectVerifyCallback(result); -+ mRedirectCallback = nsnull; -+ } - return true; - } - --- -1.7.5.4 - diff --git a/www-client/torbrowser/metadata.xml b/www-client/torbrowser/metadata.xml deleted file mode 100644 index f4670e5b3478..000000000000 --- a/www-client/torbrowser/metadata.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <herd>mozilla</herd>
- <maintainer>
- <email>hasufell@gentoo.org</email>
- <name>Julian Ospald</name>
- <description>Maintainer. Assign bugs to him</description>
- </maintainer>
- <maintainer>
- <email>poncho@spahan.ch</email>
- <name>Poncho</name>
- <description>Proxy maintainer. CC him on bugs</description>
- </maintainer>
- <use>
- <flag name="bindist">Disable official Firefox branding (icons, name) which
- are not binary-redistributable according to upstream.</flag>
- <flag name="custom-optimization">Fine-tune custom compiler
- optimizations, setting this is not recommended.</flag>
- <flag name="crashreporter">Enable crashreporter for mozilla upstream, debugging
- symbols are not required for reporting crashes.</flag>
- <flag name="ipc">Use inter-process communication between tabs and plugins.
- Allows for greater stability in case of plugin crashes</flag>
- <flag name="pgo">Add support for profile-guided optimization using gcc-4.5,
- for faster binaries. This option will double the compile time.</flag>
- <flag name="system-sqlite">Use the system-wide <pkg>dev-db/sqlite</pkg>
- installation with secure-delete enabled</flag>
- <flag name="torprofile">Install pre-configured profile folder by upstream into
- "/usr/share/torbrowser/profile" (you still have to copy it in place)</flag>
- <flag name="webm">Use system <pkg>media-libs/libvpx</pkg> for HTML5 WebM
- video support.</flag>
- </use>
-</pkgmetadata>
diff --git a/www-client/torbrowser/torbrowser-13.0-r1.ebuild b/www-client/torbrowser/torbrowser-13.0-r1.ebuild deleted file mode 100644 index cd1687ca6a4f..000000000000 --- a/www-client/torbrowser/torbrowser-13.0-r1.ebuild +++ /dev/null @@ -1,306 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/www-client/torbrowser/torbrowser-13.0-r1.ebuild,v 1.2 2012/07/14 19:02:53 hasufell Exp $ - -EAPI="3" -VIRTUALX_REQUIRED="pgo" -WANT_AUTOCONF="2.1" -MOZ_ESR="" - -MY_PN="firefox" -MOZ_P="${MY_PN}-${PV}" - -if [[ ${MOZ_ESR} == 1 ]]; then - # ESR releases have slightly version numbers - MOZ_P="${MOZ_P}esr" -fi - -# Patch version -PATCH="${MY_PN}-13.0-patches-0.2" -# Upstream ftp release URI that's used by mozlinguas.eclass -# We don't use the http mirror because it deletes old tarballs. -MOZ_FTP_URI="ftp://ftp.mozilla.org/pub/${MY_PN}/releases/" - -inherit check-reqs flag-o-matic toolchain-funcs eutils gnome2-utils mozconfig-3 multilib pax-utils autotools python virtualx - -DESCRIPTION="Torbrowser without vidalia or tor" -HOMEPAGE="https://www.torproject.org/projects/torbrowser.html.en" - -# may work on other arches, but untested -KEYWORDS="~amd64 ~x86" -SLOT="0" -# BSD license applies to torproject-related code like the patches -# icons are under CCPL-Attribution-3.0 -LICENSE="|| ( MPL-1.1 GPL-2 LGPL-2.1 ) - BSD - CCPL-Attribution-3.0" -IUSE="bindist +crashreporter +ipc pgo selinux system-sqlite +torprofile +webm" - -SRC_URI="${SRC_URI} - http://dev.gentoo.org/~anarchy/mozilla/patchsets/${PATCH}.tar.xz - ${MOZ_FTP_URI}/${PV}/source/${MOZ_P}.source.tar.bz2 - http://gitweb.torproject.org/${PN}.git/blob_plain/HEAD:/build-scripts/branding/default256.png -> torbrowser256.png" - -ASM_DEPEND=">=dev-lang/yasm-1.1" - -# Mesa 7.10 needed for WebGL + bugfixes -RDEPEND=" - >=sys-devel/binutils-2.16.1 - >=dev-libs/nss-3.13.5 - >=dev-libs/nspr-4.9.1 - >=dev-libs/glib-2.26:2 - >=media-libs/mesa-7.10 - >=media-libs/libpng-1.5.9[apng] - virtual/libffi - system-sqlite? ( >=dev-db/sqlite-3.7.10[fts3,secure-delete,threadsafe,unlock-notify,debug=] ) - webm? ( >=media-libs/libvpx-1.0.0 - media-libs/alsa-lib ) - crashreporter? ( net-misc/curl ) - selinux? ( sec-policy/selinux-mozilla )" -# We don't use PYTHON_DEPEND/PYTHON_USE_WITH for some silly reason -DEPEND="${RDEPEND} - virtual/pkgconfig - pgo? ( - =dev-lang/python-2*[sqlite] - >=sys-devel/gcc-4.5 ) - webm? ( x86? ( ${ASM_DEPEND} ) - amd64? ( ${ASM_DEPEND} ) - virtual/opengl )" -PDEPEND="torprofile? ( www-misc/torbrowser-profile )" - -if [[ ${MOZ_ESR} == 1 ]]; then - S="${WORKDIR}/mozilla-esr${PV%%.*}" -else - S="${WORKDIR}/mozilla-release" -fi - -QA_PRESTRIPPED="usr/$(get_libdir)/${PN}/${MY_PN}/firefox" - -pkg_setup() { - moz_pkgsetup - - # Avoid PGO profiling problems due to enviroment leakage - # These should *always* be cleaned up anyway - unset DBUS_SESSION_BUS_ADDRESS \ - DISPLAY \ - ORBIT_SOCKETDIR \ - SESSION_MANAGER \ - XDG_SESSION_COOKIE \ - XAUTHORITY - - if ! use bindist; then - einfo - elog "You are enabling official branding. You may not redistribute this build" - elog "to any users on your network or the internet. Doing so puts yourself into" - elog "a legal problem with Mozilla Foundation" - elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" - fi - - if use pgo; then - einfo - ewarn "You will do a double build for profile guided optimization." - ewarn "This will result in your build taking at least twice as long as before." - fi - - # Ensure we have enough disk space to compile - if use pgo || use debug || use test ; then - CHECKREQS_DISK_BUILD="8G" - else - CHECKREQS_DISK_BUILD="4G" - fi - check-reqs_pkg_setup -} - -src_prepare() { - # Apply our patches - EPATCH_EXCLUDE="6012_fix_shlibsign.patch 6013_fix_abort_declaration.patch" \ - EPATCH_SUFFIX="patch" \ - EPATCH_FORCE="yes" \ - epatch "${WORKDIR}/firefox" - - # Torbrowser patches for firefox 10.0.5esr, check regularly/for every version-bump - # https://gitweb.torproject.org/torbrowser.git/history/HEAD:/src/current-patches - # exclude vidalia patch, cause we don't force the user to use it - EPATCH_EXCLUDE="0015-Make-Tor-Browser-exit-when-not-launched-from-Vidalia.patch" \ - EPATCH_SUFFIX="patch" \ - EPATCH_FORCE="yes" \ - epatch "${FILESDIR}/${PN}-patches" - - # Allow user to apply any additional patches without modifing ebuild - epatch_user - - # Enable gnomebreakpad - if use debug ; then - sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ - "${S}"/build/unix/run-mozilla.sh || die "sed failed!" - fi - - # Disable gnomevfs extension - sed -i -e "s:gnomevfs::" "${S}/"browser/confvars.sh \ - -e "s:gnomevfs::" "${S}/"xulrunner/confvars.sh \ - || die "Failed to remove gnomevfs extension" - - # Ensure that plugins dir is enabled as default - # and is different from firefox-location - sed -i -e "s:/usr/lib/mozilla/plugins:/usr/$(get_libdir)/${PN}/${MY_PN}/plugins:" \ - "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path!" - - # Fix sandbox violations during make clean, bug 372817 - sed -e "s:\(/no-such-file\):${T}\1:g" \ - -i "${S}"/config/rules.mk \ - -i "${S}"/js/src/config/rules.mk \ - -i "${S}"/nsprpub/configure{.in,} \ - || die - - #Fix compilation with curl-7.21.7 bug 376027 - sed -e '/#include <curl\/types.h>/d' \ - -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/http_upload.cc \ - -i "${S}"/toolkit/crashreporter/google-breakpad/src/common/linux/libcurl_wrapper.cc \ - -i "${S}"/config/system-headers \ - -i "${S}"/js/src/config/system-headers || die "Sed failed" - - eautoreconf -} - -src_configure() { - MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}/${MY_PN}" - MEXTENSIONS="default" - - #################################### - # - # mozconfig, CFLAGS and CXXFLAGS setup - # - #################################### - - mozconfig_init - mozconfig_config - - mozconfig_annotate '' --prefix="${EPREFIX}"/usr - mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir)/${PN} - mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" - mozconfig_annotate '' --disable-gconf - mozconfig_annotate '' --disable-mailnews - mozconfig_annotate '' --enable-canvas - mozconfig_annotate '' --enable-safe-browsing - mozconfig_annotate '' --with-system-png - mozconfig_annotate '' --enable-system-ffi - - # Other ff-specific settings - mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} - mozconfig_annotate '' --target="${CTARGET:-${CHOST}}" - - mozconfig_use_enable system-sqlite - - # Allow for a proper pgo build - if use pgo; then - echo "mk_add_options PROFILE_GEN_SCRIPT='\$(PYTHON) \$(OBJDIR)/_profile/pgo/profileserver.py'" >> "${S}"/.mozconfig - fi - - # Finalize and report settings - mozconfig_final - - if [[ $(gcc-major-version) -lt 4 ]]; then - append-cxxflags -fno-stack-protector - elif [[ $(gcc-major-version) -gt 4 || $(gcc-minor-version) -gt 3 ]]; then - if use amd64 || use x86; then - append-flags -mno-avx - fi - fi -} - -src_compile() { - if use pgo; then - addpredict /root - addpredict /etc/gconf - # Reset and cleanup environment variables used by GNOME/XDG - gnome2_environment_reset - - # Firefox tries to use dri stuff when it's run, see bug 380283 - shopt -s nullglob - cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') - if test -n "${cards}"; then - # FOSS drivers are fine - addpredict "${cards}" - else - cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g') - if test -n "${cards}"; then - # Binary drivers seem to cause access violations anyway, so - # let's use indirect rendering so that the device files aren't - # touched at all. See bug 394715. - export LIBGL_ALWAYS_INDIRECT=1 - addpredict "${cards}" - fi - fi - shopt -u nullglob - - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \ - MOZ_MAKE_FLAGS="${MAKEOPTS}" \ - Xemake -f client.mk profiledbuild || die "Xemake failed" - else - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LD="$(tc-getLD)" \ - MOZ_MAKE_FLAGS="${MAKEOPTS}" \ - emake -f client.mk || die "emake failed" - fi -} - -src_install() { - MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}/${MY_PN}" - - # MOZ_BUILD_ROOT, and hence OBJ_DIR change depending on arch, compiler, pgo, etc. - local obj_dir="$(echo */config.log)" - obj_dir="${obj_dir%/*}" - cd "${S}/${obj_dir}" - - # Pax mark xpcshell for hardened support, only used for startupcache creation. - pax-mark m "${S}/${obj_dir}"/dist/bin/xpcshell - - MOZ_MAKE_FLAGS="${MAKEOPTS}" \ - emake DESTDIR="${D}" install || die "emake install failed" - - # remove default symlink in /usr/bin, because we add a proper wrapper-script later - rm "${ED}"/usr/bin/${MY_PN} || die "Failed to remove binary-symlink" - # we dont want development stuff for this kind of build, might as well - # conflict with other firefox-builds - rm -rf "${ED}"/usr/include "${ED}${MOZILLA_FIVE_HOME}"/{idl,include,lib,sdk} || \ - die "Failed to remove sdk and headers" - - # Required in order to use plugins and even run firefox on hardened. - pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container} - - # Plugins dir - keepdir /usr/$(get_libdir)/${PN}/${MY_PN}/plugins - - # create wrapper to start torbrowser - make_wrapper ${PN} "/usr/$(get_libdir)/${PN}/${MY_PN}/${MY_PN} -no-remote -profile ~/.${PN}/profile" - - newicon -s 256 "${DISTDIR}"/${PN}256.png ${PN}.png - make_desktop_entry ${PN} "Torbrowser" ${PN} "Network;WebBrowser" -} - -pkg_preinst() { - gnome2_icon_savelist -} - -pkg_postinst() { - ewarn "This patched firefox build is _NOT_ recommended by TOR upstream but uses" - ewarn "the exact same patches (excluding Vidalia-patch). Use this only if you know" - ewarn "what you are doing!" - einfo "" - if use torprofile ; then - elog "Copy the folder contents from /usr/share/${PN}/profile (installed by" - elog "www-misc/torbrowser-profile) into ~/.${PN}/profile and run '${PN}'." - einfo - elog "This profile folder includes pre-configuration recommended by upstream," - elog "as well as the extensions Torbutton, NoScript and HTTPS-Everywhere." - elog "If you want to start from scratch just create the directories '~/.${PN}/profile'." - fi - einfo - elog "The update check when you first start ${PN} does not recognize this version." - einfo - - gnome2_icon_cache_update -} - -pkg_postrm() { - gnome2_icon_cache_update -} |