summaryrefslogtreecommitdiff
path: root/www-client/firefox/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-04-12 03:41:30 +0100
commit623ee73d661e5ed8475cb264511f683407d87365 (patch)
tree993eb27c93ec7a2d2d19550300d888fc1fed9e69 /www-client/firefox/files
parentceeeb463cc1eef97fd62eaee8bf2196ba04bc384 (diff)
gentoo Easter resync : 12.04.2020
Diffstat (limited to 'www-client/firefox/files')
-rw-r--r--www-client/firefox/files/firefox-68.2.0-rust-1.39+.patch170
-rw-r--r--www-client/firefox/files/firefox-71.0-bug1602358-fix-older-builds-with-newer-cbindgen.patch50
-rw-r--r--www-client/firefox/files/firefox-74.0-bug1607052-font-selection-regression.patch281
-rw-r--r--www-client/firefox/files/firefox-wayland.sh7
-rw-r--r--www-client/firefox/files/firefox-x11.sh7
-rw-r--r--www-client/firefox/files/firefox.sh128
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js-217
-rw-r--r--www-client/firefox/files/gentoo-default-prefs.js-31
-rw-r--r--www-client/firefox/files/icon/firefox-r1.desktop230
9 files changed, 654 insertions, 237 deletions
diff --git a/www-client/firefox/files/firefox-68.2.0-rust-1.39+.patch b/www-client/firefox/files/firefox-68.2.0-rust-1.39+.patch
deleted file mode 100644
index bfb71cbb7887..000000000000
--- a/www-client/firefox/files/firefox-68.2.0-rust-1.39+.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-Based on https://github.com/rust-lang/rust/issues/64710
-
---- a/third_party/rust/bindgen/.cargo-checksum.json
-+++ b/third_party/rust/bindgen/.cargo-checksum.json
-@@ -1 +1 @@
--{"files":{"Cargo.toml":"9af635e7bad9021a49742a312faf6178b757dbd48aabc998931d6f491f14c179","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"5a1f556c6a57c0a6ccc65e19c27718e0f4b32381a8efcc80f6601b33c58c5d59","build.rs":"a9f6915c54d75f357ce32f96327bf4df53dc81a505b70831978f9dac6f43841d","src/callbacks.rs":"b24d7982332c6a35928f134184ddf4072fe4545a45546b97b9b0e0c1fbb77c08","src/clang.rs":"e9203eb5a1b432efebafcd011896e35e8c9145037bf99e7bb3709dc1b8e8e783","src/codegen/bitfield_unit.rs":"88b0604322dc449fc9284850eadc1f5d14b42fa747d4258bae0b6b9535f52dfd","src/codegen/bitfield_unit_tests.rs":"2073ac6a36e0bc9afaef5b1207966817c8fb7a1a9f6368c3b1b8f79822efbfba","src/codegen/error.rs":"2613af1d833377fd4a70719f4a09951d9d45dc9227827b9a2a938a1bcaaea2dd","src/codegen/helpers.rs":"fbd23e68dd51ccaddeb9761394d5df2db49baded0e2dccf6bbc52a2d6de502eb","src/codegen/impl_debug.rs":"f82969461d522fb758eca552ceaf189122a404cbb47fcc16008bfe52fc62aefa","src/codegen/impl_partialeq.rs":"d40d9ee2849c4d3d557b033c4d3af5e6de4a44347f67c0f016198086338811af","src/codegen/mod.rs":"238d989e13b7556e5d120a2bfe85b43332fba56cbe8df886d4c32e650fff1247","src/codegen/struct_layout.rs":"3fa5524aff82365ce292b0cc85080514c85a6dbd31bce90f001773b995dda28e","src/extra_assertions.rs":"494534bd4f18b80d89b180c8a93733e6617edcf7deac413e9a73fd6e7bc9ced7","src/features.rs":"c5fd7149f4a3b41fd4f89ade08505170942f4bc791bcb6a34fdddd3ae61856f8","src/ir/analysis/derive.rs":"325d4c1c1e6194e743f42a2316f1501b0ef852fe309f2e9cac3434825ad235f0","src/ir/analysis/has_destructor.rs":"63644f479738df35e531d3324ff892614083c3656e0747aa34d9f20dada878ec","src/ir/analysis/has_float.rs":"76162a309e4285a806755a08c687a3e7bc894a100a63da4e88584035e215b11d","src/ir/analysis/has_type_param_in_array.rs":"fdbc0af28a144c88ea2de83e6e6da5e1ffb40e3dd63fd7a708095d085bb06f94","src/ir/analysis/has_vtable.rs":"5788372d27bdbaaf0454bc17be31a5480918bc41a8a1c4832e8c61185c07f9cd","src/ir/analysis/mod.rs":"1f218e15c19f6666512908abc853fa7ff9ca5d0fafd94f026d9e4b0ce287ec3c","src/ir/analysis/sizedness.rs":"8dc10043d872e68e660ef96edca4d9733f95be45cdad4893462fa929b335014f","src/ir/analysis/template_params.rs":"6312c008bbc80f50e72a766756c8daddea0b6eeb31ec924b83a231df931e170e","src/ir/annotations.rs":"39a5ab19f4d5dfa617577e4a0d0d2b67b5369d480c7cca4b14d172458c9843f0","src/ir/comment.rs":"c48abe01c5af0f09f583a89f1394bc6c161b40f6c8f0f600bbfe3c907b47969b","src/ir/comp.rs":"ca439407faefbe3a198246f0a1dbdf4e40307e45eaaad317e85d1aab37bb31fc","src/ir/context.rs":"599226eb04d337a1b1b13af91af91bdb02dbd5f26f274cbc0ebc4489eb144fc0","src/ir/derive.rs":"34f9aa76b6c9c05136bb69dcd6455397faef571a567254d2c541d50a962994db","src/ir/dot.rs":"95ed2968fc3239d87892e9f1edf1ed6dd18630d949564961765967ea1d16960c","src/ir/enum_ty.rs":"9cc242d6b3c1866665594e8b306860ee39c0ea42d22198d46b7fded473fe3e84","src/ir/function.rs":"2d41d9df19f42b0c383f338be4c026c005853a8d1caf5f3e5a2f3a8dad202232","src/ir/int.rs":"07e0c7dbd2dd977177fae3acd2a14adf271c6cf9ff4b57cddc11d50734fd4801","src/ir/item.rs":"3bcdb69b793350e5744aec3577cdbb1e5068ece5220c38763cecd82dfb5e8f03","src/ir/item_kind.rs":"dbeae8c4fd0e5c9485d325aea040e056a1f2cd6d43fc927dee8fe1c0c59a7197","src/ir/layout.rs":"d49582081f5f86f7595afbe4845f38fb3b969a840b568f4a49b265e7d790bb5b","src/ir/mod.rs":"2eae90f207fad2e45957ec9287064992a419e3fc916aba84faff2ea25cbeb5ee","src/ir/module.rs":"c4d90bf38fe3672e01923734ccbdb7951ea929949d5f413a9c2aee12395a5094","src/ir/objc.rs":"758aa955a0c5d6ad82606c88a1f4cd1d93e666b71e82d43b18b1aaae96cf888a","src/ir/template.rs":"c0f8570b927dfd6a421fc4ce3094ec837a3ed936445225dbfac961e8e0842ae5","src/ir/traversal.rs":"ea751379a5aec02f93f8d2c61e18232776b1f000dbeae64b9a7195ba21a19dd6","src/ir/ty.rs":"952fb04cd6a71a2bca5c509aecacb42a1de0cae75824941541a38dc589f0993a","src/ir/var.rs":"8bdafb6d02f2c55ae11c28d88b19fb7a65ba8466da12ff039ae4c16c790b291e","src/lib.rs":"d5c8b404c515d30fc2d78b28eb84cff6b256f1f1e2dbd6aca280529bb2af6879","src/log_stubs.rs":"6dfdd908b7c6453da416cf232893768f9480e551ca4add0858ef88bf71ee6ceb","src/main.rs":"e519053bcdde6bc88f60f955246a02d53b3db1cc5ccd1612e6675b790b7460b0","src/options.rs":"041d635c8f6712ca32676a68f06d0245faed5577d9513786e058540ea2a69a7f","src/parse.rs":"be7d13cc84fae79ec7b3aa9e77063fa475a48d74a854423e2c72d75006a25202","src/regex_set.rs":"5cb72fc3714c0d79e9e942d003349c0775fafd7cd0c9603c65f5261883bbf9cf","src/time.rs":"3b763e6fee51d0eb01228dfe28bc28a9f692aff73b2a7b90a030902e0238fca6"},"package":"6bd7710ac8399ae1ebe1e3aac7c9047c4f39f2c94b33c997f482f49e96991f7c"}
-\ No newline at end of file
-+{"files":{"Cargo.toml":"9af635e7bad9021a49742a312faf6178b757dbd48aabc998931d6f491f14c179","LICENSE":"c23953d9deb0a3312dbeaf6c128a657f3591acee45067612fa68405eaa4525db","README.md":"5a1f556c6a57c0a6ccc65e19c27718e0f4b32381a8efcc80f6601b33c58c5d59","build.rs":"a9f6915c54d75f357ce32f96327bf4df53dc81a505b70831978f9dac6f43841d","src/callbacks.rs":"b24d7982332c6a35928f134184ddf4072fe4545a45546b97b9b0e0c1fbb77c08","src/clang.rs":"e9203eb5a1b432efebafcd011896e35e8c9145037bf99e7bb3709dc1b8e8e783","src/codegen/bitfield_unit.rs":"88b0604322dc449fc9284850eadc1f5d14b42fa747d4258bae0b6b9535f52dfd","src/codegen/bitfield_unit_tests.rs":"2073ac6a36e0bc9afaef5b1207966817c8fb7a1a9f6368c3b1b8f79822efbfba","src/codegen/error.rs":"2613af1d833377fd4a70719f4a09951d9d45dc9227827b9a2a938a1bcaaea2dd","src/codegen/helpers.rs":"fbd23e68dd51ccaddeb9761394d5df2db49baded0e2dccf6bbc52a2d6de502eb","src/codegen/impl_debug.rs":"f82969461d522fb758eca552ceaf189122a404cbb47fcc16008bfe52fc62aefa","src/codegen/impl_partialeq.rs":"d40d9ee2849c4d3d557b033c4d3af5e6de4a44347f67c0f016198086338811af","src/codegen/mod.rs":"238d989e13b7556e5d120a2bfe85b43332fba56cbe8df886d4c32e650fff1247","src/codegen/struct_layout.rs":"3fa5524aff82365ce292b0cc85080514c85a6dbd31bce90f001773b995dda28e","src/extra_assertions.rs":"494534bd4f18b80d89b180c8a93733e6617edcf7deac413e9a73fd6e7bc9ced7","src/features.rs":"c5fd7149f4a3b41fd4f89ade08505170942f4bc791bcb6a34fdddd3ae61856f8","src/ir/analysis/derive.rs":"325d4c1c1e6194e743f42a2316f1501b0ef852fe309f2e9cac3434825ad235f0","src/ir/analysis/has_destructor.rs":"63644f479738df35e531d3324ff892614083c3656e0747aa34d9f20dada878ec","src/ir/analysis/has_float.rs":"76162a309e4285a806755a08c687a3e7bc894a100a63da4e88584035e215b11d","src/ir/analysis/has_type_param_in_array.rs":"fdbc0af28a144c88ea2de83e6e6da5e1ffb40e3dd63fd7a708095d085bb06f94","src/ir/analysis/has_vtable.rs":"8c92a52c0f859c7bec7bfbc36b9d18f904baab0c8c9dc1b3e7af34de1a0b0da4","src/ir/analysis/mod.rs":"1f218e15c19f6666512908abc853fa7ff9ca5d0fafd94f026d9e4b0ce287ec3c","src/ir/analysis/sizedness.rs":"71f1a37f75b971ea5b0d8457473cc410947dbf706cb6d2c0338916910b78a675","src/ir/analysis/template_params.rs":"6312c008bbc80f50e72a766756c8daddea0b6eeb31ec924b83a231df931e170e","src/ir/annotations.rs":"39a5ab19f4d5dfa617577e4a0d0d2b67b5369d480c7cca4b14d172458c9843f0","src/ir/comment.rs":"c48abe01c5af0f09f583a89f1394bc6c161b40f6c8f0f600bbfe3c907b47969b","src/ir/comp.rs":"ca439407faefbe3a198246f0a1dbdf4e40307e45eaaad317e85d1aab37bb31fc","src/ir/context.rs":"599226eb04d337a1b1b13af91af91bdb02dbd5f26f274cbc0ebc4489eb144fc0","src/ir/derive.rs":"e5581852eec87918901a129284b4965aefc8a19394187a8095779a084f28fabe","src/ir/dot.rs":"95ed2968fc3239d87892e9f1edf1ed6dd18630d949564961765967ea1d16960c","src/ir/enum_ty.rs":"9cc242d6b3c1866665594e8b306860ee39c0ea42d22198d46b7fded473fe3e84","src/ir/function.rs":"2d41d9df19f42b0c383f338be4c026c005853a8d1caf5f3e5a2f3a8dad202232","src/ir/int.rs":"07e0c7dbd2dd977177fae3acd2a14adf271c6cf9ff4b57cddc11d50734fd4801","src/ir/item.rs":"3bcdb69b793350e5744aec3577cdbb1e5068ece5220c38763cecd82dfb5e8f03","src/ir/item_kind.rs":"dbeae8c4fd0e5c9485d325aea040e056a1f2cd6d43fc927dee8fe1c0c59a7197","src/ir/layout.rs":"d49582081f5f86f7595afbe4845f38fb3b969a840b568f4a49b265e7d790bb5b","src/ir/mod.rs":"2eae90f207fad2e45957ec9287064992a419e3fc916aba84faff2ea25cbeb5ee","src/ir/module.rs":"c4d90bf38fe3672e01923734ccbdb7951ea929949d5f413a9c2aee12395a5094","src/ir/objc.rs":"758aa955a0c5d6ad82606c88a1f4cd1d93e666b71e82d43b18b1aaae96cf888a","src/ir/template.rs":"c0f8570b927dfd6a421fc4ce3094ec837a3ed936445225dbfac961e8e0842ae5","src/ir/traversal.rs":"ea751379a5aec02f93f8d2c61e18232776b1f000dbeae64b9a7195ba21a19dd6","src/ir/ty.rs":"952fb04cd6a71a2bca5c509aecacb42a1de0cae75824941541a38dc589f0993a","src/ir/var.rs":"8bdafb6d02f2c55ae11c28d88b19fb7a65ba8466da12ff039ae4c16c790b291e","src/lib.rs":"d5c8b404c515d30fc2d78b28eb84cff6b256f1f1e2dbd6aca280529bb2af6879","src/log_stubs.rs":"6dfdd908b7c6453da416cf232893768f9480e551ca4add0858ef88bf71ee6ceb","src/main.rs":"e519053bcdde6bc88f60f955246a02d53b3db1cc5ccd1612e6675b790b7460b0","src/options.rs":"041d635c8f6712ca32676a68f06d0245faed5577d9513786e058540ea2a69a7f","src/parse.rs":"be7d13cc84fae79ec7b3aa9e77063fa475a48d74a854423e2c72d75006a25202","src/regex_set.rs":"5cb72fc3714c0d79e9e942d003349c0775fafd7cd0c9603c65f5261883bbf9cf","src/time.rs":"3b763e6fee51d0eb01228dfe28bc28a9f692aff73b2a7b90a030902e0238fca6"},"package":"6bd7710ac8399ae1ebe1e3aac7c9047c4f39f2c94b33c997f482f49e96991f7c"}
-\ No newline at end of file
---- a/third_party/rust/bindgen/src/ir/analysis/has_vtable.rs
-+++ b/third_party/rust/bindgen/src/ir/analysis/has_vtable.rs
-@@ -9,17 +9,17 @@ use std::ops;
- use {HashMap, Entry};
-
- /// The result of the `HasVtableAnalysis` for an individual item.
--#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
-+#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
- pub enum HasVtableResult {
-- /// The item has a vtable, but the actual vtable pointer is in a base
-- /// member.
-- BaseHasVtable,
-+ /// The item does not have a vtable pointer.
-+ No,
-
- /// The item has a vtable and the actual vtable pointer is within this item.
- SelfHasVtable,
-
-- /// The item does not have a vtable pointer.
-- No
-+ /// The item has a vtable, but the actual vtable pointer is in a base
-+ /// member.
-+ BaseHasVtable,
- }
-
- impl Default for HasVtableResult {
-@@ -28,21 +28,6 @@ impl Default for HasVtableResult {
- }
- }
-
--impl cmp::PartialOrd for HasVtableResult {
-- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
-- use self::HasVtableResult::*;
--
-- match (*self, *rhs) {
-- (x, y) if x == y => Some(cmp::Ordering::Equal),
-- (BaseHasVtable, _) => Some(cmp::Ordering::Greater),
-- (_, BaseHasVtable) => Some(cmp::Ordering::Less),
-- (SelfHasVtable, _) => Some(cmp::Ordering::Greater),
-- (_, SelfHasVtable) => Some(cmp::Ordering::Less),
-- _ => unreachable!(),
-- }
-- }
--}
--
- impl HasVtableResult {
- /// Take the least upper bound of `self` and `rhs`.
- pub fn join(self, rhs: Self) -> Self {
---- a/third_party/rust/bindgen/src/ir/analysis/sizedness.rs
-+++ b/third_party/rust/bindgen/src/ir/analysis/sizedness.rs
-@@ -22,13 +22,14 @@ use {HashMap, Entry};
- ///
- /// We initially assume that all types are `ZeroSized` and then update our
- /// understanding as we learn more about each type.
--#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord)]
-+#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord)]
- pub enum SizednessResult {
-- /// Has some size that is known to be greater than zero. That doesn't mean
-- /// it has a static size, but it is not zero sized for sure. In other words,
-- /// it might contain an incomplete array or some other dynamically sized
-- /// type.
-- NonZeroSized,
-+ /// The type is zero-sized.
-+ ///
-+ /// This means that if it is a C++ type, and is not being used as a base
-+ /// member, then we must add an `_address` byte to enforce the
-+ /// unique-address-per-distinct-object-instance rule.
-+ ZeroSized,
-
- /// Whether this type is zero-sized or not depends on whether a type
- /// parameter is zero-sized or not.
-@@ -52,12 +53,11 @@ pub enum SizednessResult {
- /// https://github.com/rust-lang-nursery/rust-bindgen/issues/586
- DependsOnTypeParam,
-
-- /// The type is zero-sized.
-- ///
-- /// This means that if it is a C++ type, and is not being used as a base
-- /// member, then we must add an `_address` byte to enforce the
-- /// unique-address-per-distinct-object-instance rule.
-- ZeroSized,
-+ /// Has some size that is known to be greater than zero. That doesn't mean
-+ /// it has a static size, but it is not zero sized for sure. In other words,
-+ /// it might contain an incomplete array or some other dynamically sized
-+ /// type.
-+ NonZeroSized,
- }
-
- impl Default for SizednessResult {
-@@ -66,21 +66,6 @@ impl Default for SizednessResult {
- }
- }
-
--impl cmp::PartialOrd for SizednessResult {
-- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
-- use self::SizednessResult::*;
--
-- match (*self, *rhs) {
-- (x, y) if x == y => Some(cmp::Ordering::Equal),
-- (NonZeroSized, _) => Some(cmp::Ordering::Greater),
-- (_, NonZeroSized) => Some(cmp::Ordering::Less),
-- (DependsOnTypeParam, _) => Some(cmp::Ordering::Greater),
-- (_, DependsOnTypeParam) => Some(cmp::Ordering::Less),
-- _ => unreachable!(),
-- }
-- }
--}
--
- impl SizednessResult {
- /// Take the least upper bound of `self` and `rhs`.
- pub fn join(self, rhs: Self) -> Self {
---- a/third_party/rust/bindgen/src/ir/derive.rs
-+++ b/third_party/rust/bindgen/src/ir/derive.rs
-@@ -92,10 +92,10 @@ pub trait CanDeriveOrd {
- ///
- /// Initially we assume that we can derive trait for all types and then
- /// update our understanding as we learn more about each type.
--#[derive(Debug, Copy, Clone, PartialEq, Eq, Ord)]
-+#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
- pub enum CanDerive {
-- /// No, we cannot.
-- No,
-+ /// Yes, we can derive automatically.
-+ Yes,
-
- /// The only thing that stops us from automatically deriving is that
- /// array with more than maximum number of elements is used.
-@@ -103,8 +103,8 @@ pub enum CanDerive {
- /// This means we probably can "manually" implement such trait.
- Manually,
-
-- /// Yes, we can derive automatically.
-- Yes,
-+ /// No, we cannot.
-+ No,
- }
-
- impl Default for CanDerive {
-@@ -113,22 +113,6 @@ impl Default for CanDerive {
- }
- }
-
--impl cmp::PartialOrd for CanDerive {
-- fn partial_cmp(&self, rhs: &Self) -> Option<cmp::Ordering> {
-- use self::CanDerive::*;
--
-- let ordering = match (*self, *rhs) {
-- (x, y) if x == y => cmp::Ordering::Equal,
-- (No, _) => cmp::Ordering::Greater,
-- (_, No) => cmp::Ordering::Less,
-- (Manually, _) => cmp::Ordering::Greater,
-- (_, Manually) => cmp::Ordering::Less,
-- _ => unreachable!()
-- };
-- Some(ordering)
-- }
--}
--
- impl CanDerive {
- /// Take the least upper bound of `self` and `rhs`.
- pub fn join(self, rhs: Self) -> Self {
diff --git a/www-client/firefox/files/firefox-71.0-bug1602358-fix-older-builds-with-newer-cbindgen.patch b/www-client/firefox/files/firefox-71.0-bug1602358-fix-older-builds-with-newer-cbindgen.patch
deleted file mode 100644
index 117b98caf33f..000000000000
--- a/www-client/firefox/files/firefox-71.0-bug1602358-fix-older-builds-with-newer-cbindgen.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 2683aaa789cfeb8c31a2d94ed972642421768a4b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
-Date: Thu, 1 Jan 1970 00:00:00 +0000
-Subject: [PATCH] Bug 1602358 - Fix older builds with newer cbindgen. r=jwatt,
- a=jcristau
-
-This should be fine to uplift so that downstream doesn't need multiple cbindgen
-versions.
-
-Differential Revision: https://phabricator.services.mozilla.com/D56346
----
- layout/generic/WritingModes.h | 3 ++-
- servo/ports/geckolib/cbindgen.toml | 10 ----------
- 2 files changed, 2 insertions(+), 11 deletions(-)
-
-diff --git a/layout/generic/WritingModes.h b/layout/generic/WritingModes.h
-index 1a8d08b191b..0671388902f 100644
---- a/layout/generic/WritingModes.h
-+++ b/layout/generic/WritingModes.h
-@@ -518,7 +518,8 @@ class WritingMode {
- */
- void SetDirectionFromBidiLevel(uint8_t level) {
- if (IS_LEVEL_RTL(level) == IsBidiLTR()) {
-- mWritingMode ^= StyleWritingMode_RTL | StyleWritingMode_INLINE_REVERSED;
-+ mWritingMode.bits ^= static_cast<uint8_t>(
-+ (StyleWritingMode_RTL | StyleWritingMode_INLINE_REVERSED).bits);
- }
- }
-
-diff --git a/servo/ports/geckolib/cbindgen.toml b/servo/ports/geckolib/cbindgen.toml
-index bed86498ea1..8a7a9cd7998 100644
---- a/servo/ports/geckolib/cbindgen.toml
-+++ b/servo/ports/geckolib/cbindgen.toml
-@@ -616,13 +616,3 @@ renaming_overrides_prefixing = true
- // Get the layout rect, replacing auto right / bottom values for aAutoSize.
- inline nsRect ToLayoutRect(nscoord aAutoSize = NS_MAXSIZE) const;
- """
--
--"WritingMode" = """
-- StyleWritingMode operator^(const StyleWritingMode& other) const {
-- return {static_cast<decltype(bits)>(this->bits ^ other.bits)};
-- }
-- StyleWritingMode& operator^=(const StyleWritingMode& other) {
-- *this = (*this ^ other);
-- return *this;
-- }
--"""
---
-2.20.1
-
diff --git a/www-client/firefox/files/firefox-74.0-bug1607052-font-selection-regression.patch b/www-client/firefox/files/firefox-74.0-bug1607052-font-selection-regression.patch
new file mode 100644
index 000000000000..7c962f8ddc14
--- /dev/null
+++ b/www-client/firefox/files/firefox-74.0-bug1607052-font-selection-regression.patch
@@ -0,0 +1,281 @@
+commit 9d26727a4e85
+Author: Zibi Braniecki <zbraniecki@mozilla.com>
+Date: Fri Feb 21 00:39:18 2020 +0000
+
+ Bug 1607052 - Unify language identifier canonicalization in LocaleService and OSPreferences to use unic_langid, and extend GTK's RegionalPrefs reading to fallback on SystemLocales. r=jfkthame
+
+ Differential Revision: https://phabricator.services.mozilla.com/D63393
+
+ --HG--
+ extra : moz-landing-system : lando
+---
+ intl/locale/LocaleService.cpp | 53 ++-------------------------
+ intl/locale/LocaleService.h | 18 +++++++++
+ intl/locale/OSPreferences.cpp | 18 ++-------
+ intl/locale/rust/unic-langid-ffi/src/lib.rs | 33 ++++++++++++++---
+ intl/locale/tests/gtest/TestLocaleService.cpp | 23 ++++++++++++
+ intl/locale/tests/unit/test_localeService.js | 3 +-
+ 6 files changed, 77 insertions(+), 71 deletions(-)
+
+diff --git intl/locale/LocaleService.cpp intl/locale/LocaleService.cpp
+index f7e13e36ccbc7..6708c4af4b5c3 100644
+--- old/intl/locale/LocaleService.cpp
++++ new/intl/locale/LocaleService.cpp
+@@ -39,51 +39,6 @@ NS_IMPL_ISUPPORTS(LocaleService, mozILocaleService, nsIObserver,
+
+ mozilla::StaticRefPtr<LocaleService> LocaleService::sInstance;
+
+-/**
+- * This function transforms a canonical Mozilla Language Tag, into it's
+- * BCP47 compilant form.
+- *
+- * Example: "ja-JP-mac" -> "ja-JP-macos"
+- *
+- * The BCP47 form should be used for all calls to ICU/Intl APIs.
+- * The canonical form is used for all internal operations.
+- */
+-static bool SanitizeForBCP47(nsACString& aLocale, bool strict) {
+- // Currently, the only locale code we use that's not BCP47-conformant is
+- // "ja-JP-mac" on OS X, and ICU canonicalizes it into a mouthfull
+- // "ja-JP-x-lvariant-mac", so instead we're hardcoding a conversion
+- // of it to "ja-JP-macos".
+- if (aLocale.LowerCaseEqualsASCII("ja-jp-mac")) {
+- aLocale.AssignLiteral("ja-JP-macos");
+- return true;
+- }
+-
+- nsAutoCString locale(aLocale);
+- locale.Trim(" ");
+-
+- // POSIX may bring us locales such as "en-US.UTF8", which
+- // ICU converts to `en-US-u-va-posix`. Let's cut out
+- // the `.UTF8`, since it doesn't matter for us.
+- int32_t pos = locale.FindChar('.');
+- if (pos != -1) {
+- locale.Cut(pos, locale.Length() - pos);
+- }
+-
+- // The rest of this function will use ICU canonicalization for any other
+- // tag that may come this way.
+- const int32_t LANG_TAG_CAPACITY = 128;
+- char langTag[LANG_TAG_CAPACITY];
+- UErrorCode err = U_ZERO_ERROR;
+- // This is a fail-safe method that will set langTag to "und" if it cannot
+- // match any part of the input locale code.
+- int32_t len = uloc_toLanguageTag(locale.get(), langTag, LANG_TAG_CAPACITY,
+- strict, &err);
+- if (U_SUCCESS(err) && len > 0) {
+- aLocale.Assign(langTag, len);
+- }
+- return U_SUCCESS(err);
+-}
+-
+ /**
+ * This function splits an input string by `,` delimiter, sanitizes the result
+ * language tags and returns them to the caller.
+@@ -93,7 +48,7 @@ static void SplitLocaleListStringIntoArray(nsACString& str,
+ if (str.Length() > 0) {
+ for (const nsACString& part : str.Split(',')) {
+ nsAutoCString locale(part);
+- if (SanitizeForBCP47(locale, true)) {
++ if (LocaleService::CanonicalizeLanguageId(locale)) {
+ if (!aRetVal.Contains(locale)) {
+ aRetVal.AppendElement(locale);
+ }
+@@ -421,7 +376,7 @@ LocaleService::GetDefaultLocale(nsACString& aRetVal) {
+ locale.Trim(" \t\n\r");
+ // This should never be empty.
+ MOZ_ASSERT(!locale.IsEmpty());
+- if (SanitizeForBCP47(locale, true)) {
++ if (CanonicalizeLanguageId(locale)) {
+ mDefaultLocale.Assign(locale);
+ }
+
+@@ -617,7 +572,7 @@ LocaleService::SetRequestedLocales(const nsTArray<nsCString>& aRequested) {
+
+ for (auto& req : aRequested) {
+ nsAutoCString locale(req);
+- if (!SanitizeForBCP47(locale, true)) {
++ if (!CanonicalizeLanguageId(locale)) {
+ NS_ERROR("Invalid language tag provided to SetRequestedLocales!");
+ return NS_ERROR_INVALID_ARG;
+ }
+@@ -667,7 +622,7 @@ LocaleService::SetAvailableLocales(const nsTArray<nsCString>& aAvailable) {
+
+ for (auto& avail : aAvailable) {
+ nsAutoCString locale(avail);
+- if (!SanitizeForBCP47(locale, true)) {
++ if (!CanonicalizeLanguageId(locale)) {
+ NS_ERROR("Invalid language tag provided to SetAvailableLocales!");
+ return NS_ERROR_INVALID_ARG;
+ }
+diff --git intl/locale/LocaleService.h intl/locale/LocaleService.h
+index 2ff428da3e3fd..5f5152c1fbb7a 100644
+--- old/intl/locale/LocaleService.h
++++ new/intl/locale/LocaleService.h
+@@ -10,6 +10,7 @@
+ #include "nsString.h"
+ #include "nsTArray.h"
+ #include "nsWeakReference.h"
++#include "MozLocaleBindings.h"
+
+ #include "mozILocaleService.h"
+
+@@ -104,6 +105,23 @@ class LocaleService final : public mozILocaleService,
+ return RefPtr<LocaleService>(GetInstance()).forget();
+ }
+
++ /**
++ * Canonicalize a Unicode Language Identifier string.
++ *
++ * The operation is:
++ * * Normalizing casing (`eN-Us-Windows` -> `en-US-windows`)
++ * * Switching `_` to `-` (`en_US` -> `en-US`)
++ * * Rejecting invalid identifiers (`e21-X` sets aLocale to `und` and
++ * returns false)
++ * * Normalizing Mozilla's `ja-JP-mac` to `ja-JP-macos`
++ * * Cutting off POSIX dot postfix (`en-US.utf8` -> `en-US`)
++ *
++ * This operation should be used on any external input before
++ * it gets used in internal operations.
++ */
++ static bool CanonicalizeLanguageId(nsACString& aLocale) {
++ return ffi::unic_langid_canonicalize(&aLocale);
++ }
+ /**
+ * This method should only be called in the client mode.
+ *
+diff --git intl/locale/OSPreferences.cpp intl/locale/OSPreferences.cpp
+index 283db96e0d718..f816ca57abfea 100644
+--- old/intl/locale/OSPreferences.cpp
++++ new/intl/locale/OSPreferences.cpp
+@@ -54,19 +54,7 @@ void OSPreferences::Refresh() {
+ * It returns true if the canonicalization was successful.
+ */
+ bool OSPreferences::CanonicalizeLanguageTag(nsCString& aLoc) {
+- char langTag[512];
+-
+- UErrorCode status = U_ZERO_ERROR;
+-
+- int32_t langTagLen = uloc_toLanguageTag(aLoc.get(), langTag,
+- sizeof(langTag) - 1, false, &status);
+-
+- if (U_FAILURE(status)) {
+- return false;
+- }
+-
+- aLoc.Assign(langTag, langTagLen);
+- return true;
++ return LocaleService::CanonicalizeLanguageId(aLoc);
+ }
+
+ /**
+@@ -291,7 +279,9 @@ OSPreferences::GetRegionalPrefsLocales(nsTArray<nsCString>& aRetVal) {
+ return NS_OK;
+ }
+
+- return NS_ERROR_FAILURE;
++ // If we failed to read regional prefs locales,
++ // use system locales as last fallback.
++ return GetSystemLocales(aRetVal);
+ }
+
+ static OSPreferences::DateTimeFormatStyle ToDateTimeFormatStyle(
+diff --git intl/locale/rust/unic-langid-ffi/src/lib.rs intl/locale/rust/unic-langid-ffi/src/lib.rs
+index 701d3679c4cec..517e08c1a64c1 100644
+--- old/intl/locale/rust/unic-langid-ffi/src/lib.rs
++++ new/intl/locale/rust/unic-langid-ffi/src/lib.rs
+@@ -5,18 +5,39 @@
+ use nsstring::nsACString;
+ use nsstring::nsCString;
+ use thin_vec::ThinVec;
+-pub use unic_langid::LanguageIdentifier;
++pub use unic_langid::{LanguageIdentifier, LanguageIdentifierError};
++
++fn new_langid_for_mozilla(name: &nsACString) -> Result<LanguageIdentifier, LanguageIdentifierError> {
++ if name.eq_ignore_ascii_case(b"ja-jp-mac") {
++ "ja-JP-macos".parse()
++ } else {
++ // Cut out any `.FOO` like `en-US.POSIX`.
++ let mut name: &[u8] = name.as_ref();
++ if let Some(ptr) = name.iter().position(|b| b == &b'.') {
++ name = &name[..ptr];
++ }
++ LanguageIdentifier::from_bytes(name)
++ }
++}
++
++#[no_mangle]
++pub unsafe extern "C" fn unic_langid_canonicalize(name: &mut nsACString) -> bool {
++ let langid = new_langid_for_mozilla(name);
++
++ let result = langid.is_ok();
++
++ name.assign(&langid.unwrap_or_default().to_string());
++
++ result
++}
++
+
+ #[no_mangle]
+ pub unsafe extern "C" fn unic_langid_new(
+ name: &nsACString,
+ ret_val: &mut bool,
+ ) -> *mut LanguageIdentifier {
+- let langid = if name.eq_ignore_ascii_case(b"ja-jp-mac") {
+- "ja-JP-macos".parse()
+- } else {
+- LanguageIdentifier::from_bytes(name)
+- };
++ let langid = new_langid_for_mozilla(name);
+
+ *ret_val = langid.is_ok();
+ Box::into_raw(Box::new(langid.unwrap_or_default()))
+diff --git intl/locale/tests/gtest/TestLocaleService.cpp intl/locale/tests/gtest/TestLocaleService.cpp
+index b13ecfd237dfa..aaac8615b09fd 100644
+--- old/intl/locale/tests/gtest/TestLocaleService.cpp
++++ new/intl/locale/tests/gtest/TestLocaleService.cpp
+@@ -10,6 +10,29 @@
+
+ using namespace mozilla::intl;
+
++TEST(Intl_Locale_LocaleService, CanonicalizeLanguageId)
++{
++ nsCString locale("en-US.POSIX");
++ ASSERT_TRUE(LocaleService::CanonicalizeLanguageId(locale));
++ ASSERT_TRUE(locale.EqualsLiteral("en-US"));
++
++ locale.AssignLiteral("en-US_POSIX");
++ ASSERT_TRUE(LocaleService::CanonicalizeLanguageId(locale));
++ ASSERT_TRUE(locale.EqualsLiteral("en-US-posix"));
++
++ locale.AssignLiteral("en-US-POSIX");
++ ASSERT_TRUE(LocaleService::CanonicalizeLanguageId(locale));
++ ASSERT_TRUE(locale.EqualsLiteral("en-US-posix"));
++
++ locale.AssignLiteral("C");
++ ASSERT_FALSE(LocaleService::CanonicalizeLanguageId(locale));
++ ASSERT_TRUE(locale.EqualsLiteral("und"));
++
++ locale.AssignLiteral("");
++ ASSERT_FALSE(LocaleService::CanonicalizeLanguageId(locale));
++ ASSERT_TRUE(locale.EqualsLiteral("und"));
++}
++
+ TEST(Intl_Locale_LocaleService, GetAppLocalesAsBCP47)
+ {
+ nsTArray<nsCString> appLocales;
+diff --git intl/locale/tests/unit/test_localeService.js intl/locale/tests/unit/test_localeService.js
+index 1970ae94b2607..202c2674972a8 100644
+--- old/intl/locale/tests/unit/test_localeService.js
++++ new/intl/locale/tests/unit/test_localeService.js
+@@ -204,8 +204,7 @@ add_test(function test_requestedLocales_sanitize() {
+ Assert.equal(locales[0], "de");
+ Assert.equal(locales[1], "pl");
+ Assert.equal(locales[2], "de-AT");
+- Assert.equal(locales[3], "und");
+- Assert.equal(locales.length, 4);
++ Assert.equal(locales.length, 3);
+
+ Services.prefs.clearUserPref(PREF_REQUESTED_LOCALES);
+
diff --git a/www-client/firefox/files/firefox-wayland.sh b/www-client/firefox/files/firefox-wayland.sh
new file mode 100644
index 000000000000..44280250fb9d
--- /dev/null
+++ b/www-client/firefox/files/firefox-wayland.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+#
+# Run Mozilla Firefox under Wayland
+#
+export MOZ_ENABLE_WAYLAND=1
+exec @PREFIX@/bin/firefox "$@"
diff --git a/www-client/firefox/files/firefox-x11.sh b/www-client/firefox/files/firefox-x11.sh
new file mode 100644
index 000000000000..756556690cf3
--- /dev/null
+++ b/www-client/firefox/files/firefox-x11.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+#
+# Run Mozilla Firefox on X11
+#
+export MOZ_DISABLE_WAYLAND=1
+exec @PREFIX@/bin/firefox "$@"
diff --git a/www-client/firefox/files/firefox.sh b/www-client/firefox/files/firefox.sh
new file mode 100644
index 000000000000..c08d555196d6
--- /dev/null
+++ b/www-client/firefox/files/firefox.sh
@@ -0,0 +1,128 @@
+#!/bin/bash
+
+##
+## Usage:
+##
+## $ firefox
+##
+## This script is meant to run Mozilla Firefox in Gentoo.
+
+cmdname=$(basename "$0")
+
+##
+## Variables
+##
+MOZ_ARCH=$(uname -m)
+case ${MOZ_ARCH} in
+ x86_64|s390x|sparc64)
+ MOZ_LIB_DIR="@PREFIX@/lib64"
+ SECONDARY_LIB_DIR="@PREFIX@/lib"
+ ;;
+ *)
+ MOZ_LIB_DIR="@PREFIX@/lib"
+ SECONDARY_LIB_DIR="@PREFIX@/lib64"
+ ;;
+esac
+
+MOZ_FIREFOX_FILE="firefox"
+
+if [[ ! -r ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ if [[ ! -r ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} ]]; then
+ echo "Error: ${MOZ_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ if [[ -d $SECONDARY_LIB_DIR ]]; then
+ echo " ${SECONDARY_LIB_DIR}/firefox/${MOZ_FIREFOX_FILE} not found" >&2
+ fi
+ exit 1
+ fi
+ MOZ_LIB_DIR="$SECONDARY_LIB_DIR"
+fi
+MOZILLA_FIVE_HOME="${MOZ_LIB_DIR}/firefox"
+MOZ_EXTENSIONS_PROFILE_DIR="${HOME}/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+MOZ_PROGRAM="${MOZILLA_FIVE_HOME}/${MOZ_FIREFOX_FILE}"
+DESKTOP_FILE="firefox"
+
+##
+## Enable Wayland backend?
+##
+if @DEFAULT_WAYLAND@ && [[ -z ${MOZ_DISABLE_WAYLAND} ]]; then
+ if [[ -n "$WAYLAND_DISPLAY" ]]; then
+ DESKTOP_FILE="firefox-wayland"
+ export MOZ_ENABLE_WAYLAND=1
+ fi
+elif [[ -n ${MOZ_DISABLE_WAYLAND} ]]; then
+ DESKTOP_FILE="firefox-x11"
+fi
+
+##
+## Use D-Bus remote exclusively when there's Wayland display.
+##
+if [[ -n "${WAYLAND_DISPLAY}" ]]; then
+ export MOZ_DBUS_REMOTE=1
+fi
+
+##
+## Make sure that we set the plugin path
+##
+MOZ_PLUGIN_DIR="plugins"
+
+if [[ -n "${MOZ_PLUGIN_PATH}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+else
+ MOZ_PLUGIN_PATH=${MOZ_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+if [[ -d "${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}" ]]; then
+ MOZ_PLUGIN_PATH=${MOZ_PLUGIN_PATH}:${SECONDARY_LIB_DIR}/mozilla/${MOZ_PLUGIN_DIR}
+fi
+
+export MOZ_PLUGIN_PATH
+
+##
+## Set MOZ_APP_LAUNCHER for gnome-session
+##
+export MOZ_APP_LAUNCHER="@PREFIX@/bin/${cmdname}"
+
+##
+## Disable the GNOME crash dialog, Moz has it's own
+##
+if [[ "$XDG_CURRENT_DESKTOP" == "GNOME" ]]; then
+ GNOME_DISABLE_CRASH_DIALOG=1
+ export GNOME_DISABLE_CRASH_DIALOG
+fi
+
+##
+## Enable Xinput2 (#617344)
+##
+
+# respect user settings
+MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2:-auto}
+
+if [[ ${MOZ_USE_XINPUT2} == auto && -n ${WAYLAND_DISPLAY} ]]; then
+ # enabling XINPUT2 should be safe for all wayland users
+ MOZ_USE_XINPUT2=1
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == KDE ]]; then
+ # XINPUT2 is known to cause problems for KWin users
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto && ${XDG_CURRENT_DESKTOP^^} == LXQT ]]; then
+ # LXQt uses KWin
+ MOZ_USE_XINPUT2=0
+elif [[ ${MOZ_USE_XINPUT2} == auto ]]; then
+ # should work on Mate, Xfce, FluxBox, OpenBox and all the others ...
+ MOZ_USE_XINPUT2=1
+fi
+
+[[ ${MOZ_USE_XINPUT2} != 0 ]] && export MOZ_USE_XINPUT2=${MOZ_USE_XINPUT2}
+
+# Don't throw "old profile" dialog box.
+export MOZ_ALLOW_DOWNGRADE=1
+
+##
+## Route to the correct .desktop file to get proper
+## name and actions
+##
+if [[ $@ != *"--name "* ]]; then
+ set -- --name "${DESKTOP_FILE}" "$@"
+fi
+
+# Run the browser
+exec ${MOZ_PROGRAM} "$@"
diff --git a/www-client/firefox/files/gentoo-default-prefs.js-2 b/www-client/firefox/files/gentoo-default-prefs.js-2
deleted file mode 100644
index ffd0d7dc8ee7..000000000000
--- a/www-client/firefox/files/gentoo-default-prefs.js-2
+++ /dev/null
@@ -1,17 +0,0 @@
-pref("app.update.enabled", false);
-pref("app.update.autoInstallEnabled", false);
-pref("browser.display.use_system_colors", true);
-pref("browser.link.open_external", 3);
-pref("general.smoothScroll", true);
-pref("general.autoScroll", false);
-pref("browser.tabs.tabMinWidth", 15);
-pref("browser.backspace_action", 0);
-pref("browser.urlbar.hideGoButton", true);
-pref("accessibility.typeaheadfind", true);
-pref("browser.shell.checkDefaultBrowser", false);
-pref("browser.EULA.override", true);
-pref("general.useragent.vendor", "Gentoo");
-pref("general.useragent.locale", "chrome://global/locale/intl.properties");
-pref("intl.locale.requested", "");
-pref("extensions.autoDisableScopes", 0);
-pref("layout.css.dpi", 0);
diff --git a/www-client/firefox/files/gentoo-default-prefs.js-3 b/www-client/firefox/files/gentoo-default-prefs.js-3
index d2a4dc82c94a..073ea77e5117 100644
--- a/www-client/firefox/files/gentoo-default-prefs.js-3
+++ b/www-client/firefox/files/gentoo-default-prefs.js-3
@@ -16,3 +16,4 @@ pref("intl.locale.requested", "");
pref("extensions.autoDisableScopes", 0);
pref("layout.css.dpi", 0);
pref("network.trr.mode", 5);
+pref("app.normandy.enabled", false);
diff --git a/www-client/firefox/files/icon/firefox-r1.desktop b/www-client/firefox/files/icon/firefox-r1.desktop
new file mode 100644
index 000000000000..a000dffda124
--- /dev/null
+++ b/www-client/firefox/files/icon/firefox-r1.desktop
@@ -0,0 +1,230 @@
+[Desktop Entry]
+Version=1.0
+Name=@NAME@
+GenericName=Web Browser
+Comment=Browse the Web
+Exec=@EXEC@ %u
+Icon=@ICON@
+Terminal=false
+Type=Application
+MimeType=application/pdf;application/vnd.mozilla.xul+xml;application/xhtml+xml;text/html;text/mml;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https;
+StartupNotify=@STARTUP_NOTIFY@
+Categories=Network;WebBrowser;
+Keywords=web;browser;internet;
+Actions=new-window;new-private-window;
+
+[Desktop Action new-window]
+Name=Open a New Window
+Name[ach]=Dirica manyen
+Name[af]=Nuwe venster
+Name[an]=Nueva finestra
+Name[ar]=نافذة جديدة
+Name[as]=নতুন উইন্ডো
+Name[ast]=Ventana nueva
+Name[az]=Yeni Pəncərə
+Name[be]=Новае акно
+Name[bg]=Нов прозорец
+Name[bn_BD]=নতুন উইন্ডো (N)
+Name[bn_IN]=নতুন উইন্ডো
+Name[br]=Prenestr nevez
+Name[brx]=गोदान उइन्ड'(N)
+Name[bs]=Novi prozor
+Name[ca]=Finestra nova
+Name[cak]=K'ak'a' tzuwäch
+Name[cs]=Nové okno
+Name[cy]=Ffenestr Newydd
+Name[da]=Nyt vindue
+Name[de]=Neues Fenster
+Name[dsb]=Nowe wokno
+Name[el]=Νέο παράθυρο
+Name[en_GB]=New Window
+Name[en_US]=New Window
+Name[en_ZA]=New Window
+Name[eo]=Nova fenestro
+Name[es_AR]=Nueva ventana
+Name[es_CL]=Nueva ventana
+Name[es_ES]=Nueva ventana
+Name[es_MX]=Nueva ventana
+Name[et]=Uus aken
+Name[eu]=Leiho berria
+Name[fa]=پنجره جدید‌
+Name[ff]=Henorde Hesere
+Name[fi]=Uusi ikkuna
+Name[fr]=Nouvelle fenêtre
+Name[fy_NL]=Nij finster
+Name[ga_IE]=Fuinneog Nua
+Name[gd]=Uinneag ùr
+Name[gl]=Nova xanela
+Name[gn]=Ovetã pyahu
+Name[gu_IN]=નવી વિન્ડો
+Name[he]=חלון חדש
+Name[hi_IN]=नया विंडो
+Name[hr]=Novi prozor
+Name[hsb]=Nowe wokno
+Name[hu]=Új ablak
+Name[hy_AM]=Նոր Պատուհան
+Name[id]=Jendela Baru
+Name[is]=Nýr gluggi
+Name[it]=Nuova finestra
+Name[ja]=新しいウィンドウ
+Name[ja_JP-mac]=新規ウインドウ
+Name[ka]=ახალი ფანჯარა
+Name[kk]=Жаңа терезе
+Name[km]=បង្អួច​​​ថ្មី
+Name[kn]=ಹೊಸ ಕಿಟಕಿ
+Name[ko]=새 창
+Name[kok]=नवें जनेल
+Name[ks]=نئئ وِنڈو
+Name[lij]=Neuvo barcon
+Name[lo]=ຫນ້າຕ່າງໃຫມ່
+Name[lt]=Naujas langas
+Name[ltg]=Jauns lūgs
+Name[lv]=Jauns logs
+Name[mai]=नव विंडो
+Name[mk]=Нов прозорец
+Name[ml]=പുതിയ ജാലകം
+Name[mr]=नवीन पटल
+Name[ms]=Tetingkap Baru
+Name[my]=ဝင်းဒိုးအသစ်
+Name[nb_NO]=Nytt vindu
+Name[ne_NP]=नयाँ सञ्झ्याल
+Name[nl]=Nieuw venster
+Name[nn_NO]=Nytt vindauge
+Name[or]=ନୂତନ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
+Name[pl]=Nowe okno
+Name[pt_BR]=Nova janela
+Name[pt_PT]=Nova janela
+Name[rm]=Nova fanestra
+Name[ro]=Fereastră nouă
+Name[ru]=Новое окно
+Name[sat]=नावा विंडो (N)
+Name[si]=නව කවුළුවක්
+Name[sk]=Nové okno
+Name[sl]=Novo okno
+Name[son]=Zanfun taaga
+Name[sq]=Dritare e Re
+Name[sr]=Нови прозор
+Name[sv_SE]=Nytt fönster
+Name[ta]=புதிய சாளரம்
+Name[te]=కొత్త విండో
+Name[th]=หน้าต่างใหม่
+Name[tr]=Yeni pencere
+Name[tsz]=Eraatarakua jimpani
+Name[uk]=Нове вікно
+Name[ur]=نیا دریچہ
+Name[uz]=Yangi oyna
+Name[vi]=Cửa sổ mới
+Name[wo]=Palanteer bu bees
+Name[xh]=Ifestile entsha
+Name[zh_CN]=新建窗口
+Name[zh_TW]=開新視窗
+Exec=@EXEC@ --new-window %u
+
+[Desktop Action new-private-window]
+Name=Open a New Private Window
+Name[ach]=Dirica manyen me mung
+Name[af]=Nuwe privaatvenster
+Name[an]=Nueva finestra privada
+Name[ar]=نافذة خاصة جديدة
+Name[as]=নতুন ব্যক্তিগত উইন্ডো
+Name[ast]=Ventana privada nueva
+Name[az]=Yeni Məxfi Pəncərə
+Name[be]=Новае акно адасаблення
+Name[bg]=Нов прозорец за поверително сърфиране
+Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
+Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
+Name[br]=Prenestr merdeiñ prevez nevez
+Name[brx]=गोदान प्राइभेट उइन्ड'
+Name[bs]=Novi privatni prozor
+Name[ca]=Finestra privada nova
+Name[cak]=K'ak'a' ichinan tzuwäch
+Name[cs]=Nové anonymní okno
+Name[cy]=Ffenestr Breifat Newydd
+Name[da]=Nyt privat vindue
+Name[de]=Neues privates Fenster
+Name[dsb]=Nowe priwatne wokno
+Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
+Name[en_GB]=New Private Window
+Name[en_US]=New Private Window
+Name[en_ZA]=New Private Window
+Name[eo]=Nova privata fenestro
+Name[es_AR]=Nueva ventana privada
+Name[es_CL]=Nueva ventana privada
+Name[es_ES]=Nueva ventana privada
+Name[es_MX]=Nueva ventana privada
+Name[et]=Uus privaatne aken
+Name[eu]=Leiho pribatu berria
+Name[fa]=پنجره ناشناس جدید
+Name[ff]=Henorde Suturo Hesere
+Name[fi]=Uusi yksityinen ikkuna
+Name[fr]=Nouvelle fenêtre de navigation privée
+Name[fy_NL]=Nij priveefinster
+Name[ga_IE]=Fuinneog Nua Phríobháideach
+Name[gd]=Uinneag phrìobhaideach ùr
+Name[gl]=Nova xanela privada
+Name[gn]=Ovetã ñemi pyahu
+Name[gu_IN]=નવી ખાનગી વિન્ડો
+Name[he]=חלון פרטי חדש
+Name[hi_IN]=नयी निजी विंडो
+Name[hr]=Novi privatni prozor
+Name[hsb]=Nowe priwatne wokno
+Name[hu]=Új privát ablak
+Name[hy_AM]=Սկսել Գաղտնի դիտարկում
+Name[id]=Jendela Mode Pribadi Baru
+Name[is]=Nýr huliðsgluggi
+Name[it]=Nuova finestra anonima
+Name[ja]=新しいプライベートウィンドウ
+Name[ja_JP-mac]=新規プライベートウインドウ
+Name[ka]=ახალი პირადი ფანჯარა
+Name[kk]=Жаңа жекелік терезе
+Name[km]=បង្អួច​ឯកជន​ថ្មី
+Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
+Name[ko]=새 사생활 보호 모드
+Name[kok]=नवो खाजगी विंडो
+Name[ks]=نْو پرایوٹ وینڈو&amp;
+Name[lij]=Neuvo barcon privou
+Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
+Name[lt]=Naujas privataus naršymo langas
+Name[ltg]=Jauns privatais lūgs
+Name[lv]=Jauns privātais logs
+Name[mai]=नया निज विंडो (W)
+Name[mk]=Нов приватен прозорец
+Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
+Name[mr]=नवीन वैयक्तिक पटल
+Name[ms]=Tetingkap Persendirian Baharu
+Name[my]=New Private Window
+Name[nb_NO]=Nytt privat vindu
+Name[ne_NP]=नयाँ निजी सञ्झ्याल
+Name[nl]=Nieuw privévenster
+Name[nn_NO]=Nytt privat vindauge
+Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
+Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
+Name[pl]=Nowe okno prywatne
+Name[pt_BR]=Nova janela privativa
+Name[pt_PT]=Nova janela privada
+Name[rm]=Nova fanestra privata
+Name[ro]=Fereastră privată nouă
+Name[ru]=Новое приватное окно
+Name[sat]=नावा निजेराक् विंडो (W )
+Name[si]=නව පුද්ගලික කවුළුව (W)
+Name[sk]=Nové okno v režime Súkromné prehliadanie
+Name[sl]=Novo zasebno okno
+Name[son]=Sutura zanfun taaga
+Name[sq]=Dritare e Re Private
+Name[sr]=Нови приватан прозор
+Name[sv_SE]=Nytt privat fönster
+Name[ta]=புதிய தனிப்பட்ட சாளரம்
+Name[te]=కొత్త ఆంతరంగిక విండో
+Name[th]=หน้าต่างส่วนตัวใหม่
+Name[tr]=Yeni gizli pencere
+Name[tsz]=Juchiiti eraatarakua jimpani
+Name[uk]=Приватне вікно
+Name[ur]=نیا نجی دریچہ
+Name[uz]=Yangi maxfiy oyna
+Name[vi]=Cửa sổ riêng tư mới
+Name[wo]=Panlanteeru biir bu bees
+Name[xh]=Ifestile yangasese entsha
+Name[zh_CN]=新建隐私浏览窗口
+Name[zh_TW]=新增隱私視窗
+Exec=@EXEC@ --private-window %u