tbb-commits
Threads by month
- ----- 2026 -----
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 20458 discussions
[Git][tpo/applications/tor-browser][tor-browser-115.14.0esr-13.5-1] 2 commits: fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by Pier Angelo Vendrame (@pierov) 21 Aug '24
by Pier Angelo Vendrame (@pierov) 21 Aug '24
21 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-115.14.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
4543a87f by Henry Wilkes at 2024-08-21T10:37:58+02:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 42661: Rerun update_emojis.py for the bridge emojis.
Add missing locales.
- - - - -
5b120823 by Henry Wilkes at 2024-08-21T10:38:04+02:00
fixup! Bug 41600: Add a tor circuit display panel.
Bug 42661: Rerun update_emojis.py for the circuit flags.
Add missing locales.
- - - - -
4 changed files:
- browser/components/torcircuit/content/tor-circuit-flags/README.txt
- browser/components/torpreferences/content/bridgemoji/annotations.json
- browser/components/torpreferences/content/bridgemoji/svgs/README.txt
- tools/torbrowser/update_emojis.py
Changes:
=====================================
browser/components/torcircuit/content/tor-circuit-flags/README.txt
=====================================
@@ -1 +1 @@
-Generated by tools/torbrowser/update_emojis.py on 2023-04-03
\ No newline at end of file
+Generated by tools/torbrowser/update_emojis.py on 2024-08-06
=====================================
browser/components/torpreferences/content/bridgemoji/annotations.json
=====================================
@@ -1,5 +1,5 @@
{
- "_comment": "Generated by tools/torbrowser/update_emojis.py on 2023-04-03",
+ "_comment": "Generated by tools/torbrowser/update_emojis.py on 2024-08-06",
"ar": {
"1f47d": "كائن فضائي",
"1f916": "وجه روبوت",
@@ -258,6 +258,522 @@
"1f9f9": "مكنسة",
"1f5ff": "تمثال"
},
+ "be": {
+ "1f47d": "іншапланецянін",
+ "1f916": "робат",
+ "1f9e0": "мозг",
+ "1f441": "вока",
+ "1f9d9": "чараўнік",
+ "1f9da": "фея",
+ "1f9dc": "русалкі",
+ "1f435": "пыска малпы",
+ "1f9a7": "арангутан",
+ "1f436": "сабачая пыска",
+ "1f43a": "воўк",
+ "1f98a": "ліс",
+ "1f99d": "янот",
+ "1f431": "каціная пыска",
+ "1f981": "леў",
+ "1f42f": "пыска тыгра",
+ "1f434": "пыска каня",
+ "1f984": "пыска аднарога",
+ "1f993": "зебра",
+ "1f98c": "алень",
+ "1f42e": "пыска каровы",
+ "1f437": "пыска свінні",
+ "1f417": "дзік",
+ "1f42a": "вярблюд",
+ "1f999": "лама",
+ "1f992": "жыраф",
+ "1f418": "слон",
+ "1f9a3": "мамант",
+ "1f98f": "насарог",
+ "1f42d": "мышыная пыска",
+ "1f430": "заечая пыска",
+ "1f43f": "бурундук",
+ "1f994": "вожык",
+ "1f987": "кажан",
+ "1f43b": "мядзведжая пыска",
+ "1f428": "каала",
+ "1f9a5": "лянівец",
+ "1f9a6": "выдра",
+ "1f998": "кенгуру",
+ "1f425": "кураня спераду",
+ "1f426": "птушка",
+ "1f54a": "голуб",
+ "1f986": "качка",
+ "1f989": "сава",
+ "1f9a4": "дадо",
+ "1fab6": "пяро",
+ "1f9a9": "фламінга",
+ "1f99a": "паўлін",
+ "1f99c": "папугай",
+ "1f40a": "кракадзіл",
+ "1f422": "чарапаха",
+ "1f98e": "яшчарка",
+ "1f40d": "змяя",
+ "1f432": "галава цмока",
+ "1f995": "заўрапод",
+ "1f433": "фантануючы кіт",
+ "1f42c": "дэльфін",
+ "1f9ad": "цюлень",
+ "1f41f": "рыба",
+ "1f420": "трапічная рыба",
+ "1f988": "акула",
+ "1f419": "васьміног",
+ "1f41a": "спіральная ракушка",
+ "1f40c": "смоўж",
+ "1f98b": "матылёк",
+ "1f41b": "кузурка",
+ "1f41d": "пчала",
+ "1f41e": "божая кароўка",
+ "1f490": "букет",
+ "1f339": "ружа",
+ "1f33a": "гібіскус",
+ "1f33b": "сланечнік",
+ "1f337": "цюльпан",
+ "1f332": "вечназялёнае дрэва",
+ "1f333": "ліставое дрэва",
+ "1f334": "пальма",
+ "1f335": "кактус",
+ "1f33f": "лекавая трава",
+ "1f341": "кляновы ліст",
+ "1f344": "грыб",
+ "1f347": "вінаград",
+ "1f348": "дыня",
+ "1f349": "кавун",
+ "1f34a": "мандарын",
+ "1f34b": "лімон",
+ "1f34c": "банан",
+ "1f34d": "ананас",
+ "1f96d": "манга",
+ "1f34f": "зялёны яблык",
+ "1f350": "груша",
+ "1f351": "персік",
+ "1f352": "вішні",
+ "1f353": "клубніцы",
+ "1fad0": "буякі",
+ "1f95d": "ківі",
+ "1f345": "памідор",
+ "1fad2": "аліва",
+ "1f965": "какос",
+ "1f951": "авакада",
+ "1f346": "баклажан",
+ "1f955": "морква",
+ "1f33d": "катах кукурузы",
+ "1f336": "востры перац",
+ "1f96c": "зеляніна",
+ "1f966": "брокалі",
+ "1f9c5": "цыбуля",
+ "1f95c": "арахіс",
+ "1f950": "круасан",
+ "1f956": "багет",
+ "1f968": "крэндзель",
+ "1f96f": "пышка",
+ "1f95e": "бліны",
+ "1f9c7": "вафля",
+ "1f354": "гамбургер",
+ "1f355": "піца",
+ "1f32d": "хот-дог",
+ "1f32e": "така",
+ "1f37f": "папкорн",
+ "1f980": "краб",
+ "1f99e": "амар",
+ "1f368": "марожанае",
+ "1f369": "пончык",
+ "1f36a": "пячэнне",
+ "1f382": "імянінны торт",
+ "1f9c1": "кекс",
+ "1f36b": "плітка шакаладу",
+ "1f36c": "цукерка",
+ "1f36d": "ледзянец",
+ "1fad6": "чайнік",
+ "1f9c3": "пачак з напоем",
+ "1f9c9": "матэ",
+ "1f9ed": "компас",
+ "1f3d4": "заснежаная гара",
+ "1f30b": "вулкан",
+ "1f3d5": "кемпінг",
+ "1f3dd": "ненаселены востраў",
+ "1f3e1": "дом з садам",
+ "26f2": "фантан",
+ "1f3a0": "конік з каруселі",
+ "1f3a1": "кола агляду",
+ "1f3a2": "амерыканскія горкі",
+ "1f488": "каляровы слуп",
+ "1f686": "цягнік",
+ "1f68b": "трамвайны вагон",
+ "1f68d": "набліжаецца аўтобус",
+ "1f695": "таксі",
+ "1f697": "аўтамабіль",
+ "1f69a": "грузавік",
+ "1f69c": "трактар",
+ "1f6f5": "скутар",
+ "1f6fa": "аўтарыкша",
+ "1f6f4": "самакат",
+ "1f6f9": "скейтборд",
+ "1f6fc": "ролікавы канёк",
+ "2693": "якар",
+ "26f5": "паруснік",
+ "1f6f6": "каноэ",
+ "1f6a4": "быстраходны катар",
+ "1f6a2": "карабель",
+ "2708": "самалёт",
+ "1f681": "верталёт",
+ "1f6a0": "горны фунікулёр",
+ "1f6f0": "спадарожнік",
+ "1f680": "ракета",
+ "1f6f8": "лятаючая талерка",
+ "23f0": "будзільнік",
+ "1f319": "паўмесяц",
+ "1f321": "тэрмометр",
+ "2600": "сонца",
+ "1fa90": "планета з кальцом",
+ "1f31f": "бліскучая зорка",
+ "1f300": "цыклон",
+ "1f308": "вясёлка",
+ "2602": "парасон",
+ "2744": "сняжынка",
+ "2604": "камета",
+ "1f525": "агонь",
+ "1f4a7": "кропелька",
+ "1f30a": "хваля",
+ "1f383": "гарбузны ліхтар",
+ "2728": "іскры",
+ "1f388": "паветраны шарык",
+ "1f389": "хлапушка",
+ "1f38f": "каінаборы",
+ "1f380": "стужка",
+ "1f381": "запакаваны падарунак",
+ "1f39f": "уваходныя білеты",
+ "1f3c6": "кубак",
+ "26bd": "футбольны мяч",
+ "1f3c0": "баскетбол",
+ "1f3c8": "амерыканскі футбол",
+ "1f3be": "тэніс",
+ "1f94f": "фрысбі",
+ "1f3d3": "пінг-понг",
+ "1f3f8": "бадмінтон",
+ "1f93f": "маска для падводнага плавання",
+ "1f94c": "шайба для кёрлінгу",
+ "1f3af": "прамое пападанне",
+ "1fa80": "ё-ё",
+ "1fa81": "паветраны змей",
+ "1f52e": "крыштальны шар",
+ "1f3b2": "ігральная косць",
+ "1f9e9": "частка пазла",
+ "1f3a8": "палітра мастака",
+ "1f9f5": "нітка",
+ "1f455": "футболка",
+ "1f9e6": "шкарпэткі",
+ "1f457": "сукенка",
+ "1fa73": "шорты",
+ "1f392": "школьны ранец",
+ "1f45f": "красовак",
+ "1f451": "карона",
+ "1f9e2": "кепка",
+ "1f484": "памада",
+ "1f48d": "кальцо",
+ "1f48e": "каштоўны самацвет",
+ "1f4e2": "гучнагаварыцель",
+ "1f3b6": "музычныя ноты",
+ "1f399": "студыйны мікрафон",
+ "1f4fb": "радыё",
+ "1f3b7": "саксафон",
+ "1fa97": "акардэон",
+ "1f3b8": "гітара",
+ "1f3ba": "труба",
+ "1f3bb": "скрыпка",
+ "1fa95": "банджа",
+ "1f941": "барабан",
+ "260e": "хатні тэлефон",
+ "1f50b": "батарэйка",
+ "1f4bf": "аптычны дыск",
+ "1f9ee": "лічыльнікі",
+ "1f3ac": "нумаратар з хлапушкай",
+ "1f4a1": "лямпачка",
+ "1f526": "ліхтарык",
+ "1f3ee": "чырвоны папяровы ліхтар",
+ "1f4d5": "закрытая кніга",
+ "1f3f7": "бірка",
+ "1f4b3": "крэдытная карта",
+ "270f": "аловак",
+ "1f58c": "пэндзаль",
+ "1f58d": "пастэль",
+ "1f4cc": "канцылярская кнопка",
+ "1f4ce": "сашчэпка",
+ "1f511": "ключ",
+ "1fa83": "бумеранг",
+ "1f3f9": "лук са стралой",
+ "2696": "шалі",
+ "1f9f2": "магніт",
+ "1f9ea": "прабірка",
+ "1f9ec": "ДНК",
+ "1f52c": "мікраскоп",
+ "1f52d": "тэлескоп",
+ "1f4e1": "спадарожнікавая антэна",
+ "1fa91": "крэсла",
+ "1f9f9": "мятла",
+ "1f5ff": "мааі"
+ },
+ "bg": {
+ "1f47d": "извънземно",
+ "1f916": "Лице на робот",
+ "1f9e0": "мозък",
+ "1f441": "око",
+ "1f9d9": "жена магьосник",
+ "1f9da": "фея",
+ "1f9dc": "жена амфибия",
+ "1f435": "Лице на маймуна",
+ "1f9a7": "орангутан",
+ "1f436": "муцуна на куче",
+ "1f43a": "вълк",
+ "1f98a": "лисица",
+ "1f99d": "енот",
+ "1f431": "муцуна на котка",
+ "1f981": "лъв",
+ "1f42f": "муцуна на тигър",
+ "1f434": "муцуна на кон",
+ "1f984": "еднорог",
+ "1f993": "зебра",
+ "1f98c": "елен",
+ "1f42e": "муцуна на крава",
+ "1f437": "зурла на прасе",
+ "1f417": "глиган",
+ "1f42a": "камила",
+ "1f999": "лама",
+ "1f992": "жираф",
+ "1f418": "слон",
+ "1f9a3": "мамут",
+ "1f98f": "носорог",
+ "1f42d": "муцуна на мишка",
+ "1f430": "муцуна на заек",
+ "1f43f": "катерица",
+ "1f994": "таралеж",
+ "1f987": "прилеп",
+ "1f43b": "мечка",
+ "1f428": "коала",
+ "1f9a5": "ленивец",
+ "1f9a6": "видра",
+ "1f998": "кенгуру",
+ "1f425": "пиленце, гледано отпред",
+ "1f426": "птица",
+ "1f54a": "гълъб",
+ "1f986": "патица",
+ "1f989": "бухал",
+ "1f9a4": "Додо",
+ "1fab6": "перо",
+ "1f9a9": "фламинго",
+ "1f99a": "паун",
+ "1f99c": "папагал",
+ "1f40a": "крокодил",
+ "1f422": "костенурка",
+ "1f98e": "гущер",
+ "1f40d": "змия",
+ "1f432": "глава на дракон",
+ "1f995": "завропод",
+ "1f433": "пръскащ кит",
+ "1f42c": "делфин",
+ "1f9ad": "тюлен",
+ "1f41f": "риба",
+ "1f420": "тропическа риба",
+ "1f988": "акула",
+ "1f419": "октопод",
+ "1f41a": "спирална раковина",
+ "1f40c": "охлюв",
+ "1f98b": "пеперуда",
+ "1f41b": "буболечка",
+ "1f41d": "пчела",
+ "1f41e": "калинка",
+ "1f490": "букет",
+ "1f339": "роза",
+ "1f33a": "хибискус",
+ "1f33b": "слънчоглед",
+ "1f337": "лале",
+ "1f332": "вечнозелено дърво",
+ "1f333": "листопадно дърво",
+ "1f334": "палма",
+ "1f335": "кактус",
+ "1f33f": "билка",
+ "1f341": "кленов лист",
+ "1f344": "гъба",
+ "1f347": "грозде",
+ "1f348": "пъпеш",
+ "1f349": "диня",
+ "1f34a": "мандарина",
+ "1f34b": "лимон",
+ "1f34c": "банан",
+ "1f34d": "ананас",
+ "1f96d": "манго",
+ "1f34f": "зелена ябълка",
+ "1f350": "круша",
+ "1f351": "праскова",
+ "1f352": "череши",
+ "1f353": "ягода",
+ "1fad0": "черни боровинки",
+ "1f95d": "плод киви",
+ "1f345": "домат",
+ "1fad2": "маслина",
+ "1f965": "кокосов орех",
+ "1f951": "авокадо",
+ "1f346": "патладжан",
+ "1f955": "морков",
+ "1f33d": "царевичен кочан",
+ "1f336": "люта чушка",
+ "1f96c": "листен зеленчук",
+ "1f966": "броколи",
+ "1f9c5": "лук",
+ "1f95c": "фъстъци",
+ "1f950": "кроасан",
+ "1f956": "багета",
+ "1f968": "брецел",
+ "1f96f": "геврек",
+ "1f95e": "палачинки",
+ "1f9c7": "гофрета",
+ "1f354": "хамбургер",
+ "1f355": "пица",
+ "1f32d": "хотдог",
+ "1f32e": "тако",
+ "1f37f": "пуканки",
+ "1f980": "рак",
+ "1f99e": "омар",
+ "1f368": "сладолед",
+ "1f369": "поничка",
+ "1f36a": "бисквитка",
+ "1f382": "торта за рожден ден",
+ "1f9c1": "къпкейк",
+ "1f36b": "шоколадово блокче",
+ "1f36c": "бонбон",
+ "1f36d": "близалка",
+ "1fad6": "чайник",
+ "1f9c3": "кутия за напитки",
+ "1f9c9": "мате",
+ "1f9ed": "компас",
+ "1f3d4": "покрита със сняг планина",
+ "1f30b": "вулкан",
+ "1f3d5": "къмпинг",
+ "1f3dd": "необитаем остров",
+ "1f3e1": "къща с градина",
+ "26f2": "фонтан",
+ "1f3a0": "кон от въртележка",
+ "1f3a1": "виенско колело",
+ "1f3a2": "влакче в увеселителен парк",
+ "1f488": "знак на бръснар",
+ "1f686": "влак",
+ "1f68b": "трамваен вагон",
+ "1f68d": "приближаващ автобус",
+ "1f695": "такси",
+ "1f697": "автомобил",
+ "1f69a": "камион за доставки",
+ "1f69c": "трактор",
+ "1f6f5": "моторен скутер",
+ "1f6fa": "авторикша",
+ "1f6f4": "тротинетка",
+ "1f6f9": "скейтборд",
+ "1f6fc": "ролери",
+ "2693": "котва",
+ "26f5": "яхта",
+ "1f6f6": "кану",
+ "1f6a4": "моторна лодка",
+ "1f6a2": "кораб",
+ "2708": "самолет",
+ "1f681": "хеликоптер",
+ "1f6a0": "лифт",
+ "1f6f0": "спътник",
+ "1f680": "ракета",
+ "1f6f8": "летяща чиния",
+ "23f0": "будилник",
+ "1f319": "полумесец",
+ "1f321": "термометър",
+ "2600": "слънце",
+ "1fa90": "планета с пръстен",
+ "1f31f": "блестяща звезда",
+ "1f300": "циклон",
+ "1f308": "дъга",
+ "2602": "чадър",
+ "2744": "снежинка",
+ "2604": "комета",
+ "1f525": "огън",
+ "1f4a7": "капка",
+ "1f30a": "вълна",
+ "1f383": "тиквен фенер",
+ "2728": "звездички",
+ "1f388": "балон",
+ "1f389": "конфети",
+ "1f38f": "коинобори",
+ "1f380": "панделка",
+ "1f381": "опакован подарък",
+ "1f39f": "билети за вход",
+ "1f3c6": "спортна купа",
+ "26bd": "футболна топка",
+ "1f3c0": "баскетболна топка",
+ "1f3c8": "топка за американски футбол",
+ "1f3be": "тенис",
+ "1f94f": "фризби",
+ "1f3d3": "тенис на маса",
+ "1f3f8": "бадминтон",
+ "1f93f": "маска за гмуркане",
+ "1f94c": "камък за кърлинг",
+ "1f3af": "точен удар",
+ "1fa80": "йо-йо",
+ "1fa81": "хвърчило",
+ "1f52e": "Кристално кълбо",
+ "1f3b2": "зар за игра",
+ "1f9e9": "част от пъзел",
+ "1f3a8": "палитра на художник",
+ "1f9f5": "конец",
+ "1f455": "тениска",
+ "1f9e6": "чорапи",
+ "1f457": "рокля",
+ "1fa73": "плувни шорти",
+ "1f392": "ученическа раница",
+ "1f45f": "спортна обувка",
+ "1f451": "корона",
+ "1f9e2": "шапка с козирка",
+ "1f484": "червило",
+ "1f48d": "пръстен",
+ "1f48e": "скъпоценен камък",
+ "1f4e2": "Високоговорител за обществени места",
+ "1f3b6": "ноти",
+ "1f399": "студиен микрофон",
+ "1f4fb": "радио",
+ "1f3b7": "саксофон",
+ "1fa97": "акордеон",
+ "1f3b8": "китара",
+ "1f3ba": "тромпет",
+ "1f3bb": "цигулка",
+ "1fa95": "банджо",
+ "1f941": "барабан",
+ "260e": "телефон",
+ "1f50b": "батерия",
+ "1f4bf": "оптичен диск",
+ "1f9ee": "сметало",
+ "1f3ac": "клапа",
+ "1f4a1": "електрическа крушка",
+ "1f526": "фенерче",
+ "1f3ee": "червен хартиен фенер",
+ "1f4d5": "затворена книга",
+ "1f3f7": "етикет",
+ "1f4b3": "кредитна карта",
+ "270f": "молив",
+ "1f58c": "четка",
+ "1f58d": "пастел",
+ "1f4cc": "кабърче",
+ "1f4ce": "кламер",
+ "1f511": "ключ",
+ "1fa83": "бумеранг",
+ "1f3f9": "лък и стрела",
+ "2696": "везна",
+ "1f9f2": "магнит",
+ "1f9ea": "епруветка",
+ "1f9ec": "ДНК",
+ "1f52c": "микроскоп",
+ "1f52d": "телескоп",
+ "1f4e1": "сателитна антена",
+ "1fa91": "стол",
+ "1f9f9": "метла",
+ "1f5ff": "моаи"
+ },
"ca": {
"1f47d": "alienígena",
"1f916": "robot",
@@ -1366,7 +1882,7 @@
"1f337": "τουλίπα",
"1f332": "αειθαλές δέντρο",
"1f333": "φυλλοβόλο δέντρο",
- "1f334": "φοίνικας",
+ "1f334": "φοινικόδεντρο",
"1f335": "κάκτος",
"1f33f": "βότανο",
"1f341": "φύλλο σφενδάμου",
@@ -1869,7 +2385,7 @@
"1f420": "pez tropical",
"1f988": "tiburón",
"1f419": "pulpo",
- "1f41a": "concha de mar",
+ "1f41a": "caracola",
"1f40c": "caracol",
"1f98b": "mariposa",
"1f41b": "bicho",
@@ -2322,6 +2838,264 @@
"1f9f9": "جارو",
"1f5ff": "سردیس موآی"
},
+ "fi": {
+ "1f47d": "avaruusolio",
+ "1f916": "robotti",
+ "1f9e0": "aivot",
+ "1f441": "silmä",
+ "1f9d9": "velho",
+ "1f9da": "keiju",
+ "1f9dc": "merenväki",
+ "1f435": "apinan naama",
+ "1f9a7": "oranki",
+ "1f436": "koiran naama",
+ "1f43a": "susi",
+ "1f98a": "kettu",
+ "1f99d": "pesukarhu",
+ "1f431": "kissan naama",
+ "1f981": "leijona",
+ "1f42f": "tiikerin naama",
+ "1f434": "hevosen naama",
+ "1f984": "yksisarvinen",
+ "1f993": "seepra",
+ "1f98c": "peura",
+ "1f42e": "lehmän naama",
+ "1f437": "sian naama",
+ "1f417": "villisika",
+ "1f42a": "kameli",
+ "1f999": "laama",
+ "1f992": "kirahvi",
+ "1f418": "elefantti",
+ "1f9a3": "mammutti",
+ "1f98f": "sarvikuono",
+ "1f42d": "hiiren naama",
+ "1f430": "jäniksen naama",
+ "1f43f": "maaorava",
+ "1f994": "siili",
+ "1f987": "lepakko",
+ "1f43b": "karhu",
+ "1f428": "koala",
+ "1f9a5": "laiskiainen",
+ "1f9a6": "saukko",
+ "1f998": "kenguru",
+ "1f425": "tipu edestäpäin",
+ "1f426": "lintu",
+ "1f54a": "kyyhky",
+ "1f986": "sorsa",
+ "1f989": "pöllö",
+ "1f9a4": "dodo",
+ "1fab6": "höyhen",
+ "1f9a9": "flamingo",
+ "1f99a": "riikinkukko",
+ "1f99c": "papukaija",
+ "1f40a": "krokotiili",
+ "1f422": "kilpikonna",
+ "1f98e": "lisko",
+ "1f40d": "käärme",
+ "1f432": "lohikäärmeen naama",
+ "1f995": "sauropodi",
+ "1f433": "suihkuttava valas",
+ "1f42c": "delfiini",
+ "1f9ad": "hylje",
+ "1f41f": "kala",
+ "1f420": "trooppinen kala",
+ "1f988": "hai",
+ "1f419": "mustekala",
+ "1f41a": "kotilo",
+ "1f40c": "etana",
+ "1f98b": "perhonen",
+ "1f41b": "ötökkä",
+ "1f41d": "mehiläinen",
+ "1f41e": "leppäkerttu",
+ "1f490": "kukkakimppu",
+ "1f339": "ruusu",
+ "1f33a": "kiinanruusu",
+ "1f33b": "auringonkukka",
+ "1f337": "tulppaani",
+ "1f332": "ikivihreä",
+ "1f333": "lehtipuu",
+ "1f334": "palmu",
+ "1f335": "kaktus",
+ "1f33f": "yrtti",
+ "1f341": "vaahteranlehti",
+ "1f344": "sieni",
+ "1f347": "viinirypäleet",
+ "1f348": "meloni",
+ "1f349": "vesimeloni",
+ "1f34a": "mandariini",
+ "1f34b": "sitruuna",
+ "1f34c": "banaani",
+ "1f34d": "ananas",
+ "1f96d": "mango",
+ "1f34f": "vihreä omena",
+ "1f350": "päärynä",
+ "1f351": "persikka",
+ "1f352": "kirsikat",
+ "1f353": "mansikka",
+ "1fad0": "mustikat",
+ "1f95d": "kiivi",
+ "1f345": "tomaatti",
+ "1fad2": "oliivi",
+ "1f965": "kookospähkinä",
+ "1f951": "avokado",
+ "1f346": "munakoiso",
+ "1f955": "porkkana",
+ "1f33d": "maissintähkä",
+ "1f336": "jalapeno",
+ "1f96c": "lehtivihannes",
+ "1f966": "parsakaali",
+ "1f9c5": "sipuli",
+ "1f95c": "maapähkinä",
+ "1f950": "voisarvi",
+ "1f956": "patonki",
+ "1f968": "rinkilä",
+ "1f96f": "vesirinkeli",
+ "1f95e": "letut",
+ "1f9c7": "vohveli",
+ "1f354": "hampurilainen",
+ "1f355": "pizza",
+ "1f32d": "hodari",
+ "1f32e": "taco",
+ "1f37f": "popcorn",
+ "1f980": "rapu",
+ "1f99e": "hummeri",
+ "1f368": "jäätelö",
+ "1f369": "donitsi",
+ "1f36a": "keksi",
+ "1f382": "syntymäpäiväkakku",
+ "1f9c1": "vuokaleivos",
+ "1f36b": "suklaapatukka",
+ "1f36c": "karkki",
+ "1f36d": "tikkari",
+ "1fad6": "teepannu",
+ "1f9c3": "juomatetra",
+ "1f9c9": "mate",
+ "1f9ed": "kompassi",
+ "1f3d4": "lumihuippuinen vuori",
+ "1f30b": "tulivuori",
+ "1f3d5": "telttailu",
+ "1f3dd": "autiosaari",
+ "1f3e1": "talo ja puutarha",
+ "26f2": "suihkulähde",
+ "1f3a0": "karusellihevonen",
+ "1f3a1": "maailmanpyörä",
+ "1f3a2": "vuoristorata",
+ "1f488": "punasiniraitainen pylväs",
+ "1f686": "juna",
+ "1f68b": "raitiovaunu",
+ "1f68d": "saapuva bussi",
+ "1f695": "taksi",
+ "1f697": "auto",
+ "1f69a": "kuljetusauto",
+ "1f69c": "traktori",
+ "1f6f5": "skootteri",
+ "1f6fa": "autorikša",
+ "1f6f4": "potkulauta",
+ "1f6f9": "rullalauta",
+ "1f6fc": "rullaluistin",
+ "2693": "ankkuri",
+ "26f5": "purjevene",
+ "1f6f6": "kanootti",
+ "1f6a4": "pikavene",
+ "1f6a2": "laiva",
+ "2708": "lentokone",
+ "1f681": "helikopteri",
+ "1f6a0": "gondolihissi",
+ "1f6f0": "satelliitti",
+ "1f680": "raketti",
+ "1f6f8": "lentävä lautanen",
+ "23f0": "herätyskello",
+ "1f319": "kuunsirppi",
+ "1f321": "lämpömittari",
+ "2600": "aurinko",
+ "1fa90": "rengasplaneetta",
+ "1f31f": "loistava tähti",
+ "1f300": "pyörremyrsky",
+ "1f308": "sateenkaari",
+ "2602": "sateenvarjo",
+ "2744": "lumihiutale",
+ "2604": "komeetta",
+ "1f525": "tuli",
+ "1f4a7": "pisara",
+ "1f30a": "aalto",
+ "1f383": "kurpitsalyhty",
+ "2728": "säihke",
+ "1f388": "ilmapallo",
+ "1f389": "paukkuserpentiini",
+ "1f38f": "karppiviiri",
+ "1f380": "rusetti",
+ "1f381": "lahjapaketti",
+ "1f39f": "pääsylippu",
+ "1f3c6": "pokaali",
+ "26bd": "jalkapallo",
+ "1f3c0": "koripallo",
+ "1f3c8": "amerikkalainen jalkapallo",
+ "1f3be": "tennis",
+ "1f94f": "liitokiekko",
+ "1f3d3": "pingis",
+ "1f3f8": "sulkapallo",
+ "1f93f": "sukellusmaski",
+ "1f94c": "curling-kivi",
+ "1f3af": "napakymppi",
+ "1fa80": "jojo",
+ "1fa81": "leija",
+ "1f52e": "kristallipallo",
+ "1f3b2": "noppa",
+ "1f9e9": "palapeli",
+ "1f3a8": "taiteilijan paletti",
+ "1f9f5": "lankarulla",
+ "1f455": "t-paita",
+ "1f9e6": "sukat",
+ "1f457": "mekko",
+ "1fa73": "uimashortsit",
+ "1f392": "koulureppu",
+ "1f45f": "juoksukenkä",
+ "1f451": "kruunu",
+ "1f9e2": "lippalakki",
+ "1f484": "huulipuna",
+ "1f48d": "sormus",
+ "1f48e": "jalokivi",
+ "1f4e2": "kovaääninen",
+ "1f3b6": "nuotteja",
+ "1f399": "studiomikrofoni",
+ "1f4fb": "radio",
+ "1f3b7": "saksofoni",
+ "1fa97": "harmonikka",
+ "1f3b8": "kitara",
+ "1f3ba": "trumpetti",
+ "1f3bb": "viulu",
+ "1fa95": "banjo",
+ "1f941": "rumpu",
+ "260e": "puhelin",
+ "1f50b": "akku",
+ "1f4bf": "CD",
+ "1f9ee": "helmitaulu",
+ "1f3ac": "klaffitaulu",
+ "1f4a1": "hehkulamppu",
+ "1f526": "taskulamppu",
+ "1f3ee": "punainen paperilyhty",
+ "1f4d5": "suljettu kirja",
+ "1f3f7": "lappu",
+ "1f4b3": "luottokortti",
+ "270f": "lyijykynä",
+ "1f58c": "sivellin",
+ "1f58d": "väriliitu",
+ "1f4cc": "nuppineula",
+ "1f4ce": "paperiliitin",
+ "1f511": "avain",
+ "1fa83": "bumerangi",
+ "1f3f9": "jousi ja nuoli",
+ "2696": "vaaka",
+ "1f9f2": "magneetti",
+ "1f9ea": "koeputki",
+ "1f9ec": "dna",
+ "1f52c": "mikroskooppi",
+ "1f52d": "kaukoputki",
+ "1f4e1": "lautasantenni",
+ "1fa91": "tuoli",
+ "1f9f9": "luuta",
+ "1f5ff": "moai"
+ },
"fr": {
"1f47d": "alien",
"1f916": "robot",
@@ -3720,7 +4494,7 @@
"1f966": "brokkólí",
"1f9c5": "laukur",
"1f95c": "jarðhneta",
- "1f950": "Croissant",
+ "1f950": "smjördeigshorn",
"1f956": "fransbrauð",
"1f968": "saltkringla",
"1f96f": "beygla",
@@ -5311,7 +6085,7 @@
"1f69a": "камион за испорака",
"1f69c": "трактор",
"1f6f5": "скутер",
- "1f6fa": "авто-рикша",
+ "1f6fa": "моторизирана рикша",
"1f6f4": "тротинет",
"1f6f9": "скејтборд",
"1f6fc": "ролшуи",
@@ -5401,7 +6175,7 @@
"1f4b3": "кредитна картичка",
"270f": "молив",
"1f58c": "четка за боење",
- "1f58d": "креон",
+ "1f58d": "мрсна боица",
"1f4cc": "притискач",
"1f4ce": "спојувалка",
"1f511": "клуч",
@@ -5805,7 +6579,7 @@
"1f36b": "ချောကလက် အချောင်း",
"1f36c": "သကြားလုံး",
"1f36d": "ချိုချဉ်ပလုတ်တုတ်",
- "1fad6": "ခရား",
+ "1fad6": "ကရား",
"1f9c3": "အဖျော်ရေ ဘူး",
"1f9c9": "ချီမာရအို",
"1f9ed": "သံလိုက်အိမ်မြှောင်",
@@ -5934,6 +6708,264 @@
"1f9f9": "တံမြက်စည်း",
"1f5ff": "မိုအိုင်"
},
+ "nb": {
+ "1f47d": "romvesen",
+ "1f916": "robot",
+ "1f9e0": "hjerne",
+ "1f441": "øye",
+ "1f9d9": "trollperson",
+ "1f9da": "fe",
+ "1f9dc": "havperson",
+ "1f435": "apefjes",
+ "1f9a7": "orangutang",
+ "1f436": "hundefjes",
+ "1f43a": "ulv",
+ "1f98a": "rev",
+ "1f99d": "vaskebjørn",
+ "1f431": "kattefjes",
+ "1f981": "løve",
+ "1f42f": "tigerfjes",
+ "1f434": "hestefjes",
+ "1f984": "enhjørning",
+ "1f993": "sebra",
+ "1f98c": "hjort",
+ "1f42e": "kufjes",
+ "1f437": "grisefjes",
+ "1f417": "villsvin",
+ "1f42a": "dromedar",
+ "1f999": "lama",
+ "1f992": "sjiraff",
+ "1f418": "elefant",
+ "1f9a3": "mammut",
+ "1f98f": "neshorn",
+ "1f42d": "musefjes",
+ "1f430": "kaninfjes",
+ "1f43f": "ekorn",
+ "1f994": "pinnsvin",
+ "1f987": "flaggermus",
+ "1f43b": "bjørn",
+ "1f428": "koala",
+ "1f9a5": "dovendyr",
+ "1f9a6": "oter",
+ "1f998": "kenguru",
+ "1f425": "kylling forfra",
+ "1f426": "fugl",
+ "1f54a": "fredsdue",
+ "1f986": "and",
+ "1f989": "ugle",
+ "1f9a4": "dronte",
+ "1fab6": "fjær",
+ "1f9a9": "flamingo",
+ "1f99a": "påfugl",
+ "1f99c": "papegøye",
+ "1f40a": "krokodille",
+ "1f422": "skilpadde",
+ "1f98e": "firfisle",
+ "1f40d": "slange",
+ "1f432": "dragefjes",
+ "1f995": "sauropod",
+ "1f433": "sprutende hval",
+ "1f42c": "delfin",
+ "1f9ad": "sel",
+ "1f41f": "fisk",
+ "1f420": "tropisk fisk",
+ "1f988": "hai",
+ "1f419": "blekksprut",
+ "1f41a": "spiralskjell",
+ "1f40c": "snegle",
+ "1f98b": "sommerfugl",
+ "1f41b": "insekt",
+ "1f41d": "honningbie",
+ "1f41e": "marihøne",
+ "1f490": "bukett",
+ "1f339": "rose",
+ "1f33a": "hibiskus",
+ "1f33b": "solsikke",
+ "1f337": "tulipan",
+ "1f332": "bartre",
+ "1f333": "løvtre",
+ "1f334": "palme",
+ "1f335": "kaktus",
+ "1f33f": "urteblader",
+ "1f341": "lønneblad",
+ "1f344": "sopp",
+ "1f347": "druer",
+ "1f348": "melon",
+ "1f349": "vannmelon",
+ "1f34a": "mandarin",
+ "1f34b": "sitron",
+ "1f34c": "banan",
+ "1f34d": "ananas",
+ "1f96d": "mango",
+ "1f34f": "grønt eple",
+ "1f350": "pære",
+ "1f351": "fersken",
+ "1f352": "kirsebær",
+ "1f353": "jordbær",
+ "1fad0": "blåbær",
+ "1f95d": "kiwi",
+ "1f345": "tomat",
+ "1fad2": "oliven",
+ "1f965": "kokosnøtt",
+ "1f951": "avokado",
+ "1f346": "aubergine",
+ "1f955": "gulrot",
+ "1f33d": "maiskolbe",
+ "1f336": "rød chili",
+ "1f96c": "bladgrønnsaker",
+ "1f966": "brokkoli",
+ "1f9c5": "løk",
+ "1f95c": "peanøtter",
+ "1f950": "croissant",
+ "1f956": "bagett",
+ "1f968": "saltkringle",
+ "1f96f": "bagel",
+ "1f95e": "pannekaker",
+ "1f9c7": "belgisk vaffel",
+ "1f354": "hamburger",
+ "1f355": "pizzastykke",
+ "1f32d": "pølse med brød",
+ "1f32e": "taco",
+ "1f37f": "popkorn",
+ "1f980": "krabbe",
+ "1f99e": "hummer",
+ "1f368": "iskrem",
+ "1f369": "donut",
+ "1f36a": "kjeks",
+ "1f382": "bursdagskake",
+ "1f9c1": "cupcake",
+ "1f36b": "sjokoladeplate",
+ "1f36c": "godteri",
+ "1f36d": "kjærlighet på pinne",
+ "1fad6": "tekanne",
+ "1f9c3": "drikkekartong",
+ "1f9c9": "mate",
+ "1f9ed": "kompass",
+ "1f3d4": "snødekt fjell",
+ "1f30b": "vulkan",
+ "1f3d5": "telttur",
+ "1f3dd": "øde øy",
+ "1f3e1": "hus med hage",
+ "26f2": "fontene",
+ "1f3a0": "karusellhest",
+ "1f3a1": "pariserhjul",
+ "1f3a2": "berg-og-dal-bane",
+ "1f488": "barberskilt",
+ "1f686": "tog",
+ "1f68b": "trikkevogn",
+ "1f68d": "motgående buss",
+ "1f695": "taxi",
+ "1f697": "bil",
+ "1f69a": "varebil",
+ "1f69c": "traktor",
+ "1f6f5": "scooter",
+ "1f6fa": "autorickshaw",
+ "1f6f4": "sparkesykkel",
+ "1f6f9": "skateboard",
+ "1f6fc": "rulleskøyter",
+ "2693": "anker",
+ "26f5": "seilbåt",
+ "1f6f6": "kano",
+ "1f6a4": "speedbåt",
+ "1f6a2": "skip",
+ "2708": "fly",
+ "1f681": "helikopter",
+ "1f6a0": "kabelbane",
+ "1f6f0": "satellitt",
+ "1f680": "rakett",
+ "1f6f8": "flygende tallerken",
+ "23f0": "vekkerklokke",
+ "1f319": "månesigd",
+ "1f321": "termometer",
+ "2600": "sol",
+ "1fa90": "planet med ringer",
+ "1f31f": "lysende stjerne",
+ "1f300": "syklon",
+ "1f308": "regnbue",
+ "2602": "paraply",
+ "2744": "snøfnugg",
+ "2604": "komet",
+ "1f525": "ild",
+ "1f4a7": "dråpe",
+ "1f30a": "bølge",
+ "1f383": "gresskarlykt",
+ "2728": "stjerner",
+ "1f388": "ballong",
+ "1f389": "smell-bon-bon",
+ "1f38f": "koinobori",
+ "1f380": "sløyfe",
+ "1f381": "gave",
+ "1f39f": "inngangsbilletter",
+ "1f3c6": "trofé",
+ "26bd": "fotball",
+ "1f3c0": "basketball",
+ "1f3c8": "amerikansk fotball",
+ "1f3be": "tennis",
+ "1f94f": "frisbee",
+ "1f3d3": "bordtennis",
+ "1f3f8": "badminton",
+ "1f93f": "dykkermaske",
+ "1f94c": "curlingstein",
+ "1f3af": "blink",
+ "1fa80": "jojo",
+ "1fa81": "papirdrage",
+ "1f52e": "krystallkule",
+ "1f3b2": "terning",
+ "1f9e9": "puslespillbrikke",
+ "1f3a8": "malerpalett",
+ "1f9f5": "tråd",
+ "1f455": "t-skjorte",
+ "1f9e6": "sokker",
+ "1f457": "kjole",
+ "1fa73": "shorts",
+ "1f392": "skolesekk",
+ "1f45f": "joggesko",
+ "1f451": "krone",
+ "1f9e2": "caps",
+ "1f484": "leppestift",
+ "1f48d": "ring",
+ "1f48e": "diamant",
+ "1f4e2": "høyttaler",
+ "1f3b6": "noter",
+ "1f399": "studiomikrofon",
+ "1f4fb": "radio",
+ "1f3b7": "saksofon",
+ "1fa97": "trekkspill",
+ "1f3b8": "gitar",
+ "1f3ba": "trompet",
+ "1f3bb": "fiolin",
+ "1fa95": "banjo",
+ "1f941": "tromme",
+ "260e": "telefon",
+ "1f50b": "batteri",
+ "1f4bf": "optisk plate",
+ "1f9ee": "kuleramme",
+ "1f3ac": "filmklapper",
+ "1f4a1": "lyspære",
+ "1f526": "lommelykt",
+ "1f3ee": "rød papirlykt",
+ "1f4d5": "lukket bok",
+ "1f3f7": "etikett",
+ "1f4b3": "kredittkort",
+ "270f": "blyant",
+ "1f58c": "pensel",
+ "1f58d": "fargestift",
+ "1f4cc": "stift",
+ "1f4ce": "binders",
+ "1f511": "nøkkel",
+ "1fa83": "bumerang",
+ "1f3f9": "pil og bue",
+ "2696": "likearmet skålvekt",
+ "1f9f2": "magnet",
+ "1f9ea": "prøverør",
+ "1f9ec": "dna",
+ "1f52c": "mikroskop",
+ "1f52d": "teleskop",
+ "1f4e1": "satellittantenne",
+ "1fa91": "stol",
+ "1f9f9": "feiekost",
+ "1f5ff": "moai-statue"
+ },
"nl": {
"1f47d": "buitenaards wezen",
"1f916": "robot",
@@ -6561,7 +7593,7 @@
"1f950": "croissant",
"1f956": "baguete",
"1f968": "pretzel",
- "1f96f": "rosca",
+ "1f96f": "bagel",
"1f95e": "panquecas",
"1f9c7": "waffle",
"1f354": "hambúrguer",
@@ -6826,7 +7858,7 @@
"1f355": "pizza",
"1f32d": "hot dog",
"1f32e": "taco",
- "1f37f": "floricele de porumb",
+ "1f37f": "popcorn",
"1f980": "rac",
"1f99e": "homar",
"1f368": "înghețată",
@@ -7224,6 +8256,264 @@
"1f9f9": "метла",
"1f5ff": "истукан"
},
+ "sq": {
+ "1f47d": "alien",
+ "1f916": "fytyrë roboti",
+ "1f9e0": "tru",
+ "1f441": "sy",
+ "1f9d9": "magjistar",
+ "1f9da": "zanë",
+ "1f9dc": "sirenë deti",
+ "1f435": "fytyrë majmuni",
+ "1f9a7": "orangutang",
+ "1f436": "fytyrë qeni",
+ "1f43a": "fytyrë ujku",
+ "1f98a": "fytyrë dhelpre",
+ "1f99d": "rakun",
+ "1f431": "fytyrë maceje",
+ "1f981": "fytyrë luani",
+ "1f42f": "fytyrë tigri",
+ "1f434": "fytyrë kali",
+ "1f984": "fytyrë njëbrirëshi",
+ "1f993": "zebër",
+ "1f98c": "dre",
+ "1f42e": "fytyrë lope",
+ "1f437": "fytyrë derri",
+ "1f417": "derr i egër",
+ "1f42a": "gamile",
+ "1f999": "lamë",
+ "1f992": "gjirafë",
+ "1f418": "elefant",
+ "1f9a3": "mamuth",
+ "1f98f": "rinoqeront",
+ "1f42d": "fytyrë miu",
+ "1f430": "fytyrë lepuri",
+ "1f43f": "ketër",
+ "1f994": "iriq",
+ "1f987": "lakuriq nate",
+ "1f43b": "fytyrë ariu",
+ "1f428": "koalë",
+ "1f9a5": "majmun i Bengalit",
+ "1f9a6": "vidër",
+ "1f998": "kangur",
+ "1f425": "zog pule përballë",
+ "1f426": "zog",
+ "1f54a": "pëllumb",
+ "1f986": "rosak",
+ "1f989": "buf",
+ "1f9a4": "zog i rëndë",
+ "1fab6": "pendë",
+ "1f9a9": "flamingo",
+ "1f99a": "pallua",
+ "1f99c": "papagall",
+ "1f40a": "krokodil",
+ "1f422": "breshkë",
+ "1f98e": "hardhucë",
+ "1f40d": "gjarpër",
+ "1f432": "fytyrë dragoi",
+ "1f995": "sauropod",
+ "1f433": "balenë që hedh ujë",
+ "1f42c": "delfin",
+ "1f9ad": "fokë",
+ "1f41f": "peshk",
+ "1f420": "peshk tropikal",
+ "1f988": "peshkaqen",
+ "1f419": "oktapod",
+ "1f41a": "guaskë spirale",
+ "1f40c": "kërmill",
+ "1f98b": "flutur",
+ "1f41b": "shumëkëmbësh",
+ "1f41d": "bletë",
+ "1f41e": "mollëkuqe",
+ "1f490": "buqetë",
+ "1f339": "trëndafil",
+ "1f33a": "hibisk",
+ "1f33b": "luledielli",
+ "1f337": "tulipan",
+ "1f332": "gjelbërim i përjetshëm",
+ "1f333": "pemë gjetherënëse",
+ "1f334": "palmë",
+ "1f335": "kaktus",
+ "1f33f": "erëza",
+ "1f341": "gjethe panje",
+ "1f344": "kërpudhë",
+ "1f347": "rrush",
+ "1f348": "pjepër",
+ "1f349": "shalqi",
+ "1f34a": "mandarinë",
+ "1f34b": "limon",
+ "1f34c": "banane",
+ "1f34d": "ananas",
+ "1f96d": "mango",
+ "1f34f": "mollë jeshile",
+ "1f350": "dardhë",
+ "1f351": "pjeshkë",
+ "1f352": "qershi",
+ "1f353": "luleshtrydhe",
+ "1fad0": "boronica",
+ "1f95d": "kivi",
+ "1f345": "domate",
+ "1fad2": "ulli",
+ "1f965": "arrë kokosi",
+ "1f951": "avokado",
+ "1f346": "patëllxhan",
+ "1f955": "karotë",
+ "1f33d": "kalli misri",
+ "1f336": "spec djegës",
+ "1f96c": "sallatë",
+ "1f966": "brokoli",
+ "1f9c5": "qepë",
+ "1f95c": "kikirik",
+ "1f950": "kroasant",
+ "1f956": "bagetë",
+ "1f968": "gjevrek i përdredhur",
+ "1f96f": "gjevrek",
+ "1f95e": "petulla",
+ "1f9c7": "vafer",
+ "1f354": "hamburger",
+ "1f355": "pica",
+ "1f32d": "hot-dog",
+ "1f32e": "tako",
+ "1f37f": "kokoshka",
+ "1f980": "gaforre",
+ "1f99e": "karavidhe",
+ "1f368": "akullore",
+ "1f369": "petull e ëmbël",
+ "1f36a": "biskotë",
+ "1f382": "tortë ditëlindjeje",
+ "1f9c1": "kek i vogël",
+ "1f36b": "çokollatë",
+ "1f36c": "ëmbëlsirë",
+ "1f36d": "lëpirëse",
+ "1fad6": "çajnik",
+ "1f9c3": "kuti pijeje",
+ "1f9c9": "kimarrao",
+ "1f9ed": "busull",
+ "1f3d4": "mal i mbuluar me borë në majë",
+ "1f30b": "vullkan",
+ "1f3d5": "kamp",
+ "1f3dd": "ishull shkretëtirë",
+ "1f3e1": "shtëpi me kopsht",
+ "26f2": "shatërvan",
+ "1f3a0": "kalë në karusel",
+ "1f3a1": "rrotullame",
+ "1f3a2": "tren lojërash me valëzim",
+ "1f488": "shenja e berberit",
+ "1f686": "tren",
+ "1f68b": "vagon tramvaji",
+ "1f68d": "autobus që vjen",
+ "1f695": "taksi",
+ "1f697": "automobil",
+ "1f69a": "kamion transporti",
+ "1f69c": "traktor",
+ "1f6f5": "skuter",
+ "1f6fa": "autorikshë",
+ "1f6f4": "ballëz dyrrotëshe",
+ "1f6f9": "dërrasë rrëshqitëse",
+ "1f6fc": "rollerskejt",
+ "2693": "spirancë",
+ "26f5": "varkë me vela",
+ "1f6f6": "kaike",
+ "1f6a4": "motobarkë e shpejtë",
+ "1f6a2": "anije",
+ "2708": "aeroplan",
+ "1f681": "helikopter",
+ "1f6a0": "teleferik në mal",
+ "1f6f0": "satelit",
+ "1f680": "raketë",
+ "1f6f8": "disk fluturues",
+ "23f0": "orë me zile",
+ "1f319": "hënë e ngrënë",
+ "1f321": "termometër",
+ "2600": "diell",
+ "1fa90": "planet me unazë",
+ "1f31f": "yll që shkëlqen",
+ "1f300": "ciklon",
+ "1f308": "ylber",
+ "2602": "çadër",
+ "2744": "flokë bore",
+ "2604": "kometë",
+ "1f525": "zjarr",
+ "1f4a7": "pikëz",
+ "1f30a": "dallgë uji",
+ "1f383": "kungulli i Halloween",
+ "2728": "xixëllima",
+ "1f388": "tullumbace",
+ "1f389": "fishek feste",
+ "1f38f": "koinobori",
+ "1f380": "fjongo",
+ "1f381": "dhuratë e mbështjellë",
+ "1f39f": "biletat e hyrjes",
+ "1f3c6": "trofe",
+ "26bd": "top futbolli",
+ "1f3c0": "basketboll",
+ "1f3c8": "futboll amerikan",
+ "1f3be": "tenis",
+ "1f94f": "hedhje disku",
+ "1f3d3": "pingpong",
+ "1f3f8": "badminton",
+ "1f93f": "maskë zhytjeje",
+ "1f94c": "gur kurlingu",
+ "1f3af": "goditje e drejtpërdrejtë",
+ "1fa80": "jo-jo",
+ "1fa81": "balonë",
+ "1f52e": "top kristali",
+ "1f3b2": "zar loje",
+ "1f9e9": "lojë me bashkim pjesësh figure",
+ "1f3a8": "paleta e artistit",
+ "1f9f5": "fije",
+ "1f455": "bluzë",
+ "1f9e6": "çorape",
+ "1f457": "fustan",
+ "1fa73": "pantallona të shkurtra",
+ "1f392": "çantë shkolle",
+ "1f45f": "atlete",
+ "1f451": "kurorë",
+ "1f9e2": "kapelë \"sqep\"",
+ "1f484": "buzëkuq",
+ "1f48d": "unazë",
+ "1f48e": "gur i çmuar",
+ "1f4e2": "altoparlant me zë",
+ "1f3b6": "nota muzikore",
+ "1f399": "mikrofon studioje",
+ "1f4fb": "radio",
+ "1f3b7": "saksofon",
+ "1fa97": "fizarmonikë",
+ "1f3b8": "kitarë",
+ "1f3ba": "trombë",
+ "1f3bb": "violinë",
+ "1fa95": "banxho",
+ "1f941": "daulle",
+ "260e": "telefon",
+ "1f50b": "bateri",
+ "1f4bf": "disk optik",
+ "1f9ee": "abak",
+ "1f3ac": "tabelë dublimi e skenës",
+ "1f4a1": "llambë",
+ "1f526": "elektrik dore",
+ "1f3ee": "fener me letër të kuqe",
+ "1f4d5": "libër i mbyllur",
+ "1f3f7": "etiketë",
+ "1f4b3": "kartë krediti",
+ "270f": "laps",
+ "1f58c": "furçë piktori",
+ "1f58d": "shkumës me ngjyrë",
+ "1f4cc": "gjilpërë kapëse",
+ "1f4ce": "kapëse letrash",
+ "1f511": "çelës",
+ "1fa83": "bumerang",
+ "1f3f9": "hark dhe shigjetë",
+ "2696": "peshore",
+ "1f9f2": "magnet",
+ "1f9ea": "epruvetë",
+ "1f9ec": "ADN",
+ "1f52c": "mikroskop",
+ "1f52d": "teleskop",
+ "1f4e1": "antenë satelitore",
+ "1fa91": "karrige",
+ "1f9f9": "fshesë",
+ "1f5ff": "moai"
+ },
"sv": {
"1f47d": "utomjording",
"1f916": "robotansikte",
@@ -8268,13 +9558,13 @@
"1f9a7": "đười ươi",
"1f436": "mặt cún",
"1f43a": "mặt chó sói",
- "1f98a": "mặt cáo",
+ "1f98a": "cáo",
"1f99d": "gấu trúc",
"1f431": "mặt mèo",
"1f981": "mặt sư tử",
"1f42f": "mặt hổ",
"1f434": "mặt ngựa",
- "1f984": "mặt kỳ lân",
+ "1f984": "kỳ lân",
"1f993": "ngựa vằn",
"1f98c": "hươu",
"1f42e": "mặt bò",
@@ -8291,7 +9581,7 @@
"1f43f": "sóc chuột",
"1f994": "nhím",
"1f987": "dơi",
- "1f43b": "mặt gấu",
+ "1f43b": "gấu",
"1f428": "gấu túi",
"1f9a5": "con lười",
"1f9a6": "rái cá",
@@ -8341,7 +9631,7 @@
"1f348": "dưa",
"1f349": "dưa hấu",
"1f34a": "quýt",
- "1f34b": "chanh",
+ "1f34b": "chanh tây",
"1f34c": "chuối",
"1f34d": "dứa",
"1f96d": "xoài",
@@ -8978,7 +10268,7 @@
"1f9e9": "拼圖",
"1f3a8": "調色板",
"1f9f5": "線",
- "1f455": "T卹",
+ "1f455": "T恤",
"1f9e6": "襪子",
"1f457": "洋裝",
"1fa73": "短泳褲",
=====================================
browser/components/torpreferences/content/bridgemoji/svgs/README.txt
=====================================
@@ -1 +1 @@
-Generated by tools/torbrowser/update_emojis.py on 2023-04-03
\ No newline at end of file
+Generated by tools/torbrowser/update_emojis.py on 2024-08-06
=====================================
tools/torbrowser/update_emojis.py
=====================================
@@ -17,6 +17,8 @@ SCRIPT_PATH = Path(__file__).relative_to(FIREFOX_ROOT)
LANGS = [
"ar",
+ "be",
+ "bg",
"ca",
"cs",
"da",
@@ -25,6 +27,7 @@ LANGS = [
"en",
"es",
"fa",
+ "fi",
"fr",
"ga",
"he",
@@ -39,12 +42,13 @@ LANGS = [
"mk",
"ms",
"my",
- # "nb", # Empty file, currently!!
+ "nb", # no
"nl",
"pl",
"pt",
"ro",
"ru",
+ "sq",
"sv",
"th",
"tr",
@@ -57,7 +61,7 @@ LANGS = [
def generated_message():
"""Get the message describing the generation script and time."""
- date = datetime.date.isoformat(datetime.datetime.utcnow())
+ date = datetime.date.isoformat(datetime.datetime.now(datetime.UTC))
return f"Generated by {SCRIPT_PATH} on {date}"
@@ -83,7 +87,7 @@ def copy_emoji_svgs(emoji_codepoints, from_dir, to_dir):
file.unlink()
with open(to_dir / "README.txt", "w", encoding="utf8") as file:
- file.write(generated_message())
+ file.write(generated_message() + "\n")
def get_flag_codepoints(file):
@@ -195,6 +199,8 @@ def save_bridge_emoji_descriptions(from_dir):
filename = "zh"
elif lang == "zh-TW":
filename = "zh_Hant"
+ elif lang == "nb":
+ filename = "no"
else:
filename = lang
with open(
@@ -204,6 +210,7 @@ def save_bridge_emoji_descriptions(from_dir):
with open(BRIDGE_DIR / "annotations.json", "w", encoding="utf8") as file:
json.dump(data, file, ensure_ascii=False, indent=2)
+ file.write("\n")
parser = argparse.ArgumentParser(
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c02100…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/c02100…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
3944afd9 by Henry Wilkes at 2024-08-21T02:53:48+00:00
fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
Bug 43066: Ensure the about:torconnect title icon changes.
- - - - -
1 changed file:
- toolkit/components/torconnect/content/aboutTorConnect.css
Changes:
=====================================
toolkit/components/torconnect/content/aboutTorConnect.css
=====================================
@@ -273,15 +273,15 @@ body.aboutTorConnect .title {
padding-block-start: 0;
}
-.title.offline {
+body.aboutTorConnect .title.offline {
background-image: url("chrome://global/content/torconnect/connection-failure.svg");
}
-.title.assist, .title.final {
+body.aboutTorConnect .title:is(.assist, .final) {
background-image: url("chrome://global/content/torconnect/tor-connect-broken.svg");
}
-.title.location {
+body.aboutTorConnect .title.location {
background-image: url("chrome://global/content/torconnect/connection-location.svg");
stroke: var(--in-content-warning-icon-color);
}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3944afd…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/3944afd…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/mullvad-browser][mullvad-browser-128.1.0esr-14.0-1] 2 commits: fixup! Bug 40925: Implemented the Security Level component
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch mullvad-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
2f441e16 by Henry Wilkes at 2024-08-21T02:32:56+00:00
fixup! Bug 40925: Implemented the Security Level component
Bug 41817: Drop browser-colors.css.
- - - - -
e967b026 by Henry Wilkes at 2024-08-21T02:33:00+00:00
fixup! Bug 41659: Add canonical color definitions to base-browser
Bug 41817: Drop browser-colors.css.
- - - - -
4 changed files:
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/themes/shared/browser-shared.css
- − toolkit/themes/shared/browser-colors.css
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
Changes:
=====================================
browser/components/securitylevel/content/securityLevelPanel.css
=====================================
@@ -51,7 +51,7 @@
#securityLevel-custom {
border-radius: 4px;
- background-color: var(--warning-color);
+ background-color: var(--warning-icon-bgcolor);
color: black;
padding: 0.4em 0.5em;
margin-inline-start: 1em;
=====================================
browser/themes/shared/browser-shared.css
=====================================
@@ -26,7 +26,6 @@
@import url("chrome://browser/skin/customizableui/customizeMode.css");
@import url("chrome://browser/skin/UITour.css");
@import url("chrome://browser/skin/formautofill-notification.css");
-@import url("chrome://global/skin/browser-colors.css");
@namespace html url("http://www.w3.org/1999/xhtml");
=====================================
toolkit/themes/shared/browser-colors.css deleted
=====================================
@@ -1,97 +0,0 @@
-:root {
- /* photon colors, not all of them are available for whatever reason
- in firefox, so here they are */
-
- --magenta-50: #ff1ad9;
- --magenta-60: #ed00b5;
- --magenta-70: #b5007f;
- --magenta-80: #7d004f;
- --magenta-90: #440027;
-
- --purple-30: #c069ff;
- --purple-40: #ad3bff;
- --purple-50: #9400ff;
- --purple-60: #8000d7;
- --purple-70: #6200a4;
- --purple-80: #440071;
- --purple-90: #25003e;
-
- --blue-40: #45a1ff;
- --blue-50: #0a84ff;
- --blue-50-a30: rgba(10, 132, 255, 0.3);
- --blue-60: #0060df;
- --blue-70: #003eaa;
- --blue-80: #002275;
- --blue-90: #000f40;
-
- --teal-50: #00feff;
- --teal-60: #00c8d7;
- --teal-70: #008ea4;
- --teal-80: #005a71;
- --teal-90: #002d3e;
-
- --green-50: #30e60b;
- --green-60: #12bc00;
- --green-70: #058b00;
- --green-80: #006504;
- --green-90: #003706;
-
- --yellow-50: #ffe900;
- --yellow-60: #d7b600;
- --yellow-70: #a47f00;
- --yellow-80: #715100;
- --yellow-90: #3e2800;
-
- --red-50: #ff0039;
- --red-60: #d70022;
- --red-70: #a4000f;
- --red-80: #5a0002;
- --red-90: #3e0200;
-
- --orange-50: #ff9400;
- --orange-60: #d76e00;
- --orange-70: #a44900;
- --orange-80: #712b00;
- --orange-90: #3e1300;
-
- --grey-10: #f9f9fa;
- --grey-10-a10: rgba(249, 249, 250, 0.1);
- --grey-10-a20: rgba(249, 249, 250, 0.2);
- --grey-10-a40: rgba(249, 249, 250, 0.4);
- --grey-10-a60: rgba(249, 249, 250, 0.6);
- --grey-10-a80: rgba(249, 249, 250, 0.8);
- --grey-20: #ededf0;
- --grey-30: #d7d7db;
- --grey-40: #b1b1b3;
- --grey-50: #737373;
- --grey-60: #4a4a4f;
- --grey-70: #38383d;
- --grey-80: #2a2a2e;
- --grey-90: #0c0c0d;
- --grey-90-a05: rgba(12, 12, 13, 0.05);
- --grey-90-a10: rgba(12, 12, 13, 0.1);
- --grey-90-a20: rgba(12, 12, 13, 0.2);
- --grey-90-a30: rgba(12, 12, 13, 0.3);
- --grey-90-a40: rgba(12, 12, 13, 0.4);
- --grey-90-a50: rgba(12, 12, 13, 0.5);
- --grey-90-a60: rgba(12, 12, 13, 0.6);
- --grey-90-a70: rgba(12, 12, 13, 0.7);
- --grey-90-a80: rgba(12, 12, 13, 0.8);
- --grey-90-a90: rgba(12, 12, 13, 0.9);
-
- --ink-70: #363959;
- --ink-80: #202340;
- --ink-90: #0f1126;
-
- --white-100: #ffffff;
-
- /* TODO: Switch to some Firefox variable, once Mozilla adds one for this
- color. Matches --warning-icon-bgcolor (but not on the dark theme variant). */
- --warning-color: #ffa436;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --warning-color: #ffbd4f;
- }
-}
=====================================
toolkit/themes/shared/minimal-toolkit.jar.inc.mn
=====================================
@@ -45,5 +45,3 @@ toolkit.jar:
# Text recognition widget
skin/classic/global/media/textrecognition.css (../../shared/media/textrecognition.css)
-
- skin/classic/global/browser-colors.css (../../shared/browser-colors.css)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/88…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/compare/88…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][base-browser-128.1.0esr-14.0-1] 2 commits: fixup! Bug 40925: Implemented the Security Level component
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch base-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
feef7a00 by Henry Wilkes at 2024-08-21T02:31:01+00:00
fixup! Bug 40925: Implemented the Security Level component
Bug 41817: Drop browser-colors.css.
- - - - -
1ea7af2d by Henry Wilkes at 2024-08-21T02:31:46+00:00
fixup! Bug 41659: Add canonical color definitions to base-browser
Bug 41817: Drop browser-colors.css.
- - - - -
4 changed files:
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/themes/shared/browser-shared.css
- − toolkit/themes/shared/browser-colors.css
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
Changes:
=====================================
browser/components/securitylevel/content/securityLevelPanel.css
=====================================
@@ -51,7 +51,7 @@
#securityLevel-custom {
border-radius: 4px;
- background-color: var(--warning-color);
+ background-color: var(--warning-icon-bgcolor);
color: black;
padding: 0.4em 0.5em;
margin-inline-start: 1em;
=====================================
browser/themes/shared/browser-shared.css
=====================================
@@ -26,7 +26,6 @@
@import url("chrome://browser/skin/customizableui/customizeMode.css");
@import url("chrome://browser/skin/UITour.css");
@import url("chrome://browser/skin/formautofill-notification.css");
-@import url("chrome://global/skin/browser-colors.css");
@namespace html url("http://www.w3.org/1999/xhtml");
=====================================
toolkit/themes/shared/browser-colors.css deleted
=====================================
@@ -1,97 +0,0 @@
-:root {
- /* photon colors, not all of them are available for whatever reason
- in firefox, so here they are */
-
- --magenta-50: #ff1ad9;
- --magenta-60: #ed00b5;
- --magenta-70: #b5007f;
- --magenta-80: #7d004f;
- --magenta-90: #440027;
-
- --purple-30: #c069ff;
- --purple-40: #ad3bff;
- --purple-50: #9400ff;
- --purple-60: #8000d7;
- --purple-70: #6200a4;
- --purple-80: #440071;
- --purple-90: #25003e;
-
- --blue-40: #45a1ff;
- --blue-50: #0a84ff;
- --blue-50-a30: rgba(10, 132, 255, 0.3);
- --blue-60: #0060df;
- --blue-70: #003eaa;
- --blue-80: #002275;
- --blue-90: #000f40;
-
- --teal-50: #00feff;
- --teal-60: #00c8d7;
- --teal-70: #008ea4;
- --teal-80: #005a71;
- --teal-90: #002d3e;
-
- --green-50: #30e60b;
- --green-60: #12bc00;
- --green-70: #058b00;
- --green-80: #006504;
- --green-90: #003706;
-
- --yellow-50: #ffe900;
- --yellow-60: #d7b600;
- --yellow-70: #a47f00;
- --yellow-80: #715100;
- --yellow-90: #3e2800;
-
- --red-50: #ff0039;
- --red-60: #d70022;
- --red-70: #a4000f;
- --red-80: #5a0002;
- --red-90: #3e0200;
-
- --orange-50: #ff9400;
- --orange-60: #d76e00;
- --orange-70: #a44900;
- --orange-80: #712b00;
- --orange-90: #3e1300;
-
- --grey-10: #f9f9fa;
- --grey-10-a10: rgba(249, 249, 250, 0.1);
- --grey-10-a20: rgba(249, 249, 250, 0.2);
- --grey-10-a40: rgba(249, 249, 250, 0.4);
- --grey-10-a60: rgba(249, 249, 250, 0.6);
- --grey-10-a80: rgba(249, 249, 250, 0.8);
- --grey-20: #ededf0;
- --grey-30: #d7d7db;
- --grey-40: #b1b1b3;
- --grey-50: #737373;
- --grey-60: #4a4a4f;
- --grey-70: #38383d;
- --grey-80: #2a2a2e;
- --grey-90: #0c0c0d;
- --grey-90-a05: rgba(12, 12, 13, 0.05);
- --grey-90-a10: rgba(12, 12, 13, 0.1);
- --grey-90-a20: rgba(12, 12, 13, 0.2);
- --grey-90-a30: rgba(12, 12, 13, 0.3);
- --grey-90-a40: rgba(12, 12, 13, 0.4);
- --grey-90-a50: rgba(12, 12, 13, 0.5);
- --grey-90-a60: rgba(12, 12, 13, 0.6);
- --grey-90-a70: rgba(12, 12, 13, 0.7);
- --grey-90-a80: rgba(12, 12, 13, 0.8);
- --grey-90-a90: rgba(12, 12, 13, 0.9);
-
- --ink-70: #363959;
- --ink-80: #202340;
- --ink-90: #0f1126;
-
- --white-100: #ffffff;
-
- /* TODO: Switch to some Firefox variable, once Mozilla adds one for this
- color. Matches --warning-icon-bgcolor (but not on the dark theme variant). */
- --warning-color: #ffa436;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --warning-color: #ffbd4f;
- }
-}
=====================================
toolkit/themes/shared/minimal-toolkit.jar.inc.mn
=====================================
@@ -45,5 +45,3 @@ toolkit.jar:
# Text recognition widget
skin/classic/global/media/textrecognition.css (../../shared/media/textrecognition.css)
-
- skin/classic/global/browser-colors.css (../../shared/browser-colors.css)
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9781ac…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/9781ac…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 8 commits: Bug 41817: tor-browser semantic colors.
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
a0742a1b by Henry Wilkes at 2024-08-21T02:05:06+00:00
Bug 41817: tor-browser semantic colors.
- - - - -
8639aaa5 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 7494: Create local home page for TBB.
Bug 41817: Use semantic tor color names in about:tor.
- - - - -
3cf73e78 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 41817: Use semantic color names for tor preferences.
- - - - -
2595f644 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 27476: Implement about:torconnect captive portal within Tor Browser
Bug 41817: Use semantic tor color names for tor buttons.
Also, for about:torconnect:
+ Use dark-mode variant for the buttons colors.
+ Add purple focus outline to the select element to match the buttons.
+ Stop applying the "primary" class to the cancel button.
+ Remove the checkbox styling since the checkbox was replaced with a
moz-toggle-button.
+ Removed the "danger-button" class since it does not sufficiently
telegraph a distinguished action, and has no dark-mode variant.
+ Use warning color from common-shared.css.
+ Drop --grey-40 for breadcrumb arrows, which did not adjust to theme.
- - - - -
6d76bafb by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 21952: Implement Onion-Location
- - - - -
4eaccbd8 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 41817: Drop browser-colors.css.
- - - - -
6be73a77 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 40925: Implemented the Security Level component
Bug 41817: Drop browser-colors.css.
- - - - -
d45ef470 by Henry Wilkes at 2024-08-21T02:05:06+00:00
fixup! Bug 41659: Add canonical color definitions to base-browser
Bug 41817: Drop browser-colors.css.
- - - - -
16 changed files:
- browser/base/content/navigator-toolbox.inc.xhtml
- browser/components/abouttor/content/aboutTor.css
- browser/components/onionservices/content/authPreferences.css
- browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
- browser/components/securitylevel/content/securityLevelPanel.css
- browser/components/torpreferences/content/torPreferences.css
- browser/themes/shared/browser-shared.css
- browser/themes/shared/tor-urlbar-button.css
- toolkit/components/torconnect/content/aboutTorConnect.css
- toolkit/components/torconnect/content/aboutTorConnect.html
- toolkit/components/torconnect/content/aboutTorConnect.js
- toolkit/components/torconnect/content/torConnectTitlebarStatus.css
- − toolkit/themes/shared/browser-colors.css
- toolkit/themes/shared/desktop-jar.inc.mn
- toolkit/themes/shared/minimal-toolkit.jar.inc.mn
- + toolkit/themes/shared/tor-colors.css
Changes:
=====================================
browser/base/content/navigator-toolbox.inc.xhtml
=====================================
@@ -431,7 +431,7 @@
<hbox id="tor-connect-urlbar-button"
role="button"
- class="tor-urlbar-button"
+ class="tor-button tor-urlbar-button"
hidden="true">
<label id="tor-connect-urlbar-button-label"/>
</hbox>
=====================================
browser/components/abouttor/content/aboutTor.css
=====================================
@@ -1,4 +1,4 @@
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
body {
margin: 0;
@@ -179,7 +179,7 @@ body:not(.show-tor-check) #tor-check {
/* On dark background */
:root {
background-color: #2C0449;
- --focus-outline-color: var(--purple-30);
+ --focus-outline-color: var(--tor-focus-outline-color-dark);
--focus-outline: var(--focus-outline-width) solid var(--focus-outline-color);
--in-content-focus-outline-color: var(--focus-outline-color);
--in-content-focus-outline: var(--focus-outline);
@@ -194,14 +194,9 @@ body:not(.show-tor-check) #tor-check {
--in-content-page-color: #fbfbfe;
--in-content-text-color: #fbfbfe;
color: var(--in-content-text-color);
- --link-color: var(--purple-30);
- /* FIXME: Since we have a dark background, the color should get lighter on
- * hover, but --purple-40 and --pruple-50 are darker than --purple-30.
- * However, we do not have a standard lighter purple in our current set of
- * Photon colors.
- * See tor-browser#42025 */
- --link-color-hover: var(--purple-40);
- --link-color-active: var(--purple-50);
+ --link-color: var(--tor-link-color-dark);
+ --link-color-hover: var(--tor-link-color-hover-dark);
+ --link-color-active: var(--tor-link-color-active-dark);
}
#search-form {
@@ -209,7 +204,9 @@ body:not(.show-tor-check) #tor-check {
}
#search-form.search-input-focus-visible {
- border-color: var(--purple-60);
+ /* Use a light-themed inner-border to contrast with the dark-themed
+ * focus outline. */
+ border-color: var(--tor-focus-outline-color-light);
}
#search-form.onionized-search:not(.search-input-focus-visible) {
@@ -218,17 +215,17 @@ body:not(.show-tor-check) #tor-check {
/* Light background. */
#search-form > * {
- --focus-outline-color: var(--purple-60);
+ --focus-outline-color: var(--tor-focus-outline-color-light);
--focus-outline: var(--focus-outline-width) solid var(--focus-outline-color);
--in-content-focus-outline-color: var(--focus-outline-color);
--in-content-focus-outline: var(--focus-outline);
/* Variables used for --toggle- variables. */
- --color-accent-primary: var(--purple-60);
- --color-accent-primary-hover: var(--purple-70);
- --color-accent-primary-active: var(--purple-80);
+ --color-accent-primary: var(--tor-button-background-color-light);
+ --color-accent-primary-hover: var(--tor-button-background-color-hover-light);
+ --color-accent-primary-active: var(--tor-button-background-color-active-light);
}
#search-form.onionized-search #onionize-toggle {
- color: var(--purple-60);
+ color: var(--tor-link-color-light);
}
}
=====================================
browser/components/onionservices/content/authPreferences.css
=====================================
@@ -1,7 +1,5 @@
/* Copyright (c) 2020, The Tor Project, Inc. */
-@import url("chrome://global/skin/browser-colors.css");
-
#onionservices-savedkeys-dialog {
min-width: 45em;
}
@@ -23,5 +21,5 @@
margin-inline-end: 4px;
list-style-image: url("chrome://global/skin/icons/warning.svg");
-moz-context-properties: fill;
- fill: var(--warning-color);
+ fill: var(--in-content-warning-icon-color);
}
=====================================
browser/components/onionservices/content/onionlocation-urlbar.inc.xhtml
=====================================
@@ -1,7 +1,7 @@
# Copyright (c) 2020, The Tor Project, Inc.
<hbox id="onion-location-box"
- class="tor-urlbar-button"
+ class="tor-button tor-urlbar-button"
role="button"
hidden="true"
onclick="OnionLocationParent.buttonClick(event);">
=====================================
browser/components/securitylevel/content/securityLevelPanel.css
=====================================
@@ -51,7 +51,7 @@
#securityLevel-custom {
border-radius: 4px;
- background-color: var(--warning-color);
+ background-color: var(--warning-icon-bgcolor);
color: black;
padding: 0.4em 0.5em;
margin-inline-start: 1em;
=====================================
browser/components/torpreferences/content/torPreferences.css
=====================================
@@ -1,4 +1,4 @@
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
#category-connection > .category-icon {
@@ -137,13 +137,7 @@ button.spoof-button-disabled {
}
.bridge-status-badge.bridge-status-connected {
- color: var(--purple-60);
-}
-
-@media (prefers-color-scheme: dark) {
- .bridge-status-badge.bridge-status-connected {
- color: var(--purple-30);
- }
+ color: var(--tor-accent-color);
}
.bridge-status-badge.bridge-status-current-built-in {
@@ -990,7 +984,7 @@ hbox#torPreferences-requestBridge-incorrectCaptchaHbox {
image#torPreferences-requestBridge-errorIcon {
list-style-image: url("chrome://global/skin/icons/warning.svg");
-moz-context-properties: fill;
- fill: var(--warning-color);
+ fill: var(--in-content-warning-icon-color);
}
groupbox#torPreferences-bridges-group textarea {
=====================================
browser/themes/shared/browser-shared.css
=====================================
@@ -26,8 +26,8 @@
@import url("chrome://browser/skin/customizableui/customizeMode.css");
@import url("chrome://browser/skin/UITour.css");
@import url("chrome://browser/skin/formautofill-notification.css");
-@import url("chrome://global/skin/browser-colors.css");
@import url("chrome://browser/skin/tor-branding.css");
+@import url("chrome://global/skin/tor-colors.css");
@import url("chrome://browser/skin/tor-urlbar-button.css");
@import url("chrome://browser/skin/onionlocation.css");
=====================================
browser/themes/shared/tor-urlbar-button.css
=====================================
@@ -1,9 +1,4 @@
.tor-urlbar-button:not([hidden]) {
- --tor-urlbar-button-background-color: var(--purple-60);
- background-color: var(--tor-urlbar-button-background-color);
- /* FIXME: Use different colors for light and dark theme, rather than "white".
- * See tor-browser#41787 */
- color: white;
display: flex;
align-items: center;
gap: 0.5em;
@@ -31,8 +26,7 @@
* urlbar background, but we keep the rounded corners. */
outline: var(--focus-outline);
outline-offset: var(--focus-outline-offset);
- /* Use the background color for the outline, same as in-content buttons. */
- outline-color: var(--tor-urlbar-button-background-color);
+ outline-color: var(--tor-focus-outline-color);
/* Calculate the difference between the button's border area and the outline
* area. */
--tor-urlbar-focus-outline-difference: calc(
@@ -64,31 +58,9 @@
display: none;
}
-.tor-urlbar-button:hover {
- --tor-urlbar-button-background-color: var(--purple-70);
-}
-
-.tor-urlbar-button:hover:active {
- --tor-urlbar-button-background-color: var(--purple-80);
-}
-
-@media (prefers-color-scheme: dark) {
- .tor-urlbar-button {
- --tor-urlbar-button-background-color: var(--purple-50);
- }
-
- .tor-urlbar-button:hover {
- --tor-urlbar-button-background-color: var(--purple-60);
- }
-
- .tor-urlbar-button:hover:active {
- --tor-urlbar-button-background-color: var(--purple-70);
- }
-}
-
/* Make the button look plain like the identity #urlbar-label-box. */
.tor-urlbar-button.tor-urlbar-button-plain {
- --tor-urlbar-button-background-color: var(--urlbar-box-bgcolor);
+ background-color: var(--urlbar-box-bgcolor);
color: var(--urlbar-box-text-color);
}
@@ -97,11 +69,11 @@
}
.tor-urlbar-button.tor-urlbar-button-plain:hover {
- --tor-urlbar-button-background-color: var(--urlbar-box-hover-bgcolor);
+ background-color: var(--urlbar-box-hover-bgcolor);
color: var(--urlbar-box-hover-text-color);
}
.tor-urlbar-button.tor-urlbar-button-plain:hover:active {
- --tor-urlbar-button-background-color: var(--urlbar-box-active-bgcolor);
+ background-color: var(--urlbar-box-active-bgcolor);
color: var(--urlbar-box-hover-text-color);
}
=====================================
toolkit/components/torconnect/content/aboutTorConnect.css
=====================================
@@ -2,7 +2,7 @@
/* Copyright (c) 2021, The Tor Project, Inc. */
@import url("chrome://global/skin/error-pages.css");
-@import url("chrome://global/skin/browser-colors.css");
+@import url("chrome://global/skin/tor-colors.css");
:root {
--onion-opacity: 1;
@@ -14,23 +14,10 @@ html {
height: 100%;
}
-input[type="checkbox"]:focus, select:focus {
- outline: none!important;
- box-shadow: 0 0 0 3px var(--purple-30) !important;
- border: 1px var(--purple-80) solid !important;
-}
-
-@media (prefers-color-scheme: dark) {
- input[type="checkbox"]:focus, select:focus {
- box-shadow: 0 0 0 3px var(--purple-50)!important;
- }
-}
-
#breadcrumbs {
display: flex;
align-items: center;
margin: 0 0 24px 0;
- color: var(--grey-40);
}
#breadcrumbs.hidden {
@@ -129,23 +116,8 @@ input[type="checkbox"]:focus, select:focus {
list-style-image: url("chrome://global/content/torconnect/bridge.svg");
}
-button {
- --purple-button-text-color: rgb(251,251,254);
- --in-content-primary-button-text-color: var(--purple-button-text-color);
- --in-content-primary-button-background: var(--purple-60);
- --in-content-primary-button-text-color-hover: var(--purple-button-text-color);
- --in-content-primary-button-background-hover: var(--purple-70);
- --in-content-primary-button-text-color-active: var(--purple-button-text-color);
- --in-content-primary-button-background-active: var(--purple-80);
- --in-content-focus-outline-color: var(--purple-60);
- fill: white;
-}
-
-#cancelButton {
- color: var(--in-content-button-text-color);
- border: 1px solid var(--in-content-button-border-color);
- border-radius: 4px;
- background-color: var(--in-content-button-background);
+button, select {
+ --in-content-focus-outline-color: var(--tor-focus-outline-color);
}
#locationDropdownLabel {
@@ -157,18 +129,6 @@ button {
color: var(--text-color-error)
}
-#tryBridgeButton.danger-button {
- background-color: var(--purple-70);
-}
-
-#tryBridgeButton.danger-button:hover {
- background-color: var(--purple-80);
-}
-
-#tryBridgeButton.danger-button:active {
- background-color: var(--purple-90);
-}
-
/* this follows similar css in error-pages.css for buttons */
@media only screen and (min-width: 480px) {
form#locationDropdown {
@@ -195,35 +155,6 @@ form#locationDropdown select {
font-weight: 700;
}
-/* checkbox css */
-input[type="checkbox"]:not(:disabled) {
- background-color: var(--grey-20)!important;
-}
-
-input[type="checkbox"]:not(:disabled):checked {
- background-color: var(--purple-60)!important;
- color: white;
- fill: white;
-}
-
-input[type="checkbox"]:not(:disabled):hover {
- /* override firefox's default blue border on hover */
- border-color: var(--purple-70);
- background-color: var(--grey-30)!important;
-}
-
-input[type="checkbox"]:not(:disabled):hover:checked {
- background-color: var(--purple-70)!important;
-}
-
-input[type="checkbox"]:not(:disabled):active {
- background-color: var(--grey-40)!important;
-}
-
-input[type="checkbox"]:not(:disabled):active:checked {
- background-color: var(--purple-80)!important;
-}
-
:root {
--progressbar-shadow-start: rgba(255, 255, 255, 0.7);
--progressbar-gradient: linear-gradient(90deg, #FC00FF 0%, #00DBDE 50%, #FC00FF 100%);
@@ -352,7 +283,7 @@ body.aboutTorConnect .title {
.title.location {
background-image: url("chrome://global/content/torconnect/connection-location.svg");
- stroke: var(--warning-color);
+ stroke: var(--in-content-warning-icon-color);
}
:root {
=====================================
toolkit/components/torconnect/content/aboutTorConnect.html
=====================================
@@ -75,8 +75,8 @@
<button id="restartButton" hidden="true"></button>
<button id="configureButton" hidden="true"></button>
<button id="cancelButton" hidden="true"></button>
- <button id="connectButton" class="primary" hidden="true"></button>
- <button id="tryBridgeButton" class="primary" hidden="true"></button>
+ <button id="connectButton" hidden="true"></button>
+ <button id="tryBridgeButton" hidden="true"></button>
</span>
</div>
</div>
=====================================
toolkit/components/torconnect/content/aboutTorConnect.js
=====================================
@@ -188,8 +188,9 @@ class AboutTorConnect {
Element helper methods
*/
- show(element, primary) {
- element.classList.toggle("primary", primary !== undefined && primary);
+ show(element, primary = false) {
+ element.classList.toggle("primary", primary);
+ element.classList.toggle("tor-button", primary);
element.removeAttribute("hidden");
}
@@ -554,7 +555,7 @@ class AboutTorConnect {
} else {
this.hide(this.elements.viewLogButton);
}
- this.show(this.elements.cancelButton, true);
+ this.show(this.elements.cancelButton);
if (state.StateChanged) {
this.elements.cancelButton.focus();
}
@@ -687,7 +688,6 @@ class AboutTorConnect {
this.show(this.elements.locationDropdown);
this.elements.locationDropdownLabel.classList.toggle("error", isError);
this.show(this.elements.tryBridgeButton, true);
- this.elements.tryBridgeButton.classList.toggle("danger-button", isError);
if (buttonLabel !== undefined) {
this.elements.tryBridgeButton.textContent = buttonLabel;
}
=====================================
toolkit/components/torconnect/content/torConnectTitlebarStatus.css
=====================================
@@ -44,13 +44,7 @@
}
#tor-connect-titlebar-status.tor-connect-status-connected {
- color: var(--purple-60);
-}
-
-@media (prefers-color-scheme: dark) {
- #tor-connect-titlebar-status.tor-connect-status-connected {
- color: var(--purple-30);
- }
+ color: var(--tor-accent-color);
}
@keyframes onion-not-connected-to-connected {
=====================================
toolkit/themes/shared/browser-colors.css deleted
=====================================
@@ -1,97 +0,0 @@
-:root {
- /* photon colors, not all of them are available for whatever reason
- in firefox, so here they are */
-
- --magenta-50: #ff1ad9;
- --magenta-60: #ed00b5;
- --magenta-70: #b5007f;
- --magenta-80: #7d004f;
- --magenta-90: #440027;
-
- --purple-30: #c069ff;
- --purple-40: #ad3bff;
- --purple-50: #9400ff;
- --purple-60: #8000d7;
- --purple-70: #6200a4;
- --purple-80: #440071;
- --purple-90: #25003e;
-
- --blue-40: #45a1ff;
- --blue-50: #0a84ff;
- --blue-50-a30: rgba(10, 132, 255, 0.3);
- --blue-60: #0060df;
- --blue-70: #003eaa;
- --blue-80: #002275;
- --blue-90: #000f40;
-
- --teal-50: #00feff;
- --teal-60: #00c8d7;
- --teal-70: #008ea4;
- --teal-80: #005a71;
- --teal-90: #002d3e;
-
- --green-50: #30e60b;
- --green-60: #12bc00;
- --green-70: #058b00;
- --green-80: #006504;
- --green-90: #003706;
-
- --yellow-50: #ffe900;
- --yellow-60: #d7b600;
- --yellow-70: #a47f00;
- --yellow-80: #715100;
- --yellow-90: #3e2800;
-
- --red-50: #ff0039;
- --red-60: #d70022;
- --red-70: #a4000f;
- --red-80: #5a0002;
- --red-90: #3e0200;
-
- --orange-50: #ff9400;
- --orange-60: #d76e00;
- --orange-70: #a44900;
- --orange-80: #712b00;
- --orange-90: #3e1300;
-
- --grey-10: #f9f9fa;
- --grey-10-a10: rgba(249, 249, 250, 0.1);
- --grey-10-a20: rgba(249, 249, 250, 0.2);
- --grey-10-a40: rgba(249, 249, 250, 0.4);
- --grey-10-a60: rgba(249, 249, 250, 0.6);
- --grey-10-a80: rgba(249, 249, 250, 0.8);
- --grey-20: #ededf0;
- --grey-30: #d7d7db;
- --grey-40: #b1b1b3;
- --grey-50: #737373;
- --grey-60: #4a4a4f;
- --grey-70: #38383d;
- --grey-80: #2a2a2e;
- --grey-90: #0c0c0d;
- --grey-90-a05: rgba(12, 12, 13, 0.05);
- --grey-90-a10: rgba(12, 12, 13, 0.1);
- --grey-90-a20: rgba(12, 12, 13, 0.2);
- --grey-90-a30: rgba(12, 12, 13, 0.3);
- --grey-90-a40: rgba(12, 12, 13, 0.4);
- --grey-90-a50: rgba(12, 12, 13, 0.5);
- --grey-90-a60: rgba(12, 12, 13, 0.6);
- --grey-90-a70: rgba(12, 12, 13, 0.7);
- --grey-90-a80: rgba(12, 12, 13, 0.8);
- --grey-90-a90: rgba(12, 12, 13, 0.9);
-
- --ink-70: #363959;
- --ink-80: #202340;
- --ink-90: #0f1126;
-
- --white-100: #ffffff;
-
- /* TODO: Switch to some Firefox variable, once Mozilla adds one for this
- color. Matches --warning-icon-bgcolor (but not on the dark theme variant). */
- --warning-color: #ffa436;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --warning-color: #ffbd4f;
- }
-}
=====================================
toolkit/themes/shared/desktop-jar.inc.mn
=====================================
@@ -46,6 +46,7 @@
skin/classic/global/popupnotification.css (../../shared/popupnotification.css)
skin/classic/global/splitter.css (../../shared/splitter.css)
skin/classic/global/toolbarbutton.css (../../shared/toolbarbutton.css)
+ skin/classic/global/tor-colors.css (../../shared/tor-colors.css)
skin/classic/global/tree/tree.css (../../shared/tree/tree.css)
skin/classic/global/dirListing/dirListing.css (../../shared/dirListing/dirListing.css)
#ifdef XP_MACOSX
=====================================
toolkit/themes/shared/minimal-toolkit.jar.inc.mn
=====================================
@@ -45,5 +45,3 @@ toolkit.jar:
# Text recognition widget
skin/classic/global/media/textrecognition.css (../../shared/media/textrecognition.css)
-
- skin/classic/global/browser-colors.css (../../shared/browser-colors.css)
=====================================
toolkit/themes/shared/tor-colors.css
=====================================
@@ -0,0 +1,120 @@
+:root {
+ /* Photon colors not available in Firefox. */
+ --purple-30: #c069ff;
+ --purple-40: #ad3bff;
+ --purple-50: #9400ff;
+ --purple-60: #8000d7;
+ --purple-70: #6200a4;
+ --purple-80: #440071;
+ --purple-90: #25003e;
+
+ /* On light backgrounds. */
+ --tor-accent-color-light: var(--purple-60);
+ --tor-accent-color-hover-light: var(--purple-70);
+ --tor-accent-color-active-light: var(--purple-80);
+
+ /* Acorn color grey light 05. */
+ --tor-button-text-color-light: var(--color-gray-05);
+ --tor-button-text-color-hover-light: var(--color-gray-05);
+ --tor-button-text-color-active-light: var(--color-gray-05);
+ --tor-button-background-color-light: var(--tor-accent-color-light);
+ --tor-button-background-color-hover-light: var(--tor-accent-color-hover-light);
+ --tor-button-background-color-active-light: var(--tor-accent-color-active-light);
+ --tor-focus-outline-color-light: var(--tor-accent-color-light);
+ --tor-link-color-light: var(--tor-accent-color-light);
+ --tor-link-color-hover-light: var(--tor-accent-color-hover-light);
+ --tor-link-color-active-light: var(--tor-accent-color-active-light);
+
+
+ /* On dark backgrounds. */
+ /* TODO: Need a dark theme purple color that gets *lighter* with hover and
+ * active states, see tor-browser#42025 */
+ --tor-accent-color-dark: var(--purple-30);
+ --tor-accent-color-hover-dark: var(--purple-40);
+ --tor-accent-color-active-dark: var(--purple-50);
+
+ /* TODO: Use a dark text color for dark theme. tor-browser#41787. */
+ --tor-button-text-color-dark: var(--color-gray-05);
+ --tor-button-text-color-hover-dark: var(--color-gray-05);
+ --tor-button-text-color-active-dark: var(--color-gray-05);
+ --tor-button-background-color-dark: var(--tor-accent-color-dark);
+ --tor-button-background-color-hover-dark: var(--tor-accent-color-hover-dark);
+ --tor-button-background-color-active-dark: var(--tor-accent-color-active-dark);
+ --tor-focus-outline-color-dark: var(--tor-accent-color-dark);
+ --tor-link-color-dark: var(--tor-accent-color-dark);
+ --tor-link-color-hover-dark: var(--tor-accent-color-hover-dark);
+ --tor-link-color-active-dark: var(--tor-accent-color-active-dark);
+
+
+ /* Generic colors that adapt to theme. */
+ --tor-accent-color: light-dark(
+ var(--tor-accent-color-light),
+ var(--tor-accent-color-dark)
+ );
+ --tor-accent-color-hover: light-dark(
+ var(--tor-accent-color-hover-light),
+ var(--tor-accent-color-hover-dark)
+ );
+ --tor-accent-color-active: light-dark(
+ var(--tor-accent-color-active-light),
+ var(--tor-accent-color-active-dark)
+ );
+ --tor-button-text-color: light-dark(
+ var(--tor-button-text-color-light),
+ var(--tor-button-text-color-dark)
+ );
+ --tor-button-text-color-hover: light-dark(
+ var(--tor-button-text-color-hover-light),
+ var(--tor-button-text-color-hover-dark)
+ );
+ --tor-button-text-color-active: light-dark(
+ var(--tor-button-text-color-active-light),
+ var(--tor-button-text-color-active-dark)
+ );
+ --tor-button-background-color: light-dark(
+ var(--tor-button-background-color-light),
+ var(--tor-button-background-color-dark)
+ );
+ --tor-button-background-color-hover: light-dark(
+ var(--tor-button-background-color-hover-light),
+ var(--tor-button-background-color-hover-dark)
+ );
+ --tor-button-background-color-active: light-dark(
+ var(--tor-button-background-color-active-light),
+ var(--tor-button-background-color-active-dark)
+ );
+ --tor-focus-outline-color: light-dark(
+ var(--tor-focus-outline-color-light),
+ var(--tor-focus-outline-color-dark)
+ );
+ --tor-link-color: light-dark(
+ var(--tor-link-color-light),
+ var(--tor-link-color-dark)
+ );
+ --tor-link-color-hover: light-dark(
+ var(--tor-link-color-hover-light),
+ var(--tor-link-color-hover-dark)
+ );
+ --tor-link-color-active: light-dark(
+ var(--tor-link-color-active-light),
+ var(--tor-link-color-active-dark)
+ );
+}
+
+button.tor-button,
+.tor-button {
+ color: var(--tor-button-text-color);
+ background-color: var(--tor-button-background-color);
+}
+
+button.tor-button:hover,
+.tor-button:hover {
+ color: var(--tor-button-text-color-hover);
+ background-color: var(--tor-button-background-color-hover);
+}
+
+button.tor-button:hover:active,
+.tor-button:hover:active {
+ color: var(--tor-button-text-color-active);
+ background-color: var(--tor-button-background-color-active);
+}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/908dda…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/908dda…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-build][main] Bug 41198: Add anti-censorship team to stakeholders to notify on packaging changes
by morgan (@morgan) 21 Aug '24
by morgan (@morgan) 21 Aug '24
21 Aug '24
morgan pushed to branch main at The Tor Project / Applications / tor-browser-build
Commits:
e7e6c2f3 by Morgan at 2024-08-19T20:11:34+00:00
Bug 41198: Add anti-censorship team to stakeholders to notify on packaging changes
- - - - -
1 changed file:
- .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
Changes:
=====================================
.gitlab/issue_templates/Release Prep - Tor Browser Alpha.md
=====================================
@@ -155,6 +155,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch
- [ ] Guardian Project: nathan(a)guardianproject.info
- [ ] FreeBSD port: freebsd(a)sysctl.cz <!-- Gitlab user maxfx -->
- [ ] OpenBSD port: caspar(a)schutijser.com <!-- Gitlab user cschutijser -->
+ - [ ] Anti-Censorship: meskio(a)torproject.org
- [ ] Note any changes which may affect packaging/downstream integration
- [ ] ***(Optional, only after internal API-breaking changes)*** Email downstream project maintainers:
- [ ] selenium-tor: matzfan(a)tempr.email <!-- Forum user Noino -->
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/commit/e…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] fixup! Bug 40009: [android] Change the default search engines
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
908dda03 by clairehurst at 2024-08-20T17:34:07+00:00
fixup! Bug 40009: [android] Change the default search engines
Bug 43037: Fix the crash when searching with DDG from the toolbar.
- - - - -
1 changed file:
- mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg.xml
Changes:
=====================================
mobile/android/android-components/components/feature/search/src/main/assets/searchplugins/ddg.xml
=====================================
@@ -6,7 +6,7 @@
<ShortName>DuckDuckGo</ShortName>
<InputEncoding>UTF-8</InputEncoding>
<Image width="32" height="32">data:image/png;base64,AAABAAIAEBAAAAEAIAB5AwAAJgAAACAgAAABACAAUAcAAJ8DAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAANASURBVDiNpZNNTFsFAMd/76t9rx+UsZYCGTNsIytVsXGGA5qNmAjG0Ok+OsXNuIMas4MnT4o6g4bTYnYw7jCnS/QAZHMmbBlKluzCphlK5mAbAcamlKyUQt+jtH19Hx6MZpz93f6X3+n/g/+J8OiYTe0KObLysikqRz3F9WeVcsVTUr1rjs9z04vTr66YVxqGx4sCuBsELgj39rW1CtWevkDjzqT60mHU5icRbBvbKmOvrmKODrF669qIvZr/aFvLjXHhU5z/BHOH2p6SNkdGwq8cjUqxXVTSM6xfGcYYHESMBAkeeofgiylYnGPpu5O5tfRMsuXc5BiAeG/PHlUO+ftq33gvaksa6SMdWOlZNn1wkoYz55DDtegDp/irpx3TWCOServGH6k/PptsigKIVqPdEYi3JcXGGJkP30Lt7kHb/y4KoD3dTrj/NJ5YHEJBMn3HsMNbCTXFXyAQTg6mkMQKbq+3qwdjZACpfivSa8e4PZ1leaWA48KkZwfLWiOyK+NKGsblAZTnDyAGQnvjk3FJpGgm5Ooa9KGvkULViKEwur5OJmciCpDOLFNqqMX/hA81plL+5WeUphZESdpdVaVLslYu+SVfACuTRaxrxLOWIxGvQ7H+xJkfYq9gU9zxALPawV1SyN+YBcdFFgkthm1Briieius6indnM1ZBpzh5nWjnQTDuYM+8T26sFtv1IdYoFCZcxFAEx1yn4rJgZiVXNP3qWOnuTdTnunBWsli3fvvnIb527HA/eANomoKdFnBWdYIH3oRCAWxnKpxVHVFx7W/Kl76nqqsHwTCwp+9iAkib8FTtQ/gjwsV1l/lFG3G5SLDzINbV8wjF0pfNMzOmLD+sXDCU6WHt/lR39PMz5E8c5/dfB/lKuYSl51lOZpmvdei/bZD4+BTkFliauDaa0x9cfQxccfvoeN61jN7sD6cfSppM3bcX8W/egmWVEVSN1+V2DrsdxE6cR/BB5uwXufLC4ieJH+/nN7ZwJNEqaDWfVcef6RY6X6UYDhGoieIt2RhT49iXByjM3fnJ0fXeba0TG1v4l7HUFq1Ord9dcb29brGc0MqlgKl4zYpPvS5jnzXN/IXHh6ZWHq3xb489Z7RfaFfAAAAAAElFTkSuQmCCiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAHF0lEQVRYhZ2XX2xT9xXHP7/r6z+x48Qhc1lCWWzKopFOqluHDW0SCZuElmpIqaASoRXwMCL2MNE1PGyTNog6qXsoLbBpMHgBNAqVyBaaqbDugaSaSlXwlq4hrNkgzhgOYEJMnFw7zvX97eHa13bsFLrzZJ/7+53v95x7/l3BY8p4Z7sv65rptCHapCSEQgCJDwBBAoOoFAxL5JAtXdMf7B9MPI5d8UjgresCSH2PVOROC/AxRMIJBXtv8OxH0f+LwHhnu4+qmX1SilfyOteaMO617VS1hFH9DShuLwCGliQTHWN+YgztyiDp65ECESEOKim9N9g/XDEiFQmMb10XkCxcAgIA1es3UbdlF6q/8fOcsUSPx5g+d5zZDwbyqqjAvqFSNMoIjG9bG5KG8UcgoPobWd7zBo6mZsvThxfOkB6NoMcn0eMxABSPF0dTM+7WdjytbRZRPR5j8rXd+XNRoSgvBN++MrwkgWLPves3sWzHqyhuL3o8xtztKE6HE0NLMndlCC0yiDGXrBiB6rZN1G02I2ZoSeJHetGuDlaMRAmBm1vD40DA3drO8p43AHh44Qwzl87je/nHiIYmHLXLcDgc6PEYU6fezBsuE8Xtxbelm9qOLgDuH+0lOTRgkkhnn83nhM3yvuu5t0B8T/U38uWfHkbYnUz3HWP6zG8wZh6g/fU9tEvnma+px/nkKhw1dVR/ayN2fyOZiTEMrTQaciFD6pPLIKCqJYyrJczc5b9gaEmftNtch0dif7YikAv9OMDKw++i+ht5eOEMD04dsAw6NnRS/+IPcdXVV/S4yMMyWba9h9qOLjITY9z+ybZc6O3B4NmPogqAwcI+MLNd9Teix2Mk+o4VwDteouEHP1sS3AR5dckqSZw7hh6P4Whqpnr9JgAMufAKgDK+M+QTsBOgbssuAKb7jhcSrO4Jlm/7EZ/+8w7vf/AZs9p8GcC/J6a4PDrFQkd3RQKGliR+tJdiDKGwY7wz5FOzaaVTwWwyee9ni0Jp+8Z3UVUVj8fJxpbKHq5uqmd1Uz2GVs+tPm/F6kiPRjC0JKq/EVdLmPRoxJd12TsVgWgDcK9tB2Du6lDJRfvK1RbIrDbPnXjl0vvtqQ+5PHof15pwxecAD987A4C71cSyYbSpQhBCgjPXbMrKyuWxfvb8coDqKie9PRupdjtLjn0YiQLwNX/DkgTyLbqqxSQphQip5NqtI2ASyEyMlVxayHU7gG+HAwBl4AC/P2Rm9/S5EQAUF1Q/DVUrIX4RjDTo8UkAVIukDKj5CWcNlkXvT0/OWL+3b24tPMgmYepPoJUS9j75Gd5uUGtyXt8ywYFC685hIfGpZa4sljtRMpkMDoejVD/6EmRiZcdVOxiGCZwcgdlrn29eRZBA4jO0JIrba1VCXsTkBKlUqpRAaswCT92Ce+dNL9UaMDIFjxdL8fg2jZNQgCiAfm/x+8nJ5DjzD6dLdY4GsJnGbC5QcimhzywNDlhTNRPNvzYRVZF8AoRS1yM4As241oRJj0ZKLmo3rsFXAgWFzQvNv4Obe3H4Y6zcBZl4KbhaC5l7cLe/oMuX+nwu0YWUw4qBHIRC+dU+31XG3Bj5GF3XS5XuZvj6u+iebpLXAGmCqrUmkeSImf3F4mltoxgL5JBqcxn9ct72Vno04tPjseJOZV0Uk1Hm5uaora0tI5ccgcSFMnWZFM8Zy3ba6FeCJ4YTEk6COQMA/Lv3oXi8hdvj10gnpioati8aQP9qsPHfeqVEp3i8JXMGQMCJYP9wQgFQZPYgwOzQAJnoGKq/kbrNpYMldfM6ALMLST598Hfm9FkAXC3PMeVV0JyCP3zTzq87HFwMlVZ33ebuCnMm2wugAgTPDkdvdIUPCcmeu2/uZcWvTlPT0YUxl2Q6N5aNkY9JrfsOF28PcHL8CABP1z7DvfQd4i86MbIGQhEIKIlA3eZu05aWZPK13QBIyaFV7wxHAayTijO7H4jmVy0A35Zu6rf3oHi8iMko6XRpjf1j6m/c0XI9Q0BWzwLwoFqgeLzUb+/Bt8WMZPxIr7WcPvVOxFr1LQLBE8MJQXYDEJ0dGuDugb0YWpKaji5WvH6a6pWrSE1P8VTNV5FSmlExDOy6HbtuJ/CfecLX01TfT7HM/iVWvH7a8jx+tHgpzW4oduKRa3nDz48W1mxdJy1TvPz+9/HYa9gb+gXPPrEWMLcegJrnu6yOl5kY4+6BvUVrefaF4NvDS6/lFomtoYDEVvgwKVqzwUzEaru30lWTaDzGdN/x4sUmKshuCJ413/sjCeTlRlf4oJDsyf93tYRxt7bjbGrGEWgu6e36vUlS1yNoVwdLeoiUHFLms/u/0KdZseSisR/Y8aizRVYT0uCkIrIHK3n9hQhYRDpDvqxL6VQQ7QjxDMjSz3NEVEgxnCU7ZEsb/Ut5vFj+B4mSK5j/ya9iAAAAAElFTkSuQmCC</Image>
-<Url type="application/x-suggestions+json" method="GET" template="https://ac.duckduckgo.com/ac/">
+<Url type="text/html" method="GET" template="https://duckduckgo.com/">
<Param name="q" value="{searchTerms}"/>
</Url>
<SearchForm>https://duckduckgo.com</SearchForm>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/908dda0…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/908dda0…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser-update-responses][main] alpha: new version, 14.0a2
by morgan (@morgan) 20 Aug '24
by morgan (@morgan) 20 Aug '24
20 Aug '24
morgan pushed to branch main at The Tor Project / Applications / Tor Browser update responses
Commits:
6dfcbd54 by Morgan at 2024-08-20T18:45:38+00:00
alpha: new version, 14.0a2
- - - - -
30 changed files:
- update_3/alpha/13.5a8-14.0a2-linux-i686-ALL.xml
- update_3/alpha/13.5a8-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/13.5a8-14.0a2-macos-ALL.xml
- update_3/alpha/13.5a8-14.0a2-windows-i686-ALL.xml
- update_3/alpha/13.5a8-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/13.5a9-14.0a2-linux-i686-ALL.xml
- update_3/alpha/13.5a9-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/13.5a9-14.0a2-macos-ALL.xml
- update_3/alpha/13.5a9-14.0a2-windows-i686-ALL.xml
- update_3/alpha/13.5a9-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a1-14.0a2-linux-i686-ALL.xml
- update_3/alpha/14.0a1-14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/14.0a1-14.0a2-macos-ALL.xml
- update_3/alpha/14.0a1-14.0a2-windows-i686-ALL.xml
- update_3/alpha/14.0a1-14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/14.0a2-linux-i686-ALL.xml
- update_3/alpha/14.0a2-linux-x86_64-ALL.xml
- update_3/alpha/14.0a2-macos-ALL.xml
- update_3/alpha/14.0a2-windows-i686-ALL.xml
- update_3/alpha/14.0a2-windows-x86_64-ALL.xml
- update_3/alpha/download-android-aarch64.json
- update_3/alpha/download-android-armv7.json
- update_3/alpha/download-android-x86.json
- update_3/alpha/download-android-x86_64.json
- update_3/alpha/download-linux-i686.json
- update_3/alpha/download-linux-x86_64.json
- update_3/alpha/download-macos.json
- update_3/alpha/download-windows-i686.json
- update_3/alpha/download-windows-x86_64.json
- update_3/alpha/downloads.json
Changes:
=====================================
update_3/alpha/13.5a8-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="3f363d4bbba46c28c326f0cde60bcde2287ed024cde0fb7de313d563f3606de308aff23be14219110d8184118999559d4b17e908900d550f4add3cae504a096c" size="68093561" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="0c3a8ae6608a906c21b34af473ee820db7a6fa54724b4bb64096ad7d9ce171a91607fe98ae91afda3f856f52961869d2aa06f3593d1ce7a480ce484821642598" size="68085665" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="4186b9909c90ee2f669075d32e84bda37d6931bdf371e4cc4d89a0a0517f19b6e86ba667583374498bfccb085d778e3a81d36303cd3bffb4ab9d7770c3a6da82" size="64660449" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="33ffd61e63c44404de35a88773b84dfeb92e761f8cf98654ef769a2621561d02d1f3356e58300221aff8060905a45035c0346d82d4448ea11ed17acd3f543642" size="64659785" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a8…" hashFunction="SHA512" hashValue="5b08d340e9fbbc00ed681490364c03dcc9911d8fea369f5e20b08798cf79de6c68fe1749d7e5c56b196a471306b21f7f3aebe6db9fca766a988b4ae7d859a609" size="104863676" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a8…" hashFunction="SHA512" hashValue="721cbf99cbac5a432c3402e4b9cbd0753d36c04215293c1b97915c05a5e559ff9dae0115baca01dd9bc290dc9e1fc5c37dbabd4dc791f92c8351af1904dcf541" size="104867508" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6b4c9821c43a41d4353c6a30ad1f66e944a651e705ab365505746025d2a22c548c3347e29aa9bd7025e259def20b9f09b22de1e93c2b84f005c74f4e9c942a6c" size="73787815" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="a70e70dbaf460f49bc8716a615ca39b75bd5aec114f2b738e3b163320e92a64a2151664ec5eb7f16850b44931c16c2eaf4d035a1bb96ef0165c7334805676703" size="73787775" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a8-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="fe102fc7aaf1957af4fa1e92df7ac34233565cd582fc885e9d79dc4db7274546fec120dd554270127094f3e3cf7696c6cba8ce0798f631b577d23d768f1010f2" size="72223671" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="8dd572bf9f24cb71b06f40446db4ce4043800d392d7102fc4749e3f493c75d3e4e2068e2d7b9d98105943f9cc6bd0214360019ea1b496674fd39ea24d4c70f31" size="72224963" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="46d1e332a35b5d7a7f81e798d263bde87d7c0c0af1cd490cb256f14f38fd03711fccbc9210a26f3062e65732d304c716b9d79f1e75b42e9894f9dab9eeea0453" size="67501218" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="59d1674071d46e21d955a138c6ff757bb163861f141a02e8a5be70054b465fc16b8cbe9c0297bca3daa09f582057bf2a0a6e2a62e098ef8338f359885109701f" size="67504678" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="90c047ccf6f9c0911bd9323427fee1ce5dfaedf512f303fc687baf9a014a7697f821a278e917d36bdcf55f16acaa9c9269ae486c0ea8635b819c39ddcae18a84" size="64085290" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="5c07945f2d990e22e90151947ac5fe398dd494903a5aaf59cded615112626fc2a1d1ba61fd6fe01a2fdfffaf1115581b5b34c1074b5c07a79c676822ac067820" size="64086554" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a9…" hashFunction="SHA512" hashValue="0fb2e37c3f6201d3c3a2a15ace3bfffb2eb25d74fc3c9aee2105b0ab26ee4eeb67ac6061b9971520c2008d3e33d8ee9256f6753983cf2b9d71239c96c077929b" size="104456671" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--13.5a9…" hashFunction="SHA512" hashValue="9940a4b3ce4e42d3f195ef614045637cf4caed3bcc7e284c919680aba1650d4bc5b6cb36af82d22c9c9628b5dc285b7ad493d35603f0919788cacaebd5899bc8" size="104450455" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="e639ca89fa5dbace8a3189a66e405850b735f4476f28972214b7506c3c656f7e73b1c4d66adde94e0bdea3f3bc190fff102375e0cd168e1617df72f82f32aa7c" size="73460202" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="93319e2b7d1a65d3acc22c26aaef45650379bf92d049f075a16c1442c688457b0568449816a8c41025bed06031714139e63cc9fc10efe0b6b0370901479a852b" size="73459422" type="partial"></patch></update></updates>
=====================================
update_3/alpha/13.5a9-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="5745018db60ffcacf5802cdfc1d451ee8f2b4e011742696e2871852e788615be74d9a67682ba1fd838c675ec2a31e10076930f456eef9c0d88ba11b6cf99a1cd" size="71894554" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="5ea294c0dd5c820053a117b4e27eee72c04a4606154546d004cf40393138dfd4a523cddb0a7d495ded8416554ff0fdac5481c1161a400c435a2b8f6c43ea5b53" size="71889070" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="33d5ab7bff02722f6c2933cdb557d6eb7532de26d317d32cc989b7e61ccef20cda67a773b42ed8ed027f68750a7c1d3acfce9f4bb646dd442e6610b69a7570c7" size="12899065" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686--1…" hashFunction="SHA512" hashValue="2ea3b7ba8e106151c1b67fd877aad9aaefc95784bdc9991537260ff6c7ef5623125a2e0071d222f5314c6ac69068bfa7419f509a71fb05fb5e9629d4e2ed1f41" size="12897637" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="e396d51182435649ec65ce39bfc3fec2031c25536c327595524251dd6b444e4f205faed86f70442d87afb39ef9b9ab3d1de877b284ac48a08f36bfc54014efce" size="12736953" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="10a9396ee8f9a4dcfcbbef26baaaac9d5c99880efff7967d151eae9ea53fedf5b0d47a790d66131f134ee255ace63c3c9e886bb9b9c630af24017cce56aae641" size="12740333" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--14.0a1…" hashFunction="SHA512" hashValue="89dc56eb7e1807510fc0808bd3b3ae3a18ad10b54b77084ffa39834beaf34ffd23411c8c24550160d6eed839f02cfb90ce9fe9b33520c949e1ee6d80cdd40071" size="20542570" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos--14.0a1…" hashFunction="SHA512" hashValue="1e2ba9e9c8c11de885d8ab3a032d5bbc6af5d51ba567b85996bdf3b3961954e12331cf33b4747d19e398c3f85482183da8ab982708ea4b346c33795f70a5e226" size="20538826" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="ab132c7c0018df867e8807ffb530523f3dc6c87b543e0aa3818abc9078d645cf12b9044a2809a52d177ab47fddaeff7071b3c927d9ddeb79c29ed73747030068" size="13954311" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="5ff4e603df0e57872b463ed771051b1803c87c707f84ec195541d16eefe09802e31bb17f9ee1e0d59c8a1a9c79a65aa62948af9fcceb89c2e2486daba2093964" size="13954019" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a1-14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="908e09eb7591c056c420445dda6e4f0b778983e4e78c351e24ed5efd1c9fc9b91c5401195af46230437a5f66a00c17930d208fa22029d97d25506081fed0f428" size="13301219" type="partial"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="097af5c374014b0d209ca99456931656b720fd268efc7dfac0f51d5910a5d71f7d98d5bc78ec410304b58af5bfd9dcab39cc372a3fe56f0fed948839a2b51dce" size="13298551" type="partial"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-linux-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="a6f1b4fa99ac28ab74d883aef93ca74a954864dedfcf5eec82d94af97c44f14a72b80b4f4ea6a88e7e52585e4512288f40d56733e9975cfb17b775fc28591cbd" size="129585048" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-i686-14…" hashFunction="SHA512" hashValue="9b335aa8080d18448ae6fb4d0188b71da8ec005e20da0b96ca62b6bac0997c60ee1f51f49b5c1fae0933426275f3041d4822d5426ce66aa40bb2f5fd031ed0db" size="129583928" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-linux-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="59d6473842da329d997902ff5cf3b8af37218b6edc5318d391f050b53b7c4b3ef3f636e1dac7e6dc475f98f8c7cc1af792cc18d51717ba6f3bfc24034a4a3c73" size="128707624" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedInstructionSet="SSE2"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-linux-x86_64-…" hashFunction="SHA512" hashValue="8368e409e2d8f424bd91b4cc14808bfe36ce9e9f0d4ebc8d33702f7b87c771a6021b4c19523022872fe5032573c420fda39e42357f4349743a317fd378b5b5d5" size="128704560" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-macos-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="94fb76646e468a7f2ff2a20f0ff1431cfef6054c6c6a6350a1c69689d98cdc34ec0de422031771b7dc2576ebd045b8b7e4b691724b2723e36fc1ca9a0ebf3bd4" size="157563785" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="19.0.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-macos-14.0a2_…" hashFunction="SHA512" hashValue="9a0e2036a41f56ca2eec18b072ff525a635a2d2b8db5b78273693e65fc8b626a50430bd36082d5439695a68b32fc05c3f369a042a3bc7691a5a3e788b2d96158" size="157560881" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-windows-i686-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="55700d1e132ec4775a2c2fa51a88b0458108be754e1ebca1961be31d489968d97652f600f2485aee1253722d314389bbd6ee3850c81019de7369d36651723b99" size="117370328" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-i686-…" hashFunction="SHA512" hashValue="6aae0a8347fd125ecea17c5955cb28ca501c6bc3826946f273d8a6dcea58e187949d0d8bf38d52aad1321d67145553985a62c361232e97f4b322b92191d99df8" size="117370272" type="complete"></patch></update></updates>
=====================================
update_3/alpha/14.0a2-windows-x86_64-ALL.xml
=====================================
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240816000831" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="80a2318eee4cd68557bef7af5c430e710113324f745816ef8f0fb32adf4edcfdf465753c6c719cbdc9914499606c5bfd0591a316271d10a3ab600fac3b8c9ca9" size="117802300" type="complete"></patch></update></updates>
+<updates><update type="minor" displayVersion="14.0a2" appVersion="14.0a2" platformVersion="128.1.0" buildID="20240819184821" detailsURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" actions="showURL" openURL="https://blog.torproject.org/new-alpha-release-tor-browser-140a2" minSupportedOSVersion="10.0"><patch URL="https://cdn.torproject.org/aus1/torbrowser/14.0a2/tor-browser-windows-x86_6…" hashFunction="SHA512" hashValue="62791fbd6e824c9464fd7706ab11d56650806fe315c66762163417da70823c36a3840a7d5f3023df4a8aee55c39f253fd1513d57ccff8774f6d703bf878cb6fc" size="117801276" type="complete"></patch></update></updates>
=====================================
update_3/alpha/download-android-aarch64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-aarch64-1…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-armv7.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-armv7-14.…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-x86.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86-14.0a…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-android-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-android-x86_64-14…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-linux-i686.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-linux-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-macos.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-windows-i686.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/download-windows-x86_64.json
=====================================
@@ -1 +1 @@
-{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","git_tag":"tbb-14.0a2-build1","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","version":"14.0a2"}
\ No newline at end of file
+{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","git_tag":"tbb-14.0a2-build2","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","version":"14.0a2"}
\ No newline at end of file
=====================================
update_3/alpha/downloads.json
=====================================
@@ -1 +1 @@
-{"downloads":{"linux-i686":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…"}},"linux-x86_64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…"}},"macos":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…"}},"win32":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…"}},"win64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…"}}},"tag":"tbb-14.0a2-build1","version":"14.0a2"}
\ No newline at end of file
+{"downloads":{"linux-i686":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-i686-14.0a2…"}},"linux-x86_64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-linux-x86_64-14.0…"}},"macos":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-macos-14.0a2.dmg.…"}},"win32":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-i686-port…"}},"win64":{"ALL":{"binary":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…","sig":"https://dist.torproject.org/torbrowser/14.0a2/tor-browser-windows-x86_64-po…"}}},"tag":"tbb-14.0a2-build2","version":"14.0a2"}
\ No newline at end of file
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-update-responses…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 2 commits: fixup! Bug 30237: Add v3 onion services client authentication prompt
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
05861e0d by Henry Wilkes at 2024-08-20T15:59:58+01:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 43067: Use html:link instead of xml-stylesheet
- - - - -
57cc4697 by Henry Wilkes at 2024-08-20T16:00:44+01:00
fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
Bug 43067: Use html:link instead of xml-stylesheet
- - - - -
8 changed files:
- browser/components/onionservices/content/savedKeysDialog.xhtml
- browser/components/torpreferences/content/bridgeQrDialog.xhtml
- browser/components/torpreferences/content/builtinBridgeDialog.xhtml
- browser/components/torpreferences/content/connectionSettingsDialog.xhtml
- browser/components/torpreferences/content/loxInviteDialog.xhtml
- browser/components/torpreferences/content/provideBridgeDialog.xhtml
- browser/components/torpreferences/content/requestBridgeDialog.xhtml
- browser/components/torpreferences/content/torLogDialog.xhtml
Changes:
=====================================
browser/components/onionservices/content/savedKeysDialog.xhtml
=====================================
@@ -1,10 +1,6 @@
<?xml version="1.0"?>
<!-- Copyright (c) 2020, The Tor Project, Inc. -->
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/content/onionservices/authPreferences.css" type="text/css"?>
-
<window
id="onionservices-savedkeys-dialog"
windowtype="OnionServices:SavedKeys"
@@ -13,6 +9,16 @@
data-l10n-id="onion-site-saved-keys-dialog-title"
>
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/onionservices/authPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/bridgeQrDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="bridgeQr-dialog" buttons="accept">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/builtinBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-builtinBridge-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="branding/brand.ftl" />
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/connectionSettingsDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-connection-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="branding/brand.ftl" />
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/loxInviteDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -19,6 +16,16 @@
</menupopup>
<dialog id="lox-invite-dialog" buttons="accept">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
<html:link
rel="localization"
=====================================
browser/components/torpreferences/content/provideBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -14,6 +11,16 @@
class="show-entry-page"
>
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/requestBridgeDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-requestBridge-dialog" buttons="accept,cancel">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
=====================================
browser/components/torpreferences/content/torLogDialog.xhtml
=====================================
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
-<?xml-stylesheet href="chrome://browser/content/torpreferences/torPreferences.css"?>
<window
type="child"
@@ -11,6 +8,16 @@
>
<dialog id="torPreferences-torLog-dialog" buttons="accept,extra1">
<linkset>
+ <html:link rel="stylesheet" href="chrome://global/skin/global.css" />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/skin/preferences/preferences.css"
+ />
+ <html:link
+ rel="stylesheet"
+ href="chrome://browser/content/torpreferences/torPreferences.css"
+ />
+
<html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
</linkset>
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7143db…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/7143db…
You're receiving this email because of your account on gitlab.torproject.org.
1
0
[Git][tpo/applications/tor-browser][tor-browser-128.1.0esr-14.0-1] 5 commits: fixup! Bug 30237: Add v3 onion services client authentication prompt
by Pier Angelo Vendrame (@pierov) 20 Aug '24
by Pier Angelo Vendrame (@pierov) 20 Aug '24
20 Aug '24
Pier Angelo Vendrame pushed to branch tor-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
ace2c34b by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Bug 30237: Add v3 onion services client authentication prompt
Bug 42212: Migrate onion service strings to Fluent.
+ Use "onion site" instead of "onionsite" or "onion service".
+ Use sentence case by default.
+ Changed the prompt accept button from "Done" to "OK", in line with
other prompts.
+ Re-ordered the saved keys dialog introduction text from "Keys for the
following onionsite are..." to "The following onion site keys are..."
+ Use bold text for the prompt title, rather than just the onion site
part.
+ Clear the error message in the saved key dialog whenever the user
tries to remove a key (again).
+ Other small tidies in the touched areas.
- - - - -
611b5828 by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Bug 23247: Communicating security expectations for .onion
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
0e22809c by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Tor Browser strings
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
35b2a147 by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Add TorStrings module for localization
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
7143db9a by Henry Wilkes at 2024-08-20T12:55:05+00:00
fixup! Tor Browser localization migration scripts.
Bug 42212: Migrate onion service strings to Fluent.
- - - - -
16 changed files:
- browser/base/content/browser.xhtml
- browser/base/content/pageinfo/pageInfo.xhtml
- browser/base/content/pageinfo/security.js
- browser/components/onionservices/content/authNotificationIcon.inc.xhtml
- browser/components/onionservices/content/authPopup.inc.xhtml
- browser/components/onionservices/content/authPreferences.inc.xhtml
- browser/components/onionservices/content/authPreferences.js
- browser/components/onionservices/content/authPrompt.js
- browser/components/onionservices/content/onionservices.css
- browser/components/onionservices/content/savedKeysDialog.js
- browser/components/onionservices/content/savedKeysDialog.xhtml
- toolkit/locales/en-US/toolkit/global/tor-browser.ftl
- toolkit/modules/TorStrings.sys.mjs
- − toolkit/torbutton/chrome/locale/en-US/torbutton.dtd
- toolkit/torbutton/chrome/locale/en-US/torbutton.properties
- + tools/torbrowser/l10n/migrations/bug-42212-onion-services.py
Changes:
=====================================
browser/base/content/browser.xhtml
=====================================
@@ -6,11 +6,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-<!DOCTYPE window [
- <!ENTITY % torbuttonDTD SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-%torbuttonDTD;
-]>
-
<html id="main-window"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
=====================================
browser/base/content/pageinfo/pageInfo.xhtml
=====================================
@@ -27,6 +27,7 @@
<html:link rel="stylesheet" href="chrome://browser/skin/pageInfo.css" />
<html:link rel="localization" href="browser/pageInfo.ftl"/>
+ <html:link rel="localization" href="toolkit/global/tor-browser.ftl"/>
</linkset>
#ifdef XP_MACOSX
#include ../macWindow.inc.xhtml
=====================================
browser/base/content/pageinfo/security.js
=====================================
@@ -15,11 +15,6 @@ const { DownloadUtils } = ChromeUtils.importESModule(
ChromeUtils.defineESModuleGetters(this, {
LoginHelper: "resource://gre/modules/LoginHelper.sys.mjs",
});
-ChromeUtils.defineLazyGetter(this, "gTorButtonBundle", function () {
- return Services.strings.createBundle(
- "chrome://torbutton/locale/torbutton.properties"
- );
-});
var security = {
async init(uri, windowInfo) {
@@ -364,9 +359,13 @@ async function securityOnLoad(uri, windowInfo) {
);
} else {
try {
- hdr = gTorButtonBundle.formatStringFromName(
- "pageInfo_OnionEncryptionWithBitsAndProtocol",
- [info.encryptionAlgorithm, info.encryptionStrength + "", info.version]
+ hdr = await document.l10n.formatValue(
+ "page-info-onion-site-encryption-with-bits",
+ {
+ "encryption-type": info.encryptionAlgorithm,
+ "encryption-strength": info.encryptionStrength,
+ "encryption-version": info.version,
+ }
);
} catch (err) {
hdr =
@@ -392,11 +391,9 @@ async function securityOnLoad(uri, windowInfo) {
}
msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} else {
- try {
- hdr = gTorButtonBundle.GetStringFromName("pageInfo_OnionEncryption");
- } catch (err) {
- hdr = "Connection Encrypted (Onion Service)";
- }
+ hdr = await document.l10n.formatValue(
+ "page-info-onion-site-encryption-plain"
+ );
msg1 = pkiBundle.getString("pageInfo_Privacy_Encrypted1");
msg2 = pkiBundle.getString("pageInfo_Privacy_Encrypted2");
=====================================
browser/components/onionservices/content/authNotificationIcon.inc.xhtml
=====================================
@@ -3,4 +3,4 @@
<image id="tor-clientauth-notification-icon"
class="notification-anchor-icon tor-clientauth-icon"
role="button"
- tooltiptext="&torbutton.onionServices.authPrompt.tooltip;"/>
+ data-l10n-id="onion-site-authentication-urlbar-button"/>
=====================================
browser/components/onionservices/content/authPopup.inc.xhtml
=====================================
@@ -2,17 +2,25 @@
<popupnotification id="tor-clientauth-notification" hidden="true">
<popupnotificationcontent orient="vertical">
- <description id="tor-clientauth-notification-desc"/>
- <label id="tor-clientauth-notification-learnmore"
- class="text-link popup-notification-learnmore-link"
- is="text-link"
- href="about:manual#onion-services_onion-service-authentication"
- useoriginprincipal="true"/>
+ <description id="tor-clientauth-notification-desc" />
+ <label
+ class="text-link popup-notification-learnmore-link"
+ is="text-link"
+ href="about:manual#onion-services_onion-service-authentication"
+ useoriginprincipal="true"
+ data-l10n-id="onion-site-authentication-prompt-learn-more"
+ />
<html:div>
- <html:input id="tor-clientauth-notification-key" type="password"/>
- <html:div id="tor-clientauth-warning"/>
- <checkbox id="tor-clientauth-persistkey-checkbox"
- label="&torbutton.onionServices.authPrompt.persistCheckboxLabel;"/>
+ <html:input
+ id="tor-clientauth-notification-key"
+ type="password"
+ data-l10n-id="onion-site-authentication-prompt-key-input"
+ />
+ <html:div id="tor-clientauth-warning"></html:div>
+ <checkbox
+ id="tor-clientauth-persistkey-checkbox"
+ data-l10n-id="onion-site-authentication-prompt-remember-checkbox"
+ />
</html:div>
</popupnotificationcontent>
</popupnotification>
=====================================
browser/components/onionservices/content/authPreferences.inc.xhtml
=====================================
@@ -2,21 +2,34 @@
<groupbox id="torOnionServiceKeys" orient="vertical"
data-category="panePrivacy" hidden="true">
- <label><html:h2 id="torOnionServiceKeys-header"/></label>
+ <label><html:h2
+ data-l10n-id="onion-site-authentication-preferences-heading"
+ ></html:h2></label>
<hbox>
<description
class="description-deemphasized description-with-side-element"
flex="1"
>
- <html:span id="torOnionServiceKeys-overview"
- class="tail-with-learn-more"/>
- <label id="torOnionServiceKeys-learnMore" class="learnMore text-link"
- is="text-link"/>
+ <html:span
+ id="torOnionServiceKeys-overview"
+ class="tail-with-learn-more"
+ data-l10n-id="onion-site-authentication-preferences-overview"
+ ></html:span>
+ <label
+ id="torOnionServiceKeys-learnMore"
+ class="learnMore text-link"
+ is="text-link"
+ href="about:manual#onion-services_onion-service-authentication"
+ useoriginprincipal="true"
+ data-l10n-id="onion-site-authentication-preferences-learn-more"
+ />
</description>
<vbox align="end">
- <button id="torOnionServiceKeys-savedKeys"
- is="highlightable-button"
- class="accessory-button"/>
+ <html:button
+ id="torOnionServiceKeys-savedKeys"
+ class="accessory-button"
+ data-l10n-id="onion-site-authentication-preferences-saved-keys-button"
+ ></html:button>
</vbox>
</hbox>
</groupbox>
=====================================
browser/components/onionservices/content/authPreferences.js
=====================================
@@ -2,69 +2,19 @@
"use strict";
-ChromeUtils.defineESModuleGetters(this, {
- TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
-});
-
-/* globals gSubDialog */
-
-/*
- Onion Services Client Authentication Preferences Code
-
- Code to handle init and update of onion services authentication section
- in about:preferences#privacy
-*/
-
-const OnionServicesAuthPreferences = {
- selector: {
- groupBox: "#torOnionServiceKeys",
- header: "#torOnionServiceKeys-header",
- overview: "#torOnionServiceKeys-overview",
- learnMore: "#torOnionServiceKeys-learnMore",
- savedKeysButton: "#torOnionServiceKeys-savedKeys",
- },
+/* import-globals-from /browser/components/preferences/preferences.js */
+/**
+ * Onion site preferences.
+ */
+var OnionServicesAuthPreferences = {
init() {
- // populate XUL with localized strings
- this._populateXUL();
- },
-
- _populateXUL() {
- const groupbox = document.querySelector(this.selector.groupBox);
-
- let elem = groupbox.querySelector(this.selector.header);
- elem.textContent = TorStrings.onionServices.authPreferences.header;
-
- elem = groupbox.querySelector(this.selector.overview);
- elem.textContent = TorStrings.onionServices.authPreferences.overview;
-
- elem = groupbox.querySelector(this.selector.learnMore);
- elem.setAttribute("value", TorStrings.onionServices.learnMore);
- elem.setAttribute(
- "href",
- "about:manual#onion-services_onion-service-authentication"
- );
- elem.setAttribute("useoriginprincipal", "true");
-
- elem = groupbox.querySelector(this.selector.savedKeysButton);
- elem.setAttribute(
- "label",
- TorStrings.onionServices.authPreferences.savedKeys
- );
- elem.addEventListener("command", () =>
- OnionServicesAuthPreferences.onViewSavedKeys()
- );
+ document
+ .getElementById("torOnionServiceKeys-savedKeys")
+ .addEventListener("click", () => {
+ gSubDialog.open(
+ "chrome://browser/content/onionservices/savedKeysDialog.xhtml"
+ );
+ });
},
-
- onViewSavedKeys() {
- gSubDialog.open(
- "chrome://browser/content/onionservices/savedKeysDialog.xhtml"
- );
- },
-}; // OnionServicesAuthPreferences
-
-Object.defineProperty(this, "OnionServicesAuthPreferences", {
- value: OnionServicesAuthPreferences,
- enumerable: true,
- writable: false,
-});
+};
=====================================
browser/components/onionservices/content/authPrompt.js
=====================================
@@ -56,28 +56,47 @@ var OnionAuthPrompt = {
show(details) {
this._logger.debug(`New Notification: ${this._detailsRepr(details)}`);
+ // NOTE: PopupNotifications currently requires the accesskey and label to be
+ // set for all actions, and does not accept fluent IDs in their place.
+ // Moreover, there doesn't appear to be a simple way to work around this, so
+ // we have to fetch the strings here before calling the show() method.
+ // NOTE: We avoid using the async formatMessages because we don't want to
+ // race against the browser's location changing.
+ // In principle, we could check that the details.browser.currentURI still
+ // matches details.uri or use a LocationChange listener. However, we expect
+ // that PopupNotifications will eventually change to accept fluent IDs, so
+ // we won't have to use formatMessages here at all.
+ // Moreover, we do not expect this notification to be common, so this
+ // shouldn't be too expensive.
+ // NOTE: Once we call PopupNotifications.show, PopupNotifications should
+ // take care of listening for changes in locations for us and remove the
+ // notification.
+ let [okButtonMsg, cancelButtonMsg] = this._lazy.SyncL10n.formatMessagesSync(
+ [
+ "onion-site-authentication-prompt-ok-button",
+ "onion-site-authentication-prompt-cancel-button",
+ ]
+ );
+
+ // Get an attribute string from a L10nMessage.
+ // We wrap the return value as a String to prevent the notification from
+ // throwing (and not showing) if a locale is unexpectedly missing a value.
+ const msgAttribute = (msg, name) =>
+ String((msg.attributes ?? []).find(attr => attr.name === name)?.value);
+
let mainAction = {
- label: this.TorStrings.onionServices.authPrompt.done,
- accessKey: this.TorStrings.onionServices.authPrompt.doneAccessKey,
+ label: msgAttribute(okButtonMsg, "label"),
+ accessKey: msgAttribute(okButtonMsg, "accesskey"),
leaveOpen: true, // Callback is responsible for closing the notification.
- callback: this._onDone.bind(this),
+ callback: () => this._onDone(),
};
- let dialogBundle = Services.strings.createBundle(
- "chrome://global/locale/dialog.properties"
- );
-
- let cancelAccessKey = dialogBundle.GetStringFromName("accesskey-cancel");
- if (!cancelAccessKey) {
- cancelAccessKey = "c";
- } // required by PopupNotifications.show()
-
// The first secondarybuttoncommand (cancelAction) should be triggered when
// the user presses "Escape".
let cancelAction = {
- label: dialogBundle.GetStringFromName("button-cancel"),
- accessKey: cancelAccessKey,
- callback: this._onCancel.bind(this),
+ label: msgAttribute(cancelButtonMsg, "label"),
+ accessKey: msgAttribute(cancelButtonMsg, "accesskey"),
+ callback: () => this._onCancel(),
};
let options = {
@@ -134,22 +153,17 @@ var OnionAuthPrompt = {
this._keyInput.value = "";
this._persistCheckbox.checked = false;
- // Handle replacement of the onion name within the localized
- // string ourselves so we can show the onion name as bold text.
- // We do this by splitting the localized string and creating
- // several HTML <span> elements.
- const fmtString = this.TorStrings.onionServices.authPrompt.description;
- const [prefix, suffix] = fmtString.split("%S");
-
- const domainEl = document.createElement("span");
- domainEl.id = "tor-clientauth-notification-onionname";
- domainEl.textContent = TorUIUtils.shortenOnionAddress(
- this._shownDetails?.onionHost ?? ""
+ document.l10n.setAttributes(
+ this._descriptionEl,
+ "onion-site-authentication-prompt-description",
+ {
+ onionsite: TorUIUtils.shortenOnionAddress(
+ this._shownDetails?.onionHost ?? ""
+ ),
+ }
);
- this._descriptionEl.replaceChildren(prefix, domainEl, suffix);
-
- this._showWarning(undefined);
+ this._showWarning(null);
},
/**
@@ -187,12 +201,13 @@ var OnionAuthPrompt = {
);
// Grab the details before they might change as we await.
- const { browser, onionServiceId, notification } = this._shownDetails;
+ const details = this._shownDetails;
+ const { browser, onionServiceId, notification } = details;
const isPermanent = this._persistCheckbox.checked;
const base64key = this._keyToBase64(this._keyInput.value);
if (!base64key) {
- this._showWarning(this.TorStrings.onionServices.authPrompt.invalidKey);
+ this._showWarning("onion-site-authentication-prompt-invalid-key");
return;
}
@@ -200,12 +215,11 @@ var OnionAuthPrompt = {
const provider = await this._lazy.TorProviderBuilder.build();
await provider.onionAuthAdd(onionServiceId, base64key, isPermanent);
} catch (e) {
- if (e.torMessage) {
- this._showWarning(e.torMessage);
- } else {
- this._logger.error(`Failed to set key for ${onionServiceId}`, e);
+ this._logger.error(`Failed to set key for ${onionServiceId}`, e);
+ if (details === this._shownDetails) {
+ // Notification has not been replaced.
this._showWarning(
- this.TorStrings.onionServices.authPrompt.failedToSetKey
+ "onion-site-authentication-prompt-setting-key-failed"
);
}
return;
@@ -245,16 +259,19 @@ var OnionAuthPrompt = {
/**
* Show a warning message to the user or clear the warning.
*
- * @param {string?} warningMessage - The message to show, or undefined to
- * clear the current message.
+ * @param {?string} warningMessageId - The l10n ID for the message to show, or
+ * null to clear the current message.
*/
- _showWarning(warningMessage) {
- this._logger.debug(`Showing warning: ${warningMessage}`);
- if (warningMessage) {
- this._warningEl.textContent = warningMessage;
+ _showWarning(warningMessageId) {
+ this._logger.debug(`Showing warning: ${warningMessageId}`);
+ if (warningMessageId) {
+ document.l10n.setAttributes(this._warningEl, warningMessageId);
this._warningEl.removeAttribute("hidden");
this._keyInput.classList.add("invalid");
} else {
+ // Clean up.
+ this._warningEl.removeAttribute("data-l10n-id");
+ this._warningEl.textContent = "";
this._warningEl.setAttribute("hidden", "true");
this._keyInput.classList.remove("invalid");
}
@@ -264,7 +281,7 @@ var OnionAuthPrompt = {
* Convert the user-entered key into base64.
*
* @param {string} keyString - The key to convert.
- * @returns {string?} - The base64 representation, or undefined if the given
+ * @returns {?string} - The base64 representation, or undefined if the given
* key was not the correct format.
*/
_keyToBase64(keyString) {
@@ -310,14 +327,17 @@ var OnionAuthPrompt = {
maxLogLevelPref: "browser.onionAuthPrompt.loglevel",
});
- const { TorStrings } = ChromeUtils.importESModule(
- "resource://gre/modules/TorStrings.sys.mjs"
- );
- this.TorStrings = TorStrings;
ChromeUtils.defineESModuleGetters(this._lazy, {
TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
CommonUtils: "resource://services-common/utils.sys.mjs",
});
+ // Allow synchornous access to the localized strings. Used only for the
+ // button actions, which is currently a hard requirement for
+ // PopupNotifications.show. Hopefully, PopupNotifications will accept fluent
+ // ids in their place, or get replaced with something else that does.
+ ChromeUtils.defineLazyGetter(this._lazy, "SyncL10n", () => {
+ return new Localization(["toolkit/global/tor-browser.ftl"], true);
+ });
this._keyInput = document.getElementById("tor-clientauth-notification-key");
this._persistCheckbox = document.getElementById(
@@ -328,19 +348,6 @@ var OnionAuthPrompt = {
"tor-clientauth-notification-desc"
);
- // Set "Learn More" label and href.
- const learnMoreElem = document.getElementById(
- "tor-clientauth-notification-learnmore"
- );
- learnMoreElem.setAttribute(
- "value",
- this.TorStrings.onionServices.learnMore
- );
-
- this._keyInput.setAttribute(
- "placeholder",
- this.TorStrings.onionServices.authPrompt.keyPlaceholder
- );
this._keyInput.addEventListener("keydown", event => {
if (event.key === "Enter") {
event.preventDefault();
@@ -349,7 +356,7 @@ var OnionAuthPrompt = {
});
this._keyInput.addEventListener("input", () => {
// Remove the warning.
- this._showWarning(undefined);
+ this._showWarning(null);
});
// Force back focus on click: tor-browser#41856
=====================================
browser/components/onionservices/content/onionservices.css
=====================================
@@ -1,12 +1,10 @@
/* Copyright (c) 2020, The Tor Project, Inc. */
-@namespace html url("http://www.w3.org/1999/xhtml");
-
-html|*#tor-clientauth-notification-onionname {
+#tor-clientauth-notification-desc {
font-weight: bold;
}
-html|*#tor-clientauth-notification-key {
+#tor-clientauth-notification-key {
box-sizing: border-box;
width: 100%;
margin-top: 15px;
@@ -17,12 +15,12 @@ html|*#tor-clientauth-notification-key {
* browser/components/newtab/css/activity-stream-mac.css (linux and windows
* use the same rules).
*/
-html|*#tor-clientauth-notification-key.invalid {
+#tor-clientauth-notification-key.invalid {
border: 1px solid #D70022;
box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3);
}
-html|*#tor-clientauth-warning {
+#tor-clientauth-warning {
display: inline-block;
animation: fade-up-tt 450ms;
background: #D70022;
@@ -35,11 +33,11 @@ html|*#tor-clientauth-warning {
z-index: 1;
}
-html|*#tor-clientauth-warning[hidden] {
+#tor-clientauth-warning[hidden] {
display: none;
}
-html|*#tor-clientauth-warning::before {
+#tor-clientauth-warning::before {
background: #D70022;
bottom: -8px;
content: '.';
=====================================
browser/components/onionservices/content/savedKeysDialog.js
=====================================
@@ -3,23 +3,10 @@
"use strict";
ChromeUtils.defineESModuleGetters(this, {
- TorStrings: "resource://gre/modules/TorStrings.sys.mjs",
TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
});
var gOnionServicesSavedKeysDialog = {
- selector: {
- dialog: "#onionservices-savedkeys-dialog",
- intro: "#onionservices-savedkeys-intro",
- tree: "#onionservices-savedkeys-tree",
- onionSiteCol: "#onionservices-savedkeys-siteCol",
- onionKeyCol: "#onionservices-savedkeys-keyCol",
- errorIcon: "#onionservices-savedkeys-errorIcon",
- errorMessage: "#onionservices-savedkeys-errorMessage",
- removeButton: "#onionservices-savedkeys-remove",
- removeAllButton: "#onionservices-savedkeys-removeall",
- },
-
_tree: undefined,
_busyCount: 0,
get _isBusy() {
@@ -27,8 +14,8 @@ var gOnionServicesSavedKeysDialog = {
return this._busyCount > 0;
},
- // Public functions (called from outside this file).
- async deleteSelectedKeys() {
+ async _deleteSelectedKeys() {
+ this._showError(null);
this._withBusy(async () => {
const indexesToDelete = [];
const count = this._tree.view.selection.getRangeCount();
@@ -42,8 +29,6 @@ var gOnionServicesSavedKeysDialog = {
}
if (indexesToDelete.length) {
- const controllerFailureMsg =
- TorStrings.onionServices.authPreferences.failedToRemoveKey;
const provider = await TorProviderBuilder.build();
try {
// Remove in reverse index order to avoid issues caused by index
@@ -53,28 +38,23 @@ var gOnionServicesSavedKeysDialog = {
}
} catch (e) {
console.error("Removing a saved key failed", e);
- if (e.torMessage) {
- this._showError(e.torMessage);
- } else {
- this._showError(controllerFailureMsg);
- }
+ this._showError(
+ "onion-site-saved-keys-dialog-remove-keys-error-message"
+ );
}
}
});
},
- async deleteAllKeys() {
+ async _deleteAllKeys() {
this._tree.view.selection.selectAll();
- await this.deleteSelectedKeys();
+ await this._deleteSelectedKeys();
},
- updateButtonsState() {
+ _updateButtonsState() {
const haveSelection = this._tree.view.selection.getRangeCount() > 0;
- const dialog = document.querySelector(this.selector.dialog);
- const removeSelectedBtn = dialog.querySelector(this.selector.removeButton);
- removeSelectedBtn.disabled = this._isBusy || !haveSelection;
- const removeAllBtn = dialog.querySelector(this.selector.removeAllButton);
- removeAllBtn.disabled = this._isBusy || this.rowCount === 0;
+ this._removeButton.disabled = this._isBusy || !haveSelection;
+ this._removeAllButton.disabled = this._isBusy || this.rowCount === 0;
},
// Private functions.
@@ -82,38 +62,40 @@ var gOnionServicesSavedKeysDialog = {
document.mozSubdialogReady = this._init();
},
- async _init() {
+ _init() {
this._populateXUL();
window.addEventListener("keypress", this._onWindowKeyPress.bind(this));
this._loadSavedKeys();
},
_populateXUL() {
- const dialog = document.querySelector(this.selector.dialog);
- const authPrefStrings = TorStrings.onionServices.authPreferences;
- dialog.setAttribute("title", authPrefStrings.dialogTitle);
-
- let elem = dialog.querySelector(this.selector.intro);
- elem.textContent = authPrefStrings.dialogIntro;
-
- elem = dialog.querySelector(this.selector.onionSiteCol);
- elem.setAttribute("label", authPrefStrings.onionSite);
-
- elem = dialog.querySelector(this.selector.onionKeyCol);
- elem.setAttribute("label", authPrefStrings.onionKey);
-
- elem = dialog.querySelector(this.selector.removeButton);
- elem.setAttribute("label", authPrefStrings.remove);
-
- elem = dialog.querySelector(this.selector.removeAllButton);
- elem.setAttribute("label", authPrefStrings.removeAll);
+ this._errorMessageContainer = document.getElementById(
+ "onionservices-savedkeys-errorContainer"
+ );
+ this._errorMessageEl = document.getElementById(
+ "onionservices-savedkeys-errorMessage"
+ );
+ this._removeButton = document.getElementById(
+ "onionservices-savedkeys-remove"
+ );
+ this._removeButton.addEventListener("click", () => {
+ this._deleteSelectedKeys();
+ });
+ this._removeAllButton = document.getElementById(
+ "onionservices-savedkeys-removeall"
+ );
+ this._removeButton.addEventListener("click", () => {
+ this._deleteAllKeys();
+ });
- this._tree = dialog.querySelector(this.selector.tree);
+ this._tree = document.getElementById("onionservices-savedkeys-tree");
+ this._tree.addEventListener("select", () => {
+ this._updateButtonsState();
+ });
},
async _loadSavedKeys() {
- const controllerFailureMsg =
- TorStrings.onionServices.authPreferences.failedToGetKeys;
+ this._showError(null);
this._withBusy(async () => {
try {
this._tree.view = this;
@@ -139,11 +121,10 @@ var gOnionServicesSavedKeysDialog = {
// Render the tree content.
this._tree.rowCountChanged(0, this.rowCount);
} catch (e) {
- if (e.torMessage) {
- this._showError(e.torMessage);
- } else {
- this._showError(controllerFailureMsg);
- }
+ console.error("Failed to load keys", e);
+ this._showError(
+ "onion-site-saved-keys-dialog-fetch-keys-error-message"
+ );
}
});
},
@@ -160,14 +141,14 @@ var gOnionServicesSavedKeysDialog = {
async _withBusy(func) {
this._busyCount++;
if (this._busyCount === 1) {
- this.updateButtonsState();
+ this._updateButtonsState();
}
try {
await func();
} finally {
this._busyCount--;
if (this._busyCount === 0) {
- this.updateButtonsState();
+ this._updateButtonsState();
}
}
},
@@ -179,16 +160,25 @@ var gOnionServicesSavedKeysDialog = {
if (event.keyCode === KeyEvent.DOM_VK_ESCAPE) {
window.close();
} else if (event.keyCode === KeyEvent.DOM_VK_DELETE) {
- this.deleteSelectedKeys();
+ this._deleteSelectedKeys();
}
},
- _showError(aMessage) {
- document
- .getElementById("onionservices-savedkeys-errorContainer")
- .classList.toggle("show-error", !!aMessage);
- const errorDesc = document.querySelector(this.selector.errorMessage);
- errorDesc.textContent = aMessage ? aMessage : "";
+ /**
+ * Show an error, or clear it.
+ *
+ * @param {?string} messageId - The l10n ID of the message to show, or null to
+ * clear it.
+ */
+ _showError(messageId) {
+ this._errorMessageContainer.classList.toggle("show-error", !!messageId);
+ if (messageId) {
+ document.l10n.setAttributes(this._errorMessageEl, messageId);
+ } else {
+ // Clean up.
+ this._errorMessageEl.removeAttribute("data-l10n-id");
+ this._errorMessageEl.textContent = "";
+ }
},
// XUL tree widget view implementation.
=====================================
browser/components/onionservices/content/savedKeysDialog.xhtml
=====================================
@@ -9,29 +9,37 @@
id="onionservices-savedkeys-dialog"
windowtype="OnionServices:SavedKeys"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ xmlns:html="http://www.w3.org/1999/xhtml"
+ data-l10n-id="onion-site-saved-keys-dialog-title"
>
+ <linkset>
+ <html:link rel="localization" href="toolkit/global/tor-browser.ftl" />
+ </linkset>
+
<script src="chrome://browser/content/onionservices/savedKeysDialog.js" />
<vbox id="onionservices-savedkeys" class="contentPane" flex="1">
<label
id="onionservices-savedkeys-intro"
control="onionservices-savedkeys-tree"
+ data-l10n-id="onion-site-saved-keys-dialog-intro"
/>
<separator class="thin" />
- <tree
- id="onionservices-savedkeys-tree"
- flex="1"
- hidecolumnpicker="true"
- onselect="gOnionServicesSavedKeysDialog.updateButtonsState();"
- >
+ <tree id="onionservices-savedkeys-tree" flex="1" hidecolumnpicker="true">
<treecols>
<treecol
id="onionservices-savedkeys-siteCol"
flex="1"
persist="width"
+ data-l10n-id="onion-site-saved-keys-dialog-table-header-site"
/>
<splitter class="tree-splitter" />
- <treecol id="onionservices-savedkeys-keyCol" flex="1" persist="width" />
+ <treecol
+ id="onionservices-savedkeys-keyCol"
+ flex="1"
+ persist="width"
+ data-l10n-id="onion-site-saved-keys-dialog-table-header-key"
+ />
</treecols>
<treechildren />
</tree>
@@ -41,15 +49,15 @@
</hbox>
<separator class="thin" />
<hbox id="onionservices-savedkeys-buttons">
- <button
+ <html:button
id="onionservices-savedkeys-remove"
disabled="true"
- oncommand="gOnionServicesSavedKeysDialog.deleteSelectedKeys();"
- />
- <button
+ data-l10n-id="onion-site-saved-keys-dialog-remove-button"
+ ></html:button>
+ <html:button
id="onionservices-savedkeys-removeall"
- oncommand="gOnionServicesSavedKeysDialog.deleteAllKeys();"
- />
+ data-l10n-id="onion-site-saved-keys-dialog-remove-all-button"
+ ></html:button>
</hbox>
</vbox>
</window>
=====================================
toolkit/locales/en-US/toolkit/global/tor-browser.ftl
=====================================
@@ -637,3 +637,62 @@ onion-neterror-invalid-address-description = The provided onion site address is
# "Circuit" refers to a Tor network circuit.
onion-neterror-timed-out-header = Onion site circuit creation timed out
onion-neterror-timed-out-description = Failed to connect to the onion site, possibly due to a poor network connection.
+
+## Onion site authentication prompt.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+# Here "open" is a verb.
+onion-site-authentication-urlbar-button =
+ .tooltiptext = Open the onion site authentication panel
+
+# $onionsite (String) - The shortened onion address for the current web site, for example "a3jx8k…pbsh7y.onion".
+onion-site-authentication-prompt-description = The onion site { $onionsite } is requesting that you authenticate.
+onion-site-authentication-prompt-learn-more = Learn more
+onion-site-authentication-prompt-key-input =
+ .placeholder = Enter your private key for this onion site
+onion-site-authentication-prompt-remember-checkbox =
+ .label = Remember this key
+onion-site-authentication-prompt-ok-button =
+ .label = OK
+ .accesskey = O
+onion-site-authentication-prompt-cancel-button =
+ .label = Cancel
+ .accesskey = C
+# Error message shown when the entered key is the wrong length or the wrong format.
+# "base32" and "base64" are technical names for binary-to-text encodings: https://en.wikipedia.org/wiki/Base64
+onion-site-authentication-prompt-invalid-key = Please enter a valid key (52 base32 characters or 44 base64 characters)
+onion-site-authentication-prompt-setting-key-failed = Unable to configure Tor with your key
+
+## Page Info window for onion sites.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+# $encryption-type (String) - The name of the encryption algorithm used for the page, for example "TLS_AES_128_GCM_SHA256".
+# $encryption-stength (Number) - The number of bits for the encryption key, for example "128" or "256". The "NUMBER" function will format this number to the same locale, and the "useGrouping" option will remove grouping symbols, like thousand separators. Note that the "bit" in "bit keys" refers to a computer "binary digit".
+# $encryption-version (String) - The name and version of the encryption, for example "TLS 1.3".
+page-info-onion-site-encryption-with-bits = Connection encrypted (Onion site, { $encryption-type }, { NUMBER($encryption-strength, useGrouping: "false") } bit keys, { $encryption-version })
+page-info-onion-site-encryption-plain = Connection encrypted (Onion site)
+
+## Onion site authentication preferences.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+onion-site-authentication-preferences-heading = Onion site authentication
+onion-site-authentication-preferences-overview = Some onion sites require that you identify yourself with a key (a kind of password) before you can access them.
+onion-site-authentication-preferences-learn-more = Learn more
+onion-site-authentication-preferences-saved-keys-button = Saved keys…
+
+## Onion site saved keys dialog.
+## "Onion site" is an abbreviation of "onion website": a website whose domain URL ends in ".onion", which is reachable through the Tor network.
+
+onion-site-saved-keys-dialog-title =
+ .title = Onion site keys
+
+onion-site-saved-keys-dialog-intro = The following onion site keys are stored on your computer.
+onion-site-saved-keys-dialog-table-header-site =
+ .label = Onion site
+# "Key" is a noun, for an access key.
+onion-site-saved-keys-dialog-table-header-key =
+ .label = Key
+onion-site-saved-keys-dialog-remove-button = Remove
+onion-site-saved-keys-dialog-remove-all-button = Remove all
+onion-site-saved-keys-dialog-fetch-keys-error-message = Unable to retrieve keys from Tor
+onion-site-saved-keys-dialog-remove-keys-error-message = Unable to remove key
=====================================
toolkit/modules/TorStrings.sys.mjs
=====================================
@@ -221,71 +221,6 @@ const Loader = {
};
},
- /*
- Tor Onion Services Strings, e.g., for the authentication prompt.
- */
- onionServices() {
- const tsb = new TorPropertyStringBundle(
- "chrome://torbutton/locale/torbutton.properties",
- "onionServices."
- );
- const getString = tsb.getString.bind(tsb);
-
- const retval = {
- learnMore: getString("learnMore", "Learn more"),
- authPrompt: {
- description: getString(
- "authPrompt.description2",
- "%S is requesting that you authenticate."
- ),
- keyPlaceholder: getString(
- "authPrompt.keyPlaceholder",
- "Enter your key"
- ),
- done: getString("authPrompt.done", "Done"),
- doneAccessKey: getString("authPrompt.doneAccessKey", "d"),
- invalidKey: getString("authPrompt.invalidKey", "Invalid key"),
- failedToSetKey: getString(
- "authPrompt.failedToSetKey",
- "Failed to set key"
- ),
- },
- authPreferences: {
- header: getString(
- "authPreferences.header",
- "Onion Services Authentication"
- ),
- overview: getString(
- "authPreferences.overview",
- "Some onion services require that you identify yourself with a key"
- ),
- savedKeys: getString("authPreferences.savedKeys", "Saved Keys"),
- dialogTitle: getString(
- "authPreferences.dialogTitle",
- "Onion Services Keys"
- ),
- dialogIntro: getString(
- "authPreferences.dialogIntro",
- "Keys for the following onionsites are stored on your computer"
- ),
- onionSite: getString("authPreferences.onionSite", "Onionsite"),
- onionKey: getString("authPreferences.onionKey", "Key"),
- remove: getString("authPreferences.remove", "Remove"),
- removeAll: getString("authPreferences.removeAll", "Remove All"),
- failedToGetKeys: getString(
- "authPreferences.failedToGetKeys",
- "Failed to get keys"
- ),
- failedToRemoveKey: getString(
- "authPreferences.failedToRemoveKey",
- "Failed to remove key"
- ),
- },
- };
-
- return retval;
- } /* Tor Onion Services Strings */,
-
/*
OnionLocation
*/
@@ -330,13 +265,6 @@ export const TorStrings = {
return this._torConnect;
},
- get onionServices() {
- if (!this._onionServices) {
- this._onionServices = Loader.onionServices();
- }
- return this._onionServices;
- },
-
get onionLocation() {
if (!this._onionLocation) {
this._onionLocation = Loader.onionLocation();
=====================================
toolkit/torbutton/chrome/locale/en-US/torbutton.dtd deleted
=====================================
@@ -1,8 +0,0 @@
-<!-- Copyright (c) 2022, The Tor Project, Inc.
- - This Source Code Form is subject to the terms of the Mozilla Public
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-
-<!-- Onion services strings. Strings are kept here for ease of translation. -->
-<!ENTITY torbutton.onionServices.authPrompt.tooltip "Open onion service client authentication prompt">
-<!ENTITY torbutton.onionServices.authPrompt.persistCheckboxLabel "Remember this key">
=====================================
toolkit/torbutton/chrome/locale/en-US/torbutton.properties
=====================================
@@ -3,35 +3,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# .Onion Page Info prompt.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
-
-# Shared between Onion Auth prompt and preferences
-onionServices.learnMore=Learn more
-
-# Onion Services Authentication prompt
-# LOCALIZATION NOTE: %S will be replaced with the .onion address.
-onionServices.authPrompt.description2=%S is requesting that you authenticate.
-onionServices.authPrompt.keyPlaceholder=Enter your private key for this onion service
-onionServices.authPrompt.done=Done
-onionServices.authPrompt.doneAccessKey=d
-onionServices.authPrompt.invalidKey=Please enter a valid key (52 base32 characters or 44 base64 characters)
-onionServices.authPrompt.failedToSetKey=Unable to configure Tor with your key
-
-# Onion Services Authentication preferences
-onionServices.authPreferences.header=Onion Services Authentication
-onionServices.authPreferences.overview=Some onion services require that you identify yourself with a key (a kind of password) before you can access them.
-onionServices.authPreferences.savedKeys=Saved Keys…
-onionServices.authPreferences.dialogTitle=Onion Service Keys
-onionServices.authPreferences.dialogIntro=Keys for the following onionsites are stored on your computer
-onionServices.authPreferences.onionSite=Onionsite
-onionServices.authPreferences.onionKey=Key
-onionServices.authPreferences.remove=Remove
-onionServices.authPreferences.removeAll=Remove All
-onionServices.authPreferences.failedToGetKeys=Unable to retrieve keys from tor
-onionServices.authPreferences.failedToRemoveKey=Unable to remove key
-
# Profile/startup error messages.
# LOCALIZATION NOTE: %S is the application name.
profileProblemTitle=%S Profile Problem
=====================================
tools/torbrowser/l10n/migrations/bug-42212-onion-services.py
=====================================
@@ -0,0 +1,27 @@
+from fluent.migrate.helpers import transforms_from
+
+
+def migrate(ctx):
+ dtd_path = "torbutton.dtd"
+ properties_path = "torbutton.properties"
+
+ ctx.add_transforms(
+ "tor-browser.ftl",
+ "tor-browser.ftl",
+ transforms_from(
+ """
+onion-site-authentication-prompt-learn-more = { COPY(path, "onionServices.learnMore") }
+onion-site-authentication-prompt-remember-checkbox =
+ .label = { COPY(dtd_path, "torbutton.onionServices.authPrompt.persistCheckboxLabel") }
+onion-site-authentication-prompt-invalid-key = { COPY(path, "onionServices.authPrompt.invalidKey") }
+onion-site-authentication-prompt-setting-key-failed = { COPY(path, "onionServices.authPrompt.failedToSetKey") }
+onion-site-authentication-preferences-learn-more = { COPY(path, "onionServices.learnMore") }
+onion-site-saved-keys-dialog-table-header-key =
+ .label = { COPY(path, "onionServices.authPreferences.onionKey") }
+onion-site-saved-keys-dialog-remove-button = { COPY(path, "onionServices.authPreferences.remove") }
+onion-site-saved-keys-dialog-remove-keys-error-message = { COPY(path, "onionServices.authPreferences.failedToRemoveKey") }
+""",
+ dtd_path=dtd_path,
+ path=properties_path,
+ ),
+ )
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8b57c0…
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/8b57c0…
You're receiving this email because of your account on gitlab.torproject.org.
1
0