diff --git a/AUTHORS b/AUTHORS index 2a5cc5e..5206baf 100644 --- a/AUTHORS +++ b/AUTHORS
@@ -231,6 +231,7 @@ Cheng Yu <yuzichengcode@gmail.com> Cheung Ho <uioptt24@gmail.com> Choongwoo Han <cwhan.tunz@gmail.com> +Choudhury M. Shamsujjoha <choudhury.s@samsung.com> Chris Greene <cwgreene@amazon.com> Chris Harrelson <chrishtr@gmail.com> Chris Nardi <hichris123@gmail.com>
diff --git a/DEPS b/DEPS index c8586768..19838c2 100644 --- a/DEPS +++ b/DEPS
@@ -306,7 +306,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '4315df978b895bcb1eff41009691ef2a878364f5', + 'skia_revision': 'd90917a1da6bcf6e40616509664147e9d73b012f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -314,7 +314,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '91ee237fd8b9c58c1caf1eb35fadca006147eee9', + 'angle_revision': '01b27a6f17434983235bf963fad63c3ec92c456f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -385,7 +385,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': '649c0aaf5e735be70096bbcc627455001f79221b', + 'devtools_frontend_revision': 'abf15f342f5ab1a9c466464e6c5cbf38271b2e36', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -421,7 +421,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'ae483daa63a54687788dfc8bc5eaad9f96188ba8', + 'dawn_revision': '7df98007abd651f72944ed13f5b5d95f4605b22a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -816,7 +816,7 @@ 'src/clank': { 'url': 'https://chrome-internal.googlesource.com/clank/internal/apps.git' + '@' + - '6d4a523bc744de632ac1c4f0d3a240e2ff423196', + '27d061f9baf1f94d6cc20747fafb39c7535016ab', 'condition': 'checkout_android and checkout_src_internal and not checkout_clank_via_src_internal', }, @@ -1000,7 +1000,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': 'EVyo1fY0G8ksQeheveyA3ozISCvDG5fejcsZrQ53EZgC', + 'version': 'sfkd_7g8xAywUG-eSpRzB7GAqVc2NCrY1kQoBLGRVKkC', }, ], 'condition': 'checkout_android', @@ -1243,13 +1243,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'fadcbfdb279278e98a598f5384d2d29ac01fb8d1', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'fe46d759b592c87d5a356ac9b6bfdd05526ad3a1', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + 'd33417be9cf5534a74696cf7b5ad95451f0f4bf7', + 'url': 'https://chrome-internal.googlesource.com/devtools/devtools-internal.git' + '@' + '6691fef0f2cf96bd56c9305dfd6d6644616226eb', 'condition': 'checkout_src_internal', }, @@ -1664,7 +1664,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'b25d8d9bb1d5aca92d98c17acabd5a8e208e74ad', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'a3e39a91c2d5d61394a314c8b042d07660e8743d', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1849,7 +1849,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '622cac9c69eb356b1e6a5117b6ddbb0d0e2acbaf', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'cb2b133bf0a9c014ebff2753e3f82175cbaf0eb3', + Var('webrtc_git') + '/src.git' + '@' + '408f0be5c23024a4b88f80b7707f570cd53ca6a6', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1919,7 +1919,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@e4d002ad1fa071596637f7f6548a46022e0e5638', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@8170bc1e50a872ea0f736c2aea3290c2c5fde03f', 'condition': 'checkout_src_internal', },
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index ffffb59..9d407755 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -354,6 +354,7 @@ <translation id="2960314608273155470">وضع الالتقاط، الإعداد التلقائي هو <ph name="SOURCE" /> <ph name="TYPE" />. اضغط على مفتاح Tab للتنقّل على لوحة المفاتيح.</translation> <translation id="2961963223658824723">حدث خطأ. يُرجى إعادة المحاولة خلال بضع ثوانٍ.</translation> <translation id="2963773877003373896">mod3</translation> +<translation id="2965227184985674128">هل تريد السماح بالوصول إلى الميكروفون؟</translation> <translation id="296762781903199866">يتعذّر تنزيل ملفات اللغة <ph name="LANGUAGE" /> في ميزة "التعرّف على الكلام"</translation> <translation id="2970920913501714344">تثبيت التطبيقات والإضافات والتصاميم</translation> <translation id="2977598380246111477">الرقم التالي</translation> @@ -432,6 +433,7 @@ <translation id="3386978599540877378">المكبِّر بملء الشاشة</translation> <translation id="3387527074123400161">نظام التشغيل Chromium</translation> <translation id="3400357268283240774">إعدادات إضافية</translation> +<translation id="3405101454990027959">السماح بالوصول إلى الميكروفون</translation> <translation id="3410336247007142655">عرض إعدادات المظهر الداكن</translation> <translation id="3413817803639110246">ليس لديك شيء للمشاهدة حتى الآن</translation> <translation id="3428447136709161042">تم قطع الاتصال بالشبكة <ph name="NETWORK_NAME" /></translation> @@ -519,6 +521,7 @@ <translation id="385051799172605136">رجوع</translation> <translation id="385300504083504382">البداية</translation> <translation id="3861651314799684201">اضغط على المفتاح Enter لتسجيل فيديو للشاشة بأكملها</translation> +<translation id="3885531177412808398">يتيح هذا الإجراء وصول كل التطبيقات والمواقع الإلكترونية إلى الميكروفون من خلال منحها إذن استخدام الميكروفون.</translation> <translation id="3886872229787704059">تم فتحه اليوم.</translation> <translation id="3891340733213178823">للخروج اضغط على Ctrl+Shift+Q مرتين.</translation> <translation id="3893630138897523026">ChromeVox (التعليق المنطوق)</translation> @@ -1381,6 +1384,7 @@ <translation id="8666856788528804727">افتَح <ph name="NAME" /> لإعداد الجهاز</translation> <translation id="8676770494376880701">تمّ توصيل شاحن منخفض الطاقة</translation> <translation id="8683506306463609433">تتبّع الأداء نشط</translation> +<translation id="8684405646663021166">يتيح هذا الإجراء وصول "<ph name="APP_NAME" />" وجميع التطبيقات والمواقع الإلكترونية إلى الميكروفون من خلال منحها إذن استخدام الميكروفون.</translation> <translation id="8685326675965865247">يمكنك البحث في جهازك والتطبيقات والإعدادات والويب. ويمكنك استخادم مفاتيح الأسهم للتنقُّل بين تطبيقاتك.</translation> <translation id="8703634754197148428">بدأ التسجيل. بعد بدء التسجيل، يمكنك استخدام Alt + Shift + L للانتقال إلى الرف والبحث عن زر إيقاف التسجيل.</translation> <translation id="8721053961083920564">تبديل مستوى الصوت. <ph name="STATE_TEXT" /></translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index c8676e5..6026009 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">আপডে’ট কৰি ছাইন আউট কৰক</translation> <translation id="1864454756846565995">USB-C ডিভাইচ (পিছফালে থকা পর্ট)</translation> <translation id="1869497990620230175">ক্ষিপ্ৰতাৰে এক্সেছ কৰিব পৰা ফাইল</translation> +<translation id="1871703283152909317">দুয়োটা এক্সেছ অন কৰক</translation> <translation id="1879018240766558464">বর্তমান ইনক'গনিট' ৱিণ্ড'সমূহ সমর্থন নকৰে। অন্য এপ্ ছেভ কৰা হ’ব।</translation> <translation id="1882814835921407042">কোনো ম’বাইল নেটৱৰ্ক উপলব্ধ নহয়</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" />ৰ সৈতে মিৰ’ৰ কৰা হৈছে</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">কথনৰ হাৰ</translation> <translation id="6099678161144790572">যোৱা মাহটোত সম্পাদনা কৰিছিল</translation> <translation id="6103838137565245112">ছিষ্টেম</translation> +<translation id="6107292179555508368">এই ডিভাইচটোত মাইক্ৰ’ফ’ন আৰু কেমেৰাৰ এক্সেছ অফ কৰা আছে</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> কথনৰ ফাইল ডাউনল’ড কৰা হৈছে</translation> <translation id="6116825164611323644">এই ডিভাইচটোত কেমেৰাৰ এক্সেছ অফ কৰা আছে</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />। <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">বাছনি কৰিবলৈ আপোনাৰ ষ্টাইলাছ ব্যৱহাৰ কৰক</translation> <translation id="6267036997247669271"><ph name="NAME" />: সক্ৰিয় কৰি থকা হৈছে…</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">এই ডিভাইচটোত মাইক্ৰ’ফ’ন আৰু কেমেৰা ব্যৱহাৰ কৰাৰ অনুমতি থকা এপ্ আৰু ৱেবপৃষ্ঠাসমূহক অনুমতি দিবলৈ এক্সেছ অন কৰক।</translation> <translation id="6283712521836204486">অসুবিধা নিদিব অফ কৰা আছে।</translation> <translation id="6284232397434400372">ৰিজ'লিউশ্বন সলনি হ'ল</translation> <translation id="6288235558961782912">এজন অভিভাৱকৰ অনুমতি লৈ <ph name="USER_EMAIL_ADDRESS" /> পাছত পুনৰ যোগ কৰিব পৰা যায়।</translation>
diff --git a/ash/strings/ash_strings_be.xtb b/ash/strings/ash_strings_be.xtb index 8f10166..61a7785 100644 --- a/ash/strings/ash_strings_be.xtb +++ b/ash/strings/ash_strings_be.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Абнавіць і выйсці</translation> <translation id="1864454756846565995">Прылада USB-C (порт ззаду)</translation> <translation id="1869497990620230175">Хуткія файлы</translation> +<translation id="1871703283152909317">Даць абодва дазволы на доступ</translation> <translation id="1879018240766558464">Вокны ў рэжыме інкогніта зараз не падтрымліваюцца. Іншыя праграмы будуць захаваны.</translation> <translation id="1882814835921407042">Мабільная сетка адсутнічае</translation> <translation id="1882897271359938046">Выконваецца адлюстраванне на дысплэй <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Хуткасць маўлення</translation> <translation id="6099678161144790572">Зменена ў мінулым месяцы</translation> <translation id="6103838137565245112">сістэма</translation> +<translation id="6107292179555508368">На гэтай прыладзе забаронены доступ да мікрафона і камеры</translation> <translation id="6114505516289286752">Спампаваны файлы для распазнавання маўлення на наступнай мове: <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">На гэтай прыладзе няма доступу да камеры</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Для выбару выкарыстайце стыло</translation> <translation id="6267036997247669271"><ph name="NAME" />: ідзе актывацыя...</translation> <translation id="6274202259872570803">Скрынкаст</translation> +<translation id="6282694724099204652">Дайце доступ, каб праграмы і вэб-старонкі з адпаведным дазволам маглі выкарыстоўваць на гэтай прыладзе мікрафон і камеру.</translation> <translation id="6283712521836204486">Рэжым "Не турбаваць" выключаны.</translation> <translation id="6284232397434400372">Раздзяляльнасць зменена</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> можна дадаць пазней з дазволу бацькоў.</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 34d77b4..eb09151 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Актуализиране и излизане от профила</translation> <translation id="1864454756846565995">USB-C устройство (задният порт)</translation> <translation id="1869497990620230175">Бърз достъп до файловете</translation> +<translation id="1871703283152909317">Включване на достъпа и до двете устройства</translation> <translation id="1879018240766558464">Понастоящем не се поддържат прозорци в режим „инкогнито“. Другите приложения ще бъдат запазени.</translation> <translation id="1882814835921407042">Няма мобилна мрежа</translation> <translation id="1882897271359938046">Дублира се на „<ph name="DISPLAY_NAME" />“</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Скорост на говора</translation> <translation id="6099678161144790572">Редактирано през миналия месец</translation> <translation id="6103838137565245112">система</translation> +<translation id="6107292179555508368">Достъпът до микрофона и камерата е изключен на това устройство</translation> <translation id="6114505516289286752">Файловете за говор на <ph name="LANGUAGE" /> бяха изтеглени</translation> <translation id="6116825164611323644">Достъпът до камерата е изключен на това устройство</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Използвайте писалката за избиране</translation> <translation id="6267036997247669271">„<ph name="NAME" />“: Активира се...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Включете достъпа, за да позволите на приложенията и уеб страниците със съответното разрешение да използват микрофоните и камерите на това устройство.</translation> <translation id="6283712521836204486">Режимът „Не безпокойте“ е изключен.</translation> <translation id="6284232397434400372">Разделителната способност е променена</translation> <translation id="6288235558961782912">Имейл адресът <ph name="USER_EMAIL_ADDRESS" /> може да бъде добавен отново по-късно с разрешение от родител.</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index c3bcb08..097e7c6 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">আপডেট করে সাইন-আউট করুন</translation> <translation id="1864454756846565995">USB-C ডিভাইস (পিছনের পোর্ট)</translation> <translation id="1869497990620230175">ঝটপট অ্যাক্সেসযোগ্য ফাইল</translation> +<translation id="1871703283152909317">উভয় অ্যাক্সেস চালু করুন</translation> <translation id="1879018240766558464">বর্তমানে ছদ্মবেশী উইন্ডো ব্যবহারের সুবিধা নেই। অন্যান্য অ্যাপ সেভ করা হবে।</translation> <translation id="1882814835921407042">মোবাইল নেটওয়ার্ক নেই</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> তে প্রতিবিম্বিত হচ্ছে</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">স্পিচ রেট</translation> <translation id="6099678161144790572">গত মাসে এডিট করা হয়েছে</translation> <translation id="6103838137565245112">সিস্টেম</translation> +<translation id="6107292179555508368">এই ডিভাইসে মাইক্রোফোন এবং ক্যামেরা অ্যাক্সেস বন্ধ আছে</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> স্পিচ ফাইল ডাউনলোড করা হয়েছে</translation> <translation id="6116825164611323644">এই ডিভাইসে ক্যামেরা অ্যাক্সেস বিকল্প বন্ধ আছে</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />। <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">বেছে নিতে স্টাইলাস ব্যবহার করুন</translation> <translation id="6267036997247669271"><ph name="NAME" />: সক্রিয় করা হচ্ছে...</translation> <translation id="6274202259872570803">স্ক্রিনকাস্ট</translation> +<translation id="6282694724099204652">এই ডিভাইসে মাইক্রোফোন এবং ক্যামেরা ব্যবহার করার অনুমতি সহ অ্যাপ এবং ওয়েবপেজে অনুমতি দিতে অ্যাক্সেস চালু করুন।</translation> <translation id="6283712521836204486">'বিরক্ত করবে না' মোড বন্ধ আছে</translation> <translation id="6284232397434400372">রেজোলিউশন পরিবর্তন করা হয়েছে</translation> <translation id="6288235558961782912">পরে অভিভাবকের অনুমতি সহ <ph name="USER_EMAIL_ADDRESS" /> আবার যোগ করা যেতে পারে।</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 07f6741..fd7eaf1 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Actualitza i tanca la sessió</translation> <translation id="1864454756846565995">Dispositiu USB-C (port posterior)</translation> <translation id="1869497990620230175">Fitxers ràpids</translation> +<translation id="1871703283152909317">Activa els dos accessos</translation> <translation id="1879018240766558464">Les finestres d'incògnit no s'admeten actualment. Les altres aplicacions es desaran.</translation> <translation id="1882814835921407042">No hi ha cap xarxa mòbil</translation> <translation id="1882897271359938046">S'està replicant <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Velocitat de parla</translation> <translation id="6099678161144790572">Editat durant el darrer mes</translation> <translation id="6103838137565245112">sistema</translation> +<translation id="6107292179555508368">Els accessos al micròfon i a la càmera estan desactivats en aquest dispositiu</translation> <translation id="6114505516289286752">S'han baixat fitxers de veu en <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">L'accés a la càmera està desactivat en aquest dispositiu</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" />.</translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Fes servir el llapis òptic per seleccionar</translation> <translation id="6267036997247669271"><ph name="NAME" />: s'està activant...</translation> <translation id="6274202259872570803">Captura de pantalla de vídeo</translation> +<translation id="6282694724099204652">Activa els accessos per permetre que les aplicacions i les pàgines web que tinguin permís utilitzin els micròfons i les càmeres d'aquest dispositiu.</translation> <translation id="6283712521836204486">El mode No molestis està desactivat.</translation> <translation id="6284232397434400372">S'ha canviat la resolució</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> es pot tornar a afegir més endavant amb un permís dels pares.</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 2e286ca..aa28c21 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Aktualizovat a odhlásit se</translation> <translation id="1864454756846565995">Zařízení USB Type-C (zadní port)</translation> <translation id="1869497990620230175">Rychlé soubory</translation> +<translation id="1871703283152909317">Zapnout oba přístupy</translation> <translation id="1879018240766558464">Anonymní okna v současné době nejsou podporována. Ostatní aplikace budou uloženy.</translation> <translation id="1882814835921407042">Žádná mobilní síť</translation> <translation id="1882897271359938046">Zrcadlení na displej <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Rychlost řeči</translation> <translation id="6099678161144790572">Upraveno v uplynulém měsíci</translation> <translation id="6103838137565245112">systém</translation> +<translation id="6107292179555508368">Přístup k mikrofonu a fotoaparátu je na tomto zařízení vypnutý</translation> <translation id="6114505516289286752">Byly staženy řečové soubory pro jazyk <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">Přístup k fotoaparátu je v tomto zařízení vypnutý</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">K výběru použijte dotykové pero</translation> <translation id="6267036997247669271"><ph name="NAME" />: Probíhá aktivace...</translation> <translation id="6274202259872570803">Záznam obrazovky</translation> +<translation id="6282694724099204652">Pokud aplikacím a webovým stránkám s příslušnými oprávněními chcete povolit používat na tomto zařízení mikrofony a kamery, zapněte tyto přístupy.</translation> <translation id="6283712521836204486">Režim Nerušit je vypnutý.</translation> <translation id="6284232397434400372">Rozlišení se změnilo</translation> <translation id="6288235558961782912">Adresu <ph name="USER_EMAIL_ADDRESS" /> můžete s povolením rodiče přidat později</translation>
diff --git a/ash/strings/ash_strings_cy.xtb b/ash/strings/ash_strings_cy.xtb index 446c84e..9623fc2 100644 --- a/ash/strings/ash_strings_cy.xtb +++ b/ash/strings/ash_strings_cy.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Diweddaru ac allgofnodi</translation> <translation id="1864454756846565995">Dyfais USB-C (porth cefn)</translation> <translation id="1869497990620230175">Ffeiliau cyflym</translation> +<translation id="1871703283152909317">Troi'r ddau fynediad ymlaen</translation> <translation id="1879018240766558464">Ni chefnogir ffenestri anhysbys ar hyn o bryd. Bydd apiau eraill yn cael eu cadw.</translation> <translation id="1882814835921407042">Dim rhwydwaith symudol</translation> <translation id="1882897271359938046">Wrthi'n adlewyrchu i <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Cyfradd lleferydd</translation> <translation id="6099678161144790572">Golygwyd yn y mis diwethaf</translation> <translation id="6103838137565245112">system</translation> +<translation id="6107292179555508368">Mae'r mynediadau meicroffon a chamera wedi'u diffodd ar y ddyfais hon</translation> <translation id="6114505516289286752">Wedi lawrlwytho ffeiliau lleferydd <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">Mae mynediad at y camera wedi'i ddiffodd ar y ddyfais hon</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Defnyddiwch eich pwyntil i ddewis</translation> <translation id="6267036997247669271"><ph name="NAME" />: Wrthi'n gweithredu...</translation> <translation id="6274202259872570803">Sgrinlediad</translation> +<translation id="6282694724099204652">Trowch y mynediadau ymlaen i ganiatáu i apiau a thudalennau gwe gyda chaniatâd i ddefnyddio'r meicroffon(au) a'r camera/camerâu ar y ddyfais hon.</translation> <translation id="6283712521836204486">Mae peidiwch ag aflonyddu wedi'i ddiffodd.</translation> <translation id="6284232397434400372">Newidiwyd y Cydraniad</translation> <translation id="6288235558961782912">Gall <ph name="USER_EMAIL_ADDRESS" /> gael ei ychwanegu eto yn nes ymlaen gyda chaniatâd rhiant.</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 33767ce..713e0c5 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Aktualisieren und abmelden</translation> <translation id="1864454756846565995">USB-C-Gerät (Port hinten)</translation> <translation id="1869497990620230175">Schnellzugriff auf Dateien</translation> +<translation id="1871703283152909317">Beide Zugriffe aktivieren</translation> <translation id="1879018240766558464">Inkognitofenster werden derzeit nicht unterstützt. Andere Apps werden gespeichert.</translation> <translation id="1882814835921407042">Kein Mobilfunknetz</translation> <translation id="1882897271359938046">Wird auf <ph name="DISPLAY_NAME" /> gespiegelt...</translation> @@ -923,6 +924,7 @@ <translation id="6095008505822982596">Sprechgeschwindigkeit</translation> <translation id="6099678161144790572">Im letzten Monat bearbeitet</translation> <translation id="6103838137565245112">System</translation> +<translation id="6107292179555508368">Mikrofon- und Kamerazugriff sind auf diesem Gerät deaktiviert</translation> <translation id="6114505516289286752">Sprachdateien auf <ph name="LANGUAGE" /> heruntergeladen</translation> <translation id="6116825164611323644">Kamerazugriff ist auf diesem Gerät deaktiviert</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" />.</translation> @@ -951,6 +953,7 @@ <translation id="6259254695169772643">Verwende den Eingabestift, um deine Auswahl zu treffen</translation> <translation id="6267036997247669271"><ph name="NAME" />: Wird aktiviert...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Aktiviere die Zugriffe, um Apps und Webseiten mit der Berechtigung zu erlauben, die Mikrofone und Kameras auf diesem Gerät zu verwenden.</translation> <translation id="6283712521836204486">„Bitte nicht stören“ ist deaktiviert.</translation> <translation id="6284232397434400372">Auflösung geändert</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> kann später mit der Zustimmung eines Elternteils wieder hinzugefügt werden.</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index fbc6fdc..ae116ca 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Actualizar y salir</translation> <translation id="1864454756846565995">Dispositivo USB-C (puerto trasero)</translation> <translation id="1869497990620230175">Archivos rápidos</translation> +<translation id="1871703283152909317">Activar ambos accesos</translation> <translation id="1879018240766558464">Por el momento, las ventanas de incógnito no son compatibles. Se guardarán las demás apps.</translation> <translation id="1882814835921407042">Sin red móvil</translation> <translation id="1882897271359938046">Duplicando en <ph name="DISPLAY_NAME" /></translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Velocidad de voz</translation> <translation id="6099678161144790572">Se editó el mes pasado</translation> <translation id="6103838137565245112">sistema</translation> +<translation id="6107292179555508368">Los accesos al micrófono y a la cámara están desactivados en este dispositivo</translation> <translation id="6114505516289286752">Se descargaron los archivos de voz en <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">El acceso a la cámara está desactivado en este dispositivo</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" />.</translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Usa tu pluma stylus para realizar una selección</translation> <translation id="6267036997247669271"><ph name="NAME" />: Activando...</translation> <translation id="6274202259872570803">Presentación en pantalla</translation> +<translation id="6282694724099204652">Activa los accesos para permitir que las apps y las páginas web tengan permiso para usar los micrófonos y las cámaras de este dispositivo.</translation> <translation id="6283712521836204486">La función No interrumpir está desactivada.</translation> <translation id="6284232397434400372">Se cambió la resolución</translation> <translation id="6288235558961782912">Puedes volver a agregar a <ph name="USER_EMAIL_ADDRESS" /> más tarde con el permiso de tu madre o padre.</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 6ea24c9d..23bc4a5f 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Actualizar y cerrar sesión</translation> <translation id="1864454756846565995">Dispositivo USB-C (puerto trasero)</translation> <translation id="1869497990620230175">Archivos rápidos</translation> +<translation id="1871703283152909317">Activar ambos accesos</translation> <translation id="1879018240766558464">Las ventanas de Incógnito no se admiten actualmente. Se guardarán las demás aplicaciones.</translation> <translation id="1882814835921407042">Sin red móvil</translation> <translation id="1882897271359938046">Proyectando en <ph name="DISPLAY_NAME" /></translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Velocidad de voz</translation> <translation id="6099678161144790572">Editado hace menos de un mes</translation> <translation id="6103838137565245112">sistema</translation> +<translation id="6107292179555508368">Los accesos al micrófono y a la cámara están desactivados en este dispositivo</translation> <translation id="6114505516289286752">Archivos de voz en <ph name="LANGUAGE" /> descargados</translation> <translation id="6116825164611323644">El acceso a la cámara está desactivado en este dispositivo</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Usa el lápiz óptico para seleccionar contenido</translation> <translation id="6267036997247669271"><ph name="NAME" />: Activando...</translation> <translation id="6274202259872570803">Grabación de pantalla</translation> +<translation id="6282694724099204652">Activa los accesos para permitir que las aplicaciones y las páginas web que tengan permiso puedan usar los micrófonos y las cámaras de este dispositivo.</translation> <translation id="6283712521836204486">El modo No molestar está desactivado.</translation> <translation id="6284232397434400372">Se ha cambiado la resolución</translation> <translation id="6288235558961782912">Se puede volver a añadir <ph name="USER_EMAIL_ADDRESS" /> más adelante con un permiso parental.</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 875120c..6a75b2a 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Värskenda ja logi välja</translation> <translation id="1864454756846565995">C-tüüpi USB-seade (tagumine port)</translation> <translation id="1869497990620230175">Kiirfailid</translation> +<translation id="1871703283152909317">Lülita sisse mõlemad juurdepääsud</translation> <translation id="1879018240766558464">Inkognito aknaid praegu ei toetata. Muud rakendused salvestatakse.</translation> <translation id="1882814835921407042">Mobiilsidevõrku pole</translation> <translation id="1882897271359938046">Peegeldamine asukohta <ph name="DISPLAY_NAME" /></translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Kõne kiirus</translation> <translation id="6099678161144790572">Muudetud viimase kuu jooksul</translation> <translation id="6103838137565245112">süsteem</translation> +<translation id="6107292179555508368">Juurdepääs mikrofonile ja kaamerale on selles seadmes välja lülitatud</translation> <translation id="6114505516289286752">Kõnefailid <ph name="LANGUAGE" /> keeles laaditi alla</translation> <translation id="6116825164611323644">Juurdepääs kaamerale on selles seadmes välja lülitatud</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Kasutage valimiseks elektronpliiatsit</translation> <translation id="6267036997247669271"><ph name="NAME" />: aktiveerimine ...</translation> <translation id="6274202259872570803">Ekraaniülekanne</translation> +<translation id="6282694724099204652">Lülitage juurdepääsud sisse, et lubadega rakendustel ja veebilehtedel lubada selles seadmes mikrofone ja kaameraid kasutada.</translation> <translation id="6283712521836204486">Režiim Mitte segada on väljas.</translation> <translation id="6284232397434400372">Eraldusvõimet muudeti</translation> <translation id="6288235558961782912">Aadressi <ph name="USER_EMAIL_ADDRESS" /> saab hiljem vanema loaga uuesti lisada.</translation>
diff --git a/ash/strings/ash_strings_eu.xtb b/ash/strings/ash_strings_eu.xtb index 6dd8d95..f725fe2 100644 --- a/ash/strings/ash_strings_eu.xtb +++ b/ash/strings/ash_strings_eu.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Eguneratu eta amaitu saioa</translation> <translation id="1864454756846565995">USB-C gailua (atzealdeko ataka)</translation> <translation id="1869497990620230175">Fitxategi bizkorrak</translation> +<translation id="1871703283152909317">Aktibatu bi baimenak</translation> <translation id="1879018240766558464">Une honetan ez dira onartzen ezkutuko moduko leihoak. Gainerako aplikazioak gorde egingo dira.</translation> <translation id="1882814835921407042">Ez dago sare mugikorrik</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> pantailan islatzen</translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Hizketaren abiadura</translation> <translation id="6099678161144790572">Azken hilabetean editatu da</translation> <translation id="6103838137565245112">sistema</translation> +<translation id="6107292179555508368">Mikrofonoa eta kamera erabiltzeko baimenak desaktibatuta daude gailu honetan</translation> <translation id="6114505516289286752">Deskargatu dira hizketa-fitxategiak (<ph name="LANGUAGE" />)</translation> <translation id="6116825164611323644">Kamera erabiltzeko baimena desaktibatuta dago gailu honetan</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Hautatzeko, erabili arkatza</translation> <translation id="6267036997247669271"><ph name="NAME" />: aktibatzen…</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Aktibatu baimenak, baimen horiek dituzten aplikazio eta web-orriek gailuko mikrofonoak eta kamerak erabil ditzaten.</translation> <translation id="6283712521836204486">Ez molestatzeko modua desaktibatuta dago.</translation> <translation id="6284232397434400372">Aldatu egin da bereizmena</translation> <translation id="6288235558961782912">Geroago gehi daiteke <ph name="USER_EMAIL_ADDRESS" /> guraso baten baimenarekin.</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 3081cc5..7ccdcc1 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Päivitä ja kirjaudu ulos</translation> <translation id="1864454756846565995">C-tyypin USB-laite (takaportti)</translation> <translation id="1869497990620230175">Pikatiedostot</translation> +<translation id="1871703283152909317">Laita molemmat pääsyoikeudet päälle</translation> <translation id="1879018240766558464">Incognito-ikkunoita ei tällä hetkellä tueta. Muut sovellukset tallennetaan.</translation> <translation id="1882814835921407042">Ei mobiiliverkkoa</translation> <translation id="1882897271359938046">Peilataan näyttöön: <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Puheen nopeus</translation> <translation id="6099678161144790572">Muokattu kuluneen kuukauden aikana</translation> <translation id="6103838137565245112">järjestelmä</translation> +<translation id="6107292179555508368">Mikrofonin ja kameran pääsyoikeudet ovat poissa päältä tällä laitteella</translation> <translation id="6114505516289286752">Puhetiedostot (<ph name="LANGUAGE" />) ladattu</translation> <translation id="6116825164611323644">Pääsy kameraan on pois päältä tällä laitteella</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Valitse näyttökynällä</translation> <translation id="6267036997247669271"><ph name="NAME" />: aktivoidaan…</translation> <translation id="6274202259872570803">Ruutukaappausvideo</translation> +<translation id="6282694724099204652">Salli pääsyoikeudet sovelluksille ja verkkosivuille, joilla on lupa käyttää mikrofoneja ja kameroita tällä laitteella.</translation> <translation id="6283712521836204486">Älä häiritse ‑tila on pois päältä</translation> <translation id="6284232397434400372">Resoluutio vaihdettu</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> voidaan lisätä myöhemmin uudelleen vanhemman luvalla.</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 6301a55..c802fff9 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Mettre à jour et se déconnecter</translation> <translation id="1864454756846565995">Appareil USB de type C (port situé sur l'arrière de l'appareil)</translation> <translation id="1869497990620230175">Fichiers rapides</translation> +<translation id="1871703283152909317">Activer les deux accès</translation> <translation id="1879018240766558464">Les fenêtres de navigation privée ne sont pas prises en charge pour le moment. Les autres applis seront enregistrées.</translation> <translation id="1882814835921407042">Pas de réseau mobile</translation> <translation id="1882897271359938046">Mise en miroir pour <ph name="DISPLAY_NAME" /></translation> @@ -923,6 +924,7 @@ <translation id="6095008505822982596">Débit</translation> <translation id="6099678161144790572">Modifié le mois dernier</translation> <translation id="6103838137565245112">système</translation> +<translation id="6107292179555508368">Les accès au micro et à la caméra sont désactivés sur cet appareil</translation> <translation id="6114505516289286752">Fichiers vocaux en <ph name="LANGUAGE" /> téléchargés</translation> <translation id="6116825164611323644">L'accès à l'appareil photo est désactivé sur cet appareil</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -951,6 +953,7 @@ <translation id="6259254695169772643">Effectuez une sélection à l'aide de votre stylet</translation> <translation id="6267036997247669271"><ph name="NAME" /> : activation en cours…</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Activez les accès pour permettre aux applis et pages Web d'utiliser les micros et les caméras de cet appareil.</translation> <translation id="6283712521836204486">Le mode Ne pas déranger est désactivé.</translation> <translation id="6284232397434400372">Résolution modifiée</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> pourra être ajouté à nouveau ultérieurement avec l'autorisation d'un des parents.</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index f2dc37b..6a65fe26 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Actualizar e pechar sesión</translation> <translation id="1864454756846565995">Dispositivo USB‑C (porto posterior)</translation> <translation id="1869497990620230175">Ficheiros rápidos</translation> +<translation id="1871703283152909317">Activar ambos os accesos</translation> <translation id="1879018240766558464">As ventás do modo de incógnito agora mesmo non son compatibles. Gardaranse outras aplicacións.</translation> <translation id="1882814835921407042">Non hai ningunha rede de telefonía móbil</translation> <translation id="1882897271359938046">Proxectando en <ph name="DISPLAY_NAME" /></translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Velocidade da fala</translation> <translation id="6099678161144790572">Editouse durante o último mes</translation> <translation id="6103838137565245112">sistema</translation> +<translation id="6107292179555508368">Os accesos ao micrófono e á cámara están desactivados neste dispositivo</translation> <translation id="6114505516289286752">Descargáronse os ficheiros de voz en <ph name="LANGUAGE" /></translation> <translation id="6116825164611323644">O acceso á cámara está desactivado neste dispositivo</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Usa o teu lapis óptico para seleccionar</translation> <translation id="6267036997247669271"><ph name="NAME" />: activando...</translation> <translation id="6274202259872570803">Gravación da pantalla</translation> +<translation id="6282694724099204652">Activa os accesos para que as aplicacións e as páxinas web que teñan permiso poidan usar os micrófonos e as cámaras deste dispositivo.</translation> <translation id="6283712521836204486">Está desactivado o modo Non molestar.</translation> <translation id="6284232397434400372">Cambiouse a resolución</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> pode engadirse de novo máis adiante co permiso da súa nai ou do seu pai.</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index b21213a..f2ec9a4 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">અપડેટ કરીને સાઇન આઉટ કરો</translation> <translation id="1864454756846565995">USB-C ઉપકરણ (પાછળનું પોર્ટ)</translation> <translation id="1869497990620230175">ફાઇલોનો ઝડપી ઍક્સેસ</translation> +<translation id="1871703283152909317">બંને ઍક્સેસ ચાલુ કરો</translation> <translation id="1879018240766558464">છૂપી વિન્ડોને હાલમાં સપોર્ટ કરવામાં આવતો નથી. અન્ય ઍપ સાચવવામાં આવશે.</translation> <translation id="1882814835921407042">કોઈ મોબાઇલ નેટવર્ક નથી</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> પર પ્રતિબિંબિત થઈ રહ્યું છે</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">સ્પીચ રેટ</translation> <translation id="6099678161144790572">ગયા મહિને ફેરફાર કરવામાં આવ્યો હતો</translation> <translation id="6103838137565245112">સિસ્ટમ</translation> +<translation id="6107292179555508368">આ ડિવાઇસ પર માઇક્રોફોન અને કૅમેરાની ઍક્સેસ બંધ છે</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> સ્પીચ ફાઇલ ડાઉનલોડ કરી</translation> <translation id="6116825164611323644">આ ડિવાઇસ પર કૅમેરાનો ઍક્સેસ બંધ કરવામાં આવ્યો છે</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">પસંદ કરવા માટે તમારા સ્ટાઇલસનો ઉપયોગ કરો</translation> <translation id="6267036997247669271"><ph name="NAME" />: સક્રિય કરી રહ્યું છે...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">પરવાનગી ધરાવતી ઍપ અને વેબપેજને આ ડિવાઇસ પર માઇક્રોફોન અને કૅમેરાનો ઉપયોગ કરવાની મંજૂરી આપવા માટે ઍક્સેસ ચાલુ કરો.</translation> <translation id="6283712521836204486">ખલેલ પાડશો નહીં બંધ છે.</translation> <translation id="6284232397434400372">રિઝોલ્યુશન બદલાયું</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" />ને પછીથી માતાપિતાની પરવાનગી સાથે ઉમેરી શકાય છે.</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index d22fc07..6683af47 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">अपडेट करके साइन आउट करें</translation> <translation id="1864454756846565995">USB-C डिवाइस (पिछला पोर्ट)</translation> <translation id="1869497990620230175">क्विक फ़ाइलें</translation> +<translation id="1871703283152909317">दोनों का ऐक्सेस चालू करें</translation> <translation id="1879018240766558464">फ़िलहाल, गुप्त विंडो काम नहीं कर रही हैं. अन्य ऐप्लिकेशन सेव हो जाएंगे.</translation> <translation id="1882814835921407042">आपके फ़ोन में मोबाइल नेटवर्क उपलब्ध नहीं है</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> पर स्क्रीन शेयर कर रहा है</translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">बोलने की दर</translation> <translation id="6099678161144790572">इसमें, पिछले महीने बदलाव किया गया था</translation> <translation id="6103838137565245112">सिस्टम</translation> +<translation id="6107292179555508368">इस डिवाइस पर माइक्रोफ़ोन और कैमरे का ऐक्सेस बंद है</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> स्पीच फ़ाइलें डाउनलोड हो गई हैं</translation> <translation id="6116825164611323644">इस डिवाइस पर कैमरा ऐक्सेस करने की अनुमति नहीं है</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">चुनने के लिए अपने स्टाइलस का इस्तेमाल करें</translation> <translation id="6267036997247669271"><ph name="NAME" />: सक्रिय हो रहा है...</translation> <translation id="6274202259872570803">स्क्रीनकास्ट</translation> +<translation id="6282694724099204652">इस डिवाइस पर माइक्रोफ़ोन और कैमरे का इस्तेमाल करने की अनुमति पाने वाले ऐप्लिकेशन और वेबपेजों को ऐक्सेस देने के लिए, दोनों का ऐक्सेस चालू करें.</translation> <translation id="6283712521836204486">'परेशान न करें' बंद है.</translation> <translation id="6284232397434400372">रिज़ॉल्यूशन बदला गया</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> काे माता-पिता की अनुमति से, बाद में जोड़ा जा सकता है.</translation>
diff --git a/ash/strings/ash_strings_hy.xtb b/ash/strings/ash_strings_hy.xtb index 0210342..8d721ebe 100644 --- a/ash/strings/ash_strings_hy.xtb +++ b/ash/strings/ash_strings_hy.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Թարմացնել և դուրս գալ</translation> <translation id="1864454756846565995">USB-C սարք (հետևի միացք)</translation> <translation id="1869497990620230175">Ֆայլերի արագ մուտք</translation> +<translation id="1871703283152909317">Միացնել երկու թույլտվությունները</translation> <translation id="1879018240766558464">Ինկոգնիտո պատուհանները ներկայումս չեն աջակցվում։ Մյուս հավելվածները կպահվեն։</translation> <translation id="1882814835921407042">Բջջային կապ չկա</translation> <translation id="1882897271359938046">Հայելապատճենվում է <ph name="DISPLAY_NAME" />-ին</translation> @@ -923,6 +924,7 @@ <translation id="6095008505822982596">Խոսքի արագությունը</translation> <translation id="6099678161144790572">Անցած ամիս փոփոխել եք</translation> <translation id="6103838137565245112">համակարգ</translation> +<translation id="6107292179555508368">Խոսափողի և տեսախցիկի օգտագործման թույլտվություններն անջատված են այս սարքում</translation> <translation id="6114505516289286752">Այս լեզվով (<ph name="LANGUAGE" />) խոսքի ճանաչման ֆայլերը ներբեռնվեցին</translation> <translation id="6116825164611323644">Տեսախցիկի հասանելիությունն անջատված է այս սարքում</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />։ <ph name="BATTERY_SAVER_STATE" /></translation> @@ -951,6 +953,7 @@ <translation id="6259254695169772643">Ընտրելու համար օգտագործեք ստիլուսը</translation> <translation id="6267036997247669271"><ph name="NAME" />` ակտիվացում…</translation> <translation id="6274202259872570803">Սքրինքաստ</translation> +<translation id="6282694724099204652">Տրամադրեք օգտագործման թույլտվություններ, որպեսզի հավելվածներն ու վեբ էջերը կարողանան օգտագործել այս սարքին միացված խոսափող(ներ)ը և տեսախցիկ(ներ)ը։</translation> <translation id="6283712521836204486">«Չանհանգստացնել» ռեժիմն անջատված է։</translation> <translation id="6284232397434400372">Լուծաչափը փոխվել է</translation> <translation id="6288235558961782912">Ծնողների թույլտվությամբ <ph name="USER_EMAIL_ADDRESS" /> օգտատիրոջը հնարավոր կլինի նորից ավելացնել ավելի ուշ:</translation>
diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb index 87193ec..f7af7b4 100644 --- a/ash/strings/ash_strings_kk.xtb +++ b/ash/strings/ash_strings_kk.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Жаңарту және шығу</translation> <translation id="1864454756846565995">USB-C құрылғысы (артқы ұяшық)</translation> <translation id="1869497990620230175">Файлдарға жылдам өту</translation> +<translation id="1871703283152909317">Екі рұқсатты қосу</translation> <translation id="1879018240766558464">Инкогнито терезелеріне қазір қолдау көрсетілмейді. Басқа қолданбалар сақталады.</translation> <translation id="1882814835921407042">Мобильдік желі жоқ.</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> арқылы экран көшірмесін көрсету</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Дыбыстау жылдамдығы</translation> <translation id="6099678161144790572">Өткен айда өзгертілді.</translation> <translation id="6103838137565245112">жүйе</translation> +<translation id="6107292179555508368">Бұл құрылғыда микрофон мен камераны пайдалану рұқсаттары өшірулі</translation> <translation id="6114505516289286752">Тіл файлдары (<ph name="LANGUAGE" />) жүктеп алынды</translation> <translation id="6116825164611323644">Бұл құрылғыда камера рұқсаты өшірулі</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Стилустың көмегімен таңдаңыз</translation> <translation id="6267036997247669271"><ph name="NAME" />: белсендірілуде…</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Пайдалану рұқсаттарын қосып, қолданбалар мен веб-беттерге осы құрылғыдағы микрофон мен камераны пайдалануға рұқсат етіңіз.</translation> <translation id="6283712521836204486">Мазаламау режимі өшірулі.</translation> <translation id="6284232397434400372">Ажыратымдылық өзгертілді</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> аккаунты ата-ананың рұқсатымен кейінірек қайта енгізіледі.</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 21811be..6db11c3 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">ಅಪ್ಡೇಟ್ ಮಾಡಿ ಮತ್ತು ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation> <translation id="1864454756846565995">USB-C ಸಾಧನ (ಹಿಂದಿನ ಪೋರ್ಟ್)</translation> <translation id="1869497990620230175">ತ್ವರಿತ ಫೈಲ್ಗಳು</translation> +<translation id="1871703283152909317">ಎರಡೂ ಆ್ಯಕ್ಸೆಸ್ಗಳನ್ನು ಆನ್ ಮಾಡಿ</translation> <translation id="1879018240766558464">ಅಜ್ಞಾತ ವಿಂಡೋಗಳು ಪ್ರಸ್ತುತ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ಇತರ ಆ್ಯಪ್ಗಳನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="1882814835921407042">ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> ಗೆ ಪ್ರತಿಬಿಂಬಿಸುತ್ತಿದೆ</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">ಮಾತಿನ ವೇಗ</translation> <translation id="6099678161144790572">ಕಳೆದ ತಿಂಗಳು ಎಡಿಟ್ ಮಾಡಿದ್ದಾರೆ</translation> <translation id="6103838137565245112">ಸಿಸ್ಟಂ</translation> +<translation id="6107292179555508368">ಈ ಸಾಧನದಲ್ಲಿ ಮೈಕ್ರೊಫೋನ್ ಹಾಗೂ ಕ್ಯಾಮರಾ ಆ್ಯಕ್ಸೆಸ್ಗಳು ಆಫ್ ಆಗಿವೆ</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> ಧ್ವನಿ ಫೈಲ್ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="6116825164611323644">ಈ ಸಾಧನದಲ್ಲಿ ಕ್ಯಾಮರಾ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">ಆಯ್ಕೆ ಮಾಡಲು ನಿಮ್ಮ ಸ್ಟೈಲಸ್ ಅನ್ನು ಬಳಸಿ</translation> <translation id="6267036997247669271"><ph name="NAME" />: ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="6274202259872570803">ಸ್ಕ್ರೀನ್ಕ್ಯಾಸ್ಟ್</translation> +<translation id="6282694724099204652">ಅನುಮತಿಯನ್ನು ಹೊಂದಿರುವ ಆ್ಯಪ್ಗಳು ಹಾಗೂ ವೆಬ್ಪುಟಗಳಿಗೆ ಈ ಸಾಧನದಲ್ಲಿರುವ ಮೈಕ್ರೊಫೋನ್(ಗಳು) ಹಾಗೂ ಕ್ಯಾಮರಾವನ್ನು(ಗಳು) ಬಳಸುವುದಕ್ಕಾಗಿ ಅನುಮತಿ ನೀಡಲು ಆ್ಯಕ್ಸೆಸ್ಗಳನ್ನು ಆನ್ ಮಾಡಿ.</translation> <translation id="6283712521836204486">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ" ಆಫ್ ಆಗಿದೆ.</translation> <translation id="6284232397434400372">ರೆಸಲ್ಯೂಷನ್ ಬದಲಾಗಿದೆ</translation> <translation id="6288235558961782912">ಪೋಷಕರ ಅನುಮತಿಯ ಮೇರೆಗೆ <ph name="USER_EMAIL_ADDRESS" /> ಅನ್ನು ನಂತರ ಪುನಃ ಸೇರಿಸಬಹುದಾಗಿದೆ.</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index e09bf73..13cae5f 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Жаңыртуу жана чыгуу</translation> <translation id="1864454756846565995">USB-C түзмөгү (арткы оюкча)</translation> <translation id="1869497990620230175">Ыкчам ачылуучу файлдар</translation> +<translation id="1871703283152909317">Экөөнү тең колдонууга уруксат берүү</translation> <translation id="1879018240766558464">Жашыруун терезелер учурда колдоого алынбайт. Башка колдонмолор сакталат.</translation> <translation id="1882814835921407042">Мобилдик Интернет жок</translation> <translation id="1882897271359938046">Төмөнкүгө чагылыштыруу <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Кеп ылдамдыгы</translation> <translation id="6099678161144790572">Мурунку айда түзөтүлгөн</translation> <translation id="6103838137565245112">тутум</translation> +<translation id="6107292179555508368">Бул түзмөктө микрофон менен камераны колдонуу мүмкүндүгү өчүк</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> тилиндеги кеп файлдары жүктөлүп алынды</translation> <translation id="6116825164611323644">Бул түзмөктө камераны колдонуу мүмкүндүгү өчүк</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Стилус менен тандаңыз</translation> <translation id="6267036997247669271"><ph name="NAME" />: Жандырылууда…</translation> <translation id="6274202259872570803">Скринкаст</translation> +<translation id="6282694724099204652">Бул түзмөктөгү микрофонду(-дорду) жана камераны(-ларды) колдонууга уруксат берилген колдонмолор жана веб-баракчалар үчүн колдонуу параметрин иштетиңиз.</translation> <translation id="6283712521836204486">"Тынчымды алба" режими өчүк.</translation> <translation id="6284232397434400372">Дааналыгы өзгөртүлдү</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> ата-эненин уруксаты менен кайра кошууга болот.</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index dcc81d9..33c39c7 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">അപ്ഡേറ്റ് ചെയ്ത് സൈൻ ഔട്ട് ചെയ്യുക</translation> <translation id="1864454756846565995">USB-C ഉപകരണം (പുറകിലെ പോർട്ട്)</translation> <translation id="1869497990620230175">പെട്ടെന്ന് ആക്സസ് ചെയ്യാവുന്ന ഫയലുകൾ</translation> +<translation id="1871703283152909317">രണ്ട് ആക്സസുകളും ഓണാക്കുക</translation> <translation id="1879018240766558464">അദൃശ്യ വിൻഡോകൾ നിലവിൽ പിന്തുണയ്ക്കുന്നില്ല. മറ്റ് ആപ്പുകൾ സംരക്ഷിക്കും.</translation> <translation id="1882814835921407042">മൊബൈൽ നെറ്റ്വർക്ക് ഇല്ല</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> എന്നതിലേക്ക് മിറർ ചെയ്യുന്നു</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">വായനയുടെ വേഗത</translation> <translation id="6099678161144790572">കഴിഞ്ഞ മാസം എഡിറ്റ് ചെയ്തത്</translation> <translation id="6103838137565245112">സിസ്റ്റം</translation> +<translation id="6107292179555508368">ഈ ഉപകരണത്തിൽ മൈക്രോഫോണിന്റെയും ക്യാമറയുടെയും ആക്സസുകൾ ഓഫാണ്</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> സംഭാഷണ ഫയലുകൾ ഡൗൺലോഡ് ചെയ്തു</translation> <translation id="6116825164611323644">ഈ ഉപകരണത്തിൽ ക്യാമറ ആക്സസ് ഓഫാണ്</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">തിരഞ്ഞെടുക്കാൻ നിങ്ങളുടെ സ്റ്റൈലസ് ഉപയോഗിക്കുക</translation> <translation id="6267036997247669271"><ph name="NAME" />: സജീവമാക്കുന്നു...</translation> <translation id="6274202259872570803">സ്ക്രീൻകാസ്റ്റ്</translation> +<translation id="6282694724099204652">ഈ ഉപകരണത്തിൽ മൈക്രോഫോണും(കളും) ക്യാമറ(കളും) ഉപയോഗിക്കാൻ, അനുമതിയുള്ള ആപ്പുകളെയും വെബ്പേജുകളെയും അനുവദിക്കുന്നതിന് ആക്സസുകൾ ഓണാക്കുക.</translation> <translation id="6283712521836204486">ശല്യപ്പെടുത്തരുത് മോഡ് ഓഫാണ്.</translation> <translation id="6284232397434400372">റെസല്യൂഷൻ മാറ്റി</translation> <translation id="6288235558961782912">രക്ഷിതാവിന്റെ അനുമതിയോടെ <ph name="USER_EMAIL_ADDRESS" /> എന്നത് പിന്നീട് വീണ്ടും ചേർക്കാനാവും.</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index f3b513c..10e2041 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">अपडेट करून साइन आउट करा</translation> <translation id="1864454756846565995">USB-C डिव्हाइस (मागील बाजूचे पोर्ट)</translation> <translation id="1869497990620230175">झटपट फाइल</translation> +<translation id="1871703283152909317">दोन्ही अॅक्सेस सुरू करा</translation> <translation id="1879018240766558464">गुप्त विंडोना सध्या सपोर्ट नाही. इतर ॲप्स सेव्ह केली जातील.</translation> <translation id="1882814835921407042">मोबाइल नेटवर्क नाही</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> वर मिरर करत आहे</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">स्पीच रेट</translation> <translation id="6099678161144790572">मागील महिन्यात संपादित केलेली</translation> <translation id="6103838137565245112">सिस्टीम</translation> +<translation id="6107292179555508368">या डिव्हाइसवर मायक्रोफोन आणि कॅमेरा अॅक्सेस बंद आहेत</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> च्या स्पीच फाइल डाउनलोड केल्या आहेत</translation> <translation id="6116825164611323644">या डिव्हाइसवर कॅमेराचा ॲक्सेस बंद आहे</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">निवडण्यासाठी तुमचे स्टायलस वापरा</translation> <translation id="6267036997247669271"><ph name="NAME" />: सक्रिय करत आहे...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">या डिव्हाइसवर मायक्रोफोन आणि कॅमेरा वापरण्याच्या परवानगीसह अॅप्स आणि वेबपेजना अनुमती देण्यासाठी अॅक्सेस सुरू करा.</translation> <translation id="6283712521836204486">व्यत्यय आणू नका बंद आहे.</translation> <translation id="6284232397434400372">रीझोल्युशन बदलले</translation> <translation id="6288235558961782912">पालकाच्या परवानगीने <ph name="USER_EMAIL_ADDRESS" /> नंतर पुन्हा जोडता येईल.</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 81921ff..31af5abd 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Kemas kini dan log keluar</translation> <translation id="1864454756846565995">Peranti USB-C (port belakang)</translation> <translation id="1869497990620230175">Fail pantas</translation> +<translation id="1871703283152909317">Hidupkan kedua-dua akses</translation> <translation id="1879018240766558464">Tetingkap inkognito tidak disokong pada masa ini. Apl lain akan disimpan.</translation> <translation id="1882814835921407042">Tiada rangkaian mudah alih</translation> <translation id="1882897271359938046">Mencerminkan <ph name="DISPLAY_NAME" /></translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">Kadar pertuturan</translation> <translation id="6099678161144790572">Diedit dalam bulan lepas</translation> <translation id="6103838137565245112">sistem</translation> +<translation id="6107292179555508368">Akses mikrofon dan kamera dimatikan pada peranti ini</translation> <translation id="6114505516289286752">Fail pertuturan <ph name="LANGUAGE" /> dimuat turun</translation> <translation id="6116825164611323644">Akses kamera dimatikan pada peranti ini</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">Gunakan stilus anda untuk memilih</translation> <translation id="6267036997247669271"><ph name="NAME" />: Mengaktifkan...</translation> <translation id="6274202259872570803">Rakaman skrin</translation> +<translation id="6282694724099204652">Hidupkan akses untuk membenarkan apl dan halaman web yang mempunyai kebenaran menggunakan mikrofon dan kamera pada peranti ini.</translation> <translation id="6283712521836204486">Jangan ganggu dimatikan.</translation> <translation id="6284232397434400372">Peleraian ditukar</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> boleh ditambahkan semula kemudian dengan kebenaran ibu bapa.</translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index aaa4c7a..17a720b 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">अपडेट गर्नुहोस् अनि साइन आउट गर्नुहोस्</translation> <translation id="1864454756846565995">USB-C यन्त्र (पछाडिको पोर्ट)</translation> <translation id="1869497990620230175">क्विक फाइलहरू</translation> +<translation id="1871703283152909317">माइक्रोफोन र क्यामेरा प्रयोग गर्ने अनुमति दिनुहोस्</translation> <translation id="1879018240766558464">इन्कोग्निटो विन्डो हाल प्रयोग गर्न मिल्दैन। अन्य एपहरू सेभ गरिने छन्।</translation> <translation id="1882814835921407042">मोबाइल नेटवर्कमा कनेक्ट भएको छैन</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> मा प्रतिबिम्बित गर्दै</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">स्पिचको गति</translation> <translation id="6099678161144790572">गत महिना सम्पादन गरिएको</translation> <translation id="6103838137565245112">सिस्टम</translation> +<translation id="6107292179555508368">यो डिभाइसमा माइक्रोफोन र क्यामेरा प्रयोग गर्ने अनुमति दिइएको छैन</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> भाषाका वाक् पहिचानसम्बन्धी फाइलहरू डाउनलोड गरिएका छन्</translation> <translation id="6116825164611323644">यो डिभाइसमा क्यामेरा प्रयोग गर्ने अनुमति अफ गरिएको छ</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />। <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">चयन गर्न आफ्नो स्टाइलस प्रयोग गर्नुहोस्</translation> <translation id="6267036997247669271"><ph name="NAME" />: सक्रिय गर्दै...</translation> <translation id="6274202259872570803">स्क्रिनकास्ट</translation> +<translation id="6282694724099204652">यो डिभाइसका माइक्रोफोन र क्यामेरा(हरू) प्रयोग गर्ने अनुमति भएका एप तथा वेबपेजहरूलाई ती सुविधा प्रयोग गर्न दिन माइक्रोफोन र क्यामेरा दुवै अन गर्नुहोस्।</translation> <translation id="6283712521836204486">बाधा नपुर्याउनुहोस् नामक मोड निष्क्रिय छ।</translation> <translation id="6284232397434400372">रिजोल्युसन परिवर्तन गरियो</translation> <translation id="6288235558961782912">अभिभावकको अनुमति लिएर <ph name="USER_EMAIL_ADDRESS" /> पछि पुनः थप्न सकिन्छ।</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 2f5641f..7aca96a6 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Zaktualizuj i wyloguj się</translation> <translation id="1864454756846565995">Urządzenie USB-C (tylny port)</translation> <translation id="1869497990620230175">Szybkie pliki</translation> +<translation id="1871703283152909317">Włącz dostęp w obu przypadkach</translation> <translation id="1879018240766558464">Okna incognito nie są obecnie obsługiwane. Inne aplikacje zostaną zapisane.</translation> <translation id="1882814835921407042">Brak sieci komórkowej</translation> <translation id="1882897271359938046">Kopia na <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Prędkość mowy</translation> <translation id="6099678161144790572">Edytowane w zeszłym miesiącu</translation> <translation id="6103838137565245112">system</translation> +<translation id="6107292179555508368">Dostęp do mikrofonu i aparatu na tym urządzeniu jest wyłączony</translation> <translation id="6114505516289286752">Pliki z mową w języku: <ph name="LANGUAGE" /> zostały pobrane</translation> <translation id="6116825164611323644">Dostęp do aparatu jest wyłączony na tym urządzeniu</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Zaznacz rysikiem</translation> <translation id="6267036997247669271"><ph name="NAME" />: aktywuję...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Włącz dostęp, aby zezwolić aplikacjom i stronom internetowym z uprawnieniami na korzystanie z mikrofonów i aparatów na tym urządzeniu.</translation> <translation id="6283712521836204486">Tryb Nie przeszkadzać jest wyłączony.</translation> <translation id="6284232397434400372">Rozdzielczość została zmieniona</translation> <translation id="6288235558961782912">Adres <ph name="USER_EMAIL_ADDRESS" /> będzie można dodać ponownie później po uzyskaniu zgody rodzica.</translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index ee0fbc8..60616dd0 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Përditëso dhe dil</translation> <translation id="1864454756846565995">Pajisja USB-C (porta prapa)</translation> <translation id="1869497990620230175">Skedarët e shpejtë</translation> +<translation id="1871703283152909317">Aktivizo të dyja rastet e qasjes</translation> <translation id="1879018240766558464">Dritaret "E fshehta" nuk mbështeten aktualisht. Aplikacionet e tjera do të ruhen.</translation> <translation id="1882814835921407042">Nuk ka rrjet celular</translation> <translation id="1882897271359938046">Po pasqyron në <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Shpejtësia e të folurit</translation> <translation id="6099678161144790572">Modifikuar muajin e kaluar</translation> <translation id="6103838137565245112">sistemi</translation> +<translation id="6107292179555508368">Qasja te mikrofoni dhe qasja te kamera janë joaktive në këtë pajisje</translation> <translation id="6114505516289286752">Skedarët e ligjërimit në <ph name="LANGUAGE" /> u shkarkuan</translation> <translation id="6116825164611323644">Qasja te kamera është joaktive në këtë pajisje</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Përdor lapsin për të zgjedhur</translation> <translation id="6267036997247669271"><ph name="NAME" />: Po aktivizohet...</translation> <translation id="6274202259872570803">Transmetimi i ekranit</translation> +<translation id="6282694724099204652">Aktivizo qasjet për të lejuar aplikacionet dhe faqet e uebit që kanë lejen që të përdorin mikrofonat dhe kamerat në këtë pajisje.</translation> <translation id="6283712521836204486">Modaliteti "Mos shqetëso" është joaktiv.</translation> <translation id="6284232397434400372">Rezolucioni u ndryshua</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> mund të rishtohet më vonë me lejen e prindit.</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index b109337..695598b 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Uppdatera och logga ut</translation> <translation id="1864454756846565995">USB-C-enhet (bakre port)</translation> <translation id="1869497990620230175">Snabbfiler</translation> +<translation id="1871703283152909317">Aktivera båda åtkomster</translation> <translation id="1879018240766558464">Inkognitofönster stöds inte för närvarande. Andra appar sparas.</translation> <translation id="1882814835921407042">Inget mobilnätverk</translation> <translation id="1882897271359938046">Spegling av <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Talhastighet</translation> <translation id="6099678161144790572">Redigerades under den senaste månaden</translation> <translation id="6103838137565245112">system</translation> +<translation id="6107292179555508368">Mikrofon- och kameraåtkomster är inaktiverade på den här enheten</translation> <translation id="6114505516289286752">Filerna för taligenkänning på <ph name="LANGUAGE" /> har laddats ned</translation> <translation id="6116825164611323644">Kameraåtkomst är inaktiverad på den här enheten</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Välj något med e-pennan</translation> <translation id="6267036997247669271"><ph name="NAME" />: Aktiverar ...</translation> <translation id="6274202259872570803">Screencast</translation> +<translation id="6282694724099204652">Aktivera åtkomst för att tillåta appar och webbsidor med behörighet att använda mikrofonen och kameran på denna enhet.</translation> <translation id="6283712521836204486">Stör ej är inaktiverat.</translation> <translation id="6284232397434400372">Upplösningen har ändrats</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" /> kan läggas till igen senare med en förälders tillstånd.</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index 791c058..5b2e9530 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">புதுப்பித்து வெளியேறு</translation> <translation id="1864454756846565995">USB-C சாதனம் (பின்பக்கப் போர்ட்)</translation> <translation id="1869497990620230175">துரித ஃபைல்கள்</translation> +<translation id="1871703283152909317">இரண்டு அணுகல்களையும் அனுமதி</translation> <translation id="1879018240766558464">மறைநிலைச் சாளரங்களைத் தற்போது பயன்படுத்த முடியாது. பிற ஆப்ஸ் சேமிக்கப்படும்.</translation> <translation id="1882814835921407042">மொபைலில் நெட்வொர்க் இல்லை</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> ஐப் பிரதிபலிக்கிறது</translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">பேச்சு வேகம்</translation> <translation id="6099678161144790572">கடந்த மாதம் திருத்தப்பட்டது</translation> <translation id="6103838137565245112">சிஸ்டம்</translation> +<translation id="6107292179555508368">மைக்ரோஃபோன் மற்றும் கேமராவுக்கான அணுகல்கள் இந்தச் சாதனத்தில் முடக்கப்பட்டுள்ளன</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> மொழிக்கான பேச்சு அறிதல் ஃபைல்கள் பதிவிறக்கப்பட்டன</translation> <translation id="6116825164611323644">இந்தச் சாதனத்தில் கேமரா அணுகல் முடக்கப்பட்டுள்ளது</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">தேர்ந்தெடுக்க, ஸ்டைலஸைப் பயன்படுத்தலாம்</translation> <translation id="6267036997247669271"><ph name="NAME" />: செயல்படுத்துகிறது...</translation> <translation id="6274202259872570803">ஸ்க்ரீன்காஸ்ட்</translation> +<translation id="6282694724099204652">இந்தச் சாதனத்தில் மைக்ரோஃபோன்களையும் கேமராக்களையும் பயன்படுத்த அனுமதி கேட்கும் ஆப்ஸிற்கும் இணையப் பக்கங்களுக்கும் அணுகல்களை வழங்கவும்.</translation> <translation id="6283712521836204486">'தொந்தரவு செய்ய வேண்டாம்' ஆஃப் செய்யப்பட்டுள்ளது.</translation> <translation id="6284232397434400372">தெளிவு மாற்றப்பட்டது</translation> <translation id="6288235558961782912">பெற்றோரின் அனுமதியுடன் <ph name="USER_EMAIL_ADDRESS" /> பயனரைப் பின்னர் மறுபடியும் சேர்க்கலாம்.</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 17862de..d423e49 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">అప్డేట్ చేసి, సైన్ అవుట్ చేయండి</translation> <translation id="1864454756846565995">USB-C పరికరం (వెనుకవైపు పోర్ట్)</translation> <translation id="1869497990620230175">క్విక్ ఫైల్స్</translation> +<translation id="1871703283152909317">రెండు యాక్సెస్లనూ ఆన్ చేయండి</translation> <translation id="1879018240766558464">అజ్ఞాత విండోలు ప్రస్తుత సపోర్ట్ చేయవు. ఇతర యాప్లు సేవ్ చేయబడతాయి.</translation> <translation id="1882814835921407042">మొబైల్ నెట్వర్క్ ఏదీ అందుబాటులో లేదు</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" />కు మిర్రరింగ్ చేస్తోంది</translation> @@ -925,6 +926,7 @@ <translation id="6095008505822982596">స్పీచ్ రేట్</translation> <translation id="6099678161144790572">గత నెలలో ఎడిట్ చేశారు</translation> <translation id="6103838137565245112">సిస్టమ్</translation> +<translation id="6107292179555508368">ఈ పరికరంలో మైక్రోఫోన్, కెమెరా యాక్సెస్లు రెండూ ఆఫ్లో ఉన్నాయి</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> స్పీచ్ ఫైల్లు డౌన్లోడ్ చేయబడ్డాయి</translation> <translation id="6116825164611323644">ఈ పరికరంలో కెమెరా యాక్సెస్ ఆఫ్ చేయబడింది</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -953,6 +955,7 @@ <translation id="6259254695169772643">ఎంచుకోవడానికి మీ స్టైలస్ను ఉపయోగించండి</translation> <translation id="6267036997247669271"><ph name="NAME" />: సక్రియం చేస్తోంది...</translation> <translation id="6274202259872570803">స్క్రీన్కాస్ట్</translation> +<translation id="6282694724099204652">ఈ పరికరంలో మైక్రోఫోన్(లు), కెమెరా(ల)ని ఉపయోగించడానికి అనుమతితో యాప్లు, వెబ్పేజీలను అనుమతించడానికి యాక్సెస్లను ఆన్ చేయండి.</translation> <translation id="6283712521836204486">"అంతరాయం కలిగించవద్దు" ఆఫ్లో ఉంది.</translation> <translation id="6284232397434400372">రిజల్యూషన్ మార్చబడింది</translation> <translation id="6288235558961782912">మీ తల్లి/తండ్రి అనుమతితో <ph name="USER_EMAIL_ADDRESS" />ను తిరిగి యాడ్ చేయవచ్చు.</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index 4ac45b4..12ce869 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">Güncelle ve oturumu kapat</translation> <translation id="1864454756846565995">USB-C cihaz (arka bağlantı noktası)</translation> <translation id="1869497990620230175">Hızlı dosyalar</translation> +<translation id="1871703283152909317">Her iki erişimi de aç</translation> <translation id="1879018240766558464">Gizli pencereler şu anda desteklenmiyor. Diğer uygulamalar kaydedilecek.</translation> <translation id="1882814835921407042">Mobil ağ yok</translation> <translation id="1882897271359938046">Şuraya yansıtılıyor: <ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">Konuşma hızı</translation> <translation id="6099678161144790572">Geçen ay düzenlendi</translation> <translation id="6103838137565245112">sistem</translation> +<translation id="6107292179555508368">Bu cihazda mikrofon ve kamera erişimi kapalı</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> dosyaları indirildi</translation> <translation id="6116825164611323644">Bu cihazda kamera erişimi kapalı</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">Seçmek için ekran kaleminizi kullanın</translation> <translation id="6267036997247669271"><ph name="NAME" />: Etkinleştiriliyor...</translation> <translation id="6274202259872570803">Ekran video kaydı</translation> +<translation id="6282694724099204652">Bu cihazda mikrofonları ve kameraları kullanma izni olan uygulamaların ve web sayfalarının bunları kullanmasına izin vermek için erişimi açın.</translation> <translation id="6283712521836204486">Rahatsız Etmeyin modu kapalı.</translation> <translation id="6284232397434400372">Çözünürlük değiştirildi</translation> <translation id="6288235558961782912"><ph name="USER_EMAIL_ADDRESS" />, bir ebeveynin izniyle daha sonra yeniden eklenebilir.</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 90ed7a5..d6f53ff 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -175,6 +175,7 @@ <translation id="1862380676329487333">更新并退出</translation> <translation id="1864454756846565995">USB-C 设备(背面端口)</translation> <translation id="1869497990620230175">快捷文件</translation> +<translation id="1871703283152909317">开启这两项使用权限</translation> <translation id="1879018240766558464">目前不支持无痕式窗口。其他应用会被保存。</translation> <translation id="1882814835921407042">无移动网络</translation> <translation id="1882897271359938046">正在镜像到<ph name="DISPLAY_NAME" /></translation> @@ -924,6 +925,7 @@ <translation id="6095008505822982596">语速</translation> <translation id="6099678161144790572">过去一个月内修改过</translation> <translation id="6103838137565245112">系统</translation> +<translation id="6107292179555508368">此设备上的麦克风使用权限和摄像头使用权限都处于关闭状态</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" />语音识别结果文件已下载完毕</translation> <translation id="6116825164611323644">此设备上的摄像头使用权限处于关闭状态</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />。<ph name="BATTERY_SAVER_STATE" /></translation> @@ -952,6 +954,7 @@ <translation id="6259254695169772643">请使用您的触控笔进行选择</translation> <translation id="6267036997247669271"><ph name="NAME" />:正在激活…</translation> <translation id="6274202259872570803">抓屏</translation> +<translation id="6282694724099204652">开启这两项使用权限,以允许具有相应权限的应用和网页使用此设备上的麦克风和摄像头。</translation> <translation id="6283712521836204486">“勿扰”模式已关闭。</translation> <translation id="6284232397434400372">分辨率已更改</translation> <translation id="6288235558961782912">日后在获得家长允许的情况下可以重新添加 <ph name="USER_EMAIL_ADDRESS" />。</translation>
diff --git a/ash/webui/camera_app_ui/resources/js/device/camera_operation.ts b/ash/webui/camera_app_ui/resources/js/device/camera_operation.ts index 23411be7..97201a3 100644 --- a/ash/webui/camera_app_ui/resources/js/device/camera_operation.ts +++ b/ash/webui/camera_app_ui/resources/js/device/camera_operation.ts
@@ -226,11 +226,12 @@ return false; } + let facing = c.deviceId !== null ? + cameraInfo.getCamera3DeviceInfo(c.deviceId)?.facing ?? null : + null; this.listener.onTryingNewConfig({ deviceId: c.deviceId, - facing: c.deviceId !== null ? - cameraInfo.getCamera3DeviceInfo(c.deviceId)?.facing ?? null : - null, + facing, mode: c.mode, captureCandidate: c.captureCandidate, }); @@ -243,7 +244,7 @@ await this.preview.open(c.constraints); // For non-ChromeOS VCD, the facing and device id can only be known // after preview is actually opened. - const facing = this.preview.getFacing(); + facing = this.preview.getFacing(); const deviceId = assertString(this.preview.getDeviceId()); await this.checkEnablePTZ(c); @@ -271,6 +272,13 @@ let errorToReport: Error; // Since OverconstrainedError is not an Error instance. if (e instanceof OverconstrainedError) { + if (facing === Facing.EXTERNAL && e.constraint === 'deviceId') { + // External camera configuration failed with OverconstrainedError + // of deviceId means that the device is no longer available and is + // likely caused by external camera disconnected. Ignore this + // error. + continue; + } errorToReport = new Error(`${e.message} (constraint = ${e.constraint})`); errorToReport.name = 'OverconstrainedError';
diff --git a/ash/webui/camera_app_ui/resources/js/init.ts b/ash/webui/camera_app_ui/resources/js/init.ts index 10249ba..a269461 100644 --- a/ash/webui/camera_app_ui/resources/js/init.ts +++ b/ash/webui/camera_app_ui/resources/js/init.ts
@@ -12,6 +12,12 @@ import {AppWindow} from './app_window.js'; import * as Comlink from './lib/comlink.js'; import {TestBridge} from './test_bridge.js'; +import { + createUntrustedIframe, + injectUntrustedJSModule, + setGAHelper, + setVideoProcessorHelper, +} from './untrusted_scripts.js'; declare global { @@ -28,6 +34,30 @@ const workerPath = '/js/test_bridge.js'; const sharedWorker = new SharedWorker(workerPath, {type: 'module'}); const testBridge = Comlink.wrap<TestBridge>(sharedWorker.port); + + // To support code coverage collection and communication with tast, the + // initialization is split into several steps: + // 1. Creates all untrusted iframes. + // 2. Binds the appWindow used for communication with tast if running under + // tast, which also tells tast that CCA is ready. + // 3. Tast attaches to the main page and all untrusted iframes, and start + // profiling to collect code coverage. CCA waits for tast with + // waitUntilReadyOnTastSide. + // 4. Injects the untrusted scripts into the untrusted iframes now, so the + // code coverage of those untrusted scripts will be collected. + // 5. Load the error.js and main.js. + // TODO(b/197712141): Also creates all dedicated worker and attach them on + // tast side to collect code coverage. + + // TODO(pihsun): Currently the untrusted_script_loader.ts will not be + // included in coverage because it can be run before we can start profiling. + // We might be able to use Target.autoAttachRelated and + // waitForDebuggerOnStart in CDP to achieve this without separating the steps + // here, but those are currently limited to browser target and not usable by + // tast now. + const gaHelperIFrame = createUntrustedIframe(); + const videoProcessorHelperIFrame = createUntrustedIframe(); + const appWindow = await testBridge.bindWindow(window.location.href); window.appWindow = appWindow; window.windowCreationTime = performance.now(); @@ -35,6 +65,11 @@ await appWindow.waitUntilReadyOnTastSide(); } + setGAHelper( + injectUntrustedJSModule(gaHelperIFrame, '/js/untrusted_ga_helper.js')); + setVideoProcessorHelper(injectUntrustedJSModule( + videoProcessorHelperIFrame, '/js/untrusted_video_processor_helper.js')); + // Dynamically import the error module here so that the codes can be counted // by coverage report. const errorModule = await import('./error.js');
diff --git a/ash/webui/camera_app_ui/resources/js/js.gni b/ash/webui/camera_app_ui/resources/js/js.gni index 5440943c..0d5b87db 100644 --- a/ash/webui/camera_app_ui/resources/js/js.gni +++ b/ash/webui/camera_app_ui/resources/js/js.gni
@@ -80,6 +80,7 @@ "unload.ts", "untrusted_ga_helper.ts", "untrusted_script_loader.ts", + "untrusted_scripts.ts", "untrusted_video_processor_helper.ts", "util.ts", "views/camera_intent.ts",
diff --git a/ash/webui/camera_app_ui/resources/js/metrics.ts b/ash/webui/camera_app_ui/resources/js/metrics.ts index 43cbd3c4..74e5642 100644 --- a/ash/webui/camera_app_ui/resources/js/metrics.ts +++ b/ash/webui/camera_app_ui/resources/js/metrics.ts
@@ -21,8 +21,7 @@ Resolution, VideoResolutionLevel, } from './type.js'; -import {GAHelper} from './untrusted_ga_helper.js'; -import * as util from './util.js'; +import {getGAHelper} from './untrusted_scripts.js'; import {WaitableEvent} from './waitable_event.js'; /** @@ -34,9 +33,6 @@ const ready = new WaitableEvent(); -const gaHelper = - util.createUntrustedJSModule<GAHelper>('/js/untrusted_ga_helper.js'); - /** * Send the event to GA backend. * @@ -67,7 +63,7 @@ const canSendMetrics = await ChromeHelper.getInstance().isMetricsAndCrashReportingEnabled(); if (canSendMetrics) { - (await gaHelper).sendGAEvent(event); + (await getGAHelper()).sendGAEvent(event); } } @@ -79,7 +75,7 @@ */ export async function setMetricsEnabled(enabled: boolean): Promise<void> { await ready.wait(); - await (await gaHelper).setMetricsEnabled(GA_ID, enabled); + await (await getGAHelper()).setMetricsEnabled(GA_ID, enabled); } const SCHEMA_VERSION = 3; @@ -161,7 +157,8 @@ localStorage.set(LocalStorageKey.GA_USER_ID, id); } - await (await gaHelper).initGA(GA_ID, clientId, Comlink.proxy(setClientId)); + await (await getGAHelper()) + .initGA(GA_ID, clientId, Comlink.proxy(setClientId)); ready.signal(); }
diff --git a/ash/webui/camera_app_ui/resources/js/models/video_saver.ts b/ash/webui/camera_app_ui/resources/js/models/video_saver.ts index 64c2dbe..33a690e 100644 --- a/ash/webui/camera_app_ui/resources/js/models/video_saver.ts +++ b/ash/webui/camera_app_ui/resources/js/models/video_saver.ts
@@ -8,10 +8,7 @@ MimeType, Resolution, } from '../type.js'; -import { - VideoProcessorHelper, -} from '../untrusted_video_processor_helper.js'; -import * as util from '../util.js'; +import {getVideoProcessorHelper} from '../untrusted_scripts.js'; import {AsyncWriter} from './async_writer.js'; import { @@ -29,9 +26,7 @@ // eslint-disable-next-line @typescript-eslint/naming-convention const FFMpegVideoProcessor = (async () => { const workerChannel = new MessageChannel(); - const videoProcessorHelper = - await util.createUntrustedJSModule<VideoProcessorHelper>( - '/js/untrusted_video_processor_helper.js'); + const videoProcessorHelper = await getVideoProcessorHelper(); await videoProcessorHelper.connectToWorker( Comlink.transfer(workerChannel.port2, [workerChannel.port2])); return Comlink.wrap<VideoProcessorConstructor>(workerChannel.port1);
diff --git a/ash/webui/camera_app_ui/resources/js/type.ts b/ash/webui/camera_app_ui/resources/js/type.ts index 8a4e25c..1df6975 100644 --- a/ash/webui/camera_app_ui/resources/js/type.ts +++ b/ash/webui/camera_app_ui/resources/js/type.ts
@@ -128,7 +128,6 @@ VIRTUAL_USER = 'virtual_user', VIRTUAL_ENV = 'virtual_environment', VIRTUAL_EXT = 'virtual_external', - UNKNOWN = 'unknown', } export enum ViewName { @@ -358,7 +357,6 @@ START_CAPTURE_FAILURE = 'start-capture-failure', STOP_CAPTURE_FAILURE = 'stop-capture-failure', UNCAUGHT_PROMISE = 'uncaught-promise', - UNKNOWN_FACING = 'unknown-facing', UNSAFE_INTEGER = 'unsafe-integer', UNSUPPORTED_PROTOCOL = 'unsupported-protocol', }
diff --git a/ash/webui/camera_app_ui/resources/js/untrusted_scripts.ts b/ash/webui/camera_app_ui/resources/js/untrusted_scripts.ts new file mode 100644 index 0000000..bc62ce9 --- /dev/null +++ b/ash/webui/camera_app_ui/resources/js/untrusted_scripts.ts
@@ -0,0 +1,98 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import {assert, assertExists} from './assert.js'; +import * as Comlink from './lib/comlink.js'; +import {GAHelper} from './untrusted_ga_helper.js'; +import {VideoProcessorHelper} from './untrusted_video_processor_helper.js'; +import {WaitableEvent} from './waitable_event.js'; + +interface UntrustedIFrame { + iframe: HTMLIFrameElement; + pageReadyEvent: WaitableEvent; +} + +/** + * Creates the iframe to host the untrusted scripts under + * chrome-untrusted://camera-app and append to the document. + */ +export function createUntrustedIframe(): UntrustedIFrame { + const untrustedPageReady = new WaitableEvent(); + const iframe = document.createElement('iframe'); + iframe.addEventListener('load', () => untrustedPageReady.signal()); + iframe.setAttribute( + 'src', + 'chrome-untrusted://camera-app/views/untrusted_script_loader.html'); + iframe.hidden = true; + document.body.appendChild(iframe); + return {iframe, pageReadyEvent: untrustedPageReady}; +} + +// TODO(pihsun): actually get correct type from the function definition. +interface UntrustedScriptLoader { + loadScript(url: string): Promise<void>; +} + +/** + * Creates JS module by given |scriptUrl| under untrusted context with given + * origin and returns its proxy. + * + * @param untrustedRemote The Comlink remote endpoint for the untrusted iframe. + * @param scriptUrl The URL of the script to load. + */ +export async function injectUntrustedJSModule<T>( + {iframe, pageReadyEvent}: UntrustedIFrame, + scriptUrl: string): Promise<Comlink.Remote<T>> { + await pageReadyEvent.wait(); + assert(iframe.contentWindow !== null); + const untrustedRemote = Comlink.wrap<UntrustedScriptLoader>( + Comlink.windowEndpoint(iframe.contentWindow, self)); + await untrustedRemote.loadScript(scriptUrl); + // loadScript adds the script exports to what's exported by the + // untrustedRemote, so we manually cast it to the expected type. + return untrustedRemote as unknown as Comlink.Remote<T>; +} + +let gaHelper: Promise<Comlink.Remote<GAHelper>>|null = null; +let videoProcessorHelper: Promise<Comlink.Remote<VideoProcessorHelper>>|null = + null; + +/** + * Gets the singleton GAHelper instance that is located in an untrusted iframe. + */ +export function getGAHelper(): Promise<Comlink.Remote<GAHelper>> { + return assertExists(gaHelper); +} + +/** + * Sets the singleton GAHelper instance. This should only be called on + * initialize by init.ts. + */ +export function setGAHelper(newGAHelper: Promise<Comlink.Remote<GAHelper>>): + void { + assert(gaHelper === null, 'gaHelper should only be initialize once on init'); + gaHelper = newGAHelper; +} + +/** + * Gets the singleton VideoProcessorHelper instance that is located in an + * untrusted iframe. + */ +export function getVideoProcessorHelper(): + Promise<Comlink.Remote<VideoProcessorHelper>> { + return assertExists(videoProcessorHelper); +} + +/** + * Sets the singleton VideoProcessorHelper instance. This should only be called + * on initialize by init.ts. + */ +export function setVideoProcessorHelper( + newVideoProcessorHelper: Promise<Comlink.Remote<VideoProcessorHelper>>): + void { + assert( + videoProcessorHelper === null, + 'videoProcessorHelper should only be initialize once on init'); + videoProcessorHelper = newVideoProcessorHelper; +}
diff --git a/ash/webui/camera_app_ui/resources/js/util.ts b/ash/webui/camera_app_ui/resources/js/util.ts index 607ff47..532fd00 100644 --- a/ash/webui/camera_app_ui/resources/js/util.ts +++ b/ash/webui/camera_app_ui/resources/js/util.ts
@@ -6,12 +6,10 @@ import {assert, assertInstanceof} from './assert.js'; import * as dom from './dom.js'; import {I18nString} from './i18n_string.js'; -import * as Comlink from './lib/comlink.js'; import * as loadTimeData from './models/load_time_data.js'; import * as state from './state.js'; import * as tooltip from './tooltip.js'; import {AspectRatioSet, Facing, Resolution} from './type.js'; -import {WaitableEvent} from './waitable_event.js'; /** * Creates a canvas element for 2D drawing. @@ -267,35 +265,6 @@ } /** - * Creates JS module by given |scriptUrl| under untrusted context with given - * origin and returns its proxy. - * - * @param scriptUrl The URL of the script to load. - */ -export async function createUntrustedJSModule<T>(scriptUrl: string): - Promise<Comlink.Remote<T>> { - const untrustedPageReady = new WaitableEvent(); - const iFrame = document.createElement('iframe'); - iFrame.addEventListener('load', () => untrustedPageReady.signal()); - iFrame.setAttribute( - 'src', - 'chrome-untrusted://camera-app/views/untrusted_script_loader.html'); - iFrame.hidden = true; - document.body.appendChild(iFrame); - await untrustedPageReady.wait(); - - assert(iFrame.contentWindow !== null); - // TODO(pihsun): actually get correct type from the function definition. - const untrustedRemote = - Comlink.wrap<{loadScript(url: string): Promise<void>}>( - Comlink.windowEndpoint(iFrame.contentWindow, self)); - await untrustedRemote.loadScript(scriptUrl); - // loadScript adds the script exports to what's exported by the - // untrustedRemote, so we manually cast it to the expected type. - return untrustedRemote as unknown as Comlink.Remote<T>; -} - -/** * Sleeps for a specified time. * * @param ms Milliseconds to sleep.
diff --git a/ash/webui/common/resources/network/BUILD.gn b/ash/webui/common/resources/network/BUILD.gn index d16a12d..35435b4 100644 --- a/ash/webui/common/resources/network/BUILD.gn +++ b/ash/webui/common/resources/network/BUILD.gn
@@ -119,11 +119,13 @@ js_library("apn_detail_dialog") { deps = [ "//ash/webui/common/resources:i18n_behavior", + "//third_party/polymer/v3_0/components-chromium/iron-collapse:iron-collapse", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", ] externs_list = [ "//ui/webui/resources/cr_elements/cr_button/cr_button_externs.js", "//ui/webui/resources/cr_elements/cr_dialog/cr_dialog_externs.js", + "//ui/webui/resources/cr_elements/cr_input/cr_input_externs.js", ] }
diff --git a/ash/webui/common/resources/network/apn_detail_dialog.html b/ash/webui/common/resources/network/apn_detail_dialog.html index 9f89147..ef4cb0e 100644 --- a/ash/webui/common/resources/network/apn_detail_dialog.html +++ b/ash/webui/common/resources/network/apn_detail_dialog.html
@@ -1,14 +1,50 @@ +<style include="cr-shared-style"> + .advanced-settings { + font-size: 0.625rem; + font-weight: 500; + line-height: 10px; + --cr-section-padding: 4px; + --cr-section-min-height: 36px; + } + + .cr-row-line { + --cr-section-min-height: 0px; + } +</style> <cr-dialog id="apnDetailDialog" close-text="[[i18n('close')]]" show-on-attach> <div id="apnDetailDialogTitle" slot="title"> [[i18n('apnDetailAddApnDialogTitle')]] </div> <div slot="body"> + <!-- TODO(b/162365553): Add validation for the input box settings. --> + <cr-input id="apnInput" label="[[i18n('apn')]]" type="text"> + </cr-input> + <cr-input id="usernameInput" + label="[[i18n('OncCellular-APN-Username')]]" type="text"> + </cr-input> + <cr-input id="passwordInput" + label="[[i18n('OncCellular-APN-Password')]]" type="password"> + </cr-input> + <cr-expand-button id="advancedSettingsBtn" + class="advanced-settings cr-row" + expanded="{{advancedSettingsExpanded_}}"> + <div>[[i18n('apnDetailAdvancedSettings')]]</div> + </cr-expand-button> + <iron-collapse opened="[[advancedSettingsExpanded_]]"> + <!-- TODO(b/162365553): Add advanced settings. --> + </iron-collapse> + <div class="cr-row-line cr-row"></div> </div> <div slot="button-container"> <cr-button id="apnDetailCancelBtn" class="cancel-button" on-click="onCancelClicked_"> [[i18n('cancel')]] </cr-button> + <!-- TODO(b/162365553): Disable Add button unless validated --> + <cr-button id="apnDetailAddBtn" class="action-button" + disabled> + [[i18n('add')]] + </cr-button> </div> </cr-dialog> \ No newline at end of file
diff --git a/ash/webui/common/resources/network/apn_detail_dialog.js b/ash/webui/common/resources/network/apn_detail_dialog.js index 5f60684..622d4010 100644 --- a/ash/webui/common/resources/network/apn_detail_dialog.js +++ b/ash/webui/common/resources/network/apn_detail_dialog.js
@@ -9,6 +9,10 @@ import '//resources/cr_elements/cr_button/cr_button.js'; import '//resources/cr_elements/cr_dialog/cr_dialog.js'; +import '//resources/cr_elements/cr_input/cr_input.js'; +import '//resources/polymer/v3_0/iron-collapse/iron-collapse.js'; +import '//resources/cr_elements/cr_expand_button/cr_expand_button.js'; +import '//resources/cr_elements/cr_shared_style.css.js'; import {I18nBehavior, I18nBehaviorInterface} from '//resources/ash/common/i18n_behavior.js'; import {mixinBehaviors, PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; @@ -33,6 +37,16 @@ return getTemplate(); } + static get properties() { + return { + /** @private */ + advancedSettingsExpanded_: { + type: Boolean, + value: false, + }, + }; + } + /** * @param {!Event} event * @private
diff --git a/base/trace_event/trace_log.cc b/base/trace_event/trace_log.cc index dd8cf86..bd79d9b 100644 --- a/base/trace_event/trace_log.cc +++ b/base/trace_event/trace_log.cc
@@ -1293,16 +1293,12 @@ return result; } +#if !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) bool TraceLog::BufferIsFull() const { -#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) - // TODO(skyostil): Remove this method since there are no non-test usages. - DCHECK(false); - return false; -#else AutoLock lock(lock_); return logged_events_->IsFull(); -#endif } +#endif // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) TraceEvent* TraceLog::AddEventToThreadSharedChunkWhileLocked( TraceEventHandle* handle,
diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h index c4c448f..4822a494 100644 --- a/base/trace_event/trace_log.h +++ b/base/trace_event/trace_log.h
@@ -219,7 +219,10 @@ void RemoveIncrementalStateObserver(IncrementalStateObserver* listener); TraceLogStatus GetStatus() const; + +#if !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) bool BufferIsFull() const; +#endif // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) // Computes an estimate of the size of the TraceLog including all the retained // objects.
diff --git a/chrome/android/features/keyboard_accessory/BUILD.gn b/chrome/android/features/keyboard_accessory/BUILD.gn index 422c816f..b20d6fe 100644 --- a/chrome/android/features/keyboard_accessory/BUILD.gn +++ b/chrome/android/features/keyboard_accessory/BUILD.gn
@@ -61,6 +61,7 @@ "javatests/src/org/chromium/chrome/browser/keyboard_accessory/all_passwords_bottom_sheet/AllPasswordsBottomSheetIntegrationTest.java", "javatests/src/org/chromium/chrome/browser/keyboard_accessory/all_passwords_bottom_sheet/AllPasswordsBottomSheetViewTest.java", "javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java", + "javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryTestHelper.java", "javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java", "javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetRenderTest.java", "javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_component/AccessorySheetViewTest.java",
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java index a51fd7b..60987a93 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingMediator.java
@@ -411,8 +411,8 @@ private void transitionIntoState(@KeyboardExtensionState int extensionState) { if (!meetsStatePreconditions(extensionState)) return; TraceEvent.begin("ManualFillingMediator#transitionIntoState"); - enforceStateProperties(extensionState); changeBottomControlSpaceForState(extensionState); + enforceStateProperties(extensionState); // Triggers a relayout. Call after changing insets. updateKeyboard(extensionState); TraceEvent.end("ManualFillingMediator#transitionIntoState"); } @@ -559,6 +559,11 @@ } } + @Override + public void onBarFadeInAnimationEnd() { + mActivity.getCurrentWebContents().scrollFocusedEditableNodeIntoView(); + } + /** * Opens the keyboard which implicitly dismisses the sheet. Without open sheet, this is a NoOp. */
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator.java index c2a57423e..e70b07d 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryCoordinator.java
@@ -62,6 +62,12 @@ * Called when the sheet needs to be hidden. */ void onCloseAccessorySheet(); + + /** + * Signals that the accessory bar has completed the fade-in. This may be relevant to the + * keyboard extensions state to adjust the scroll position. + */ + void onBarFadeInAnimationEnd(); } /** @@ -245,6 +251,7 @@ * while the view might still be in progress of being updated accordingly. * @return True if the accessory should be visible, false otherwise. */ + // TODO(crbug/1385400): Hide because it's only used in tests. public boolean isShown() { return mMediator.isShown(); }
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java index 6c08148..6f97991 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMediator.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.keyboard_accessory.bar_component; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.ANIMATION_LISTENER; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BAR_ITEMS; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BOTTOM_OFFSET_PX; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.DISABLE_ANIMATIONS_FOR_TESTING; @@ -73,6 +74,7 @@ mModel.set(OBFUSCATED_CHILD_AT_CALLBACK, this::onSuggestionObfuscatedAt); mModel.set(SHOW_KEYBOARD_CALLBACK, this::closeSheet); mModel.set(SHEET_OPENER_ITEM, new SheetOpenerBarItem(sheetOpenerCallbacks)); + mModel.set(ANIMATION_LISTENER, mVisibilityDelegate::onBarFadeInAnimationEnd); if (ChromeFeatureList.isEnabled(ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY)) { mModel.get(BAR_ITEMS).add(mModel.get(SHEET_OPENER_ITEM)); } @@ -275,7 +277,7 @@ || propertyKey == SKIP_CLOSING_ANIMATION || propertyKey == DISABLE_ANIMATIONS_FOR_TESTING || propertyKey == OBFUSCATED_CHILD_AT_CALLBACK || propertyKey == SHOW_SWIPING_IPH - || propertyKey == HAS_SUGGESTIONS) { + || propertyKey == HAS_SUGGESTIONS || propertyKey == ANIMATION_LISTENER) { return; } assert false : "Every property update needs to be handled explicitly!";
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder.java index 36a06708..10ac0ca 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryMetricsRecorder.java
@@ -78,7 +78,8 @@ || propertyKey == KeyboardAccessoryProperties.DISABLE_ANIMATIONS_FOR_TESTING || propertyKey == KeyboardAccessoryProperties.SHOW_SWIPING_IPH || propertyKey == KeyboardAccessoryProperties.OBFUSCATED_CHILD_AT_CALLBACK - || propertyKey == KeyboardAccessoryProperties.HAS_SUGGESTIONS) { + || propertyKey == KeyboardAccessoryProperties.HAS_SUGGESTIONS + || propertyKey == KeyboardAccessoryProperties.ANIMATION_LISTENER) { return; } assert false : "Every property update needs to be handled explicitly!";
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties.java index 74fceffd..164cbf6 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryProperties.java
@@ -56,12 +56,15 @@ static final WritableBooleanPropertyKey HAS_SUGGESTIONS = new WritableBooleanPropertyKey("has_suggestions"); + static final WritableObjectPropertyKey<KeyboardAccessoryView.AnimationListener> + ANIMATION_LISTENER = new WritableObjectPropertyKey<>("animation_listener"); + static PropertyModel.Builder defaultModelBuilder() { return new PropertyModel .Builder(DISABLE_ANIMATIONS_FOR_TESTING, BAR_ITEMS, VISIBLE, SKIP_CLOSING_ANIMATION, BOTTOM_OFFSET_PX, SHEET_OPENER_ITEM, KEYBOARD_TOGGLE_VISIBLE, SHEET_TITLE, SHOW_KEYBOARD_CALLBACK, OBFUSCATED_CHILD_AT_CALLBACK, SHOW_SWIPING_IPH, - HAS_SUGGESTIONS) + HAS_SUGGESTIONS, ANIMATION_LISTENER) .with(BAR_ITEMS, new ListModel<>()) .with(VISIBLE, false) .with(SKIP_CLOSING_ANIMATION, false)
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryView.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryView.java index 26b97a8..3e18e80 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryView.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryView.java
@@ -16,6 +16,7 @@ import android.widget.LinearLayout; import androidx.annotation.CallSuper; +import androidx.annotation.VisibleForTesting; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -40,6 +41,16 @@ private boolean mShouldSkipClosingAnimation; private boolean mDisableAnimations; + /** Interface that allows to react to animations. */ + interface AnimationListener { + /** + * Called if the accessory bar stopped fading in. The fade-in only happens sometimes, e.g. + * if the bar is already visible or animations are disabled, this signal is not issued. + */ + void onFadeInEnd(); + } + private AnimationListener mAnimationListener; + protected static class HorizontalDividerItemDecoration extends RecyclerView.ItemDecoration { private final int mHorizontalMargin; @@ -133,6 +144,10 @@ mBarItemsView.setAdapter(adapter); } + void setAnimationListener(AnimationListener animationListener) { + mAnimationListener = animationListener; + } + /** Template method. Override to be notified if the bar items change. */ @CallSuper protected void onItemsChanged() {} @@ -140,7 +155,10 @@ private void show() { TraceEvent.begin("KeyboardAccessoryView#show"); bringToFront(); // Needs to overlay every component and the bottom sheet - like a keyboard. - if (mRunningAnimation != null) mRunningAnimation.cancel(); + if (mRunningAnimation != null) { + mRunningAnimation.cancel(); + mRunningAnimation = null; + } if (areAnimationsDisabled()) { mRunningAnimation = null; setVisibility(View.VISIBLE); @@ -151,13 +169,20 @@ .alpha(1f) .setDuration(FADE_ANIMATION_DURATION_MS) .setInterpolator(new AccelerateInterpolator()) - .withStartAction(() -> setVisibility(View.VISIBLE)); + .withStartAction(() -> setVisibility(View.VISIBLE)) + .withEndAction(() -> { + mAnimationListener.onFadeInEnd(); + mRunningAnimation = null; + }); announceForAccessibility(getContentDescription()); TraceEvent.end("KeyboardAccessoryView#show"); } private void hide() { - if (mRunningAnimation != null) mRunningAnimation.cancel(); + if (mRunningAnimation != null) { + mRunningAnimation.cancel(); + mRunningAnimation = null; + } if (mShouldSkipClosingAnimation || areAnimationsDisabled()) { mRunningAnimation = null; setVisibility(View.GONE); @@ -169,7 +194,10 @@ .setInterpolator(new AccelerateInterpolator()) .setStartDelay(HIDING_ANIMATION_DELAY_MS) .setDuration(FADE_ANIMATION_DURATION_MS - HIDING_ANIMATION_DELAY_MS) - .withEndAction(() -> setVisibility(View.GONE)); + .withEndAction(() -> { + setVisibility(View.GONE); + mRunningAnimation = null; + }); } void setSkipClosingAnimation(boolean shouldSkipClosingAnimation) { @@ -201,4 +229,9 @@ ViewCompat.setPaddingRelative(recyclerView, pad, 0, 0, 0); } + + @VisibleForTesting + boolean hasRunningAnimation() { + return mRunningAnimation != null; + } }
diff --git a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewBinder.java b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewBinder.java index b9dedba..b233e1a 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewBinder.java +++ b/chrome/android/features/keyboard_accessory/internal/java/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryViewBinder.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.keyboard_accessory.bar_component; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.ANIMATION_LISTENER; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BAR_ITEMS; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BOTTOM_OFFSET_PX; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.DISABLE_ANIMATIONS_FOR_TESTING; @@ -113,6 +114,8 @@ if (!model.get(VISIBLE)) view.setVisible(false); // Update to cancel any animation. } else if (propertyKey == BOTTOM_OFFSET_PX) { view.setBottomOffset(model.get(BOTTOM_OFFSET_PX)); + } else if (propertyKey == ANIMATION_LISTENER) { + view.setAnimationListener(model.get(ANIMATION_LISTENER)); } else if (propertyKey == SHOW_KEYBOARD_CALLBACK || propertyKey == KEYBOARD_TOGGLE_VISIBLE || propertyKey == SHEET_TITLE || propertyKey == SHEET_OPENER_ITEM || propertyKey == OBFUSCATED_CHILD_AT_CALLBACK || propertyKey == SHOW_SWIPING_IPH
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bs.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bs.xtb index 166956a3..39033af 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bs.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bs.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Prikaz načina plaćanja</translation> <translation id="8507520749471379845">Dostupne su lozinke</translation> <translation id="8705308553596171387">Nema lozinke</translation> +<translation id="879180780857354295">Alternativne opcije popunjavanja su dostupne iznad tastature</translation> <translation id="8849262850971482943">Koristite virtuelnu karticu radi dodatne sigurnosti</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb index b935796..1dd98fe 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Prikaz načina plaćanja</translation> <translation id="8507520749471379845">Dostupne zaporke</translation> <translation id="8705308553596171387">Nema zaporke</translation> +<translation id="879180780857354295">Alternativne opcije popunjavanja dostupne iznad tipkovnice</translation> <translation id="8849262850971482943">Koristite virtualnu karticu radi dodatne sigurnosti</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb index c548b6b..eeaf000 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Mostra metodi di pagamento</translation> <translation id="8507520749471379845">Password disponibili</translation> <translation id="8705308553596171387">Nessuna password</translation> +<translation id="879180780857354295">Opzioni di inserimento alternative disponibili sopra la tastiera</translation> <translation id="8849262850971482943">Usa la carta virtuale per una maggiore sicurezza</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_km.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_km.xtb index 9186619..0f9b859c 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_km.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_km.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">បង្ហាញវិធីបង់ប្រាក់</translation> <translation id="8507520749471379845">ពាក្យសម្ងាត់ដែលអាចប្រើបាន</translation> <translation id="8705308553596171387">គ្មានពាក្យសម្ងាត់ទេ</translation> +<translation id="879180780857354295">មានជម្រើសបំពេញជំនួសនៅខាងលើក្ដារចុច</translation> <translation id="8849262850971482943">ប្រើកាតនិម្មិតរបស់អ្នក ដើម្បីទទួលបានសុវត្ថិភាពបន្ថែម</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb index c84cdbf..5372f45 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Mostrar métodos de pagamento</translation> <translation id="8507520749471379845">Palavras-passe disponíveis</translation> <translation id="8705308553596171387">Sem palavra-passe</translation> +<translation id="879180780857354295">Opções de preenchimento alternativas disponíveis acima do teclado</translation> <translation id="8849262850971482943">Utilize o seu cartão virtual para maior segurança</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ro.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ro.xtb index 45e1da869..5f15eb8 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ro.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ro.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Afișează metodele de plată</translation> <translation id="8507520749471379845">Parole disponibile</translation> <translation id="8705308553596171387">Nicio parolă</translation> +<translation id="879180780857354295">Opțiuni de completare alternative disponibile deasupra tastaturii</translation> <translation id="8849262850971482943">Folosește cardul virtual pentru mai multă securitate</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb index 742198e..57e9008 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Zobraziť spôsoby platby</translation> <translation id="8507520749471379845">K dispozícii sú heslá</translation> <translation id="8705308553596171387">Žiadne heslo</translation> +<translation id="879180780857354295">Alternatívne možnosti dopĺňania nad klávesnicou</translation> <translation id="8849262850971482943">V záujme vyššej bezpečnosti použite virtuálnu kartu</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb index e1aefbc..2e9c273 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb
@@ -26,5 +26,6 @@ <translation id="8037472847879765671">Prikaz plačilnih sredstev</translation> <translation id="8507520749471379845">Gesla so na voljo</translation> <translation id="8705308553596171387">Brez gesla</translation> +<translation id="879180780857354295">Druge možnosti izpolnjevanja so na voljo nad tipkovnico</translation> <translation id="8849262850971482943">Uporabite navidezno kartico za večjo varnost.</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_vi.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_vi.xtb index ff75fe0..b8bed62 100644 --- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_vi.xtb +++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_vi.xtb
@@ -27,5 +27,6 @@ <translation id="8037472847879765671">Hiển thị các phương thức thanh toán</translation> <translation id="8507520749471379845">Mật khẩu sẵn có</translation> <translation id="8705308553596171387">Không có mật khẩu</translation> +<translation id="879180780857354295">Các tuỳ chọn điền thay thế hiển thị phía trên bàn phím</translation> <translation id="8849262850971482943">Sử dụng thẻ ảo để tăng thêm tính bảo mật</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java index 5f3f7e7..9e1147a 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingIntegrationTest.java
@@ -8,6 +8,8 @@ import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem; +import static androidx.test.espresso.contrib.RecyclerViewActions.scrollTo; import static androidx.test.espresso.matcher.ViewMatchers.assertThat; import static androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; @@ -15,12 +17,12 @@ import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; -import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertNotNull; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabAtPosition; +import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabWithDescription; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.waitToBeHidden; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.whenDisplayed; import static org.chromium.chrome.browser.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabTestHelper.isKeyboardAccessoryTabLayout; @@ -138,8 +140,11 @@ onView(withChild(withId(R.id.keyboard_accessory_sheet))).check(doesNotExist()); // Trigger the sheet and wait for it to open and the keyboard to disappear. - onView(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); } @@ -182,8 +187,11 @@ onView(withChild(withId(R.id.keyboard_accessory_sheet))).check(doesNotExist()); // Trigger the sheet and wait for it to open and the keyboard to disappear. - onView(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))).check((view, e) -> { accessorySheetView.set(view); @@ -236,14 +244,12 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(isKeyboardAccessoryTabLayout()).perform(selectTabAtPosition(0)); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); // Click the tab again to hide the sheet and show the keyboard. - onView(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(isKeyboardAccessoryTabLayout()).perform(selectTabAtPosition(0)); mHelper.waitForKeyboardAccessoryToBeShown(); onView(withId(R.id.keyboard_accessory)).check(matches(isDisplayed())); waitToBeHidden(withChild(withId(R.id.keyboard_accessory_sheet))); @@ -262,7 +268,7 @@ // Focus the password field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())); + whenDisplayed(isKeyboardAccessoryTabLayout()); // Clicking a field without completion hides the accessory again. mHelper.clickFieldWithoutCompletion(); @@ -280,8 +286,11 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); @@ -304,8 +313,11 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); @@ -327,8 +339,11 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); } @@ -347,8 +362,11 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); @@ -429,8 +447,11 @@ assertThat(mActivityTestRule.getInfoBarContainer().getVisibility(), is(not(View.VISIBLE))); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); assertThat(mActivityTestRule.getInfoBarContainer().getVisibility(), is(not(View.VISIBLE))); @@ -479,8 +500,11 @@ onView(withText(kSnackbarText)).check(matches(isCompletelyDisplayed())); // Open a keyboard accessory sheet -- this also shouldn't hide the snackbar. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); onView(withText(kSnackbarText)).check(matches(isCompletelyDisplayed())); @@ -516,8 +540,11 @@ // Focus the field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); whenDisplayed(withChild(withId(R.id.keyboard_accessory_sheet))); assertThat(mActivityTestRule.getInfoBarContainer().getVisibility(), is(not(View.VISIBLE)));
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java index 8807c2c..4ea31d2d 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingTestHelper.java
@@ -12,6 +12,12 @@ import static org.hamcrest.core.AllOf.allOf; import static org.chromium.autofill.mojom.FocusedFieldType.FILLABLE_NON_SEARCH_FIELD; +import static org.chromium.base.test.util.CriteriaHelper.pollInstrumentationThread; +import static org.chromium.base.test.util.CriteriaHelper.pollUiThread; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryTestHelper.accessoryStartedHiding; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryTestHelper.accessoryStartedShowing; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryTestHelper.accessoryViewFullyHidden; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryTestHelper.accessoryViewFullyShown; import static org.chromium.chrome.browser.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabTestHelper.isKeyboardAccessoryTabLayout; import static org.chromium.ui.base.LocalizationUtils.setRtlForTesting; import static org.chromium.ui.test.util.ViewUtils.VIEW_GONE; @@ -37,7 +43,6 @@ import com.google.android.material.tabs.TabLayout; -import org.chromium.ui.widget.ChromeImageButton; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.Matchers; @@ -45,7 +50,6 @@ import org.chromium.base.task.PostTask; import org.chromium.base.test.util.Criteria; -import org.chromium.base.test.util.CriteriaHelper; import org.chromium.chrome.browser.ChromeWindow; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.autofill.AutofillTestHelper; @@ -69,6 +73,7 @@ import org.chromium.net.test.EmbeddedTestServer; import org.chromium.net.test.ServerCertificate; import org.chromium.ui.DropdownPopupWindowInterface; +import org.chromium.ui.widget.ChromeImageButton; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; @@ -239,7 +244,7 @@ // --------------------------------- public void waitForKeyboardToDisappear() { - CriteriaHelper.pollUiThread(() -> { + pollUiThread(() -> { Activity activity = mActivityTestRule.getActivity(); return !getKeyboard().isAndroidSoftKeyboardShowing( activity, activity.getCurrentFocus()); @@ -247,15 +252,8 @@ } public void waitForKeyboardAccessoryToDisappear() { - CriteriaHelper.pollInstrumentationThread(() -> { - KeyboardAccessoryCoordinator accessory = - getManualFillingCoordinator().getMediatorForTesting().getKeyboardAccessory(); - return accessory != null && !accessory.isShown(); - }); - CriteriaHelper.pollUiThread(() -> { - View accessory = mActivityTestRule.getActivity().findViewById(R.id.keyboard_accessory); - return accessory != null && !accessory.isShown(); - }); + pollInstrumentationThread(() -> accessoryStartedHiding(getKeyboardAccessoryBar())); + pollUiThread(() -> accessoryViewFullyHidden(mActivityTestRule.getActivity())); } public void waitForKeyboardAccessoryToBeShown() { @@ -263,19 +261,12 @@ } public void waitForKeyboardAccessoryToBeShown(boolean waitForSuggestionsToLoad) { - CriteriaHelper.pollInstrumentationThread(() -> { - KeyboardAccessoryCoordinator accessory = - getManualFillingCoordinator().getMediatorForTesting().getKeyboardAccessory(); - return accessory != null && accessory.isShown(); - }); - CriteriaHelper.pollUiThread(() -> { - View accessory = mActivityTestRule.getActivity().findViewById(R.id.keyboard_accessory); - return accessory != null && accessory.isShown(); - }); + pollInstrumentationThread(() -> accessoryStartedShowing(getKeyboardAccessoryBar())); + pollUiThread(() -> accessoryViewFullyShown(mActivityTestRule.getActivity())); if (waitForSuggestionsToLoad) { - CriteriaHelper.pollUiThread(() - -> getFirstAccessorySuggestion() != null, - "Waited for suggestions that never appeared."); + pollUiThread(() -> { + return getFirstAccessorySuggestion() != null; + }, "Waited for suggestions that never appeared."); } } @@ -284,14 +275,14 @@ final View view = webContents.getViewAndroidDelegate().getContainerView(); // Wait for InputConnection to be ready and fill the filterInput. Then wait for the anchor. - CriteriaHelper.pollUiThread(() -> { + pollUiThread(() -> { Criteria.checkThat( mInputMethodManagerWrapper.getShowSoftInputCounter(), Matchers.is(1)); }); TestThreadUtils.runOnUiThreadBlocking(() -> { ImeAdapter.fromWebContents(webContents).setComposingTextForTest(filterInput, 4); }); - CriteriaHelper.pollUiThread(() -> { + pollUiThread(() -> { Criteria.checkThat("Autofill Popup anchor view was never added.", view.findViewById(R.id.dropdown_popup_window), Matchers.notNullValue()); }); @@ -300,7 +291,7 @@ Assert.assertTrue(anchorView.getTag() instanceof DropdownPopupWindowInterface); final DropdownPopupWindowInterface popup = (DropdownPopupWindowInterface) anchorView.getTag(); - CriteriaHelper.pollUiThread(() -> { + pollUiThread(() -> { Criteria.checkThat(popup.isShowing(), Matchers.is(true)); Criteria.checkThat(popup.getListView(), Matchers.notNullValue()); Criteria.checkThat(popup.getListView().getHeight(), Matchers.not(0)); @@ -326,6 +317,10 @@ .getOrCreateSheet(mWebContentsRef.get(), AccessoryTabType.CREDIT_CARDS); } + private KeyboardAccessoryCoordinator getKeyboardAccessoryBar() { + return getManualFillingCoordinator().getMediatorForTesting().getKeyboardAccessory(); + } + // ---------------------------------- // Helpers to set up the native side. // ---------------------------------- @@ -444,7 +439,7 @@ return new ViewAction() { @Override public Matcher<View> getConstraints() { - return allOf(isDisplayed(), isAssignableFrom(TabLayout.class)); + return allOf(isDisplayed(), isKeyboardAccessoryTabLayout()); } @Override
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryTestHelper.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryTestHelper.java new file mode 100644 index 0000000..6b9fac7 --- /dev/null +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryTestHelper.java
@@ -0,0 +1,60 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.keyboard_accessory.bar_component; + +import android.app.Activity; + +import org.chromium.chrome.browser.keyboard_accessory.R; + +/** + * Helpers in this class simplify interactions with the Keyboard Accessory bar component. + */ +public class KeyboardAccessoryTestHelper { + /** + * Returns true if the accessory becomes visible. It is not guaranteed that the view reflects + * this state already. Use {@link #accessoryViewFullyShown(Activity)} for that. + * + * @param accessory An {@link KeyboardAccessoryCoordinator} + * @return True iff the component was ordered to show. + */ + public static boolean accessoryStartedShowing(KeyboardAccessoryCoordinator accessory) { + return accessory != null && accessory.isShown(); + } + + /** + * Returns true if the accessory starts hiding. It is not guaranteed that the view reflects this + * state already. Use {@link #accessoryViewFullyHidden(Activity)} (Activity)} for that. + * + * @param accessory An {@link KeyboardAccessoryCoordinator} + * @return True iff the component was ordered to hide. + */ + public static boolean accessoryStartedHiding(KeyboardAccessoryCoordinator accessory) { + return accessory != null && !accessory.isShown(); + } + + /** + * Helper that finds the accessory bar and checks whether it's shown. Returns false until + * animations have concluded. + * + * @param activity The {@link Activity} containing the accessory bar. + * @return True iff the bar view is visible and animations have ended. + */ + public static boolean accessoryViewFullyShown(Activity activity) { + KeyboardAccessoryView accessory = activity.findViewById(R.id.keyboard_accessory); + return accessory != null && accessory.isShown() && !accessory.hasRunningAnimation(); + } + + /** + * Helper that finds the accessory bar and checks whether it's hidden. Returns false until + * animations have concluded. + * + * @param activity The {@link Activity} containing the accessory bar. + * @return True iff the bar view is hidden and animations have ended. + */ + public static boolean accessoryViewFullyHidden(Activity activity) { + KeyboardAccessoryView accessory = activity.findViewById(R.id.keyboard_accessory); + return accessory == null || (!accessory.isShown() && !accessory.hasRunningAnimation()); + } +}
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java index ac09334..eec8da98 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/CreditCardAccessoryIntegrationTest.java
@@ -9,22 +9,16 @@ import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem; import static androidx.test.espresso.contrib.RecyclerViewActions.scrollTo; -import static androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; -import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; -import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.not; -import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabAtPosition; +import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabWithDescription; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.whenDisplayed; import static org.chromium.chrome.browser.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabTestHelper.isKeyboardAccessoryTabLayout; -import android.widget.TextView; - import androidx.test.filters.MediumTest; import androidx.test.filters.SmallTest; @@ -136,9 +130,12 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(withContentDescription(R.string.credit_card_accessory_sheet_toggle), - not(isAssignableFrom(TextView.class)))) - .perform(click()); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.credit_card_accessory_sheet_toggle))); + mHelper.waitForKeyboardToDisappear(); whenDisplayed(withId(R.id.credit_card_sheet)); onView(withText(containsString("No saved payment methods"))).check(matches(isDisplayed())); @@ -157,7 +154,9 @@ // Scroll to last element and click the first icon: whenDisplayed(withId(R.id.bar_items_view)) .perform(scrollTo(isKeyboardAccessoryTabLayout()), - actionOnItem(isKeyboardAccessoryTabLayout(), selectTabAtPosition(0))); + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.credit_card_accessory_sheet_toggle))); // Wait for the sheet to come up and be stable. whenDisplayed(withId(R.id.credit_card_sheet));
diff --git a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/PasswordAccessoryIntegrationTest.java b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/PasswordAccessoryIntegrationTest.java index 4646e41f..66e2d903 100644 --- a/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/PasswordAccessoryIntegrationTest.java +++ b/chrome/android/features/keyboard_accessory/javatests/src/org/chromium/chrome/browser/keyboard_accessory/sheet_tabs/PasswordAccessoryIntegrationTest.java
@@ -7,6 +7,8 @@ import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem; +import static androidx.test.espresso.contrib.RecyclerViewActions.scrollTo; import static androidx.test.espresso.matcher.ViewMatchers.isChecked; import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; import static androidx.test.espresso.matcher.ViewMatchers.isNotChecked; @@ -14,11 +16,10 @@ import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.core.AllOf.allOf; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.isTransformed; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.scrollToLastElement; -import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabAtPosition; +import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.selectTabWithDescription; import static org.chromium.chrome.browser.keyboard_accessory.ManualFillingTestHelper.whenDisplayed; import static org.chromium.chrome.browser.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabTestHelper.isKeyboardAccessoryTabLayout; @@ -88,8 +89,11 @@ // Focus the field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); // Check that the provided elements are there. whenDisplayed(withText("mayapark@gmail.com")); @@ -109,8 +113,11 @@ // Focus the field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withId(R.id.passwords_sheet)).perform(scrollToLastElement()); @@ -127,8 +134,11 @@ // Focus the field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); // Click the suggestion. whenDisplayed(withText("ShorterPassword")).perform(click()); @@ -154,8 +164,11 @@ mHelper.waitForKeyboardAccessoryToBeShown(); // Click the tab to show the sheet and hide the keyboard. - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); mHelper.waitForKeyboardToDisappear(); whenDisplayed(withId(R.id.passwords_sheet)); onView(withText(containsString("No saved passwords"))).check(matches(isDisplayed())); @@ -166,15 +179,18 @@ @EnableFeatures({ChromeFeatureList.RECOVER_FROM_NEVER_SAVE_ANDROID, ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY}) public void - testEnablesUndenylistingToggle() throws TimeoutException { + testEnablesUndenylistingToggle() throws TimeoutException, InterruptedException { mHelper.loadTestPage(false); mHelper.cacheCredentials(new String[0], new String[0], true); // Focus the field to bring up the accessory. mHelper.focusPasswordField(); mHelper.waitForKeyboardAccessoryToBeShown(); - whenDisplayed(allOf(isDisplayed(), isKeyboardAccessoryTabLayout())) - .perform(selectTabAtPosition(0)); + whenDisplayed(withId(R.id.bar_items_view)) + .perform(scrollTo(isKeyboardAccessoryTabLayout()), + actionOnItem(isKeyboardAccessoryTabLayout(), + selectTabWithDescription( + R.string.password_accessory_sheet_toggle))); whenDisplayed(withId(R.id.option_toggle_switch)).check(matches(isNotChecked())); onView(withId(R.id.option_toggle_subtitle)).check(matches(withText(R.string.text_off)));
diff --git a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingControllerTest.java b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingControllerTest.java index 8eb920c7..96137b6 100644 --- a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingControllerTest.java +++ b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/ManualFillingControllerTest.java
@@ -1116,6 +1116,12 @@ } @Test + public void testScrollsPageUpAfterBarIsFullyShown() { + mMediator.onBarFadeInAnimationEnd(); + verify(mLastMockWebContents).scrollFocusedEditableNodeIntoView(); + } + + @Test public void testShowAccessorySheetTab() { // Prepare a tab and register a new tab, so there is a reason to display the bar. addBrowserTab(mMediator, 1111, null);
diff --git a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java index b87eede7..e6c2c8a 100644 --- a/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java +++ b/chrome/android/features/keyboard_accessory/junit/src/org/chromium/chrome/browser/keyboard_accessory/bar_component/KeyboardAccessoryControllerTest.java
@@ -18,6 +18,7 @@ import static org.chromium.chrome.browser.keyboard_accessory.AccessoryAction.AUTOFILL_SUGGESTION; import static org.chromium.chrome.browser.keyboard_accessory.AccessoryAction.GENERATE_PASSWORD_AUTOMATIC; +import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.ANIMATION_LISTENER; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BAR_ITEMS; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.HAS_SUGGESTIONS; import static org.chromium.chrome.browser.keyboard_accessory.bar_component.KeyboardAccessoryProperties.OBFUSCATED_CHILD_AT_CALLBACK; @@ -585,6 +586,12 @@ assertThat(mModel.get(HAS_SUGGESTIONS), is(false)); } + @Test + public void testFowardsAnimationEventsToVisibilityDelegate() { + mModel.get(ANIMATION_LISTENER).onFadeInEnd(); + verify(mMockVisibilityDelegate).onBarFadeInAnimationEnd(); + } + private int getGenerationImpressionCount() { return RecordHistogram.getHistogramValueCountForTesting( ManualFillingMetricsRecorder.UMA_KEYBOARD_ACCESSORY_ACTION_IMPRESSION,
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb index 5ae03cc..24dd59e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_as.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">খোলা থকা কোনো টেবত কম মূল্যৰ তথ্য উপলব্ধ হ’লে আপুনি এটা সতৰ্কবাৰ্তা লাভ কৰিব</translation> <translation id="3328308545011660196">পৰামৰ্শ: <ph name="NUMBER_OF_TABS" />টা টেব জড়িত যেন লাগিছে। সেইকেইটা একগোট কৰিবনে?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">শ্বেয়াৰ শ্বীট পূৰ্বদৰ্শনৰ থাম্বনেইল।</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> টা টেব সংকোচন কৰক।}one{<ph name="TABS_COUNT_MANY" /> টা টেবযুক্ত <ph name="TITLE_OF_GROUP" /> টেবৰ গোটটো সংকোচন কৰক।}other{<ph name="TABS_COUNT_MANY" /> টা টেবযুক্ত <ph name="TITLE_OF_GROUP" /> টেবৰ গোটটো সংকোচন কৰক।}}</translation> <translation id="3882834874697329510">খোলা থকা কোনো টেবত কম মূল্যৰ তথ্য উপলব্ধ হ’লে সতৰ্কবাৰ্তা লাভ কৰিবলৈ ছেটিঙলৈ গৈ জাননী অন কৰক।</translation> <translation id="3940195383040445971">টেবত মূল্য ট্ৰেক কৰক</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">ষ্ট’ৰৰ তথ্য চাওক, বিকল্পটো স্ক্ৰীনখনৰ প্ৰায় শীৰ্ষত আছে</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> টা টেবযুক্ত টেবৰ গোট বন্ধ কৰক</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />টা টেব এক গোট কৰা হৈছে</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chromeৰ পৰা <ph name="TABS_COUNT_ONE" /> টা লিংক}one{Chromeৰ পৰা <ph name="TABS_COUNT_MANY" /> টা লিংক}other{Chromeৰ পৰা <ph name="TABS_COUNT_MANY" /> টা লিংক}}</translation> <translation id="575494663145460764">মূল্য কমাৰ সতৰ্কবাৰ্তা পাবলৈ বিচাৰেনে?</translation> <translation id="58326064309361797">এক গোট কৰিবলৈ টেববোৰ টানি আনি এৰক</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> টা টেবযুক্ত <ph name="TITLE_OF_GROUP" /> গোটটো বন্ধ কৰক</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb index 7e4f1e0..48f1aa0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_be.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Вы атрымаеце абвестку, калі цана на прадукт на адкрытай укладцы знізіцца</translation> <translation id="3328308545011660196">Прапанова: здаецца, гэтыя ўкладкі (<ph name="NUMBER_OF_TABS" />) звязаныя паміж сабой. Згрупаваць іх?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Мініяцюра: перадпр. аркуша.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Згарнуць <ph name="TABS_COUNT_ONE" /> укладку.}one{Згарнуць групу "<ph name="TITLE_OF_GROUP" />" з <ph name="TABS_COUNT_MANY" /> укладкай.}few{Згарнуць групу "<ph name="TITLE_OF_GROUP" />" з <ph name="TABS_COUNT_MANY" /> укладкамі.}many{Згарнуць групу "<ph name="TITLE_OF_GROUP" />" з <ph name="TABS_COUNT_MANY" /> укладкамі.}other{Згарнуць групу "<ph name="TITLE_OF_GROUP" />" з <ph name="TABS_COUNT_MANY" /> укладкі.}}</translation> <translation id="3882834874697329510">Каб атрымліваць абвесткі, калі цэны на прадукты на адкрытых укладках зніжаюцца, уключыце апавяшчэнні ў Наладах.</translation> <translation id="3940195383040445971">Адсочванне цэн на ўкладках</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Прагледзець звесткі пра краму; гэты варыянт выбару даступны ўверсе экрана</translation> <translation id="5558362125926932819">Закрыць групу з наступнай колькасцю ўкладак: <ph name="NUMBER_OF_TABS" /></translation> <translation id="5580090775658607195">Укладак згрупавана: <ph name="TAB_COUNT" /></translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> спасылка з Chrome}one{<ph name="TABS_COUNT_MANY" /> спасылка з Chrome}few{<ph name="TABS_COUNT_MANY" /> спасылкі з Chrome}many{<ph name="TABS_COUNT_MANY" /> спасылак з Chrome}other{<ph name="TABS_COUNT_MANY" /> спасылкі з Chrome}}</translation> <translation id="575494663145460764">Атрымліваць абвесткі пра зніжэнні цэн?</translation> <translation id="58326064309361797">Каб згрупаваць укладкі, перацягвайце іх</translation> <translation id="5846292395804797011">Закрыць групу "<ph name="TITLE_OF_GROUP" />" з наступнай колькасцю ўкладак: <ph name="NUMBER_OF_TABS" />.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb index 6709a96..79a89a34 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bg.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Ще получите сигнал, когато цената в отворен раздел е по-ниска</translation> <translation id="3328308545011660196">Предложение: <ph name="NUMBER_OF_TABS" /> раздела изглеждат сродни. Искате ли да ги групирате?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Миниизобр. на опции за споделяне.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Свиване на <ph name="TABS_COUNT_ONE" /> раздел.}other{Свиване на групата с раздели „<ph name="TITLE_OF_GROUP" />“ с(ъс) <ph name="TABS_COUNT_MANY" /> раздела.}}</translation> <translation id="3882834874697329510">За да получавате сигнал, когато цената в отворен раздел е по-ниска, включете известията от настройките.</translation> <translation id="3940195383040445971">Проследяване на цените в разделите</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Преглед на информацията за магазина – опцията е близо до горната част на екрана</translation> <translation id="5558362125926932819">Затваряне на групата с раздели с(ъс) <ph name="NUMBER_OF_TABS" /> раздела.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> раздела са групирани</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> връзка от Chrome}other{<ph name="TABS_COUNT_MANY" /> връзки от Chrome}}</translation> <translation id="575494663145460764">Искате ли да получавате сигнали за понижение на цените?</translation> <translation id="58326064309361797">Преместете с плъзгане разделите, за да ги групирате</translation> <translation id="5846292395804797011">Затваряне на групата с раздели „<ph name="TITLE_OF_GROUP" />“ с(ъс) <ph name="NUMBER_OF_TABS" /> раздела.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb index e98173e..5cd18f0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bn.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">খুলে রাখা কোনও ট্যাবে জিনিসের দাম কমলে আপনি তার বিজ্ঞপ্তি পাবেন</translation> <translation id="3328308545011660196">সাজেশন: মনে হচ্ছে <ph name="NUMBER_OF_TABS" />টি ট্যাব সম্পর্কযুক্ত। সেগুলি গ্রুপ করতে চান?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">শিট শেয়ার করার প্রিভিউয়ের জন্য থাম্বনেল।</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" />টি ট্যাব ছোট করুন।}one{<ph name="TITLE_OF_GROUP" /> ট্যাব গ্রুপকে ছোট করুন যার মধ্যে <ph name="TABS_COUNT_MANY" />টি ট্যাব আছে।}other{<ph name="TITLE_OF_GROUP" /> ট্যাব গ্রুপকে ছোট করুন যার মধ্যে <ph name="TABS_COUNT_MANY" />টি ট্যাব আছে।}}</translation> <translation id="3882834874697329510">কোনও খোলা ট্যাবে কম দাম থাকলে বিজ্ঞপ্তি পেতে, 'সেটিংস' থেকে বিজ্ঞপ্তি চালু করুন।</translation> <translation id="3940195383040445971">ট্যাবে দাম ট্র্যাক করুন</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">স্টোর সংক্রান্ত তথ্য দেখুন, স্ক্রিনের সবচেয়ে উপরের অংশে এই বিকল্প উপলভ্য আছে</translation> <translation id="5558362125926932819">সেই ট্যাব গ্রুপ বন্ধ করুন যেটিতে <ph name="NUMBER_OF_TABS" />টি ট্যাব আছে</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />টি ট্যাব গ্রুপ করা হয়েছে</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome থেকে <ph name="TABS_COUNT_ONE" />টি লিঙ্ক}one{Chrome থেকে <ph name="TABS_COUNT_MANY" />টি লিঙ্ক}other{Chrome থেকে <ph name="TABS_COUNT_MANY" />টি লিঙ্ক}}</translation> <translation id="575494663145460764">দাম কমার বিজ্ঞপ্তি পেয়েছেন?</translation> <translation id="58326064309361797">ট্যাবগুলি গ্রুপ করতে ড্র্যাগ করুন</translation> <translation id="5846292395804797011"><ph name="TITLE_OF_GROUP" /> গ্রুপ বন্ধ করে দিন যেটিতে <ph name="NUMBER_OF_TABS" />টি ট্যাব আছে</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb index 2413847..c2142ef8 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ca.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Rebràs una alerta quan hi hagi un preu més baix en una pestanya oberta</translation> <translation id="3328308545011660196">Suggeriment: sembla que hi ha <ph name="NUMBER_OF_TABS" /> pestanyes relacionades. Vols agrupar-les?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura del full de compartició.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Replega <ph name="TABS_COUNT_ONE" /> pestanya.}other{Replega el grup <ph name="TITLE_OF_GROUP" /> format per <ph name="TABS_COUNT_MANY" /> pestanyes.}}</translation> <translation id="3882834874697329510">Per rebre una alerta quan hi hagi un preu més baix en una pestanya oberta, activa les notificacions a Configuració.</translation> <translation id="3940195383040445971">Seguiment dels preus a les pestanyes</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Consulta la informació de la botiga, opció disponible a prop de la part superior de la pantalla</translation> <translation id="5558362125926932819">Tanca el grup format per <ph name="NUMBER_OF_TABS" /> pestanyes</translation> <translation id="5580090775658607195">S'han agrupat <ph name="TAB_COUNT" /> pestanyes</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> enllaç de Chrome}other{<ph name="TABS_COUNT_MANY" /> enllaços de Chrome}}</translation> <translation id="575494663145460764">Vols rebre alertes de baixades de preu?</translation> <translation id="58326064309361797">Arrossega les pestanyes per agrupar-les</translation> <translation id="5846292395804797011">Tanca el grup <ph name="TITLE_OF_GROUP" /> format per <ph name="NUMBER_OF_TABS" /> pestanyes</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb index 79c4c63..f2f5466 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cs.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Když bude na otevřené kartě nižší cena, dostanete upozornění</translation> <translation id="3328308545011660196">Návrh: Některé karty (<ph name="NUMBER_OF_TABS" />) spolu pravděpodobně souvisejí. Chcete je seskupit?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura náhledu sdílecího listu.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Sbalit <ph name="TABS_COUNT_ONE" /> kartu.}few{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> se <ph name="TABS_COUNT_MANY" /> kartami.}many{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> s <ph name="TABS_COUNT_MANY" /> karty.}other{Sbalit skupinu karet <ph name="TITLE_OF_GROUP" /> s <ph name="TABS_COUNT_MANY" /> kartami.}}</translation> <translation id="3882834874697329510">Pokud chcete dostat upozornění, když bude na otevřené kartě nižší cena, v Nastavení zapněte oznámení.</translation> <translation id="3940195383040445971">Sledovat ceny na kartách</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Zobrazit informace o obchodu, možnost dostupná v horní části obrazovky</translation> <translation id="5558362125926932819">Zavřít skupinu karet s <ph name="NUMBER_OF_TABS" /> kartami</translation> <translation id="5580090775658607195">Seskupené karty: <ph name="TAB_COUNT" /></translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> odkaz z Chromu}few{<ph name="TABS_COUNT_MANY" /> odkazy z Chromu}many{<ph name="TABS_COUNT_MANY" /> odkazu z Chromu}other{<ph name="TABS_COUNT_MANY" /> odkazů z Chromu}}</translation> <translation id="575494663145460764">Chcete dostávat upozornění na pokles ceny?</translation> <translation id="58326064309361797">Přetažením můžete karty uspořádat do skupin</translation> <translation id="5846292395804797011">Zavřít skupinu <ph name="TITLE_OF_GROUP" /> s tímto počtem karet: <ph name="NUMBER_OF_TABS" /></translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb index 835e84e8..7d245036 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_cy.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Byddwch yn cael hysbysiad pan fydd pris is mewn tab sydd ar agor</translation> <translation id="3328308545011660196">Awgrym: Mae <ph name="NUMBER_OF_TABS" /> o dabiau yn ymddangos yn berthnasol. Grwpio nhw?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Mân-lun ar gyfer rhagolwg taflen rhannu.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Crebachu <ph name="TABS_COUNT_ONE" /> tab.}zero{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> tab.}two{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> dab.}few{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> thab.}many{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> thab.}other{Crebachu'r grŵp tabiau <ph name="TITLE_OF_GROUP" /> sydd â <ph name="TABS_COUNT_MANY" /> tab.}}</translation> <translation id="3882834874697329510">I gael hysbysiad pan fydd pris is mewn tab sydd ar agor, trowch hysbysiadau ymlaen yn y Gosodiadau.</translation> <translation id="3940195383040445971">Dilyn prisiau ar dabiau</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Gweld gwybodaeth siop, opsiwn ar gael yn agos at frig y sgrîn</translation> <translation id="5558362125926932819">Cau'r grŵp tabiau â <ph name="NUMBER_OF_TABS" /> o dabiau</translation> <translation id="5580090775658607195">Mae <ph name="TAB_COUNT" /> o dabiau wedi'u grwpio</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> dolen o Chrome}zero{<ph name="TABS_COUNT_MANY" /> dolen o Chrome}two{<ph name="TABS_COUNT_MANY" /> ddolen o Chrome}few{<ph name="TABS_COUNT_MANY" /> dolen o Chrome}many{<ph name="TABS_COUNT_MANY" /> dolen o Chrome}other{<ph name="TABS_COUNT_MANY" /> dolen o Chrome}}</translation> <translation id="575494663145460764">Cael hysbysiadau am ostyngiadau prisiau?</translation> <translation id="58326064309361797">Llusgwch dabiau i'w grwpio</translation> <translation id="5846292395804797011">Cau'r grŵp <ph name="TITLE_OF_GROUP" /> sydd â <ph name="NUMBER_OF_TABS" /> o dabiau</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb index 0c6be00..817391f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_de.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Du erhältst eine Benachrichtigung, wenn auf einem offenen Tab ein günstigerer Preis verfügbar ist</translation> <translation id="3328308545011660196">Vorschlag: <ph name="NUMBER_OF_TABS" /> Tabs scheinen zusammenzugehören. Sollen sie gruppiert werden?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Vorschau: geteilte Tabelle.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> Tab minimieren}other{Tabgruppe "<ph name="TITLE_OF_GROUP" />" mit <ph name="TABS_COUNT_MANY" /> Tabs minimieren}}</translation> <translation id="3882834874697329510">Falls du benachrichtigt werden möchtest, wenn auf einem offenen Tab ein günstigerer Preis verfügbar ist, aktiviere Benachrichtigungen in den Einstellungen.</translation> <translation id="3940195383040445971">Preise auf Tabs beobachten</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Geschäftsinformationen anzeigen, Option ist oben auf dem Bildschirm verfügbar</translation> <translation id="5558362125926932819">Tabgruppe mit <ph name="NUMBER_OF_TABS" /> Tabs schließen</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> Tabs gruppiert</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> Link aus Chrome}other{<ph name="TABS_COUNT_MANY" /> Links aus Chrome}}</translation> <translation id="575494663145460764">Benachrichtigungen bei Preisnachlässen erhalten?</translation> <translation id="58326064309361797">Tabs zum Gruppieren ziehen</translation> <translation id="5846292395804797011">Tabgruppe "<ph name="TITLE_OF_GROUP" />" mit <ph name="NUMBER_OF_TABS" /> Tabs schließen</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb index 851e225..eee59d9e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es-419.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Recibirás una alerta cuando baje el precio de uno de los artículos de las pestañas abiertas.</translation> <translation id="3328308545011660196">Sugerencia: <ph name="NUMBER_OF_TABS" /> pestañas parecen estar relacionadas. ¿Deseas agruparlas?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Hoja de compartir en miniatura.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Contraer <ph name="TABS_COUNT_ONE" /> pestaña}other{Contraer el grupo de pestañas <ph name="TITLE_OF_GROUP" />, el cual tiene <ph name="TABS_COUNT_MANY" /> pestañas}}</translation> <translation id="3882834874697329510">Para recibir una alerta cuando hay un precio más bajo en una pestaña abierta, activa las notificaciones en la Configuración.</translation> <translation id="3940195383040445971">Realizar seguimiento de precios en las pestañas</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Ver información de la tienda (la opción está disponible cerca de la parte superior de la pantalla)</translation> <translation id="5558362125926932819">Cerrar el grupo de pestañas, el cual tiene <ph name="NUMBER_OF_TABS" /> pestañas</translation> <translation id="5580090775658607195">Se agruparon <ph name="TAB_COUNT" /> pestañas</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> vínculo de Chrome}other{<ph name="TABS_COUNT_MANY" /> vínculos de Chrome}}</translation> <translation id="575494663145460764">¿Deseas recibir alertas de descuentos?</translation> <translation id="58326064309361797">Arrastra las pestañas para agruparlas</translation> <translation id="5846292395804797011">Cerrar el grupo <ph name="TITLE_OF_GROUP" />, el cual tiene <ph name="NUMBER_OF_TABS" /> pestañas</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb index 82ab8b8..b162ab5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_es.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Recibirás una alerta cuando haya un precio más bajo en una pestaña abierta.</translation> <translation id="3328308545011660196">Sugerencia: Hay <ph name="NUMBER_OF_TABS" /> pestañas que parecen relacionadas. ¿Quieres agruparlas?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura de hoja para compartir.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Ocultar <ph name="TABS_COUNT_ONE" /> pestaña}other{Ocultar grupo de pestañas <ph name="TITLE_OF_GROUP" /> con <ph name="TABS_COUNT_MANY" /> pestañas.}}</translation> <translation id="3882834874697329510">Para recibir una alerta cuando haya un precio más bajo en una pestaña abierta, activa las notificaciones en Ajustes.</translation> <translation id="3940195383040445971">Seguir precios en pestañas</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Ver información de la tienda, opción disponible cerca de la parte superior de la pantalla</translation> <translation id="5558362125926932819">Cerrar grupo de pestañas con <ph name="NUMBER_OF_TABS" /> pestañas</translation> <translation id="5580090775658607195">Se han agrupado <ph name="TAB_COUNT" /> pestañas</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> enlace de Chrome}other{<ph name="TABS_COUNT_MANY" /> enlaces de Chrome}}</translation> <translation id="575494663145460764">¿Quieres recibir alertas por bajadas de precio?</translation> <translation id="58326064309361797">Arrastra las pestañas para agruparlas</translation> <translation id="5846292395804797011">Cerrar grupo <ph name="TITLE_OF_GROUP" /> con <ph name="NUMBER_OF_TABS" /> pestañas</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_et.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_et.xtb index 59dfbd8..69fc758 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_et.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_et.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Kui avatud vahelehel on soodsam hind, saate selle kohta märguande</translation> <translation id="3328308545011660196">Soovitus: <ph name="NUMBER_OF_TABS" /> vahelehte näivad olevat seotud. Kas soovite need grupeerida?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Jagatud lehe eelvaate pisipilt.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Ahenda <ph name="TABS_COUNT_ONE" /> vaheleht.}other{Ahenda <ph name="TABS_COUNT_MANY" /> vahelehega vahelehegrupp <ph name="TITLE_OF_GROUP" />.}}</translation> <translation id="3882834874697329510">Kui soovite avatud vahelehel oleva soodsama hinna kohta märguannet saada, lülitage märguanded seadetes sisse.</translation> <translation id="3940195383040445971">Jälgige vahelehtedel hindu</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Poe teabe vaatamine, valik saadaval ekraanikuva ülaosas</translation> <translation id="5558362125926932819">Sule <ph name="NUMBER_OF_TABS" /> vahelehega vahelehegrupp</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> vahekaarti grupeeriti</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> link Chrome'ist}other{<ph name="TABS_COUNT_MANY" /> linki Chrome'ist}}</translation> <translation id="575494663145460764">Kas soovite hinnalanguste puhul märguandeid saada?</translation> <translation id="58326064309361797">Lohistage vahelehti, et neid grupeerida</translation> <translation id="5846292395804797011">Sule <ph name="NUMBER_OF_TABS" /> vahelehega grupp <ph name="TITLE_OF_GROUP" /></translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb index 36088f2..29cc25f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_eu.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Alerta bat jasoko duzu irekita daukazun fitxa bateko produkturen baten prezioa jaisten denean</translation> <translation id="3328308545011660196">Iradokizuna: <ph name="NUMBER_OF_TABS" /> fitxa erlazionatuta daude. Taldekatu nahi al dituzu?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Partekatzeko orriaren aurrebistaren irudi txikia.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Tolestu <ph name="TABS_COUNT_ONE" /> fitxa.}other{Tolestu <ph name="TABS_COUNT_MANY" /> fitxa dituen <ph name="TITLE_OF_GROUP" /> fitxa taldea.}}</translation> <translation id="3882834874697329510">Irekita daukazun fitxa bateko produkturen baten prezioa jaisten denean alerta bat jaso nahi baduzu, aktibatu jakinarazpenak Ezarpenak atalean.</translation> <translation id="3940195383040445971">Egin prezioen jarraipena fitxetan</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Ikusi dendari buruzko informazioa, pantailaren goialdean dago erabilgarri</translation> <translation id="5558362125926932819">Itxi <ph name="NUMBER_OF_TABS" /> fitxa dituen fitxa taldea</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> fitxa taldekatu dira</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome-ko <ph name="TABS_COUNT_ONE" /> esteka}other{Chrome-ko <ph name="TABS_COUNT_MANY" /> esteka}}</translation> <translation id="575494663145460764">Prezio-jaitsierei buruzko alertak jaso nahi dituzu?</translation> <translation id="58326064309361797">Fitxak taldekatzeko, arrasta itzazu</translation> <translation id="5846292395804797011">Itxi <ph name="NUMBER_OF_TABS" /> fitxa dituen <ph name="TITLE_OF_GROUP" /> fitxa taldea</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fi.xtb index 04e3a6b..b2405d1 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fi.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Saat ilmoituksen, kun avoimella välilehdellä oleva hinta laskee</translation> <translation id="3328308545011660196">Ehdotus: <ph name="NUMBER_OF_TABS" /> välilehteä vaikuttaa liittyvän toisiinsa. Lisätäänkö ne ryhmäksi?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Jakotaulukon pikkukuva.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Tiivistä <ph name="TABS_COUNT_ONE" /> välilehti.}other{Tiivistä <ph name="TITLE_OF_GROUP" /> välilehtiryhmä, jossa on <ph name="TABS_COUNT_MANY" /> välilehteä.}}</translation> <translation id="3882834874697329510">Jos haluat ilmoituksen, kun avoimella välilehdellä oleva hinta laskee, laita ilmoitukset päälle asetuksista.</translation> <translation id="3940195383040445971">Seuraa hintoja välilehdillä</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Näytä kaupan tiedot, vaihtoehto lähellä näytön yläreunaa</translation> <translation id="5558362125926932819">Sulje välilehtiryhmä, jossa on <ph name="NUMBER_OF_TABS" /> välilehteä.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> välilehteä ryhmiteltiin</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> linkki Chromesta}other{<ph name="TABS_COUNT_MANY" /> linkkiä Chromesta}}</translation> <translation id="575494663145460764">Haluatko ilmoituksia hinnanalennuksista?</translation> <translation id="58326064309361797">Ryhmittele välilehtiä vetämällä niitä</translation> <translation id="5846292395804797011">Sulje ryhmä <ph name="TITLE_OF_GROUP" />, jossa on <ph name="NUMBER_OF_TABS" /> välilehteä</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb index 0e9cc1a..6965c17 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Vous serez averti en cas de prix inférieur dans un onglet ouvert</translation> <translation id="3328308545011660196">Suggestion : <ph name="NUMBER_OF_TABS" /> onglets semblent liés. Voulez-vous les regrouper ?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Vignette de la feuille de partage.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Réduisez <ph name="TABS_COUNT_ONE" /> onglet.}one{Réduisez le groupe d'onglets <ph name="TITLE_OF_GROUP" /> qui contient <ph name="TABS_COUNT_MANY" /> onglet.}other{Réduisez le groupe d'onglets <ph name="TITLE_OF_GROUP" /> qui contient <ph name="TABS_COUNT_MANY" /> onglets.}}</translation> <translation id="3882834874697329510">Pour être averti en cas de prix inférieur dans un onglet ouvert, accédez aux paramètres, puis activez les notifications.</translation> <translation id="3940195383040445971">Suivi des prix dans les onglets</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Afficher les infos sur le magasin, option disponible en haut de l'écran</translation> <translation id="5558362125926932819">Fermez le groupe d'onglets qui contient <ph name="NUMBER_OF_TABS" /> onglets</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> onglets ont été regroupés</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> lien depuis Chrome}one{<ph name="TABS_COUNT_MANY" /> lien depuis Chrome}other{<ph name="TABS_COUNT_MANY" /> liens depuis Chrome}}</translation> <translation id="575494663145460764">Être averti des baisses de prix ?</translation> <translation id="58326064309361797">Faites glisser les onglets pour les regrouper</translation> <translation id="5846292395804797011">Fermez le groupe <ph name="TITLE_OF_GROUP" /> qui contient <ph name="NUMBER_OF_TABS" /> onglets</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb index 9e42ac0..5b905b5 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gl.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Recibirás unha alerta cando haxa un prezo máis baixo nunha das pestanas que tes abertas</translation> <translation id="3328308545011660196">Suxestión: Hai <ph name="NUMBER_OF_TABS" /> pestanas que parecen relacionadas. Queres agrupalas?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura vista previa compartida.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Contraer <ph name="TABS_COUNT_ONE" /> pestana.}other{Contraer grupo de pestanas <ph name="TITLE_OF_GROUP" /> con <ph name="TABS_COUNT_MANY" /> pestanas.}}</translation> <translation id="3882834874697329510">Se queres recibir unha alerta cando haxa un prezo máis baixo nunha pestana aberta, activa as notificacións en Configuración.</translation> <translation id="3940195383040445971">Facer un seguimento dos prezos nas pestanas</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Ver información sobre a tenda, opción dispoñible preto da parte superior da pantalla</translation> <translation id="5558362125926932819">Pechar grupo de pestanas con <ph name="NUMBER_OF_TABS" /> pestanas</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> pestanas agrupadas</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ligazón de Chrome}other{<ph name="TABS_COUNT_MANY" /> ligazóns de Chrome}}</translation> <translation id="575494663145460764">Queres recibir alertas de baixadas de prezo?</translation> <translation id="58326064309361797">Arrastra as pestanas para agrupalas</translation> <translation id="5846292395804797011">Pechar grupo <ph name="TITLE_OF_GROUP" /> con <ph name="NUMBER_OF_TABS" /> pestanas</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb index 297d2d9..7dd4b7cf 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_gu.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">ખોલવામાં આવેલી ટૅબમાં જ્યારે કોઈ આઇટમની કિંમત ઓછી થશે, ત્યારે તમને અલર્ટ મળશે</translation> <translation id="3328308545011660196">સૂચન: <ph name="NUMBER_OF_TABS" /> ટૅબ સંબંધિત હોય તેમ જણાય છે. તેમનું ગ્રૂપ બનાવીએ?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">શેર શીટ પ્રીવ્યૂનો થંબનેલ.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ટૅબ નાની કરો.}one{<ph name="TABS_COUNT_MANY" /> ટૅબ ધરાવતા <ph name="TITLE_OF_GROUP" /> ટૅબ ગ્રૂપને નાનું કરો.}other{<ph name="TABS_COUNT_MANY" /> ટૅબ ધરાવતા <ph name="TITLE_OF_GROUP" /> ટૅબ ગ્રૂપને નાનું કરો.}}</translation> <translation id="3882834874697329510">ખોલવામાં આવેલી ટૅબમાં જ્યારે કોઈ આઇટમની કિંમત ઓછી થાય ત્યારે અલર્ટ મેળવવા માટે, સેટિંગમાં જઈને નોટિફિકેશન ચાલુ કરો.</translation> <translation id="3940195383040445971">ટૅબ પર કિંમત ટ્રૅક કરો</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">સ્ટોરની માહિતી જુઓ, વિકલ્પ સ્ક્રીનની ટોચની નજીક ઉપલબ્ધ છે</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> ટૅબ ધરાવતા ટૅબ ગ્રૂપને બંધ કરો</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ટૅબનું ગ્રૂપ બનાવ્યું</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chromeમાંથી <ph name="TABS_COUNT_ONE" /> લિંક}one{Chromeમાંથી <ph name="TABS_COUNT_MANY" /> લિંક}other{Chromeમાંથી <ph name="TABS_COUNT_MANY" /> લિંક}}</translation> <translation id="575494663145460764">કિંમતમાં ઘટાડો થાય ત્યારે અલર્ટની સુવિધા જોઈએ છે?</translation> <translation id="58326064309361797">ટૅબનું ગ્રૂપ બનાવવા માટે તેને ખેંચો</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> ટૅબ ધરાવતા <ph name="TITLE_OF_GROUP" /> ગ્રૂપ બંધ કરો</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb index 93d5bb07..7c53a0d 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">खोले गए टैब में मौजूद किसी आइटम की कीमत में कमी होने पर आपको सूचना मिलेगी</translation> <translation id="3328308545011660196">सुझाव: ऐसा लगता है कि <ph name="NUMBER_OF_TABS" /> टैब एक-दूसरे से मिलते-जुलते हैं. इनका ग्रुप बनाएं?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Share sheet की झलक का थंबनेल.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> टैब छोटा करें.}one{<ph name="TABS_COUNT_MANY" /> टैब वाले <ph name="TITLE_OF_GROUP" /> टैब ग्रुप को छोटा करें.}other{<ph name="TABS_COUNT_MANY" /> टैब वाले <ph name="TITLE_OF_GROUP" /> टैब ग्रुप को छोटा करें.}}</translation> <translation id="3882834874697329510">खोले गए टैब में मौजूद किसी आइटम की कीमत कम होने पर सूचना पाने के लिए, सेटिंग में जाकर सूचनाएं चालू करें.</translation> <translation id="3940195383040445971">टैब पर कीमतों को ट्रैक करें</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">स्क्रीन पर सबसे ऊपर मौजूद विकल्प से स्टोर की जानकारी देखें</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> टैब वाला टैब ग्रुप बंद करें</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> टैब ग्रुप में रखे गए</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome का <ph name="TABS_COUNT_ONE" /> लिंक}one{Chrome का <ph name="TABS_COUNT_MANY" /> लिंक}other{Chrome के <ph name="TABS_COUNT_MANY" /> लिंक}}</translation> <translation id="575494663145460764">क्या आप कीमत में कमी होने पर सूचनाएं पाना चाहते हैं?</translation> <translation id="58326064309361797">टैब को समूह में जोड़ने के लिए उन्हें खींचें और छोड़ें</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> टैब वाला <ph name="TITLE_OF_GROUP" /> ग्रुप बंद करें</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb index 661be14..bdfa1f9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hy.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Դուք ծանուցում կստանաք, երբ բացված ներդիրում ավելի ցածր գին հայտնաբերվի</translation> <translation id="3328308545011660196">Հուշում․ <ph name="NUMBER_OF_TABS" /> ներդիր նմանություն ունեն։ Խմբավորե՞լ դրանք։</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Թերթի նախադիտ․ կիսվելու մանրապատկեր</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Ծալել <ph name="TABS_COUNT_ONE" /> ներդիր։}one{Ծալել <ph name="TABS_COUNT_MANY" /> ներդիրից բաղկացած «<ph name="TITLE_OF_GROUP" />» խումբը։}other{Ծալել <ph name="TABS_COUNT_MANY" /> ներդիրից բաղկացած «<ph name="TITLE_OF_GROUP" />» խումբը։}}</translation> <translation id="3882834874697329510">Միացրեք ծանուցումները կարգավորումներում, որպեսզի ծանուցում ստանաք, երբ բացված ներդիրում ավելի ցածր գին հայտնաբերվի։</translation> <translation id="3940195383040445971">Հետագծել գները ներդիրներում</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Դիտել խանութի մասին տեղեկությունները, գործողությունը հասանելի է էկրանի վերին մասում</translation> <translation id="5558362125926932819">Փակել <ph name="NUMBER_OF_TABS" /> ներդիրից բաղկացած խումբը</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ներդիր խմբավորվեց</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> հղում Chrome-ից}one{<ph name="TABS_COUNT_MANY" /> հղում Chrome-ից}other{<ph name="TABS_COUNT_MANY" /> հղում Chrome-ից}}</translation> <translation id="575494663145460764">Ստանա՞լ ծանուցումներ գների իջեցման մասին</translation> <translation id="58326064309361797">Քաշեք ներդիրները՝ դրանք խմբավորելու համար</translation> <translation id="5846292395804797011">Փակել <ph name="NUMBER_OF_TABS" /> ներդիրից բաղկացած «<ph name="TITLE_OF_GROUP" />» խումբը</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb index 4356b85..b399e20 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kk.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Баға төмендеген кезде жаңа қойындыға хабарландыру келеді.</translation> <translation id="3328308545011660196">Ұсыныс: <ph name="NUMBER_OF_TABS" /> қойынды өзара қатысты сияқты. Олар топтастырылсын ба?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Алғы көрінісі бар нобай.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> қойындысын жию.}other{<ph name="TABS_COUNT_MANY" /> қойындысы бар <ph name="TITLE_OF_GROUP" /> қойындылар тобын жию.}}</translation> <translation id="3882834874697329510">Ашық қойындыда төмен баға болған кезде, хабарландыру алу үшін "Параметрлер" бөлімінен хабарландыруларды қосыңыз.</translation> <translation id="3940195383040445971">Бағаны қойындыларда бақылау</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Дүкен туралы ақпаратты көру (опция экранның жоғарғы жағында орналасқан)</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> қойындысы бар қойындылар тобын жабу</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> қойынды топтастырылды.</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome-нан <ph name="TABS_COUNT_ONE" /> сілтеме}other{Chrome-нан <ph name="TABS_COUNT_MANY" /> сілтеме}}</translation> <translation id="575494663145460764">Бағаның төмендеуі туралы хабарландыру келсін бе?</translation> <translation id="58326064309361797">Қойындыларды топтастыру үшін оларды сүйреңіз.</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> қойындысы бар <ph name="TITLE_OF_GROUP" /> тобын жабу</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb index d90d80c..c2d4e32 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">ತೆರೆದ ಟ್ಯಾಬ್ನಲ್ಲಿ ಬೆಲೆ ಕಡಿಮೆಯಿದ್ದಾಗ ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಪಡೆಯುತ್ತೀರಿ</translation> <translation id="3328308545011660196">ಸಲಹೆ: <ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳು ಸಂಬಂಧಿಸಿರುವ ಹಾಗೆ ಕಾಣುತ್ತಿದೆ. ಅವುಗಳನ್ನು ಗುಂಪು ಮಾಡುವುದೇ?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">ಶೀಟ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವ ಕುರಿತ ಪೂರ್ವವೀಕ್ಷಣೆಯ ಥಂಬ್ನೇಲ್.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ಟ್ಯಾಬ್ ಅನ್ನು ಕುಗ್ಗಿಸಿ.}one{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಕುಗ್ಗಿಸಿ.}other{<ph name="TABS_COUNT_MANY" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಕುಗ್ಗಿಸಿ.}}</translation> <translation id="3882834874697329510">ತೆರೆದ ಟ್ಯಾಬ್ನಲ್ಲಿ ಬೆಲೆ ಕಡಿಮೆಯಿದ್ದಾಗ ನೀವು ಎಚ್ಚರಿಕೆಯನ್ನು ಪಡೆಯಲು, ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೆರೆಯಿರಿ.</translation> <translation id="3940195383040445971">ಟ್ಯಾಬ್ಗಳಲ್ಲಿ ಬೆಲೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">ಸ್ಟೋರ್ ಮಾಹಿತಿ ವೀಕ್ಷಿಸಿ, ಆಯ್ಕೆಯು ಸ್ಕ್ರೀನ್ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಲಭ್ಯವಿದೆ</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಮುಚ್ಚಿರಿ</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಗುಂಪು ಮಾಡಲಾಗಿದೆ</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome ನಿಂದ <ph name="TABS_COUNT_ONE" /> ಲಿಂಕ್}one{Chrome ನಿಂದ <ph name="TABS_COUNT_MANY" /> ಲಿಂಕ್ಗಳು}other{Chrome ನಿಂದ <ph name="TABS_COUNT_MANY" /> ಲಿಂಕ್ಗಳು}}</translation> <translation id="575494663145460764">ಬೆಲೆ ಕುಸಿತಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಪಡೆಯಬೇಕೆ?</translation> <translation id="58326064309361797">ಟ್ಯಾಬ್ಗಳನ್ನು ಗುಂಪುಗೂಡಿಸಲು ಅವುಗಳನ್ನು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> ಟ್ಯಾಬ್ಗಳ ಜೊತೆಗೆ <ph name="TITLE_OF_GROUP" /> ಗುಂಪನ್ನು ಮುಚ್ಚಿರಿ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb index 9da89c12..99ba00f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ky.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Төмөндөгөн баа тууралуу эскертүүнү ачылган өтмөктө көрөсүз</translation> <translation id="3328308545011660196">Сунуш: <ph name="NUMBER_OF_TABS" /> өтмөк окшош окшойт. Алар топко бириктирилсинби?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Бөлүшүлгөн баракты алдын ала көрүү эскизи</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> өтмөк жыйыштырылсын.}other{<ph name="TITLE_OF_GROUP" /> өтмөктөр тобундагы <ph name="TABS_COUNT_MANY" /> өтмөк жыйыштырылсын.}}</translation> <translation id="3882834874697329510">Төмөндөгөн баа тууралуу эскертүүнү ачылган өтмөктө көрүү үчүн Жөндөөлөрдөн билдирмелерди күйгүзүңүз.</translation> <translation id="3940195383040445971">Бааларга өтмөктөрдө көз салуу</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Дүкөн тууралуу маалыматты көрүңүз. Параметр экрандын жогору жагында берилген</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> өтмөктөн турган өтмөктөр тобун жабуу</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> өтмөк топтолду</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome'дон <ph name="TABS_COUNT_ONE" /> шилтеме}other{Chrome'дон <ph name="TABS_COUNT_MANY" /> шилтеме}}</translation> <translation id="575494663145460764">Баалардын арзандаганы жөнүндө эскертүүлөрдү алгыңыз келеби?</translation> <translation id="58326064309361797">Топтоо үчүн өтмөктөрдү сүйрөп келиңиз</translation> <translation id="5846292395804797011"><ph name="TITLE_OF_GROUP" /> тобундагы <ph name="NUMBER_OF_TABS" /> өтмөктү жабуу</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb index 216718f..0e498ea 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ml.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">തുറന്നിരിക്കുന്ന ടാബിൽ, വിലക്കുറവുള്ളപ്പോൾ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് ലഭിക്കും</translation> <translation id="3328308545011660196">നിർദ്ദേശം: <ph name="NUMBER_OF_TABS" /> ടാബുകൾ സമാനമാണെന്ന് തോന്നുന്നു. അവ ഗ്രൂപ്പ് ചെയ്യണോ?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">ഷെയർഷീറ്റ് പ്രിവ്യൂ തംബ്നൈൽ</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ടാബ് ചുരുക്കുക.}other{<ph name="TABS_COUNT_MANY" /> ടാബുകളുള്ള <ph name="TITLE_OF_GROUP" /> ടാബ് ഗ്രൂപ്പ് ചുരുക്കുക.}}</translation> <translation id="3882834874697329510">തുറന്നിരിക്കുന്ന ടാബിൽ വിലക്കുറവുള്ളപ്പോൾ അറിയിപ്പ് ലഭിക്കാൻ ക്രമീകരണത്തിൽ അറിയിപ്പുകൾ ഓണാക്കുക.</translation> <translation id="3940195383040445971">ടാബുകളിൽ നിരക്കുകൾ ട്രാക്ക് ചെയ്യുക</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">സ്റ്റോർ വിവരങ്ങൾ കാണുക, സ്ക്രീനിന്റെ മുകൾ ഭാഗത്തിന് സമീപം ഓപ്ഷൻ ലഭ്യമാണ്</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> ടാബുകളുള്ള ടാബ് ഗ്രൂപ്പ് അടയ്ക്കുക</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ടാബുകൾ ഗ്രൂപ്പ് ചെയ്തു</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome-ൽ നിന്നുള്ള <ph name="TABS_COUNT_ONE" /> ലിങ്ക്}other{Chrome-ൽ നിന്നുള്ള <ph name="TABS_COUNT_MANY" /> ലിങ്ക്}}</translation> <translation id="575494663145460764">വിലയിടിവിന് മുന്നറിയിപ്പുകൾ നേടണോ?</translation> <translation id="58326064309361797">ടാബുകൾ ഗ്രൂപ്പ് ചെയ്യാൻ അവ വലിച്ചിടുക</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> ടാബുകളുള്ള <ph name="TITLE_OF_GROUP" /> ഗ്രൂപ്പ് അടയ്ക്കുക</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb index 4f70589..3b5ed5d6 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mr.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">उघड्या टॅबमध्ये किंमत कमी असताना तुम्हाला सूचना मिळेल</translation> <translation id="3328308545011660196">सूचना: <ph name="NUMBER_OF_TABS" /> टॅब संबंधित वाटतात. त्यांचा गट बनवायचा का?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">शेअर शीट पूर्वावलोकनाची थंबनेल</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> टॅब कोलॅप्स करा.}other{<ph name="TABS_COUNT_MANY" /> टॅबचा गट असलेले <ph name="TITLE_OF_GROUP" /> टॅब कोलॅप्स करा.}}</translation> <translation id="3882834874697329510">कमी किंमत उपलब्ध असताना उघड्या टॅबमध्ये सूचना मिळवण्यासाठी, सेंटिंग्ज मध्ये सूचना सुरू करा.</translation> <translation id="3940195383040445971">टॅबवर किमती ट्रॅक करा</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">स्टोअरची माहिती पहा, पर्याय स्क्रीनच्या सर्वात वर उपलब्ध आहे</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> टॅब असलेला टॅब गट बंद करा</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> टॅबची गटामध्ये विभागणी केली आहे</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome वरील <ph name="TABS_COUNT_ONE" /> लिंक}other{Chrome वरील <ph name="TABS_COUNT_MANY" /> लिंक}}</translation> <translation id="575494663145460764">किंमत कमी झाल्याच्या सूचना मिळवायच्या आहेत का?</translation> <translation id="58326064309361797">त्यांचा गट बनवण्यासाठी टॅबना ड्रॅग करा</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> टॅब असलेला <ph name="TITLE_OF_GROUP" /> गट बंद करा</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb index 694452e..777a9df 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ms.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Anda akan mendapat makluman apabila terdapat harga yang lebih murah dalam tab yang terbuka</translation> <translation id="3328308545011660196">Cadangan: <ph name="NUMBER_OF_TABS" /> tab kelihatan berkaitan. Himpunkan semua tab itu?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Lak. kecil pratntn helaian kongsi.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Runtuhkan <ph name="TABS_COUNT_ONE" /> tab.}other{Runtuhkan kumpulan tab <ph name="TITLE_OF_GROUP" /> dengan <ph name="TABS_COUNT_MANY" /> tab.}}</translation> <translation id="3882834874697329510">Untuk mendapatkan makluman apabila terdapat harga yang lebih murah dalam tab yang terbuka, hidupkan pemberitahuan dalam Tetapan.</translation> <translation id="3940195383040445971">Jejaki harga pada tab</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Lihat maklumat kedai, pilihan tersedia berhampiran bahagian atas skrin</translation> <translation id="5558362125926932819">Tutup kumpulan tab dengan <ph name="NUMBER_OF_TABS" /> tab</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tab dihimpunkan</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> pautan daripada Chrome}other{<ph name="TABS_COUNT_MANY" /> pautan daripada Chrome}}</translation> <translation id="575494663145460764">Dapatkan makluman untuk penurunan harga?</translation> <translation id="58326064309361797">Seret tab untuk dihimpunkan</translation> <translation id="5846292395804797011">Tutup kumpulan <ph name="TITLE_OF_GROUP" /> dengan <ph name="NUMBER_OF_TABS" /> tab</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb index 85b211e..85cccadd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ne.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">तपाईंले खोल्नुभएको ट्याबमा कुनै वस्तुको मूल्य कम हुँदा तपाईंलाई अलर्ट पठाइने छ</translation> <translation id="3328308545011660196">सुझाव: <ph name="NUMBER_OF_TABS" /> ट्याबहरू एकअर्कासँग सम्बन्धित देखिन्छन्। यिनलाई एउटै समूहमा राख्ने हो?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">सेयर सिटको प्रिभ्यूको थम्बनेल।</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ट्याब संक्षिप्त गर्नुहोस्।}other{<ph name="TABS_COUNT_MANY" /> वटा ट्याब भएको <ph name="TITLE_OF_GROUP" /> ट्याब समूह संक्षिप्त गर्नुहोस्।}}</translation> <translation id="3882834874697329510">तपाईंले खोल्नुभएको ट्याबमा कुनै वस्तुको मूल्य घट्दा अलर्ट प्राप्त गर्न सेटिङमा गई सूचना प्राप्त गर्ने सुविधा अन गर्नुहोस्।</translation> <translation id="3940195383040445971">ट्याबहरूमा मूल्य ट्र्याक गर्नुहोस्</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">स्क्रिनको सिरानको नजिक रहेको 'स्टोरसम्बन्धी जानकारी हेर्नुहोस्' नामक विकल्प</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> वटा ट्याब भएको ट्याब समूह बन्द गर्नुहोस्</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ट्याबहरू समूहबद्ध गरिए</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome को <ph name="TABS_COUNT_ONE" /> लिंक}other{Chrome का <ph name="TABS_COUNT_MANY" /> वटा लिंक}}</translation> <translation id="575494663145460764">मूल्य घटेको कुरासम्बन्धी अलर्ट प्राप्त गर्ने हो?</translation> <translation id="58326064309361797">ट्याबहरूलाई समूहबद्ध गर्न तिनीहरूलाई ड्र्याग गर्नुहोस्</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> वटा ट्याब भएको <ph name="TITLE_OF_GROUP" /> समूह बन्द गर्नुहोस्</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pl.xtb index cd79a65..2d7a59f9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pl.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Otrzymasz alert, gdy cena na otwartej karcie będzie niższa</translation> <translation id="3328308545011660196">Sugestia: liczba prawdopodobnie powiązanych kart wynosi <ph name="NUMBER_OF_TABS" />. Czy chcesz je pogrupować?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura podglądu arkusza udostępniania.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Zwiń <ph name="TABS_COUNT_ONE" /> kartę.}few{Zwiń grupę kart <ph name="TITLE_OF_GROUP" /> z <ph name="TABS_COUNT_MANY" /> kartami.}many{Zwiń grupę kart <ph name="TITLE_OF_GROUP" /> z <ph name="TABS_COUNT_MANY" /> kartami.}other{Zwiń grupę kart <ph name="TITLE_OF_GROUP" /> z <ph name="TABS_COUNT_MANY" /> karty.}}</translation> <translation id="3882834874697329510">Aby otrzymywać alert, gdy na otwartej karcie cena będzie niższa, włącz powiadomienia w ustawieniach.</translation> <translation id="3940195383040445971">Monitoruj ceny na kartach</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Wyświetl informacje o sklepie, opcja dostępna u góry ekranu</translation> <translation id="5558362125926932819">Zamknij grupę kart z <ph name="NUMBER_OF_TABS" /> kartami</translation> <translation id="5580090775658607195">Pogrupowane karty: <ph name="TAB_COUNT" /></translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> link z Chrome}few{<ph name="TABS_COUNT_MANY" /> linki z Chrome}many{<ph name="TABS_COUNT_MANY" /> linków z Chrome}other{<ph name="TABS_COUNT_MANY" /> linku z Chrome}}</translation> <translation id="575494663145460764">Chcesz otrzymywać alerty o obniżkach cen?</translation> <translation id="58326064309361797">Przeciągaj karty, by je grupować</translation> <translation id="5846292395804797011">Zamknij grupę <ph name="TITLE_OF_GROUP" /> z <ph name="NUMBER_OF_TABS" /> kartami</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb index 061c2e17..7bf3e6d 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sq.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Do të marrësh një alarm sinjalizues kur ka një çmim më të ulët në një skedë të hapur</translation> <translation id="3328308545011660196">Sugjerim: <ph name="NUMBER_OF_TABS" /> skeda duken të lidhura. Dëshiron t'i gruposh?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatura për pamjen paraprake të ndarjes së fletës.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Palos <ph name="TABS_COUNT_ONE" /> skedë.}other{Palos grupin e skedave "<ph name="TITLE_OF_GROUP" />" me <ph name="TABS_COUNT_MANY" /> skeda.}}</translation> <translation id="3882834874697329510">Për të marrë një alarm sinjalizues kur ka një çmim më të ulët në një skedë të hapur, aktivizo njoftimet te "Cilësimet".</translation> <translation id="3940195383040445971">Monitoro çmimet në skeda</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Shiko informacionet e dyqanit. Opsioni ofrohet pranë kreut të ekranit</translation> <translation id="5558362125926932819">Mbyll grupin e skedave me <ph name="NUMBER_OF_TABS" /> skeda</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> skeda të grupuara</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> lidhje nga Chrome}other{<ph name="TABS_COUNT_MANY" /> lidhje nga Chrome}}</translation> <translation id="575494663145460764">Dëshiron të marrësh alarme sinjalizuese për rënien e çmimeve?</translation> <translation id="58326064309361797">Zvarriti skedat për t'i grupuar</translation> <translation id="5846292395804797011">Mbyll grupin "<ph name="TITLE_OF_GROUP" />" me <ph name="NUMBER_OF_TABS" /> skeda</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb index fce2e01..6bf623a4 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sv.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Du får en avisering när det finns ett lägre pris på en öppen flik</translation> <translation id="3328308545011660196">Förslag: <ph name="NUMBER_OF_TABS" /> flikar verkar höra ihop. Vill du gruppera dem?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Miniatyr för förhandsgranskning av delningsblad.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{Komprimera <ph name="TABS_COUNT_ONE" /> flik.}other{Komprimera flikgruppen <ph name="TITLE_OF_GROUP" /> med <ph name="TABS_COUNT_MANY" /> flikar.}}</translation> <translation id="3882834874697329510">Aktivera aviseringar i inställningarna om du vill få en avisering när det finns ett lägre pris på en öppen flik.</translation> <translation id="3940195383040445971">Bevaka priser på flikar</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Visa butiksinformation. Alternativet visas högt upp på skärmen</translation> <translation id="5558362125926932819">Stäng flikgruppen med <ph name="NUMBER_OF_TABS" /> flikar</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> flikar har grupperats</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> länk från Chrome}other{<ph name="TABS_COUNT_MANY" /> länkar från Chrome}}</translation> <translation id="575494663145460764">Vill du få aviseringar om sänkt pris?</translation> <translation id="58326064309361797">Gruppera flikar genom att dra dem</translation> <translation id="5846292395804797011">Stäng gruppen <ph name="TITLE_OF_GROUP" /> med <ph name="NUMBER_OF_TABS" /> flikar</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb index 5e0a42a..5c3305e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">திறந்திருக்கும் தாவலில் குறைவான விலை இருக்கும்போது விழிப்பூட்டலைப் பெறுவீர்கள்</translation> <translation id="3328308545011660196">பரிந்துரை: <ph name="NUMBER_OF_TABS" /> தாவல்கள் தொடர்புடையவையாகத் தெரிகின்றன. அவற்றைக் குழுவாக்கவா?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">ஷேர் ஷீட் மாதிரிக்காட்சியின் சிறுபடம்.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> தாவலைச் சுருக்கும்.}other{<ph name="TABS_COUNT_MANY" /> தாவல்கள் உள்ள <ph name="TITLE_OF_GROUP" /> பக்கக் குழுவைச் சுருக்கும்.}}</translation> <translation id="3882834874697329510">திறந்திருக்கும் தாவலில் குறைவான விலை இருக்கும்போது விழிப்பூட்டலைப் பெற, அமைப்புகளில் அறிவிப்புகளை இயக்குங்கள்.</translation> <translation id="3940195383040445971">தாவல்களில் விலையைக் கண்காணித்தல்</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">ஸ்டோர் தகவலைப் பார்ப்பதற்கான விருப்பம் திரையின் மேற்பகுதிக்கு அருகில் உள்ளது</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> பக்கங்கள் உள்ள பக்கக் குழுவை மூடும்</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> தாவல்கள் குழுவாக்கப்பட்டுள்ளன</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome இணைப்பு: <ph name="TABS_COUNT_ONE" />}other{Chrome இணைப்புகள்: <ph name="TABS_COUNT_MANY" />}}</translation> <translation id="575494663145460764">விலைச் சரிவு குறித்து விழிப்பூட்டல்களைப் பெற வேண்டுமா?</translation> <translation id="58326064309361797">தாவல்களை இழுப்பதன் மூலம் அவற்றைக் குழுவாக்கலாம்</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> தாவல்கள் உள்ள <ph name="TITLE_OF_GROUP" /> குழுவை மூடும்</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb index e81c3b15..b5ca88e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">తెరిచి ఉన్న ట్యాబ్లో ధర తగ్గినప్పుడు మీరు అలర్ట్ను పొందుతారు</translation> <translation id="3328308545011660196">సూచన: <ph name="NUMBER_OF_TABS" /> ట్యాబ్లు సంబంధించినవిగా అనిపిస్తున్నాయి. వాటిని గ్రూప్ చేయాలా?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">షేర్షీట్ ప్రివ్యూథంబ్నెయిల్</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ట్యాబ్ను కుదించండి.}other{<ph name="TABS_COUNT_MANY" /> ట్యాబ్లతో ఉన్న <ph name="TITLE_OF_GROUP" /> ట్యాబ్ గ్రూప్ను కుదించండి.}}</translation> <translation id="3882834874697329510">తెరిచి ఉన్న ట్యాబ్లో ధర తగ్గినప్పుడు అలర్ట్ను పొందడానికి, సెట్టింగ్లలో నోటిఫికేషన్లను ఆన్ చేయండి.</translation> <translation id="3940195383040445971">ధరలను ట్యాబ్లలో ట్రాక్ చేయండి</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">స్టోర్ సమాచారాన్ని చూడండి, ఆప్షన్ స్క్రీన్ పైభాగంలో అందుబాటులో ఉంది</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> ట్యాబ్లతో ఉన్న ట్యాబ్ గ్రూప్ను మూసివేయండి</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ట్యాబ్లు గ్రూప్ చేయబడ్డాయి</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome నుండి <ph name="TABS_COUNT_ONE" /> లింక్}other{Chrome నుండి <ph name="TABS_COUNT_MANY" /> లింక్లు}}</translation> <translation id="575494663145460764">ధర తగ్గింపు అలర్ట్లను పొందాలనుకుంటున్నారా?</translation> <translation id="58326064309361797">గ్రూప్గా చేయడానికి ట్యాబ్లను లాగండి</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> ట్యాబ్లతో ఉన్న <ph name="TITLE_OF_GROUP" /> గ్రూప్ను మూసివేయండి</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb index d7fc7dc2..f0b42b0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_tr.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">Açık bir sekmede daha düşük fiyat varsa uyarı alırsınız</translation> <translation id="3328308545011660196">Öneri: <ph name="NUMBER_OF_TABS" /> sekme birbiriyle ilgili görünüyor. Bunlar gruplandırılsın mı?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">Paylaşım sayfası önizlemesinin küçük resmi.</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> sekmeyi daralt.}other{<ph name="TABS_COUNT_MANY" /> sekmeli <ph name="TITLE_OF_GROUP" /> sekme grubunu daralt.}}</translation> <translation id="3882834874697329510">Açık bir sekmede daha düşük fiyat olduğunda uyarı almak için Ayarlar'da bildirimleri açın.</translation> <translation id="3940195383040445971">Sekmelerde fiyatları takip et</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">Mağaza bilgilerini görüntüleme seçeneği, ekranın üst kısmına yakın bir yerdedir</translation> <translation id="5558362125926932819"><ph name="NUMBER_OF_TABS" /> sekmeli sekme grubunu kapat</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> sekme gruplandı</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome'dan <ph name="TABS_COUNT_ONE" /> bağlantı}other{Chrome'dan <ph name="TABS_COUNT_MANY" /> bağlantı}}</translation> <translation id="575494663145460764">Fiyat düşüşü uyarıları alınsın mı?</translation> <translation id="58326064309361797">Gruplandırmak için sekmeleri sürükleyin</translation> <translation id="5846292395804797011"><ph name="NUMBER_OF_TABS" /> sekmeli <ph name="TITLE_OF_GROUP" /> grubunu kapat</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb index 1c33d457..2e8be21 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
@@ -32,6 +32,7 @@ <translation id="3291470810748040983">当某个已打开的标签页中有商品降价时,您会收到提醒</translation> <translation id="3328308545011660196">建议:有 <ph name="NUMBER_OF_TABS" /> 个标签页似乎彼此相关。为它们建组?</translation> <translation id="3652027618765638838"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /></translation> +<translation id="374923079891132274">“分享”动作条预览效果的缩略图。</translation> <translation id="3819916404117584598">{TABS_COUNT,plural, =1{收起 <ph name="TABS_COUNT_ONE" /> 个标签页。}other{收起包含 <ph name="TABS_COUNT_MANY" /> 个标签页的“<ph name="TITLE_OF_GROUP" />”标签页组。}}</translation> <translation id="3882834874697329510">如果想在某个已打开的标签页中有商品降价时收到提醒,请在“设置”中开启通知功能。</translation> <translation id="3940195383040445971">跟踪标签页上的价格</translation> @@ -56,6 +57,7 @@ <translation id="5556417849629758491">查看商店信息,屏幕顶部附近有可用选项</translation> <translation id="5558362125926932819">关闭包含 <ph name="NUMBER_OF_TABS" /> 个标签页的标签页组</translation> <translation id="5580090775658607195">已将 <ph name="TAB_COUNT" /> 个标签页合为一组</translation> +<translation id="5656738671621697952">{TABS_COUNT,plural, =1{Chrome 中的 <ph name="TABS_COUNT_ONE" /> 个链接}other{Chrome 中的 <ph name="TABS_COUNT_MANY" /> 个链接}}</translation> <translation id="575494663145460764">接收降价提醒?</translation> <translation id="58326064309361797">拖动标签可进行分组</translation> <translation id="5846292395804797011">关闭包含 <ph name="NUMBER_OF_TABS" /> 个标签页的“<ph name="TITLE_OF_GROUP" />”组</translation>
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml index 17426489..e7c10758 100644 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -57,7 +57,7 @@ <Preference android:key="privacy_sandbox" android:title="@string/prefs_privacy_sandbox" - android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/> + android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragmentV3"/> <Preference android:key="phone_as_a_security_key" android:title="@string/cablev2_paask_title"
diff --git a/chrome/android/java/res/xml/privacy_preferences_v2.xml b/chrome/android/java/res/xml/privacy_preferences_v2.xml index 1fabe73..9394eed 100644 --- a/chrome/android/java/res/xml/privacy_preferences_v2.xml +++ b/chrome/android/java/res/xml/privacy_preferences_v2.xml
@@ -22,9 +22,9 @@ android:summary="@string/prefs_privacy_guide_summary" android:fragment="org.chromium.chrome.browser.privacy_guide.PrivacyGuideFragment" /> <Preference - android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" android:key="do_not_track" - android:title="@string/do_not_track_title" /> + android:title="@string/do_not_track_title" + android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> <Preference android:key="preload_pages" android:title="@string/preload_pages_title" @@ -32,8 +32,14 @@ android:fragment="org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment" /> <Preference android:key="privacy_sandbox" - android:title="@string/prefs_privacy_sandbox" - android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment" /> + android:title="@string/ad_privacy_link_row_label" + android:summary="@string/ad_privacy_link_row_sub_label" + android:fragment="org.chromium.chrome.browser.privacy_sandbox.v4.PrivacySandboxSettingsFragmentV4" /> + <org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference + android:key="incognito_lock" + android:title="@string/settings_incognito_tab_lock_title" + android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" + android:persistent="false" /> <org.chromium.components.browser_ui.settings.ChromeBasePreference android:key="usage_stats_reporting" android:title="@string/usage_stats_setting_title" @@ -60,11 +66,6 @@ android:title="@string/cablev2_paask_title" android:summary="@string/cablev2_paask_body" android:fragment="org.chromium.chrome.browser.webauthn.PrivacySettingsFragment" /> - <org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference - android:key="incognito_lock" - android:title="@string/settings_incognito_tab_lock_title" - android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" - android:persistent="false" /> <org.chromium.components.browser_ui.settings.ChromeSwitchPreference android:key="can_make_payment" android:title="@string/can_make_payment_title"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java index 4f7c91c..504035e 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -24,8 +24,7 @@ import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxReferrer; -import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment; -import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragmentV3; +import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint; import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragment; @@ -79,15 +78,13 @@ } Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX); - // Hide the Privacy Sandbox if it is restricted. if (PrivacySandboxBridge.isPrivacySandboxRestricted()) { + // Hide the Privacy Sandbox if it is restricted. getPreferenceScreen().removePreference(sandboxPreference); } else { - sandboxPreference.setSummary( - PrivacySandboxSettingsFragment.getStatusString(getContext())); // Overwrite the click listener to pass a correct referrer to the fragment. sandboxPreference.setOnPreferenceClickListener(preference -> { - PrivacySandboxSettingsFragmentV3.launchPrivacySandboxSettings(getContext(), + PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings(getContext(), new SettingsLauncherImpl(), PrivacySandboxReferrer.PRIVACY_SETTINGS); return true; }); @@ -238,9 +235,10 @@ } Preference privacySandboxPreference = findPreference(PREF_PRIVACY_SANDBOX); - if (privacySandboxPreference != null) { + if (privacySandboxPreference != null + && !ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4)) { privacySandboxPreference.setSummary( - PrivacySandboxSettingsFragment.getStatusString(getContext())); + PrivacySandboxSettingsBaseFragment.getStatusString(getContext())); } mIncognitoLockSettings.updateIncognitoReauthPreferenceIfNeeded(getActivity());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java index 5acd6ef..a392cb1e 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsFragmentTest.java
@@ -60,6 +60,10 @@ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @Batch(PER_CLASS) public class PrivacySettingsFragmentTest { + // Index of the Privacy Sandbox row entry in the settings list when PRIVACY_SANDBOX_SETTINGS_4 + // is enabled. + public static final int PRIVACY_SANDBOX_V4_POS_IDX = 4; + @ClassRule public static final ChromeTabbedActivityTestRule sActivityTestRule = new ChromeTabbedActivityTestRule(); @@ -145,22 +149,8 @@ @Test @LargeTest - @Features.DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3) - public void testPrivacySandboxView() throws IOException { - mSettingsActivityTestRule.startSettingsActivity(); - PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); - // Scroll down and open Privacy Sandbox page. - scrollToSetting(withText(R.string.prefs_privacy_sandbox)); - onView(withText(R.string.prefs_privacy_sandbox)).perform(click()); - // Verify that the right view is shown depending on feature state. - scrollToSetting(withText(R.string.privacy_sandbox_toggle)); - onView(withText(R.string.privacy_sandbox_toggle)).check(matches(isDisplayed())); - } - - @Test - @LargeTest - @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3) - public void testPrivacySandboxViewV3() throws IOException { + @Features.DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) + public void testPrivacySandboxV3View() throws IOException { mSettingsActivityTestRule.startSettingsActivity(); PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); // Scroll down and open Privacy Sandbox page. @@ -173,8 +163,21 @@ @Test @LargeTest - @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3) - public void testPrivacySandboxViewV3Restricted() throws IOException { + @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) + public void testPrivacySandboxV4View() throws IOException { + mSettingsActivityTestRule.startSettingsActivity(); + PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); + // Scroll down and open Privacy Sandbox page. + scrollToSetting(withText(R.string.ad_privacy_link_row_label)); + onView(withText(R.string.ad_privacy_link_row_label)).perform(click()); + // Verify that the right view is shown depending on feature state. + onView(withText(R.string.ad_privacy_page_title)).check(matches(isDisplayed())); + } + + @Test + @LargeTest + @Features.DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) + public void testPrivacySandboxV3ViewRestricted() throws IOException { mFakePrivacySandboxBridge.setPrivacySandboxRestricted(true); mSettingsActivityTestRule.startSettingsActivity(); PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); @@ -188,6 +191,21 @@ @Test @LargeTest + @Features.EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) + public void testPrivacySandboxV4ViewRestricted() throws IOException { + mFakePrivacySandboxBridge.setPrivacySandboxRestricted(true); + mSettingsActivityTestRule.startSettingsActivity(); + PrivacySettings fragment = mSettingsActivityTestRule.getFragment(); + // Scroll down and verify that the Privacy Sandbox is not there. + TestThreadUtils.runOnUiThreadBlocking(() -> { + RecyclerView recyclerView = fragment.getView().findViewById(R.id.recycler_view); + recyclerView.scrollToPosition(PRIVACY_SANDBOX_V4_POS_IDX); + }); + onView(withText(R.string.ad_privacy_link_row_label)).check(doesNotExist()); + } + + @Test + @LargeTest @Feature({"RenderTest"}) @DisableIf.Build(sdk_is_less_than = Build.VERSION_CODES.M, message = "Invokes IncognitoReauthSettingUtils#isDeviceScreenLockEnabled internally"
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index dadc9c7..8fe569a 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -12662,6 +12662,18 @@ Chrome is being controlled by automated test software. </message> + <!-- Chrome for Testing infobar main text --> + <message name="IDS_CHROME_FOR_TESTING_DISCLAIMER" desc="An infobar prompt shown whenever Chrome for Testing is launched."> + Chrome for Testing v<ph name="BROWSER_VERSION"> + $1<ex>109.0.5369.0</ex> + </ph> is only for automated testing. For regular browsing, use a standard version of Chrome that updates automatically. + </message> + + <!-- Chrome for Testing infobar download chrome hyperlink text --> + <message name="IDS_DOWNLOAD_CHROME" desc="Hyperlink call-out to download Chrome"> + Download Chrome + </message> + <!-- Security Key permission --> <if expr="is_android"> <message name="IDS_SECURITY_KEY_ATTESTATION_INFOBAR_QUESTION" desc="An infobar prompt shown to a user when a website wants to see information that identifies the user's Security Key, such as make and model number. The 'make' of a device is the brand name of the manufacturer, e.g. Yubikey is a make of Security Key. The 'model' of a device is the specific product, e.g. Yubikey Neo is a model of Security Key.">
diff --git a/chrome/app/generated_resources_grd/IDS_CHROME_FOR_TESTING_DISCLAIMER.png.sha1 b/chrome/app/generated_resources_grd/IDS_CHROME_FOR_TESTING_DISCLAIMER.png.sha1 new file mode 100644 index 0000000..c77e446 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_CHROME_FOR_TESTING_DISCLAIMER.png.sha1
@@ -0,0 +1 @@ +6b839b2f02a8b0719622cbc8b7e8dae5d60bbe23 \ No newline at end of file
diff --git a/chrome/app/generated_resources_grd/IDS_DOWNLOAD_CHROME.png.sha1 b/chrome/app/generated_resources_grd/IDS_DOWNLOAD_CHROME.png.sha1 new file mode 100644 index 0000000..72adc64 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_DOWNLOAD_CHROME.png.sha1
@@ -0,0 +1 @@ +d5e759d5b78a4738d2eaa2067c3db95abb2598d3 \ No newline at end of file
diff --git a/chrome/app/resources/README.md b/chrome/app/resources/README.md index 0e339fe..81ae136 100644 --- a/chrome/app/resources/README.md +++ b/chrome/app/resources/README.md
@@ -1 +1,4 @@ -Please read the docs on [Google Chrome branding](../../../docs/google_chrome_branded_builds.md) before checking in resources here. +If the resource that you want to check in is product-branded and/or trademarked, +please read the docs on +[Google Chrome branding](../../../docs/google_chrome_branded_builds.md) to +determine the correct steps to take.
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index f2d88fc..e8f8e80 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -931,6 +931,7 @@ <translation id="1832848789136765277">لضمان إمكانية الوصول دائمًا إلى البيانات التي تتم مزامنتها، عليك إثبات هويتك.</translation> <translation id="1834503245783133039">تعذّر التنزيل: <ph name="FILE_NAME" /></translation> <translation id="1835261175655098052">جارٍ ترقية نظام التشغيل Linux</translation> +<translation id="1835612721186505600">السماح بوصول التطبيقات والمواقع الإلكترونية إلى الكاميرا من خلال منحها إذن استخدام الكاميرا</translation> <translation id="1838374766361614909">محو البحث</translation> <translation id="1839021455997460752">عنوان بريدك الإلكتروني</translation> <translation id="1839540115464516994">العرض في <ph name="LOCATION" /></translation> @@ -2500,6 +2501,7 @@ <translation id="3279230909244266691">قد تستغرق هذه العملية بضع دقائق. جارٍ بدء الآلة الافتراضية.</translation> <translation id="3280237271814976245">الحفظ &باسم...</translation> <translation id="3280243678470289153">الاستمرار في استخدام Chrome</translation> +<translation id="328119399589609861">التحكُّم في وصول الجهاز إلى الميكروفون والكاميرا وغير ذلك</translation> <translation id="3281892622610078515">الملفات والبرامج التي تم وضعها في وحدة العزل:</translation> <translation id="3282210178675490297">مشاركة علامة تبويب مع <ph name="APP_NAME" /></translation> <translation id="3285322247471302225">&علامة تبويب جديدة</translation> @@ -4506,6 +4508,7 @@ <translation id="5185500136143151980">لا يتوفّر اتصال بالإنترنت</translation> <translation id="5187826826541650604"><ph name="KEY_NAME" /> (<ph name="DEVICE" />)</translation> <translation id="5190926251776387065">تفعيل المنفذ</translation> +<translation id="5190959794678983197">ما مِن ميكروفون متّصل بالجهاز.</translation> <translation id="5191094172448199359">رقما التعريف الشخصيان اللذان أدخلتهما غير متطابقَين</translation> <translation id="5191251636205085390">يمكنك التعرّف على تقنيات جديدة تهدف إلى استبدال ملفات تعريف الارتباط التابعة لجهات خارجية وكيفية التحكُّم في تلك التقنيات.</translation> <translation id="519185197579575131">استخدام QT</translation> @@ -4865,6 +4868,7 @@ <translation id="5519195206574732858">LTE</translation> <translation id="5521078259930077036">هل هذه هي الصفحة الرئيسية التي كنت تتوقع ظهورها؟</translation> <translation id="5522156646677899028">هذه الإضافة تحتوي على ثغرة أمنية خطيرة.</translation> +<translation id="5522403133543437426">محرك البحث المُستخدَم في شريط العناوين</translation> <translation id="5523149538118225875">{NUM_EXTENSIONS,plural, =1{ثبَّت مشرفك إضافة واحدة.}zero{ثبَّت مشرفك # إضافة.}two{ثبَّت مشرفك إضافتَين.}few{ثبَّت مشرفك # إضافات.}many{ثبَّت مشرفك # إضافةً.}other{ثبَّت مشرفك # إضافة.}}</translation> <translation id="5523558474028191231">يمكن أن يحتوي الاسم على أحرف وأرقام ورموز خاصة، ويجب ألا يزيد عن <ph name="MAX_CHARACTER_COUNT" /> حرف.</translation> <translation id="5526701598901867718">الكل (غير آمن)</translation> @@ -7056,6 +7060,7 @@ <translation id="7607002721634913082">تعليق التحميل</translation> <translation id="7608810328871051088">إعدادات Android المفضّلة</translation> <translation id="7609148976235050828">يُرجى الاتصال بالإنترنت وإعادة المحاولة.</translation> +<translation id="7612401678989660900">السماح بوصول التطبيقات والمواقع الإلكترونية إلى الميكروفون من خلال منحها إذن استخدام الميكروفون</translation> <translation id="7612655942094160088">تفعيل ميزات الهاتف المرتبطة</translation> <translation id="7614260613810441905">طلب الإذن عند محاولة موقع إلكتروني تعديل الملفات والمجلدات على أجهزتك (مقترَح)</translation> <translation id="761530003705945209">يمكنك الاحتفاظ بنسخة احتياطية في Google Drive. ويمكنك استعادة بياناتك أو تبديل جهازك بسهولة وفي أي وقت. تتضمّن نسختك الاحتياطية بيانات التطبيق، حيث يتمّ تحميل النُسخ الاحتياطية إلى Google ويتم ترميزها باستخدام كلمة مرور حسابك على Google.</translation> @@ -8445,6 +8450,7 @@ <translation id="8872155268274985541">يوجد ملف غير صالح لبيان التحديث الخارجي لتطبيق Kiosk. اخفق تحديث تطبيق Kiosk. يُرجى إزالة جهاز USB.</translation> <translation id="8872506776304248286">فتح في التطبيق</translation> <translation id="8872777911145321141">طلب الإذن عندما يحاول موقع إلكتروني استخدام أجهزة الواقع الافتراضي وبياناتها (إعداد مقترَح)</translation> +<translation id="887292602123626481">مزيد من المعلومات حول محرّكات البحث التلقائية</translation> <translation id="8874341931345877644">البث على جهاز:</translation> <translation id="8875520811099717934">ترقية نظام التشغيل Linux</translation> <translation id="8875736897340638404">اختَر مستوى الظهور.</translation> @@ -8565,6 +8571,7 @@ <translation id="8987927404178983737">شهر</translation> <translation id="8989359959810288806">إعادة تحميل حالة التوصيل</translation> <translation id="8991520179165052608">يمكن للموقع الإلكتروني استخدام الميكروفون.</translation> +<translation id="8991694323904646277">ما مِن كاميرا متّصلة بالجهاز.</translation> <translation id="8993059306046735527">في حال نسيت كلمة مرور <ph name="DEVICE_TYPE" />، سيظل بإمكانك استعادة بياناتك المُخزّنة على الجهاز. ما عليك سوى تسجيل الدخول إلى حسابك على Google أو استخدام ميزة "استرداد الحساب".</translation> <translation id="899384117894244799">إزالة مستخدم محظور</translation> <translation id="899403249577094719">عنوان URL الأساسي لشهادة Netscape</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 8960247..3f36ebe65 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -2384,6 +2384,7 @@ <translation id="3143515551205905069">ছিংক বাতিল কৰক</translation> <translation id="3143754809889689516">আৰম্ভণিৰ পৰা প্লে’ কৰক</translation> <translation id="3144647712221361880">লিংকটো এই হিচাপে খোলক</translation> +<translation id="3144896554017119333">এক্সটেনশ্বন আৰু আন বহুতো</translation> <translation id="3149510190863420837">Chromeৰ এপ্</translation> <translation id="3150693969729403281">এতিয়াই সুৰক্ষা পৰীক্ষা চলাওক</translation> <translation id="3150927491400159470">হাৰ্ড ৰিল’ড</translation> @@ -2492,6 +2493,7 @@ <translation id="3268451620468152448">খুলি ৰখা টেব</translation> <translation id="3269093882174072735">ছবি ল’ড কৰক</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> নেদেখুৱাব</translation> +<translation id="3269175001434213183">আপোনাৰ বস্তুবোৰৰ বেক আপ ল’বলৈ আৰু সেইবোৰ যিকোনো ডিভাইচত ব্যৱহাৰ কৰিবলৈ ছিংক অন কৰক</translation> <translation id="3269612321104318480">পাতল সেউজ-নীলা আৰু বগা</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ফাইল}one{# টা ফাইল}other{# টা ফাইল}}</translation> <translation id="326999365752735949">diff ডাউনল'ড কৰি থকা হৈছে</translation> @@ -4290,6 +4292,7 @@ <translation id="4950993567860689081">আপোনাৰ ছেশ্বনটো আপোনাৰ প্ৰতিষ্ঠানে পৰিচালনা কৰে। প্ৰশাসকে আপোনাৰ প্ৰ’ফাইলটো মচিব পাৰে আৰু লগতে আপোনাৰ নেটৱৰ্ক ট্ৰেফিক নিৰীক্ষণ কৰিব পাৰে।</translation> <translation id="495164417696120157">{COUNT,plural, =1{এটা ফাইল}one{# টা ফাইল}other{# টা ফাইল}}</translation> <translation id="495170559598752135">কাৰ্যসমূহ</translation> +<translation id="4951966678293618079">এই ছাইটটোৰ বাবে কেতিয়াও পাছৱৰ্ড ছেভ নকৰিব</translation> <translation id="4953808748584563296">ডিফ’ল্ট কমলা অৱতাৰ</translation> <translation id="4955710816792587366">আপোনাৰ পিন বাছনি কৰক</translation> <translation id="4959262764292427323">আপুনি সকলো ডিভাইচতে ব্যৱহাৰ কৰিব পৰাকৈ নিজৰ Google একাউণ্টত পাছৱর্ডসমূহ ছেভ কৰা হয়</translation> @@ -4319,6 +4322,7 @@ <translation id="4981449534399733132">আপোনাৰ ছিংক হৈ থকা সকলো ডিভাইচ আৰু নিজৰ Google একাউণ্টৰ পৰা ব্ৰাউজিঙৰ ডেটা মচিবলৈ <ph name="BEGIN_LINK" />ছাইন ইন কৰক<ph name="END_LINK" />।</translation> <translation id="4982111327868342436">যিকোনো ডিভাইচত আপুনি কোনো কাৰ্য য’ত এৰিছিল তাৰ পৰা আৰম্ভ কৰক</translation> <translation id="4982236238228587209">ডিভাইচৰ ছফ্টৱেৰ</translation> +<translation id="4986706507552097681">আপুনি কি ছিংক কৰিব লাগে সেয়া ছেটিঙলৈ গৈ যেতিয়াই মন যায় তেতিয়াই বাছনি কৰিব পাৰে। Googleএ আপোনাৰ ইতিহাসৰ ওপৰত ভিত্তি কৰি Search আৰু অন্য সেৱা ব্যক্তিগতকৰণ কৰিব পাৰে।</translation> <translation id="4986728572522335985">এই কাৰ্যই সুৰক্ষা চাবিটোত ষ্ট’ৰ হৈ থকা ইয়াৰ পিনকে ধৰি সকলো ডেটা মচিব</translation> <translation id="4988526792673242964">পৃষ্ঠা</translation> <translation id="49896407730300355">ঘড়ীৰ কাঁটাৰ বি&পৰীত দিশত ঘূৰাওক</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index dd08a73..bd81ad4 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -2374,6 +2374,7 @@ <translation id="3143515551205905069">Скасаваць сінхранізацыю</translation> <translation id="3143754809889689516">Прайграць з пачатку</translation> <translation id="3144647712221361880">Адкрыць спасылку як</translation> +<translation id="3144896554017119333">Пашырэнні і не толькі</translation> <translation id="3149510190863420837">Праграмы Chrome</translation> <translation id="3150693969729403281">Запусціць праверку бяспекі</translation> <translation id="3150927491400159470">Халодная перазагрузка</translation> @@ -2482,6 +2483,7 @@ <translation id="3268451620468152448">Адкрытыя ўкладкі</translation> <translation id="3269093882174072735">Загрузіць відарыс</translation> <translation id="326911502853238749">Не паказваць нічога з катэгорыі "<ph name="MODULE_NAME" />"</translation> +<translation id="3269175001434213183">Уключыце сінхранізацыю, каб ствараць рэзервовыя копіі сваіх даных і выкарыстоўваць іх на іншых прыладах</translation> <translation id="3269612321104318480">Светла-бірузовы і белы</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Файл}one{# файл}few{# файлы}many{# файлаў}other{# файла}}</translation> <translation id="326999365752735949">Спампоўванне розніцы</translation> @@ -4280,6 +4282,7 @@ <translation id="4950993567860689081">Гэтым сеансам кіруе ваша арганізацыя. Адміністратары могуць выдаліць ваш профіль, а таксама адсочваць сеткавы трафік.</translation> <translation id="495164417696120157">{COUNT,plural, =1{файл}one{# файл}few{# файлы}many{# файлаў}other{# файла}}</translation> <translation id="495170559598752135">Дзеянні</translation> +<translation id="4951966678293618079">Не захоўваць паролі для гэтага сайта</translation> <translation id="4953808748584563296">Стандартны аранжавы аватар</translation> <translation id="4955710816792587366">Набярыце PIN-код</translation> <translation id="4959262764292427323">Паролі захоўваюцца ў вашым Уліковым запісе Google, і вы зможаце карыстацца імі з любой прылады</translation> @@ -4309,6 +4312,7 @@ <translation id="4981449534399733132">Каб ачысціць даныя прагляду з усіх сінхранізаваных прылад і Уліковага запісу Google, <ph name="BEGIN_LINK" />увайдзіце ва ўліковы запіс<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Пачынайце з таго месца, дзе спыніліся, на любой прыладзе</translation> <translation id="4982236238228587209">Праграмнае забеспячэнне прылады</translation> +<translation id="4986706507552097681">У наладах заўсёды можна выбраць, што трэба сінхранізаваць. Google можа персаналізаваць Пошук і іншыя сэрвісы на аснове гісторыі прагляду вамі сайтаў.</translation> <translation id="4986728572522335985">Будуць выдалены ўсе даныя на ключы бяспекі, уключаючы яго PIN-код</translation> <translation id="4988526792673242964">Старонкі</translation> <translation id="49896407730300355">Павярнуць су&праць гадзіннікавай стрэлкі</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index a26f3ef..7cbc4d2 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2382,6 +2382,7 @@ <translation id="3143515551205905069">Анулиране на синхронизирането</translation> <translation id="3143754809889689516">Възпроизвеждане от началото</translation> <translation id="3144647712221361880">Отваряне на връзката като</translation> +<translation id="3144896554017119333">Разширения и др.</translation> <translation id="3149510190863420837">Приложения в Chrome</translation> <translation id="3150693969729403281">Старт на функцията за проверка за безопасността</translation> <translation id="3150927491400159470">Твърдо презареждане</translation> @@ -2490,6 +2491,7 @@ <translation id="3268451620468152448">Отворени раздели</translation> <translation id="3269093882174072735">Зареждане на изображението</translation> <translation id="326911502853238749">Без показване на <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Включете синхронизирането, за да създадете резервно копие на нещата си и да ги използвате на всяко устройство</translation> <translation id="3269612321104318480">Светло синьо-зелено и бяло</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Файл}other{# файла}}</translation> <translation id="326999365752735949">Файлът с разликите се изтегля</translation> @@ -4290,6 +4292,7 @@ <translation id="4950993567860689081">Сесията се управлява от организацията ви. Администраторите могат да изтрият потребителския ви профил и да следят трафика ви в мрежата.</translation> <translation id="495164417696120157">{COUNT,plural, =1{файл}other{# файла}}</translation> <translation id="495170559598752135">Действия</translation> +<translation id="4951966678293618079">Без запазване на паролите за този сайт</translation> <translation id="4953808748584563296">Стандартен оранжев аватар</translation> <translation id="4955710816792587366">Изберете ПИН код</translation> <translation id="4959262764292427323">Паролите се запазват в профила ви в Google, за да можете да ги използвате на всяко устройство</translation> @@ -4319,6 +4322,7 @@ <translation id="4981449534399733132">За да изчистите данните за сърфирането от всичките си синхронизирани устройства и от профила си в Google, <ph name="BEGIN_LINK" />влезте в него<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Продължавайте оттам, откъдето сте прекъснали – на което и да е устройство</translation> <translation id="4982236238228587209">Софтуер на устройството</translation> +<translation id="4986706507552097681">Винаги можете да изберете какво да се синхронизира от настройките. Google може да персонализира Търсене и други услуги въз основа на историята ви.</translation> <translation id="4986728572522335985">Това ще изтрие всички данни на ключа за сигурност, включително ПИН кода му</translation> <translation id="4988526792673242964">Страници</translation> <translation id="49896407730300355">Завъртане о&братно на часовниковата стрелка</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index c163989d..a6bc15d 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -2387,6 +2387,7 @@ <translation id="3143515551205905069">সিঙ্ক বাতিল করুন</translation> <translation id="3143754809889689516">শুরু থেকে চালান</translation> <translation id="3144647712221361880">এই হিসেবে লিঙ্ক খুলুন</translation> +<translation id="3144896554017119333">এক্সটেনশন এবং আরও অনেক কিছু</translation> <translation id="3149510190863420837">Chrome অ্যাপগুলি</translation> <translation id="3150693969729403281">এখনই নিরাপত্তা সংক্রান্ত পরীক্ষা চালান</translation> <translation id="3150927491400159470">কঠিন রিলোড</translation> @@ -2495,6 +2496,7 @@ <translation id="3268451620468152448">ওপেন ট্যাব</translation> <translation id="3269093882174072735">ছবি লোড করুন</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> দেখতে চাই না</translation> +<translation id="3269175001434213183">আপনার ডেটার ব্যাক-আপ নিতে এবং যেকোনও ডিভাইসে তা ব্যবহার করার জন্য সিঙ্ক চালু করুন</translation> <translation id="3269612321104318480">হালকা নীলাভ সবুজ ও সাদা</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ফাইল}one{#টি ফাইল}other{#টি ফাইল}}</translation> <translation id="326999365752735949">ভিন্ন ডাউনলোড হচ্ছে</translation> @@ -4295,6 +4297,7 @@ <translation id="4950993567860689081">আপনার প্রতিষ্ঠান সেশন ম্যানেজ করে। অ্যাডমিনিস্ট্রেটররা আপনার প্রোফাইল মুছে দিতে এবং আপনার নেটওয়ার্ক ট্রাফিক মনিটর করতে পারেন।</translation> <translation id="495164417696120157">{COUNT,plural, =1{একটি ফাইল}one{#টি ফাইল}other{#টি ফাইল}}</translation> <translation id="495170559598752135">ক্রিয়াসমূহ</translation> +<translation id="4951966678293618079">এই সাইটের জন্য কখনও পাসওয়ার্ড সেভ করবেন না</translation> <translation id="4953808748584563296">ডিফল্ট কমলা রঙের অবতার</translation> <translation id="4955710816792587366">আপনার পিন বেছে নিন</translation> <translation id="4959262764292427323">পাসওয়ার্ডগুলি আপনার Google অ্যাকাউন্টে সেভ করা হয়েছে যাতে আপনি আপনার যেকোনও ডিভাইসে সেগুলি ব্যবহার করতে পারেন</translation> @@ -4324,6 +4327,7 @@ <translation id="4981449534399733132">আপনার সিঙ্ক করা সমস্ত ডিভাইস এবং Google অ্যাকাউন্ট থেকে ব্রাউজিং ডেটা খালি করার জন্য <ph name="BEGIN_LINK" />সাইন-ইন করুন<ph name="END_LINK" />।</translation> <translation id="4982111327868342436">আপনি যেখানে শেষ করেছেন, যেকোনও ডিভাইসে সেখান থেকে শুরু করুন</translation> <translation id="4982236238228587209">ডিভাইসের সফ্টওয়্যার</translation> +<translation id="4986706507552097681">সেটিংসে কী সিঙ্ক করা হবে তা আপনি সবসময় বেছে নিতে পারেন। আপনার ইতিহাসের উপরে ভিত্তি করে, সার্চ ও অন্যান্য পরিষেবা পছন্দমতো করে তুলতে Google এই ডেটা ব্যবহার করতে পারে।</translation> <translation id="4986728572522335985">এটি পিন সহ নিরাপত্তা কীয়ে সেভ করা সব ডেটা মুছে দেবে</translation> <translation id="4988526792673242964">পৃষ্ঠাসমূহ</translation> <translation id="49896407730300355">ঘড়ির কাঁটার &বিপরীত দিকে ঘোরান</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index ceea77c..e84364a 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -2371,6 +2371,7 @@ <translation id="3143515551205905069">Cancel·la la sincronització</translation> <translation id="3143754809889689516">Reprodueix des del principi</translation> <translation id="3144647712221361880">Obre l'enllaç com a</translation> +<translation id="3144896554017119333">Extensions i més</translation> <translation id="3149510190863420837">Aplicacions de Chrome</translation> <translation id="3150693969729403281">Executa la comprovació de seguretat ara</translation> <translation id="3150927491400159470">Torna a carregar de manera forçada</translation> @@ -2479,6 +2480,7 @@ <translation id="3268451620468152448">Pestanyes obertes</translation> <translation id="3269093882174072735">Carrega la imatge</translation> <translation id="326911502853238749">No mostris <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Activa la sincronització per crear una còpia de seguretat de les teves dades i utilitza-les en qualsevol dispositiu</translation> <translation id="3269612321104318480">Verd blavós clar i blanc</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fitxer}other{# fitxers}}</translation> <translation id="326999365752735949">S'està baixant la diferència.</translation> @@ -4276,6 +4278,7 @@ <translation id="4950993567860689081">La sessió està gestionada per la teva organització. Els administradors poden suprimir el teu perfil i també monitorar el teu trànsit de xarxa.</translation> <translation id="495164417696120157">{COUNT,plural, =1{1 fitxer}other{# fitxers}}</translation> <translation id="495170559598752135">Accions</translation> +<translation id="4951966678293618079">No desis mai les contrasenyes d'aquest lloc web</translation> <translation id="4953808748584563296">Avatar taronja predeterminat</translation> <translation id="4955710816792587366">Tria un PIN</translation> <translation id="4959262764292427323">Les contrasenyes es desen al Compte de Google perquè les puguis utilitzar en tots els dispositius</translation> @@ -4305,6 +4308,7 @@ <translation id="4981449534399733132">Per esborrar les dades de navegació de tots els dispositius sincronitzats i del Compte de Google, <ph name="BEGIN_LINK" />inicia la sessió<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Continua des d'on ho hagis deixat en qualsevol dispositiu</translation> <translation id="4982236238228587209">Programari del dispositiu</translation> +<translation id="4986706507552097681">Sempre pots anar a la configuració per decidir què vols sincronitzar. És possible que Google personalitzi la Cerca i altres serveis en funció del teu historial.</translation> <translation id="4986728572522335985">Amb aquesta acció se suprimiran totes les dades de la clau de seguretat, inclòs el PIN</translation> <translation id="4988526792673242964">Pàgines</translation> <translation id="49896407730300355">Gira en el sentit con&trari a les agulles del rellotge</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 94b00413..5dd486b 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -2373,6 +2373,7 @@ <translation id="3143515551205905069">Zrušit synchronizaci</translation> <translation id="3143754809889689516">Přehrát od začátku</translation> <translation id="3144647712221361880">Otevřít odkaz jako</translation> +<translation id="3144896554017119333">Rozšíření a další</translation> <translation id="3149510190863420837">Aplikace Chrome</translation> <translation id="3150693969729403281">Spustit bezpečnostní kontrolu</translation> <translation id="3150927491400159470">Úplné opětovné načtení</translation> @@ -2481,6 +2482,7 @@ <translation id="3268451620468152448">Otevřené karty</translation> <translation id="3269093882174072735">Načíst obrázek</translation> <translation id="326911502853238749">Nezobrazovat <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Pokud si své věci chcete zálohovat a používat je na kterémkoliv zařízení, zapněte synchronizaci</translation> <translation id="3269612321104318480">Světle tyrkysová a bílá</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Soubor}few{# soubory}many{# souboru}other{# souborů}}</translation> <translation id="326999365752735949">Stahování souboru diff</translation> @@ -4278,6 +4280,7 @@ <translation id="4950993567860689081">Vaši relaci spravuje vaše organizace. Administrátoři mohou smazat váš profil a také sledovat síťový provoz.</translation> <translation id="495164417696120157">{COUNT,plural, =1{soubor}few{# soubory}many{# souboru}other{# souborů}}</translation> <translation id="495170559598752135">Akce</translation> +<translation id="4951966678293618079">Pro tento web hesla nikdy neukládat</translation> <translation id="4953808748584563296">Výchozí oranžový avatar</translation> <translation id="4955710816792587366">Zvolte kód PIN</translation> <translation id="4959262764292427323">Hesla se ukládají do vašeho účtu Google, abyste je mohli používat na všech zařízeních</translation> @@ -4307,6 +4310,7 @@ <translation id="4981449534399733132">Chcete-li vymazat údaje o prohlížení ze všech synchronizovaných zařízení i z účtu Google, <ph name="BEGIN_LINK" />přihlaste se<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Pokračujte v kterémkoli zařízení tam, kde jste přestali</translation> <translation id="4982236238228587209">Software zařízení</translation> +<translation id="4986706507552097681">Synchronizované položky můžete kdykoliv vybrat v nastavení. Google může personalizovat Vyhledávání a další služby na základě vaší historie.</translation> <translation id="4986728572522335985">Touto akcí vymažete veškerá data na bezpečnostním klíči, včetně jeho kódu PIN</translation> <translation id="4988526792673242964">Stránky</translation> <translation id="49896407730300355">Otočit &proti směru hodinových ručiček</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index 224a443..2cc41602 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -2389,6 +2389,7 @@ <translation id="3143515551205905069">Canslo cysoni</translation> <translation id="3143754809889689516">Chwarae o'r dechrau</translation> <translation id="3144647712221361880">Agor Dolen fel</translation> +<translation id="3144896554017119333">Estyniadau a rhagor</translation> <translation id="3149510190863420837">Apiau Chrome</translation> <translation id="3150693969729403281">Rhedeg y gwiriad diogelwch nawr</translation> <translation id="3150927491400159470">Ail-lwytho Caled</translation> @@ -2497,6 +2498,7 @@ <translation id="3268451620468152448">Tabiau sydd ar Agor</translation> <translation id="3269093882174072735">Llwytho llun</translation> <translation id="326911502853238749">Peidio â dangos <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Trowch gysoni ymlaen i wneud copïau wrth gefn o'ch pethau a'u defnyddio ar unrhyw ddyfais</translation> <translation id="3269612321104318480">Gwyrddlas a gwyn golau</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Ffeil}zero{# ffeil}two{# ffeil}few{# ffeil}many{# ffeil}other{# ffeil}}</translation> <translation id="326999365752735949">Wrthi'n lawrlwytho ffeil diff</translation> @@ -4296,6 +4298,7 @@ <translation id="4950993567860689081">Rheolir eich sesiwn gan eich sefydliad Gall gweinyddwyr ddileu eich proffil a hefyd monitro traffig eich rhwydwaith.</translation> <translation id="495164417696120157">{COUNT,plural, =1{ffeil}zero{# ffeil}two{# ffeil}few{# ffeil}many{# ffeil}other{# ffeil}}</translation> <translation id="495170559598752135">Gweithrediadau</translation> +<translation id="4951966678293618079">Peidio byth â chadw cyfrineiriau ar gyfer y wefan hon</translation> <translation id="4953808748584563296">Rhithffurf oren diofyn</translation> <translation id="4955710816792587366">Dewiswch eich PIN</translation> <translation id="4959262764292427323">Mae cyfrineiriau'n cael eu cadw i'ch Cyfrif Google fel y gallwch eu defnyddio ar unrhyw ddyfais</translation> @@ -4325,6 +4328,7 @@ <translation id="4981449534399733132">Er mwyn clirio data pori o'ch holl ddyfeisiau sydd wedi'u cysoni a'ch Cyfrif Google, <ph name="BEGIN_LINK" />mewngofnodwch<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Parhau lle y gwnaethoch adael ar unrhyw ddyfais</translation> <translation id="4982236238228587209">Meddalwedd dyfais</translation> +<translation id="4986706507552097681">Gallwch bob amser ddewis beth i'w gysoni yn y gosodiadau. Gall Google bersonoleiddio Search a gwasanaethau eraill yn seiliedig ar eich hanes.</translation> <translation id="4986728572522335985">Bydd hyn yn dileu'r holl ddata ar yr allwedd ddiogelwch, gan gynnwys ei PIN</translation> <translation id="4988526792673242964">Tudalennau</translation> <translation id="49896407730300355">Cylchdroi yn w&rthglocwedd</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 051f67c..5208d87 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -2368,6 +2368,7 @@ <translation id="3143515551205905069">Synchronisierung abbrechen</translation> <translation id="3143754809889689516">Von vorne abspielen</translation> <translation id="3144647712221361880">Link öffnen als</translation> +<translation id="3144896554017119333">Erweiterungen und mehr</translation> <translation id="3149510190863420837">Chrome-Apps</translation> <translation id="3150693969729403281">Sicherheitscheck jetzt durchführen</translation> <translation id="3150927491400159470">Vollständiges Aktualisieren (Hard Reload)</translation> @@ -2476,6 +2477,7 @@ <translation id="3268451620468152448">Geöffnete Tabs</translation> <translation id="3269093882174072735">Bild laden</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> ausblenden</translation> +<translation id="3269175001434213183">Synchronisierung aktivieren, um deine Inhalte zu sichern und auf jedem Gerät zu verwenden</translation> <translation id="3269612321104318480">Helles Blaugrün und Weiß</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Datei}other{# Dateien}}</translation> <translation id="326999365752735949">DIFF-Datei wird heruntergeladen.</translation> @@ -3737,6 +3739,7 @@ <translation id="445099924538929605"><ph name="DEVICE_OS" /> hat ein aktives TPM erkannt, das deine Daten sicherer speichern kann.</translation> <translation id="4451479197788154834">Dein Passwort ist auf diesem Gerät und in deinem Google-Konto gespeichert</translation> <translation id="4451757071857432900">Auf Websites blockiert, die aufdringliche oder irreführende Werbung anzeigen (empfohlen)</translation> +<translation id="4452898361839215358">oder PPD-Datei auswählen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="4453946976636652378">Mit <ph name="SEARCH_ENGINE_NAME" /> suchen oder eine URL eingeben</translation> <translation id="4458535500699390320">Während dieser Tab inaktiv war, hat der Arbeitsspeicher-Sparmodus Arbeitsspeicher für andere Aufgaben freigegeben. Du kannst dies jederzeit in den Einstellungen ändern.</translation> <translation id="4459169140545916303">Vor <ph name="DEVICE_LAST_ACTIVATED_TIME" /> Tagen aktiv</translation> @@ -4273,6 +4276,7 @@ <translation id="4950993567860689081">Deine Sitzung wird von deiner Organisation verwaltet. Administratoren können dein Profil löschen und auch deinen Netzwerkverkehr ansehen.</translation> <translation id="495164417696120157">{COUNT,plural, =1{eine Datei}other{# Dateien}}</translation> <translation id="495170559598752135">Aktionen</translation> +<translation id="4951966678293618079">Passwörter für diese Website niemals speichern</translation> <translation id="4953808748584563296">Orangefarbener Standardavatar</translation> <translation id="4955710816792587366">PIN wählen</translation> <translation id="4959262764292427323">Passwörter werden in deinem Google-Konto gespeichert, sodass du sie auf jedem Gerät verwenden kannst</translation> @@ -4302,6 +4306,7 @@ <translation id="4981449534399733132">Wenn du Browserdaten von allen deinen synchronisierten Geräten und aus deinem Google-Konto löschen möchtest, <ph name="BEGIN_LINK" />melde dich an<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Weitermachen, wo du aufgehört hast – auf jedem Gerät</translation> <translation id="4982236238228587209">Gerätesoftware</translation> +<translation id="4986706507552097681">In den Einstellungen kannst du auswählen, was synchronisiert werden soll. Google kann die Google Suche und andere Dienste auf der Grundlage deines Verlaufs personalisieren.</translation> <translation id="4986728572522335985">Damit werden alle Daten auf dem Sicherheitsschlüssel und die dazugehörige PIN gelöscht</translation> <translation id="4988526792673242964">Seiten</translation> <translation id="49896407730300355">&Gegen den Uhrzeigersinn drehen</translation> @@ -8362,6 +8367,7 @@ <translation id="8823514049557262177">Linkte&xt kopieren</translation> <translation id="8823559166155093873">Cookies blockieren</translation> <translation id="8823704566850948458">Passwort vorschlagen…</translation> +<translation id="8823963789776061136">Alternativ kannst du die PPD-Datei des Druckers auswählen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> <translation id="8824701697284169214">&Seite hinzufügen...</translation> <translation id="8827125715368568315"><ph name="PERMISSION" /> und <ph name="COUNT" /> weitere blockiert</translation> <translation id="8827289157496676362">Erweiterung anpinnen</translation> @@ -8618,6 +8624,7 @@ <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> möchte auf die folgenden Inhalte zugreifen:</translation> <translation id="9057354806206861646">Aktualisierungszeitplan</translation> <translation id="9058070466596314168">{NUM_NOTIFICATION,plural, =1{Etwa 1 Benachrichtigung pro Tag}other{Etwa {NUM_NOTIFICATION} Benachrichtigungen pro Tag}}</translation> +<translation id="9058760336383947367">Drucker-PPD-Datei ansehen</translation> <translation id="9061383912634843744">Die automatische Anmeldung bei Websites und Apps ist bei gespeicherten Anmeldedaten verfügbar. Wenn diese Funktion deaktiviert ist, musst du bei jeder Anmeldung bei einer Website oder App deine Anmeldedaten eingeben.</translation> <translation id="9062468308252555888">14-fach</translation> <translation id="9063208415146866933">Fehler von Zeile <ph name="ERROR_LINE_START" /> bis <ph name="ERROR_LINE_END" /></translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 221a912..bde6401 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1204,6 +1204,7 @@ <translation id="208928984520943006">To get to the home screen at any time, swipe up from the bottom.</translation> <translation id="2089566709556890888">Browse safely with Google Chrome</translation> <translation id="2089795179672254991">Ask when a site wants to see text and images copied to the clipboard (recommended)</translation> +<translation id="2089925163047119068">OR</translation> <translation id="2090165459409185032">To recover your account information, go to: google.com/accounts/recovery</translation> <translation id="2090507354966565596">Automatically connects when you log in</translation> <translation id="2090876986345970080">System security setting</translation> @@ -2767,6 +2768,7 @@ <translation id="3514373592552233661">Preferred networks will be preferred over other known networks if more than one is available</translation> <translation id="3514647716686280777">You're getting standard security protection. To get more protection against dangerous websites, downloads and extensions, turn on Enhanced Safe Browsing in Chrome settings.</translation> <translation id="3515983984924808886">Touch your security key again to confirm reset. All information stored on the security key, including its PIN, will be deleted.</translation> +<translation id="3518866566087677312">Bookmark things you want to come back to later</translation> <translation id="3518985090088779359">Accept & continue</translation> <translation id="3519564332031442870">Print backend service</translation> <translation id="3519938335881974273">Save page as…</translation> @@ -6978,6 +6980,7 @@ <translation id="7515998400212163428">Android</translation> <translation id="7516981202574715431"><ph name="APP_NAME" /> is paused</translation> <translation id="7520766081042531487">Incognito portal: <ph name="SUBFRAME_SITE" /></translation> +<translation id="752098910262610337">Show shortcuts</translation> <translation id="7522255036471229694">Say 'Ok Google'</translation> <translation id="7523585675576642403">Rename profile</translation> <translation id="7525067979554623046">Create</translation> @@ -7947,6 +7950,7 @@ <translation id="8389492867173948260">Allow this extension to read and change all your data on websites that you visit:</translation> <translation id="8390449457866780408">Server unavailable.</translation> <translation id="8391218455464584335">Vinyl</translation> +<translation id="8392726714909453725">Select-to-speak settings</translation> <translation id="8393511274964623038">Stop plug-in</translation> <translation id="839363317075970734">Bluetooth device details</translation> <translation id="8393700583063109961">Send message</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 9862ff3..9fa17c6 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -2368,6 +2368,7 @@ <translation id="3143515551205905069">Cancelar sincronización</translation> <translation id="3143754809889689516">Reproducir desde el principio</translation> <translation id="3144647712221361880">Abrir vínculo como</translation> +<translation id="3144896554017119333">Extensiones y más</translation> <translation id="3149510190863420837">Aplicaciones de Chrome</translation> <translation id="3150693969729403281">Ejecuta la verificación de seguridad ahora</translation> <translation id="3150927491400159470">Volver a cargar de manera forzada</translation> @@ -2476,6 +2477,7 @@ <translation id="3268451620468152448">Pestañas abiertas</translation> <translation id="3269093882174072735">Cargar imagen</translation> <translation id="326911502853238749">No mostrar <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Activa la sincronización para crear una copia de seguridad de tus datos y usarlos en cualquier dispositivo</translation> <translation id="3269612321104318480">Verde azulado claro y blanco</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Archivo}other{# archivos}}</translation> <translation id="326999365752735949">Descargando diff</translation> @@ -4274,6 +4276,7 @@ <translation id="4950993567860689081">Tu organización administra la sesión. Los administradores pueden borrar tu perfil y supervisar el tráfico de red.</translation> <translation id="495164417696120157">{COUNT,plural, =1{un archivo}other{# archivos}}</translation> <translation id="495170559598752135">Acciones</translation> +<translation id="4951966678293618079">Nunca guardar contraseñas para este sitio</translation> <translation id="4953808748584563296">Avatar naranja predeterminado</translation> <translation id="4955710816792587366">Elige un PIN</translation> <translation id="4959262764292427323">Las contraseñas se guardan en tu cuenta de Google para que puedas usarlas en cualquier dispositivo</translation> @@ -4303,6 +4306,7 @@ <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu Cuenta de Google, <ph name="BEGIN_LINK" />accede a ella<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Continúa desde donde te detuviste en cualquier dispositivo</translation> <translation id="4982236238228587209">Software del dispositivo</translation> +<translation id="4986706507552097681">En la configuración, puedes elegir los datos para sincronizar en cualquier momento. Es posible que Google personalice la Búsqueda y otros servicios en función de tu Historial.</translation> <translation id="4986728572522335985">Esta acción borrará todos los datos de la llave de seguridad, incluido su PIN</translation> <translation id="4988526792673242964">Páginas</translation> <translation id="49896407730300355">Girar &a la izquierda</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index e6a1d84..3b376fb 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -2372,6 +2372,7 @@ <translation id="3143515551205905069">Cancelar sincronización</translation> <translation id="3143754809889689516">Reproducir desde el principio</translation> <translation id="3144647712221361880">Abrir enlace como</translation> +<translation id="3144896554017119333">Extensiones y más</translation> <translation id="3149510190863420837">Aplicaciones de Chrome</translation> <translation id="3150693969729403281">Comprobar seguridad ahora</translation> <translation id="3150927491400159470">Volver a cargar de manera forzada</translation> @@ -2480,6 +2481,7 @@ <translation id="3268451620468152448">Pestañas abiertas</translation> <translation id="3269093882174072735">Cargar imagen</translation> <translation id="326911502853238749">No mostrar <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Activa la sincronización para crear una copia de seguridad de tus cosas y usarla en cualquier dispositivo</translation> <translation id="3269612321104318480">Turquesa claro y blanco</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Archivo}other{# archivos}}</translation> <translation id="326999365752735949">Descargando archivo diff</translation> @@ -4277,6 +4279,7 @@ <translation id="4950993567860689081">Tu organización gestiona tu sesión. Los administradores pueden eliminar tu perfil y monitorizar tu tráfico de red.</translation> <translation id="495164417696120157">{COUNT,plural, =1{un archivo}other{# archivos}}</translation> <translation id="495170559598752135">Acciones</translation> +<translation id="4951966678293618079">Nunca guardar contraseñas de este sitio</translation> <translation id="4953808748584563296">Avatar naranja predeterminado</translation> <translation id="4955710816792587366">Elige un PIN</translation> <translation id="4959262764292427323">Las contraseñas se guardan en tu cuenta de Google para que puedas utilizarlas en cualquier dispositivo</translation> @@ -4306,6 +4309,7 @@ <translation id="4981449534399733132">Para borrar los datos de navegación de todos los dispositivos sincronizados y de tu cuenta de Google, <ph name="BEGIN_LINK" />inicia sesión<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Sigue por donde lo dejaste en cualquier dispositivo</translation> <translation id="4982236238228587209">Software del dispositivo</translation> +<translation id="4986706507552097681">Siempre puedes seleccionar qué contenido quieres sincronizar en los ajustes. Google puede personalizar la Búsqueda y otros servicios en función de tu historial.</translation> <translation id="4986728572522335985">Esta acción borrará todos los datos de la llave de seguridad, incluido el PIN</translation> <translation id="4988526792673242964">Páginas</translation> <translation id="49896407730300355">Girar a la &izquierda</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index ca40d2b2..0be7729 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -2377,6 +2377,7 @@ <translation id="3143515551205905069">Tühista sünkroonimine</translation> <translation id="3143754809889689516">Esita algusest</translation> <translation id="3144647712221361880">Ava link kasutajana</translation> +<translation id="3144896554017119333">Laiendused ja muu</translation> <translation id="3149510190863420837">Chrome'i rakendused</translation> <translation id="3150693969729403281">Käitage ohutuskontrolli kohe</translation> <translation id="3150927491400159470">Põhjalik uuestilaadimine</translation> @@ -2485,6 +2486,7 @@ <translation id="3268451620468152448">Avatud vahelehed</translation> <translation id="3269093882174072735">Laadi kujutis</translation> <translation id="326911502853238749">Ära näita järgmist: <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Lülitage sünkroonimine sisse, et oma sisu varundada ja seda mis tahes seadmes kasutada</translation> <translation id="3269612321104318480">Helesinakasroheline ja valge</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fail}other{# faili}}</translation> <translation id="326999365752735949">Erinevuste allalaadimine</translation> @@ -4283,6 +4285,7 @@ <translation id="4950993567860689081">Teie seanssi haldab teie organisatsioon. Administraatorid saavad teie profiili kustutada ning ka teie võrguliiklust jälgida.</translation> <translation id="495164417696120157">{COUNT,plural, =1{fail}other{# faili}}</translation> <translation id="495170559598752135">Toimingud</translation> +<translation id="4951966678293618079">Ära kunagi salvesta sellel saidil paroole</translation> <translation id="4953808748584563296">Oranž vaikeavatar</translation> <translation id="4955710816792587366">Valige PIN-kood</translation> <translation id="4959262764292427323">Paroolid salvestatakse teie Google'i kontole, et saaksite neid kasutada mis tahes seadmes</translation> @@ -4312,6 +4315,7 @@ <translation id="4981449534399733132">Sirvimisandmete kustutamiseks kõigist sünkroonitud seadmetest ja oma Google'i kontolt <ph name="BEGIN_LINK" />logige sisse<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Jätkake pooleliolevat tegevust mis tahes seadmes</translation> <translation id="4982236238228587209">Seadme tarkvara</translation> +<translation id="4986706507552097681">Jaotises Seaded saate igal ajal valida, mida sünkroonida. Google võib Otsingut ja muid teenuseid teie ajaloo alusel isikupärastada.</translation> <translation id="4986728572522335985">See kustutab kõik turvavõtmel olevad andmed, sh selle PIN-koodi</translation> <translation id="4988526792673242964">Leheküljed</translation> <translation id="49896407730300355">Pööra &vastupäeva</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 753a778..57d55a8 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -2371,6 +2371,7 @@ <translation id="3143515551205905069">Utzi sinkronizazioa bertan behera</translation> <translation id="3143754809889689516">Erreproduzitu hasieratik</translation> <translation id="3144647712221361880">Ireki esteka honela:</translation> +<translation id="3144896554017119333">Luzapenak eta beste</translation> <translation id="3149510190863420837">Chrome-ren aplikazioak</translation> <translation id="3150693969729403281">Egin segurtasun-egiaztapena</translation> <translation id="3150927491400159470">Behartu berriro kargatzera</translation> @@ -2479,6 +2480,7 @@ <translation id="3268451620468152448">Ireki fitxak</translation> <translation id="3269093882174072735">Kargatu irudia</translation> <translation id="326911502853238749">Ez erakutsi <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Aktibatu sinkronizazioa, zure gauzen babeskopiak egin eta edozein gailutan erabil ditzazun</translation> <translation id="3269612321104318480">Anil argia eta zuria</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fitxategia}other{# fitxategi}}</translation> <translation id="326999365752735949">Aldea deskargatzen</translation> @@ -4277,6 +4279,7 @@ <translation id="4950993567860689081">Erakundeak kudeatzen du saioa. Administratzaileek zure profila ezaba dezakete, eta sareko trafikoa gainbegiratu.</translation> <translation id="495164417696120157">{COUNT,plural, =1{fitxategi bat}other{# fitxategi}}</translation> <translation id="495170559598752135">Ekintzak</translation> +<translation id="4951966678293618079">Ez gorde webgune honetako pasahitzak inoiz</translation> <translation id="4953808748584563296">Abatar laranja lehenetsia</translation> <translation id="4955710816792587366">Aukeratu PIN bat</translation> <translation id="4959262764292427323">Pasahitzak Google-ko kontuan gordetzen dira, edozein gailutan eskura izan ditzazun</translation> @@ -4306,6 +4309,7 @@ <translation id="4981449534399733132">Sinkronizatutako gailu guztietako eta zure Google-ko kontuko arakatze-datuak garbitzeko, <ph name="BEGIN_LINK" />hasi saioa<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Berrekin partidari utzitako tokitik edozein gailu erabilita</translation> <translation id="4982236238228587209">Gailuaren softwarea</translation> +<translation id="4986706507552097681">Zer sinkronizatu nahi duzun aukeratzeko, joan Ezarpenak atalera. Baliteke Google-k Bilaketa eta beste zerbitzu batzuk pertsonalizatzea zure historiaren arabera.</translation> <translation id="4986728572522335985">Segurtasun-giltzako datu guztiak ezabatuko dira, baita PINa ere</translation> <translation id="4988526792673242964">Orriak</translation> <translation id="49896407730300355">Biratu e&rlojuaren orratzen aurka</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 7e6e93c..f41ed43c 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -2385,6 +2385,7 @@ <translation id="3143515551205905069">Peru synkronointi</translation> <translation id="3143754809889689516">Toista alusta</translation> <translation id="3144647712221361880">Avaa linkki käyttäjänä</translation> +<translation id="3144896554017119333">Laajennukset ja paljon muuta</translation> <translation id="3149510190863420837">Chrome-sovellukset</translation> <translation id="3150693969729403281">Tee turvatarkistus nyt</translation> <translation id="3150927491400159470">Pakotettu päivitys</translation> @@ -2493,6 +2494,7 @@ <translation id="3268451620468152448">Avoimet välilehdet</translation> <translation id="3269093882174072735">Lataa kuva</translation> <translation id="326911502853238749">Älä näytä: <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Laita synkronointi päälle, niin voit varmuuskopioida sisältösi ja käyttää sitä millä tahansa laitteella</translation> <translation id="3269612321104318480">Vaalea turkoosi ja valkoinen</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Tiedosto}other{# tiedostoa}}</translation> <translation id="326999365752735949">Ladataan muutostiedostoa</translation> @@ -4289,6 +4291,7 @@ <translation id="4950993567860689081">Organisaatiosi hallinnoi istuntoa. Järjestelmänvalvojat voivat poistaa profiilisi ja seurata verkkoliikennettäsi.</translation> <translation id="495164417696120157">{COUNT,plural, =1{tiedosto}other{# tiedostoa}}</translation> <translation id="495170559598752135">Toiminnot</translation> +<translation id="4951966678293618079">Älä koskaan tallenna tämän sivuston salasanoja</translation> <translation id="4953808748584563296">Oranssi oletusavatar</translation> <translation id="4955710816792587366">Valitse PIN-koodi</translation> <translation id="4959262764292427323">Salasanat tallennetaan Google-tilillesi, jotta voit käyttää niitä kaikilla laitteilla</translation> @@ -4318,6 +4321,7 @@ <translation id="4981449534399733132">Jos haluat poistaa selailutiedot kaikilta synkronoiduilta laitteiltasi ja Google-tililtäsi, <ph name="BEGIN_LINK" />kirjaudu sisään<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Jatka millä tahansa laitteella siitä, mihin jäit</translation> <translation id="4982236238228587209">Laiteohjelmisto</translation> +<translation id="4986706507552097681">Voit valita synkronoitavan sisällön asetuksissa. Google voi personoida Hakua ja muita palveluita historiasi perusteella.</translation> <translation id="4986728572522335985">Tämä poistaa kaiken suojausavaimen datan, mukaan lukien sen PIN-koodin</translation> <translation id="4988526792673242964">Sivut</translation> <translation id="49896407730300355">Käännä &vastapäivään</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 2d081ed7..061d303c 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -2372,6 +2372,7 @@ <translation id="3143515551205905069">Annuler la synchronisation</translation> <translation id="3143754809889689516">Lire depuis le début</translation> <translation id="3144647712221361880">Ouvrir le lien avec le compte</translation> +<translation id="3144896554017119333">Extensions et autres</translation> <translation id="3149510190863420837">Applications Chrome</translation> <translation id="3150693969729403281">Lancer le contrôle de sécurité</translation> <translation id="3150927491400159470">Actualisation forcée</translation> @@ -2480,6 +2481,7 @@ <translation id="3268451620468152448">Onglets ouverts</translation> <translation id="3269093882174072735">Charger l'image</translation> <translation id="326911502853238749">Ne pas afficher <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Activer la synchronisation pour sauvegarder vos données et les utiliser sur n'importe quel appareil</translation> <translation id="3269612321104318480">Turquoise clair et blanc</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fichier}one{# fichier}other{# fichiers}}</translation> <translation id="326999365752735949">Différence de téléchargement</translation> @@ -4278,6 +4280,7 @@ <translation id="4950993567860689081">Votre session est gérée par votre organisation. Les administrateurs peuvent supprimer votre profil et surveiller votre trafic réseau.</translation> <translation id="495164417696120157">{COUNT,plural, =1{un fichier}one{# fichier}other{# fichiers}}</translation> <translation id="495170559598752135">Actions</translation> +<translation id="4951966678293618079">Ne jamais enregistrer les mots de passe pour ce site</translation> <translation id="4953808748584563296">Avatar orange par défaut</translation> <translation id="4955710816792587366">Configurer un code</translation> <translation id="4959262764292427323">Les mots de passe sont enregistrés dans votre compte Google, afin que vous puissiez les utiliser sur tous vos appareils</translation> @@ -4307,6 +4310,7 @@ <translation id="4981449534399733132">Pour effacer les données de navigation sur tous vos appareils synchronisés et dans votre compte Google, <ph name="BEGIN_LINK" />connectez-vous<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Reprenez là où vous en étiez sur n'importe quel appareil</translation> <translation id="4982236238228587209">Logiciels de l'appareil</translation> +<translation id="4986706507552097681">Vous avez toujours la possibilité de sélectionner les éléments à synchroniser dans les paramètres. Google peut personnaliser la recherche et d'autres services en fonction de votre historique.</translation> <translation id="4986728572522335985">Cette opération supprimera toutes les données stockées sur la clé de sécurité, y compris son code</translation> <translation id="4988526792673242964">Pages</translation> <translation id="49896407730300355">Rotation &antihoraire</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 2f4a187e..76ebe95 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -2370,6 +2370,7 @@ <translation id="3143515551205905069">Cancelar sincronización</translation> <translation id="3143754809889689516">Reproducir desde o principio</translation> <translation id="3144647712221361880">Abrir ligazón como</translation> +<translation id="3144896554017119333">Extensións e máis</translation> <translation id="3149510190863420837">Aplicacións de Chrome</translation> <translation id="3150693969729403281">Realizar agora a comprobación de seguranza</translation> <translation id="3150927491400159470">Volver cargar de maneira forzada</translation> @@ -2478,6 +2479,7 @@ <translation id="3268451620468152448">Pestanas abertas</translation> <translation id="3269093882174072735">Cargar imaxe</translation> <translation id="326911502853238749">Non mostrar <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Activa a sincronización para facer unha copia de seguranza dos teus datos a fin de poder usalos en calquera dispositivo</translation> <translation id="3269612321104318480">Verde azulado claro e branco</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Ficheiro}other{# ficheiros}}</translation> <translation id="326999365752735949">Descargando ficheiro diff</translation> @@ -4276,6 +4278,7 @@ <translation id="4950993567860689081">A túa organización xestiona a túa sesión. Os administradores poden eliminar o teu perfil e tamén supervisar o tráfico da túa rede.</translation> <translation id="495164417696120157">{COUNT,plural, =1{1 ficheiro}other{# ficheiros}}</translation> <translation id="495170559598752135">Accións</translation> +<translation id="4951966678293618079">Non gardar nunca os contrasinais deste sitio</translation> <translation id="4953808748584563296">Avatar laranxa predeterminado</translation> <translation id="4955710816792587366">Escolle o PIN</translation> <translation id="4959262764292427323">Os contrasinais gárdanse na túa Conta de Google para que poidas usalos en calquera dispositivo</translation> @@ -4305,6 +4308,7 @@ <translation id="4981449534399733132">Para borrar os datos de navegación de todos os dispositivos sincronizados e da túa Conta de Google, tes que <ph name="BEGIN_LINK" />iniciar sesión<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Continúa en calquera dispositivo desde onde o deixases</translation> <translation id="4982236238228587209">Software do dispositivo</translation> +<translation id="4986706507552097681">Sempre podes escoller na configuración o contido que queres sincronizar. Google pode personalizar a Busca e outros servizos en función do teu historial.</translation> <translation id="4986728572522335985">Con esta opción, eliminaranse todos os datos almacenados na chave de seguranza, incluídos os PIN</translation> <translation id="4988526792673242964">Páxinas</translation> <translation id="49896407730300355">Xirar cara á es&querda</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 8c55c19..83cb4bc 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -2369,6 +2369,7 @@ <translation id="3143515551205905069">સિંક કરવાનું રદ કરો</translation> <translation id="3143754809889689516">શરૂઆતથી ચલાવો</translation> <translation id="3144647712221361880">આ રીતે લિંક ખોલો</translation> +<translation id="3144896554017119333">એક્સ્ટેન્શન અને બીજું ઘણું</translation> <translation id="3149510190863420837">Chrome ઍપ્લિકેશનો</translation> <translation id="3150693969729403281">હમણાં જ સલામતી માટે તપાસ ચલાવો</translation> <translation id="3150927491400159470">સખત રીતે ફરીથી લોડ કરો</translation> @@ -2477,6 +2478,7 @@ <translation id="3268451620468152448">ઓપન ટેબ્સ</translation> <translation id="3269093882174072735">છબી લોડ કરો</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> બતાવશો નહીં</translation> +<translation id="3269175001434213183">તમારી સામગ્રીનું બૅકઅપ લઈ કોઈપણ ડિવાઇસ પર તેનો ઉપયોગ કરવા માટે સિંકની સુવિધા ચાલુ કરો</translation> <translation id="3269612321104318480">આછો મોરપીંછ અને સફેદ</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ફાઇલ}one{# ફાઇલ}other{# ફાઇલ}}</translation> <translation id="326999365752735949">ડાઉનલોડનો તફાવત</translation> @@ -4275,6 +4277,7 @@ <translation id="4950993567860689081">તમારું સત્ર તમારી સંસ્થા દ્વારા મેનેજ થાય છે. ઍડમિનિસ્ટ્રેટર તમારી પ્રોફાઇલ ડિલીટ કરી શકે છે અને તમારા નેટવર્કનો ટ્રાફિક પણ મોનિટર કરી શકે છે.</translation> <translation id="495164417696120157">{COUNT,plural, =1{એક ફાઇલ}one{# ફાઇલ}other{# ફાઇલ}}</translation> <translation id="495170559598752135">ક્રિયાઓ</translation> +<translation id="4951966678293618079">આ સાઇટ માટે ક્યારેય પાસવર્ડ સાચવશો નહીં</translation> <translation id="4953808748584563296">ડિફોલ્ટ નારંગી અવતાર</translation> <translation id="4955710816792587366">તમારો પિન પસંદ કરો</translation> <translation id="4959262764292427323">પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવવામાં આવે છે, જેથી તમે કોઈપણ ઉપકરણ પર તેનો ઉપયોગ કરી શકો</translation> @@ -4304,6 +4307,7 @@ <translation id="4981449534399733132">તમારા બધા સિંક કરેલા ડિવાઇસ અને તમારા Google એકાઉન્ટમાંથી બ્રાઉઝિંગ ડેટા સાફ કરવા માટે, <ph name="BEGIN_LINK" />સાઇન ઇન કરો<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">કોઈપણ ડિવાઇસ પર તમે જ્યાંથી અધૂરું મૂક્યું હોય, ત્યાંથી શરૂ કરો</translation> <translation id="4982236238228587209">ડિવાઇસનું સૉફ્ટવેર</translation> +<translation id="4986706507552097681">શું સિંક કરવું તે હંમેશાં તમે સેટિંગમાં જઈને પસંદ કરી શકો છો. Google તમારા ઇતિહાસના આધારે Search અને અન્ય સેવાઓને મનગમતી બનાવી શકે છે.</translation> <translation id="4986728572522335985">સિક્યુરિટી કીના પિન સહિત, તેના પરના બધા ડેટાને આ ડિલીટ કરશે</translation> <translation id="4988526792673242964">પેજ</translation> <translation id="49896407730300355">ઘ&ડિયાળની વિપરિત દિશામાં ફેરવો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 6d4cdc7..f1bc2fc 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -2387,6 +2387,7 @@ <translation id="3143515551205905069">लिंक करना रोक दें</translation> <translation id="3143754809889689516">शुरू से चलाएं</translation> <translation id="3144647712221361880">लिंक को इस रूप में खोलें</translation> +<translation id="3144896554017119333">एक्सटेंशन वगैरह</translation> <translation id="3149510190863420837">Chrome ऐप्स</translation> <translation id="3150693969729403281">अभी सुरक्षा जांच करें</translation> <translation id="3150927491400159470">फिर से लोड करना मुश्किल</translation> @@ -2495,6 +2496,7 @@ <translation id="3268451620468152448">खुले सत्र</translation> <translation id="3269093882174072735">इमेज लोड करें</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> न दिखाएं</translation> +<translation id="3269175001434213183">कॉन्टेंट का बैक अप लेने और इसे किसी भी डिवाइस पर इस्तेमाल करने के लिए, सिंक करने की सुविधा चालू करें</translation> <translation id="3269612321104318480">हल्का नीला-हरा और सफ़ेद</translation> <translation id="3269689705184377744">{COUNT,plural, =1{फ़ाइल}one{# फ़ाइल}other{# फ़ाइलें}}</translation> <translation id="326999365752735949">अंतर डाउनलोड करना</translation> @@ -4292,6 +4294,7 @@ <translation id="4950993567860689081">आपका संगठन, आपके सेशन को मैनेज कर रहा है. एडमिन आपकी प्रोफ़ाइल मिटा सकते हैं और आपके नेटवर्क ट्रैफ़िक की निगरानी भी कर सकते हैं.</translation> <translation id="495164417696120157">{COUNT,plural, =1{एक फ़ाइल}one{# फ़ाइल}other{# फ़ाइलें}}</translation> <translation id="495170559598752135">क्रियाएं</translation> +<translation id="4951966678293618079">इस साइट के लिए कभी भी पासवर्ड सेव न करें</translation> <translation id="4953808748584563296">डिफ़ॉल्ट नारंगी अवतार</translation> <translation id="4955710816792587366">अनलॉक करने के लिए अपना पिन चुनें</translation> <translation id="4959262764292427323">पासवर्ड आपके Google खाते में सेव किए जाते हैं ताकि आप किसी भी डिवाइस पर उनका इस्तेमाल कर सकें</translation> @@ -4321,6 +4324,7 @@ <translation id="4981449534399733132">अपने सभी सिंक किए हुए डिवाइस और अपने 'Google खाते' से ब्राउज़िंग डेटा साफ़ करने के लिए, <ph name="BEGIN_LINK" />साइन इन करें<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">किसी भी डिवाइस पर, अपने काम को वहीं से शुरू करें जहां आपने उसे छोड़ा था</translation> <translation id="4982236238228587209">डिवाइस का सॉफ़्टवेयर</translation> +<translation id="4986706507552097681">जब चाहें, तब सेटिंग में जाकर यह चुनें कि क्या सिंक किया जाना चाहिए और क्या नहीं. Google आपके इतिहास के आधार पर, Search और अन्य सेवाओं को आपकी पसंद के मुताबिक बना सकता है.</translation> <translation id="4986728572522335985">ऐसा करने से सुरक्षा कुंजी का पिन और उस पर मौजूद पूरा डेटा मिट जाएगा</translation> <translation id="4988526792673242964">पेज</translation> <translation id="49896407730300355">घड़ी की &विपरीत दिशा में घुमाएं</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index 700f0cf..75789dbf 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -2373,6 +2373,7 @@ <translation id="3143515551205905069">Չեղարկել համաժամացումը</translation> <translation id="3143754809889689516">Նվագարկել սկզբից</translation> <translation id="3144647712221361880">Բացել հղումը որպես</translation> +<translation id="3144896554017119333">Ընդլայնումներ և ավելին</translation> <translation id="3149510190863420837">Chrome-ի հավելվածներ</translation> <translation id="3150693969729403281">Անցնել անվտանգության ստուգում</translation> <translation id="3150927491400159470">Նոր բեռնում սերվերից</translation> @@ -2481,6 +2482,7 @@ <translation id="3268451620468152448">Բաց ներդիրները</translation> <translation id="3269093882174072735">Բեռնել պատկերը</translation> <translation id="326911502853238749">Չցուցադրել <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Միացրեք համաժամացումը՝ ձեր տվյալները պահուստավորելու և ցանկացած սարքում օգտագործելու համար</translation> <translation id="3269612321104318480">Բաց փիրուզագույն և սպիտակ</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Ֆայլ}one{# ֆայլ}other{# ֆայլ}}</translation> <translation id="326999365752735949">Diff-ի ներբեռնում</translation> @@ -4280,6 +4282,7 @@ <translation id="4950993567860689081">Աշխատաշրջանը կառավարվում է ձեր կազմակերպության կողմից։ Ադմինիստրատորները կարող են ջնջել ձեր պրոֆիլը, ինչպես նաև վերահսկել ձեր ցանցի թրաֆիկը։</translation> <translation id="495164417696120157">{COUNT,plural, =1{ֆայլ}one{# ֆայլ}other{# ֆայլ}}</translation> <translation id="495170559598752135">Գործողություններ</translation> +<translation id="4951966678293618079">Երբեք չպահել գաղտնաբառեր այս կայքի համար</translation> <translation id="4953808748584563296">Կանխադրված նարնջագույն ավատար</translation> <translation id="4955710816792587366">Ընտրեք ձեր PIN-ը</translation> <translation id="4959262764292427323">Գաղտնաբառերը պահվում են ձեր Google հաշվում, որպեսզի կարողանաք օգտագործել դրանք ցանկացած սարքում</translation> @@ -4309,6 +4312,7 @@ <translation id="4981449534399733132">Այցելությունների պատմությունը բոլոր համաժամացված սարքերից և Google հաշվից ջնջելու համար <ph name="BEGIN_LINK" />մտեք հաշիվ<ph name="END_LINK" />:</translation> <translation id="4982111327868342436">Ցանկացած սարքում շարունակեք աշխատանքն այնտեղից, որտեղ կանգ էիք առել</translation> <translation id="4982236238228587209">Սարքի ծրագրեր</translation> +<translation id="4986706507552097681">Դուք ցանկացած ժամանակ կարող եք անցնել կարգավորումներ և ընտրել, թե ինչն եք ուզում համաժամացնել։ Google-ը կարող է ձեր պատմության հիման վրա անհատականացնել Որոնումը և այլ ծառայությունները։</translation> <translation id="4986728572522335985">Անվտանգության բանալու վրա պահված բոլոր տվյալները, այդ թվում՝ դրա PIN կոդերը կջնջվեն:</translation> <translation id="4988526792673242964">Էջեր</translation> <translation id="49896407730300355">Պտտել ժամացույցի &սլաքին հակառակ</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index d1c1b37..02a84e9 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -3755,6 +3755,7 @@ <translation id="445099924538929605">מערכת <ph name="DEVICE_OS" /> זיהתה TPM פעיל שניתן לשמור בו את הנתונים שלך באופן מאובטח יותר.</translation> <translation id="4451479197788154834">הסיסמה שלך שמורה במכשיר הזה ובחשבון Google שלך</translation> <translation id="4451757071857432900">חסומות באתרים שמוצגות בהם מודעות מפריעות או מטעות (מומלץ)</translation> +<translation id="4452898361839215358">או לבחור קובץ PPD חדש. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="4453946976636652378">אפשר לחפש ב-<ph name="SEARCH_ENGINE_NAME" /> או להקליד כתובת אתר</translation> <translation id="4458535500699390320">בזמן שהכרטיסייה לא הייתה פעילה, במסגרת מצב החיסכון בזיכרון התפנה זיכרון בשביל משימות אחרות. תמיד אפשר לשנות זאת בהגדרות.</translation> <translation id="4459169140545916303">שימוש אחרון: לפני <ph name="DEVICE_LAST_ACTIVATED_TIME" /> ימים</translation> @@ -8391,6 +8392,7 @@ <translation id="8823514049557262177">העתקת ט&קסט קישור</translation> <translation id="8823559166155093873">חסימת קובצי cookie</translation> <translation id="8823704566850948458">הצעת סיסמה...</translation> +<translation id="8823963789776061136">אפשר גם לבחור ב-PPD של המדפסת. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> <translation id="8824701697284169214">הוספת &דף...</translation> <translation id="8827125715368568315">בוצעה חסימה להרשאות <ph name="PERMISSION" /> ועוד <ph name="COUNT" /></translation> <translation id="8827289157496676362">הצמדת התוסף</translation> @@ -8647,6 +8649,7 @@ <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> רוצה לקבל גישה לתוכן הבא:</translation> <translation id="9057354806206861646">לוח זמנים של עדכונים</translation> <translation id="9058070466596314168">{NUM_NOTIFICATION,plural, =1{בערך התראה אחת ביום}two{בערך {NUM_NOTIFICATION} התראות ביום}many{בערך {NUM_NOTIFICATION} התראות ביום}other{בערך {NUM_NOTIFICATION} התראות ביום}}</translation> +<translation id="9058760336383947367">אפשר לראות את קובץ PPD של המדפסת</translation> <translation id="9061383912634843744">כניסה אוטומטית לאפליקציות באמצעות פרטי כניסה שמורים. אם התכונה מושבתת, תישלח אליך בקשת אימות בכל פעם לפני כניסה לאתר או לאפליקציה.</translation> <translation id="9062468308252555888">14x</translation> <translation id="9063208415146866933">שגיאה משורה <ph name="ERROR_LINE_START" /> עד <ph name="ERROR_LINE_END" /></translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 90bab468..67ec4c3 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -1192,6 +1192,7 @@ <translation id="208928984520943006">მთავარ ეკრანზე ნებისმიერ დროს გადასასვლელად გადაფურცლეთ ქვემოდან ზემოთ.</translation> <translation id="2089566709556890888">დაათვალიერეთ ვები უსაფრთხოდ Google Chrome-ის მეშვეობით</translation> <translation id="2089795179672254991">შეკითხვა, როცა საიტს სურს გაცვლის ბუფერში კოპირებული ტექსტისა და სურათების ნახვა (რეკომენდებული)</translation> +<translation id="2089925163047119068">ან</translation> <translation id="2090165459409185032">თქვენი ანგარიშის ინფორმაციის აღსადგენად, ეწვიეთ: google.com/accounts/recovery</translation> <translation id="2090507354966565596">ავტომატურად უკავშირდება, როცა სისტემაში შედიხართ</translation> <translation id="2090876986345970080">სისტემის უსაფრთხოების პარამეტრები</translation> @@ -2752,6 +2753,7 @@ <translation id="3514373592552233661">რამდენიმე ქსელის ხელმისაწვდომობის შემთხვევაში, სასურველ ქსელებს სხვა ცნობილ ქსელებზე მეტი პრიორიტეტი მიენიჭება</translation> <translation id="3514647716686280777">თქვენ სარგებლობთ უსაფრთხოების სტანდარტული საშუალებებით. სახიფათო ვებსაიტებისგან, ჩამოტვირთვებისა და გაფართოებებისგან დაცვის უფრო ძლიერი საშუალებებით რომ ისარგებლოთ, Chrome-ის პარამეტრებიდან ჩართეთ გაძლიერებული Safe Browsing.</translation> <translation id="3515983984924808886">გადაყენების დასასრულებლად ხელახლა შეეხეთ უსაფრთხოების გასაღებს. უსაფრთხოების გასაღებზე შენახული მთელი ინფორმაცია (მისი PIN-კოდის ჩათვლით) წაიშლება.</translation> +<translation id="3518866566087677312">შეინახეთ სანიშნეებში სხვადასხვა რამ სამომავლოდ</translation> <translation id="3518985090088779359">მიღება და გაგრძელება</translation> <translation id="3519564332031442870">Print Backend Service</translation> <translation id="3519938335881974273">გვერდის შენახვა როგორც…</translation> @@ -6962,6 +6964,7 @@ <translation id="7515998400212163428">Android</translation> <translation id="7516981202574715431"><ph name="APP_NAME" /> დაპაუზებულია</translation> <translation id="7520766081042531487">ინკოგნიტო პორტალი: <ph name="SUBFRAME_SITE" /></translation> +<translation id="752098910262610337">მალსახმობების ჩვენება</translation> <translation id="7522255036471229694">წარმოთქვით „Ok Google“</translation> <translation id="7523585675576642403">პროფილის გადარქმევა</translation> <translation id="7525067979554623046">შექმნა</translation> @@ -7930,6 +7933,7 @@ <translation id="8389492867173948260">მიეცით საშუალება ამ გაფართოებას, წაიკითხოს და შეცვალოს თქვენი ყველა მონაცემი მონახულებულ ვებსაიტებზე:</translation> <translation id="8390449457866780408">სერვერი მიუწვდომელია.</translation> <translation id="8391218455464584335">ვინილი</translation> +<translation id="8392726714909453725">წარმოსათქმელად მონიშვნის პარამეტრები</translation> <translation id="8393511274964623038">დანამატის შეჩერება</translation> <translation id="839363317075970734">Bluetooth მოწყობილობის დეტალები</translation> <translation id="8393700583063109961">შეტყობინების გაგზავნა</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index 9a6b958..0536ed3 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -2368,6 +2368,7 @@ <translation id="3143515551205905069">Синхрондаудан бас тарту</translation> <translation id="3143754809889689516">Басынан бастап ойнату</translation> <translation id="3144647712221361880">Сілтемені басқа атпен ашу</translation> +<translation id="3144896554017119333">Кеңейтімдер және т.б.</translation> <translation id="3149510190863420837">Chrome Apps</translation> <translation id="3150693969729403281">Қауіпсіздік шарасын қазір іске қосу</translation> <translation id="3150927491400159470">Жабдықты қайта жүктеу</translation> @@ -2476,6 +2477,7 @@ <translation id="3268451620468152448">Ашық қойындылар</translation> <translation id="3269093882174072735">Кескінді жүктеу</translation> <translation id="326911502853238749">"<ph name="MODULE_NAME" />" көрсетпеу</translation> +<translation id="3269175001434213183">Деректердің сақтық көшірмесін жасап, оны кез келген құрылғыда пайдалану үшін синхрондауды қосыңыз</translation> <translation id="3269612321104318480">Ашық көкшіл жасыл және ақ</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Файл}other{# файл}}</translation> <translation id="326999365752735949">Басқасын жүктеу</translation> @@ -4274,6 +4276,7 @@ <translation id="4950993567860689081">Сеансты ұйым басқарады. Әкімшілер профильді жоя және желі трафигін қадағалай алады.</translation> <translation id="495164417696120157">{COUNT,plural, =1{файл}other{# файл}}</translation> <translation id="495170559598752135">Әрекеттер</translation> +<translation id="4951966678293618079">Бұл сайт үшін құпия сөздерді ешқашан сақтамау</translation> <translation id="4953808748584563296">Әдепкі сарғыш түсті аватар</translation> <translation id="4955710816792587366">PIN кодын таңдаңыз</translation> <translation id="4959262764292427323">Құпия сөздер Google аккаунтыңызда сақталады және оларды кез келген құрылғыда пайдалана аласыз</translation> @@ -4303,6 +4306,7 @@ <translation id="4981449534399733132">Барлық синхрондалған құрылғылардан және Google аккаунтынан браузерді пайдалану деректерін өшіру үшін, <ph name="BEGIN_LINK" />жүйеге кіріңіз<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Кез келген құрылғыда тоқтаған жеріңізден жалғастырыңыз.</translation> <translation id="4982236238228587209">Құрылғының бағдарламалық құралы</translation> +<translation id="4986706507552097681">Синхрондалатын мазмұнды кез келген уақытта "Параметрлер" бөлімінде таңдай аласыз. Google жүйесі Search және басқа да қызметтерді тарихыңызға негіздеп жекелендіре алады.</translation> <translation id="4986728572522335985">Қауіпсіздік кілтінде сақталған барлық деректер және оның PIN коды жойылады</translation> <translation id="4988526792673242964">Беттер</translation> <translation id="49896407730300355">С&ағат тіліне қарсы айналдыру</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index ae002ab..5d1a6464 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -2379,6 +2379,7 @@ <translation id="3143515551205905069">ಸಿಂಕ್ ಮಾಡುವಿಕೆಯನ್ನು ರದ್ದುಪಡಿಸಿ</translation> <translation id="3143754809889689516">ಆರಂಭದಿಂದ ಪ್ಲೇ ಮಾಡಿ</translation> <translation id="3144647712221361880">ಲಿಂಕ್ ಅನ್ನು ಹೀಗೆ ತೆರೆಯಿರಿ</translation> +<translation id="3144896554017119333">ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಇತ್ಯಾದಿ</translation> <translation id="3149510190863420837">Chrome ಅಪ್ಲಿಕೇಶನ್ಗಳು</translation> <translation id="3150693969729403281">ಈಗ ಸುರಕ್ಷತೆಯ ಪರಿಶೀಲನೆಯನ್ನು ರನ್ ಮಾಡಿ</translation> <translation id="3150927491400159470">ಹಾರ್ಡ್ ಮರುಲೋಡ್</translation> @@ -2487,6 +2488,7 @@ <translation id="3268451620468152448">ತೆರೆದ ಟ್ಯಾಬ್ಗಳು</translation> <translation id="3269093882174072735">ಚಿತ್ರ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> ಅನ್ನು ತೋರಿಸಬೇಡಿ</translation> +<translation id="3269175001434213183">ನಿಮ್ಮ ವಿಷಯವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಲು ಹಾಗೂ ಅದನ್ನು ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ಬಳಸಲು ಸಿಂಕ್ ಅನ್ನು ಆನ್ ಮಾಡಿ</translation> <translation id="3269612321104318480">ತಿಳಿ ಕೆನ್ನೀಲಿ ಮತ್ತು ಬಿಳಿ</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ಫೈಲ್}one{# ಫೈಲ್ಗಳು}other{# ಫೈಲ್ಗಳು}}</translation> <translation id="326999365752735949">ವ್ಯತ್ಯಾಸವನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> @@ -4287,6 +4289,7 @@ <translation id="4950993567860689081">ನಿಮ್ಮ ಸೆಶನ್ ಅನ್ನು ನಿಮ್ಮ ಸಂಸ್ಥೆ ನಿರ್ವಹಿಸುತ್ತಿದೆ. ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಅಳಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಟ್ರಾಫಿಕ್ನ ಮೇಲ್ವಿಚಾರಣೆ ಸಹ ನಡೆಸಬಹುದು.</translation> <translation id="495164417696120157">{COUNT,plural, =1{ಒಂದು ಫೈಲ್}one{# ಫೈಲ್ಗಳು}other{# ಫೈಲ್ಗಳು}}</translation> <translation id="495170559598752135">ಕ್ರಿಯೆಗಳು</translation> +<translation id="4951966678293618079">ಈ ಸೈಟ್ಗಾಗಿ ಎಂದಿಗೂ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಉಳಿಸಬೇಡಿ</translation> <translation id="4953808748584563296">ಡಿಫಾಲ್ಟ್ ಕೇಸರಿ ಅವತಾರ್</translation> <translation id="4955710816792587366">ನಿಮ್ಮ ಪಿನ್ ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="4959262764292427323">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ. ಇದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ಬಳಸಬಹುದು.</translation> @@ -4316,6 +4319,7 @@ <translation id="4981449534399733132">ಸಿಂಕ್ ಮಾಡಿರುವ ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳು ಮತ್ತು ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು, <ph name="BEGIN_LINK" />ಸೈನ್ ಇನ್<ph name="END_LINK" /> ಮಾಡಿ.</translation> <translation id="4982111327868342436">ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ನೀವು ಗೇಮ್ ಅನ್ನು ನಿಲ್ಲಿಸಿದ ಸ್ಥಿತಿಯಿಂದಲೇ ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="4982236238228587209">ಸಾಧನದ ಸಾಫ್ಟ್ವೇರ್</translation> +<translation id="4986706507552097681">ಏನನ್ನು ಸಿಂಕ್ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ನೀವು ಯಾವಾಗ ಬೇಕಾದರೂ ಆಯ್ಕೆಮಾಡಬಹುದು. Google, ನಿಮ್ಮ ಇತಿಹಾಸವನ್ನು ಆಧರಿಸಿ Search ಮತ್ತು ಇತರ ಸೇವೆಗಳನ್ನು ವೈಯಕ್ತಿಕಗೊಳಿಸಬಹುದು.</translation> <translation id="4986728572522335985">ಭದ್ರತಾ ಕೀಯ ಪಿನ್ ಸೇರಿದಂತೆ, ಅದರಲ್ಲಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸಿಹಾಕುತ್ತದೆ</translation> <translation id="4988526792673242964">ಪುಟಗಳು</translation> <translation id="49896407730300355">ಅಪ್ರ&ದಕ್ಷಿಣೆಯಂತೆ ತಿರುಗಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index ae11890..869130e 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -2386,6 +2386,7 @@ <translation id="3143515551205905069">Шайкештештирүүнү жокко чыгаруу</translation> <translation id="3143754809889689516">Башынан баштап ойнотуу</translation> <translation id="3144647712221361880">Шилтемени төмөнкү катары ачуу</translation> +<translation id="3144896554017119333">Кеңейтүүлөр жана башкалар</translation> <translation id="3149510190863420837">Chrome колдонмолору</translation> <translation id="3150693969729403281">Коопсуздукту азыр текшерүү</translation> <translation id="3150927491400159470">Татаал кайра жүктөө</translation> @@ -2494,6 +2495,7 @@ <translation id="3268451620468152448">Ачык өтмөктөр</translation> <translation id="3269093882174072735">Сүрөттү жүктөө</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> көрсөтүлбөсүн</translation> +<translation id="3269175001434213183">Маалыматтын камдык көчүрмөсүн сактап, башка түзмөктө колдонуу үчүн шайкештирүүнү күйгүзүңүз</translation> <translation id="3269612321104318480">Ачык көгүш жашыл жана ак</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Файл}other{# файл}}</translation> <translation id="326999365752735949">Жүктөп алуу айырмасы</translation> @@ -4293,6 +4295,7 @@ <translation id="4950993567860689081">Сеансты уюмуңуз башкарат. Администраторлор профилиңизди өчүрүп, тармактын трафигин көзөмөлдөй алышат.</translation> <translation id="495164417696120157">{COUNT,plural, =1{файл}other{# файл}}</translation> <translation id="495170559598752135">Аракеттер</translation> +<translation id="4951966678293618079">Бул сайттагы сырсөздөр эч качан сакталбасын</translation> <translation id="4953808748584563296">Демейки ток сары аватар</translation> <translation id="4955710816792587366">PIN кодуңузду тандаңыз</translation> <translation id="4959262764292427323">Бардык түзмөктөрүңүздө колдонуу үчүн сырсөздөр Google аккаунтуңузда сакталат</translation> @@ -4322,6 +4325,7 @@ <translation id="4981449534399733132">Бардык шайкештирилген түзмөктөрүңүздөгү жана Google аккаунтуңуздагы серептөө дайындарын тазалоо үчүн <ph name="BEGIN_LINK" />аккаунтуңузга кириңиз<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Каалаган түзмөктө оюнду токтогон жериңизден улантасыз</translation> <translation id="4982236238228587209">Түзмөктөгү программа</translation> +<translation id="4986706507552097681">Эмнени шайкештирүү керек экенин жөндөөлөрдөн ар дайым тандай аласыз. Google таржымалыңыздын негизинде Издөөнү жана башка кызматтарды жекелештириши мүмкүн.</translation> <translation id="4986728572522335985">Ушуну менен коопсуздук ачкычындагы бардык дайындар, анын ичинде анын PIN коду да өчүрүлөт</translation> <translation id="4988526792673242964">Барактар</translation> <translation id="49896407730300355">Саат ж&ебесине каршы айлантуу</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 17e05f1f..3a015d1 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -2370,6 +2370,7 @@ <translation id="3143515551205905069">സമന്വയം റദ്ദാക്കുക</translation> <translation id="3143754809889689516">തുടക്കം മുതൽ പ്ലേ ചെയ്യുക</translation> <translation id="3144647712221361880">ലിങ്ക് ഇനിപ്പറയുന്നതായി തുറക്കുക</translation> +<translation id="3144896554017119333">വിപുലീകരണങ്ങളും മറ്റും</translation> <translation id="3149510190863420837">Chrome അപ്ലിക്കേഷനുകൾ</translation> <translation id="3150693969729403281">സുരക്ഷാ പരിശോധന ഇപ്പോൾ റൺ ചെയ്യുക</translation> <translation id="3150927491400159470">വേഗത്തിലുള്ള വീണ്ടും ലോഡ് ചെയ്യൽ</translation> @@ -2478,6 +2479,7 @@ <translation id="3268451620468152448">ഓപ്പൺ ടാബുകൾ</translation> <translation id="3269093882174072735">ചിത്രം ലോഡ് ചെയ്യുക</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> കാണിക്കരുത്</translation> +<translation id="3269175001434213183">നിങ്ങളുടെ ഡാറ്റ ബാക്കപ്പ് ചെയ്ത് ഏത് ഉപകരണത്തിലും ഉപയോഗിക്കാൻ സമന്വയിപ്പിക്കൽ ഓണാക്കുക</translation> <translation id="3269612321104318480">ഇളം ടീലും വെള്ളയും</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ഫയൽ}other{# ഫയലുകൾ}}</translation> <translation id="326999365752735949">ഡിഫ് ഡൗൺലോഡുചെയ്യുന്നു</translation> @@ -4275,6 +4277,7 @@ <translation id="4950993567860689081">നിങ്ങളുടെ സെഷൻ മാനേജ് ചെയ്യുന്നത് നിങ്ങളുടെ സ്ഥാപനമാണ്. നിങ്ങളുടെ പ്രൊഫൈൽ ഇല്ലാതാക്കാനും നെറ്റ്വർക്ക് ട്രാഫിക് നിരീക്ഷിക്കാനും അഡ്മിൻമാർക്ക് കഴിയും.</translation> <translation id="495164417696120157">{COUNT,plural, =1{ഒരു ഫയൽ}other{# ഫയലുകൾ}}</translation> <translation id="495170559598752135">പ്രവര്ത്തനങ്ങള്</translation> +<translation id="4951966678293618079">ഈ സൈറ്റിനായി പാസ്വേഡുകൾ ഒരിക്കലും സംരക്ഷിക്കരുത്</translation> <translation id="4953808748584563296">ഡിഫോൾട്ടായ ഓറഞ്ച് അവതാർ</translation> <translation id="4955710816792587366">നിങ്ങളുടെ പിൻ തിരഞ്ഞെടുക്കുക</translation> <translation id="4959262764292427323">പാസ്വേഡുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നതിനാൽ, ഏത് ഉപകരണത്തിലും അവ നിങ്ങൾക്ക് ഉപയോഗിക്കാനാവും</translation> @@ -4304,6 +4307,7 @@ <translation id="4981449534399733132">നിങ്ങളുടെ സമന്വയിപ്പിച്ച എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും Google അക്കൗണ്ടിൽ നിന്നും ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാൻ<ph name="BEGIN_LINK" />സൈൻ ഇൻ ചെയ്യുക<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">ഏത് ഉപകരണത്തിലും നിങ്ങൾ നിർത്തിയ ഇടത്ത് നിന്ന് വീണ്ടും തുടങ്ങുക</translation> <translation id="4982236238228587209">ഉപകരണത്തിലെ സോഫ്റ്റ്വെയർ</translation> +<translation id="4986706507552097681">എന്തൊക്കെ സമന്വയിപ്പിക്കണമെന്ന് നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും ക്രമീകരണത്തിൽ തിരഞ്ഞെടുക്കാം. നിങ്ങളുടെ ചരിത്രം അടിസ്ഥാനമാക്കി Search-ഉം മറ്റ് സേവനങ്ങളും Google വ്യക്തിപരമാക്കിയേക്കാം.</translation> <translation id="4986728572522335985">സുരക്ഷാ കീയിലെ പിൻ ഉൾപ്പെടെയുള്ള എല്ലാ ഡാറ്റയും ഇത് ഇല്ലാതാക്കും</translation> <translation id="4988526792673242964">പേജുകള്</translation> <translation id="49896407730300355">എ&തിർ ഘടികാരദിശയിൽ തിരിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 0d197b7..b03a828 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -2385,6 +2385,7 @@ <translation id="3143515551205905069">सिंक रद्द करा</translation> <translation id="3143754809889689516">सुरवातीपासून प्ले करा</translation> <translation id="3144647712221361880">लिंक या फॉरमॅटमध्ये उघडा</translation> +<translation id="3144896554017119333">एक्स्टेंशन आणि आणखी बरेच काही</translation> <translation id="3149510190863420837">Chrome Apps</translation> <translation id="3150693969729403281">आता सुरक्षा तपासणी रन करा</translation> <translation id="3150927491400159470">कठीण रीलोड</translation> @@ -2493,6 +2494,7 @@ <translation id="3268451620468152448">उघडे Tabs</translation> <translation id="3269093882174072735">इमेज लोड करा</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> दाखवू नका</translation> +<translation id="3269175001434213183">तुमच्या आशयाचा बॅकअप घेण्यासाठी आणि तो कोणत्याही डिव्हाइसवर वापरण्यासाठी सिंक सुरू करा</translation> <translation id="3269612321104318480">फिकट टील आणि पांढरा</translation> <translation id="3269689705184377744">{COUNT,plural, =1{फाइल}other{# फाइल}}</translation> <translation id="326999365752735949">फरक डाउनलोड करत आहे</translation> @@ -4290,6 +4292,7 @@ <translation id="4950993567860689081">तुमचे सेशन हे तुमच्या संस्थेने व्यवस्थापित केले आहे. अॅडमिनिस्ट्रेटर तुमची प्रोफाइल हटवू शकतात आणि तुमच्या नेटवर्क ट्रॅफिकवरदेखील लक्ष ठेवू शकतात.</translation> <translation id="495164417696120157">{COUNT,plural, =1{फाइल}other{# फाइल}}</translation> <translation id="495170559598752135">क्रिया</translation> +<translation id="4951966678293618079">या साइटसाठी पासवर्ड कधीही सेव्ह करू नका</translation> <translation id="4953808748584563296">डीफॉल्ट नारिंगी अवतार</translation> <translation id="4955710816792587366">तुमचा पिन निवडा</translation> <translation id="4959262764292427323">तुम्हाला कोणत्याही डिव्हाइसवर वापरता यावे यासाठी तुमच्या Google खात्यामध्ये पासवर्ड सेव्ह केले जातात</translation> @@ -4319,6 +4322,7 @@ <translation id="4981449534399733132">तुमच्या सिंक केलेल्या सर्व डिव्हाइसमधून आणि तुमच्या Google खात्यामधून ब्राउझ केलेला डेटा साफ करण्यासाठी, <ph name="BEGIN_LINK" />साइन इन करा<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">कोणत्याही डिव्हाइसवर तुम्ही जेथे सोडले तेथून पुढे सुरू करा</translation> <translation id="4982236238228587209">डिव्हाइसचे सॉफ्टवेअर</translation> +<translation id="4986706507552097681">तुम्ही काय सिंक करायचे हे सेटिंग्जमध्ये कधीही निवडू शकता. Google तुमच्या इतिहासाच्या आधारे Search आणि इतर सेवा पर्सनलाइझ करू शकते.</translation> <translation id="4986728572522335985">यामुळे सिक्युरिटी कीवरील सर्व डेटा, तिच्या पिनसह, हटवला जाईल</translation> <translation id="4988526792673242964">पेज</translation> <translation id="49896407730300355">घड्याळाच्या वि&रूद्ध दिशेने फिरवा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 7017446..a0072e1 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2386,6 +2386,7 @@ <translation id="3143515551205905069">Batalkan penyegerakan</translation> <translation id="3143754809889689516">Mainkan dari permulaan</translation> <translation id="3144647712221361880">Buka pautan sebagai</translation> +<translation id="3144896554017119333">Sambungan dan pelbagai lagi</translation> <translation id="3149510190863420837">Chrome Apps</translation> <translation id="3150693969729403281">Jalankan semakan keselamatan sekarang</translation> <translation id="3150927491400159470">Muat Semula Keras</translation> @@ -2494,6 +2495,7 @@ <translation id="3268451620468152448">Tab Terbuka</translation> <translation id="3269093882174072735">Muatkan imej</translation> <translation id="326911502853238749">Jangan tunjukkan <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Hidupkan penyegerakan untuk menyandarkan bahan anda dan menggunakan bahan itu pada mana-mana peranti</translation> <translation id="3269612321104318480">Hijau kebiruan muda dan putih</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fail}other{# fail}}</translation> <translation id="326999365752735949">Memuat turun beza</translation> @@ -4293,6 +4295,7 @@ <translation id="4950993567860689081">Sesi anda diurus oleh organisasi anda. Pentadbir boleh memadamkan profil serta memantau trafik rangkaian anda.</translation> <translation id="495164417696120157">{COUNT,plural, =1{satu fail}other{# fail}}</translation> <translation id="495170559598752135">Tindakan</translation> +<translation id="4951966678293618079">Jangan simpan kata laluan untuk laman ini</translation> <translation id="4953808748584563296">Avatar jingga lalai</translation> <translation id="4955710816792587366">Pilih PIN anda</translation> <translation id="4959262764292427323">Kata laluan disimpan dalam Google Account anda supaya anda dapat menggunakannya pada mana-mana peranti</translation> @@ -4322,6 +4325,7 @@ <translation id="4981449534399733132">Untuk mengosongkan data semakan imbas daripada semua peranti tersegerak dan Akaun Google anda, <ph name="BEGIN_LINK" />log masuk<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Sambung semula dari tempat anda berhenti pada mana-mana peranti</translation> <translation id="4982236238228587209">Perisian peranti</translation> +<translation id="4986706507552097681">Anda boleh memilih item yang hendak disegerakkan dalam tetapan pada bila-bila masa. Google mungkin memeribadikan Search dan perkhidmatan lain berdasarkan sejarah anda.</translation> <translation id="4986728572522335985">Tindakan ini akan memadamkan semua data pada kunci keselamatan, termasuk PIN kunci keselamatan</translation> <translation id="4988526792673242964">Halaman</translation> <translation id="49896407730300355">Putar m&elawan arah jam</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index 2c96fbe3..2c05d72a 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -2369,6 +2369,7 @@ <translation id="3143515551205905069">सिंक रद्द गर्नुहोस्</translation> <translation id="3143754809889689516">सुरुबाट प्ले गर्नुहोस्</translation> <translation id="3144647712221361880">यस रूपमा लिंक खोल्नुहोस्</translation> +<translation id="3144896554017119333">एक्स्टेन्सन र थप कुरा</translation> <translation id="3149510190863420837">Chrome एपहरू</translation> <translation id="3150693969729403281">अहिले नै सुरक्षा जाँच गर्नुहोस्</translation> <translation id="3150927491400159470">हार्ड रिलोड</translation> @@ -2477,6 +2478,7 @@ <translation id="3268451620468152448">ट्याबहरू खोल्नुहोस्</translation> <translation id="3269093882174072735">छवि लोड गर्नुहोस्</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> नदेखाइऊन्</translation> +<translation id="3269175001434213183">आफ्नो डेटा ब्याकअप गर्न र जुनसुकै डिभाइसमा सो डेटा प्रयोग गर्न सिंक गर्ने सुविधा अन गर्नुहोस्</translation> <translation id="3269612321104318480">हल्का निलो-हरियो मिश्रित रङ्ग र सेतो</translation> <translation id="3269689705184377744">{COUNT,plural, =1{फाइल}other{# वटा फाइल}}</translation> <translation id="326999365752735949">डाउनलोडिङ भिन्नता</translation> @@ -4274,6 +4276,7 @@ <translation id="4950993567860689081">तपाईंको संस्थाले तपाईंको सत्र व्यवस्थापन गर्छ। एड्मिनहरू तपाईंको प्रोफाइल मेटाउन सक्छन्। साथै, उनीहरू तपाईंको नेटवर्क ट्राफिकको निरीक्षण गर्न पनि सक्छन्।</translation> <translation id="495164417696120157">{COUNT,plural, =1{एउटा फाइल}other{# वटा फाइल}}</translation> <translation id="495170559598752135">कार्यहरू</translation> +<translation id="4951966678293618079">यो साइटका पासवर्ड कहिले पनि सेभ नगरियोस्</translation> <translation id="4953808748584563296">डिफल्ट सुन्तला रङ्गको अवतार</translation> <translation id="4955710816792587366">आफ्नो PIN छनौट गर्नुहोस्</translation> <translation id="4959262764292427323">तपाईं जुनसुकै बेला पासवर्ड प्रयोग गर्न सक्नुहोस् भन्नाका लागि तिनलाई तपाईंको Google खातामा सेभ गरिन्छ</translation> @@ -4303,6 +4306,7 @@ <translation id="4981449534399733132">तपाईंका सिंक गरिएका सबै यन्त्र र Google खाताबाट ब्राउजिङ डेटा खाली गर्न <ph name="BEGIN_LINK" />साइन इन गर्नुहोस्<ph name="END_LINK" />।</translation> <translation id="4982111327868342436">आफूले काम गर्दा गर्दै जहाँनेर छाडेको हो पछि जुनसुकै डिभाइसमा त्यहीँबाट काम सुरु गर्नुहोस्</translation> <translation id="4982236238228587209">यन्त्रमा इन्स्टल गरिएको सफ्टवेयर</translation> +<translation id="4986706507552097681">तपाईं जुनसुकै बेला सेटिङमा गई कुन-कुन डेटा सिंक गर्ने भन्ने कुरा छनौट गर्न सक्नुहुन्छ। Google ले तपाईंले विगतमा हेरेका वेबपेजका आधारमा Search र अन्य सेवाहरू पर्सनलाइज गर्न सक्छ।</translation> <translation id="4986728572522335985">यसले सुरक्षा साँचोको PIN सहित यसमा रहेको सबै डेटा मेटाउने छ</translation> <translation id="4988526792673242964">पृष्ठहरू</translation> <translation id="49896407730300355">घडिको उल्टो दिशा&तिर घुमाउनुहोस्</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index e09e0e89..d74f8e4 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -2358,6 +2358,7 @@ <translation id="3143515551205905069">Anuluj synchronizację</translation> <translation id="3143754809889689516">Odtwórz od początku</translation> <translation id="3144647712221361880">Otwórz link jako</translation> +<translation id="3144896554017119333">Rozszerzenia i inne</translation> <translation id="3149510190863420837">Aplikacje Chrome</translation> <translation id="3150693969729403281">Wykonaj kontrolę zabezpieczeń teraz</translation> <translation id="3150927491400159470">Wymuś ponowne załadowanie</translation> @@ -2466,6 +2467,7 @@ <translation id="3268451620468152448">Otwarte karty</translation> <translation id="3269093882174072735">Wczytaj obraz</translation> <translation id="326911502853238749">Nie pokazuj: <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Włącz synchronizację, aby tworzyć kopie zapasowe swoich danych i używać ich na dowolnym urządzeniu</translation> <translation id="3269612321104318480">Jasny morski i biały</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Plik}few{# pliki}many{# plików}other{# pliku}}</translation> <translation id="326999365752735949">Pobieram zmiany</translation> @@ -4264,6 +4266,7 @@ <translation id="4950993567860689081">Sesją zarządza Twoja organizacja. Administratorzy mogą usunąć Twój profil i obserwować Twój ruch w sieci.</translation> <translation id="495164417696120157">{COUNT,plural, =1{plik}few{# pliki}many{# plików}other{# pliku}}</translation> <translation id="495170559598752135">Czynności</translation> +<translation id="4951966678293618079">Nigdy nie zapisuj haseł do tej witryny</translation> <translation id="4953808748584563296">Domyślny pomarańczowy awatar</translation> <translation id="4955710816792587366">Ustaw kod PIN</translation> <translation id="4959262764292427323">Hasła są zapisywane na Twoim koncie Google, dzięki czemu możesz ich używać na dowolnym urządzeniu</translation> @@ -4293,6 +4296,7 @@ <translation id="4981449534399733132">Aby wyczyścić dane przeglądania ze wszystkich zsynchronizowanych urządzeń i z konta Google, <ph name="BEGIN_LINK" />zaloguj się<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Wznów od tego samego miejsca na dowolnym urządzeniu</translation> <translation id="4982236238228587209">Oprogramowanie urządzenia</translation> +<translation id="4986706507552097681">W ustawieniach możesz wybrać, co chcesz synchronizować. Google może korzystać z Twojej historii, aby dostosowywać działanie wyszukiwarki i innych usług.</translation> <translation id="4986728572522335985">Spowoduje to usunięcie z klucza bezpieczeństwa wszystkich danych, w tym kodu PIN</translation> <translation id="4988526792673242964">Strony</translation> <translation id="49896407730300355">&Obróć w lewo</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index c90704e7..0c99bd4 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -3759,6 +3759,7 @@ <translation id="445099924538929605">O <ph name="DEVICE_OS" /> detectou um TPM ativo que pode salvar dados com mais segurança.</translation> <translation id="4451479197788154834">Sua senha foi salva neste dispositivo e na sua Conta do Google</translation> <translation id="4451757071857432900">Bloqueados em sites que mostram anúncios invasivos ou enganosos (recomendado)</translation> +<translation id="4452898361839215358">ou selecione um. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="4453946976636652378">Pesquisar no <ph name="SEARCH_ENGINE_NAME" /> ou digitar URL</translation> <translation id="4458535500699390320">Enquanto essa guia estava inativa, a Economia de memória liberou memória para outras tarefas. É possível mudar isso quando quiser nas configurações.</translation> <translation id="4459169140545916303">Ativado há <ph name="DEVICE_LAST_ACTIVATED_TIME" /> dias</translation> @@ -8394,6 +8395,7 @@ <translation id="8823514049557262177">Copiar texto do link</translation> <translation id="8823559166155093873">Bloquear cookies</translation> <translation id="8823704566850948458">Sugerir senha…</translation> +<translation id="8823963789776061136">Você também pode selecionar o PPD da impressora. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> <translation id="8824701697284169214">Adicionar Pá&gina...</translation> <translation id="8827125715368568315">Bloqueados: <ph name="PERMISSION" /> e mais <ph name="COUNT" /></translation> <translation id="8827289157496676362">Fixe a extensão</translation> @@ -8650,6 +8652,7 @@ <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> que acessar o seguinte conteúdo:</translation> <translation id="9057354806206861646">Atualizar programação</translation> <translation id="9058070466596314168">{NUM_NOTIFICATION,plural, =1{Cerca de 1 notificação por dia}one{Cerca de {NUM_NOTIFICATION} notificação por dia}other{Cerca de {NUM_NOTIFICATION} notificações por dia}}</translation> +<translation id="9058760336383947367">Veja o PPD da impressora</translation> <translation id="9061383912634843744">Faça login automaticamente em sites e apps usando as credenciais salvas. Se o recurso estiver desativado, vai ser necessário fornecer uma confirmação todas as vezes que fizer login em um site ou app.</translation> <translation id="9062468308252555888">14x</translation> <translation id="9063208415146866933">Erro da linha <ph name="ERROR_LINE_START" /> a <ph name="ERROR_LINE_END" /></translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 75e3f68..df5cf683 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -2369,6 +2369,7 @@ <translation id="3143515551205905069">Anulo sinkronizimin</translation> <translation id="3143754809889689516">Luaj nga fillimi</translation> <translation id="3144647712221361880">Hape lidhjen si</translation> +<translation id="3144896554017119333">Shtesat dhe më shumë</translation> <translation id="3149510190863420837">Aplikacionet e Chrome</translation> <translation id="3150693969729403281">Ekzekuto tani kontrollin e sigurisë</translation> <translation id="3150927491400159470">Ringarkim i detyruar</translation> @@ -2477,6 +2478,7 @@ <translation id="3268451620468152448">Hap skedat</translation> <translation id="3269093882174072735">Ngarko imazhin</translation> <translation id="326911502853238749">Mos shfaq: <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Aktivizo sinkronizimin për të rezervuar gjërat e tua dhe për t'i përdorur ato në çdo pajisje</translation> <translation id="3269612321104318480">Gurkali e çelur dhe e bardhë</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Skedar}other{# skedarë}}</translation> <translation id="326999365752735949">Diferenca e shkarkimit</translation> @@ -4275,6 +4277,7 @@ <translation id="4950993567860689081">Sesioni yt menaxhohet nga organizata jote. Administratorët mund ta fshijnë profilin tënd dhe gjithashtu të monitorojnë trafikun e rrjetit tënd.</translation> <translation id="495164417696120157">{COUNT,plural, =1{një skedar}other{# skedarë}}</translation> <translation id="495170559598752135">Veprimet</translation> +<translation id="4951966678293618079">Mos i ruaj asnjëherë fjalëkalimet për këtë sajt</translation> <translation id="4953808748584563296">Avatari i parazgjedhur portokalli</translation> <translation id="4955710816792587366">Zgjidh kodin PIN</translation> <translation id="4959262764292427323">Fjalëkalimet ruhen në llogarinë tënde të Google që të mund t'i përdorësh në çdo pajisje</translation> @@ -4304,6 +4307,7 @@ <translation id="4981449534399733132">Për të pastruar të dhënat e shfletimit nga të gjitha pajisjet e tua të sinkronizuara dhe nga "Llogaria e Google", <ph name="BEGIN_LINK" />identifikohu<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Vazhdo aty ku e ke lënë në çdo pajisje</translation> <translation id="4982236238228587209">Softueri i pajisjes</translation> +<translation id="4986706507552097681">Mund të zgjedhësh gjithmonë se çfarë do të sinkronizosh te cilësimet. Google mund t'i personalizojë "Kërko" dhe shërbimet e tjera bazuar në historikun tënd.</translation> <translation id="4986728572522335985">Kjo do të fshijë të gjitha të dhënat në çelësin e sigurisë, duke përfshirë kodin e tij PIN</translation> <translation id="4988526792673242964">Faqet</translation> <translation id="49896407730300355">Rrotullo k&undër akrepave të orës</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 791c505a..e94ce1e 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -2386,6 +2386,7 @@ <translation id="3143515551205905069">Avbryt synkronisering</translation> <translation id="3143754809889689516">Spela upp från början</translation> <translation id="3144647712221361880">Öppna länk som</translation> +<translation id="3144896554017119333">Tillägg med mera</translation> <translation id="3149510190863420837">Chrome-appar</translation> <translation id="3150693969729403281">Kontrollera säkerheten nu</translation> <translation id="3150927491400159470">Hård inläsning</translation> @@ -2494,6 +2495,7 @@ <translation id="3268451620468152448">Öppna flikar</translation> <translation id="3269093882174072735">Läs in bild</translation> <translation id="326911502853238749">Visa inte <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Aktivera synkronisering om du vill säkerhetskopiera dina grejer och använda dem på vilken enhet som helst</translation> <translation id="3269612321104318480">Ljust blågrön och vit</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Fil}other{# filer}}</translation> <translation id="326999365752735949">Laddar ned skillnaden</translation> @@ -4293,6 +4295,7 @@ <translation id="4950993567860689081">Sessionen hanteras av organisationen. Administratören kan radera din profil och även övervaka nätverkstrafiken.</translation> <translation id="495164417696120157">{COUNT,plural, =1{en fil}other{# filer}}</translation> <translation id="495170559598752135">Åtgärder</translation> +<translation id="4951966678293618079">Spara aldrig lösenord för den här webbplatsen</translation> <translation id="4953808748584563296">Orange standardavatar</translation> <translation id="4955710816792587366">Välj en pinkod</translation> <translation id="4959262764292427323">Lösenorden sparas i Google-kontot så att du kan använda dem på vilken enhet som helst</translation> @@ -4322,6 +4325,7 @@ <translation id="4981449534399733132"><ph name="BEGIN_LINK" />Logga in<ph name="END_LINK" /> om du vill rensa webbinformation från alla synkroniserade enheter och ditt Google-konto.</translation> <translation id="4982111327868342436">Fortsätt där du slutade på vilket enhet som helst</translation> <translation id="4982236238228587209">Enhetens programvara</translation> +<translation id="4986706507552097681">Du kan alltid välja vad som ska synkroniseras i inställningarna. Google kan anpassa Sök och andra tjänster utifrån din historik.</translation> <translation id="4986728572522335985">All data på säkerhetsnyckeln raderas, inklusive pinkoden</translation> <translation id="4988526792673242964">Sidor</translation> <translation id="49896407730300355">Rotera m&oturs</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 3d1feb1..d3fe9ca 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -2386,6 +2386,7 @@ <translation id="3143515551205905069">ஒத்திசைவை ரத்துசெய்</translation> <translation id="3143754809889689516">முதலிலிருந்து இயக்கு</translation> <translation id="3144647712221361880">இணைப்பை இவ்வாறு திற</translation> +<translation id="3144896554017119333">நீட்டிப்புகள் மற்றும் பல</translation> <translation id="3149510190863420837">Chrome ஆப்ஸ்</translation> <translation id="3150693969729403281">பாதுகாப்புச் சரிபார்ப்பை உடனே இயக்கும்</translation> <translation id="3150927491400159470">ஹார்ட் ரெஃப்ரெஷ் செய்</translation> @@ -2494,6 +2495,7 @@ <translation id="3268451620468152448">திறந்த தத்தல்கள்</translation> <translation id="3269093882174072735">படத்தை ஏற்று</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" /> காட்ட வேண்டாம்</translation> +<translation id="3269175001434213183">தரவைக் காப்புப் பிரதி எடுத்து எந்தச் சாதனத்திலும் பயன்படுத்த ஒத்திசைவை இயக்குங்கள்</translation> <translation id="3269612321104318480">வெளிர் பசும் நீலம் & வெள்ளை</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ஃபைல்}other{# ஃபைல்கள் }}</translation> <translation id="326999365752735949">வேறுபாட்டைப் பதிவிறக்குகிறது</translation> @@ -4293,6 +4295,7 @@ <translation id="4950993567860689081">உங்கள் அமர்வை உங்கள் நிறுவனம் நிர்வகிக்கிறது. நிர்வாகிகளால் உங்கள் சுயவிவரத்தை நீக்க முடியும். அத்துடன் உங்கள் நெட்வொர்க் டிராஃபிக்கையும் கண்காணிக்க முடியும்.</translation> <translation id="495164417696120157">{COUNT,plural, =1{ஒரு ஃபைலை}other{# ஃபைல்களை}}</translation> <translation id="495170559598752135">செயல்கள்</translation> +<translation id="4951966678293618079">இந்தத் தளத்திற்கு ஒருபோதும் கடவுச்சொற்களைச் சேமிக்க வேண்டாம்</translation> <translation id="4953808748584563296">இயல்பு ஆரஞ்சுநிறத் தோற்றப்படம்</translation> <translation id="4955710816792587366">பின்னைத் தேர்ந்தெடுக்கவும்</translation> <translation id="4959262764292427323">கடவுச்சொற்களை வேறு சாதனங்களிலும் பயன்படுத்துவதற்காக, அவை உங்கள் Google கணக்கில் சேமிக்கப்பட்டுள்ளன</translation> @@ -4322,6 +4325,7 @@ <translation id="4981449534399733132">உங்கள் ஒத்திசைக்கப்பட்ட சாதனங்கள் அனைத்திலிருந்தும் Google கணக்கிலிருந்தும் உலாவல் தரவை முழுமையாக அழிக்க, <ph name="BEGIN_LINK" />உள்நுழையவும்<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">எந்தச் சாதனத்திலும் எங்கிருந்து விட்டீர்களோ அங்கிருந்தே தொடரலாம்</translation> <translation id="4982236238228587209">சாதன மென்பொருள்</translation> +<translation id="4986706507552097681">எதையெல்லாம் ஒத்திசைக்க வேண்டும் என்பதை அமைப்புகளுக்குச் சென்று எப்போது வேண்டுமானாலும் தேர்வுசெய்யலாம். உங்கள் பதிவுகளின் அடிப்படையில் Search மற்றும் பிற சேவைகளை Google பிரத்தியேகமாக்கலாம்.</translation> <translation id="4986728572522335985">பாதுகாப்பு விசையில் சேமிக்கப்பட்டுள்ள பின் உட்பட அனைத்துத் தரவையும் இது நீக்கும்</translation> <translation id="4988526792673242964">பக்கங்கள்</translation> <translation id="49896407730300355">இ&டஞ்சுழியாகச் சுற்று</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 72ac119..2975a27 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -2385,6 +2385,7 @@ <translation id="3143515551205905069">సింక్ను రద్దు చేయి</translation> <translation id="3143754809889689516">ప్రారంభం నుండి ప్లే చేయి</translation> <translation id="3144647712221361880">లింక్ను దీని తరపున తెరువు</translation> +<translation id="3144896554017119333">ఎక్స్టెన్షన్లు, మరెన్నో</translation> <translation id="3149510190863420837">Chrome యాప్లు</translation> <translation id="3150693969729403281">ఇప్పుడే భద్రతా తనిఖీని రన్ చేయండి</translation> <translation id="3150927491400159470">నిర్బంధంగా మళ్లీ లోడ్ చేయి</translation> @@ -2493,6 +2494,7 @@ <translation id="3268451620468152448">ఓపెన్ ట్యాబ్లు</translation> <translation id="3269093882174072735">చిత్రాన్ని లోడ్ చేయి</translation> <translation id="326911502853238749"><ph name="MODULE_NAME" />ను చూపించవద్దు</translation> +<translation id="3269175001434213183">మీ అంశాలను బ్యాకప్ చేసి, వాటిని ఏదైనా పరికరంలో ఉపయోగించడానికి సింక్ను ఆన్ చేయండి</translation> <translation id="3269612321104318480">లేత నీలి ఆకుపచ్చ రంగు మరియు తెలుపు</translation> <translation id="3269689705184377744">{COUNT,plural, =1{ఫైల్}other{# ఫైళ్లు}}</translation> <translation id="326999365752735949">డిఫ్ను డౌన్లోడ్ చేస్తోంది</translation> @@ -4292,6 +4294,7 @@ <translation id="4950993567860689081">మీ సెషన్ అనేది మీ సంస్థ ద్వారా మేనేజ్ చేయబడుతోంది. అడ్మినిస్ట్రేటర్లు మీ ప్రొఫైల్ను తొలగించగలరు అలాగే మీ నెట్వర్క్ ట్రాఫిక్ను కూడా పర్యవేక్షించగలరు.</translation> <translation id="495164417696120157">{COUNT,plural, =1{ఫైల్}other{# ఫైళ్లు}}</translation> <translation id="495170559598752135">చర్యలు</translation> +<translation id="4951966678293618079">ఈ సైట్కు పాస్వర్డ్లను ఎన్నడూ సేవ్ చేయవద్దు</translation> <translation id="4953808748584563296">డిఫాల్ట్ నారింజ రంగు అవతార్</translation> <translation id="4955710816792587366">మీ పిన్ ఎంచుకోండి</translation> <translation id="4959262764292427323">మీ Google ఖాతాలో పాస్వర్డ్లు సేవ్ చేయబడతాయి కాబట్టి మీరు వాటిని ఏ పరికరంలోనైనా ఉపయోగించవచ్చు</translation> @@ -4321,6 +4324,7 @@ <translation id="4981449534399733132">మీ అన్ని సింక్ చేయబడుతున్న పరికరాలతో సహా, మీ Google ఖాతా నుండి బ్రౌజింగ్ డేటాను తీసివేయడానికి, <ph name="BEGIN_LINK" />సైన్ ఇన్ చేయండి<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">ఏ పరికరంలో అయినా మీరు ఎక్కడ ఆపారో అక్కడి నుండే ప్రారంభించండి</translation> <translation id="4982236238228587209">పరికరం సాఫ్ట్వేర్</translation> +<translation id="4986706507552097681">ఏ సింక్ చేయాలనే దాన్ని, మీరు సెట్టింగ్లలో ఎప్పుడైనా ఎంచుకోవచ్చు. Google మీ హిస్టరీ ఆధారంగా సెర్చ్, ఇతర సర్వీస్లను వ్యక్తిగతీకరించవచ్చు.</translation> <translation id="4986728572522335985">ఇది 'సెక్యూరిటీ కీ'లోని మొత్తం డేటాను, అలాగే దాని పిన్ను తొలగిస్తుంది</translation> <translation id="4988526792673242964">పేజీలు</translation> <translation id="49896407730300355">అ&పసవ్యదిశలో తిప్పు</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index ba94b81..2cd88fdb 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -2369,6 +2369,7 @@ <translation id="3143515551205905069">Senkronizasyonu iptal et</translation> <translation id="3143754809889689516">Baştan oynat</translation> <translation id="3144647712221361880">Bağlantıyı farklı aç</translation> +<translation id="3144896554017119333">Uzantılar ve daha fazlası</translation> <translation id="3149510190863420837">Chrome Uygulamaları</translation> <translation id="3150693969729403281">Güvenlik kontrolünü şimdi çalıştır</translation> <translation id="3150927491400159470">Tam Yeniden Yükle</translation> @@ -2477,6 +2478,7 @@ <translation id="3268451620468152448">Açık Sekmeler</translation> <translation id="3269093882174072735">Resim yükle</translation> <translation id="326911502853238749">Şunu gösterme: <ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">Verilerinizi yedeklemek ve istediğiniz cihazda kullanmak için senkronizasyonu etkinleştirin</translation> <translation id="3269612321104318480">Açık turkuaz ve beyaz</translation> <translation id="3269689705184377744">{COUNT,plural, =1{Dosya}other{# dosya}}</translation> <translation id="326999365752735949">Fark indiriliyor</translation> @@ -4275,6 +4277,7 @@ <translation id="4950993567860689081">Oturumunuz, kuruluşunuz tarafından yönetiliyor. Yöneticiler profilinizi silebilir ve ayrıca ağ trafiğinizi izleyebilir.</translation> <translation id="495164417696120157">{COUNT,plural, =1{bir dosya}other{# dosya}}</translation> <translation id="495170559598752135">İşlemler</translation> +<translation id="4951966678293618079">Bu sitedeki şifreleri hiçbir zaman kaydetme</translation> <translation id="4953808748584563296">Varsayılan turuncu avatar</translation> <translation id="4955710816792587366">PIN'inizi seçin</translation> <translation id="4959262764292427323">Şifreler Google Hesabınıza kaydedildiğinden bunları herhangi bir cihazda kullanabilirsiniz</translation> @@ -4304,6 +4307,7 @@ <translation id="4981449534399733132">Tarama verilerini senkronize edilmiş tüm cihazlarınızdan ve Google Hesabınızdan temizlemek için <ph name="BEGIN_LINK" />oturum açın<ph name="END_LINK" />.</translation> <translation id="4982111327868342436">Herhangi bir cihazda, kaldığınız yerden devam edin</translation> <translation id="4982236238228587209">Cihaz yazılımı</translation> +<translation id="4986706507552097681">Neyin senkronize edileceğini istediğiniz zaman ayarlardan seçebilirsiniz. Google, geçmişinize dayalı olarak Arama'yı ve diğer hizmetleri kişiselleştirebilir.</translation> <translation id="4986728572522335985">Bu işlem, PIN'i de dahil olmak üzere güvenlik anahtarındaki tüm verileri silecek.</translation> <translation id="4988526792673242964">Sayfalar</translation> <translation id="49896407730300355">Saat yönünün &tersine döndür</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 029dd00..69987287 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -1191,6 +1191,7 @@ <translation id="208928984520943006">Istalgan vaqtda bosh ekranga qaytish uchun pastdan tepaga suring.</translation> <translation id="2089566709556890888">Google Chrome yordamida internetda xavfsiz ishlaysiz</translation> <translation id="2089795179672254991">Saytlar klipbordga nusxalangan matn va rasmlarni ko‘rmoqchi bo‘lganda xabar berilsin (tavsiya etiladi)</translation> +<translation id="2089925163047119068">YOKI</translation> <translation id="2090165459409185032">Hisob ma’lumotini tiklash uchun bu yerga o‘ting: google.com/accounts/recovery</translation> <translation id="2090507354966565596">Hisobga kirilganda avtomatik ulanadi</translation> <translation id="2090876986345970080">Tizim xavfsizlik sozlamasi</translation> @@ -2754,6 +2755,7 @@ <translation id="3514373592552233661">Agar bir nechta saqlangan tarmoqlar mavjud bo‘lsa, avval afzal tarmoqlar tanlanadi</translation> <translation id="3514647716686280777">Siz standart xavfsizlik himoyasiga ega boʻlasiz. Zararli saytlar, yuklamalar va kengaytmalardan himoyalanish uchun Chrome sozlamalarida Saytlarni kuchaytirilgan rejimda xavfsiz kezish funksiyasini yoqing.</translation> <translation id="3515983984924808886">Sozlamalarni asliga qaytarishni tasdiqlash uchun elektron kalit tugmasini qayta bosing. Bunda elektron kalitdagi barcha maʼlumotlar, jumladan, PIN kodlar ham tozalab tashlanadi.</translation> +<translation id="3518866566087677312">Keyinroq qayta murojaat qiladigan narsalaringiz bukmarkini yarating</translation> <translation id="3518985090088779359">Davom etish</translation> <translation id="3519564332031442870">Chop etish serveri</translation> <translation id="3519938335881974273">Sahifani saqlab olish...</translation> @@ -6965,6 +6967,7 @@ <translation id="7515998400212163428">Android</translation> <translation id="7516981202574715431"><ph name="APP_NAME" /> pauza qilindi</translation> <translation id="7520766081042531487">Inkognito rejimidagi portal: <ph name="SUBFRAME_SITE" /></translation> +<translation id="752098910262610337">Yorliqlarni ochish</translation> <translation id="7522255036471229694">“Ok Google” deb ayting</translation> <translation id="7523585675576642403">Profilni qayta nomlash</translation> <translation id="7525067979554623046">Yaratish</translation> @@ -7932,6 +7935,7 @@ <translation id="8389492867173948260">Kengaytmaga tashrif buyurgan saytlaringizdagi ma’lumotlarni ko‘rish va o‘zgartirishga ruxsat bering:</translation> <translation id="8390449457866780408">Server ish faoliyatida emas.</translation> <translation id="8391218455464584335">Vinil</translation> +<translation id="8392726714909453725">Teginib tinglash sozlamalari</translation> <translation id="8393511274964623038">Plagin to‘xtatilsin</translation> <translation id="839363317075970734">Bluetooth qurilma axboroti</translation> <translation id="8393700583063109961">Xabar yuborish</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index 46c892c..fedf4b9 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -2363,6 +2363,7 @@ <translation id="3143515551205905069">取消同步</translation> <translation id="3143754809889689516">从头播放</translation> <translation id="3144647712221361880">以其他身份打开链接</translation> +<translation id="3144896554017119333">扩展程序,等等</translation> <translation id="3149510190863420837">Chrome 应用</translation> <translation id="3150693969729403281">立即进行安全检查</translation> <translation id="3150927491400159470">硬性重新加载</translation> @@ -2471,6 +2472,7 @@ <translation id="3268451620468152448">打开的标签页</translation> <translation id="3269093882174072735">加载图片</translation> <translation id="326911502853238749">不显示<ph name="MODULE_NAME" /></translation> +<translation id="3269175001434213183">开启同步功能,以备份您的资料并在任意设备上使用</translation> <translation id="3269612321104318480">浅蓝绿色和白色</translation> <translation id="3269689705184377744">{COUNT,plural, =1{文件}other{# 个文件}}</translation> <translation id="326999365752735949">正在下载diff</translation> @@ -4265,6 +4267,7 @@ <translation id="4950993567860689081">您的会话由您所在的单位负责管理。管理员可以删除您的个人资料和监控您的网络流量。</translation> <translation id="495164417696120157">{COUNT,plural, =1{1 个文件}other{# 个文件}}</translation> <translation id="495170559598752135">操作</translation> +<translation id="4951966678293618079">一律不为此网站保存密码</translation> <translation id="4953808748584563296">默认的橙色头像</translation> <translation id="4955710816792587366">选择 PIN 码</translation> <translation id="4959262764292427323">系统会将密码保存在您的 Google 帐号中,以便您在任意设备上使用密码</translation> @@ -4294,6 +4297,7 @@ <translation id="4981449534399733132">要想清除您的所有已同步设备中的浏览数据以及您的 Google 帐号中的浏览数据,请<ph name="BEGIN_LINK" />登录<ph name="END_LINK" />。</translation> <translation id="4982111327868342436">让您能在任何设备上从上次停下的地方继续</translation> <translation id="4982236238228587209">设备软件</translation> +<translation id="4986706507552097681">您始终可在“设置”中选择要同步的内容。Google 可能会根据您的历史记录在 Google 搜索和其他服务中为您提供个性化的体验。</translation> <translation id="4986728572522335985">安全密钥上的所有数据(包括它的 PIN 码)都会被删除</translation> <translation id="4988526792673242964">页面</translation> <translation id="49896407730300355">逆时针旋转(&O)</translation>
diff --git a/chrome/app/theme/README b/chrome/app/theme/README.md similarity index 73% rename from chrome/app/theme/README rename to chrome/app/theme/README.md index 30722ff..00ef5534 100644 --- a/chrome/app/theme/README +++ b/chrome/app/theme/README.md
@@ -1,12 +1,26 @@ +Branded and Trademarked Assets +============================== + +If the resource that you want to check in is product-branded and/or trademarked, +please read the docs on +[Google Chrome branding](../../../docs/google_chrome_branded_builds.md) to +determine the correct steps to take. + PNG Images ========== Please run src/tools/resources/optimize-png-files.sh on all new icons. For example: - tools/resources/optimize-png-files.sh -o2 new_pngs_dir + +```sh +tools/resources/optimize-png-files.sh -o2 new_pngs_dir +``` If this script does not work for some reason, at least pngcrush the files: + +```sh mkdir crushed pngcrush -d crushed -brute -reduce -rem alla new/*.png +``` ICO Images ========== @@ -26,20 +40,25 @@ 1. Convert each of the smaller images to 8-bit. With ImageMagick: + ```sh for f in FILENAME-??.png; \ do convert $f -dither None -colors 256 \ png8:`basename $f .png`-indexed.png; \ done + ``` 2. Combine the images into an ICO file. With ImageMagick: + ```sh convert FILENAME-256.png FILENAME-{48,32,16}{-indexed,}.png FILENAME.ico + ``` 3. Unfortunately, the 8-bit images have been converted back into 32-bit images. Open the icon in GIMP and re-export it. This will also convert the large 256 image into a compressed PNG. -4. Run src/tools/resources/optimize-ico-files.py on the resulting .ico file. -You can also run src/tools/resources/optimize-ico-files.py on existing .ico +4. Run `src/tools/resources/optimize-ico-files.py` on the resulting .ico file. + +You can also run `src/tools/resources/optimize-ico-files.py` on existing .ico files. This will convert BMPs to PNGs and run a basic PNG optimization pass, as well as fix up any broken image masks (http://crbug.com/534679).
diff --git a/chrome/browser/ash/login/hwid_checker.cc b/chrome/browser/ash/login/hwid_checker.cc index 2e928c2..70b778b 100644 --- a/chrome/browser/ash/login/hwid_checker.cc +++ b/chrome/browser/ash/login/hwid_checker.cc
@@ -172,12 +172,13 @@ if (stats->IsRunningOnVm()) return true; - std::string hwid; - if (!stats->GetMachineStatistic(chromeos::system::kHardwareClassKey, &hwid)) { + const absl::optional<base::StringPiece> hwid = + stats->GetMachineStatistic(chromeos::system::kHardwareClassKey); + if (!hwid) { LOG(ERROR) << "Couldn't get machine statistic 'hardware_class'."; return false; } - if (!IsHWIDCorrect(hwid)) { + if (!IsHWIDCorrect(std::string(hwid.value()))) { LOG(ERROR) << "Machine has malformed HWID '" << hwid << "'. "; return false; }
diff --git a/chrome/browser/ash/login/version_info_updater.cc b/chrome/browser/ash/login/version_info_updater.cc index 58aaeff0..550da568 100644 --- a/chrome/browser/ash/login/version_info_updater.cc +++ b/chrome/browser/ash/login/version_info_updater.cc
@@ -161,27 +161,27 @@ std::string device_ids_text; // Get the attested device ID and add the ZTE indication and the ID if needed. - std::string attested_device_id; - system::StatisticsProvider::GetInstance()->GetMachineStatistic( - chromeos::system::kAttestedDeviceIdKey, &attested_device_id); + const absl::optional<base::StringPiece> attested_device_id = + system::StatisticsProvider::GetInstance()->GetMachineStatistic( + chromeos::system::kAttestedDeviceIdKey); // Start with the ZTE indication and the attested device ID if it exists. - if (!attested_device_id.empty()) { + if (attested_device_id && !attested_device_id->empty()) { device_ids_text.append(kZteReady); // Always append the attested device ID. device_ids_text.append(" "); device_ids_text.append(kAttestedDeviceIdPrefix); - device_ids_text.append(attested_device_id); + device_ids_text.append(std::string(attested_device_id.value())); } // Get the serial number and add it. - std::string serial_number = - system::StatisticsProvider::GetInstance()->GetEnterpriseMachineID(); - if (!serial_number.empty()) { + const absl::optional<base::StringPiece> serial_number = + system::StatisticsProvider::GetInstance()->GetMachineID(); + if (serial_number && !serial_number->empty()) { if (!device_ids_text.empty()) device_ids_text.append(" "); // Append the serial number. device_ids_text.append(kSerialNumberPrefix); - device_ids_text.append(serial_number); + device_ids_text.append(std::string(serial_number.value())); } return device_ids_text;
diff --git a/chrome/browser/autofill_assistant/common_dependencies_chrome.cc b/chrome/browser/autofill_assistant/common_dependencies_chrome.cc index 2f109ba..4f61c0b1c 100644 --- a/chrome/browser/autofill_assistant/common_dependencies_chrome.cc +++ b/chrome/browser/autofill_assistant/common_dependencies_chrome.cc
@@ -128,10 +128,6 @@ return AnnotateDomModelServiceFactory::GetForBrowserContext(browser_context_); } -bool CommonDependenciesChrome::IsWebLayer() const { - return false; -} - signin::IdentityManager* CommonDependenciesChrome::GetIdentityManager() const { return IdentityManagerFactory::GetForProfile(GetProfile()); }
diff --git a/chrome/browser/autofill_assistant/common_dependencies_chrome.h b/chrome/browser/autofill_assistant/common_dependencies_chrome.h index f46d510..bf98b9c5 100644 --- a/chrome/browser/autofill_assistant/common_dependencies_chrome.h +++ b/chrome/browser/autofill_assistant/common_dependencies_chrome.h
@@ -66,7 +66,6 @@ // The AnnotateDomModelService is a KeyedService. There is only one per // BrowserContext. AnnotateDomModelService* GetOrCreateAnnotateDomModelService() const override; - bool IsWebLayer() const override; signin::IdentityManager* GetIdentityManager() const override; consent_auditor::ConsentAuditor* GetConsentAuditor() const override; version_info::Channel GetChannel() const override;
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn index 926d3a7..3ddb0a07 100644 --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -70,7 +70,6 @@ deps = [ ":jni_headers", "//components/autofill/core/browser:browser", - "//components/crash/core/common:crash_key", "//components/password_manager/core/browser:browser", "//components/password_manager/core/browser:password_form", "//components/password_manager/core/browser:unified_password_manager_proto",
diff --git a/chrome/browser/password_manager/android/password_store_android_backend.cc b/chrome/browser/password_manager/android/password_store_android_backend.cc index 3ceb44bc..6ead7355 100644 --- a/chrome/browser/password_manager/android/password_store_android_backend.cc +++ b/chrome/browser/password_manager/android/password_store_android_backend.cc
@@ -13,7 +13,6 @@ #include "base/barrier_callback.h" #include "base/callback.h" -#include "base/debug/dump_without_crashing.h" #include "base/functional/bind.h" #include "base/location.h" #include "base/memory/weak_ptr.h" @@ -33,7 +32,6 @@ #include "chrome/browser/password_manager/android/password_sync_controller_delegate_android.h" #include "chrome/browser/password_manager/android/password_sync_controller_delegate_bridge_impl.h" #include "components/autofill/core/common/autofill_regexes.h" -#include "components/crash/core/common/crash_key.h" #include "components/password_manager/core/browser/android_backend_error.h" #include "components/password_manager/core/browser/login_database.h" #include "components/password_manager/core/browser/password_form.h" @@ -579,44 +577,6 @@ histogram_suffix}); } -// TODO(crbug.com/1324588): Remove once the dumps are replaced by DCHECK. -void SendDumpWithInfo(absl::optional<std::string> signon_realm, - absl::optional<std::string> origin, - absl::optional<bool> is_username_empty, - absl::optional<bool> is_blocklisted, - absl::optional<PasswordForm::Scheme> scheme) { - static crash_reporter::CrashKeyString<1024> signon_realm_key( - "PwdMgr.BackendError.signon_realm"); - static crash_reporter::CrashKeyString<1024> origin_key( - "PwdMgr.BackendError.origin"); - static crash_reporter::CrashKeyString<6> is_username_empty_key( - "PwdMgr.BackendError.is_username_empty"); - static crash_reporter::CrashKeyString<6> is_blocklisted_key( - "PwdMgr.BackendError.is_blocklisted"); - static crash_reporter::CrashKeyString<6> scheme_key( - "PwdMgr.BackendError.scheme"); - - if (signon_realm.has_value()) { - signon_realm_key.Set(signon_realm->substr(0, 1020)); - } - if (origin.has_value()) { - origin_key.Set(origin->substr(0, 1020)); - } - if (is_username_empty.has_value()) { - is_username_empty_key.Set(is_username_empty.value() ? "true" : "false"); - } - if (is_blocklisted.has_value()) { - is_blocklisted_key.Set(is_blocklisted.value() ? "true" : "false"); - } - if (scheme.has_value()) { - scheme_key.Set(base::NumberToString(static_cast<int>(scheme.value()))); - } - - base::debug::DumpWithoutCrashing(); - signon_realm_key.Clear(); - origin_key.Clear(); -} - } // namespace class PasswordStoreAndroidBackend::ClearAllLocalPasswordsMetricRecorder { @@ -662,25 +622,21 @@ LoginsOrErrorReply callback, PasswordStoreBackendMetricsRecorder metrics_recorder, base::TimeDelta delay, - PasswordStoreOperation operation, - base::OnceClosure crash_dump_callback) + PasswordStoreOperation operation) : success_callback_(std::move(callback)), metrics_recorder_(std::move(metrics_recorder)), delay_(delay), - operation_(operation), - crash_dump_callback_(std::move(crash_dump_callback)) {} + operation_(operation) {} PasswordStoreAndroidBackend::JobReturnHandler::JobReturnHandler( PasswordChangesOrErrorReply callback, PasswordStoreBackendMetricsRecorder metrics_recorder, base::TimeDelta delay, - PasswordStoreOperation operation, - base::OnceClosure crash_dump_callback) + PasswordStoreOperation operation) : success_callback_(std::move(callback)), metrics_recorder_(std::move(metrics_recorder)), delay_(delay), - operation_(operation), - crash_dump_callback_(std::move(crash_dump_callback)) {} + operation_(operation) {} PasswordStoreAndroidBackend::JobReturnHandler::JobReturnHandler( JobReturnHandler&&) = default; @@ -693,10 +649,6 @@ metrics_recorder_.RecordMetrics(sucess_status, std::move(error)); } -void PasswordStoreAndroidBackend::JobReturnHandler::SendCrashDump() { - std::move(crash_dump_callback_).Run(); -} - base::TimeDelta PasswordStoreAndroidBackend::JobReturnHandler::GetElapsedTimeSinceStart() const { @@ -829,8 +781,7 @@ bridge_->AddLogin(form, GetAccount(GetSyncingAccount(sync_service_))); QueueNewJob(job_id, std::move(callback), MetricInfix("AddLoginAsync"), PasswordStoreOperation::kAddLoginAsync, - /*delay=*/base::Seconds(0), form.signon_realm, form.url.spec(), - form.username_value.empty(), form.blocked_by_user, form.scheme); + /*delay=*/base::Seconds(0)); } void PasswordStoreAndroidBackend::UpdateLoginAsync( @@ -842,8 +793,7 @@ bridge_->UpdateLogin(form, GetAccount(GetSyncingAccount(sync_service_))); QueueNewJob(job_id, std::move(callback), MetricInfix("UpdateLoginAsync"), PasswordStoreOperation::kUpdateLoginAsync, - /*delay=*/base::Seconds(0), form.signon_realm, form.url.spec(), - form.username_value.empty(), form.blocked_by_user, form.scheme); + /*delay=*/base::Seconds(0)); } void PasswordStoreAndroidBackend::RemoveLoginAsync( @@ -1152,10 +1102,6 @@ // TODO(crbug.com/1324588): DCHECK_EQ(api_error_code, // AndroidBackendAPIErrorCode::kDeveloperError) to catch dev errors. DCHECK_EQ(AndroidBackendErrorType::kExternalError, error.type); - if (error.api_error_code == - static_cast<int>(AndroidBackendAPIErrorCode::kBadRequest)) { - reply->SendCrashDump(); - } RecordApiErrorInCombinationWithSyncStatus(error.api_error_code.value(), sync_service_->GetAuthError()); @@ -1251,28 +1197,18 @@ } template <typename Callback> -void PasswordStoreAndroidBackend::QueueNewJob( - JobId job_id, - Callback callback, - MetricInfix metric_infix, - PasswordStoreOperation operation, - base::TimeDelta delay, - absl::optional<std::string> signon_realm, - absl::optional<std::string> origin, - absl::optional<bool> is_username_empty, - absl::optional<bool> is_blocklisted, - absl::optional<PasswordForm::Scheme> scheme) { +void PasswordStoreAndroidBackend::QueueNewJob(JobId job_id, + Callback callback, + MetricInfix metric_infix, + PasswordStoreOperation operation, + base::TimeDelta delay) { DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_checker_); request_for_job_.emplace( - job_id, - JobReturnHandler( - std::move(callback), - PasswordStoreBackendMetricsRecorder(BackendInfix("AndroidBackend"), - std::move(metric_infix)), - delay, operation, - base::BindOnce(SendDumpWithInfo, std::move(signon_realm), - std::move(origin), std::move(is_username_empty), - std::move(is_blocklisted), std::move(scheme)))); + job_id, JobReturnHandler( + std::move(callback), + PasswordStoreBackendMetricsRecorder( + BackendInfix("AndroidBackend"), std::move(metric_infix)), + delay, operation)); } absl::optional<PasswordStoreAndroidBackend::JobReturnHandler>
diff --git a/chrome/browser/password_manager/android/password_store_android_backend.h b/chrome/browser/password_manager/android/password_store_android_backend.h index 46a63f7..e9657375 100644 --- a/chrome/browser/password_manager/android/password_store_android_backend.h +++ b/chrome/browser/password_manager/android/password_store_android_backend.h
@@ -20,7 +20,6 @@ #include "chrome/browser/password_manager/android/password_store_android_backend_api_error_codes.h" #include "chrome/browser/password_manager/android/password_store_android_backend_bridge.h" #include "chrome/browser/password_manager/android/password_sync_controller_delegate_android.h" -#include "components/password_manager/core/browser/password_form.h" #include "components/password_manager/core/browser/password_store_backend.h" #include "components/password_manager/core/browser/password_store_backend_metrics_recorder.h" #include "components/password_manager/core/browser/password_store_util.h" @@ -116,13 +115,11 @@ JobReturnHandler(LoginsOrErrorReply callback, PasswordStoreBackendMetricsRecorder metrics_recorder, base::TimeDelta delay, - PasswordStoreOperation operation, - base::OnceClosure crash_dump_callback); + PasswordStoreOperation operation); JobReturnHandler(PasswordChangesOrErrorReply callback, PasswordStoreBackendMetricsRecorder metrics_recorder, base::TimeDelta delay, - PasswordStoreOperation operation, - base::OnceClosure crash_dump_callback); + PasswordStoreOperation operation); JobReturnHandler(JobReturnHandler&&); JobReturnHandler& operator=(JobReturnHandler&&) = delete; ~JobReturnHandler(); @@ -139,8 +136,6 @@ void RecordMetrics(absl::optional<AndroidBackendError> error) const; base::TimeDelta GetElapsedTimeSinceStart() const; - // TODO(crbug.com/1324588): Remove after disabling crash dumps. - void SendCrashDump(); base::TimeDelta GetDelay(); PasswordStoreOperation GetOperation(); @@ -151,7 +146,6 @@ PasswordStoreBackendMetricsRecorder metrics_recorder_; base::TimeDelta delay_; PasswordStoreOperation operation_; - base::OnceClosure crash_dump_callback_; }; using JobId = PasswordStoreAndroidBackendBridge::JobId; @@ -244,8 +238,6 @@ void OnError(PasswordStoreAndroidBackendBridge::JobId job_id, AndroidBackendError error) override; - // TODO(crbug.com/1324588): Remove signon_realm and origin after disabling - // crash dumps. template <typename Callback> // Calling this method can be delayed in the case when a retry is scheduled. // Since the retry logic implements exponential backoff the duration of the @@ -256,12 +248,7 @@ Callback callback, MetricInfix metric_infix, PasswordStoreOperation operation, - base::TimeDelta delay, - absl::optional<std::string> signon_realm = absl::nullopt, - absl::optional<std::string> origin = absl::nullopt, - absl::optional<bool> is_username_empty = absl::nullopt, - absl::optional<bool> is_blocklisted = absl::nullopt, - absl::optional<PasswordForm::Scheme> scheme = absl::nullopt); + base::TimeDelta delay); absl::optional<JobReturnHandler> GetAndEraseJob(JobId job_id); // Gets logins matching |form|.
diff --git a/chrome/browser/payments/chrome_payment_request_delegate.cc b/chrome/browser/payments/chrome_payment_request_delegate.cc index 688bcc7..29b3048 100644 --- a/chrome/browser/payments/chrome_payment_request_delegate.cc +++ b/chrome/browser/payments/chrome_payment_request_delegate.cc
@@ -252,6 +252,11 @@ std::move(opt_out_callback)); } +content::RenderFrameHost* ChromePaymentRequestDelegate::GetRenderFrameHost() + const { + return content::RenderFrameHost::FromID(frame_routing_id_); +} + std::unique_ptr<webauthn::InternalAuthenticator> ChromePaymentRequestDelegate::CreateInternalAuthenticator() const { // This authenticator can be used in a cross-origin iframe only if the @@ -310,10 +315,6 @@ : ""; } -bool ChromePaymentRequestDelegate::SkipUiForBasicCard() const { - return false; // Only tests do this. -} - std::string ChromePaymentRequestDelegate::GetTwaPackageName() const { #if BUILDFLAG(IS_CHROMEOS_ASH) auto* rfh = content::RenderFrameHost::FromID(frame_routing_id_);
diff --git a/chrome/browser/payments/chrome_payment_request_delegate.h b/chrome/browser/payments/chrome_payment_request_delegate.h index f703a16..c484a0644 100644 --- a/chrome/browser/payments/chrome_payment_request_delegate.h +++ b/chrome/browser/payments/chrome_payment_request_delegate.h
@@ -57,6 +57,7 @@ base::OnceClosure opt_out_callback) override; // ContentPaymentRequestDelegate: + content::RenderFrameHost* GetRenderFrameHost() const override; std::unique_ptr<webauthn::InternalAuthenticator> CreateInternalAuthenticator() const override; scoped_refptr<PaymentManifestWebDataService> @@ -67,7 +68,6 @@ PaymentHandlerOpenWindowCallback callback) override; bool IsInteractive() const override; std::string GetInvalidSslCertificateErrorMessage() override; - bool SkipUiForBasicCard() const override; std::string GetTwaPackageName() const override; PaymentRequestDialog* GetDialogForTesting() override; SecurePaymentConfirmationNoCreds* GetNoMatchingCredentialsDialogForTesting() @@ -90,7 +90,7 @@ std::unique_ptr<SecurePaymentConfirmationNoCreds> spc_no_creds_dialog_; - content::GlobalRenderFrameHostId frame_routing_id_; + const content::GlobalRenderFrameHostId frame_routing_id_; }; } // namespace payments
diff --git a/chrome/browser/privacy_sandbox/android/BUILD.gn b/chrome/browser/privacy_sandbox/android/BUILD.gn index f086bbb13..2da63d4a 100644 --- a/chrome/browser/privacy_sandbox/android/BUILD.gn +++ b/chrome/browser/privacy_sandbox/android/BUILD.gn
@@ -32,6 +32,7 @@ "java/src/org/chromium/chrome/browser/privacy_sandbox/Topic.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TopicPreference.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxDialogNoticeEEAV4.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4.java", ] deps = [ ":java_resources", @@ -119,6 +120,7 @@ "java/res/xml/learn_more_preference.xml", "java/res/xml/privacy_sandbox_preferences.xml", "java/res/xml/privacy_sandbox_preferences_v3.xml", + "java/res/xml/privacy_sandbox_preferences_v4.xml", "java/res/xml/spam_fraud_preference.xml", ] deps = [
diff --git a/chrome/browser/privacy_sandbox/android/java/res/xml/privacy_sandbox_preferences_v4.xml b/chrome/browser/privacy_sandbox/android/java/res/xml/privacy_sandbox_preferences_v4.xml new file mode 100644 index 0000000..691bafb --- /dev/null +++ b/chrome/browser/privacy_sandbox/android/java/res/xml/privacy_sandbox_preferences_v4.xml
@@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?><!-- +Copyright 2022 The Chromium Authors +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. +--> + +<!-- TODO(http://b/254413937): Populate page with required elements/toggles. --> +<PreferenceScreen></PreferenceScreen>
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxBottomSheetNotice.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxBottomSheetNotice.java index f73f2e0d..c9ef7b4 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxBottomSheetNotice.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxBottomSheetNotice.java
@@ -82,7 +82,7 @@ PrivacySandboxBridge.promptActionOccurred(PromptAction.NOTICE_OPEN_SETTINGS); mBottomSheetController.hideContent(this, /* animate= */ true, BottomSheetController.StateChangeReason.INTERACTION_COMPLETE); - PrivacySandboxSettingsFragmentV3.launchPrivacySandboxSettings( + PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings( mContext, mSettingsLauncher, PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE); }); }
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogNotice.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogNotice.java index d003747..1ccd010 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogNotice.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxDialogNotice.java
@@ -51,7 +51,7 @@ } else if (id == R.id.settings_button) { PrivacySandboxBridge.promptActionOccurred(PromptAction.NOTICE_OPEN_SETTINGS); dismiss(); - PrivacySandboxSettingsFragmentV3.launchPrivacySandboxSettings( + PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings( mContext, mSettingsLauncher, PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE); } }
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxReferrer.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxReferrer.java index e130b50..fd4d9e52 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxReferrer.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxReferrer.java
@@ -15,7 +15,7 @@ * enums.xml. */ @IntDef({PrivacySandboxReferrer.PRIVACY_SETTINGS, PrivacySandboxReferrer.COOKIES_SNACKBAR, - PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE}) + PrivacySandboxReferrer.PRIVACY_SANDBOX_NOTICE, PrivacySandboxReferrer.COUNT}) @Retention(RetentionPolicy.SOURCE) public @interface PrivacySandboxReferrer { /**
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java index fd60bb8d..a942949 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsBaseFragment.java
@@ -3,6 +3,7 @@ // found in the LICENSE file. package org.chromium.chrome.browser.privacy_sandbox; +import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -17,6 +18,11 @@ import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import org.chromium.base.IntentUtils; +import org.chromium.base.metrics.RecordHistogram; +import org.chromium.base.metrics.RecordUserAction; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.privacy_sandbox.v4.PrivacySandboxSettingsFragmentV4; +import org.chromium.components.browser_ui.settings.SettingsLauncher; /** * Base class for PrivacySandboxSettings related Fragments. Initializes the options menu to @@ -25,8 +31,32 @@ * Subclasses have to call super.onCreatePreferences(bundle, s) when overriding onCreatePreferences. */ public abstract class PrivacySandboxSettingsBaseFragment extends PreferenceFragmentCompat { + // Key for the argument with which the PrivacySandbox fragment will be launched. The value for + // this argument should be part of the PrivacySandboxReferrer enum, which contains all points of + // entry to the Privacy Sandbox UI. + public static final String PRIVACY_SANDBOX_REFERRER = "privacy-sandbox-referrer"; + private PrivacySandboxHelpers.CustomTabIntentHelper mCustomTabHelper; + /** + * Launches the right version of PrivacySandboxSettings depending on feature flags. + */ + public static void launchPrivacySandboxSettings(Context context, + SettingsLauncher settingsLauncher, @PrivacySandboxReferrer int referrer) { + Bundle fragmentArgs = new Bundle(); + fragmentArgs.putInt(PRIVACY_SANDBOX_REFERRER, referrer); + var fragment = ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) + ? PrivacySandboxSettingsFragmentV4.class + : PrivacySandboxSettingsFragmentV3.class; + settingsLauncher.launchSettingsActivity(context, fragment, fragmentArgs); + } + + public static CharSequence getStatusString(Context context) { + return context.getString(PrivacySandboxBridge.isPrivacySandboxEnabled() + ? R.string.privacy_sandbox_status_enabled + : R.string.privacy_sandbox_status_disabled); + } + @Override public void onCreatePreferences(@Nullable Bundle bundle, @Nullable String s) { // Enable the options menu to be able to use a custom question mark button. @@ -75,4 +105,21 @@ IntentUtils.addTrustedIntentExtras(intent); IntentUtils.safeStartActivity(getContext(), intent); } + + protected void parseAndRecordReferrer() { + Bundle extras = getArguments(); + assert (extras != null) + && extras.containsKey(PRIVACY_SANDBOX_REFERRER) + : "PrivacySandboxSettingsFragment must be launched with a privacy-sandbox-referrer " + + "fragment argument, but none was provided."; + int referrer = extras.getInt(PRIVACY_SANDBOX_REFERRER); + // Record all the referrer metrics. + RecordHistogram.recordEnumeratedHistogram("Settings.PrivacySandbox.PrivacySandboxReferrer", + referrer, PrivacySandboxReferrer.COUNT); + if (referrer == PrivacySandboxReferrer.PRIVACY_SETTINGS) { + RecordUserAction.record("Settings.PrivacySandbox.OpenedFromSettingsParent"); + } else if (referrer == PrivacySandboxReferrer.COOKIES_SNACKBAR) { + RecordUserAction.record("Settings.PrivacySandbox.OpenedFromCookiesPageToast"); + } + } }
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragment.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragment.java index b4d05c9..ccf7d754 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragment.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragment.java
@@ -4,7 +4,6 @@ package org.chromium.chrome.browser.privacy_sandbox; -import android.content.Context; import android.os.Bundle; import androidx.preference.Preference; @@ -39,12 +38,6 @@ private @PrivacySandboxReferrer int mPrivacySandboxReferrer; - public static CharSequence getStatusString(Context context) { - return context.getString(PrivacySandboxBridge.isPrivacySandboxEnabled() - ? R.string.privacy_sandbox_status_enabled - : R.string.privacy_sandbox_status_disabled); - } - /** * Initializes all the objects related to the preferences page. */
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragmentV3.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragmentV3.java index 3c452e0..0c75db82 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragmentV3.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSettingsFragmentV3.java
@@ -4,22 +4,17 @@ package org.chromium.chrome.browser.privacy_sandbox; -import android.content.Context; import android.os.Bundle; import android.text.SpannableString; import android.text.Spanned; import android.text.style.ForegroundColorSpan; import androidx.preference.Preference; -import androidx.preference.PreferenceFragmentCompat; -import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.components.browser_ui.settings.ChromeBasePreference; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; -import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; /** @@ -28,35 +23,16 @@ public class PrivacySandboxSettingsFragmentV3 extends PrivacySandboxSettingsBaseFragment implements Preference.OnPreferenceChangeListener { public static final String PRIVACY_SANDBOX_URL = "https://www.privacysandbox.com"; - // Key for the argument with which the PrivacySandbox fragment will be launched. The value for - // this argument should be part of the PrivacySandboxReferrer enum, which contains all points of - // entry to the Privacy Sandbox UI. - public static final String PRIVACY_SANDBOX_REFERRER = "privacy-sandbox-referrer"; public static final String TOGGLE_PREFERENCE = "privacy_sandbox_toggle"; public static final String LEARN_MORE_PREFERENCE = "privacy_sandbox_learn_more"; /** - * Launches the right version of PrivacySandboxSettings depending on feature flags. - */ - public static void launchPrivacySandboxSettings(Context context, - SettingsLauncher settingsLauncher, @PrivacySandboxReferrer int referrer) { - Bundle fragmentArgs = new Bundle(); - fragmentArgs.putInt(PRIVACY_SANDBOX_REFERRER, referrer); - Class<? extends PreferenceFragmentCompat> fragment = - ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3) - ? PrivacySandboxSettingsFragmentV3.class - : PrivacySandboxSettingsFragment.class; - settingsLauncher.launchSettingsActivity(context, fragment, fragmentArgs); - } - - /** * Initializes all the objects related to the preferences page. */ @Override public void onCreatePreferences(Bundle bundle, String s) { super.onCreatePreferences(bundle, s); - assert ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_3); // Add all preferences and set the title. getActivity().setTitle(R.string.prefs_privacy_sandbox); @@ -99,21 +75,4 @@ return false; }; } - - private void parseAndRecordReferrer() { - Bundle extras = getArguments(); - assert (extras != null) - && extras.containsKey(PRIVACY_SANDBOX_REFERRER) - : "PrivacySandboxSettingsFragment must be launched with a privacy-sandbox-referrer " - + "fragment argument, but none was provided."; - int referrer = extras.getInt(PRIVACY_SANDBOX_REFERRER); - // Record all the referrer metrics. - RecordHistogram.recordEnumeratedHistogram("Settings.PrivacySandbox.PrivacySandboxReferrer", - referrer, PrivacySandboxReferrer.COUNT); - if (referrer == PrivacySandboxReferrer.PRIVACY_SETTINGS) { - RecordUserAction.record("Settings.PrivacySandbox.OpenedFromSettingsParent"); - } else if (referrer == PrivacySandboxReferrer.COOKIES_SNACKBAR) { - RecordUserAction.record("Settings.PrivacySandbox.OpenedFromCookiesPageToast"); - } - } }
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSnackbarController.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSnackbarController.java index 9cbc28a..8000048f 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSnackbarController.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSnackbarController.java
@@ -55,7 +55,7 @@ // Implement SnackbarController. @Override public void onAction(Object actionData) { - PrivacySandboxSettingsFragmentV3.launchPrivacySandboxSettings( + PrivacySandboxSettingsBaseFragment.launchPrivacySandboxSettings( mContext, mSettingsLauncher, PrivacySandboxReferrer.COOKIES_SNACKBAR); }
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4.java new file mode 100644 index 0000000..b494786 --- /dev/null +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/v4/PrivacySandboxSettingsFragmentV4.java
@@ -0,0 +1,31 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.privacy_sandbox.v4; + +import android.os.Bundle; + +import androidx.annotation.Nullable; + +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment; +import org.chromium.chrome.browser.privacy_sandbox.R; +import org.chromium.components.browser_ui.settings.SettingsUtils; + +/** + * Settings fragment for privacy sandbox settings. + */ +public class PrivacySandboxSettingsFragmentV4 extends PrivacySandboxSettingsBaseFragment { + @Override + public void onCreatePreferences(@Nullable Bundle bundle, @Nullable String s) { + super.onCreatePreferences(bundle, s); + assert ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4); + + // Add all preferences and set the title + getActivity().setTitle(R.string.ad_privacy_page_title); + SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_sandbox_preferences_v4); + + parseAndRecordReferrer(); + } +}
diff --git a/chrome/browser/resources/README.md b/chrome/browser/resources/README.md new file mode 100644 index 0000000..81ae136 --- /dev/null +++ b/chrome/browser/resources/README.md
@@ -0,0 +1,4 @@ +If the resource that you want to check in is product-branded and/or trademarked, +please read the docs on +[Google Chrome branding](../../../docs/google_chrome_branded_builds.md) to +determine the correct steps to take.
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb index 1d71e65..6c95f6e 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">চেকবক্স থকা মেনুৰ বস্তু</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ডলাৰ}one{#টা ডলাৰ চিহ্ন}other{#টা ডলাৰ চিহ্ন}}</translation> <translation id="3659787053479271466">সতৰ্ক</translation> +<translation id="3661265561216135784">পুনৰাবৃত্তি কৰক</translation> <translation id="366419593095697301">ইংগিত: আপুনি যদি এই টিউট’ৰিয়েলটোৰ পৰা বাহিৰ হ'বলৈ বিচাৰে তেন্তে এস্কে’প টিপক।</translation> <translation id="3676062394766691318">আপুনি নিজৰ ডিভাইচ ছেট আপ কৰাৰ পাছত, আপুনি উভতি আহিব পাৰে আৰু প্ৰথমে ছাৰ্চ + অ' টিপি তাৰ পাছত টি টিপি অধিক টিউট’ৰিয়েল চাব পাৰে।</translation> <translation id="3681531118904532409">পাপায়া হুইপ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb index ae8c6b8..08221a2 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_be.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">пнктменюполдптушкі</translation> <translation id="3655855170848725876">{COUNT,plural, =1{долар}one{# знак долара}few{# знакі долара}many{# знакаў долара}other{# знака долара}}</translation> <translation id="3659787053479271466">абвестка</translation> +<translation id="3661265561216135784">паўтары</translation> <translation id="366419593095697301">Падказка: калі вы захочаце выйсці з дапаможніка, націсніце клавішу Esc.</translation> <translation id="3676062394766691318">Пасля наладкі прылады вы зможаце прагледзець іншыя дапаможнікі – для гэтага вам трэба будзе націснуць Пошук + O, затым T.</translation> <translation id="3681531118904532409">Папаевы крэм</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb index f3fe7fc..dc2d4b14 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{знак за долар}other{# знака за долар}}</translation> <translation id="3659787053479271466">сигнал</translation> +<translation id="3661265561216135784">повторете</translation> <translation id="366419593095697301">Съвет: Натиснете клавиша Escape, ако искате да излезете от този урок.</translation> <translation id="3676062394766691318">След като настроите устройството си, можете да се върнете и да разгледате още уроци, като натиснете клавиша „търсене“ + O и след това T.</translation> <translation id="3681531118904532409">папая</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb index f9308b31..f8af831 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bn.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ডলার}one{#টি ডলার চিহ্ন}other{#টি ডলার চিহ্ন}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">পুনরাবৃত্তি</translation> <translation id="366419593095697301">ইঙ্গিত: আপনি এই টিউটোরিয়াল থেকে বেরিয়ে আসতে চাইলে, Escape কী প্রেস করুন।</translation> <translation id="3676062394766691318">আপনার ডিভাইস সেট আপ করার পরে, আপনি ফিরে এসে Search + O কী তারপরে T কী প্রেস করে আরও টিউটোরিয়াল দেখতে পারেন।</translation> <translation id="3681531118904532409">পাপায়া হুইপ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb index a931302..c1935fe 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ca.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dòlar}other{# símbols de dòlar}}</translation> <translation id="3659787053479271466">alerta</translation> +<translation id="3661265561216135784">repeteix</translation> <translation id="366419593095697301">Suggeriment: si vols sortir del tutorial, prem la tecla d'escapada.</translation> <translation id="3676062394766691318">Després de configurar el dispositiu, pots tornar i veure més tutorials prement la tecla Cerca+O i, després, T.</translation> <translation id="3681531118904532409">Papaia clar</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb index aa264343..417ce3bc 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cs.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">zaškrt pol nabíd</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}few{# znaky dolar}many{# dollar signs}other{# znaků dolar}}</translation> <translation id="3659787053479271466">upoz</translation> +<translation id="3661265561216135784">opakovat</translation> <translation id="366419593095697301">Tip: Tento výukový program můžete opustit stisknutím klávesy Escape.</translation> <translation id="3676062394766691318">Po nastavení zařízení se můžete vrátit a stisknutím kombinace kláves Hledat + Q a poté klávesy T zobrazit další výukové programy.</translation> <translation id="3681531118904532409">Papájová</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cy.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cy.xtb index 7588b771..d48ad2a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cy.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_cy.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">blwdewlnetm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{doler}zero{# arwydd doler}two{# arwydd doler}few{# arwydd doler}many{# arwydd doler}other{# arwydd doler}}</translation> <translation id="3659787053479271466">rhbdd</translation> +<translation id="3661265561216135784">ailadrodd</translation> <translation id="366419593095697301">Awgrym: Pwyswch Escape os hoffech adael y tiwtorial hwn.</translation> <translation id="3676062394766691318">Ar ôl i chi osod eich dyfais, gallwch ddod yn ôl a gweld rhagor o sesiynau tiwtorial drwy bwyso Search + O, yna T.</translation> <translation id="3681531118904532409">Chwip Papaya</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb index 4e72c773..63f9a1cf 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{Dollarzeichen}other{# Dollarzeichen}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">wiederholen</translation> <translation id="366419593095697301">Hinweis: Wenn du diese Anleitung beenden möchtest, drücke die Escape-Taste.</translation> <translation id="3676062394766691318">Nachdem du dein Gerät eingerichtet hast, findest du hier noch weitere Anleitungen. Drücke dazu „Suchtaste + O“ und dann „T“.</translation> <translation id="3681531118904532409">Helles Orangegelb</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb index 369aabc..fa29161 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dólar}other{# signos de dólar}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">repetir</translation> <translation id="366419593095697301">Sugerencia: Para salir del instructivo, presiona Escape.</translation> <translation id="3676062394766691318">Después de configurar el dispositivo, puedes regresar y ver más instructivos. Para hacerlo, presiona Búsqueda + O y, luego, T.</translation> <translation id="3681531118904532409">Fusta de papaya</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb index 924fe61..90e875f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dólar}other{# símbolos de dólar}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">repetir</translation> <translation id="366419593095697301">Sugerencia: Pulsa Esc si quieres salir de este tutorial.</translation> <translation id="3676062394766691318">Cuando hayas configurado el dispositivo, puedes volver a esta página y ver más tutoriales pulsando la tecla de búsqueda + O y, a continuación, T.</translation> <translation id="3681531118904532409">Papaya</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb index 4f1736b9..d451b3d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_et.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollar}other{# dollarimärki}}</translation> <translation id="3659787053479271466">alarm</translation> +<translation id="3661265561216135784">korda</translation> <translation id="366419593095697301">Nõuanne: õpetusest väljumiseks vajutage paoklahvi.</translation> <translation id="3676062394766691318">Pärast seadme seadistamist võite siia naasta ja vaadata veel õpetusi, vajutades otsinguklahvi + klahvi O ja seejärel klahvi T.</translation> <translation id="3681531118904532409">Papaiaoranž</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb index 417f2cd..695b53ae 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_eu.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar ikur}other{# dolar ikur}}</translation> <translation id="3659787053479271466">alerta</translation> +<translation id="3661265561216135784">errepikatu</translation> <translation id="366419593095697301">Aholkua: sakatu Ihes tekla tutorialetik irten nahi baduzu.</translation> <translation id="3676062394766691318">Gailua konfiguratzen duzunean, hona itzul zaitezke tutorial gehiago ikusteko. Horretarako, sakatu bilaketa-tekla + O eta, gero, T.</translation> <translation id="3681531118904532409">Papaia-kolorekoa</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb index 81dac2b..d934be38 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollari}other{# dollarimerkkiä}}</translation> <translation id="3659787053479271466">ilm.</translation> +<translation id="3661265561216135784">toista</translation> <translation id="366419593095697301">Vinkki: Paina Esc-näppäintä, jos haluat poistua tästä ohjeesta.</translation> <translation id="3676062394766691318">Kun olet ottanut laitteen käyttöön, voit palata ja katsoa muita ohjeita painamalla Haku + O ja sitten T.</translation> <translation id="3681531118904532409">Papaija</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb index b8ae722..5e056ee2 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollar}one{# dollar}other{# dollars}}</translation> <translation id="3659787053479271466">alerte</translation> +<translation id="3661265561216135784">répéter</translation> <translation id="366419593095697301">Indice : Appuyez sur Échap lorsque vous souhaitez quitter ce tutoriel.</translation> <translation id="3676062394766691318">Après avoir configuré votre appareil, vous pourrez revenir pour consulter d'autres tutoriels en appuyant sur Recherche+O, puis sur T.</translation> <translation id="3681531118904532409">Chair clair</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb index fc051996..d9ad222c 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dólar}other{# signos do dólar}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">repite</translation> <translation id="366419593095697301">Suxestión: Preme Escape se queres saír deste titorial.</translation> <translation id="3676062394766691318">Unha vez que o teu dispositivo estea configurado, podes volver e ver máis titoriais premendo Buscar + O e, despois, T.</translation> <translation id="3681531118904532409">Batido de papaia</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb index 6fd0c988..1163b90 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ડૉલર}one{# ડૉલરની નિશાની}other{# ડૉલરની નિશાની}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">રિપીટ</translation> <translation id="366419593095697301">હિન્ટ: જો તમે આ ટ્યૂટૉરિઅલમાંથી બહાર નીકળવા માગો, તો Escape દબાવો.</translation> <translation id="3676062394766691318">તમે તમારા ડિવાઇસનું સેટઅપ કરી લો તે પછી તમે પાછા આવીને Search + O અને ત્યાર બાદ T દબાવીને વધુ ટ્યૂટૉરિઅલ જોઈ શકો છો.</translation> <translation id="3681531118904532409">પપાયા વ્હિપ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb index 64995e9..cf897956 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hi.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{डॉलर}one{# डॉलर चिह्न}other{# डॉलर चिह्न}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">दोहराएं</translation> <translation id="366419593095697301">ध्यान दें: अगर आप यह ट्यूटोरियल बंद करना चाहते हैं, तो Escape बटन दबाएं.</translation> <translation id="3676062394766691318">अपना डिवाइस सेट अप करने के बाद, आप वापस आकर और ट्यूटोरियल देख सकते हैं. इसके लिए, आपको खोज बटन और O और फिर T दबाना होगा.</translation> <translation id="3681531118904532409">पपाया विप जैसा रंग</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb index 6f7e299..11a62fd 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{դոլար}one{# դոլարի նշան}other{# դոլարի նշան}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">repeat (կրկնել)</translation> <translation id="366419593095697301">Հուշում․ ուղեցույցից դուրս գալու համար սեղմեք Esc։</translation> <translation id="3676062394766691318">Սարքը կարգավորելուց հետո դուք կարող եք ծանոթանալ նաև այլ ուղեցույցների՝ սեղմելով «Որոնում» + O, այնուհետև T։</translation> <translation id="3681531118904532409">Խամրած ծիրանագույն</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb index bc9189b..dffbe32 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{доллар}other{# доллар белгісі}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">қайталау</translation> <translation id="366419593095697301">Сөзкөмек: осы оқулықтан шыққыңыз келсе, Esc пернесін басыңыз.</translation> <translation id="3676062394766691318">Құрылғыны реттеп болғаннан кейін, "Іздеу + O", сонан соң T пернелерін басу арқылы оқулыққа оралып, басқа сабақтарды көре аласыз.</translation> <translation id="3681531118904532409">Қауын түстес сары</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb index 2c86f03a..fcc8a0f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ಡಾಲರ್}one{# ಡಾಲರ್ ಚಿಹ್ನೆಗಳು}other{# ಡಾಲರ್ ಚಿಹ್ನೆಗಳು}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">ಪುನರಾವರ್ತಿಸಿ</translation> <translation id="366419593095697301">ಸುಳಿವು: ನೀವು ಈ ಟ್ಯುಟೋರಿಯಲ್ನಿಂದ ನಿರ್ಗಮಿಸಲು ಬಯಸಿದರೆ Escape ಒತ್ತಿರಿ.</translation> <translation id="3676062394766691318">ನಿಮ್ಮ ಸಾಧನವನ್ನು ನೀವು ಹೊಂದಿಸಿದ ನಂತರ, ನೀವು ಹಿಂತಿರುಗಿ ಬಂದು, ಹುಡುಕಾಟ + O, ನಂತರ T ಅನ್ನು ಒತ್ತುವ ಮೂಲಕ ಇನ್ನಷ್ಟು ಟ್ಯುಟೋರಿಯಲ್ಗಳನ್ನು ವೀಕ್ಷಿಸಬಹುದು.</translation> <translation id="3681531118904532409">ಪಪಾಯ ವಿಪ್</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb index b4d5744..cf8276eb 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ky.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{доллар}other{# доллар белгиси}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">кайталоо</translation> <translation id="366419593095697301">Кыйытма: Бул үйрөткүчтөн чыгуу үчүн Escape баскычын басыңыз.</translation> <translation id="3676062394766691318">Түзмөгүңүздү жөндөп бүткөнүңүздөн кийин кайтып келип, Издөө + О, андан соң Т баскычын басып, дагы башка үйрөткүчтөрдү көрө аласыз.</translation> <translation id="3681531118904532409">Папайя түсүндөй саргыч ыраң</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb index 7be8ad81..01454e8 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ഡോളർ}other{# ഡോളർ ചിഹ്നങ്ങൾ}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">ആവർത്തിക്കുക</translation> <translation id="366419593095697301">സൂചന: ഈ ട്യൂട്ടോറിയലിൽ നിന്ന് പുറത്തുകടക്കണമെങ്കിൽ Escape അമർത്തുക.</translation> <translation id="3676062394766691318">നിങ്ങളുടെ ഉപകരണം സജ്ജീകരിച്ചതിന് ശേഷം മടങ്ങിയെത്തി തിരയൽ + O, അമർത്തുക, തുടർന്ന് T അമർത്തി കൂടുതൽ ട്യൂട്ടോറിയലുകൾ കാണാം.</translation> <translation id="3681531118904532409">പപ്പായ വിപ്പ്</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb index 4c02d45..98cf773f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{डॉलर}other{# डॉलर चिन्हे}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">पुनरावृत्ती</translation> <translation id="366419593095697301">सूचना: तुम्हाला या ट्युटोरियलमधून बाहेर पडायचे असल्यास, एस्केप दाबा.</translation> <translation id="3676062394766691318">तुम्ही तुमचे डिव्हाइस सेट केल्यानंतर, तुम्ही परत येऊ शकता आणि Search + O त्यानंतर T दाबून आणखी ट्यूटोरियल पाहू शकता.</translation> <translation id="3681531118904532409">हलका गुलाबी</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb index 8ea2254..b69e0b0 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}other{# tanda dolar}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">ulang</translation> <translation id="366419593095697301">Pembayang: Tekan Escape jika anda ingin keluar daripada tutorial ini.</translation> <translation id="3676062394766691318">Selepas menyediakan peranti, anda boleh kembali dan melihat pelbagai lagi tutorial dengan menekan Carian + O, kemudian T.</translation> <translation id="3681531118904532409">Air Betik</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb index 41b1b51..1690c0d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ डलर}other{ # डलर संकेतहरू}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">दोहोर्याइयोस्</translation> <translation id="366419593095697301">ध्यान दिनुहोस्: तपाईं यो ट्युटोरियलबाट बाहिरिन चाहनुहुन्छ भने Escape की थिच्नुहोस्।</translation> <translation id="3676062394766691318">तपाईंले आफ्नो यन्त्र सेटअप गरेपछि तपाईं पछाडि आएर Search + O अनि T की थिचेर थप ट्युटोरियलहरू हेर्न सक्नुहुन्छ।</translation> <translation id="3681531118904532409">मेवा जस्तो पहेँलो</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb index 25cf5535..5fc5fc1 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pl.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}few{# znaki dolara}many{# znaków dolara}other{# dollar signs}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">powtórz</translation> <translation id="366419593095697301">Wskazówka: jeśli zechcesz zamknąć ten samouczek, naciśnij klawisz Esc.</translation> <translation id="3676062394766691318">Gdy już skonfigurujesz swoje urządzenie, możesz tu wrócić i wyświetlić kolejne samouczki, naciskając najpierw klawisz wyszukiwania + O, a następnie T.</translation> <translation id="3681531118904532409">Papaja</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb index e72442f..d2cc45bd 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollar}other{# shenja dollari}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">përsërit</translation> <translation id="366419593095697301">Sugjerim: Shtyp Escape nëse dëshiron të dalësh nga ky tutorial.</translation> <translation id="3676062394766691318">Pasi të konfigurosh pajisjen tënde, mund të kthehesh dhe të shikosh më shumë udhëzues duke shtypur Search + O, më pas T.</translation> <translation id="3681531118904532409">Papaja e rrahur</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb index 1388521..a19b4453 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">menyalternativ med kryssruta</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollartecken}other{# dollartecken}}</translation> <translation id="3659787053479271466">varning</translation> +<translation id="3661265561216135784">upprepa</translation> <translation id="366419593095697301">Tips! Tryck på Esc om du vill avsluta självstudierna.</translation> <translation id="3676062394766691318">När du har konfigurerat enheten kan du komma tillbaka senare och göra fler självstudier genom att trycka på Sök + O och sedan T.</translation> <translation id="3681531118904532409">Papayakrämorange</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb index d2b70db..9d11897 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{டாலர் குறி}other{# டாலர் குறிகள்}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">திரும்பச் செய்</translation> <translation id="366419593095697301">குறிப்பு: இந்தப் பயிற்சியிலிருந்து வெளியேற விரும்பினால் Escape விசையை அழுத்துங்கள்.</translation> <translation id="3676062394766691318">உங்கள் சாதனத்தை அமைத்ததும், Search + O விசைகளை அழுத்திய பின் T விசையை அழுத்தி கூடுதல் பயிற்சிகளைப் பார்க்கலாம்.</translation> <translation id="3681531118904532409">பப்பாயா விப்</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb index 49dd3d5..ecef287 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
@@ -424,6 +424,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{డాలర్ గుర్తు}other{# డాలర్ గుర్తులు}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">రిపీట్ చేయి</translation> <translation id="366419593095697301">సూచన: మీరు ట్యుటోరియల్ను నిష్క్రమించాలనుకుంటే ఎస్కేప్ను నొక్కండి.</translation> <translation id="3676062394766691318">మీరు పరికరాన్ని సెటప్ చేసిన తర్వాత, సెర్చ్ + O, ఆపై Tని నొక్కడం ద్వారా మీరు తిరిగి వచ్చి మరిన్ని ట్యుటోరియల్లను చూడవచ్చు.</translation> <translation id="3681531118904532409">బొప్పాయి పసుపు రంగు</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb index 7b138c5..a759493e 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_tr.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar işareti}other{# dolar işareti}}</translation> <translation id="3659787053479271466">alrt</translation> +<translation id="3661265561216135784">tekrarla</translation> <translation id="366419593095697301">İpucu: Bu eğitimden çıkmak isterseniz Escape tuşuna basın.</translation> <translation id="3676062394766691318">Cihazınızı kurduktan sonra geri dönüp Arama + O tuşlarına, sonra da T tuşuna basarak diğer eğiticileri görüntüleyebilirsiniz.</translation> <translation id="3681531118904532409">Papaya Rengi</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb index fd800172..8d641ad 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
@@ -423,6 +423,7 @@ <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{1个美元符号}other{#个美元符号}}</translation> <translation id="3659787053479271466">提醒</translation> +<translation id="3661265561216135784">重复</translation> <translation id="366419593095697301">提示:如果您想退出此教程,请按 Esc 键。</translation> <translation id="3676062394766691318">设置完设备后,您只需按搜索键 + O 键然后按 T 键,即可回到此处查看更多教程。</translation> <translation id="3681531118904532409">蕃木瓜色</translation>
diff --git a/chrome/browser/resources/chromeos/cloud_upload/BUILD.gn b/chrome/browser/resources/chromeos/cloud_upload/BUILD.gn index 8d400e90..a296ff9 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/BUILD.gn +++ b/chrome/browser/resources/chromeos/cloud_upload/BUILD.gn
@@ -7,10 +7,15 @@ build_webui("build") { grd_prefix = "cloud_upload" - static_files = [ "main.html" ] + static_files = [ + "icons/check.svg", + "icons/download.svg", + "main.html", + ] web_component_files = [ "base_setup_page.ts", "drive_upload_page.ts", + "office_pwa_install_page.ts", "one_drive_upload_page.ts", "welcome_page.ts", ]
diff --git a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_browser_proxy.ts b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_browser_proxy.ts index b35a222..a513b3a 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_browser_proxy.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_browser_proxy.ts
@@ -18,6 +18,11 @@ static setInstance(obj: CloudUploadBrowserProxy) { instance = obj; } + + // Whether or not this is a test proxy instance. + isTest() { + return false; + } } class CloudUploadBrowserProxyImpl extends CloudUploadBrowserProxy {
diff --git a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts index 2207b2a..a20ada5 100644 --- a/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts +++ b/chrome/browser/resources/chromeos/cloud_upload/cloud_upload_dialog.ts
@@ -7,6 +7,7 @@ import {CANCEL_SETUP_EVENT, NEXT_PAGE_EVENT} from './base_setup_page.js'; import {UserAction} from './cloud_upload.mojom-webui.js'; import {CloudUploadBrowserProxy} from './cloud_upload_browser_proxy.js'; +import {OfficePwaInstallPageElement} from './office_pwa_install_page.js'; import {OneDriveUploadPageElement} from './one_drive_upload_page.js'; import {WelcomePageElement} from './welcome_page.js'; @@ -34,15 +35,22 @@ } async init(): Promise<void> { - await this.processDialogArgs(); + const [, {installed: isOfficePwaInstalled}] = await Promise.all([ + this.processDialogArgs(), + this.proxy.handler.isOfficePWAInstalled(), + ]); // TODO(b/251046341): Adjust this once the rest of the pages are in place. + this.pages.push(new WelcomePageElement()); + + if (!isOfficePwaInstalled) { + this.pages.push(new OfficePwaInstallPageElement()); + } + const oneDriveUploadPage = new OneDriveUploadPageElement(); oneDriveUploadPage.setFileNames(this.fileNames); - this.pages = [ - new WelcomePageElement(), - oneDriveUploadPage, - ]; + this.pages.push(oneDriveUploadPage); + for (let i = 0; i < this.pages.length; i++) { this.pages[i]?.setAttribute( 'total-pages', (this.pages.length).toString());
diff --git a/chrome/browser/resources/chromeos/cloud_upload/icons/check.svg b/chrome/browser/resources/chromeos/cloud_upload/icons/check.svg new file mode 100644 index 0000000..da38628 --- /dev/null +++ b/chrome/browser/resources/chromeos/cloud_upload/icons/check.svg
@@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"><path d="m9.55 18-5.7-5.7 1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/cloud_upload/icons/download.svg b/chrome/browser/resources/chromeos/cloud_upload/icons/download.svg new file mode 100644 index 0000000..bc52a9c --- /dev/null +++ b/chrome/browser/resources/chromeos/cloud_upload/icons/download.svg
@@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="M5.5 16q-.625 0-1.062-.438Q4 15.125 4 14.5V13h1.5v1.5h9V13H16v1.5q0 .625-.438 1.062Q15.125 16 14.5 16Zm4.5-3L6 9l1.062-1.062 2.188 2.187V3h1.5v7.125l2.188-2.187L14 9Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.html b/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.html new file mode 100644 index 0000000..d7bfac93 --- /dev/null +++ b/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.html
@@ -0,0 +1,42 @@ +<!-- TODO(b/254586358): Use localized strings --> +<style> + div[slot=button-container] { + display: flex; + } + + .icon-button::before { + -webkit-mask-position: center; + background-color: currentColor; + content: ' '; + display: inline-block; + height: 20px; + margin-inline-end: 8px; + width: 20px; + } + + .install::before { + -webkit-mask-image: url(icons/download.svg); + } + + .installing::before { + -webkit-mask-image: url(chrome://resources/images/throbber_medium.svg); + -webkit-mask-size: 100%; + } + + .installed::before { + -webkit-mask-image: url(icons/check.svg); + } +</style> +<div slot="title"> + Install the Microsoft Office app +</div> +<div slot="body"> + <p> + Open, edit, save, and share Word, Excel, and PowerPoint files in the + Microsoft Office app. A subscription may be required for some features. + </p> +</div> +<div slot="button-container"> + <cr-button class="cancel-button">i18n{cancel}</cr-button> + <cr-button class="action-button icon-button install">Install</cr-button> +</div>
diff --git a/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.ts b/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.ts new file mode 100644 index 0000000..d77a847 --- /dev/null +++ b/chrome/browser/resources/chromeos/cloud_upload/office_pwa_install_page.ts
@@ -0,0 +1,63 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'chrome://resources/cr_elements/cr_button/cr_button.js'; +import 'chrome://resources/cr_elements/cr_icons.css.js'; + +import {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js'; +import {assertInstanceof} from 'chrome://resources/js/assert_ts.js'; + +import {BaseSetupPageElement, CANCEL_SETUP_EVENT, NEXT_PAGE_EVENT} from './base_setup_page.js'; +import {CloudUploadBrowserProxy} from './cloud_upload_browser_proxy.js'; +import {getTemplate} from './office_pwa_install_page.html.js'; + +/** + * The OfficePwaInstallPageElement guides the user through installing the + * Microsoft 365 PWA. + */ +export class OfficePwaInstallPageElement extends BaseSetupPageElement { + connectedCallback() { + this.innerHTML = getTemplate(); + + const actionButton = this.querySelector<HTMLElement>('.action-button')!; + actionButton.addEventListener('click', this.onActionButtonClick.bind(this)); + + const cancelButton = this.querySelector<HTMLElement>('.cancel-button')!; + cancelButton.addEventListener('click', this.onCancelButtonClick.bind(this)); + } + + private async onActionButtonClick(event: MouseEvent) { + const proxy = CloudUploadBrowserProxy.getInstance(); + + assertInstanceof(event.target, CrButtonElement); + const actionButton = event.target; + actionButton.innerText = 'Installing...'; + actionButton.classList.replace('install', 'installing'); + actionButton.disabled = true; + + // Keep the installing state shown for at least 2 seconds to give the + // impression that the PWA is being installed. + // TODO(b/251045239): Call out to actually install the PWA. + await new Promise( + resolve => setTimeout(resolve, proxy.isTest() ? 20 : 2000)); + + actionButton.innerText = 'Installed'; + actionButton.classList.replace('installing', 'installed'); + + // Keep the installed state shown for a second before changing pages to + // give the user feedback that the PWA has been installed. + await new Promise( + resolve => setTimeout(resolve, proxy.isTest() ? 10 : 1000)); + + this.dispatchEvent( + new CustomEvent(NEXT_PAGE_EVENT, {bubbles: true, composed: true})); + } + + private onCancelButtonClick() { + this.dispatchEvent( + new CustomEvent(CANCEL_SETUP_EVENT, {bubbles: true, composed: true})); + } +} + +customElements.define('office-pwa-install-page', OfficePwaInstallPageElement);
diff --git a/chrome/browser/resources/password_manager/checkup_section.ts b/chrome/browser/resources/password_manager/checkup_section.ts index 3799df69..e1f7008 100644 --- a/chrome/browser/resources/password_manager/checkup_section.ts +++ b/chrome/browser/resources/password_manager/checkup_section.ts
@@ -104,6 +104,7 @@ bannerImage_: { type: Array, + value: 'checkup_result_banner_error', computed: 'computeBannerImage_(status_, compromisedPasswords_, ' + 'reusedPasswords_, weakPasswords_)', }, @@ -234,7 +235,7 @@ private computeBannerImage_(): string { if (!this.status_) { - return ''; + return 'checkup_result_banner_error'; } if (this.computeIsCheckRunning_()) {
diff --git a/chrome/browser/resources/password_manager/password_details_section.ts b/chrome/browser/resources/password_manager/password_details_section.ts index caa35a2..69588c3 100644 --- a/chrome/browser/resources/password_manager/password_details_section.ts +++ b/chrome/browser/resources/password_manager/password_details_section.ts
@@ -66,12 +66,18 @@ const groups = await PasswordManagerImpl.getInstance().getCredentialGroups(); const selectedGroup = groups.find(group => group.name === groupName); - if (selectedGroup) { - // TODO(crbug.com/1350947): Request passwords and notes. - this.selectedGroup_ = selectedGroup; - } else { + if (!selectedGroup) { this.navigateBack_(); + return; } + const ids = selectedGroup!.entries.map(entry => entry.id); + PasswordManagerImpl.getInstance() + .requestCredentialsDetails(ids) + .then(entries => { + selectedGroup!.entries = entries; + this.selectedGroup_ = selectedGroup; + }) + .catch(this.navigateBack_); } }
diff --git a/chrome/browser/resources/password_manager/password_list_item.ts b/chrome/browser/resources/password_manager/password_list_item.ts index c68a052..453c1515 100644 --- a/chrome/browser/resources/password_manager/password_list_item.ts +++ b/chrome/browser/resources/password_manager/password_list_item.ts
@@ -10,6 +10,7 @@ import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {getTemplate} from './password_list_item.html.js'; +import {PasswordManagerImpl} from './password_manager_proxy.js'; import {Page, Router} from './router.js'; export interface PasswordListItemElement { @@ -52,8 +53,19 @@ this.addEventListener('click', this.onRowClick_); } - private onRowClick_() { - Router.getInstance().navigateTo(Page.PASSWORD_DETAILS, this.item); + private async onRowClick_() { + const ids = this.item.entries.map(entry => entry.id); + PasswordManagerImpl.getInstance() + .requestCredentialsDetails(ids) + .then(entries => { + const group: chrome.passwordsPrivate.CredentialGroup = { + name: this.item.name, + iconUrl: this.item.iconUrl, + entries: entries, + }; + Router.getInstance().navigateTo(Page.PASSWORD_DETAILS, group); + }) + .catch(() => {}); } }
diff --git a/chrome/browser/resources/password_manager/password_manager_proxy.ts b/chrome/browser/resources/password_manager/password_manager_proxy.ts index 33d8437..5f6df5d 100644 --- a/chrome/browser/resources/password_manager/password_manager_proxy.ts +++ b/chrome/browser/resources/password_manager/password_manager_proxy.ts
@@ -130,6 +130,14 @@ * Triggers the shortcut creation dialog. */ showAddShortcutDialog(): void; + + /** + * Gets the list of full (with note and password) credentials for given ids. + * @param ids The id for the password entries being retrieved. + * @return A promise that resolves to |PasswordUiEntry[]|. + */ + requestCredentialsDetails(ids: number[]): + Promise<chrome.passwordsPrivate.PasswordUiEntry[]>; } /** @@ -210,6 +218,10 @@ chrome.passwordsPrivate.showAddShortcutDialog(); } + requestCredentialsDetails(ids: number[]) { + return chrome.passwordsPrivate.requestCredentialsDetails(ids); + } + static getInstance(): PasswordManagerProxy { return instance || (instance = new PasswordManagerImpl()); }
diff --git a/chrome/browser/resources/settings/autofill_page/passwords_section.html b/chrome/browser/resources/settings/autofill_page/passwords_section.html index 4d4dbee..135ad2b 100644 --- a/chrome/browser/resources/settings/autofill_page/passwords_section.html +++ b/chrome/browser/resources/settings/autofill_page/passwords_section.html
@@ -267,7 +267,8 @@ <div class="cr-separators list-with-header"> <template id="passwordList" is="dom-repeat" items="[[savedPasswords]]" filter="[[passwordFilter_(filter)]]" - rendered-item-count="{{shownPasswordsCount_::dom-change}}"> + rendered-item-count="{{shownPasswordsCount_::dom-change}}" + initial-count="50"> <password-list-item entry="[[item]]"> </password-list-item> </template>
diff --git a/chrome/browser/supervised_user/BUILD.gn b/chrome/browser/supervised_user/BUILD.gn index 1de07e8..768429f 100644 --- a/chrome/browser/supervised_user/BUILD.gn +++ b/chrome/browser/supervised_user/BUILD.gn
@@ -35,7 +35,6 @@ android_resources("java_resources") { sources = [ "android/java/res/drawable/ic_family_link.xml", - "android/java/res/drawable/ic_googleg_32dp.xml", "android/java/res/layout/website_approval_bottom_sheet.xml", "android/java/res/values/dimens.xml", ]
diff --git a/chrome/browser/supervised_user/android/java/res/drawable/ic_googleg_32dp.xml b/chrome/browser/supervised_user/android/java/res/drawable/ic_googleg_32dp.xml deleted file mode 100644 index d9eb17f4..0000000 --- a/chrome/browser/supervised_user/android/java/res/drawable/ic_googleg_32dp.xml +++ /dev/null
@@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright 2022 The Chromium Authors -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. ---> - -<!-- 32dp google g in a 32dp frame. --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="32dp" - android:height="32dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:pathData="M18.098,19.039C19.816,17.439 20.906,15.056 20.906,12C20.906,11.445 20.855,10.85 20.728,10.281L12.005,10.281L12.005,13.867L17.022,13.867C16.77,15.131 16.084,16.095 15.103,16.719L15.103,17.184L17.548,19.039L18.098,19.039Z" - android:fillColor="#4285F4"/> - <path - android:pathData="M6.739,13.734C7.464,15.948 9.539,17.541 11.998,17.541C13.2,17.541 14.261,17.255 15.105,16.72L18.098,19.041C16.462,20.563 14.283,21.375 11.998,21.375C8.294,21.375 5.114,19.25 3.594,16.147L3.698,15.512L6.238,13.734L6.739,13.734Z" - android:fillColor="#34A853"/> - <path - android:pathData="M6.742,10.256C6.557,10.819 6.463,11.408 6.463,12C6.463,12.609 6.561,13.195 6.742,13.744L3.597,16.153C2.983,14.903 2.638,13.494 2.638,12C2.638,10.506 2.983,9.097 3.597,7.847L4.22,7.713L6.602,9.572L6.742,10.256L6.742,10.256Z" - android:fillColor="#FBBC05"/> - <path - android:pathData="M11.998,6.461C13.319,6.461 14.511,6.93 15.447,7.697L18.172,4.969C16.511,3.52 14.381,2.625 11.997,2.625C8.294,2.625 5.114,4.748 3.594,7.85L6.741,10.258C7.469,8.048 9.541,6.461 11.998,6.461Z" - android:fillColor="#EA4335"/> -</vector>
diff --git a/chrome/browser/supervised_user/android/java/res/layout/website_approval_bottom_sheet.xml b/chrome/browser/supervised_user/android/java/res/layout/website_approval_bottom_sheet.xml index 1a90631a..25841b9 100644 --- a/chrome/browser/supervised_user/android/java/res/layout/website_approval_bottom_sheet.xml +++ b/chrome/browser/supervised_user/android/java/res/layout/website_approval_bottom_sheet.xml
@@ -16,29 +16,20 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_height="wrap_content" android:layout_width="match_parent" - android:orientation="vertical"> + android:layout_marginStart="24dp" + android:layout_marginEnd="24dp" + android:orientation="vertical" + android:paddingTop="24dp" > <!-- TODO(crbug.com/1330900): check if it's really right to duplicate this from other sheets? --> <ImageView - android:id="@+id/drag_handlebar" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:layout_marginStart="@dimen/website_approval_horizontal_margin" - android:layout_marginEnd="@dimen/website_approval_horizontal_margin" - android:layout_marginTop="8dp" - android:layout_marginBottom="24dp" - android:importantForAccessibility="no" - app:srcCompat="@drawable/drag_handlebar" /> - - <ImageView android:id="@+id/googleg_icon" - android:layout_width="32dp" - android:layout_height="32dp" + android:layout_width="wrap_content" + android:layout_height="24dp" android:layout_gravity="center_horizontal" android:importantForAccessibility="no" - app:srcCompat="@drawable/ic_googleg_32dp"/> + app:srcCompat="@drawable/ic_logo_googleg_24dp"/> <!-- The main text including website --> <androidx.appcompat.widget.DialogTitle @@ -48,7 +39,8 @@ android:layout_gravity="center_horizontal" android:layout_marginStart="@dimen/website_approval_horizontal_margin" android:layout_marginEnd="@dimen/website_approval_horizontal_margin" - android:paddingTop="16dp" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" android:paddingBottom="24dp" android:text="@string/parent_website_approval_title" android:textAlignment="center"
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 31393f23..2029edbf 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -406,6 +406,7 @@ "//chrome/browser:resource_prefetch_predictor_proto", "//chrome/browser/autofill", "//chrome/browser/breadcrumbs", + "//chrome/browser/chrome_for_testing:buildflags", "//chrome/browser/devtools", "//chrome/browser/favicon", "//chrome/browser/google", @@ -1770,6 +1771,13 @@ ] } + if (is_chrome_for_testing_branded) { + sources += [ + "startup/chrome_for_testing_infobar_delegate.cc", + "startup/chrome_for_testing_infobar_delegate.h", + ] + } + deps += [ "//base", "//build:chromeos_buildflags", @@ -5907,6 +5915,7 @@ if (toolkit_views) { deps += [ "//components/constrained_window:constrained_window", + "//components/webauthn/content/browser", "//ui/views:test_support", ] sources += [
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 0b73f04..f30896a 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -817,6 +817,12 @@ <message name="IDS_SECURITY_SECTION_TITLE" desc="Title for the Security settings section."> Security </message> + <message name="IDS_AD_PRIVACY_LINK_ROW_LABEL" translateable="false" desc="Label for the ad privacy row."> + Lorem ipsum + </message> + <message name="IDS_AD_PRIVACY_LINK_ROW_SUB_LABEL" translateable="false" desc="Sublabel for the ad privacy row."> + Lorem ipsum Lorem ipsum + </message> <message name="IDS_CONTEXTUAL_SEARCH_TITLE" desc="Name for the Contextual Search feature, which allows users to search for a term in a web page by tapping on it."> Touch to Search </message> @@ -1151,6 +1157,11 @@ <ph name="BEGIN_BOLD"><b></ph>Lorem ipsum:<ph name="END_BOLD"></b></ph> Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum </message> + <!-- Privacy Sandbox v4 - Ad Privacy Page--> + <message name="IDS_AD_PRIVACY_PAGE_TITLE" translateable="false" desc="Title on page."> + Lorem Ipsum + </message> + <!-- Secure DNS Settings. Used by //chrome/browser/privacy. --> <message name="IDS_SETTINGS_CUSTOM" desc="Label for a custom option in a dropdown menu."> Custom
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb index d15b3dc..0b83566 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -554,6 +554,7 @@ <translation id="4016425174436051808">تتعذّر متابعة الخلاصة. حدث خطأ.</translation> <translation id="4034817413553209278">{HOURS,plural, =1{ساعة واحدة (#)}zero{# ساعة}two{ساعتان (#)}few{# ساعات}many{# ساعةً}other{# ساعة}}</translation> <translation id="4035877632587724847">عدم السماح</translation> +<translation id="4036177530563778041">يمكنك بسهولة المتابعة من حيث توقفت.</translation> <translation id="4045764304651014138">بيانات الاستخدام</translation> <translation id="405399507749852140">يمكنك الحصول على تنبيهات في حال انخفاض السعر على أي موقع إلكتروني</translation> <translation id="4056223980640387499">بني داكن</translation> @@ -683,6 +684,7 @@ <translation id="4763480195061959176">فيديو</translation> <translation id="4766313118839197559">يتم حفظ كلمات المرور في تطبيق "مدير كلمات المرور" على هذا الجهاز.</translation> <translation id="4766678251456904326">إضافة حساب إلى الجهاز</translation> +<translation id="4769095993849849966">الاسم الجديد للملف</translation> <translation id="4787736314074622408">هل تريد حذف "<ph name="ITEM_TITLE" />"؟</translation> <translation id="4791358705705538979">يساعدك على إنجاز المهام على الويب، مثل إتمام عملية الدفع.</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation> @@ -1126,6 +1128,7 @@ <translation id="7029390216614421513">ضَع رمز الاستجابة السريعة أو الرمز الشريطي في هذا الإطار.</translation> <translation id="7029809446516969842">كلمات المرور</translation> <translation id="7030304022046916278">يُرسِل هذا الوضع عناوين URL إلى خدمة "التصفّح الآمن" للتحقّق منها.</translation> +<translation id="7030585293819777123">هل تريد استئناف المهمة الأخيرة؟</translation> <translation id="7037830628447527439">سجِّل الدخول إلى Chrome باستخدام حسابك على Google.</translation> <translation id="7038956721828960940">chrome_image_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="7054588988317389591">هل تريد عرض أوصاف الصور؟</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb index 3519a61..2155490 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">ভিডিঅ’</translation> <translation id="4766313118839197559">পাছৱৰ্ডসমূহ এই ডিভাইচটোত থকা পাছৱৰ্ড পৰিচালকত ছেভ কৰা হয়</translation> <translation id="4766678251456904326">ডিভাইচত একাউণ্ট যোগ দিয়ক</translation> +<translation id="4769095993849849966">ফাইলৰ নতুন নাম</translation> <translation id="4787736314074622408">আপুনি <ph name="ITEM_TITLE" /> মচিব খোজেনে?</translation> <translation id="4791358705705538979">কাৰ্যসমূহ সম্পূৰ্ণ কৰাত আপোনাক সহায় কৰে, যেনে সমগ্ৰ ৱেবত ছেকআউট কৰা</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb index 7f1971d..24ea5a5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ca.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">vídeo</translation> <translation id="4766313118839197559">Les contrasenyes es desen al gestor de contrasenyes en aquest dispositiu.</translation> <translation id="4766678251456904326">Afegeix un compte al dispositiu</translation> +<translation id="4769095993849849966">Nom de fitxer nou</translation> <translation id="4787736314074622408">Vols suprimir <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">T'ajuda a completar tasques, com ara la tramitació de compres, al web</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index 638864c..3057620 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -12,6 +12,7 @@ <translation id="1062628064301375934">Pomozte nám vybudovat web zajišťující více soukromí</translation> <translation id="107147699690128016">Pokud změníte příponu souboru, může se soubor otevřít v jiné aplikaci a potenciálně může být rizikem pro vaše zařízení.</translation> <translation id="1089606299949659462">Kontrola dokončena.</translation> +<translation id="1091604859693995976">Obnovte stránku</translation> <translation id="1095761715416917775">Zajistěte, abyste k synchronizovaným datům měli vždy přístup</translation> <translation id="1100066534610197918">Otevřít na nové kartě ve skup.</translation> <translation id="1103142993930332957">Pomoci Chrome zlepšit?</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb index b413917..a4c7115f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">fideo</translation> <translation id="4766313118839197559">Mae cyfrineiriau'n cael eu cadw i'r Rheolwr Cyfrineiriau ar y ddyfais hon.</translation> <translation id="4766678251456904326">Ychwanegu cyfrif at y ddyfais</translation> +<translation id="4769095993849849966">Enw ffeil newydd</translation> <translation id="4787736314074622408">Ydych chi eisiau dileu <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Yn eich helpu i gwblhau tasgau, megis talu, drwy'r we i gyd</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index 00beca12..eb00819f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4766313118839197559">Adgangskoder gemmes i Adgangskodeadministrator på denne enhed</translation> <translation id="4766678251456904326">Føj konto til enhed</translation> +<translation id="4769095993849849966">Nyt filnavn</translation> <translation id="4787736314074622408">Vil du slette <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Hjælper dig med at udføre opgaver som f.eks. betaling overalt på nettet</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index ac4d78a..0ca02e98 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4766313118839197559">Pasahitzak gailu honetan soilik gordetzen dira, Pasahitz-kudeatzailea zerbitzuan</translation> <translation id="4766678251456904326">Gehitu kontu bat gailuan</translation> +<translation id="4769095993849849966">Fitxategiaren izen berria</translation> <translation id="4787736314074622408"><ph name="ITEM_TITLE" /> ezabatu nahi duzu?</translation> <translation id="4791358705705538979">Lagungarria da sarean zereginak egiteko (adibidez, ordainketak)</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index 2a96a7e..0bce09e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">vidéo</translation> <translation id="4766313118839197559">Les mots de passe sont enregistrés dans le Gestionnaire de mots de passe sur cet appareil</translation> <translation id="4766678251456904326">Ajouter un compte à l'appareil</translation> +<translation id="4769095993849849966">Nouveau nom de fichier</translation> <translation id="4787736314074622408">Voulez-vous supprimer <ph name="ITEM_TITLE" /> ?</translation> <translation id="4791358705705538979">Vous aide à effectuer des tâches sur le Web (des paiements, par exemple)</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index e44d7c3..fe2486a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">વીડિયો</translation> <translation id="4766313118839197559">પાસવર્ડ આ ડિવાઇસના Password Managerમાં સાચવવામાં આવે છે</translation> <translation id="4766678251456904326">ડિવાઇસમાં એકાઉન્ટ ઉમેરો</translation> +<translation id="4769095993849849966">ફાઇલનું નવું નામ</translation> <translation id="4787736314074622408">શું તમે <ph name="ITEM_TITLE" /> ડિલીટ કરવા માગો છો?</translation> <translation id="4791358705705538979">સમગ્ર વેબ પર તમને ચેકઆઉટ જેવા કાર્યો પૂર્ણ કરવામાં સહાય કરે છે</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb index bd78dd23..0ffe88f2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hr.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">videozapis</translation> <translation id="4766313118839197559">Zaporke se spremaju u Upravitelj zaporki na ovom uređaju</translation> <translation id="4766678251456904326">Dodajte račun uređaju</translation> +<translation id="4769095993849849966">Novi naziv datoteke</translation> <translation id="4787736314074622408">Želite li izbrisati <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Pomaže vam s izvršavanjem zadataka na webu, na primjer s plaćanjem</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb index ac1897d..2f98432b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">myndskeið</translation> <translation id="4766313118839197559">Aðgangsorð eru vistuð í Aðgangsorðastjórnun í þessu tæki</translation> <translation id="4766678251456904326">Bæta reikningi við tæki</translation> +<translation id="4769095993849849966">Nýtt skráarheiti</translation> <translation id="4787736314074622408">Viltu eyða <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Hjálpar þér að ljúka verkefnum á vefnum, til dæmis að ganga frá kaupum</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb index b80439b..54ef305 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">סרטוני וידאו</translation> <translation id="4766313118839197559">סיסמאות נשמרות במנהל הסיסמאות במכשיר הזה</translation> <translation id="4766678251456904326">הוספת חשבון למכשיר</translation> +<translation id="4769095993849849966">שם הקובץ החדש</translation> <translation id="4787736314074622408">רוצה למחוק את <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">עוזרת להשלים משימות, כמו תשלום בקופה, באינטרנט</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb index 9aefafa6..9719be3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ka.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">ვიდეო</translation> <translation id="4766313118839197559">პაროლები ინახება პაროლების მმართველში მხოლოდ ამ მოწყობილობაზე</translation> <translation id="4766678251456904326">ანგარიშის დამატება მოწყობილობაზე</translation> +<translation id="4769095993849849966">ფაილის ახალი სახელი</translation> <translation id="4787736314074622408">გსურთ, წაშალოთ <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">დაგეხმარებათ სხვადასხვა ამოცანის შესრულებაში ვებში, მაგალითად, ანგარიშსწორებაში</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb index 9c2f85ec..e979df6 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ky.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">видео</translation> <translation id="4766313118839197559">Сырсөздөр ушул түзмөктө Сырсөздөрдү башкаргычка сакталат</translation> <translation id="4766678251456904326">Түзмөккө аккаунт кошуңуз</translation> +<translation id="4769095993849849966">Файлдын жаңы аталышы</translation> <translation id="4787736314074622408"><ph name="ITEM_TITLE" /> өчүрөсүзбү?</translation> <translation id="4791358705705538979">Интернетте иштерди аткарууга, мисалы, төлөм жүргүзүүгө жардам берет</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index c50727c..0434498 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4766313118839197559">Paroles tiek saglabātas Paroļu pārvaldniekā šajā ierīcē</translation> <translation id="4766678251456904326">Pievienot kontu ierīcei</translation> +<translation id="4769095993849849966">Jaunais faila nosaukums</translation> <translation id="4787736314074622408">Vai vēlaties dzēst failu <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Palīdz veikt uzdevumus visā tīmeklī, piemēram, norēķināšanos</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb index b9f3b032..22c5f682 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pl.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">film</translation> <translation id="4766313118839197559">Hasła są zapisywane w Menedżerze haseł na tym urządzeniu.</translation> <translation id="4766678251456904326">Dodaj konto do urządzenia</translation> +<translation id="4769095993849849966">Nowa nazwa pliku</translation> <translation id="4787736314074622408">Na pewno usunąć <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Pomaga wykonywać różne czynności w internecie (np. dokonywać płatności)</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index 9e00b1c..f2d86e8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4766313118839197559">Fjalëkalimet ruhen në "Menaxherin e fjalëkalimeve" në këtë pajisje</translation> <translation id="4766678251456904326">Shto llogari në pajisje</translation> +<translation id="4769095993849849966">Emri i ri i skedarit</translation> <translation id="4787736314074622408">Dëshiron të fshish <ph name="ITEM_TITLE" />?</translation> <translation id="4791358705705538979">Të ndihmon me përfundimin e detyrave, si p.sh. përfundimi i blerjes, nëpër ueb</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index 5023927..41c414e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">வீடியோ</translation> <translation id="4766313118839197559">இந்தச் சாதனத்தில் உள்ள Password Managerரில் கடவுச்சொற்கள் சேமிக்கப்படுகின்றன</translation> <translation id="4766678251456904326">சாதனத்தில் கணக்கைச் சேர்</translation> +<translation id="4769095993849849966">ஃபைலின் புதிய பெயர்</translation> <translation id="4787736314074622408"><ph name="ITEM_TITLE" /> ஃபைலை நீக்க வேண்டுமா?</translation> <translation id="4791358705705538979">இணையம் முழுவதும் செக்-அவுட் போன்ற பணிகளை முடிக்க உதவுகிறது</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index 1b0b1bc..63660f3 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">video</translation> <translation id="4766313118839197559">Şifreler bu cihazda Şifre Yöneticisi'ne kaydedilir</translation> <translation id="4766678251456904326">Hesabı cihaza ekleyin</translation> +<translation id="4769095993849849966">Yeni dosya adı</translation> <translation id="4787736314074622408"><ph name="ITEM_TITLE" /> adlı dosyayı silmek istiyor musunuz?</translation> <translation id="4791358705705538979">Web'de çeşitli görevleri (ör. ödeme yapma) tamamlamanıza yardımcı olur</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb index d1fc747..11f4c49 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
@@ -683,6 +683,7 @@ <translation id="4763480195061959176">відео</translation> <translation id="4766313118839197559">Паролі збережено в Менеджері паролів на цьому пристрої</translation> <translation id="4766678251456904326">Додати обліковий запис на пристрій</translation> +<translation id="4769095993849849966">Нова назва файлу</translation> <translation id="4787736314074622408">Видалити файл "<ph name="ITEM_TITLE" />"?</translation> <translation id="4791358705705538979">Допомагає виконувати завдання в Інтернеті (наприклад, оплачувати покупки)</translation> <translation id="4794291718671962615">(<ph name="MEGABYTES" />) <ph name="URL" /></translation>
diff --git a/chrome/browser/ui/hats/hats_service.cc b/chrome/browser/ui/hats/hats_service.cc index 5e8b232f..993ac8a4 100644 --- a/chrome/browser/ui/hats/hats_service.cc +++ b/chrome/browser/ui/hats/hats_service.cc
@@ -75,6 +75,8 @@ "ts-trusted-surface"; constexpr char kHatsSurveyTriggerTrustSafetyTransactions[] = "ts-transactions"; constexpr char kHatsSurveyTriggerWhatsNew[] = "whats-new"; +constexpr char kHatsSurveyTriggerTrustSafetyV2SafetyCheck[] = + "ts-v2-safety-check"; constexpr char kHatsSurveyTriggerTrustSafetyV2TrustedSurface[] = "ts-v2-trusted-surface"; @@ -253,6 +255,10 @@ // Trust & Safety Sentiment surveys - Version 2. survey_configs.emplace_back( &features::kTrustSafetySentimentSurveyV2, + kHatsSurveyTriggerTrustSafetyV2SafetyCheck, + features::kTrustSafetySentimentSurveyV2SafetyCheckTriggerId.Get()); + survey_configs.emplace_back( + &features::kTrustSafetySentimentSurveyV2, kHatsSurveyTriggerTrustSafetyV2TrustedSurface, features::kTrustSafetySentimentSurveyV2TrustedSurfaceTriggerId.Get(), std::vector<std::string>{"Interacted with Page Info"});
diff --git a/chrome/browser/ui/hats/hats_service.h b/chrome/browser/ui/hats/hats_service.h index 45a4b71..720b8b6 100644 --- a/chrome/browser/ui/hats/hats_service.h +++ b/chrome/browser/ui/hats/hats_service.h
@@ -61,6 +61,7 @@ extern const char kHatsSurveyTriggerTrustSafetyPrivacySettings[]; extern const char kHatsSurveyTriggerTrustSafetyTrustedSurface[]; extern const char kHatsSurveyTriggerTrustSafetyTransactions[]; +extern const char kHatsSurveyTriggerTrustSafetyV2SafetyCheck[]; extern const char kHatsSurveyTriggerTrustSafetyV2TrustedSurface[]; extern const char kHatsSurveyTriggerWhatsNew[];
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service.cc b/chrome/browser/ui/hats/trust_safety_sentiment_service.cc index 3627c9e..5cce37d 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service.cc +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service.cc
@@ -67,6 +67,8 @@ switch (feature_area) { case (TrustSafetySentimentService::FeatureArea::kTrustedSurface): return kHatsSurveyTriggerTrustSafetyV2TrustedSurface; + case (TrustSafetySentimentService::FeatureArea::kSafetyCheck): + return kHatsSurveyTriggerTrustSafetyV2SafetyCheck; default: NOTREACHED(); return ""; @@ -123,6 +125,8 @@ kPrivacySandbox3NoticeLearnMore): return isV2 == false; // Version 2 only + case (TrustSafetySentimentService::FeatureArea::kSafetyCheck): + return isV2 == true; // Both Versions case (TrustSafetySentimentService::FeatureArea::kTrustedSurface): return true; @@ -143,6 +147,10 @@ return base::RandDouble() < features::kTrustSafetySentimentSurveyV2TrustedSurfaceProbability .Get(); + case (TrustSafetySentimentService::FeatureArea::kSafetyCheck): + return base::RandDouble() < + features::kTrustSafetySentimentSurveyV2SafetyCheckProbability + .Get(); default: NOTREACHED(); return false; @@ -391,6 +399,10 @@ } void TrustSafetySentimentService::RanSafetyCheck() { + // Since we have logic to block a trigger for an incorrect version, we can + // call both of these and only the appropriate trigger and probability will be + // recorded. + TriggerOccurred(FeatureArea::kSafetyCheck, {}); TriggerOccurred(FeatureArea::kPrivacySettings, GetPrivacySettingsProductSpecificData( profile_, /*ran_safety_check=*/true));
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service.h b/chrome/browser/ui/hats/trust_safety_sentiment_service.h index d49679e..be63df3 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service.h +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service.h
@@ -92,7 +92,8 @@ kPrivacySandbox3NoticeOk = 7, kPrivacySandbox3NoticeSettings = 8, kPrivacySandbox3NoticeLearnMore = 9, - kMaxValue = kPrivacySandbox3NoticeLearnMore, + kSafetyCheck = 10, + kMaxValue = kSafetyCheck, }; // Called when the user interacts with Privacy Sandbox 3, |feature_area| @@ -117,9 +118,9 @@ FRIEND_TEST_ALL_PREFIXES(TrustSafetySentimentServiceTest, InteractedWithPrivacySandbox3ConsentAccept); FRIEND_TEST_ALL_PREFIXES(TrustSafetySentimentServiceTest, - Eligibility_V2Enabled); - FRIEND_TEST_ALL_PREFIXES(TrustSafetySentimentServiceTest, Eligibility_V1FeatureWhileV2Enabled); + FRIEND_TEST_ALL_PREFIXES(TrustSafetySentimentServiceTest, V2_SafetyCheck); + FRIEND_TEST_ALL_PREFIXES(TrustSafetySentimentServiceTest, V2_TrustedSurface); // Struct representing a trigger (user action relevant to T&S) that previously // occurred, and is awaiting the appropriate eligibility steps before causing
diff --git a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc index 469ac67e..37edc90 100644 --- a/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc +++ b/chrome/browser/ui/hats/trust_safety_sentiment_service_unittest.cc
@@ -9,6 +9,7 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/extensions/api/settings_private/generated_pref.h" #include "chrome/browser/extensions/api/settings_private/generated_pref_test_base.h" +#include "chrome/browser/ui/hats/hats_service.h" #include "chrome/browser/ui/hats/hats_service_factory.h" #include "chrome/browser/ui/hats/mock_hats_service.h" #include "chrome/browser/ui/hats/trust_safety_sentiment_service_factory.h" @@ -122,7 +123,9 @@ std::string ntp_visits_min_range = "2"; std::string ntp_visits_max_range = "4"; std::string trusted_surface_time = "5s"; + std::string safety_check_probability = "0.4"; std::string trusted_surface_probability = "0.4"; + std::string safety_check_trigger_id = "safety-check-test"; std::string trusted_surface_trigger_id = "trusted-surface-test"; }; @@ -135,7 +138,9 @@ {"ntp-visits-min-range", params.ntp_visits_min_range}, {"ntp-visits-max-range", params.ntp_visits_max_range}, {"trusted-surface-time", params.trusted_surface_time}, + {"safety-check-probability", params.safety_check_probability}, {"trusted-surface-probability", params.trusted_surface_probability}, + {"safety-check-trigger-id", params.safety_check_trigger_id}, {"trusted-surface-trigger-id", params.trusted_surface_trigger_id}, }); } @@ -789,45 +794,6 @@ {TrustSafetySentimentService::FeatureArea::kPrivacySettings}); } -TEST_F(TrustSafetySentimentServiceTest, Eligibility_V2Enabled) { - // A survey from version 2 is only shown if the right conditions are met. - FeatureParamsV2 params; - params.trusted_surface_probability = "1.0"; - params.min_time_to_prompt = "2m"; - params.max_time_to_prompt = "4m"; - params.ntp_visits_min_range = "2"; - params.ntp_visits_max_range = "2"; - SetupFeatureParametersV2(params); - - EXPECT_CALL(*mock_hats_service(), LaunchSurvey(_, _, _, _, _)).Times(0); - service()->TriggerOccurred( - TrustSafetySentimentService::FeatureArea::kTrustedSurface, {}); - - service()->OpenedNewTabPage(); - service()->OpenedNewTabPage(); - - // Survey should not shown because although the ntp visits condition is met, - // the time is not. - CheckHistograms({TrustSafetySentimentService::FeatureArea::kTrustedSurface}, - {}); - testing::Mock::VerifyAndClearExpectations(mock_hats_service()); - - task_environment()->AdvanceClock(base::Minutes(3)); - // Assert the V2 survey is called and not the V1. - EXPECT_CALL( - *mock_hats_service(), - LaunchSurvey(kHatsSurveyTriggerTrustSafetyTrustedSurface, _, _, _, _)) - .Times(0); - EXPECT_CALL( - *mock_hats_service(), - LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2TrustedSurface, _, _, _, _)); - - // A survey should be shown because we are now within the right time. - service()->OpenedNewTabPage(); - CheckHistograms({TrustSafetySentimentService::FeatureArea::kTrustedSurface}, - {TrustSafetySentimentService::FeatureArea::kTrustedSurface}); -} - TEST_F(TrustSafetySentimentServiceTest, Eligibility_V1FeatureWhileV2Enabled) { // A survey from V1 only is not shown because V2 is enabled. FeatureParams params; @@ -871,3 +837,67 @@ CheckHistograms({TrustSafetySentimentService::FeatureArea::kPrivacySettings}, {TrustSafetySentimentService::FeatureArea::kPrivacySettings}); } + +TEST_F(TrustSafetySentimentServiceTest, V2_TrustedSurface) { + // A survey from version 2 is only shown if the right conditions are met. + FeatureParamsV2 params; + params.trusted_surface_probability = "1.0"; + params.min_time_to_prompt = "2m"; + params.max_time_to_prompt = "4m"; + params.ntp_visits_min_range = "2"; + params.ntp_visits_max_range = "2"; + SetupFeatureParametersV2(params); + + EXPECT_CALL(*mock_hats_service(), LaunchSurvey(_, _, _, _, _)).Times(0); + service()->TriggerOccurred( + TrustSafetySentimentService::FeatureArea::kTrustedSurface, {}); + + service()->OpenedNewTabPage(); + service()->OpenedNewTabPage(); + + // Survey should not shown because although the ntp visits condition is met, + // the time is not. + CheckHistograms({TrustSafetySentimentService::FeatureArea::kTrustedSurface}, + {}); + testing::Mock::VerifyAndClearExpectations(mock_hats_service()); + + task_environment()->AdvanceClock(base::Minutes(3)); + // Assert the V2 survey is called and not the V1. + EXPECT_CALL( + *mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyTrustedSurface, _, _, _, _)) + .Times(0); + EXPECT_CALL( + *mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2TrustedSurface, _, _, _, _)); + + // A survey should be shown because we are now within the right time. + service()->OpenedNewTabPage(); + CheckHistograms({TrustSafetySentimentService::FeatureArea::kTrustedSurface}, + {TrustSafetySentimentService::FeatureArea::kTrustedSurface}); +} + +TEST_F(TrustSafetySentimentServiceTest, V2_SafetyCheck) { + // Running the safety check is considered a trigger, and should make a user + // eligible to receive a survey. + FeatureParamsV2 params; + params.safety_check_probability = "1.0"; + params.min_time_to_prompt = "0s"; + params.ntp_visits_min_range = "0"; + params.ntp_visits_max_range = "0"; + SetupFeatureParametersV2(params); + + // Running safety check was previously part of PrivacySettings, so assure only + // the correct histograms and survey are triggered for V2. + EXPECT_CALL( + *mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyPrivacySettings, _, _, _, _)) + .Times(0); + EXPECT_CALL( + *mock_hats_service(), + LaunchSurvey(kHatsSurveyTriggerTrustSafetyV2SafetyCheck, _, _, _, _)); + service()->RanSafetyCheck(); + service()->OpenedNewTabPage(); + CheckHistograms({TrustSafetySentimentService::FeatureArea::kSafetyCheck}, + {TrustSafetySentimentService::FeatureArea::kSafetyCheck}); +}
diff --git a/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.cc b/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.cc new file mode 100644 index 0000000..6630f20649 --- /dev/null +++ b/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.cc
@@ -0,0 +1,73 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h" + +#include <memory> +#include <string> + +#include "base/strings/strcat.h" +#include "base/strings/utf_string_conversions.h" +#include "chrome/browser/devtools/global_confirm_info_bar.h" +#include "chrome/browser/infobars/confirm_infobar_creator.h" +#include "chrome/grit/generated_resources.h" +#include "components/infobars/content/content_infobar_manager.h" +#include "components/infobars/core/infobar.h" +#include "components/version_info/version_info.h" +#include "ui/base/l10n/l10n_util.h" +#include "url/gurl.h" + +// static +void ChromeForTestingInfoBarDelegate::Create() { + std::unique_ptr<ConfirmInfoBarDelegate> delegate( + new ChromeForTestingInfoBarDelegate()); + GlobalConfirmInfoBar::Show(std::move(delegate)); +} + +// static +void ChromeForTestingInfoBarDelegate::Create( + infobars::ContentInfoBarManager* infobar_manager) { + infobar_manager->AddInfoBar(CreateConfirmInfoBar( + std::make_unique<ChromeForTestingInfoBarDelegate>())); +} + +infobars::InfoBarDelegate::InfoBarIdentifier +ChromeForTestingInfoBarDelegate::GetIdentifier() const { + return CHROME_FOR_TESTING_INFOBAR_DELEGATE; +} + +std::u16string ChromeForTestingInfoBarDelegate::GetMessageText() const { + return l10n_util::GetStringFUTF16( + IDS_CHROME_FOR_TESTING_DISCLAIMER, + base::UTF8ToUTF16(version_info::GetVersionNumber())); +} + +std::u16string ChromeForTestingInfoBarDelegate::GetLinkText() const { + return l10n_util::GetStringUTF16(IDS_DOWNLOAD_CHROME); +} + +GURL ChromeForTestingInfoBarDelegate::GetLinkURL() const { + return GURL("https://www.google.com/chrome/"); +} + +bool ChromeForTestingInfoBarDelegate::ShouldExpire( + const NavigationDetails& details) const { + return false; +} + +bool ChromeForTestingInfoBarDelegate::ShouldAnimate() const { + // Animating the infobar also animates the content area size which can trigger + // a flood of page layout, compositing, texture reallocations, etc. Since + // this infobar is primarily used for automated testing do not animate the + // infobar to reduce noise in tests. + return false; +} + +int ChromeForTestingInfoBarDelegate::GetButtons() const { + return BUTTON_NONE; +} + +bool ChromeForTestingInfoBarDelegate::IsCloseable() const { + return false; +}
diff --git a/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h b/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h new file mode 100644 index 0000000..fec59cf --- /dev/null +++ b/chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h
@@ -0,0 +1,42 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_STARTUP_CHROME_FOR_TESTING_INFOBAR_DELEGATE_H_ +#define CHROME_BROWSER_UI_STARTUP_CHROME_FOR_TESTING_INFOBAR_DELEGATE_H_ + +#include <string> + +#include "components/infobars/core/confirm_infobar_delegate.h" +#include "url/gurl.h" + +namespace infobars { +class ContentInfoBarManager; +} + +// An infobar for Chrome for Testing, which displays a message saying that this +// flavor of chrome is unsupported and does not auto-update. +class ChromeForTestingInfoBarDelegate : public ConfirmInfoBarDelegate { + public: + static void Create(); + static void Create(infobars::ContentInfoBarManager* infobar_manager); + + ChromeForTestingInfoBarDelegate(const ChromeForTestingInfoBarDelegate&) = + delete; + ChromeForTestingInfoBarDelegate& operator=( + const ChromeForTestingInfoBarDelegate&) = delete; + ChromeForTestingInfoBarDelegate() = default; + ~ChromeForTestingInfoBarDelegate() override = default; + + private: + infobars::InfoBarDelegate::InfoBarIdentifier GetIdentifier() const override; + std::u16string GetMessageText() const override; + std::u16string GetLinkText() const override; + GURL GetLinkURL() const override; + bool ShouldExpire(const NavigationDetails& details) const override; + bool ShouldAnimate() const override; + int GetButtons() const override; + bool IsCloseable() const override; +}; + +#endif // CHROME_BROWSER_UI_STARTUP_CHROME_FOR_TESTING_INFOBAR_DELEGATE_H_
diff --git a/chrome/browser/ui/startup/infobar_utils.cc b/chrome/browser/ui/startup/infobar_utils.cc index 62f3cda..bc6ca149 100644 --- a/chrome/browser/ui/startup/infobar_utils.cc +++ b/chrome/browser/ui/startup/infobar_utils.cc
@@ -8,6 +8,7 @@ #include "build/buildflag.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/browser_process.h" +#include "chrome/browser/chrome_for_testing/buildflags.h" #include "chrome/browser/obsolete_system/obsolete_system.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" @@ -26,6 +27,10 @@ #include "content/public/common/content_switches.h" #include "google_apis/google_api_keys.h" +#if BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING) +#include "chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h" +#endif + namespace { bool ShouldShowBadFlagsSecurityWarnings() { #if !BUILDFLAG(IS_CHROMEOS_ASH) @@ -70,8 +75,22 @@ // Show the Automation info bar unless it has been disabled by policy. bool show_bad_flags_security_warnings = ShouldShowBadFlagsSecurityWarnings(); - if (IsAutomationEnabled() && show_bad_flags_security_warnings) { - AutomationInfoBarDelegate::Create(); + + content::WebContents* web_contents = + browser->tab_strip_model()->GetActiveWebContents(); + DCHECK(web_contents); + + infobars::ContentInfoBarManager* infobar_manager = + infobars::ContentInfoBarManager::FromWebContents(web_contents); + + if (show_bad_flags_security_warnings) { +#if BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING) + // TODO(crbug.com/1336611): Switch to a global infobar. + ChromeForTestingInfoBarDelegate::Create(infobar_manager); +#endif + + if (IsAutomationEnabled()) + AutomationInfoBarDelegate::Create(); } // Do not show any other info bars in Kiosk mode, because it's unlikely that @@ -103,16 +122,9 @@ return; infobars_shown = true; - content::WebContents* web_contents = - browser->tab_strip_model()->GetActiveWebContents(); - DCHECK(web_contents); - if (show_bad_flags_security_warnings) chrome::ShowBadFlagsPrompt(web_contents); - infobars::ContentInfoBarManager* infobar_manager = - infobars::ContentInfoBarManager::FromWebContents(web_contents); - if (!google_apis::HasAPIKeyConfigured()) GoogleApiKeysInfoBarDelegate::Create(infobar_manager);
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc index 023f7a6..1987a94ae 100644 --- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc +++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -140,10 +140,6 @@ is_browser_window_active_ = false; } -void PaymentRequestBrowserTestBase::SetSkipUiForForBasicCard() { - skip_ui_for_basic_card_ = true; -} - void PaymentRequestBrowserTestBase::OnCanMakePaymentCalled() { if (event_waiter_) event_waiter_->OnEvent(DialogEvent::CAN_MAKE_PAYMENT_CALLED); @@ -551,11 +547,16 @@ content::RenderFrameHost* render_frame_host) { DCHECK(render_frame_host); DCHECK(render_frame_host->IsActive()); - std::unique_ptr<TestChromePaymentRequestDelegate> delegate = - std::make_unique<TestChromePaymentRequestDelegate>( - render_frame_host, /*observer=*/GetWeakPtr(), &prefs_, is_incognito_, - is_valid_ssl_, is_browser_window_active_, skip_ui_for_basic_card_); + + auto delegate = + std::make_unique<TestChromePaymentRequestDelegate>(render_frame_host); + delegate->set_payment_request_dialog_view_observer_for_test(GetWeakPtr()); + delegate->OverridePrefService(&prefs_); + delegate->OverrideOffTheRecord(is_incognito_); + delegate->OverrideValidSSL(is_valid_ssl_); + delegate->OverrideBrowserWindowActive(is_browser_window_active_); delegate_ = delegate.get(); + auto display_manager = delegate->GetDisplayManager()->GetWeakPtr(); auto* request = new PaymentRequest( *render_frame_host, std::move(delegate), std::move(display_manager),
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.h b/chrome/browser/ui/views/payments/payment_request_browsertest_base.h index ef6359b..2c2bc43 100644 --- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.h +++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.h
@@ -116,7 +116,6 @@ void SetIncognito(); void SetInvalidSsl(); void SetBrowserWindowInactive(); - void SetSkipUiForForBasicCard(); // PaymentRequest::ObserverForTest: void OnCanMakePaymentCalled() override; @@ -272,7 +271,7 @@ PaymentRequestDialogView* dialog_view() { return delegate_->dialog_view(); } void SetRegionDataLoader(autofill::RegionDataLoader* region_data_loader) { - delegate_->SetRegionDataLoader(region_data_loader); + delegate_->OverrideRegionDataLoader(region_data_loader); } // Sets the value of the payments.can_make_payment_enabled pref. @@ -300,7 +299,6 @@ bool is_incognito_ = false; bool is_valid_ssl_ = true; bool is_browser_window_active_ = true; - bool skip_ui_for_basic_card_ = false; std::vector<base::WeakPtr<PaymentRequest>> requests_; ConstCSPChecker const_csp_checker_{/*allow=*/true};
diff --git a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc index 549db70..86245df 100644 --- a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc +++ b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.cc
@@ -4,61 +4,124 @@ #include "chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h" -#include "content/public/browser/web_contents.h" +#include <memory> + +#include "components/payments/core/error_logger.h" +#include "components/webauthn/content/browser/internal_authenticator_impl.h" +#include "content/public/browser/render_frame_host.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" namespace payments { +namespace { + +class TestAuthenticator : public content::InternalAuthenticatorImpl { + public: + TestAuthenticator(content::RenderFrameHost* rfh, bool has_authenticator) + : content::InternalAuthenticatorImpl(rfh), + has_authenticator_(has_authenticator) {} + + ~TestAuthenticator() override = default; + + // webauthn::InternalAuthenticator + void IsUserVerifyingPlatformAuthenticatorAvailable( + blink::mojom::Authenticator:: + IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) + override { + std::move(callback).Run(has_authenticator_); + } + + private: + const bool has_authenticator_; +}; + +} // namespace TestChromePaymentRequestDelegate::TestChromePaymentRequestDelegate( - content::RenderFrameHost* render_frame_host, - base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer, - PrefService* pref_service, - bool is_off_the_record, - bool is_valid_ssl, - bool is_browser_window_active, - bool skip_ui_for_basic_card) - : ChromePaymentRequestDelegate(render_frame_host), - region_data_loader_(nullptr), - observer_(observer), - pref_service_(pref_service), - is_off_the_record_(is_off_the_record), - is_valid_ssl_(is_valid_ssl), - is_browser_window_active_(is_browser_window_active), - skip_ui_for_basic_card_(skip_ui_for_basic_card) {} + content::RenderFrameHost* render_frame_host) + : ChromePaymentRequestDelegate(render_frame_host) {} TestChromePaymentRequestDelegate::~TestChromePaymentRequestDelegate() = default; +void TestChromePaymentRequestDelegate::OverrideRegionDataLoader( + autofill::RegionDataLoader* region_data_loader) { + region_data_loader_ = region_data_loader; +} + +void TestChromePaymentRequestDelegate::OverridePrefService( + PrefService* pref_service) { + pref_service_ = pref_service; +} + +void TestChromePaymentRequestDelegate::OverrideOffTheRecord( + bool is_off_the_record) { + is_off_the_record_ = is_off_the_record; +} + +void TestChromePaymentRequestDelegate::OverrideValidSSL(bool is_valid_ssl) { + is_valid_ssl_ = is_valid_ssl; +} + +void TestChromePaymentRequestDelegate::OverrideBrowserWindowActive( + bool is_browser_window_active) { + is_browser_window_active_ = is_browser_window_active; +} + void TestChromePaymentRequestDelegate::ShowDialog( base::WeakPtr<PaymentRequest> request) { - shown_dialog_ = PaymentRequestDialogView::Create(request, observer_); - shown_dialog_->ShowDialog(); + if (dialog_type_ == DialogType::PAYMENT_REQUEST) { + shown_dialog_ = PaymentRequestDialogView::Create(request, observer_); + shown_dialog_->ShowDialog(); + } else { + ChromePaymentRequestDelegate::ShowDialog(request); + } } bool TestChromePaymentRequestDelegate::IsOffTheRecord() const { - return is_off_the_record_; + return is_off_the_record_.has_value() + ? *is_off_the_record_ + : ChromePaymentRequestDelegate::IsOffTheRecord(); } autofill::RegionDataLoader* TestChromePaymentRequestDelegate::GetRegionDataLoader() { - if (region_data_loader_) - return region_data_loader_; - return ChromePaymentRequestDelegate::GetRegionDataLoader(); + return region_data_loader_ + ? region_data_loader_.get() + : ChromePaymentRequestDelegate::GetRegionDataLoader(); } PrefService* TestChromePaymentRequestDelegate::GetPrefService() { - return pref_service_; + return pref_service_ ? pref_service_.get() + : ChromePaymentRequestDelegate::GetPrefService(); } bool TestChromePaymentRequestDelegate::IsBrowserWindowActive() const { - return is_browser_window_active_; + return is_browser_window_active_.has_value() + ? *is_browser_window_active_ + : ChromePaymentRequestDelegate::IsBrowserWindowActive(); +} + +std::unique_ptr<webauthn::InternalAuthenticator> +TestChromePaymentRequestDelegate::CreateInternalAuthenticator() const { + content::RenderFrameHost* rfh = GetRenderFrameHost(); + return rfh ? std::make_unique<TestAuthenticator>(rfh, has_authenticator_) + : nullptr; } std::string TestChromePaymentRequestDelegate::GetInvalidSslCertificateErrorMessage() { - return is_valid_ssl_ ? "" : "Invalid SSL certificate"; + if (is_valid_ssl_.has_value()) + return *is_valid_ssl_ ? "" : "Invalid SSL certificate"; + + return ChromePaymentRequestDelegate::GetInvalidSslCertificateErrorMessage(); } -bool TestChromePaymentRequestDelegate::SkipUiForBasicCard() const { - return skip_ui_for_basic_card_; +std::string TestChromePaymentRequestDelegate::GetTwaPackageName() const { + return twa_package_name_; +} + +const base::WeakPtr<PaymentUIObserver> +TestChromePaymentRequestDelegate::GetPaymentUIObserver() const { + return payment_ui_observer_; } } // namespace payments
diff --git a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h index 3ea51e3..2c1b0e7 100644 --- a/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h +++ b/chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h
@@ -5,69 +5,96 @@ #ifndef CHROME_BROWSER_UI_VIEWS_PAYMENTS_TEST_CHROME_PAYMENT_REQUEST_DELEGATE_H_ #define CHROME_BROWSER_UI_VIEWS_PAYMENTS_TEST_CHROME_PAYMENT_REQUEST_DELEGATE_H_ -#include <memory> +#include <string> #include "base/memory/raw_ptr.h" +#include "base/memory/weak_ptr.h" #include "chrome/browser/payments/chrome_payment_request_delegate.h" #include "chrome/browser/ui/views/payments/payment_request_dialog_view.h" +#include "third_party/abseil-cpp/absl/types/optional.h" class PrefService; -namespace payments { +namespace autofill { +class RegionDataLoader; +} // namespace autofill + +namespace content { class RenderFrameHost; -} // namespace payments +} // namespace content namespace payments { -class PaymentRequest; - // Implementation of the Payment Request delegate used in tests. class TestChromePaymentRequestDelegate : public ChromePaymentRequestDelegate { public: // This delegate does not own things passed as pointers. - TestChromePaymentRequestDelegate( - content::RenderFrameHost* render_frame_host, - base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer, - PrefService* pref_service, - bool is_off_the_record, - bool is_valid_ssl, - bool is_browser_window_active, - bool skip_ui_for_basic_card); + explicit TestChromePaymentRequestDelegate( + content::RenderFrameHost* render_frame_host); + ~TestChromePaymentRequestDelegate() override; TestChromePaymentRequestDelegate(const TestChromePaymentRequestDelegate&) = delete; TestChromePaymentRequestDelegate& operator=( const TestChromePaymentRequestDelegate&) = delete; - ~TestChromePaymentRequestDelegate() override; + // If an Override* method is not called, then the default implementation from + // ChromePaymentRequestDelegate is used. + void OverrideRegionDataLoader(autofill::RegionDataLoader* region_data_loader); + void OverridePrefService(PrefService* pref_service); + void OverrideOffTheRecord(bool is_off_the_record); + void OverrideValidSSL(bool is_valid_ssl); + void OverrideBrowserWindowActive(bool is_browser_window_active); - void SetRegionDataLoader(autofill::RegionDataLoader* region_data_loader) { - region_data_loader_ = region_data_loader; + void set_payment_ui_observer( + base::WeakPtr<PaymentUIObserver> payment_ui_observer) { + payment_ui_observer_ = payment_ui_observer; } - // ChromePaymentRequestDelegate. - void ShowDialog(base::WeakPtr<PaymentRequest> request) override; - bool IsOffTheRecord() const override; - autofill::RegionDataLoader* GetRegionDataLoader() override; - PrefService* GetPrefService() override; - bool IsBrowserWindowActive() const override; - std::string GetInvalidSslCertificateErrorMessage() override; - bool SkipUiForBasicCard() const override; + void set_payment_request_dialog_view_observer_for_test( + base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer) { + observer_ = observer; + } + + void set_twa_package_name(const std::string& twa_package_name) { + twa_package_name_ = twa_package_name; + } + + void set_has_authenticator(bool has_authenticator) { + has_authenticator_ = has_authenticator; + } PaymentRequestDialogView* dialog_view() { return static_cast<PaymentRequestDialogView*>(shown_dialog_.get()); } private: - // Not owned so must outlive the PaymentRequest object; - raw_ptr<autofill::RegionDataLoader> region_data_loader_; + // ChromePaymentRequestDelegate: + void ShowDialog(base::WeakPtr<PaymentRequest> request) override; + bool IsOffTheRecord() const override; + autofill::RegionDataLoader* GetRegionDataLoader() override; + PrefService* GetPrefService() override; + bool IsBrowserWindowActive() const override; + std::unique_ptr<webauthn::InternalAuthenticator> CreateInternalAuthenticator() + const override; + std::string GetInvalidSslCertificateErrorMessage() override; + std::string GetTwaPackageName() const override; + const base::WeakPtr<PaymentUIObserver> GetPaymentUIObserver() const override; + // Not owned so must outlive the PaymentRequest object; + raw_ptr<autofill::RegionDataLoader> region_data_loader_ = nullptr; + raw_ptr<PrefService> pref_service_ = nullptr; + + base::WeakPtr<PaymentUIObserver> payment_ui_observer_; base::WeakPtr<PaymentRequestDialogView::ObserverForTest> observer_; - raw_ptr<PrefService> pref_service_; - const bool is_off_the_record_; - const bool is_valid_ssl_; - const bool is_browser_window_active_; - const bool skip_ui_for_basic_card_; + + std::string twa_package_name_; + + bool has_authenticator_ = true; + + absl::optional<bool> is_off_the_record_; + absl::optional<bool> is_valid_ssl_; + absl::optional<bool> is_browser_window_active_; }; } // namespace payments
diff --git a/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.cc b/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.cc index 8c3bd08..d1f2091 100644 --- a/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.cc +++ b/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.cc
@@ -18,9 +18,6 @@ base::WeakPtr<SecurePaymentConfirmationDialogView::ObserverForTest> observer) : ChromePaymentRequestDelegate(render_frame_host), - frame_routing_id_(content::GlobalRenderFrameHostId( - render_frame_host->GetProcess()->GetID(), - render_frame_host->GetRoutingID())), model_(model), dialog_view_((new SecurePaymentConfirmationDialogView( observer, @@ -32,7 +29,7 @@ void TestSecurePaymentConfirmationPaymentRequestDelegate::ShowDialog( base::WeakPtr<PaymentRequest> request) { - auto* rfh = content::RenderFrameHost::FromID(frame_routing_id_); + content::RenderFrameHost* rfh = GetRenderFrameHost(); if (rfh && rfh->IsActive()) { dialog_view_->ShowDialog(content::WebContents::FromRenderFrameHost(rfh), model_->GetWeakPtr(), base::DoNothing(),
diff --git a/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.h b/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.h index 1b00c2c..78253bf 100644 --- a/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.h +++ b/chrome/browser/ui/views/payments/test_secure_payment_confirmation_payment_request_delegate.h
@@ -7,7 +7,6 @@ #include "chrome/browser/payments/chrome_payment_request_delegate.h" #include "chrome/browser/ui/views/payments/secure_payment_confirmation_dialog_view.h" -#include "content/public/browser/global_routing_id.h" namespace content { class RenderFrameHost; @@ -38,7 +37,6 @@ } private: - const content::GlobalRenderFrameHostId frame_routing_id_; base::WeakPtr<SecurePaymentConfirmationModel> model_; base::WeakPtr<SecurePaymentConfirmationDialogView> dialog_view_; };
diff --git a/chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h b/chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h index d4159b8..422cf873 100644 --- a/chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h +++ b/chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h
@@ -9,6 +9,7 @@ #include <string> #include "base/files/file_path.h" +#include "base/strings/string_piece.h" #include "chrome/browser/ui/web_applications/web_app_controller_browsertest.h" #include "ui/base/window_open_disposition.h" @@ -31,6 +32,24 @@ class IsolatedWebAppUrlInfo; +inline constexpr uint8_t kTestPublicKey[] = { + 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, + 0x66, 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, + 0x72, 0xFE, 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D}; + +inline constexpr uint8_t kTestPrivateKey[] = { + 0x1F, 0x27, 0x3F, 0x93, 0xE9, 0x59, 0x4E, 0xC7, 0x88, 0x82, 0xC7, 0x49, + 0xF8, 0x79, 0x3D, 0x8C, 0xDB, 0xE4, 0x60, 0x1C, 0x21, 0xF1, 0xD9, 0xF9, + 0xBC, 0x3A, 0xB5, 0xC7, 0x7F, 0x2D, 0x95, 0xE1, + // public key (part of the private key) + 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, 0x66, + 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, 0x72, 0xFE, + 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D}; + +// Derived from `kTestPublicKey`. +inline constexpr base::StringPiece kTestEd25519WebBundleId = + "4tkrnsmftl4ggvvdkfth3piainqragus2qbhf7rlz2a3wo3rh4wqaaic"; + class IsolatedWebAppBrowserTestHarness : public WebAppControllerBrowserTest { public: IsolatedWebAppBrowserTestHarness();
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom index 618bcc8..f2a0855 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom
@@ -52,6 +52,9 @@ // Returns arguments passed to the dialog on creation. GetDialogArgs() => (DialogArgs args); + // Returns whether or not the Office PWA is installed. + IsOfficePWAInstalled() => (bool installed); + // Returns the user selected action and requests the dialog to be closed. RespondAndClose(UserAction response); };
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc index dd1690c1..40e61cf 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.cc
@@ -3,15 +3,29 @@ // found in the LICENSE file. #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h" +#include "chrome/browser/apps/app_service/app_service_proxy.h" +#include "chrome/browser/apps/app_service/app_service_proxy_factory.h" #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom.h" +#include "chrome/browser/web_applications/commands/install_from_info_command.h" +#include "chrome/browser/web_applications/web_app_command_manager.h" +#include "chrome/browser/web_applications/web_app_id_constants.h" +#include "chrome/browser/web_applications/web_app_install_info.h" +#include "chrome/browser/web_applications/web_app_provider.h" +#include "components/services/app_service/public/cpp/app_update.h" +#include "components/services/app_service/public/cpp/types_util.h" +#include "components/webapps/browser/install_result_code.h" +#include "mojo/public/cpp/bindings/callback_helpers.h" +#include "url/gurl.h" namespace ash::cloud_upload { CloudUploadPageHandler::CloudUploadPageHandler( + Profile* profile, mojom::DialogArgsPtr args, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler, RespondAndCloseCallback callback) - : dialog_args_{std::move(args)}, + : profile_{profile}, + dialog_args_{std::move(args)}, receiver_{this, std::move(pending_page_handler)}, callback_{std::move(callback)} {} @@ -22,6 +36,23 @@ : mojom::DialogArgs::New()); } +void CloudUploadPageHandler::IsOfficePWAInstalled( + IsOfficePWAInstalledCallback callback) { + if (!apps::AppServiceProxyFactory::IsAppServiceAvailableForProfile( + profile_)) { + std::move(callback).Run(false); + return; + } + auto* proxy = apps::AppServiceProxyFactory::GetForProfile(profile_); + bool installed = false; + proxy->AppRegistryCache().ForOneApp( + web_app::kMicrosoftOfficeAppId, + [&installed](const apps::AppUpdate& update) { + installed = apps_util::IsInstalled(update.Readiness()); + }); + std::move(callback).Run(installed); +} + void CloudUploadPageHandler::RespondAndClose(mojom::UserAction action) { if (callback_) { std::move(callback_).Run(action);
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h index b579a3b..c4f3357 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_page_handler.h
@@ -10,11 +10,15 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom-shared.h" #include "chrome/browser/ui/webui/ash/cloud_upload/cloud_upload.mojom.h" +#include "chrome/browser/web_applications/web_app_id.h" +#include "components/webapps/browser/install_result_code.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" +class Profile; + namespace ash::cloud_upload { // Handles communication from the chrome://cloud-upload renderer process to @@ -24,6 +28,7 @@ using RespondAndCloseCallback = base::OnceCallback<void(mojom::UserAction action)>; CloudUploadPageHandler( + Profile* profile, mojom::DialogArgsPtr args, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler, RespondAndCloseCallback callback); @@ -35,9 +40,12 @@ // mojom::PageHandler: void GetDialogArgs(GetDialogArgsCallback callback) override; + void IsOfficePWAInstalled(IsOfficePWAInstalledCallback callback) override; void RespondAndClose(mojom::UserAction action) override; private: + Profile* profile_; + mojom::DialogArgsPtr dialog_args_; mojo::Receiver<PageHandler> receiver_;
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc index 3062826..39367ee 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_ui.cc
@@ -54,7 +54,8 @@ void CloudUploadUI::CreatePageHandler( mojo::PendingReceiver<mojom::PageHandler> receiver) { page_handler_ = std::make_unique<CloudUploadPageHandler>( - std::move(dialog_args_), std::move(receiver), + Profile::FromWebUI(web_ui()), std::move(dialog_args_), + std::move(receiver), // base::Unretained() because |page_handler_| will not out-live |this|. base::BindOnce(&CloudUploadUI::RespondAndCloseDialog, base::Unretained(this)));
diff --git a/chrome/browser/ui/webui/settings/about_handler.cc b/chrome/browser/ui/webui/settings/about_handler.cc index 2bb20de2..a33c9e4 100644 --- a/chrome/browser/ui/webui/settings/about_handler.cc +++ b/chrome/browser/ui/webui/settings/about_handler.cc
@@ -146,7 +146,7 @@ // Returns the relative path under the chromeos-assets dir // to the directory of regulatory labels for a given region, if found // (e.g. "regulatory_labels/us"). Must be called from the blocking pool. -base::FilePath GetRegulatoryLabelDirForRegion(const std::string& region) { +base::FilePath GetRegulatoryLabelDirForRegion(base::StringPiece region) { base::FilePath region_path(kRegulatoryLabelsDirectory); const std::string model_subdir = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( @@ -169,13 +169,13 @@ // subdirectory of regulatory labels, using the VPD region code. Also // tries "us" as a fallback region. Must be called from the blocking pool. base::FilePath FindRegulatoryLabelDir() { - std::string region; base::FilePath region_path; // Use the VPD region code to find the label dir. - if (chromeos::system::StatisticsProvider::GetInstance()->GetMachineStatistic( - "region", ®ion) && - !region.empty()) { - region_path = GetRegulatoryLabelDirForRegion(region); + const absl::optional<base::StringPiece> region = + chromeos::system::StatisticsProvider::GetInstance()->GetMachineStatistic( + chromeos::system::kRegionKey); + if (region && !region->empty()) { + region_path = GetRegulatoryLabelDirForRegion(region.value()); } // Try the fallback region code if no directory was found.
diff --git a/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_from_command_line_browsertest.cc b/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_from_command_line_browsertest.cc index 3f7f902..3ffda0c1 100644 --- a/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_from_command_line_browsertest.cc +++ b/chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_from_command_line_browsertest.cc
@@ -2,18 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <vector> #include "chrome/browser/web_applications/isolated_web_apps/install_isolated_web_app_from_command_line.h" +#include <vector> + #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/one_shot_event.h" +#include "base/strings/strcat.h" #include "base/test/bind.h" #include "base/threading/thread_restrictions.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h" #include "chrome/browser/web_applications/isolation_data.h" #include "chrome/browser/web_applications/test/web_app_test_observers.h" #include "chrome/browser/web_applications/web_app.h" @@ -21,6 +24,7 @@ #include "chrome/browser/web_applications/web_app_provider.h" #include "chrome/browser/web_applications/web_app_registrar.h" #include "chrome/common/chrome_features.h" +#include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "components/web_package/signed_web_bundles/ed25519_public_key.h" #include "components/web_package/signed_web_bundles/signed_web_bundle_id.h" @@ -31,6 +35,7 @@ #include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gmock/include/gmock/gmock.h" #include "url/gurl.h" +#include "url/url_constants.h" namespace web_app { namespace { @@ -131,19 +136,19 @@ } std::vector<uint8_t> BuildBundle() { - web_package::WebBundleSigner::KeyPair key_pair = - web_package::WebBundleSigner::KeyPair::CreateRandom(); - web_package::SignedWebBundleId bundle_id = - web_package::SignedWebBundleId::CreateForEd25519PublicKey( - key_pair.public_key); web_package::WebBundleBuilder builder; + std::string primary_url = + base::StrCat({chrome::kIsolatedAppScheme, url::kStandardSchemeSeparator, + kTestEd25519WebBundleId}); - builder.AddPrimaryURL("isolated-app://" + bundle_id.id()); - builder.AddExchange("isolated-app://" + bundle_id.id(), + builder.AddPrimaryURL(primary_url); + builder.AddExchange(primary_url, {{":status", "200"}, {"content-type", "text/plain"}}, "payload"); auto unsigned_bundle = builder.CreateBundle(); + web_package::WebBundleSigner::KeyPair key_pair(kTestPublicKey, + kTestPrivateKey); return web_package::WebBundleSigner::SignBundle(unsigned_bundle, {key_pair}); }
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_browsertest.cc b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_browsertest.cc index b1429b044..634926be 100644 --- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_browsertest.cc +++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_browsertest.cc
@@ -12,6 +12,7 @@ #include "base/threading/thread_restrictions.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h" #include "chrome/browser/web_applications/test/fake_web_app_provider.h" #include "chrome/browser/web_applications/web_app.h" #include "chrome/browser/web_applications/web_app_helpers.h" @@ -38,24 +39,6 @@ using ::testing::IsTrue; using ::testing::NotNull; -constexpr uint8_t kTestPublicKey[] = { - 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, - 0x66, 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, - 0x72, 0xFE, 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D, -}; - -constexpr uint8_t kTestPrivateKey[] = { - 0x1F, 0x27, 0x3F, 0x93, 0xE9, 0x59, 0x4E, 0xC7, 0x88, 0x82, 0xC7, 0x49, - 0xF8, 0x79, 0x3D, 0x8C, 0xDB, 0xE4, 0x60, 0x1C, 0x21, 0xF1, 0xD9, 0xF9, - 0xBC, 0x3A, 0xB5, 0xC7, 0x7F, 0x2D, 0x95, 0xE1, - // public key (part of the private key) - 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, 0x66, - 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, 0x72, 0xFE, - 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D}; - -constexpr char kWebBundleId[] = - "4tkrnsmftl4ggvvdkfth3piainqragus2qbhf7rlz2a3wo3rh4wqaaic"; - std::u16string MessagesAsString( const std::vector<content::WebContentsConsoleObserver::Message>& messages) { std::u16string text; @@ -123,8 +106,10 @@ base::FilePath SignAndWriteBundleToDisk( const std::vector<uint8_t>& unsigned_bundle) { - auto signed_bundle = web_package::WebBundleSigner::SignBundle( - unsigned_bundle, {{kTestPublicKey, kTestPrivateKey}}); + web_package::WebBundleSigner::KeyPair key_pair(kTestPublicKey, + kTestPrivateKey); + auto signed_bundle = + web_package::WebBundleSigner::SignBundle(unsigned_bundle, {key_pair}); { base::ScopedAllowBlockingForTesting allow_blocking; @@ -205,7 +190,7 @@ const std::string kPrimaryUrl = base::StrCat({chrome::kIsolatedAppScheme, url::kStandardSchemeSeparator, - kWebBundleId}); + kTestEd25519WebBundleId}); bool enable_isolated_web_apps_feature_; base::test::ScopedFeatureList scoped_feature_list_;
diff --git a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_unittest.cc index 2310e6f..6b2ab59 100644 --- a/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_unittest.cc +++ b/chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_loader_factory_unittest.cc
@@ -11,6 +11,8 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" +#include "base/strings/strcat.h" +#include "chrome/browser/ui/web_applications/test/isolated_web_app_test_utils.h" #include "chrome/browser/web_applications/isolated_web_apps/isolated_web_app_url_info.h" #include "chrome/browser/web_applications/isolated_web_apps/pending_install_info.h" #include "chrome/browser/web_applications/isolation_data.h" @@ -21,6 +23,7 @@ #include "chrome/browser/web_applications/web_app_helpers.h" #include "chrome/browser/web_applications/web_app_id.h" #include "chrome/browser/web_applications/web_app_registrar.h" +#include "chrome/common/url_constants.h" #include "components/web_package/test_support/signed_web_bundles/web_bundle_signer.h" #include "components/web_package/web_bundle_builder.h" #include "content/public/browser/storage_partition_config.h" @@ -39,6 +42,7 @@ #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" #include "url/origin.h" +#include "url/url_constants.h" namespace web_app { namespace { @@ -50,21 +54,6 @@ using ::testing::IsTrue; using ::testing::NotNull; -constexpr uint8_t kTestPublicKey[] = { - 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, - 0x66, 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, - 0x72, 0xFE, 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D, -}; - -constexpr uint8_t kTestPrivateKey[] = { - 0x1F, 0x27, 0x3F, 0x93, 0xE9, 0x59, 0x4E, 0xC7, 0x88, 0x82, 0xC7, 0x49, - 0xF8, 0x79, 0x3D, 0x8C, 0xDB, 0xE4, 0x60, 0x1C, 0x21, 0xF1, 0xD9, 0xF9, - 0xBC, 0x3A, 0xB5, 0xC7, 0x7F, 0x2D, 0x95, 0xE1, - // public key (part of the private key) - 0xE4, 0xD5, 0x16, 0xC9, 0x85, 0x9A, 0xF8, 0x63, 0x56, 0xA3, 0x51, 0x66, - 0x7D, 0xBD, 0x00, 0x43, 0x61, 0x10, 0x1A, 0x92, 0xD4, 0x02, 0x72, 0xFE, - 0x2B, 0xCE, 0x81, 0xBB, 0x3B, 0x71, 0x3F, 0x2D}; - MATCHER_P(IsNetError, err, net::ErrorToString(err)) { if (arg == err) return true; @@ -707,10 +696,9 @@ return web_bundle_path; } - const std::string kEd25519WebBundleId = - "4tkrnsmftl4ggvvdkfth3piainqragus2qbhf7rlz2a3wo3rh4wqaaic"; - const GURL kEd25519AppOriginUrl = - GURL("isolated-app://" + kEd25519WebBundleId); + const GURL kEd25519AppOriginUrl = GURL( + base::StrCat({chrome::kIsolatedAppScheme, url::kStandardSchemeSeparator, + kTestEd25519WebBundleId})); base::ScopedTempDir temp_dir_; };
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.cc index 8b244272..c622c1c 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.cc +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.cc
@@ -19,6 +19,9 @@ DCHECK(update_manifest_url_.is_valid()); } +IsolatedWebAppExternalInstallOptions::IsolatedWebAppExternalInstallOptions( + const IsolatedWebAppExternalInstallOptions& other) = default; + IsolatedWebAppExternalInstallOptions::~IsolatedWebAppExternalInstallOptions() = default;
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.h b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.h index 16bdc5a..fc31b2a 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.h +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_external_install_options.h
@@ -5,6 +5,7 @@ #ifndef CHROME_BROWSER_WEB_APPLICATIONS_ISOLATED_WEB_APPS_POLICY_ISOLATED_WEB_APP_EXTERNAL_INSTALL_OPTIONS_H_ #define CHROME_BROWSER_WEB_APPLICATIONS_ISOLATED_WEB_APPS_POLICY_ISOLATED_WEB_APP_EXTERNAL_INSTALL_OPTIONS_H_ +#include "base/files/file_path.h" #include "components/web_package/signed_web_bundles/signed_web_bundle_id.h" #include "url/gurl.h" @@ -26,7 +27,7 @@ ~IsolatedWebAppExternalInstallOptions(); IsolatedWebAppExternalInstallOptions( - const IsolatedWebAppExternalInstallOptions& other) = default; + const IsolatedWebAppExternalInstallOptions& other); // Delete for now as SignedWebBundleId has no copy assignment operator. IsolatedWebAppExternalInstallOptions& operator=( const IsolatedWebAppExternalInstallOptions& other) = delete; @@ -36,6 +37,18 @@ return web_bundle_id_; } + void set_web_bundle_url(const GURL& url) { web_bundle_url_ = url; } + + const GURL& web_bundle_url() const { return web_bundle_url_; } + + void set_app_directory(const base::FilePath& app_directory) { + app_directory_ = app_directory; + } + + void reset_app_directory() { app_directory_.clear(); } + + const base::FilePath& app_directory() const { return app_directory_; } + private: IsolatedWebAppExternalInstallOptions( const GURL& update_manifest_url, @@ -45,6 +58,11 @@ GURL update_manifest_url_; // Signed Web Bundle ID identifies the app. web_package::SignedWebBundleId web_bundle_id_; + + // The URL to be used to download Web Bundle. + GURL web_bundle_url_; + // The directory where the Signed Web Bundle was or will be downloaded to. + base::FilePath app_directory_; }; } // namespace web_app
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc index 3a0b784..c956849 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc
@@ -217,14 +217,108 @@ return; } - LOG(ERROR) << "We have determined the URL of the Web Bundle for the app " + current_app_->set_web_bundle_url(web_bundle_url.value()); + CreateIwaDirectory(); +} + +void IsolatedWebAppPolicyManager::CreateIwaDirectory() { + base::FilePath iwa_dir = + installation_dir_.Append(current_app_->web_bundle_id().id()); + base::ThreadPool::PostTaskAndReplyWithResult( + FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()}, + base::BindOnce(&CreateNonExistingDirectory, iwa_dir), + base::BindOnce(&IsolatedWebAppPolicyManager::OnIwaDirectoryCreated, + weak_factory_.GetWeakPtr(), iwa_dir)); +} + +void IsolatedWebAppPolicyManager::OnIwaDirectoryCreated( + const base::FilePath& iwa_dir, + base::File::Error error) { + if (error != base::File::FILE_OK) { + SetResultForCurrentEphemeralApp( + EphemeralAppInstallResult::kErrorCantCreateIwaDirectory); + ContinueWithTheNextApp(); + return; + } + + current_app_->set_app_directory(iwa_dir); + DownloadWebBundle(); +} + +void IsolatedWebAppPolicyManager::DownloadWebBundle() { + net::NetworkTrafficAnnotationTag traffic_annotation = + net::DefineNetworkTrafficAnnotation("iwa_policy_signed_web_bundle", R"( + semantics { + sender: "Isolated Web App Signed Web Bundle Downloader" + description: + "Downloads the Signed Web Bundle of the Isolated Web App (IWA) " + "by the URL taken form the Update Manifest." + trigger: + "Installing/update of every IWA (including policy-based installs) " + "require in a Signed Web Bundle that we download here." + data: + "This request does not send any data. It just downloads a Web Bundle." + destination: OTHER + contacts { + email: "peletskyi@google.com" + } + } + policy { + cookies_allowed: NO + setting: "This feature cannot be disabled in settings." + chrome_policy { + IsolatedWebAppInstallForceList { + IsolatedWebAppInstallForceList: "" + } + } + })"); + auto resource_request = std::make_unique<network::ResourceRequest>(); + resource_request->url = current_app_->web_bundle_url(); + // Cookies are not allowed. + resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit; + + std::unique_ptr<network::SimpleURLLoader> simple_loader = + network::SimpleURLLoader::Create(std::move(resource_request), + std::move(traffic_annotation)); + + simple_loader->SetRetryOptions( + /* max_retries=*/3, + network::SimpleURLLoader::RETRY_ON_5XX | + network::SimpleURLLoader::RETRY_ON_NETWORK_CHANGE); + + network::SimpleURLLoader* const simple_loader_ptr = simple_loader.get(); + base::OnceCallback<void(base::FilePath path)> cb = + base::BindOnce(&IsolatedWebAppPolicyManager::OnWebBundleDownloaded, + weak_factory_.GetWeakPtr(), std::move(simple_loader)); + + base::FilePath swbn_path = + current_app_->app_directory().Append(kMainSignedWebBundleFileName); + simple_loader_ptr->DownloadToFile(url_loader_factory_.get(), std::move(cb), + swbn_path); +} + +void IsolatedWebAppPolicyManager::OnWebBundleDownloaded( + std::unique_ptr<network::SimpleURLLoader> simple_loader, + base::FilePath path) { + if (path.empty()) { + // Delete the app directory as we don't need it any more. + const base::FilePath iwa_path_to_delete(current_app_->app_directory()); + current_app_->reset_app_directory(); + base::ThreadPool::PostTask( + FROM_HERE, {base::MayBlock(), base::TaskPriority::BEST_EFFORT}, + base::GetDeleteFileCallback(iwa_path_to_delete)); + + SetResultForCurrentEphemeralApp( + EphemeralAppInstallResult::kErrorCantDownloadWebBundle); + ContinueWithTheNextApp(); + return; + } + + LOG(ERROR) << "We downloaded the signed Web Bundle for the app " << current_app_->web_bundle_id().id() << ". Further installation steps will be executed after " "the feature is complete."; - // Even though the app is not installed because the feature is not yet - // implemented, let's set the result to kSuccess as nothing went wrong for - // the current app. SetResultForCurrentEphemeralApp(EphemeralAppInstallResult::kSuccess); ContinueWithTheNextApp(); }
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.h b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.h index 752d7cb6..21907c6 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.h +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.h
@@ -34,9 +34,12 @@ kErrorUpdateManifestDownloadFailed, kErrorUpdateManifestParsingFailed, kErrorWebBundleUrlCantBeDetermined, + kErrorCantCreateIwaDirectory, + kErrorCantDownloadWebBundle, kUnknown, }; static constexpr char kEphemeralIwaRootDirectory[] = "EphemeralIWA"; + static constexpr char kMainSignedWebBundleFileName[] = "main.swbn"; IsolatedWebAppPolicyManager( const base::FilePath& context_dir, @@ -78,6 +81,17 @@ void OnUpdateManifestParsed(absl::optional<base::Value> result, const absl::optional<std::string>& error); + // Create a new directory for the exact instance of the IWA. + void CreateIwaDirectory(); + void OnIwaDirectoryCreated(const base::FilePath& iwa_dir, + base::File::Error error); + + // Downloading of the Signed Web Bundle. + void DownloadWebBundle(); + void OnWebBundleDownloaded( + std::unique_ptr<network::SimpleURLLoader> simple_loader, + base::FilePath path); + void SetResultForCurrentEphemeralApp(EphemeralAppInstallResult result); void SetResultForAllEphemeralApps(EphemeralAppInstallResult result); void ContinueWithTheNextApp();
diff --git a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_unittest.cc b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_unittest.cc index 3607688..e9904753 100644 --- a/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_unittest.cc +++ b/chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager_unittest.cc
@@ -7,6 +7,7 @@ #include <string> #include <vector> +#include "base/files/file_enumerator.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/test/task_environment.h" @@ -44,21 +45,31 @@ "https://example.com/4/update-manifest-4.json"; constexpr char kUpdateManifestUrl5[] = "https://example.com/5/update-manifest-5.json"; +constexpr char kUpdateManifestUrl6[] = + "https://example.com/6/update-manifest-6.json"; +constexpr char kUpdateManifestUrl7[] = + "https://example.com/7/update-manifest-7.json"; constexpr char kUpdateManifestValue1[] = R"( {"versions":[ - {"version": "1.0.0", "src": "https://example.com/1/p1.swbn"}, - {"version": "7.0.6", "src": "http://example.com/1/p7.wbn"}] + {"version": "1.0.0", "src": "https://example.com/not-used.swbn"}, + {"version": "7.0.6", "src": "https://example.com/app1.swbn"}] })"; constexpr char kUpdateManifestValue2[] = R"( {"versions": - [{"version": "3.0.0","src": "https://example.com/2/p3.swbn"}]})"; + [{"version": "3.0.0","src": "https://example.com/app2.swbn"}]})"; constexpr char kUpdateManifestValue3[] = "This update manifest should return error 404"; constexpr char kUpdateManifestValue4[] = R"(This is not JSON)"; constexpr char kUpdateManifestValue5[] = R"( {"versions": [{"version": "1.0.0", "src": "Ooops! Wrong Web Bundle URL!"}]})"; +constexpr char kUpdateManifestValue6[] = R"( + {"versions": + [{"version": "1.0.0", "src": "https://example.com/app6.swbn"}]})"; +constexpr char kUpdateManifestValue7[] = R"( + {"versions": + [{"version": "1.0.0", "src": "https://example.com/app7.swbn"}]})"; constexpr char kWebBundleId1[] = "aerugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic"; @@ -70,6 +81,9 @@ "derugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic"; constexpr char kWebBundleId5[] = "eerugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic"; +constexpr base::StringPiece kWebBundleId6 = kWebBundleId1; +constexpr char kWebBundleId7[] = + "gerugqztij5biqquuk3mfwpsaibuegaqcitgfchwuosuofdjabzqaaic"; base::Value CreatePolicyEntry(base::StringPiece web_bundle_id, base::StringPiece update_manifest_url) { @@ -81,31 +95,50 @@ } std::vector<IsolatedWebAppExternalInstallOptions> GenerateInstallOptions() { + // App 1 represents the most general case: the Update Manifest has several + // records. We should determine the latest version, download the appropreate + // file and install the app. It is successful case. const base::Value policy_value_1 = CreatePolicyEntry(kWebBundleId1, kUpdateManifestUrl1); IsolatedWebAppExternalInstallOptions app_options_1 = IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_1) .value(); + // App 2 is similar to App 1 but has only one record in the Update Manifest. const base::Value policy_value_2 = CreatePolicyEntry(kWebBundleId2, kUpdateManifestUrl2); IsolatedWebAppExternalInstallOptions app_options_2 = IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_2) .value(); + // We can't download Update Manifest for the app 3. const base::Value policy_value_3 = CreatePolicyEntry(kWebBundleId3, kUpdateManifestUrl3); IsolatedWebAppExternalInstallOptions app_options_3 = IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_3) .value(); + // App 4 represents the case where the Update Manifest if not parceable. const base::Value policy_value_4 = CreatePolicyEntry(kWebBundleId4, kUpdateManifestUrl4); IsolatedWebAppExternalInstallOptions app_options_4 = IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_4) .value(); + // The Web Bundle URL of the App 5 is not valid. const base::Value policy_value_5 = CreatePolicyEntry(kWebBundleId5, kUpdateManifestUrl5); IsolatedWebAppExternalInstallOptions app_options_5 = IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_5) .value(); + // ID of the App 6 is the same as ID of the App 1. + const base::Value policy_value_6 = + CreatePolicyEntry(kWebBundleId6, kUpdateManifestUrl6); + IsolatedWebAppExternalInstallOptions app_options_6 = + IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_6) + .value(); + // The Web Bundle file of the App 7 can't be downloaded. + const base::Value policy_value_7 = + CreatePolicyEntry(kWebBundleId7, kUpdateManifestUrl7); + IsolatedWebAppExternalInstallOptions app_options_7 = + IsolatedWebAppExternalInstallOptions::FromPolicyPrefValue(policy_value_7) + .value(); std::vector<IsolatedWebAppExternalInstallOptions> options; options.push_back(std::move(app_options_1)); @@ -113,6 +146,8 @@ options.push_back(std::move(app_options_3)); options.push_back(std::move(app_options_4)); options.push_back(std::move(app_options_5)); + options.push_back(std::move(app_options_6)); + options.push_back(std::move(app_options_7)); return options; } @@ -161,6 +196,15 @@ net::HttpStatusCode::HTTP_NOT_FOUND); AddJsonResponse(kUpdateManifestUrl4, kUpdateManifestValue4); AddJsonResponse(kUpdateManifestUrl5, kUpdateManifestValue5); + AddJsonResponse(kUpdateManifestUrl6, kUpdateManifestValue6); + AddJsonResponse(kUpdateManifestUrl7, kUpdateManifestValue7); + test_factory_.AddResponse("https://example.com/app1.swbn", + "Content of app1"); + test_factory_.AddResponse("https://example.com/app2.swbn", + "Content of app2"); + test_factory_.AddResponse("https://example.com/app7.swbn", "", + net::HttpStatusCode::HTTP_NOT_FOUND); + StartManagedGuestSession(); } @@ -205,6 +249,10 @@ EphemeralAppInstallResult::kErrorUpdateManifestParsingFailed; expected_results.at(4) = IsolatedWebAppPolicyManager:: EphemeralAppInstallResult::kErrorWebBundleUrlCantBeDetermined; + expected_results.at(5) = IsolatedWebAppPolicyManager:: + EphemeralAppInstallResult::kErrorCantCreateIwaDirectory; + expected_results.at(6) = IsolatedWebAppPolicyManager:: + EphemeralAppInstallResult::kErrorCantDownloadWebBundle; base::test::TestFuture< std::vector<IsolatedWebAppPolicyManager::EphemeralAppInstallResult>> future; @@ -212,10 +260,29 @@ shared_url_loader_factory_, future.GetCallback()); manager.InstallEphemeralApps(); - EXPECT_EQ(future.Get(), expected_results); - EXPECT_TRUE(base::DirectoryExists(dir_.GetPath().Append( - IsolatedWebAppPolicyManager::kEphemeralIwaRootDirectory))); + + const base::FilePath iwa_root_dir = dir_.GetPath().Append( + IsolatedWebAppPolicyManager::kEphemeralIwaRootDirectory); + ASSERT_TRUE(base::DirectoryExists(iwa_root_dir)); + + // There should be 2 directories that represent successfully installed apps. + base::FileEnumerator iter( + iwa_root_dir, /*recursive=*/false, + base::FileEnumerator::FILES | base::FileEnumerator::DIRECTORIES); + int counter = 0; + while (!iter.Next().empty()) { + EXPECT_TRUE(iter.GetInfo().IsDirectory()); + ++counter; + } + EXPECT_EQ(counter, 2); + + EXPECT_TRUE(base::PathExists( + iwa_root_dir.Append(kWebBundleId1) + .Append(IsolatedWebAppPolicyManager::kMainSignedWebBundleFileName))); + EXPECT_TRUE(base::PathExists( + iwa_root_dir.Append(kWebBundleId2) + .Append(IsolatedWebAppPolicyManager::kMainSignedWebBundleFileName))); } // If there is no MGS we don't create root directory for the IWAs.
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index d617bc8e..65bad9e 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1668642856-54036bf886aef35c44e1b10cb10eb5a57a0d20b9.profdata +chrome-linux-main-1668686205-1e30188baf158447cd583d1267554668d5879801.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 61fd462..890e302 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1668642856-54351946a0bdaf8bfd4b67e96007c6bbba1a2f0b.profdata +chrome-mac-arm-main-1668664741-b8160182596fd53398d6aec23a6ad9e1b33f6565.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 256886f..3ceb7c0 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1668664741-26410aada73b85cb88ca60c88091a7ffe3059717.profdata +chrome-mac-main-1668686205-37e3cf4dcaeb8a19ae96ce1d7fb53858388dbe87.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 8dd9a33..f822658 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1668642856-93fd52add0978ce0b2429c9ef385ee9eef86f64a.profdata +chrome-win32-main-1668675513-9b48f91eb82a48e591af6c04319dbef7b65e94e6.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 297e643..9092f79 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1668642856-552fb9c1f7fff2e4badfd5cfe4e6f4774c705870.profdata +chrome-win64-main-1668675513-1137b50debfe2732fa5feb7b90eb659f8003b970.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 43d9cbb..a1d77c0 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -1240,11 +1240,17 @@ // the Trust & Safety sentiment survey. // TODO(crbug.com/1382134): Calculate initial probabilities and remove 0.0 const base::FeatureParam<double> + kTrustSafetySentimentSurveyV2SafetyCheckProbability{ + &kTrustSafetySentimentSurveyV2, "safety-check-probability", 0.0}; +const base::FeatureParam<double> kTrustSafetySentimentSurveyV2TrustedSurfaceProbability{ &kTrustSafetySentimentSurveyV2, "trusted-surface-probability", 0.0}; // The HaTS trigger IDs, which determine which survey is delivered from the HaTS // backend. const base::FeatureParam<std::string> + kTrustSafetySentimentSurveyV2SafetyCheckTriggerId{ + &kTrustSafetySentimentSurveyV2, "safety-check-trigger-id", ""}; +const base::FeatureParam<std::string> kTrustSafetySentimentSurveyV2TrustedSurfaceTriggerId{ &kTrustSafetySentimentSurveyV2, "trusted-surface-trigger-id", ""}; // The time the user must have the Trusted Surface bubble open to be considered.
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 8bedde0..e83b5a55 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -706,9 +706,15 @@ kTrustSafetySentimentSurveyV2NtpVisitsMaxRange; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<double> + kTrustSafetySentimentSurveyV2SafetyCheckProbability; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<double> kTrustSafetySentimentSurveyV2TrustedSurfaceProbability; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<std::string> + kTrustSafetySentimentSurveyV2SafetyCheckTriggerId; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<std::string> kTrustSafetySentimentSurveyV2TrustedSurfaceTriggerId; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::FeatureParam<base::TimeDelta>
diff --git a/chrome/test/chromedriver/net/websocket.cc b/chrome/test/chromedriver/net/websocket.cc index 437cb6af..f93dfa058 100644 --- a/chrome/test/chromedriver/net/websocket.cc +++ b/chrome/test/chromedriver/net/websocket.cc
@@ -236,9 +236,23 @@ } void WebSocket::OnRead(bool read_again, int code) { - if (code <= 0) { + if (code == 0) { + // On POSIX and FUCHSIA: + // code >= 0 is the result of POSIX read function call: + // code > 0 denotes the amount of successfully read bytes + // code == 0 means that we have reached EOF. + // The latter one is issued upon receiving a FIN packet. + // code < 0 is an error code + // On Windows: + // code >=0 is the result of recv function call (winsocks.h) + // It has the same semantic as in the POSIX case + // code < 0 is an error code + code = net::ERR_CONNECTION_CLOSED; + } + + if (code < 0) { VLOG(4) << "WebSocket::OnRead error " << net::ErrorToShortString(code); - Close(code ? code : net::ERR_FAILED); + Close(code); return; }
diff --git a/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts b/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts index 5b7907d4..541efa6 100644 --- a/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts +++ b/chrome/test/data/webui/chromeos/cloud_upload/cloud_upload_app_test.ts
@@ -7,9 +7,15 @@ import {CloudProvider, DialogArgs, DialogPage, PageHandlerRemote, UserAction} from 'chrome://cloud-upload/cloud_upload.mojom-webui.js'; import {CloudUploadBrowserProxy} from 'chrome://cloud-upload/cloud_upload_browser_proxy.js'; import {CloudUploadElement} from 'chrome://cloud-upload/cloud_upload_dialog.js'; -import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {assertDeepEquals, assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js'; +interface ProxyOptions { + uploadType: CloudProvider; + fileName?: string|null; + officePWAInstalled: boolean; +} + /** * A test CloudUploadBrowserProxy implementation that enables to mock various * mojo responses. @@ -17,17 +23,23 @@ class CloudUploadTestBrowserProxy implements CloudUploadBrowserProxy { handler: PageHandlerRemote&TestBrowserProxy; - constructor(uploadType: CloudProvider, fileName: string|null) { + constructor(options: ProxyOptions) { this.handler = TestBrowserProxy.fromClass(PageHandlerRemote); const args: DialogArgs = { - cloudProvider: uploadType, + cloudProvider: options.uploadType, fileNames: [], dialogPage: DialogPage.kOneDriveSetup, }; - if (fileName != null) { - args.fileNames.push(fileName); + if (options.fileName != null) { + args.fileNames.push(options.fileName); } this.handler.setResultFor('getDialogArgs', {args: args}); + this.handler.setResultFor( + 'isOfficePWAInstalled', {installed: options.officePWAInstalled}); + } + + isTest() { + return true; } } @@ -40,9 +52,8 @@ called. */ let testProxy: CloudUploadTestBrowserProxy; - const setupForUploadType = - async (uploadType: CloudProvider, fileName: string|null) => { - testProxy = new CloudUploadTestBrowserProxy(uploadType, fileName); + const setupForUploadType = async (options: ProxyOptions) => { + testProxy = new CloudUploadTestBrowserProxy(options); CloudUploadBrowserProxy.setInstance(testProxy); // Creates and attaches the <cloud-upload> element to the DOM tree. @@ -50,9 +61,24 @@ document.createElement('cloud-upload') as CloudUploadElement; container.appendChild(cloudUploadApp); await cloudUploadApp.initPromise; + }; - // Click the 'next' button on the welcome page. + const doPWAInstallPage = async () => { + // This promise resolves once a new page appears. + const nextPagePromise = new Promise<void>(resolve => { + const observer = new MutationObserver(mutations => { + for (const mutation of mutations) { + if (mutation.addedNodes.length > 0) { + observer.disconnect(); + resolve(); + } + } + }); + observer.observe(cloudUploadApp.shadowRoot!, {childList: true}); + }); + cloudUploadApp.$('.action-button').click(); + await nextPagePromise; }; /** @@ -78,7 +104,17 @@ * file. */ test('Set up OneDrive with file', async () => { - await setupForUploadType(CloudProvider.kOneDrive, 'file.docx'); + await setupForUploadType({ + uploadType: CloudProvider.kOneDrive, + fileName: 'file.docx', + officePWAInstalled: false, + }); + + // Click the 'next' button on the welcome page. + cloudUploadApp.$('.action-button').click(); + + await doPWAInstallPage(); + const fileContainer = cloudUploadApp.$('#file-container'); assertFalse(fileContainer.hidden); }); @@ -88,17 +124,52 @@ * file. */ test('Set up OneDrive without file', async () => { - await setupForUploadType(CloudProvider.kOneDrive, null); + await setupForUploadType({ + uploadType: CloudProvider.kOneDrive, + officePWAInstalled: false, + }); + + // Click the 'next' button on the welcome page. + cloudUploadApp.$('.action-button').click(); + + await doPWAInstallPage(); + const fileContainer = cloudUploadApp.$('#file-container'); assertTrue(fileContainer.hidden); }); + test('Set up OneDrive with Office PWA already installed', async () => { + await setupForUploadType({ + uploadType: CloudProvider.kOneDrive, + officePWAInstalled: true, + }); + + // Click the 'next' button on the welcome page. + cloudUploadApp.$('.action-button').click(); + + // Make the setup skips the PWA install page and goes to the upload page. + // TODO(b/251046341): Once the sign in page is ready, this should check for + // that page instead. + assertEquals(null, cloudUploadApp.$('office-pwa-install-page')); + assertNotEquals(null, cloudUploadApp.$('upload-page')); + }); + /** * Tests that clicking the open file button triggers the right * `respondAndClose` mojo request. */ test('Open file button', async () => { - await setupForUploadType(CloudProvider.kGoogleDrive, 'file.docx'); + await setupForUploadType({ + uploadType: CloudProvider.kGoogleDrive, + fileName: 'file.docx', + officePWAInstalled: false, + }); + + // Click the 'next' button on the welcome page. + cloudUploadApp.$('.action-button').click(); + + await doPWAInstallPage(); + cloudUploadApp.$('.action-button').click(); await testProxy.handler.whenCalled('respondAndClose'); assertEquals(1, testProxy.handler.getCallCount('respondAndClose')); @@ -111,7 +182,17 @@ * mojo request. */ test('Close button', async () => { - await setupForUploadType(CloudProvider.kGoogleDrive, 'file.docx'); + await setupForUploadType({ + uploadType: CloudProvider.kGoogleDrive, + fileName: 'file.docx', + officePWAInstalled: false, + }); + + // Click the 'next' button on the welcome page. + cloudUploadApp.$('.action-button').click(); + + await doPWAInstallPage(); + cloudUploadApp.$('.cancel-button').click(); await testProxy.handler.whenCalled('respondAndClose'); assertEquals(1, testProxy.handler.getCallCount('respondAndClose'));
diff --git a/chrome/test/data/webui/password_manager/password_details_section_test.ts b/chrome/test/data/webui/password_manager/password_details_section_test.ts index 0204be57..436827f 100644 --- a/chrome/test/data/webui/password_manager/password_details_section_test.ts +++ b/chrome/test/data/webui/password_manager/password_details_section_test.ts
@@ -5,11 +5,11 @@ import 'chrome://password-manager/password_manager.js'; import {Page, PasswordDetailsSectionElement, PasswordManagerImpl, Router} from 'chrome://password-manager/password_manager.js'; -import {assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {assertArrayEquals, assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {flushTasks} from 'chrome://webui-test/polymer_test_util.js'; import {TestPasswordManagerProxy} from './test_password_manager_proxy.js'; -import {createCredentialGroup} from './test_util.js'; +import {createCredentialGroup, createPasswordEntry} from './test_util.js'; suite('PasswordDetailsSectionTest', function() { let passwordManager: TestPasswordManagerProxy; @@ -41,15 +41,26 @@ // Simulate direct navigation. Router.getInstance().navigateTo(Page.PASSWORD_DETAILS, 'test.com'); passwordManager.data.groups = [ - createCredentialGroup({name: 'test.com'}), + createCredentialGroup({ + name: 'test.com', + credentials: [ + createPasswordEntry({id: 0}), + createPasswordEntry({id: 1}), + ], + }), createCredentialGroup({name: 'test1.com'}), createCredentialGroup({name: 'test2.com'}), ]; + // Simulate successful reauth. + passwordManager.setRequestCredentialsDetailsResponse( + passwordManager.data.groups[0]!.entries.slice()); const section: PasswordDetailsSectionElement = document.createElement('password-details-section'); document.body.appendChild(section); await passwordManager.whenCalled('getCredentialGroups'); + assertArrayEquals( + [0, 1], await passwordManager.whenCalled('requestCredentialsDetails')); await flushTasks(); const title = section.$.title; @@ -71,6 +82,33 @@ assertEquals(Page.PASSWORDS, Router.getInstance().currentRoute.page); }); + test('Navigating directly fails when auth failed', async function() { + // Simulate direct navigation. + Router.getInstance().navigateTo(Page.PASSWORD_DETAILS, 'test.com'); + assertEquals(Page.PASSWORD_DETAILS, Router.getInstance().currentRoute.page); + passwordManager.data.groups = [ + createCredentialGroup({ + name: 'test.com', + credentials: [ + createPasswordEntry({id: 0}), + createPasswordEntry({id: 1}), + ], + }), + ]; + + const section: PasswordDetailsSectionElement = + document.createElement('password-details-section'); + document.body.appendChild(section); + await passwordManager.whenCalled('getCredentialGroups'); + // Since setRequestCredentialsDetailsResponse was not called, auth has + // failed. + assertArrayEquals( + [0, 1], await passwordManager.whenCalled('requestCredentialsDetails')); + await flushTasks(); + + assertEquals(Page.PASSWORDS, Router.getInstance().currentRoute.page); + }); + test('Clicking back navigates to passwords section', async function() { const group = createCredentialGroup({name: 'test.com'}); Router.getInstance().navigateTo(Page.PASSWORD_DETAILS, group);
diff --git a/chrome/test/data/webui/password_manager/passwords_section_test.ts b/chrome/test/data/webui/password_manager/passwords_section_test.ts index 859dee7..35a7958 100644 --- a/chrome/test/data/webui/password_manager/passwords_section_test.ts +++ b/chrome/test/data/webui/password_manager/passwords_section_test.ts
@@ -6,7 +6,7 @@ import {Page, PasswordManagerImpl, PasswordsSectionElement, Router} from 'chrome://password-manager/password_manager.js'; import {IronListElement} from 'chrome://resources/polymer/v3_0/iron-list/iron-list.js'; -import {assertDeepEquals, assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {assertArrayEquals, assertDeepEquals, assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {flushTasks} from 'chrome://webui-test/polymer_test_util.js'; import {isVisible} from 'chrome://webui-test/test_util.js'; @@ -72,7 +72,16 @@ }); test('clicking group navigates to details page', async function() { - passwordManager.data.groups = [createCredentialGroup({name: 'test.com'})]; + Router.getInstance().navigateTo(Page.PASSWORDS); + passwordManager.data.groups = [createCredentialGroup({ + name: 'test.com', + credentials: [ + createPasswordEntry({id: 0}), + createPasswordEntry({id: 1}), + ], + })]; + passwordManager.setRequestCredentialsDetailsResponse( + passwordManager.data.groups[0]!.entries.slice()); const section: PasswordsSectionElement = document.createElement('passwords-section'); @@ -84,7 +93,35 @@ section.shadowRoot!.querySelector<HTMLElement>('password-list-item'); assertTrue(!!listEntry); listEntry.click(); + assertArrayEquals( + [0, 1], await passwordManager.whenCalled('requestCredentialsDetails')); assertEquals(Page.PASSWORD_DETAILS, Router.getInstance().currentRoute.page); }); + + test('clicking group does nothing when auth fails', async function() { + Router.getInstance().navigateTo(Page.PASSWORDS); + passwordManager.data.groups = [createCredentialGroup({ + name: 'test.com', + credentials: [ + createPasswordEntry({id: 0}), + createPasswordEntry({id: 1}), + ], + })]; + + const section: PasswordsSectionElement = + document.createElement('passwords-section'); + document.body.appendChild(section); + await passwordManager.whenCalled('getCredentialGroups'); + await flushTasks(); + + const listEntry = + section.shadowRoot!.querySelector<HTMLElement>('password-list-item'); + assertTrue(!!listEntry); + listEntry.click(); + assertArrayEquals( + [0, 1], await passwordManager.whenCalled('requestCredentialsDetails')); + + assertEquals(Page.PASSWORDS, Router.getInstance().currentRoute.page); + }); });
diff --git a/chrome/test/data/webui/password_manager/test_password_manager_proxy.ts b/chrome/test/data/webui/password_manager/test_password_manager_proxy.ts index ed1bc0e..43d7d3b 100644 --- a/chrome/test/data/webui/password_manager/test_password_manager_proxy.ts +++ b/chrome/test/data/webui/password_manager/test_password_manager_proxy.ts
@@ -29,6 +29,9 @@ insecureCredentialsListener: CredentialsChangedListener|null, }; + private requestCredentialsDetailsResponse_: + chrome.passwordsPrivate.PasswordUiEntry[]|null = null; + constructor() { super([ 'getBlockedSitesList', @@ -37,6 +40,7 @@ 'getPasswordCheckStatus', 'getSavedPasswordList', 'recordPasswordCheckInteraction', + 'requestCredentialsDetails', 'startBulkPasswordCheck', ]); @@ -135,4 +139,17 @@ showAddShortcutDialog() { this.methodCalled('showAddShortcutDialog'); } + + requestCredentialsDetails(ids: number[]) { + this.methodCalled('requestCredentialsDetails', ids); + if (!this.requestCredentialsDetailsResponse_) { + return Promise.reject(new Error('Could not obtain credential details')); + } + return Promise.resolve(this.requestCredentialsDetailsResponse_); + } + + setRequestCredentialsDetailsResponse( + credentials: chrome.passwordsPrivate.PasswordUiEntry[]) { + this.requestCredentialsDetailsResponse_ = credentials; + } }
diff --git a/chrome/test/data/webui/settings/chromeos/apn_detail_dialog_tests.js b/chrome/test/data/webui/settings/chromeos/apn_detail_dialog_tests.js index e95e2b5..48d035ef 100644 --- a/chrome/test/data/webui/settings/chromeos/apn_detail_dialog_tests.js +++ b/chrome/test/data/webui/settings/chromeos/apn_detail_dialog_tests.js
@@ -39,6 +39,9 @@ apnDetailDialog.i18n('apnDetailAddApnDialogTitle'), apnDetailDialog.shadowRoot.querySelector('#apnDetailDialogTitle') .innerText); + assertTrue(!!apnDetailDialog.shadowRoot.querySelector('#apnInput')); + assertTrue(!!apnDetailDialog.shadowRoot.querySelector('#usernameInput')); + assertTrue(!!apnDetailDialog.shadowRoot.querySelector('#passwordInput')); }); test('Clicking the cancel button fires the close event', async function() { @@ -51,4 +54,17 @@ await closeEventPromise; assertFalse(!!apnDetailDialog.open); }); + + test( + 'Clicking on the advanced settings button expands/collapses section', + function() { + const isAdvancedSettingShowing = () => + apnDetailDialog.shadowRoot.querySelector('iron-collapse').opened; + assertFalse(!!isAdvancedSettingShowing()); + const advancedSettingsBtn = + apnDetailDialog.shadowRoot.querySelector('#advancedSettingsBtn'); + assertTrue(!!advancedSettingsBtn); + advancedSettingsBtn.click(); + assertTrue(!!isAdvancedSettingShowing()); + }); });
diff --git a/chrome/test/data/webui/settings/passwords_section_test.ts b/chrome/test/data/webui/settings/passwords_section_test.ts index 83f073a..99a1d10 100644 --- a/chrome/test/data/webui/settings/passwords_section_test.ts +++ b/chrome/test/data/webui/settings/passwords_section_test.ts
@@ -1711,4 +1711,18 @@ assertFalse(authTimeoutDialog.open); assertFalse(!!Router.getInstance().getQueryParameters().get('authTimeout')); }); + + test('notAllPasswordsShownAtOnce', async function() { + const passwordList: chrome.passwordsPrivate.PasswordUiEntry[] = []; + for (let i = 0; i < 1000; i++) { + passwordList.push( + createPasswordEntry({url: `test${i}.com`, username: 'test', id: i})); + } + const passwordsSection = await createPasswordsSection( + elementFactory, passwordManager, passwordList, []); + + assertTrue(passwordsSection.$.passwordList.hasAttribute('initial-count')); + assertEquals( + '50', passwordsSection.$.passwordList.getAttribute('initial-count')); + }); });
diff --git a/chrome/test/payments/payment_request_test_controller_desktop.cc b/chrome/test/payments/payment_request_test_controller_desktop.cc index 58b9f8c..382c222e 100644 --- a/chrome/test/payments/payment_request_test_controller_desktop.cc +++ b/chrome/test/payments/payment_request_test_controller_desktop.cc
@@ -2,24 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/memory/raw_ptr.h" #include "chrome/test/payments/payment_request_test_controller.h" #include "base/check.h" #include "base/location.h" +#include "base/memory/raw_ptr.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h" -#include "chrome/browser/payments/chrome_payment_request_delegate.h" #include "chrome/browser/payments/payment_request_factory.h" +#include "chrome/browser/ui/views/payments/test_chrome_payment_request_delegate.h" #include "components/payments/content/android_app_communication.h" #include "components/payments/content/payment_request.h" #include "components/payments/content/payment_request_web_contents_manager.h" #include "components/payments/content/payment_ui_observer.h" #include "components/payments/core/payment_prefs.h" -#include "components/payments/core/payment_request_delegate.h" #include "components/sync_preferences/testing_pref_service_syncable.h" -#include "components/webauthn/content/browser/internal_authenticator_impl.h" -#include "components/webauthn/core/browser/internal_authenticator.h" #include "content/public/browser/global_routing_id.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" @@ -28,78 +25,6 @@ #include "third_party/blink/public/mojom/webauthn/authenticator.mojom.h" namespace payments { -namespace { - -class TestAuthenticator : public content::InternalAuthenticatorImpl { - public: - explicit TestAuthenticator(content::RenderFrameHost* rfh, - bool has_authenticator) - : content::InternalAuthenticatorImpl(rfh), - has_authenticator_(has_authenticator) {} - - ~TestAuthenticator() override = default; - - // webauthn::InternalAuthenticator - void IsUserVerifyingPlatformAuthenticatorAvailable( - blink::mojom::Authenticator:: - IsUserVerifyingPlatformAuthenticatorAvailableCallback callback) - override { - std::move(callback).Run(has_authenticator_); - } - - private: - const bool has_authenticator_; -}; - -class ChromePaymentRequestTestDelegate : public ChromePaymentRequestDelegate { - public: - ChromePaymentRequestTestDelegate( - content::RenderFrameHost* render_frame_host, - bool is_off_the_record, - bool valid_ssl, - PrefService* prefs, - const std::string& twa_package_name, - bool has_authenticator, - base::WeakPtr<PaymentUIObserver> ui_observer_for_test) - : ChromePaymentRequestDelegate(render_frame_host), - frame_routing_id_(content::GlobalRenderFrameHostId( - render_frame_host->GetProcess()->GetID(), - render_frame_host->GetRoutingID())), - is_off_the_record_(is_off_the_record), - valid_ssl_(valid_ssl), - prefs_(prefs), - twa_package_name_(twa_package_name), - has_authenticator_(has_authenticator), - ui_observer_for_test_(ui_observer_for_test) {} - - bool IsOffTheRecord() const override { return is_off_the_record_; } - std::string GetInvalidSslCertificateErrorMessage() override { - return valid_ssl_ ? "" : "Invalid SSL certificate"; - } - PrefService* GetPrefService() override { return prefs_; } - bool IsBrowserWindowActive() const override { return true; } - std::string GetTwaPackageName() const override { return twa_package_name_; } - std::unique_ptr<webauthn::InternalAuthenticator> CreateInternalAuthenticator() - const override { - auto* rfh = content::RenderFrameHost::FromID(frame_routing_id_); - return rfh ? std::make_unique<TestAuthenticator>(rfh, has_authenticator_) - : nullptr; - } - const base::WeakPtr<PaymentUIObserver> GetPaymentUIObserver() const override { - return ui_observer_for_test_; - } - - private: - content::GlobalRenderFrameHostId frame_routing_id_; - const bool is_off_the_record_; - const bool valid_ssl_; - const raw_ptr<PrefService> prefs_; - const std::string twa_package_name_; - const bool has_authenticator_; - base::WeakPtr<PaymentUIObserver> ui_observer_for_test_; -}; - -} // namespace class PaymentRequestTestController::ObserverConverter : public PaymentRequest::ObserverForTest, @@ -296,10 +221,18 @@ auto* manager = PaymentRequestWebContentsManager::GetOrCreateForWebContents( *web_contents); - auto delegate = std::make_unique<ChromePaymentRequestTestDelegate>( - render_frame_host, is_off_the_record, valid_ssl, prefs, - twa_package_name, has_authenticator, observer_for_test); + + auto delegate = std::make_unique<TestChromePaymentRequestDelegate>( + render_frame_host); + delegate->OverrideBrowserWindowActive(true); + delegate->OverrideOffTheRecord(is_off_the_record); + delegate->OverrideValidSSL(valid_ssl); + delegate->OverridePrefService(prefs); + delegate->set_twa_package_name(twa_package_name); + delegate->set_has_authenticator(has_authenticator); + delegate->set_payment_ui_observer(observer_for_test); *delegate_weakptr = delegate->GetContentWeakPtr(); + if (!twa_payment_app_method_name.empty()) { AndroidAppCommunication::GetForBrowserContext( render_frame_host->GetBrowserContext())
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index c71d036..5477d74b 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -15245.0.0 \ No newline at end of file +15247.0.0 \ No newline at end of file
diff --git a/chromeos/ash/services/ime/public/mojom/BUILD.gn b/chromeos/ash/services/ime/public/mojom/BUILD.gn index 9924070..8809e61b 100644 --- a/chromeos/ash/services/ime/public/mojom/BUILD.gn +++ b/chromeos/ash/services/ime/public/mojom/BUILD.gn
@@ -14,7 +14,6 @@ "input_engine.mojom", "input_method.mojom", "input_method_host.mojom", - "japanese_dictionary.mojom", "japanese_settings.mojom", ]
diff --git a/chromeos/ash/services/ime/public/mojom/input_method.mojom b/chromeos/ash/services/ime/public/mojom/input_method.mojom index f6cb36c..650e30e 100644 --- a/chromeos/ash/services/ime/public/mojom/input_method.mojom +++ b/chromeos/ash/services/ime/public/mojom/input_method.mojom
@@ -6,13 +6,10 @@ // the Chromium repo. This file should be updated first, before syncing in the // other repos. -// Next MinVersion: 16 +// Next MinVersion: 14 module ash.ime.mojom; -import "chromeos/ash/services/ime/public/mojom/japanese_dictionary.mojom"; -import "chromeos/ash/services/ime/public/mojom/japanese_settings.mojom"; - // Do not modify this enum. If new values are needed, deprecate the entire enum. [Stable, Extensible, RenamedFrom="chromeos.ime.mojom.KeyEventType"] enum KeyEventType { @@ -262,17 +259,17 @@ [MinVersion=10] TextPredictionMode text_prediction@3; }; -// Next ordinal: 6 -[Stable, Extensible, RenamedFrom="chromeos.ime.mojom.InputMethodSettings"] +// Next ordinal: 4 +// +// TODO(crbug.com/1261313): Note that this type must be marked [Extensible] in +// all deployed versions before new ordinals can be introduced, and [Extensible] +// requires specifying a [Default] field. +[Stable, RenamedFrom="chromeos.ime.mojom.InputMethodSettings"] union InputMethodSettings { - // The default value for forward compatibility. All unknown types will be - // mapped to this. - [Default, MinVersion=14] bool null_settings@5; KoreanSettings korean_settings@0; LatinSettings latin_settings@1; PinyinSettings pinyin_settings@2; ZhuyinSettings zhuyin_settings@3; - [MinVersion=14] JapaneseSettings japanese_settings@4; }; // Next ordinal: 9 @@ -330,14 +327,6 @@ bool z_zh@11; }; -// Next ordinal: 2 -[Stable] -struct JapaneseSettings { - JapaneseConfig japanese_config@0; - [MinVersion=15] JapaneseUserDictionaryStorage? - japanese_user_dictionary_storage@1; -}; - // Next ordinal: 3 [Stable, Extensible, RenamedFrom="chromeos.ime.mojom.PinyinLayout"] enum PinyinLayout {
diff --git a/chromeos/ash/services/ime/public/mojom/japanese_dictionary.mojom b/chromeos/ash/services/ime/public/mojom/japanese_dictionary.mojom deleted file mode 100644 index d8c97c2..0000000 --- a/chromeos/ash/services/ime/public/mojom/japanese_dictionary.mojom +++ /dev/null
@@ -1,126 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Updates to this file must be backwards-compatible, as it is used outside of -// the Chromium repo. This file should be updated first, before syncing in the -// other repos. - -// Next MinVersion: 2 - -module ash.ime.mojom; - -// The following enums refer to the dictionary options used for the -// Japanese decoder Mozc. -// More information about this interface is documented publicly at -// https://github.com/google/mozc/blob/master/src/protocol/user_dictionary_storage.proto - -// PosType corresponds to the UserDictionary::PosType object in the Mozc -// dictionary storage proto. -// https://github.com/google/mozc/blob/master/src/protocol/user_dictionary_storage.proto#L38 -// -// Next ordinal: 44 -[Stable, Extensible] -enum PosType { - [Default] kNoun = 0, - kAbbreviation = 1, - kSuggestionOnly = 2, - kProperNoun = 3, - kPersonalName = 4, - kFamilyName = 5, - kFirstName = 6, - kOrganizationName = 7, - kPlaceName = 8, - kSaIrregularConjugationNoun = 9, - kAdjectiveVerbalNoun = 10, - kNumber = 11, - kAlphabet = 12, - kSymbol = 13, - kEmoticon = 14, - - kAdverb = 15, - kPrenounAdjectival = 16, - kConjunction = 17, - kInterjection = 18, - - kPrefix = 19, - kCounterSuffix = 20, - kGenericSuffix = 21, - kPersonNameSuffix = 22, - kPlaceNameSuffix = 23, - - kWaGroup0Verb = 25, - kKaGroup0Verb = 26, - kSaGroup0Verb = 27, - kTaGroup0Verb = 28, - kNaGroup0Verb = 29, - kMaGroup0Verb = 30, - kRaGroup0Verb = 31, - kGaGroup0Verb = 32, - kBaGroup0Verb = 33, - kHaGroup0Verb = 34, - kGroup1Verb = 35, - kKuruGroup2Verb = 36, - kSuruGroup2Verb = 37, - kZuruGroup2Verb = 38, - kRuGroup2Verb = 39, - - kAdjective = 39, - kSentenceEndingParticle = 40, - kPunctuation = 41, - kFreeStandingWord = 42, - - kSuppressionWord = 43, -}; - -// JapaneseUserDictionaryEntry corresponds to the UserDictionary::Entry object -// in the Mozc dictionary storage proto. -// https://github.com/google/mozc/blob/master/src/protocol/user_dictionary_storage.proto#L102 -// -// Next ordinal: 4 -[Stable] -struct JapaneseUserDictionaryEntry { - string key@0; - string value@1; - PosType pos_type@2; - string comment@3; -}; - -// Japanese user dictionaryID. This is used to mark this as a optional uint64 -// type. -[Stable] -struct JapaneseUserDictionaryId { - uint64 id@0; -}; - -// JapaneseUserDictionaryEntry corresponds to the UserDictionary object in the -// Mozc dictionary storage proto. -// https://github.com/google/mozc/blob/master/src/protocol/user_dictionary_storage.proto#L37 -// -// Next ordinal: 3 -[Stable] -struct JapaneseUserDictionary { - array<JapaneseUserDictionaryEntry> entries@0; - JapaneseUserDictionaryId? id@1; - string name@2; -}; - -// Japanese user dictionary storage ID. This is used to mark this as a optional -// uint32 type. -[Stable] -struct JapaneseUserDictionaryStorageVersion { - uint32 version@0; -}; - -// JapaneseUserDictionaryStorage corresponds to the UserDictionaryStorage -// object in the Mozc dictionary storage proto. -// https://github.com/google/mozc/blob/master/src/protocol/user_dictionary_storage.proto#L146 -// -// This contains all of the User's custom japanese dictionaries. -// -// Next ordinal: 2 -[Stable] -struct JapaneseUserDictionaryStorage { - JapaneseUserDictionaryStorageVersion? version@0; - array<JapaneseUserDictionary> dictionaries@1; -};
diff --git a/chromeos/ash/services/ime/public/mojom/japanese_settings.mojom b/chromeos/ash/services/ime/public/mojom/japanese_settings.mojom index cf48d758..d2df6d9 100644 --- a/chromeos/ash/services/ime/public/mojom/japanese_settings.mojom +++ b/chromeos/ash/services/ime/public/mojom/japanese_settings.mojom
@@ -6,12 +6,10 @@ // the Chromium repo. This file should be updated first, before syncing in the // other repos. -// Next MinVersion: 3 +// Next MinVersion: 2 module ash.ime.mojom; -import "chromeos/ash/services/ime/public/mojom/japanese_dictionary.mojom"; - // The following enums refer to the config options used for the // Japanese decoder Mozc. // More information about this interface is documented publicly at @@ -70,21 +68,21 @@ kKatakana = 2, }; -[Stable, RenamedFrom="ash.ime.mojom.MozcConfig"] -struct JapaneseConfig { - InputMode input_mode@0; - PunctuationStyle punctuation_style@1; - SymbolStyle symbol_style@2; - SpaceInputStyle space_input_style@3; - SelectionShortcut selection_shortcut@4; - KeymapStyle keymap_style@5; - bool automatically_switch_to_halfwidth@6; - ShiftKeyModeSwitch shift_key_mode_switch@7; - bool use_input_history@8; - bool use_system_dictionary@9; - int64 number_of_suggestions@10; - bool disable_personalized_suggestions@11; - bool send_statistics_to_google@12; +[Stable] +struct MozcConfig { + InputMode input_mode; + PunctuationStyle punctuation_style; + SymbolStyle symbol_style; + SpaceInputStyle space_input_style; + SelectionShortcut selection_shortcut; + KeymapStyle keymap_style; + bool automatically_switch_to_halfwidth; + ShiftKeyModeSwitch shift_key_mode_switch; + bool use_input_history; + bool use_system_dictionary; + int64 number_of_suggestions; + bool disable_personalized_suggestions; + bool send_statistics_to_google; }; // JapaneseDecoder is the interface used for communicating with the Mozc @@ -96,11 +94,6 @@ interface JapaneseDecoder { // Retrieve the config used for Mozc which is stored as a file internally. // If this file does not exist, this should just return the default config. - FetchJapaneseConfig@0() => (JapaneseConfig config); - // Retrieve the dictionary used for Mozc which is stored as a file - // internally. If this file does not exist, this should just return the - // empty dictionary. - [MinVersion=2] FetchJapaneseUserDictionary@1() => ( - JapaneseUserDictionaryStorage japanese_user_dictionary_storage); + FetchMozcConfig@0() => (MozcConfig config); };
diff --git a/chromeos/chromeos_strings.grd b/chromeos/chromeos_strings.grd index 139ce94..d843cff0 100644 --- a/chromeos/chromeos_strings.grd +++ b/chromeos/chromeos_strings.grd
@@ -3647,6 +3647,12 @@ <message name="IDS_SETTINGS_ADD_APN_DIALOG_TITLE" desc="Title for the dialog that creates a new custom APN"> Add a new APN </message> + <message name="IDS_SETTINGS_APN_INPUT_LABEL" desc="Label for the input field where the APN is specified"> + APN + </message> + <message name="IDS_SETTINGS_APN_DIALOG_ADVANCED_SETTING" desc="Title for the button which toggles the advanced settings section"> + Advanced Settings + </message> <!-- End of APN --> </messages> </release>
diff --git a/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_DIALOG_ADVANCED_SETTING.png.sha1 b/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_DIALOG_ADVANCED_SETTING.png.sha1 new file mode 100644 index 0000000..a33d834 --- /dev/null +++ b/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_DIALOG_ADVANCED_SETTING.png.sha1
@@ -0,0 +1 @@ +c7539f362583a0b03eaa929ed14488edb9876bc2 \ No newline at end of file
diff --git a/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_INPUT_LABEL.png.sha1 b/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_INPUT_LABEL.png.sha1 new file mode 100644 index 0000000..820d235 --- /dev/null +++ b/chromeos/chromeos_strings_grd/IDS_SETTINGS_APN_INPUT_LABEL.png.sha1
@@ -0,0 +1 @@ +906e65cf4c8c7b675c4ace65f560ddd9add9c7ef \ No newline at end of file
diff --git a/chromeos/services/network_config/cros_network_config.cc b/chromeos/services/network_config/cros_network_config.cc index 0dc3cd5..1e188f8f 100644 --- a/chromeos/services/network_config/cros_network_config.cc +++ b/chromeos/services/network_config/cros_network_config.cc
@@ -3623,8 +3623,8 @@ // insertion order new_apns.Insert(new_apns.begin(), base::Value(MojoApnToOnc(*apn))); - NET_LOG(USER) << "Setting user APNs for: " << network_guid << ": " - << new_apns.size(); + NET_LOG(USER) << "CreateCustomApn: Setting user APNs for: " << network_guid + << ": " << new_apns.size(); network_metadata_store->SetCustomApnList(network_guid, new_apns.Clone()); @@ -3634,10 +3634,71 @@ base::BindOnce( [](const std::string& guid, bool success, const std::string& message) { - if (!success) - NET_LOG(ERROR) << "CreateCustomApn failed to update the user APN " - "list in Shill: [" - << message << ']'; + if (!success) { + NET_LOG(ERROR) + << "CreateCustomApn: Failed to update the user APN " + "list in Shill for network: " + << guid << ": [" << message << ']'; + } + }, + network_guid)); +} + +void CrosNetworkConfig::RemoveCustomApn(const std::string& network_guid, + const std::string& apn_id) { + if (!ash::features::IsApnRevampEnabled()) { + receivers_.ReportBadMessage( + "RemoveCustomApn: Cannot be called if the APN Revamp feature flag is " + "disabled."); + return; + } + + const NetworkState* network = + network_state_handler_->GetNetworkStateFromGuid(network_guid); + if (!network || network->profile_path().empty()) { + NET_LOG(ERROR) << "RemoveCustomApn: Called with unconfigured network: " + << network_guid << "."; + return; + } + + NetworkMetadataStore* network_metadata_store = + NetworkHandler::Get()->network_metadata_store(); + DCHECK(network_metadata_store); + + const base::Value::List* current_apns = + network_metadata_store->GetCustomApnList(network_guid); + if (!current_apns) { + NET_LOG(ERROR) << "RemoveCustomApn: Called for network: " << network_guid + << " that does not have any user APNs."; + return; + } + + base::Value::List new_apns = current_apns->Clone(); + if (!new_apns.EraseIf([&apn_id](const base::Value& item) { + const std::string* item_id = + item.GetDict().FindString(::onc::cellular_apn::kId); + return item_id && apn_id == *item_id; + })) { + NET_LOG(ERROR) << "RemoveCustomApn: Called for network: " << network_guid + << " that does have an user APNs with id: " << apn_id << '.'; + return; + } + NET_LOG(USER) << "RemoveCustomApn: Setting user APNs for: " << network_guid + << ": " << new_apns.size(); + + network_metadata_store->SetCustomApnList(network_guid, new_apns.Clone()); + SetPropertiesInternal( + network_guid, *network, + UserApnListToOnc(network_guid, std::move(new_apns)), + base::BindOnce( + [](const std::string& guid, bool success, + const std::string& message) { + if (!success) { + NET_LOG(ERROR) + << "RemoveCustomApn: Failed to update the user APN " + "list in Shill for network: " + << guid << ": [" << message << ']'; + } }, network_guid)); }
diff --git a/chromeos/services/network_config/cros_network_config.h b/chromeos/services/network_config/cros_network_config.h index e2faac2..5ac222d 100644 --- a/chromeos/services/network_config/cros_network_config.h +++ b/chromeos/services/network_config/cros_network_config.h
@@ -110,6 +110,8 @@ SetTrafficCountersAutoResetCallback callback) override; void CreateCustomApn(const std::string& network_guid, mojom::ApnPropertiesPtr apn) override; + void RemoveCustomApn(const std::string& network_guid, + const std::string& apn_id) override; // static static mojom::TrafficCounterSource GetTrafficCounterEnumForTesting(
diff --git a/chromeos/services/network_config/cros_network_config_unittest.cc b/chromeos/services/network_config/cros_network_config_unittest.cc index 17edcec..bd8c6b07 100644 --- a/chromeos/services/network_config/cros_network_config_unittest.cc +++ b/chromeos/services/network_config/cros_network_config_unittest.cc
@@ -821,6 +821,11 @@ base::RunLoop().RunUntilIdle(); } + void RemoveCustomApn(const std::string& guid, const std::string& apn_id) { + cros_network_config()->RemoveCustomApn(guid, apn_id); + base::RunLoop().RunUntilIdle(); + } + bool UserApnsInNetworkMetadataStoreMatch( const std::vector<TestApnData*>& expected_apns) { if (const base::Value::List* custom_apns = @@ -868,7 +873,7 @@ return false; } if (!props->type_properties->get_cellular()->custom_apn_list.has_value()) { - return false; + return expected_apns.empty(); } const std::vector<mojom::ApnPropertiesPtr>& mojo_apn_list = @@ -1747,7 +1752,7 @@ ::onc::cellular_apn::kApnTypeAttach}; CreateCustomApn(kCellularGuid, test_apn2.AsMojoApn()); - // // Verify that the API called sent the right values to Shill + // Verify that the API called sent the right values to Shill EXPECT_EQ(2u, network_config_observer.GetOnConfigurationModifiedCallCount()); { std::vector<TestApnData*> expected_apns({&test_apn2, &test_apn1}); @@ -1758,6 +1763,122 @@ } } +TEST_F(CrosNetworkConfigTest, RemoveCustomApn) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature(ash::features::kApnRevamp); + + // Register an observer to capture values sent to Shill + TestNetworkConfigurationObserver network_config_observer( + network_configuration_handler()); + + ASSERT_FALSE(network_metadata_store()->GetCustomApnList(kCellularGuid)); + // Verify RemoveCustomApn reports an error and return when the + // network_metadata_store has a nullptr custom APN list + size_t expected_network_config_calls = 0u; + std::string id_to_delete("apn_id_1"); + RemoveCustomApn(kCellularGuid, id_to_delete); + EXPECT_EQ(expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + ASSERT_FALSE(network_metadata_store()->GetCustomApnList(kCellularGuid)); + + TestApnData test_apn1; + test_apn1.access_point_name = kCellularTestApn1; + test_apn1.name = kCellularTestApnName1; + test_apn1.username = kCellularTestApnUsername1; + test_apn1.password = kCellularTestApnPassword1; + test_apn1.attach = kCellularTestApnAttach1; + test_apn1.mojo_apn_types = {mojom::ApnType::kDefault, + mojom::ApnType::kAttach}; + test_apn1.onc_apn_types = {::onc::cellular_apn::kApnTypeDefault, + ::onc::cellular_apn::kApnTypeAttach}; + + TestApnData test_apn2; + test_apn2.access_point_name = kCellularTestApn2; + test_apn2.name = kCellularTestApnName2; + test_apn2.username = kCellularTestApnUsername2; + test_apn2.password = kCellularTestApnPassword2; + test_apn2.attach = kCellularTestApnAttach2; + test_apn2.mojo_apn_types = {mojom::ApnType::kDefault, + mojom::ApnType::kAttach}; + test_apn2.onc_apn_types = {::onc::cellular_apn::kApnTypeDefault, + ::onc::cellular_apn::kApnTypeAttach}; + + // Add two custom APNs using the official API + { + CreateCustomApn(kCellularGuid, test_apn1.AsMojoApn()); + EXPECT_EQ(++expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + CreateCustomApn(kCellularGuid, test_apn2.AsMojoApn()); + EXPECT_EQ(++expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + } + + // Verify that RemoveCustomApn deletes the first custom APN + const base::Value::List* custom_apns = + network_metadata_store()->GetCustomApnList(kCellularGuid); + ASSERT_TRUE(custom_apns); + ASSERT_EQ(2u, custom_apns->size()); + const std::string* first_apn_id = + custom_apns->front().GetDict().FindString(::onc::cellular_apn::kId); + ASSERT_TRUE(first_apn_id); + + id_to_delete = std::string(*first_apn_id); + RemoveCustomApn(kCellularGuid, id_to_delete); + EXPECT_EQ(++expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + { + std::vector<TestApnData*> expected_apns({&test_apn1}); + EXPECT_TRUE(UserApnsInNetworkMetadataStoreMatch(expected_apns)); + EXPECT_TRUE( + UserApnsInCellularConfigMatch(expected_apns, network_config_observer)); + EXPECT_TRUE(UserApnsInManagedPropertiesMatch(expected_apns)); + } + + // Try to remove an ID not found in the list, API should do nothing + RemoveCustomApn(kCellularGuid, id_to_delete); + EXPECT_EQ(expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + { + std::vector<TestApnData*> expected_apns({&test_apn1}); + EXPECT_TRUE(UserApnsInNetworkMetadataStoreMatch(expected_apns)); + EXPECT_TRUE( + UserApnsInCellularConfigMatch(expected_apns, network_config_observer)); + EXPECT_TRUE(UserApnsInManagedPropertiesMatch(expected_apns)); + } + + // Remove the last test APN + custom_apns = network_metadata_store()->GetCustomApnList(kCellularGuid); + ASSERT_TRUE(custom_apns); + ASSERT_EQ(1u, custom_apns->size()); + first_apn_id = + custom_apns->front().GetDict().FindString(::onc::cellular_apn::kId); + ASSERT_TRUE(first_apn_id); + id_to_delete = std::string(*first_apn_id); + RemoveCustomApn(kCellularGuid, id_to_delete); + EXPECT_EQ(++expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + { + std::vector<TestApnData*> expected_apns; + EXPECT_TRUE(UserApnsInNetworkMetadataStoreMatch(expected_apns)); + EXPECT_TRUE( + UserApnsInCellularConfigMatch(expected_apns, network_config_observer)); + EXPECT_TRUE(UserApnsInManagedPropertiesMatch(expected_apns)); + } + + // Try to delete an APN when the custom APN list is empty, it should do + // nothing + RemoveCustomApn(kCellularGuid, id_to_delete); + EXPECT_EQ(expected_network_config_calls, + network_config_observer.GetOnConfigurationModifiedCallCount()); + { + std::vector<TestApnData*> expected_apns; + EXPECT_TRUE(UserApnsInNetworkMetadataStoreMatch(expected_apns)); + EXPECT_TRUE( + UserApnsInCellularConfigMatch(expected_apns, network_config_observer)); + EXPECT_TRUE(UserApnsInManagedPropertiesMatch(expected_apns)); + } +} + TEST_F(CrosNetworkConfigTest, ConnectedAPN_ApnRevampEnabled) { base::test::ScopedFeatureList scoped_feature_list; scoped_feature_list.InitAndEnableFeature(ash::features::kApnRevamp);
diff --git a/chromeos/services/network_config/public/mojom/cros_network_config.mojom b/chromeos/services/network_config/public/mojom/cros_network_config.mojom index 7fa8ab1..8b3acbf0 100644 --- a/chromeos/services/network_config/public/mojom/cros_network_config.mojom +++ b/chromeos/services/network_config/public/mojom/cros_network_config.mojom
@@ -1247,6 +1247,11 @@ // appends it to |custom_apn_list|. Should only be called when the APN // Revamp feature flag is enabled. CreateCustomApn(string network_guid, ApnProperties apn); + + // Removes the APN with ID |apn_id| from |custom_apn_list| for the cellular + // network with ID |network_guid|. Should only be called when the APN + // Revamp feature flag is enabled. + RemoveCustomApn(string network_guid, string apn_id); }; interface CrosNetworkConfigObserver {
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index 445a0a0..24a5afbd 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">نوع مقدم الخدمة</translation> <translation id="7882501334836096755">مفتاح عام</translation> <translation id="7890841768028788197">شاشة تعمل باللمس مدمَجة</translation> +<translation id="7915220255123750251">يمكنك إدارة إعدادات اسم نقطة الوصول (APN) للشبكة. تنشئ أسماء APN اتصالاً بين شبكة الجوّال والإنترنت.</translation> <translation id="7936303884198020182">لم يتم العثور على خوادم الأسماء.</translation> <translation id="7942349550061667556">أحمر</translation> <translation id="7943235353293548836">الفاصل الدائم لرسالة التحقّق من الاتصال</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb index 7834645..34ef05c 100644 --- a/chromeos/strings/chromeos_strings_as.xtb +++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">প্ৰদানকাৰীৰ ধৰণ</translation> <translation id="7882501334836096755">ৰাজহুৱা চাবি</translation> <translation id="7890841768028788197">অভ্যন্তৰীণ টাচ্চস্ক্ৰীন</translation> +<translation id="7915220255123750251">নেটৱৰ্ক এপিএনৰ ছেটিং পৰিচালনা কৰক। এপিএনে চেলুলাৰ নেটৱৰ্ক আৰু ইণ্টাৰনেটৰ মাজত এটা সংযোগ স্থাপন কৰে।</translation> <translation id="7936303884198020182">ড’মেইন নাম থকা কোনো ছাৰ্ভাৰ পোৱা নগ'ল</translation> <translation id="7942349550061667556">ৰঙা</translation> <translation id="7943235353293548836">অবিৰত কীপএলাইভৰ অন্তৰাল</translation>
diff --git a/chromeos/strings/chromeos_strings_bs.xtb b/chromeos/strings/chromeos_strings_bs.xtb index 2de07e8..dabef95 100644 --- a/chromeos/strings/chromeos_strings_bs.xtb +++ b/chromeos/strings/chromeos_strings_bs.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Dovršavanje skeniranja nije uspjelo</translation> <translation id="5499762266711462226">Boja tastature je bazirana prema pozadinskoj slici</translation> <translation id="5502931783115429516">Android nije pokrenut</translation> +<translation id="551689408806449779">Prekinuta je veza s uređajem. Pokušajte ponovo povezati da testirate</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Automatski prebacite na tamnu temu prilikom zalaska sunca</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Isklj.</translation> <translation id="5860491529813859533">Uključi</translation> <translation id="5866840822086176774">Veoma jaka</translation> +<translation id="5876385649737594562">Uključite da odaberete opcije</translation> <translation id="588258955323874662">Cijeli ekran</translation> <translation id="5895138241574237353">Ponovo pokreni</translation> <translation id="5901630391730855834">Žuta</translation>
diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb index 6315988..0bd593b7 100644 --- a/chromeos/strings/chromeos_strings_ca.xtb +++ b/chromeos/strings/chromeos_strings_ca.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Tipus de proveïdor</translation> <translation id="7882501334836096755">Clau pública</translation> <translation id="7890841768028788197">Pantalla tàctil interna</translation> +<translation id="7915220255123750251">Gestiona la configuració de l'APN de la xarxa. Els APN defineixen una connexió entre una xarxa mòbil i Internet.</translation> <translation id="7936303884198020182">No s'han trobat servidors de noms</translation> <translation id="7942349550061667556">Vermell</translation> <translation id="7943235353293548836">Interval de keepalive persistent</translation>
diff --git a/chromeos/strings/chromeos_strings_cs.xtb b/chromeos/strings/chromeos_strings_cs.xtb index 321b1271..f3cefca 100644 --- a/chromeos/strings/chromeos_strings_cs.xtb +++ b/chromeos/strings/chromeos_strings_cs.xtb
@@ -506,6 +506,7 @@ <translation id="5895138241574237353">Restartovat</translation> <translation id="5901630391730855834">Žlutá</translation> <translation id="5903200662178656908">Zařízení je kombinace klávesnice a myši.</translation> +<translation id="5904994456462260490">Přidání nového názvu přístupového bodu</translation> <translation id="5907649332524363701">barva klíče</translation> <translation id="5916084858004523819">Zakázáno</translation> <translation id="5916664084637901428">Zapnuto</translation>
diff --git a/chromeos/strings/chromeos_strings_cy.xtb b/chromeos/strings/chromeos_strings_cy.xtb index d1deb9c..2a7088e 100644 --- a/chromeos/strings/chromeos_strings_cy.xtb +++ b/chromeos/strings/chromeos_strings_cy.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Math o ddarparwr</translation> <translation id="7882501334836096755">Allwedd gyhoeddus</translation> <translation id="7890841768028788197">Sgrîn gyffwrdd fewnol</translation> +<translation id="7915220255123750251">Rheoli gosodiadau APN rhwydwaith. Mae APN yn sefydlu cysylltiad rhwng rhwydwaith cellog a'r rhyngrwyd.</translation> <translation id="7936303884198020182">Ni chanfuwyd gweinyddion enwau</translation> <translation id="7942349550061667556">Coch</translation> <translation id="7943235353293548836">Cyfnod cadw'n fyw parhaus</translation>
diff --git a/chromeos/strings/chromeos_strings_da.xtb b/chromeos/strings/chromeos_strings_da.xtb index 91f2505..6a7f5886 100644 --- a/chromeos/strings/chromeos_strings_da.xtb +++ b/chromeos/strings/chromeos_strings_da.xtb
@@ -712,6 +712,7 @@ <translation id="7882358943899516840">Udbydertype</translation> <translation id="7882501334836096755">Offentlig nøgle</translation> <translation id="7890841768028788197">Indbygget touchskærm</translation> +<translation id="7915220255123750251">Administrer indstillinger for netværksadgangspunkter. Adgangspunkter opretter forbindelse mellem et mobilnetværk og internettet.</translation> <translation id="7936303884198020182">Der blev ikke fundet nogen navneservere</translation> <translation id="7942349550061667556">Rød</translation> <translation id="7943235353293548836">Fast keepalive-interval</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb index 96021af9..f109229 100644 --- a/chromeos/strings/chromeos_strings_de.xtb +++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -306,6 +306,7 @@ <translation id="4044093238444069296">Gateway kann nicht kontaktiert werden</translation> <translation id="4046123991198612571">Nächster Titel</translation> <translation id="404928562651467259">Warnung</translation> +<translation id="4060260348856573701">Neuer APN</translation> <translation id="4093865285251893588">Profilbild</translation> <translation id="409427325554347132">Testdetails speichern</translation> <translation id="4110686435123617899">Album <ph name="TITLE" /> <ph name="DESC" /> auswählen</translation> @@ -609,6 +610,7 @@ <translation id="6766275201586212568">Fehlgeschlagene DNS-Auflösungen</translation> <translation id="6768237774506518020">Hohe Fehlerrate bei der DNS-Auflösung</translation> <translation id="6791471867139427246">Farbe der Tastaturbeleuchtung</translation> +<translation id="6793680441750437230">Drücke eine beliebige Taste auf der Tastatur. Du kannst maximal 4 Tasten gleichzeitig drücken. Drücke gleichzeitig die Alt- und die Esc-Taste, um das Dialogfeld zu schließen.</translation> <translation id="680983167891198932">Schlüssel</translation> <translation id="6816797338148849397">Informationen in Bezug auf deine Auswahl sind verfügbar. Verwende für Zugriff den Aufwärtspfeil.</translation> <translation id="6853312040151791195">Entladestrom</translation>
diff --git a/chromeos/strings/chromeos_strings_eu.xtb b/chromeos/strings/chromeos_strings_eu.xtb index 11b3c09..f1ce67c 100644 --- a/chromeos/strings/chromeos_strings_eu.xtb +++ b/chromeos/strings/chromeos_strings_eu.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Hornitzaile mota</translation> <translation id="7882501334836096755">Gako publikoa</translation> <translation id="7890841768028788197">Ukipen-pantaila integratua</translation> +<translation id="7915220255123750251">Kudeatu sarearen APNaren ezarpenak. Sare mugikorren eta Interneten arteko konexioak ezartzen dituzte APNek.</translation> <translation id="7936303884198020182">Ez da aurkitu izenen zerbitzaririk</translation> <translation id="7942349550061667556">Gorria</translation> <translation id="7943235353293548836">Aktibo mantenarazteko mezu etengabearen denbora tartea</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb index 16b5324..d811990 100644 --- a/chromeos/strings/chromeos_strings_fr.xtb +++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Type de fournisseur</translation> <translation id="7882501334836096755">Clé publique</translation> <translation id="7890841768028788197">Écran tactile intégré</translation> +<translation id="7915220255123750251">Gérer les paramètres APN du réseau. Les APN établissent une connexion entre un réseau mobile et Internet.</translation> <translation id="7936303884198020182">Aucun serveur de noms trouvé</translation> <translation id="7942349550061667556">Rouge</translation> <translation id="7943235353293548836">Intervalle persistant de messages keepalive</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index 09e6c52..9e117e3 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -712,6 +712,7 @@ <translation id="7882358943899516840">પ્રદાતાનો પ્રકાર</translation> <translation id="7882501334836096755">જાહેર કી</translation> <translation id="7890841768028788197">આંતરિક ટચસ્ક્રીન</translation> +<translation id="7915220255123750251">નેટવર્ક APN સેટિંગ મેનેજ કરો. APN સેલ્યુલર નેટવર્ક અને ઇન્ટરનેટ વચ્ચે કનેક્શન સ્થાપિત કરે છે.</translation> <translation id="7936303884198020182">IP કન્ફિગ્યુરેશનમાં કોઈ નામ સર્વર મળ્યા નથી</translation> <translation id="7942349550061667556">લાલ</translation> <translation id="7943235353293548836">સતત keepalive અવધિ</translation>
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb index 1e73df5..db28d8aa 100644 --- a/chromeos/strings/chromeos_strings_hr.xtb +++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Skeniranje se ne može dovršiti</translation> <translation id="5499762266711462226">Boja tipkovnice temelji se na pozadini</translation> <translation id="5502931783115429516">Android se ne pokreće</translation> +<translation id="551689408806449779">Uređaj nije povezan. Pokušajte se povezati ponovo da biste testirali</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Automatsko prebacivanje na tamnu temu kad zađe sunce</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Isključeno</translation> <translation id="5860491529813859533">Uključi</translation> <translation id="5866840822086176774">Vrlo jak</translation> +<translation id="5876385649737594562">Uključite da biste odabrali opcije</translation> <translation id="588258955323874662">Puni zaslon</translation> <translation id="5895138241574237353">Ponovno pokreni</translation> <translation id="5901630391730855834">Žuta</translation> @@ -713,6 +715,7 @@ <translation id="7882358943899516840">Vrsta davatelja usluge</translation> <translation id="7882501334836096755">Javni ključ</translation> <translation id="7890841768028788197">Interni dodirni zaslon</translation> +<translation id="7915220255123750251">Upravljajte postavkama APN-a mreže. APN-ovi uspostavljaju vezu između mobilne mreže i interneta.</translation> <translation id="7936303884198020182">Nije pronađen nijedan poslužitelj naziva</translation> <translation id="7942349550061667556">Crvena</translation> <translation id="7943235353293548836">Postojani keepalive interval</translation>
diff --git a/chromeos/strings/chromeos_strings_is.xtb b/chromeos/strings/chromeos_strings_is.xtb index 14af647..16417d6 100644 --- a/chromeos/strings/chromeos_strings_is.xtb +++ b/chromeos/strings/chromeos_strings_is.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Gerð veitu</translation> <translation id="7882501334836096755">Opinber lykill</translation> <translation id="7890841768028788197">Innbyggður snertiskjár</translation> +<translation id="7915220255123750251">Stjórna stillingum aðgangsstaðar netkerfis. Aðgangsstaðir tengja saman farsímakerfi og internetið.</translation> <translation id="7936303884198020182">Engir nafnaþjónar fundust</translation> <translation id="7942349550061667556">Rauður</translation> <translation id="7943235353293548836">Viðvarandi bil til að halda tengingu</translation>
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb index f2f1fdf..ae25242b 100644 --- a/chromeos/strings/chromeos_strings_it.xtb +++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Impossibile completare la scansione</translation> <translation id="5499762266711462226">Il colore della tastiera si basa sullo sfondo</translation> <translation id="5502931783115429516">Android non funziona</translation> +<translation id="551689408806449779">Il dispositivo è stato disconnesso. Prova a riconnetterlo per eseguire il test</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Passa automaticamente al tema scuro al tramonto</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Off</translation> <translation id="5860491529813859533">Attiva</translation> <translation id="5866840822086176774">Molto forte</translation> +<translation id="5876385649737594562">Attiva per selezionare le opzioni</translation> <translation id="588258955323874662">Schermo intero</translation> <translation id="5895138241574237353">Riavvia</translation> <translation id="5901630391730855834">Giallo</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 2bc1592b..c7ddc8c 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -306,6 +306,7 @@ <translation id="4044093238444069296">לא ניתן ליצור קשר עם השער</translation> <translation id="4046123991198612571">הרצועה הבאה</translation> <translation id="404928562651467259">אזהרה</translation> +<translation id="4060260348856573701">APN חדש</translation> <translation id="4093865285251893588">תמונת הפרופיל</translation> <translation id="409427325554347132">שמירה של פרטי הבדיקה</translation> <translation id="4110686435123617899">בחירת האלבום <ph name="TITLE" /> <ph name="DESC" /></translation> @@ -609,6 +610,7 @@ <translation id="6766275201586212568">בקשות לזיהוי DNS שנכשלו</translation> <translation id="6768237774506518020">שיעור כישלון גבוה לנסיונות זיהוי DNS</translation> <translation id="6791471867139427246">צבע התאורה של המקלדת</translation> +<translation id="6793680441750437230">צריך להקיש על מקש כלשהו במקלדת. אפשר להקיש על עד 4 מקשים בו זמנית. כדי לסגור את תיבת הדו-שיח, מקישים על Alt ועל Esc.</translation> <translation id="680983167891198932">מקש</translation> <translation id="6816797338148849397">יש מידע בקשר לבחירה שלך. כדי לגשת אליו, יש להקיש על מקש החץ למעלה.</translation> <translation id="6853312040151791195">שיעור הפריקה</translation> @@ -711,6 +713,7 @@ <translation id="7882358943899516840">סוג ספק</translation> <translation id="7882501334836096755">מפתח ציבורי</translation> <translation id="7890841768028788197">מסך מגע פנימי</translation> +<translation id="7915220255123750251">ניהול הגדרות APN של הרשת. נקודות APN יוצרות חיבור בין רשת סלולרית לבין האינטרנט.</translation> <translation id="7936303884198020182">לא נמצאו שרתי שמות</translation> <translation id="7942349550061667556">אדום</translation> <translation id="7943235353293548836">מרווח keepalive קבוע</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb index 1fae9d2a..2682ea7 100644 --- a/chromeos/strings/chromeos_strings_ka.xtb +++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">პროვაიდერის ტიპი</translation> <translation id="7882501334836096755">საჯარო გასაღები</translation> <translation id="7890841768028788197">შიდა სენსორული ეკრანი</translation> +<translation id="7915220255123750251">მართეთ ქსელის APN-ის პარამეტრები. APN ამყარებს კავშირს ფიჭურ ქსელსა და ინტერნეტს შორის.</translation> <translation id="7936303884198020182">სახელების სერვერი ვერ მოიძებნა</translation> <translation id="7942349550061667556">წითელი</translation> <translation id="7943235353293548836">კავშირის მუდმივი შენარჩუნების ინტერვალი</translation>
diff --git a/chromeos/strings/chromeos_strings_km.xtb b/chromeos/strings/chromeos_strings_km.xtb index 3d606239..9e71ee2c 100644 --- a/chromeos/strings/chromeos_strings_km.xtb +++ b/chromeos/strings/chromeos_strings_km.xtb
@@ -472,6 +472,7 @@ <translation id="5499114900554609492">មិនអាចបញ្ចប់ការស្កេនបានទេ</translation> <translation id="5499762266711462226">ពណ៌ក្ដារចុចគឺផ្អែកលើផ្ទាំងរូបភាព</translation> <translation id="5502931783115429516">Android មិនដំណើរការ</translation> +<translation id="551689408806449779">បានផ្ដាច់ឧបករណ៍។ សូមសាកល្បងភ្ជាប់ឡើងវិញ ដើម្បីធ្វើតេស្ត</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">ប្ដូរទៅជាទម្រង់រចនាងងឹតនៅពេលថ្ងៃលិចដោយស្វ័យប្រវត្តិ</translation> @@ -501,6 +502,7 @@ <translation id="5860033963881614850">បិទ</translation> <translation id="5860491529813859533">បើក</translation> <translation id="5866840822086176774">ខ្លាំងណាស់</translation> +<translation id="5876385649737594562">បើក ដើម្បីជ្រើសរើសជម្រើស</translation> <translation id="588258955323874662">ពេញអេក្រង់</translation> <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation> <translation id="5901630391730855834">លឿង</translation>
diff --git a/chromeos/strings/chromeos_strings_ky.xtb b/chromeos/strings/chromeos_strings_ky.xtb index 4236ac4d..efb57d5 100644 --- a/chromeos/strings/chromeos_strings_ky.xtb +++ b/chromeos/strings/chromeos_strings_ky.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Жабдуучунун түрү</translation> <translation id="7882501334836096755">Жалпыга ачык ачкыч</translation> <translation id="7890841768028788197">Ички сенсордук экран</translation> +<translation id="7915220255123750251">Тармактын APN параметрлерин тескеңиз. APN'дер мобилдик тармак менен Интернеттин ортосундагы байланышты түзүшөт.</translation> <translation id="7936303884198020182">Ысым серверлери табылган жок</translation> <translation id="7942349550061667556">Кызыл</translation> <translation id="7943235353293548836">Туруктуу сактоочу интервал</translation>
diff --git a/chromeos/strings/chromeos_strings_lv.xtb b/chromeos/strings/chromeos_strings_lv.xtb index 4e909c7..00f6d0e 100644 --- a/chromeos/strings/chromeos_strings_lv.xtb +++ b/chromeos/strings/chromeos_strings_lv.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Pakalpojumu sniedzēja veids</translation> <translation id="7882501334836096755">Publiskā atslēga</translation> <translation id="7890841768028788197">Iekšējais skārienekrāns</translation> +<translation id="7915220255123750251">Pārvaldiet tīkla APN iestatījumus. APN izveido savienojumu starp mobilo tīklu un internetu.</translation> <translation id="7936303884198020182">Netika atrasts neviens nosaukumu serveris</translation> <translation id="7942349550061667556">Sarkana</translation> <translation id="7943235353293548836">Pastāvīgs saites darbības pārbaudes ziņojuma intervāls</translation>
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb index ab55ac9..bfe09e5 100644 --- a/chromeos/strings/chromeos_strings_pl.xtb +++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Typ dostawcy</translation> <translation id="7882501334836096755">Klucz publiczny</translation> <translation id="7890841768028788197">Wbudowany ekran dotykowy</translation> +<translation id="7915220255123750251">Zarządzaj ustawieniami APN sieci. Punkty APN nawiązują połączenie między siecią komórkową a internetem.</translation> <translation id="7936303884198020182">Nie znaleziono serwerów nazw</translation> <translation id="7942349550061667556">Czerwony</translation> <translation id="7943235353293548836">Trwały odstęp utrzymywania aktywności</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb index bd09a13..25c404b 100644 --- a/chromeos/strings/chromeos_strings_pt-BR.xtb +++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -306,6 +306,7 @@ <translation id="4044093238444069296">Não foi possível entrar em contato com o gateway</translation> <translation id="4046123991198612571">Próxima faixa</translation> <translation id="404928562651467259">AVISO</translation> +<translation id="4060260348856573701">Novo APN</translation> <translation id="4093865285251893588">Imagem do perfil</translation> <translation id="409427325554347132">Salvar detalhes do teste</translation> <translation id="4110686435123617899">Selecionar álbum <ph name="TITLE" /> <ph name="DESC" /></translation> @@ -609,6 +610,7 @@ <translation id="6766275201586212568">Falha em resoluções de DNS</translation> <translation id="6768237774506518020">Taxa elevada de erro de resolução de DNS</translation> <translation id="6791471867139427246">cor da luz do teclado</translation> +<translation id="6793680441750437230">Pressione qualquer tecla. Você pode pressionar até quatro teclas ao mesmo tempo. Pressione Alt + Esc para fechar a caixa de diálogo.</translation> <translation id="680983167891198932">Chave</translation> <translation id="6816797338148849397">Informações relacionadas à sua seleção disponíveis. Use a tecla de seta para cima para acessar.</translation> <translation id="6853312040151791195">Taxa de descarregamento</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-PT.xtb b/chromeos/strings/chromeos_strings_pt-PT.xtb index e281020..e02df185 100644 --- a/chromeos/strings/chromeos_strings_pt-PT.xtb +++ b/chromeos/strings/chromeos_strings_pt-PT.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Não foi possível concluir a digitalização</translation> <translation id="5499762266711462226">A cor do teclado baseia-se na imagem de fundo</translation> <translation id="5502931783115429516">O Android não está a funcionar</translation> +<translation id="551689408806449779">O dispositivo foi desligado. Tente restabelecer a ligação para testar</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Mude automaticamente para o tema escuro ao pôr do sol</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Desativado</translation> <translation id="5860491529813859533">Ativar</translation> <translation id="5866840822086176774">Muito forte</translation> +<translation id="5876385649737594562">Ative para selecionar opções</translation> <translation id="588258955323874662">Ecrã inteiro</translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="5901630391730855834">Amarelo</translation>
diff --git a/chromeos/strings/chromeos_strings_ro.xtb b/chromeos/strings/chromeos_strings_ro.xtb index d6dc82c6..d4dd34e 100644 --- a/chromeos/strings/chromeos_strings_ro.xtb +++ b/chromeos/strings/chromeos_strings_ro.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Nu s-a putut finaliza scanarea</translation> <translation id="5499762266711462226">Culoarea tastaturii se bazează pe imaginea de fundal</translation> <translation id="5502931783115429516">Android nu rulează</translation> +<translation id="551689408806449779">Dispozitivul a fost deconectat. Încearcă să-l reconectezi pentru a-l testa</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Comută automat la tema întunecată la apus</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Dezactivat</translation> <translation id="5860491529813859533">Activează</translation> <translation id="5866840822086176774">Foarte puternic</translation> +<translation id="5876385649737594562">Activează modul pentru a selecta opțiuni</translation> <translation id="588258955323874662">Ecran complet</translation> <translation id="5895138241574237353">Reîncepe</translation> <translation id="5901630391730855834">Galben</translation>
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb index 070c796..6468f60 100644 --- a/chromeos/strings/chromeos_strings_sk.xtb +++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Skenovanie sa nepodarilo dokončiť</translation> <translation id="5499762266711462226">Farba klávesnice vychádza z tapety</translation> <translation id="5502931783115429516">Android nefunguje</translation> +<translation id="551689408806449779">Zariadenie bolo odpojené. Skúste sa k testu znova pripojiť.</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Automaticky prepínať na tmavý motív pri západe slnka</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Vypnuté</translation> <translation id="5860491529813859533">Zapnúť</translation> <translation id="5866840822086176774">Veľmi silné</translation> +<translation id="5876385649737594562">Zapnite toto nastavenie a vyberte možnosti</translation> <translation id="588258955323874662">Celá obrazovka</translation> <translation id="5895138241574237353">Reštartovať</translation> <translation id="5901630391730855834">Žltá</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb index dbc123a..a4efe00 100644 --- a/chromeos/strings/chromeos_strings_sl.xtb +++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Optičnega branja ni bilo mogoče dokončati</translation> <translation id="5499762266711462226">Barva tipkovnice temelji na zaslonskem ozadju</translation> <translation id="5502931783115429516">Android se ne izvaja</translation> +<translation id="551689408806449779">Povezava z napravo je prekinjena. Če želite preskusiti, poskusite znova vzpostaviti povezavo.</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Samodejni preklop na temno temo ob sončnem zahodu</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Izklopljeno</translation> <translation id="5860491529813859533">Vklopi</translation> <translation id="5866840822086176774">Zelo močan</translation> +<translation id="5876385649737594562">Vklopite, če želite izbrati možnosti.</translation> <translation id="588258955323874662">Celozaslonsko</translation> <translation id="5895138241574237353">Znova zaženi</translation> <translation id="5901630391730855834">Rumena</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb index 20ee8b64..2241ad8 100644 --- a/chromeos/strings/chromeos_strings_sq.xtb +++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -712,6 +712,7 @@ <translation id="7882358943899516840">Lloji i ofruesit</translation> <translation id="7882501334836096755">Çelës publik</translation> <translation id="7890841768028788197">Ekrani i brendshëm me prekje</translation> +<translation id="7915220255123750251">Menaxho cilësimet e APN-së së rrjetit. APN-të vendosin një lidhje mes një rrjeti celular dhe internetit.</translation> <translation id="7936303884198020182">Nuk u gjetën serverë DNS</translation> <translation id="7942349550061667556">E kuqe</translation> <translation id="7943235353293548836">Intervali i procesit të vazhdueshëm të mbajtjes aktive</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb index 479f6c60..021f6cc 100644 --- a/chromeos/strings/chromeos_strings_ta.xtb +++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">வழங்குநர் வகை</translation> <translation id="7882501334836096755">பொதுக் குறியீடு</translation> <translation id="7890841768028788197">சாதனத்தில் உள்ள டச்ஸ்கிரீன்</translation> +<translation id="7915220255123750251">நெட்வொர்க் APN அமைப்புகளை நிர்வகிக்கலாம். மொபைல் நெட்வொர்க் மற்றும் இணையத்திற்கு இடையில் APNகள் இணைப்பை உருவாக்கும்.</translation> <translation id="7936303884198020182">பெயர் சேவையகங்கள் எதுவும் இல்லை</translation> <translation id="7942349550061667556">சிவப்பு</translation> <translation id="7943235353293548836">பெர்சிஸ்டெண்ட் கீப்-அலைவ் இன்டெர்வல்</translation>
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index 5292400..25c6c47 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Sağlayıcı türü</translation> <translation id="7882501334836096755">Ortak anahtar</translation> <translation id="7890841768028788197">Dahili dokunmatik ekran</translation> +<translation id="7915220255123750251">Ağ APN ayarlarını yönetin. APN'ler, hücresel ağ ve internet arasında bir bağlantı oluşturur.</translation> <translation id="7936303884198020182">Alan adı sunucusu bulunamadı</translation> <translation id="7942349550061667556">Kırmızı</translation> <translation id="7943235353293548836">Kalıcı keepalive Aralığı</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb index f5d0e3d..cd3205a 100644 --- a/chromeos/strings/chromeos_strings_uk.xtb +++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -713,6 +713,7 @@ <translation id="7882358943899516840">Тип постачальника</translation> <translation id="7882501334836096755">Відкритий ключ</translation> <translation id="7890841768028788197">Вбудований сенсорний екран</translation> +<translation id="7915220255123750251">Керуйте налаштуваннями APN мережі: за допомогою ідентифікаторів APN установлюється зв’язок між мобільною мережею й Інтернетом.</translation> <translation id="7936303884198020182">не знайдено серверів імен</translation> <translation id="7942349550061667556">Червоний</translation> <translation id="7943235353293548836">Постійний інтервал повідомлення keepalive</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index 8069c84..e4eba042 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -473,6 +473,7 @@ <translation id="5499114900554609492">Không thể hoàn tất quá trình quét</translation> <translation id="5499762266711462226">Màu bàn phím dựa trên hình nền</translation> <translation id="5502931783115429516">Android hiện không chạy</translation> +<translation id="551689408806449779">Thiết bị đã bị ngắt kết nối. Hãy thử kết nối lại để kiểm tra</translation> <translation id="5519195206574732858">LTE</translation> <translation id="554517032089923082">GTC</translation> <translation id="5559898619118303662">Tự động chuyển sang giao diện tối lúc hoàng hôn</translation> @@ -502,6 +503,7 @@ <translation id="5860033963881614850">Tắt</translation> <translation id="5860491529813859533">Bật</translation> <translation id="5866840822086176774">Rất mạnh</translation> +<translation id="5876385649737594562">Bật để chọn trong số các lựa chọn</translation> <translation id="588258955323874662">Toàn màn hình</translation> <translation id="5895138241574237353">Khởi động lại</translation> <translation id="5901630391730855834">Vàng</translation>
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java index d35d11d..e46d8e40 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAccessTokenUtil.java
@@ -9,8 +9,10 @@ import org.chromium.components.signin.identitymanager.IdentityManager; /** - * Utility class for retrieving and invalidating access tokens. Implementations might differ - * depending on where Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility interface for retrieving and invalidating access tokens. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantAccessTokenUtil { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAddressEditorGms.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAddressEditorGms.java index a13437f..2f5dfe53 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAddressEditorGms.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantAddressEditorGms.java
@@ -13,7 +13,7 @@ import org.chromium.ui.base.WindowAndroid; /** - * Editor for addresses in Chrome/WebLayer using a GMS intent. + * Editor for addresses using a GMS intent. */ public class AssistantAddressEditorGms implements AssistantAddressEditor { private final WindowAndroid mWindowAndroid;
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControls.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControls.java index b213b6f..d8e5ef9 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControls.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControls.java
@@ -7,8 +7,10 @@ import org.chromium.base.lifetime.Destroyable; /** - * An interface for retrieving and monitoring browser controls state.. Implementations might differ - * depending on where Autofill Assistant is running (e.g. WebLayer, Chrome). + * An interface for retrieving and monitoring browser controls state. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantBrowserControls extends Destroyable { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControlsFactory.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControlsFactory.java index a19c534..73d0475 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControlsFactory.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantBrowserControlsFactory.java
@@ -5,8 +5,10 @@ package org.chromium.components.autofill_assistant; /** - * Interface for instantiating browser control objects. Implementations might differ depending on - * where Autofill Assistant is running (e.g. WebLayer, Chrome). + * Interface for instantiating browser control objects. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantBrowserControlsFactory { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java index 0f68bf5..e06b44e 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantDependencies.java
@@ -18,8 +18,10 @@ import org.chromium.ui.base.WindowAndroid; /** - * Generic dependencies interface. The concrete implementation will depend on the browser framework, - * i.e., WebLayer vs. Chrome. + * Generic dependencies interface. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. * * WebContents should not be returned in this interface as objects should stay valid when * WebContents change.
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantEditorFactory.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantEditorFactory.java index 609b8b2..f700b002 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantEditorFactory.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantEditorFactory.java
@@ -16,8 +16,10 @@ import java.util.List; /** - * Factory for creating editors. Implementations might differ depending on where Autofill - * Assistant is running (e.g. WebLayer, Chrome). + * Factory for creating editors. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantEditorFactory { @Nullable
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantFeedbackUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantFeedbackUtil.java index 16b6d8d..5706092 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantFeedbackUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantFeedbackUtil.java
@@ -9,8 +9,10 @@ import org.chromium.content_public.browser.WebContents; /** - * Utility class for showing feedback forms. Implementations might differ depending on where - * Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility class for showing feedback forms. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantFeedbackUtil { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantInfoPageUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantInfoPageUtil.java index 758b4632..ced1f698 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantInfoPageUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantInfoPageUtil.java
@@ -7,8 +7,10 @@ import android.content.Context; /** - * Utility class for showing info pages to the user. Implementations might differ depending on where - * Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility class for showing info pages to the user. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantInfoPageUtil { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java index 7fac263..e0f50c88 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantPaymentInstrumentEditorGms.java
@@ -13,7 +13,7 @@ import org.chromium.ui.base.WindowAndroid; /** - * Editor for payment instruments in Chrome/WebLayer using a GMS intent. + * Editor for payment instruments using a GMS intent. */ public class AssistantPaymentInstrumentEditorGms implements AssistantPaymentInstrumentEditor { private final WindowAndroid mWindowAndroid;
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantProfileImageUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantProfileImageUtil.java index 846d24a..c7598889 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantProfileImageUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantProfileImageUtil.java
@@ -7,8 +7,10 @@ import android.graphics.drawable.Drawable; /** - * Utility class for showing info pages to the user. Implementations might differ depending on where - * Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility class for showing info pages to the user. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantProfileImageUtil { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSettingsUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSettingsUtil.java index 64c6b15f..563d34c 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSettingsUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSettingsUtil.java
@@ -7,8 +7,10 @@ import android.content.Context; /** - * Utility class for launching the settings activity. Implementations might differ depending on - * where Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility class for launching the settings activity. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantSettingsUtil { /** Launches the settings activity. */
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSnackbarFactory.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSnackbarFactory.java index 5ef0561..b9d5dd2 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSnackbarFactory.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantSnackbarFactory.java
@@ -6,8 +6,10 @@ import org.chromium.base.Callback; /** - * Factory for creating snackbars. Implementations might differ depending on where Autofill - * Assistant is running (e.g. WebLayer, Chrome). + * Factory for creating snackbars. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantSnackbarFactory { /**
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java index b2bc00b..57f2d6f3 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantStaticDependencies.java
@@ -18,8 +18,10 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.AccessibilityUtil; /** - * Generic static dependencies interface. The concrete implementation will depend on the browser - * framework, i.e., WebLayer vs. Chrome. + * Generic static dependencies interface. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ @JNINamespace("autofill_assistant") public interface AssistantStaticDependencies {
diff --git a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantTabUtil.java b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantTabUtil.java index 8dc0e6e0..bf84564 100644 --- a/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantTabUtil.java +++ b/components/autofill_assistant/android/public/java/src/org/chromium/components/autofill_assistant/AssistantTabUtil.java
@@ -7,8 +7,10 @@ import android.app.Activity; /** - * Utility class for closing custom tabs. Implementations might differ depending on where - * Autofill Assistant is running (e.g. WebLayer, Chrome). + * Utility class for closing custom tabs. This is + * legacy and can likely be removed - at the time of creation, this layer of + * abstraction was needed to support different implementations between Chrome + * and WebLayer. */ public interface AssistantTabUtil { /**
diff --git a/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc b/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc index fd26470..a6c8773 100644 --- a/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc +++ b/components/autofill_assistant/browser/actions/collect_user_data_action_unittest.cc
@@ -2608,7 +2608,7 @@ action.ProcessAction(callback_.Get()); } -TEST_F(CollectUserDataActionTest, FailsForWebLayerRunsWithoutBackendData) { +TEST_F(CollectUserDataActionTest, FailsIfBackendDataRequiredButMissing) { ON_CALL(mock_action_delegate_, MustUseBackendData) .WillByDefault(Return(true)); EXPECT_CALL(mock_action_delegate_, CollectUserData).Times(0);
diff --git a/components/autofill_assistant/browser/android/client_android.cc b/components/autofill_assistant/browser/android/client_android.cc index c45935dd..d48fc0a 100644 --- a/components/autofill_assistant/browser/android/client_android.cc +++ b/components/autofill_assistant/browser/android/client_android.cc
@@ -628,11 +628,11 @@ } bool ClientAndroid::MustUseBackendData() const { - // For WebLayer flows the client does not have access to Chrome's Autofill - // data and must use data from our backend. Similarly the client can not use - // e.g. Autofill's data editors and must rely on GMS Core provided - // replacements. - return dependencies_->GetCommonDependencies()->IsWebLayer(); + // Legacy, can be removed. In the past, WebLayer flows did not have access + // to Chrome's Autofill data and thus those flows had to enforce the use of + // backend data. Since WebLayer is no longer supported, we no longer need to + // enforce this condition. + return false; } void ClientAndroid::GetAnnotateDomModelVersion(
diff --git a/components/autofill_assistant/browser/android/dependencies_android.h b/components/autofill_assistant/browser/android/dependencies_android.h index 398cfec..feb5163 100644 --- a/components/autofill_assistant/browser/android/dependencies_android.h +++ b/components/autofill_assistant/browser/android/dependencies_android.h
@@ -22,8 +22,7 @@ // Wrapper for all dependencies needed in android flows using legacy UI. // // Provides the right implementation of |CommonDependencies| and -// |PlatformDependencies| depending on platform and whether we are in Chrome or -// Weblayer. +// |PlatformDependencies| depending on platform. class DependenciesAndroid { public: static std::unique_ptr<DependenciesAndroid> CreateFromJavaStaticDependencies(
diff --git a/components/autofill_assistant/browser/android/starter_delegate_android.cc b/components/autofill_assistant/browser/android/starter_delegate_android.cc index 15d15cb..f1d899d6 100644 --- a/components/autofill_assistant/browser/android/starter_delegate_android.cc +++ b/components/autofill_assistant/browser/android/starter_delegate_android.cc
@@ -261,10 +261,6 @@ GetWebContents()); } -bool StarterDelegateAndroid::GetIsWebLayer() const { - return GetCommonDependencies()->IsWebLayer(); -} - bool StarterDelegateAndroid::GetIsTabCreatedByGSA() const { if (!java_object_) { // Failsafe, should never happen.
diff --git a/components/autofill_assistant/browser/android/starter_delegate_android.h b/components/autofill_assistant/browser/android/starter_delegate_android.h index 272fcbf5..6aff52eb 100644 --- a/components/autofill_assistant/browser/android/starter_delegate_android.h +++ b/components/autofill_assistant/browser/android/starter_delegate_android.h
@@ -82,7 +82,6 @@ bool GetIsSupervisedUser() override; bool GetIsAllowedForMachineLearning() override; bool GetIsCustomTab() const override; - bool GetIsWebLayer() const override; bool GetIsTabCreatedByGSA() const override; std::unique_ptr<AssistantFieldTrialUtil> CreateFieldTrialUtil() override; bool IsAttached() override;
diff --git a/components/autofill_assistant/browser/common_dependencies.h b/components/autofill_assistant/browser/common_dependencies.h index 3b278ab5..e46723d 100644 --- a/components/autofill_assistant/browser/common_dependencies.h +++ b/components/autofill_assistant/browser/common_dependencies.h
@@ -44,7 +44,7 @@ // Interface for platform delegates that provide dependencies to the starter. // // This interface contains all methods with a common implementation across -// platforms (desktop and Android) but a different implementation on WebLayer. +// platforms (desktop and Android). class CommonDependencies { public: virtual ~CommonDependencies(); @@ -77,8 +77,6 @@ virtual AnnotateDomModelService* GetOrCreateAnnotateDomModelService() const = 0; - virtual bool IsWebLayer() const = 0; - virtual signin::IdentityManager* GetIdentityManager() const = 0; virtual consent_auditor::ConsentAuditor* GetConsentAuditor() const = 0;
diff --git a/components/autofill_assistant/browser/desktop/starter_delegate_desktop.cc b/components/autofill_assistant/browser/desktop/starter_delegate_desktop.cc index f1435c7..1eacc0e4 100644 --- a/components/autofill_assistant/browser/desktop/starter_delegate_desktop.cc +++ b/components/autofill_assistant/browser/desktop/starter_delegate_desktop.cc
@@ -108,10 +108,6 @@ return platform_dependencies_->IsCustomTab(GetWebContents()); } -bool StarterDelegateDesktop::GetIsWebLayer() const { - return false; -} - bool StarterDelegateDesktop::GetIsTabCreatedByGSA() const { return false; }
diff --git a/components/autofill_assistant/browser/desktop/starter_delegate_desktop.h b/components/autofill_assistant/browser/desktop/starter_delegate_desktop.h index de57950e..7df60a1 100644 --- a/components/autofill_assistant/browser/desktop/starter_delegate_desktop.h +++ b/components/autofill_assistant/browser/desktop/starter_delegate_desktop.h
@@ -64,7 +64,6 @@ bool GetIsSupervisedUser() override; bool GetIsAllowedForMachineLearning() override; bool GetIsCustomTab() const override; - bool GetIsWebLayer() const override; bool GetIsTabCreatedByGSA() const override; std::unique_ptr<AssistantFieldTrialUtil> CreateFieldTrialUtil() override; bool IsAttached() override;
diff --git a/components/autofill_assistant/browser/fake_common_dependencies.cc b/components/autofill_assistant/browser/fake_common_dependencies.cc index 43decc2..c295d2ba 100644 --- a/components/autofill_assistant/browser/fake_common_dependencies.cc +++ b/components/autofill_assistant/browser/fake_common_dependencies.cc
@@ -70,10 +70,6 @@ return nullptr; } -bool FakeCommonDependencies::IsWebLayer() const { - return is_weblayer_; -} - signin::IdentityManager* FakeCommonDependencies::GetIdentityManager() const { return identity_manager_; }
diff --git a/components/autofill_assistant/browser/fake_common_dependencies.h b/components/autofill_assistant/browser/fake_common_dependencies.h index 4868c44..ada4c448 100644 --- a/components/autofill_assistant/browser/fake_common_dependencies.h +++ b/components/autofill_assistant/browser/fake_common_dependencies.h
@@ -43,7 +43,6 @@ bool IsSupervisedUser() const override; bool IsAllowedForMachineLearning() const override; AnnotateDomModelService* GetOrCreateAnnotateDomModelService() const override; - bool IsWebLayer() const override; signin::IdentityManager* GetIdentityManager() const override; consent_auditor::ConsentAuditor* GetConsentAuditor() const override; version_info::Channel GetChannel() const override; @@ -57,7 +56,6 @@ std::string signed_in_email_; bool is_supervised_user_ = false; bool is_allowed_for_machine_learning_ = true; - bool is_weblayer_ = false; version_info::Channel channel_ = version_info::Channel::UNKNOWN; bool msbb_enabled_ = true; bool uma_enabled_ = true;
diff --git a/components/autofill_assistant/browser/fake_starter_platform_delegate.cc b/components/autofill_assistant/browser/fake_starter_platform_delegate.cc index 9070a22..daf1a96 100644 --- a/components/autofill_assistant/browser/fake_starter_platform_delegate.cc +++ b/components/autofill_assistant/browser/fake_starter_platform_delegate.cc
@@ -116,10 +116,6 @@ return is_custom_tab_; } -bool FakeStarterPlatformDelegate::GetIsWebLayer() const { - return is_web_layer_; -} - bool FakeStarterPlatformDelegate::GetIsTabCreatedByGSA() const { return is_tab_created_by_gsa_; }
diff --git a/components/autofill_assistant/browser/fake_starter_platform_delegate.h b/components/autofill_assistant/browser/fake_starter_platform_delegate.h index ff290c2c..2148604 100644 --- a/components/autofill_assistant/browser/fake_starter_platform_delegate.h +++ b/components/autofill_assistant/browser/fake_starter_platform_delegate.h
@@ -55,7 +55,6 @@ bool GetIsSupervisedUser() override; bool GetIsAllowedForMachineLearning() override; bool GetIsCustomTab() const override; - bool GetIsWebLayer() const override; bool GetIsTabCreatedByGSA() const override; std::unique_ptr<AssistantFieldTrialUtil> CreateFieldTrialUtil() override; bool IsAttached() override; @@ -86,7 +85,6 @@ bool is_supervised_user_ = false; bool is_allowed_for_machine_learning_ = true; bool is_custom_tab_ = true; - bool is_web_layer_ = false; bool is_tab_created_by_gsa_ = true; std::unique_ptr<AssistantFieldTrialUtil> field_trial_util_; bool is_attached_ = true;
diff --git a/components/autofill_assistant/browser/mock_common_dependencies.h b/components/autofill_assistant/browser/mock_common_dependencies.h index d2b5c298..bb959be 100644 --- a/components/autofill_assistant/browser/mock_common_dependencies.h +++ b/components/autofill_assistant/browser/mock_common_dependencies.h
@@ -52,7 +52,6 @@ GetOrCreateAnnotateDomModelService, (), (const override)); - MOCK_METHOD(bool, IsWebLayer, (), (const override)); MOCK_METHOD(signin::IdentityManager*, GetIdentityManager, (),
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index bebda1e9..40b7a8f36 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -2930,10 +2930,9 @@ // Specifies information about the data source to be used. message DataSource { // If enabled and the user data request fails, fall back to the Chrome - // Autofill data instead where possible. E.g. in WebLayer this setting is - // ignored (Chrome Autofill data is not available). If this is false, the - // action will fail if the user data request fails, even if Chrome Autofill - // data would have been available. + // Autofill data instead where possible. If this is false, the action will + // fail if the user data request fails, even if Chrome Autofill data would + // have been available. optional bool allow_fallback_on_failure = 1 [default = true]; optional bool allow_fallback_on_missing_data = 2; }
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.cc b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.cc index 1fe2d5a..7780974 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.cc +++ b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.cc
@@ -41,12 +41,7 @@ return empty_list->GetList(); } - if (!platform_delegate->GetIsCustomTab() && - !platform_delegate->GetIsWebLayer() && !enabled_in_regular_tabs_) { - return empty_list->GetList(); - } - - if (platform_delegate->GetIsWebLayer() && !enabled_in_weblayer_) { + if (!platform_delegate->GetIsCustomTab() && !enabled_in_regular_tabs_) { return empty_list->GetList(); } @@ -140,8 +135,6 @@ dict->GetDict().FindBool(kEnabledInCustomTabsKey).value_or(false); enabled_in_regular_tabs_ = dict->GetDict().FindBool(kEnabledInRegularTabsKey).value_or(false); - enabled_in_weblayer_ = - dict->GetDict().FindBool(kEnabledInWeblayerKey).value_or(false); enabled_for_signed_out_users_ = dict->GetDict().FindBool(kEnabledForSignedOutUsers).value_or(false); enabled_without_msbb_ =
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.h b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.h index ca5c773..4524ccee 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.h +++ b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config.h
@@ -23,7 +23,6 @@ // Note that only custom tabs created by GSA are supported. const char kEnabledInCustomTabsKey[] = "enabledInCustomTabs"; const char kEnabledInRegularTabsKey[] = "enabledInRegularTabs"; -const char kEnabledInWeblayerKey[] = "enabledInWeblayer"; // Note: signed-in users default to true and need not be configured. const char kEnabledForSignedOutUsers[] = "enabledForSignedOutUsers"; // Whether 'make searches and browsing better' is required or not. By default, @@ -43,7 +42,6 @@ ], "enabledInCustomTabs":true, "enabledInRegularTabs":false, - "enabledInWeblayer":false, "enabledForSignedOutUsers":true "enabledWithoutMsbb":false } @@ -81,7 +79,6 @@ bool enabled_in_custom_tabs_ = false; bool enabled_in_regular_tabs_ = false; - bool enabled_in_weblayer_ = false; bool enabled_for_signed_out_users_ = false; bool enabled_without_msbb_ = false; std::string intent_;
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config_unittest.cc b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config_unittest.cc index d50a741..156b614 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config_unittest.cc +++ b/components/autofill_assistant/browser/starter_heuristic_configs/finch_starter_heuristic_config_unittest.cc
@@ -39,7 +39,6 @@ "denylistedDomains":["example.com"], "enabledInCustomTabs":true, "enabledInRegularTabs":true, - "enabledInWeblayer": true, "enabledForSignedOutUsers": true, "heuristics":[ { @@ -197,7 +196,6 @@ FinchStarterHeuristicConfig config(base::FeatureParam<std::string>{ &features::kAutofillAssistantUrlHeuristic1, "some_key", ""}); - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_tab_created_by_gsa_ = true; fake_platform_delegate_.is_custom_tab_ = true; EXPECT_THAT(config.GetConditionSetsForClientState(&fake_platform_delegate_, @@ -227,7 +225,6 @@ FinchStarterHeuristicConfig config(base::FeatureParam<std::string>{ &features::kAutofillAssistantUrlHeuristic1, "some_key", ""}); - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_tab_created_by_gsa_ = true; fake_platform_delegate_.is_custom_tab_ = true; EXPECT_THAT(config.GetDenylistedDomains(), IsEmpty()); @@ -295,7 +292,6 @@ ], "enabledInCustomTabs":true, "enabledInRegularTabs":true, - "enabledInWeblayer":true } )"}}}}, /* disabled_features = */ {}); @@ -337,7 +333,6 @@ FinchStarterHeuristicConfig config(base::FeatureParam<std::string>{ &features::kAutofillAssistantUrlHeuristic1, "some_key", ""}); - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_custom_tab_ = true; EXPECT_THAT(config.GetConditionSetsForClientState(&fake_platform_delegate_, &context_), @@ -422,12 +417,11 @@ &features::kAutofillAssistantUrlHeuristic1, "some_key", ""}); // - Must not be a supervised user - // - Must be a regular tab, not a weblayer + // - Must be a regular tab // - Proactive help and MSBB must be turned on - bool expected_result = !GetParam().is_supervised_user && - !GetParam().is_custom_tab && !GetParam().is_weblayer && - GetParam().proactive_help_enabled && - GetParam().msbb_enabled; + bool expected_result = + !GetParam().is_supervised_user && !GetParam().is_custom_tab && + GetParam().proactive_help_enabled && GetParam().msbb_enabled; EXPECT_THAT(config.GetConditionSetsForClientState(&fake_platform_delegate_, &context_), SizeIs(expected_result ? 1 : 0)); @@ -442,7 +436,6 @@ "denylistedDomains":["example.com"], "enabledInCustomTabs":true, "enabledInRegularTabs":true, - "enabledInWeblayer":true, "enabledForSignedOutUsers":true, "enabledWithoutMsbb":true, "heuristics":[
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs.cc b/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs.cc index db7cfef..9d0de9ae 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs.cc +++ b/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs.cc
@@ -46,7 +46,6 @@ ], "enabledInCustomTabs":true, "enabledInRegularTabs":false, - "enabledInWeblayer":false, "enabledForSignedOutUsers":true, "enabledWithoutMsbb":false )";
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs_unittest.cc b/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs_unittest.cc index a133646..6f467d3 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs_unittest.cc +++ b/components/autofill_assistant/browser/starter_heuristic_configs/launched_configs_unittest.cc
@@ -39,7 +39,6 @@ TEST_F(LaunchedConfigsTest, ShoppingAndCouponsLaunchedForCct) { fake_platform_delegate_.is_custom_tab_ = true; - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_tab_created_by_gsa_ = true; fake_platform_delegate_.is_logged_in_ = false; fake_platform_delegate_.fake_common_dependencies_->msbb_enabled_ = true; @@ -85,7 +84,6 @@ features::kAutofillAssistantInCCTTriggering); fake_platform_delegate_.is_custom_tab_ = true; - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_tab_created_by_gsa_ = true; fake_platform_delegate_.is_logged_in_ = false; fake_platform_delegate_.fake_common_dependencies_->msbb_enabled_ = true;
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/launched_starter_heuristic_config_unittest.cc b/components/autofill_assistant/browser/starter_heuristic_configs/launched_starter_heuristic_config_unittest.cc index 8439d09..69ecbdae 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/launched_starter_heuristic_config_unittest.cc +++ b/components/autofill_assistant/browser/starter_heuristic_configs/launched_starter_heuristic_config_unittest.cc
@@ -29,7 +29,6 @@ ], "enabledInCustomTabs":true, "enabledInRegularTabs":false, - "enabledInWeblayer":false, "enabledForSignedOutUsers":true, "enabledWithoutMsbb":false } @@ -38,7 +37,6 @@ // Sets up the platform delegate to satisfy the conditions in |kRegularConfig|. void SetupForRegularConfig(FakeStarterPlatformDelegate* fake_delegate) { fake_delegate->is_custom_tab_ = true; - fake_delegate->is_web_layer_ = false; fake_delegate->is_tab_created_by_gsa_ = true; fake_delegate->is_logged_in_ = false; fake_delegate->fake_common_dependencies_->msbb_enabled_ = true;
diff --git a/components/autofill_assistant/browser/starter_heuristic_configs/starter_heuristic_configs_test_util.h b/components/autofill_assistant/browser/starter_heuristic_configs/starter_heuristic_configs_test_util.h index 5b2676d6b..5c403def 100644 --- a/components/autofill_assistant/browser/starter_heuristic_configs/starter_heuristic_configs_test_util.h +++ b/components/autofill_assistant/browser/starter_heuristic_configs/starter_heuristic_configs_test_util.h
@@ -15,7 +15,6 @@ // Used to parametrize tests. struct ClientState { bool is_custom_tab = false; - bool is_weblayer = false; bool is_logged_in = false; bool msbb_enabled = false; bool is_supervised_user = false; @@ -143,40 +142,11 @@ .msbb_enabled = true, .is_supervised_user = false, .proactive_help_enabled = false}, - - // Weblayer - {.is_custom_tab = false, - .is_weblayer = true, - .msbb_enabled = true, - .is_supervised_user = false, - .proactive_help_enabled = true}, - - // Weblayer, no msbb - {.is_custom_tab = true, - .is_weblayer = true, - .msbb_enabled = false, - .is_supervised_user = false, - .proactive_help_enabled = true}, - - // Weblayer, supervised user - {.is_custom_tab = false, - .is_weblayer = true, - .msbb_enabled = true, - .is_supervised_user = true, - .proactive_help_enabled = true}, - - // Weblayer, proactive help disabled - {.is_custom_tab = false, - .is_weblayer = true, - .msbb_enabled = true, - .is_supervised_user = false, - .proactive_help_enabled = false}, }; inline void ApplyClientState(FakeStarterPlatformDelegate* platform_delegate, const ClientState& client_state) { platform_delegate->is_custom_tab_ = client_state.is_custom_tab; - platform_delegate->is_web_layer_ = client_state.is_weblayer; platform_delegate->is_logged_in_ = client_state.is_logged_in; platform_delegate->fake_common_dependencies_->msbb_enabled_ = client_state.msbb_enabled;
diff --git a/components/autofill_assistant/browser/starter_heuristic_unittest.cc b/components/autofill_assistant/browser/starter_heuristic_unittest.cc index a026ea4c0..9cde2339 100644 --- a/components/autofill_assistant/browser/starter_heuristic_unittest.cc +++ b/components/autofill_assistant/browser/starter_heuristic_unittest.cc
@@ -32,7 +32,6 @@ StarterHeuristicTest() { // Settings that satisfy the shopping config requirements. fake_platform_delegate_.is_custom_tab_ = true; - fake_platform_delegate_.is_web_layer_ = false; fake_platform_delegate_.is_logged_in_ = true; fake_platform_delegate_.fake_common_dependencies_->msbb_enabled_ = true; fake_platform_delegate_.is_supervised_user_ = false; @@ -196,7 +195,6 @@ &finch_config_2}; auto starter_heuristic = base::MakeRefCounted<StarterHeuristic>(); fake_platform_delegate_.is_custom_tab_ = true; - fake_platform_delegate_.is_web_layer_ = false; starter_heuristic->InitFromHeuristicConfigs(configs, &fake_platform_delegate_, &context_);
diff --git a/components/autofill_assistant/browser/starter_platform_delegate.h b/components/autofill_assistant/browser/starter_platform_delegate.h index 593e3f1..d44231bc 100644 --- a/components/autofill_assistant/browser/starter_platform_delegate.h +++ b/components/autofill_assistant/browser/starter_platform_delegate.h
@@ -92,8 +92,6 @@ virtual bool GetIsAllowedForMachineLearning() = 0; // Returns whether this is a custom tab or not. virtual bool GetIsCustomTab() const = 0; - // Returns whether this is running in WebLayer or not. - virtual bool GetIsWebLayer() const = 0; // Returns whether the tab was created by GSA or not. virtual bool GetIsTabCreatedByGSA() const = 0; // Creates the util for registering synthetic field trials.
diff --git a/components/autofill_assistant/browser/starter_unittest.cc b/components/autofill_assistant/browser/starter_unittest.cc index 3b9583a..5a6d94d 100644 --- a/components/autofill_assistant/browser/starter_unittest.cc +++ b/components/autofill_assistant/browser/starter_unittest.cc
@@ -968,7 +968,6 @@ fake_platform_delegate_.fake_common_dependencies_->msbb_enabled_ = true; fake_platform_delegate_.proactive_help_enabled_ = true; fake_platform_delegate_.is_logged_in_ = false; - fake_platform_delegate_.is_web_layer_ = false; starter_->Init(); EXPECT_CALL( @@ -1062,19 +1061,6 @@ EXPECT_THAT(GetUkmInChromeTriggering(ukm_recorder_), IsEmpty()); } -TEST_F(StarterTest, DoNotStartImplicitlyForWebLayer) { - SetupPlatformDelegateForReturningUser(); - fake_platform_delegate_.is_custom_tab_ = false; - fake_platform_delegate_.is_web_layer_ = true; - starter_->Init(); - - EXPECT_CALL(*mock_trigger_script_service_request_sender_, OnSendRequest) - .Times(0); - SimulateNavigateToUrl(GURL("https://www.some-website.com/cart")); - task_environment()->RunUntilIdle(); - EXPECT_THAT(GetUkmInChromeTriggering(ukm_recorder_), IsEmpty()); -} - TEST_F(StarterTest, ImplicitStartupOnCurrentUrlAfterSettingEnabled) { SetupPlatformDelegateForReturningUser(); fake_platform_delegate_.proactive_help_enabled_ = false;
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb index 7ee72a6..08de342 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ar.xtb
@@ -355,6 +355,7 @@ <translation id="8380167699614421159">يعرض هذا الموقع الإلكتروني إعلانات مضلِّلة أو غير مرغوب فيها</translation> <translation id="8394832520002899662">يُرجى النقر للرجوع إلى الموقع الإلكتروني.</translation> <translation id="8409345997656833551">تلقّي إشعارات في حال كان خيار العرض المبسَّط متاحًا لمقالة</translation> +<translation id="8423565414844018592">تم ضبط حجم النص على <ph name="TEXT_SCALING" />.</translation> <translation id="8428213095426709021">الإعدادات</translation> <translation id="8441146129660941386">الرجوع للوراء</translation> <translation id="8444433999583714703">للسماح لتطبيق <ph name="APP_NAME" /> بالوصول إلى موقعك الجغرافي، يُرجى أيضًا تفعيل الموقع الجغرافي في <ph name="BEGIN_LINK" />إعدادات Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb index 18e655a..31fff35 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_as.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">এই ছাইটটোৱে বিনা অনুমতিত বা কোনো বিভ্ৰান্তিকৰ বিজ্ঞাপন দেখুৱায়</translation> <translation id="8394832520002899662">এই ছাইটটোলৈ উভতি যাবলৈ টিপক</translation> <translation id="8409345997656833551">এটা প্ৰৱন্ধ সৰলীকৃত ভিউত দেখুৱাব পৰা হ’লে জাননী পাওক</translation> +<translation id="8423565414844018592">পাঠৰ স্কেলিং <ph name="TEXT_SCALING" /> হিচাপে ছেট কৰা হৈছে</translation> <translation id="8428213095426709021">ছেটিংসমূহ</translation> <translation id="8441146129660941386">পিছলৈ ছীক কৰক</translation> <translation id="8444433999583714703"><ph name="APP_NAME" />ক আপোনাৰ অৱস্থান এক্সেছ কৰিবলৈ দিবলৈ <ph name="BEGIN_LINK" />Android ছেটিংসমূহ<ph name="END_LINK" />তো অৱস্থান অন কৰক।</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb index 11f2ac40..d280c18 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_bs.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Dijeljenje ekrana</translation> <translation id="5922967540311291836">Blokirajte kolačiće treće strane:</translation> <translation id="5939518447894949180">Ponovno postavi</translation> +<translation id="5968921426641056619">Unesite web adresu</translation> <translation id="5975083100439434680">Smanji</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Upravljanje pristupom ove web lokacije vašem uređaju</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb index 12e75641..05869f5 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ca.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Aquest lloc web mostra anuncis intrusius o enganyosos</translation> <translation id="8394832520002899662">Toca per tornar al lloc web</translation> <translation id="8409345997656833551">Rep una notificació quan un article es pugui mostrar amb la visualització simplificada</translation> +<translation id="8423565414844018592">L'ajust del text s'ha definit en <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Configuració</translation> <translation id="8441146129660941386">Retrocedeix</translation> <translation id="8444433999583714703">Perquè <ph name="APP_NAME" /> pugui accedir a la teva ubicació, també has d'activar-la a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb index 2ab52bc..1995220 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_cy.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Mae'r wefan hon yn dangos hysbysebion ymwthiol neu gamarweiniol</translation> <translation id="8394832520002899662">Tapiwch i ddychwelyd i'r wefan</translation> <translation id="8409345997656833551">Cael hysbysiadau pan fydd erthygl yn gallu cael ei dangos yn y wedd syml</translation> +<translation id="8423565414844018592">Graddio testun wedi'i osod i <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Gosodiadau</translation> <translation id="8441146129660941386">Mynd yn ôl</translation> <translation id="8444433999583714703">I ganiatáu i <ph name="APP_NAME" /> gael mynediad at eich lleoliad, trowch leoliad ymlaen yn <ph name="BEGIN_LINK" />Gosodiadau Android<ph name="END_LINK" /> hefyd.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb index 963755a..abc60a8 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_da.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Dette website viser påtrængende eller vildledende annoncer</translation> <translation id="8394832520002899662">Tryk for at vende tilbage til websitet</translation> <translation id="8409345997656833551">Få besked, når en artikel kan ses i enkel visning</translation> +<translation id="8423565414844018592">Tekststørrelsen er indstillet til <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Indstillinger</translation> <translation id="8441146129660941386">Spol tilbage</translation> <translation id="8444433999583714703">Aktivér også placering i <ph name="BEGIN_LINK" />Android-indstillingerne<ph name="END_LINK" /> for at give <ph name="APP_NAME" /> adgang til din lokation.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb index 575ac6d..c5e2b8f 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_eu.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Webgune honek iragarki oztopatzaile edo iruzurrezkoak erakusten ditu</translation> <translation id="8394832520002899662">Sakatu hau webgunera itzultzeko</translation> <translation id="8409345997656833551">Jaso jakinarazpen bat artikulu bat ikuspegi sinplifikatuan erakuts daitekeenean</translation> +<translation id="8423565414844018592">Testuaren tamaina <ph name="TEXT_SCALING" /> da</translation> <translation id="8428213095426709021">Ezarpenak</translation> <translation id="8441146129660941386">Atzeratu</translation> <translation id="8444433999583714703"><ph name="APP_NAME" /> aplikazioari kokapena atzitzeko baimena emateko, kokapena atzitzeko baimena aktibatu behar duzu <ph name="BEGIN_LINK" />Android-en ezarpenetan<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb index f59a4913..0176fe12 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_fr.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Ce site affiche des annonces intrusives ou trompeuses</translation> <translation id="8394832520002899662">Appuyez pour revenir au site</translation> <translation id="8409345997656833551">M'avertir lorsqu'un article peut s'afficher en vue simplifiée</translation> +<translation id="8423565414844018592">Mise à l'échelle du texte définie sur <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Paramètres</translation> <translation id="8441146129660941386">Retour rapide</translation> <translation id="8444433999583714703">Pour autoriser <ph name="APP_NAME" /> à accéder à votre position, activez également la localisation dans les <ph name="BEGIN_LINK" />paramètres Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb index a6bb56a..4cafc24 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_gu.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">આ સાઇટ ઘૃણાસ્પદ અથવા ભ્રામક જાહેરાતો બતાવે છે</translation> <translation id="8394832520002899662">સાઇટ પર પાછા ફરવા માટે, ટૅપ કરો</translation> <translation id="8409345997656833551">જ્યારે લેખને સરળ બનાવેલા વ્યૂમાં બતાવી શકાતો હોય ત્યારે નોટિફિકેશન મેળવો</translation> +<translation id="8423565414844018592">ટેક્સ્ટ સ્કેલિંગ <ph name="TEXT_SCALING" /> પર સેટ કર્યું</translation> <translation id="8428213095426709021">સેટિંગ</translation> <translation id="8441146129660941386">પાછળ કરો</translation> <translation id="8444433999583714703"><ph name="APP_NAME" /> તમારું સ્થાન ઍક્સેસ કરી શકે તે માટે, <ph name="BEGIN_LINK" />Android સેટિંગ<ph name="END_LINK" />માં પણ સ્થાન ચાલુ કરો.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb index 873d9aa..cd3eea0 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_hr.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Dijeljenje zaslona</translation> <translation id="5922967540311291836">Blokiraj kolačiće trećih strana:</translation> <translation id="5939518447894949180">Ponovno postavi</translation> +<translation id="5968921426641056619">Unesite web-adresu</translation> <translation id="5975083100439434680">Smanji</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Kontrolirajte pristup ove web-lokacije vašem uređaju</translation> @@ -353,6 +354,7 @@ <translation id="8380167699614421159">Ova web-lokacija prikazuje ometajuće ili obmanjujuće oglase</translation> <translation id="8394832520002899662">Dodirnite da biste se vratili na web-lokaciju</translation> <translation id="8409345997656833551">Primajte obavijesti kad se članak može prikazati u pojednostavljenom prikazu</translation> +<translation id="8423565414844018592">Skaliranje teksta postavljeno je na <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Postavke</translation> <translation id="8441146129660941386">Traži unatrag</translation> <translation id="8444433999583714703">Da bi aplikacija <ph name="APP_NAME" /> mogla pristupiti vašoj lokaciji, uključite lokaciju i u <ph name="BEGIN_LINK" />Androidovim postavkama<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb index bd0d193b..182256d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_is.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Þetta vefsvæði sýnir ágengar eða villandi auglýsingar</translation> <translation id="8394832520002899662">Ýttu til að fara aftur á vefsvæðið</translation> <translation id="8409345997656833551">Fá tilkynningu þegar hægt er að birta grein í einfaldaðri útgáfu</translation> +<translation id="8423565414844018592">Textastærð er stillt á <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Stillingar</translation> <translation id="8441146129660941386">Spóla til baka</translation> <translation id="8444433999583714703">Til að veita <ph name="APP_NAME" /> aðgang að staðsetningu þinni þarftu einnig að kveikja á henni í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb index f01a83b..d742c72 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Condivisione dello schermo</translation> <translation id="5922967540311291836">Blocca cookie di terze parti:</translation> <translation id="5939518447894949180">Reimposta</translation> +<translation id="5968921426641056619">Inserisci l'indirizzo web</translation> <translation id="5975083100439434680">Diminuisci lo zoom</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Controlla l'accesso di questo sito al tuo dispositivo</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb index 255eadc..015017c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">באתר הזה מוצגות מודעות מפריעות או מטעות</translation> <translation id="8394832520002899662">כדי לחזור לאתר, יש להקיש כאן</translation> <translation id="8409345997656833551">קבלת התראה כשאפשר להציג מאמר בתצוגה פשוטה</translation> +<translation id="8423565414844018592">גודל הטקסט שהוגדר: <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">הגדרות</translation> <translation id="8441146129660941386">הרצה לאחור</translation> <translation id="8444433999583714703">כדי לאפשר ל-<ph name="APP_NAME" /> לגשת אל המיקום, צריך להפעיל את המיקום גם ב<ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb index cecc736..cef4ce1c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ka.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">ამ საიტზე ნაჩვენებია მომაბეზრებელი ან შეცდომაში შემყვანი რეკლამა</translation> <translation id="8394832520002899662">შეეხეთ საიტზე დასაბრუნებლად</translation> <translation id="8409345997656833551">შეტყობინების მიღება, როცა სტატიის ჩვენება შესაძლებელია გამარტივებული ხედით</translation> +<translation id="8423565414844018592">ტექსტის სკალირება დაყენებულია <ph name="TEXT_SCALING" />-ზე</translation> <translation id="8428213095426709021">პარამეტრები</translation> <translation id="8441146129660941386">უკან ძიება</translation> <translation id="8444433999583714703"><ph name="APP_NAME" />-მა თქვენი მდებარეობით რომ ისარგებლოს, გაააქტიურეთ მდებარეობაზე წვდომის ნებართვაც <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb index f1792df..d32c084 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_km.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">កំពុងចែករំលែកអេក្រង់របស់អ្នក</translation> <translation id="5922967540311291836">ទប់ស្កាត់ខូគីភាគីទីបី៖</translation> <translation id="5939518447894949180">កំណត់ឡើងវិញ</translation> +<translation id="5968921426641056619">បញ្ចូលអាសយដ្ឋានទំព័រ</translation> <translation id="5975083100439434680">បង្រួម</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> - <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">គ្រប់គ្រងការចូលប្រើរបស់គេហទំព័រនេះនៅលើឧបករណ៍របស់អ្នក</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb index 5b7c65a..993fe68 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ky.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Бул сайт тажатма же адаштыруучу жарнамаларды көрсөтүп жатат</translation> <translation id="8394832520002899662">Сайтка кайтуу үчүн таптаңыз</translation> <translation id="8409345997656833551">Макаланын жөнөкөйлөтүлгөн көрүнүшү жеткиликтүү болгондо кабар алуу</translation> +<translation id="8423565414844018592">Тексттин масштабы <ph name="TEXT_SCALING" /> деп коюлду</translation> <translation id="8428213095426709021">Жөндөөлөр</translation> <translation id="8441146129660941386">Артка түрдүрүү</translation> <translation id="8444433999583714703"><ph name="APP_NAME" /> колдонмосуна жайгашкан жериңизге кирүүгө уруксат берүү үчүн, <ph name="BEGIN_LINK" />Android Жөндөөлөрүнөн<ph name="END_LINK" /> жайгашкан жер кызматын күйгүзүңүз.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb index 56b0f5a..efc1d89 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_lv.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Šajā vietnē tiek rādītas traucējošas vai maldinošas reklāmas</translation> <translation id="8394832520002899662">Lai atgrieztos vietnē, pieskarieties šeit</translation> <translation id="8409345997656833551">Saņemiet paziņojumu, kad rakstu var parādīt vienkāršotajā skatā</translation> +<translation id="8423565414844018592">Iestatītā teksta mērogošanas vērtība: <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Iestatījumi</translation> <translation id="8441146129660941386">Pārtīt atpakaļ</translation> <translation id="8444433999583714703">Lai atļautu lietotnei <ph name="APP_NAME" /> piekļūt jūsu atrašanās vietas datiem, ieslēdziet atrašanās vietas noteikšanu arī <ph name="BEGIN_LINK" />Android iestatījumos<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb index 590ca0e..22a432d 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pl.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Na tej stronie wyświetlają się uciążliwe lub wprowadzające w błąd reklamy</translation> <translation id="8394832520002899662">Kliknij, by wrócić na tę stronę</translation> <translation id="8409345997656833551">Otrzymuj powiadomienia, gdy artykuł można wyświetlić w widoku uproszczonym</translation> +<translation id="8423565414844018592">Skalowanie tekstu ustawione na <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Ustawienia</translation> <translation id="8441146129660941386">Przewiń do tyłu</translation> <translation id="8444433999583714703">Aby zezwolić aplikacji <ph name="APP_NAME" /> na dostęp do lokalizacji, musisz ją też włączyć w <ph name="BEGIN_LINK" />ustawieniach Androida<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb index 890c3e6..ef6fd5c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_pt-PT.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Partilhar o ecrã</translation> <translation id="5922967540311291836">Bloqueie cookies de terceiros:</translation> <translation id="5939518447894949180">Repor</translation> +<translation id="5968921426641056619">Introduza o endereço Web</translation> <translation id="5975083100439434680">Reduzir</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Controle o acesso deste site ao seu dispositivo.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb index f40cd3e..daf968a3 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ro.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Se permite accesul la ecran</translation> <translation id="5922967540311291836">Blochează cookie-urile terță parte:</translation> <translation id="5939518447894949180">Resetează</translation> +<translation id="5968921426641056619">Introdu adresa web</translation> <translation id="5975083100439434680">Micșorează</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Gestionează accesul acestui site la dispozitivul tău</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb index e71a93b4..54be98d1 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sk.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Zdieľate obrazovku</translation> <translation id="5922967540311291836">Blokovať súbory cookie tretích strán:</translation> <translation id="5939518447894949180">Resetovať</translation> +<translation id="5968921426641056619">Zadajte webovú adresu</translation> <translation id="5975083100439434680">Oddialiť</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Ovládajte prístup tohto webu do vášho zariadenia</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb index c7e3b97c..c6fa1004 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sl.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Deljenje zaslona</translation> <translation id="5922967540311291836">Blokiranje piškotkov tretjih oseb:</translation> <translation id="5939518447894949180">Ponastavi</translation> +<translation id="5968921426641056619">Vnesite spletni naslov</translation> <translation id="5975083100439434680">Pomanjšaj</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Nadziranje dostopa spletnega mesta do naprave</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb index 9537ef4b..70f91c9 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_sq.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Ky sajt shfaq reklama ndërhyrëse ose mashtruese</translation> <translation id="8394832520002899662">Trokit për t'u kthyer në sajt</translation> <translation id="8409345997656833551">Merr njoftime kur një artikull mund të shfaqet në pamje të thjeshtuar</translation> +<translation id="8423565414844018592">Shkallëzimi i tekstit është caktuar në <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Cilësimet</translation> <translation id="8441146129660941386">Kërko prapa</translation> <translation id="8444433999583714703">Për të lejuar që <ph name="APP_NAME" /> të ketë qasje te vendndodhja jote, aktivizo gjithashtu vendndodhjen në <ph name="BEGIN_LINK" />Cilësimet e Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb index e05ca580..96c3249 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_ta.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">குறுக்கிடும் அல்லது தவறாக வழிநடத்தும் விளம்பரங்களை இந்தத் தளம் காண்பிக்கிறது</translation> <translation id="8394832520002899662">தளத்திற்குச் செல்ல, தட்டவும்</translation> <translation id="8409345997656833551">எளிதாக்கப்பட்ட காட்சியில் செய்திக் கட்டுரை காட்டப்படும்போது அறிவிப்பைப் பெறலாம்</translation> +<translation id="8423565414844018592">எழுத்து அளவு <ph name="TEXT_SCALING" /> என அமைக்கப்பட்டது</translation> <translation id="8428213095426709021">அமைப்புகள்</translation> <translation id="8441146129660941386">பின்செல்</translation> <translation id="8444433999583714703"><ph name="APP_NAME" /> ஆப்ஸ் உங்கள் இருப்பிடத் தகவலை அணுக அனுமதிப்பதற்கு <ph name="BEGIN_LINK" />Android அமைப்புகளிலும்<ph name="END_LINK" /> இருப்பிடத்திற்கான அனுமதியை இயக்கவும்.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb index 207d7d8..e4201d4 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_tr.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Bu site, araya giren veya yanıltıcı reklamlar gösteriyor</translation> <translation id="8394832520002899662">Siteye dönmek için dokunun</translation> <translation id="8409345997656833551">Makaleler basitleştirilmiş görünümde gösterilebiliyorsa bilgilendirilirsiniz</translation> +<translation id="8423565414844018592">Metin ölçeklendirme <ph name="TEXT_SCALING" /> olarak ayarlandı</translation> <translation id="8428213095426709021">Ayarlar</translation> <translation id="8441146129660941386">Geriye doğru git</translation> <translation id="8444433999583714703"><ph name="APP_NAME" /> uygulamasının konumunuza erişebilmesi için <ph name="BEGIN_LINK" />Android Ayarları<ph name="END_LINK" />'nda da konumu açın.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb index d5a9910..38cbb5db 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
@@ -353,6 +353,7 @@ <translation id="8380167699614421159">Цей сайт показує нав’язливі чи оманливі оголошення</translation> <translation id="8394832520002899662">Натисніть, щоб повернутися на сайт</translation> <translation id="8409345997656833551">Отримувати сповіщення, коли статтю можна показати в режимі спрощеного перегляду</translation> +<translation id="8423565414844018592">Масштаб тексту: <ph name="TEXT_SCALING" /></translation> <translation id="8428213095426709021">Налаштування</translation> <translation id="8441146129660941386">Назад</translation> <translation id="8444433999583714703">Щоб надати додатку <ph name="APP_NAME" /> доступ до геоданих, також увімкніть їх у <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation>
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb index 823d6823..46f3c8c 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb
@@ -233,6 +233,7 @@ <translation id="5922853908706496913">Đang chia sẻ màn hình của bạn</translation> <translation id="5922967540311291836">Chặn cookie của bên thứ ba:</translation> <translation id="5939518447894949180">Đặt lại</translation> +<translation id="5968921426641056619">Nhập địa chỉ web</translation> <translation id="5975083100439434680">Thu nhỏ</translation> <translation id="5976059395673079613"><ph name="PERMISSION" /> – <ph name="WARNING_MESSAGE" /></translation> <translation id="6015775454662021376">Kiểm soát quyền truy cập của trang web này vào thiết bị của bạn</translation>
diff --git a/components/infobars/core/infobar_delegate.h b/components/infobars/core/infobar_delegate.h index 9c26957..8f621b00 100644 --- a/components/infobars/core/infobar_delegate.h +++ b/components/infobars/core/infobar_delegate.h
@@ -180,6 +180,7 @@ SUPPORTED_LINKS_INFOBAR_DELEGATE_CHROMEOS = 109, AUTOFILL_VIRTUAL_CARD_ENROLLMENT_INFOBAR_DELEGATE_MOBILE = 110, TAILORED_SECURITY_SERVICE_INFOBAR_DELEGATE = 111, + CHROME_FOR_TESTING_INFOBAR_DELEGATE = 112, }; // Describes navigation events, used to decide whether infobars should be
diff --git a/components/nacl/loader/BUILD.gn b/components/nacl/loader/BUILD.gn index 224be19..2bb50210 100644 --- a/components/nacl/loader/BUILD.gn +++ b/components/nacl/loader/BUILD.gn
@@ -34,6 +34,7 @@ "//base", "//components/nacl/common:minimal", "//components/nacl/common:mojo_bindings", + "//components/power_monitor", "//content/public/common:main_function_params", "//crypto", "//ipc",
diff --git a/components/nacl/loader/DEPS b/components/nacl/loader/DEPS index 599397f..58d289c2 100644 --- a/components/nacl/loader/DEPS +++ b/components/nacl/loader/DEPS
@@ -1,4 +1,5 @@ include_rules = [ + "+components/power_monitor", "+components/nacl", "+content/public/app/sandbox_helper_win.h", "+content/public/common",
diff --git a/components/nacl/loader/nacl_main.cc b/components/nacl/loader/nacl_main.cc index e4cdf2ce..00283596 100644 --- a/components/nacl/loader/nacl_main.cc +++ b/components/nacl/loader/nacl_main.cc
@@ -8,12 +8,13 @@ #include "base/feature_list.h" #include "base/message_loop/message_pump_type.h" #include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_device_source.h" +#include "base/power_monitor/power_monitor_source.h" #include "base/task/single_thread_task_executor.h" #include "base/timer/hi_res_timer_manager.h" #include "build/build_config.h" #include "components/nacl/loader/nacl_listener.h" #include "components/nacl/loader/nacl_main_platform_delegate.h" +#include "components/power_monitor/make_power_monitor_device_source.h" #include "content/public/common/main_function_params.h" #include "mojo/core/embedder/embedder.h" #include "sandbox/policy/switches.h" @@ -34,8 +35,7 @@ base::SingleThreadTaskExecutor main_task_executor(base::MessagePumpType::IO); base::PlatformThread::SetName("CrNaClMain"); - base::PowerMonitor::Initialize( - std::make_unique<base::PowerMonitorDeviceSource>()); + base::PowerMonitor::Initialize(MakePowerMonitorDeviceSource()); base::HighResolutionTimerManager hi_res_timer_manager; #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/page_ad_density_tracker.cc b/components/page_load_metrics/browser/observers/ad_metrics/page_ad_density_tracker.cc index 0fcae749f..f7ac4e7 100644 --- a/components/page_load_metrics/browser/observers/ad_metrics/page_ad_density_tracker.cc +++ b/components/page_load_metrics/browser/observers/ad_metrics/page_ad_density_tracker.cc
@@ -40,14 +40,13 @@ is_segment_start(is_segment_start) {} SegmentEvent(const SegmentEvent& other) = default; - // Tiebreak with position with |is_segment_start| and |segment_id|. + // Tiebreak with position with |segment_id|. bool operator<(const SegmentEvent& rhs) const { if (pos == rhs.pos) { - if (segment_id == rhs.segment_id) { - return is_segment_start != rhs.is_segment_start; - } else { - return segment_id < rhs.segment_id; - } + // We do not have 0-length segment. + DCHECK_NE(segment_id, rhs.segment_id); + + return segment_id < rhs.segment_id; } else { return pos < rhs.pos; } @@ -342,6 +341,8 @@ rect_event.rect_id, rect_event.rect.x(), rect_event.rect.x() + rect_event.rect.width()); last_y = rect_event.rect.bottom(); + // For first iteration, the current_area is 0 so we skip this iteration. + continue; } int current_y = @@ -413,13 +414,11 @@ int lhs_y = is_bottom ? rect.bottom() : rect.y(); int rhs_y = rhs.is_bottom ? rhs.rect.bottom() : rhs.rect.y(); - // Tiebreak with |rect_id| and |is_bottom|. + // Tiebreak with |rect_id|. if (lhs_y == rhs_y) { - if (rect_id == rhs.rect_id) { - return is_bottom == rhs.is_bottom; - } else { - return rect_id < rhs.rect_id; - } + // We do not have 0-length Rect. + DCHECK_NE(rect_id, rhs.rect_id); + return rect_id < rhs.rect_id; } else { return lhs_y > rhs_y; }
diff --git a/components/payments/content/content_payment_request_delegate.h b/components/payments/content/content_payment_request_delegate.h index 471a303..88af46a 100644 --- a/components/payments/content/content_payment_request_delegate.h +++ b/components/payments/content/content_payment_request_delegate.h
@@ -15,6 +15,10 @@ template <class T> class scoped_refptr; +namespace content { +class RenderFrameHost; +} // namespace content + namespace webauthn { class InternalAuthenticator; } // namespace webauthn @@ -32,6 +36,10 @@ public: ~ContentPaymentRequestDelegate() override; + // Returns the RenderFrameHost for the frame that initiated the + // PaymentRequest. + virtual content::RenderFrameHost* GetRenderFrameHost() const = 0; + // Creates and returns an instance of the InternalAuthenticator interface for // communication with WebAuthn. virtual std::unique_ptr<webauthn::InternalAuthenticator> @@ -66,10 +74,6 @@ // parameter will return an "Invalid certificate" error message. virtual std::string GetInvalidSslCertificateErrorMessage() = 0; - // Returns whether the UI should be skipped for a "basic-card" scenario. This - // will only be true in tests. - virtual bool SkipUiForBasicCard() const = 0; - // Returns the Android package name of the Trusted Web Activity that invoked // this browser, if any. Otherwise, an empty string. virtual std::string GetTwaPackageName() const = 0;
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc index baad22c..05ab578 100644 --- a/components/payments/content/payment_request.cc +++ b/components/payments/content/payment_request.cc
@@ -740,8 +740,7 @@ // Only allowing URL based payment apps to skip the payment sheet. skipped_payment_request_ui_ = !spec()->IsSecurePaymentConfirmationRequested() && - (spec()->url_payment_method_identifiers().size() > 0 || - delegate_->SkipUiForBasicCard()) && + spec()->url_payment_method_identifiers().size() > 0 && base::FeatureList::IsEnabled(features::kWebPaymentsSingleAppUiSkip) && base::FeatureList::IsEnabled(::features::kServiceWorkerPaymentApps) && state()->IsInitialized() && spec()->IsInitialized() &&
diff --git a/components/payments/content/test_content_payment_request_delegate.cc b/components/payments/content/test_content_payment_request_delegate.cc index 4ac54f8..df24ce8 100644 --- a/components/payments/content/test_content_payment_request_delegate.cc +++ b/components/payments/content/test_content_payment_request_delegate.cc
@@ -16,7 +16,13 @@ autofill::PersonalDataManager* pdm) : core_delegate_(std::move(task_executor), pdm) {} -TestContentPaymentRequestDelegate::~TestContentPaymentRequestDelegate() {} +TestContentPaymentRequestDelegate::~TestContentPaymentRequestDelegate() = + default; + +content::RenderFrameHost* +TestContentPaymentRequestDelegate::GetRenderFrameHost() const { + return nullptr; +} std::unique_ptr<webauthn::InternalAuthenticator> TestContentPaymentRequestDelegate::CreateInternalAuthenticator() const { @@ -58,10 +64,6 @@ return core_delegate_.IsBrowserWindowActive(); } -bool TestContentPaymentRequestDelegate::SkipUiForBasicCard() const { - return false; -} - std::string TestContentPaymentRequestDelegate::GetTwaPackageName() const { return ""; }
diff --git a/components/payments/content/test_content_payment_request_delegate.h b/components/payments/content/test_content_payment_request_delegate.h index fe27fb9a..f3c7a0f 100644 --- a/components/payments/content/test_content_payment_request_delegate.h +++ b/components/payments/content/test_content_payment_request_delegate.h
@@ -37,6 +37,7 @@ ~TestContentPaymentRequestDelegate() override; // ContentPaymentRequestDelegate: + content::RenderFrameHost* GetRenderFrameHost() const override; std::unique_ptr<webauthn::InternalAuthenticator> CreateInternalAuthenticator() const override; scoped_refptr<PaymentManifestWebDataService> @@ -48,7 +49,6 @@ void ShowErrorMessage() override; void ShowProcessingSpinner() override; bool IsBrowserWindowActive() const override; - bool SkipUiForBasicCard() const override; std::string GetTwaPackageName() const override; PaymentRequestDialog* GetDialogForTesting() override; SecurePaymentConfirmationNoCreds* GetNoMatchingCredentialsDialogForTesting()
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index eb4f7b4..b58bb58 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -205,6 +205,7 @@ Wird sie auf "false" gesetzt, wird das Kästchen für "Immer zulassen" nicht angezeigt und der Nutzer jedes Mal, wenn ein externes Protokoll aufgerufen wird, zur Bestätigung aufgefordert.</translation> <translation id="1181598794547737681">Benutzeroberfläche für Download-Infofeld aktivieren</translation> +<translation id="1184562656144537588">Manifest V2 ist nur für erzwungene Erweiterungen aktiviert</translation> <translation id="11903325225202653">Wenn du die Richtlinie auf "True" setzt, bleibt der Modus mit hohem Kontrast aktiviert. Wenn du die Richtlinie auf "False" setzt, bleibt der Modus mit hohem Kontrast deaktiviert. Wenn du diese Richtlinie konfigurierst, kann sie von Nutzern nicht geändert werden. Wird sie nicht konfiguriert, ist der Modus mit hohem Kontrast erst einmal deaktiviert, kann aber jederzeit von Nutzern aktiviert werden.</translation> @@ -1514,6 +1515,7 @@ Der Wert der Richtlinie ist in Tagen anzugeben.</translation> <translation id="2466131534462628618">Captive-Portal-Authentifizierung ignoriert Proxy</translation> +<translation id="2467181864598429837">Standardverhalten des Browsers</translation> <translation id="2467896267442150508">Zeitintervall, das maximal eine Woche abdeckt. Wenn die angegebene Startzeit nach der Endzeit liegt, läuft das Intervall über die natürliche Intervallgrenze hinaus.</translation> <translation id="2476249479201711962">Zugriff auf das Kontextmenü des Standardsuchanbieters erlauben</translation> <translation id="247658312644322296">Das Ziel "Als PDF speichern"</translation> @@ -2668,6 +2670,7 @@ <translation id="3524204464536655762">Websites dürfen nie Zugriff auf USB-Geräte über die WebUSB API anfordern</translation> <translation id="3526752951628474302">Nur Schwarz-Weiß-Druck</translation> <translation id="3528000905991875314">Alternative Fehlerseiten aktivieren</translation> +<translation id="3528681240373634003">Verfügbarkeit von Manifest V2-Erweiterungen steuern.</translation> <translation id="3530249698314520116">Konfiguriert eine Liste mit Regeln zur Vermeidung von Datenlecks in <ph name="PRODUCT_OS_NAME" />. Datenlecks können unter anderem beim Kopieren und Einfügen von Daten, beim Übertragen von Dateien, beim Drucken, bei der Bildschirmfreigabe oder beim Aufnehmen von Screenshots auftreten. @@ -2859,17 +2862,6 @@ Ist die Richtlinie deaktiviert, werden Nutzer beim Entsperren des Geräts nicht nach einem Passwort gefragt. Wenn die Richtlinie nicht konfiguriert ist, kann der Nutzer festlegen, ob er nach einem Passwort zum Entsperren des Geräts gefragt werden möchte.</translation> -<translation id="3729689441404871493">Hiermit aktivierst du <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> für eine Liste von URLs auf dem Anmelde- und Sperrbildschirm. - - Wenn du diese Richtlinie konfigurierst, legst du damit fest, welche URLs für den Attestierungsablauf zugelassen sein sollen, um die Signalgruppe vom Computer abzurufen. - - Wenn du sie nicht konfigurierst oder leer lässt, bedeutet das, dass kein Endpunkt dazu in der Lage ist, den Attestierungsablauf zu starten oder Signale vom Computer abzurufen. - - Hinweis: Platzhalter (<ph name="WILDCARD_VALUE" />) sind zulässig. - - Diese Richtlinie wirkt sich nur auf den Attestierungsablauf auf dem Anmelde- und Sperrbildschirm aus. Den Attestierungsablauf während der Sitzung kannst du mit der Richtlinie <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> ändern. - - Weitere Informationen zu gültigen <ph name="URL_LABEL" />-Mustern findest du unter https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Diese Richtlinie wurde in M70 eingestellt. Bitte verwende stattdessen <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> und <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Aktiviert die Autofill-Funktion von <ph name="PRODUCT_NAME" /> und ermöglicht es Nutzern, Webformulare mit zuvor gespeicherten Informationen wie Adresse oder Kreditkartendaten ausfüllen zu lassen. @@ -2935,7 +2927,6 @@ Hinweis: Bei Geräten, die über <ph name="MS_AD_NAME" /> verwaltet werden, unterstützt diese Richtlinie die Erweiterung von <ph name="MACHINE_NAME_VARIABLE" /> auf den <ph name="MS_AD_NAME" />-Computernamen oder einen Teilstring davon. Wenn der Computername beispielsweise „<ph name="MACHINE_NAME_EXAMPLE" />“ lautet, wird „<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />“ durch die vier Zeichen nach der sechsten Stelle ersetzt, z. B. „<ph name="MACHINE_NAME_PART_EXAMPLE" />“. Die Position basiert auf null.</translation> <translation id="377044054160169374">Zwingende Maßnahmen bei irreführenden Inhalten</translation> -<translation id="3777833753656885744">Attestierungsablauf für eine Liste von URLs auf dem Anmelde- und Sperrbildschirm aktivieren</translation> <translation id="3778689139323007309">Widerrufsprüfung für Serverzertifikate durchführen, die erfolgreich bestätigt und von lokal installierten CA-Zertifikaten signiert wurden</translation> <translation id="3780152581321609624">Nicht-Standard-Port in Kerberos-SPN einschließen</translation> <translation id="378495749480642482">Über diese Richtlinie wird konfiguriert, ob vom Nutzer aufgerufene Websites immersive Augmented-Reality-Sitzungen mit der <ph name="WEBXR_API_NAME" /> erstellen dürfen. @@ -3043,6 +3034,13 @@ Ist die Richtlinie auf 2 gesetzt, wird Werbung auf Websites mit aufdringlichen Werbeanzeigen blockiert.</translation> <translation id="3877517141460819966">Integrierter Zwei-Faktor-Authentifizierungsmodus</translation> +<translation id="3877908683993837673">Mit dieser Richtlinie wird festgelegt, welcher Software-Stack zur Kommunikation mit dem DNS-Server verwendet wird: der DNS-Client des Betriebssystems oder der integrierte DNS-Client von <ph name="PRODUCT_NAME" />. Sie beeinflusst nicht, welche DNS-Server verwendet werden. Wenn beispielsweise das Betriebssystem für die Verwendung eines Unternehmens-DNS-Servers konfiguriert ist, verwendet der integrierte DNS-Client genau diesen Server. Mit der Richtlinie wird auch nicht gesteuert, ob DNS-over-HTTPS verwendet wird. <ph name="PRODUCT_NAME" /> nutzt immer den integrierten Resolver für DNS-over-HTTPS-Anfragen. Weitere Informationen zum Steuern von DNS-over-HTTPS findest du in der Richtlinie „<ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" />“. + + Wenn diese Richtlinie aktiviert ist, wird, falls verfügbar, der integrierte DNS-Client verwendet. + + Wenn die Richtlinie deaktiviert ist, wird der integrierte DNS-Client nur bei Nutzung von DNS-over-HTTPS verwendet. + + Wird die Richtlinie nicht konfiguriert, ist der integrierte DNS-Client unter <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> – sofern weder ein privates DNS noch ein VPN aktiviert ist – und <ph name="PRODUCT_OS_NAME" /> standardmäßig aktiviert.</translation> <translation id="3879208481373875102">Liste der Web-Apps konfigurieren, deren Installation erzwungen wurde</translation> <translation id="3879700444818346084">Import von gespeicherten Passwörtern bei der ersten Ausführung deaktivieren</translation> <translation id="388237772682176890">Da SPDY/3.1 nicht mehr unterstützt wird, wurde diese Richtlinie in M53 eingestellt und in M54 entfernt. @@ -3144,6 +3142,7 @@ <translation id="3990391739475801018">Der Energiesparmodus wird deaktiviert.</translation> <translation id="3994043824457743421">Information im mittleren Slot auf der Seite „Neuer Tab“ anzeigen</translation> <translation id="399433537808390819">Nutzern keinen Zugriff auf den Unified Desktop-Modus gewähren</translation> +<translation id="3995880046827722248">Manifest V2 ist deaktiviert</translation> <translation id="3996325823532867220">Diese Richtlinie wird nicht mehr unterstützt. Die zugehörige Richtlinie <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> wird jedoch möglicherweise auf bestimmten Plattformen unterstützt. Wenn diese Einstellung aktiviert ist, verifiziert <ph name="PRODUCT_NAME" /> Serverzertifikate anhand der integrierten Zertifikatsprüfung. @@ -3644,6 +3643,7 @@ Wenn die Richtlinie nicht konfiguriert ist, kann der Nutzer beliebige auf dem System installierte Plug-ins deaktivieren.</translation> <translation id="4549405078915181477">„Bildschirmzeit“ für Websites aktivieren</translation> +<translation id="4549695018986780856">Manifest V2 ist aktiviert</translation> <translation id="4554651132977135445">Loopback-Verarbeitungsmodus der Nutzerrichtlinien</translation> <translation id="4554991346503872538">Nie Übersetzung anbieten</translation> <translation id="4555850956567117258">Remote-Bescheinigung (Remote Attestation) für den Nutzer aktivieren</translation> @@ -3960,7 +3960,6 @@ Ist diese Richtlinie nicht konfiguriert (bis einschließlich Version M76), kann <ph name="PRODUCT_NAME" /> diese Protokolle standardmäßig weder erfassen noch hochladen. Ab Version M77 kann <ph name="PRODUCT_NAME" /> diese Protokolle standardmäßig von den meisten Profilen erfassen und hochladen, für die cloudbasierte Unternehmensrichtlinien auf Nutzerebene gelten. Ab Version M77 bis einschließlich M80 kann <ph name="PRODUCT_NAME" /> diese Protokolle außerdem standardmäßig von Profilen erfassen und hochladen, die mit <ph name="PRODUCT_NAME" /> lokal verwaltet werden.</translation> <translation id="4911334289324462969">Port 989 (Blockierung kann bis 01.02.2022 aufgehoben werden)</translation> -<translation id="4913065710388638917">Attestierungsablauf für eine Liste von URLs aktivieren</translation> <translation id="4917385247580444890">Stark</translation> <translation id="4918261735182294270">Nutzern die Wahl lassen, ob sie <ph name="CHROME_SYNC_NAME" /> aktivieren</translation> <translation id="491889618361437456"><ph name="GOOGLE_CALENDAR_NAME" />-Integration aktivieren</translation> @@ -4083,6 +4082,7 @@ <translation id="5025239932007658691">Wenn die Richtlinie aktiviert oder nicht konfiguriert ist, sendet <ph name="PRODUCT_NAME" /> gelegentlich Abfragen an einen Google-Server, um einen korrekten Zeitstempel abzurufen. Wird die Richtlinie deaktiviert, sendet <ph name="PRODUCT_NAME" /> solche Abfragen nicht mehr.</translation> +<translation id="5033070732967197381">WebAuthn-API-Anfragen auf Websites mit fehlerhaften TLS-Zertifikaten zulassen.</translation> <translation id="5034504101537897433">Melden von Informationen zu Absturzberichten auf Geräten aktivieren</translation> <translation id="5039110755072335605">Unterstützung für CORS-Anfrageheader ohne Platzhalter</translation> <translation id="504116558738617678">Warnungen bei wenig Speicherplatz nur anzeigen, wenn das Gerät nicht verwaltet wird oder es nur einen Nutzer gibt</translation> @@ -4970,6 +4970,17 @@ Wenn die Richtlinie auf „wahr“ gesetzt wird, können Websites WebAssembly-Module ohne Einschränkungen auch ursprungsübergreifend senden. Wird sie auf „falsch“ gesetzt oder nicht konfiguriert, können Websites WebAssembly-Module nur an Fenster und Worker im selben Ursprung senden.</translation> +<translation id="6005906773585863978">Mit dieser Richtlinie kannst du festlegen, ob vom Browser Manifest V2-Erweiterungen verwendet werden können. + +Die Unterstützung für Manifest V2-Erweiterungen wird eingestellt. Alle Erweiterungen müssen dann zur Version V3 migriert werden. Weitere Informationen und den Zeitplan für die Migration findest du unter https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Wenn die Richtlinie auf <ph name="DEFAULT" /> (0) gesetzt oder nicht konfiguriert ist, werden V2-Erweiterungen abhängig vom Browser und gemäß dem obigen Zeitplan geladen. +Ist die Richtlinie auf <ph name="DISABLE" /> (1) gesetzt, wird das Installieren von V2-Erweiterungen blockiert und vorhandene V2-Erweiterungen werden deaktiviert. Nachdem die V2-Unterstützung standardmäßig deaktiviert wurde, wirkt die Option so, als wäre die Richtlinie nicht konfiguriert. +Ist die Richtlinie auf <ph name="ENABLE" /> (2) gesetzt, sind V2-Erweiterungen zulässig. Bevor die V2-Unterstützung standardmäßig deaktiviert wird, wirkt die Option so, als wäre die Richtlinie nicht konfiguriert. +Wenn die Richtlinie auf <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3) gesetzt ist, sind V2-Erweiterungen mit erzwungener Installation zulässig. Dazu gehören Erweiterungen, die in <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> oder <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> mit <ph name="INSTALLATION_MODE" /> „force_installed“ oder „normal_installed“ aufgeführt sind. Alle anderen V2-Erweiterungen sind deaktiviert. Bevor die V2-Unterstützung standardmäßig deaktiviert wird, wirkt die Option so, als wäre die Richtlinie nicht konfiguriert. + + +Die Verfügbarkeit von Erweiterungen wird weiterhin über andere Richtlinien gesteuert.</translation> <translation id="6009062900206392980">Wenn du die Richtlinie auf "None" setzt, wird die Lupe auf dem Anmeldebildschirm deaktiviert. Wenn du diese Richtlinie konfigurierst, können Nutzer vorübergehend die Lupe aktivieren oder deaktivieren. Wenn der Anmeldebildschirm neu geladen wird oder eine Minute lang inaktiv bleibt, wird sie in den Originalzustand zurückversetzt. @@ -5542,6 +5553,7 @@ Hinweis: Automatische Neustarts können derzeit nur stattfinden, wenn der Anmeldebildschirm angezeigt wird oder eine Kiosk-App-Sitzung läuft.</translation> <translation id="6556586932263358975">Sperren des Bildschirms zulassen</translation> <translation id="6559057113164934677">Keine Website darf auf meine Kamera oder mein Mikrofon zugreifen</translation> +<translation id="65591220958874949">Integrierten DNS-Client für Windows, macOS, Android und ChromeOS verwenden</translation> <translation id="6559221564468029245">Wenn die Richtlinie aktiviert wird oder nicht konfiguriert ist, gilt der Nutzer während der Audiowiedergabe nicht als inaktiv. Dadurch wird verhindert, dass das Zeitlimit für die Inaktivität erreicht wird und entsprechende Aktionen ausgeführt werden. Der Bildschirm wird jedoch unabhängig von den Audioaktivitäten gemäß den konfigurierten Zeitlimits gedimmt, abgeschaltet und gesperrt. Wenn die Richtlinie deaktiviert ist, kann das System den Nutzer auch bei Audioaktivitäten als inaktiv ansehen.</translation> @@ -5629,6 +5641,7 @@ – Wenn die Richtlinie deaktiviert ist, müssen Administratoren Endnutzer dieses Geräts darüber informieren.</translation> <translation id="6609867253856597039">Nutzereinstellungen für deaktivierte Funktionen festlegen</translation> <translation id="6614557704487944013">Nutzern erlauben, <ph name="LACROS_NAME" /> zu verwenden</translation> +<translation id="661610294649586421">WebAuthn-API-Anfragen auf Websites mit fehlerhaften TLS-Zertifikaten nicht zulassen.</translation> <translation id="6617589895942747919">Beginn des Intervalls, inklusiv.</translation> <translation id="6621830999036927230">Wenn diese Richtlinie konfiguriert ist, verwendet der Host für den Remotezugriff diese URL zur Validierung von Authentifizierungstokens von Clients für den Remotezugriff, um Verbindungen zu akzeptieren. Diese Funktion ist deaktiviert, wenn sie leer oder nicht konfiguriert ist. @@ -5931,6 +5944,9 @@ <translation id="6907778402784621686">Unsichere Inhalte auf diesen Websites blockieren</translation> <translation id="6908640907898649429">Konfiguriert die Standardsuchmaschine. Du kannst festlegen, welche Suchmaschine als Standardsuchmaschine für die Nutzer verwendet werden soll, oder die Verwendung einer Standardsuchmaschine deaktivieren.</translation> <translation id="6913068954484253496"><ph name="PRODUCT_NAME" /> erlauben, eine Verbindung zu Übertragungsgeräten unter allen IP-Adressen herzustellen.</translation> +<translation id="6915493311660114995">Wenn die Richtlinie aktiviert ist, erlaubt <ph name="PRODUCT_NAME" /> Webauthentifizierungsanfragen auf Websites mit fehlerhaften TLS-Zertifikaten (d. h. Websites, die als nicht sicher eingestuft werden). + +Wenn die Richtlinie deaktiviert oder nicht konfiguriert ist, gilt das Standardverhalten zum Blockieren solcher Anfragen.</translation> <translation id="6919819553978815392">Wenn diese Richtlinie auf „wahr“ gesetzt oder nicht konfiguriert ist, sind Gastanmeldungen in <ph name="PRODUCT_NAME" /> und <ph name="LACROS_NAME" /> möglich. Gastanmeldungen sind <ph name="PRODUCT_NAME" />-Profile, bei denen alle Fenster im Inkognitomodus geöffnet werden. Ist die Richtlinie auf „falsch“ gesetzt, sind keine Gastanmeldungen in <ph name="PRODUCT_NAME" /> und <ph name="LACROS_NAME" /> möglich. @@ -6836,6 +6852,7 @@ <translation id="782661371433719637">Websites dürfen den Nutzer nicht um Lesezugriff auf Dateien und Verzeichnisse über die File System API bitten</translation> <translation id="7827127381981620448">Plattform-App</translation> <translation id="7829436838673974723">Zulassen, dass Seiten beim Schließen synchrone XHR-Anfragen senden</translation> +<translation id="782978857350824974">Webauthentifizierungsanfragen auf Websites mit fehlerhaften TLS-Zertifikaten zulassen.</translation> <translation id="7832225468415136704">Verhindern, dass das Chrome Cleanup Tool das System regelmäßig scannt, und manuelle Scans deaktivieren</translation> <translation id="7833148823006528332">Android-App-ID, z. B. „com.google.android.gm“ für Gmail.</translation> <translation id="7835218570504220753">Automatisches Klicken deaktivieren</translation> @@ -7278,17 +7295,6 @@ <translation id="8274603902181597201">ecryptfs-Basisverzeichnis des Nutzers löschen und durch ein neues ext4-verschlüsseltes Basisverzeichnis ersetzen.</translation> <translation id="8274926413890711289">Steuerelemente für detailliertes Reporting aktivieren</translation> <translation id="8278133379873210419">JavaScript-Dialogfelder unterdrücken, die von anderen Quell-Subframes ausgelöst wurden</translation> -<translation id="8279037559659894049">Aktiviere <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />, um eine Liste von URLs anzuzeigen. - - Wenn du diese Richtlinie konfigurierst, legst du damit fest, welche URLs für den Attestierungsablauf zugelassen sein sollen, um die Signalgruppe vom Computer abzurufen. - - Wenn du sie nicht konfigurierst oder leer lässt, bedeutet das, dass kein Endpunkt dazu in der Lage ist, den Attestierungsablauf zu starten oder Signale vom Computer abzurufen. - - Hinweis: Platzhalter (<ph name="WILDCARD_VALUE" />) sind zulässig. - - Bei Chrome OS bezieht sich diese Richtlinie auf die Remote-Attestierung, bei der automatisch ein Zertifikat generiert und auf den Geräteverwaltungsserver hochgeladen wird. - - Weitere Informationen zu gültigen <ph name="URL_LABEL" />-Mustern findest du unter https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Ursprungsübergreifende HTTP-Authentifizierungsaufforderungen</translation> <translation id="8284527236880877730">Wenn <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> deaktiviert ist, wird mit <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> der Prozentsatz angegeben, um den die Verzögerung für das Dimmen des Bildschirms skaliert wird, wenn sich das Gerät im Präsentationsmodus befindet. Wenn die Verzögerung für das Dimmen skaliert wird, werden die Verzögerung für die Abschaltung und Sperre des Bildschirms sowie die Inaktivität so angepasst, dass die Abstände der ursprünglichen Konfiguration proportional beibehalten werden.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index a83a88c..50269a8 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -207,6 +207,7 @@ Si se establece esta política como falsa, no aparecerá la casilla de verificación "Permitir siempre" y el usuario verá un mensaje de confirmación cada vez que se invoque un protocolo externo.</translation> <translation id="1181598794547737681">Habilitar la IU del cuadro de descarga</translation> +<translation id="1184562656144537588">Habilitar Manifest v2 solo para extensiones instaladas de manera automática</translation> <translation id="11903325225202653">Si estableces el valor "True" para la política, se activará el modo de contraste alto. Si estableces el valor "False", se desactivará el modo de contraste alto. Si configuras la política, los usuarios no podrán cambiarla. Si no la configuras, el modo de contraste alto estará desactivado, pero los usuarios podrán activarlo en cualquier momento.</translation> @@ -1523,6 +1524,7 @@ El valor de la política deberá especificarse en días.</translation> <translation id="2466131534462628618">La autenticación de portal cautivo ignora el proxy</translation> +<translation id="2467181864598429837">Comportamiento predeterminado del navegador</translation> <translation id="2467896267442150508">El intervalo de tiempo que se extiende como máximo una semana. Si la hora de inicio es más tarde que la hora de finalización, el intervalo continuará al día siguiente.</translation> <translation id="2476249479201711962">Habilitar el acceso al menú contextual del proveedor de búsqueda predeterminado</translation> <translation id="247658312644322296">El destino "Guardar como PDF"</translation> @@ -2679,6 +2681,7 @@ <translation id="3524204464536655762">No permitir que ningún sitio solicite acceso a dispositivos USB a través de la API de WebUSB</translation> <translation id="3526752951628474302">Solo impresión monocromática</translation> <translation id="3528000905991875314">Habilitar páginas de error alternativas</translation> +<translation id="3528681240373634003">Controlar la disponibilidad de la extensión de Manifest v2</translation> <translation id="3530249698314520116">Configura una lista de reglas para impedir la filtración de datos de <ph name="PRODUCT_OS_NAME" />. Se pueden filtrar datos cuando se copia y pega información, se transfieren archivos, se imprime contenido, se comparten pantallas, se realizan capturas de pantalla, etc. @@ -2870,17 +2873,6 @@ Si inhabilitas la política, no se solicitará a los usuarios una contraseña para desbloquear el dispositivo. Si no la estableces, los usuarios podrán elegir si reciben una solicitud de contraseña para desbloquear el dispositivo.</translation> -<translation id="3729689441404871493">Habilita <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para obtener una lista de URLs en la pantalla de acceso y de bloqueo. - - Si estableces esta política, se especificará qué URLs pueden formar parte del flujo de certificación para obtener el conjunto de señales de la máquina. - - Si dejas vacía esta política o no la estableces, ningún extremo podrá iniciar el flujo de certificación ni obtener señales de la máquina. - - Nota: Se permiten los comodines, <ph name="WILDCARD_VALUE" />. - - Esta política solo afectará el flujo de certificación en la pantalla de acceso y de bloqueo. Para cambiar el flujo de certificación dentro de la sesión, usa la política <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Para obtener información detallada sobre los patrones válidos de <ph name="URL_LABEL" />, consulta https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Esta política dejó de estar disponible en M70. En su lugar, utiliza <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> y <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Habilita la función Autocompletar de <ph name="PRODUCT_NAME" /> y permite que los usuarios completen automáticamente los formularios web con la información que se haya almacenado, como la dirección o información de la tarjeta de crédito. @@ -2946,7 +2938,6 @@ Nota: Para los dispositivos administrados con <ph name="MS_AD_NAME" />, esta política es compatible con la expansión de <ph name="MACHINE_NAME_VARIABLE" /> al nombre de la máquina de <ph name="MS_AD_NAME" /> o una substring de él. Por ejemplo, si el nombre de la máquina es <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> se reemplazará con los 4 caracteres a partir de la sexta posición, es decir, <ph name="MACHINE_NAME_PART_EXAMPLE" />. Esta posición incluye el cero.</translation> <translation id="377044054160169374">Intervención ante experiencias abusivas</translation> -<translation id="3777833753656885744">Habilitar el flujo de certificación para una lista de URLs en la pantalla de acceso y de bloqueo</translation> <translation id="3778689139323007309">Comprueba la revocación de los certificados del servidor validados correctamente y firmados por certificados de CA instalados de manera local</translation> <translation id="3780152581321609624">Incluir puerto no estándar en el SPN de Kerberos</translation> <translation id="378495749480642482">Determina si los sitios que visita el usuario pueden crear sesiones de realidad aumentada inmersiva mediante la <ph name="WEBXR_API_NAME" />. @@ -3055,6 +3046,13 @@ Si estableces la política en 2, se bloquearán los anuncios en sitios con anuncios intrusivos.</translation> <translation id="3877517141460819966">Modo de autenticación de dos factores integrado</translation> +<translation id="3877908683993837673">Esta política controla la pila de software que se utiliza para establecer la comunicación con el servidor DNS: el cliente DNS del sistema operativo o el cliente DNS integrado de <ph name="PRODUCT_NAME" />. Esta política no cambia los servidores DNS que se utilizan: si, por ejemplo, el sistema operativo está configurado para usar un servidor DNS empresarial, el cliente DNS integrado utilizará ese mismo servidor. Tampoco controla si se utiliza DNS-over-HTTPS; <ph name="PRODUCT_NAME" /> siempre utilizará el agente de resolución integrado para las solicitudes de DNS-over-HTTPS. Para obtener información sobre el control de este protocolo, consulta la política <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" />. + + Si habilitas esta política, se usará el cliente DNS integrado cuando esté disponible. + + Si la inhabilitas, el cliente DNS integrado solo se utilizará cuando esté en uso DNS-over-HTTPS. + + Si no la estableces, el cliente DNS integrado estará habilitado de forma predeterminada en <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> (cuando no estén habilitados el DNS privado ni la VPN) y <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3879208481373875102">Configura la lista de aplicaciones web instaladas de manera automática</translation> <translation id="3879700444818346084">Inhabilitar la importación de contraseñas guardadas en la primera ejecución</translation> <translation id="388237772682176890">Esta política ya no está disponible en M53 y se quitó en M54 porque se quitó la compatibilidad con SPDY/3.1. @@ -3156,6 +3154,7 @@ <translation id="3990391739475801018">Inhabilitar el modo de Ahorro de batería</translation> <translation id="3994043824457743421">Mostrar la notificación del espacio del medio en la página Nueva pestaña</translation> <translation id="399433537808390819">Hacer que el Modo de escritorio unificado no esté disponible para el usuario</translation> +<translation id="3995880046827722248">Inhabilitar Manifest v2</translation> <translation id="3996325823532867220">Ya no se admite esta política. Sin embargo, es posible que se admita la política relacionada <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> en determinadas plataformas. Si habilitas esta configuración, <ph name="PRODUCT_NAME" /> verificará los certificados de servidores mediante el verificador de certificados integrado. @@ -3677,6 +3676,7 @@ Si no se configura esta política, el usuario podrá inhabilitar cualquier complemento instalado en el sistema.</translation> <translation id="4549405078915181477">Activar el Tiempo de uso para sitios web</translation> +<translation id="4549695018986780856">Habilitar Manifest v2</translation> <translation id="4554651132977135445">Modo de procesamiento de bucle invertido de la política del usuario</translation> <translation id="4554991346503872538">Nunca ofrecer la traducción</translation> <translation id="4555850956567117258">Habilita la atestación remota para el usuario.</translation> @@ -4006,7 +4006,6 @@ Si no la estableces, hasta la versión M76 inclusive, <ph name="PRODUCT_NAME" /> no podrá recopilar ni subir esos registros de forma predeterminada. A partir de la versión M77, <ph name="PRODUCT_NAME" /> podrá, de forma predeterminada, recopilar y subir esos registros de la mayoría de los perfiles afectados por las políticas empresariales en la nube para los usuarios. En las versiones posteriores a M77 y hasta la M80 inclusive, <ph name="PRODUCT_NAME" /> también podrá recopilar y subir de forma predeterminada esos registros de los perfiles afectados por la administración local de <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">puerto 989 (puede desbloquearse hasta el 01/02/2022)</translation> -<translation id="4913065710388638917">Permite el flujo de certificación para una lista de URL</translation> <translation id="4917385247580444890">Fuerte</translation> <translation id="4918261735182294270">Permitir que los usuarios puedan habilitar <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Habilitar la integración de <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -5034,6 +5033,19 @@ Si estableces la política como verdadera, los sitios también podrán enviar módulos de WebAssembly entre orígenes cruzados sin restricciones. Si la estableces como falsa o no la estableces, los sitios solo podrán enviar módulos de WebAssembly a ventanas y trabajadores del mismo origen.</translation> +<translation id="6005906773585863978">Controla si el navegador puede usar extensiones de Manifest v2. + +La compatibilidad con extensiones de Manifest v2 dejará de estar disponible y todas las extensiones deberán +migrar a v3 en el futuro. Para obtener más información y el cronograma de +migración, consulta https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Si estableces la política como <ph name="DEFAULT" /> (0) o no la estableces, el navegador determinará las cargas de las extensiones de v2, de acuerdo con el cronograma que se indica más arriba. +Si estableces la política como <ph name="DISABLE" /> (1), se bloqueará la instalación de extensiones de v2 y se inhabilitarán las extensiones existentes. La opción se tratará de la misma manera que si no estableces la política después de que la compatibilidad con v2 se desactive de forma predeterminada. +Si estableces la política como <ph name="ENABLE" /> (2), se permitirán las extensiones de v2. La opción se tratará de la misma manera que si no estableces la política antes de que la compatibilidad con v2 se desactive de forma predeterminada. +Si estableces la política como <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), se permitirán las extensiones de v2 instaladas de manera automática. Esto incluye las extensiones que aparecen en la lista de <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> o de <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> con <ph name="INSTALLATION_MODE" /> "force_installed" o "normal_installed". Todas las demás extensiones de v2 están inhabilitadas. La opción se tratará de la misma manera que si no estableces la política antes de que la compatibilidad con v2 se desactive de forma predeterminada. + + +La disponibilidad de las extensiones aún se controla mediante otras políticas.</translation> <translation id="6009062900206392980">Si estableces la política con el valor "None", se desactivará la lupa en la pantalla de acceso. Si configuras la política, los usuarios podrán activar o desactivar la lupa de forma temporal. Cuando la pantalla de acceso se actualice o permanezca inactiva durante un minuto, la lupa se revertirá a su estado original. @@ -5621,6 +5633,7 @@ Nota: Por el momento, los reinicios automáticos solo están habilitados mientras se muestra la pantalla de acceso o una sesión de la app de kiosco está en curso.</translation> <translation id="6556586932263358975">Permitir el bloqueo de la pantalla</translation> <translation id="6559057113164934677">No permitir que ningún sitio acceda a la cámara ni al micrófono</translation> +<translation id="65591220958874949">Usar el cliente DNS integrado en Windows, macOS, Android y ChromeOS</translation> <translation id="6559221564468029245">Si habilitas la política o no la estableces, no se considerará que el usuario está inactivo cuando se esté reproduciendo audio. Esto evitará que se alcance el tiempo de espera de inactividad y se tome la medida de inactividad. Sin embargo, la pantalla aún se atenuará, apagará y bloqueará después de los tiempos de espera configurados, independientemente de la actividad del audio. Si inhabilitas la política, el sistema podrá considerar que el usuario está inactivo, independientemente de la actividad del audio.</translation> @@ -7367,17 +7380,6 @@ <translation id="8274603902181597201">Borra el directorio principal de eCryptfs del usuario y crea un nuevo directorio principal ext4 encriptado.</translation> <translation id="8274926413890711289">Habilitar los controles de informes detallados</translation> <translation id="8278133379873210419">Suprime los diálogos de JavaScript que se envían desde submarcos de otro origen</translation> -<translation id="8279037559659894049">Habilita <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para una lista de URLs. - - Si estableces esta política, se especificará qué URLs pueden formar parte del flujo de certificación para obtener el conjunto de señales de la máquina. - - Si dejas vacía esta política o no la estableces, ningún extremo podrá iniciar el flujo de certificación ni obtener señales de la máquina. - - Nota: Se permiten los comodines, <ph name="WILDCARD_VALUE" />. - - En ChromeOS, esta política está relacionada con la certificación remota donde se genera un certificado y se sube al servidor del Administrador de dispositivos de forma automática. - - Para obtener información detallada sobre los patrones válidos de <ph name="URL_LABEL" />, consulta https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Solicitudes de autenticación HTTP de origen cruzado</translation> <translation id="8284527236880877730">Si inhabilitas <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" />, la configuración <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> especificará el porcentaje en el que debe escalarse el tiempo de espera de atenuación de la pantalla cuando el dispositivo está en el modo de presentación. Cuando se escala el tiempo de espera de atenuación de la pantalla, se modifican el apagado de la pantalla, el bloqueo de pantalla y los tiempos de espera de inactividad a fin de mantener las mismas distancias con respecto al tiempo de espera para la atenuación de la pantalla según la configuración original.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb index 082f874..5aa65a8 100644 --- a/components/policy/resources/policy_templates_es.xtb +++ b/components/policy/resources/policy_templates_es.xtb
@@ -2871,17 +2871,6 @@ Si se inhabilita la política, no se solicitará a los usuarios una contraseña para desbloquear el dispositivo. Si no se establece esta política, el usuario podrá elegir si quiere que se le pida una contraseña para desbloquear el dispositivo.</translation> -<translation id="3729689441404871493">Habilita <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para una lista de URLs en las pantallas de inicio de sesión y de bloqueo. - - Si se establece esta política, se especificarán las URLs que podrán formar parte del flujo de atestación para obtener el conjunto de señales del equipo. - - Si no se establece esta política o se deja vacía, ningún punto final podrá iniciar el flujo de atestación ni obtener señales procedentes del equipo. - - Nota: Se permiten los comodines (<ph name="WILDCARD_VALUE" />). - - Esta política solo afectará al flujo de atestación de las pantallas de inicio de sesión y de bloqueo. Para cambiar el flujo de atestación de la sesión, usa la política <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Para obtener información detallada sobre los patrones válidos de <ph name="URL_LABEL" />, consulta https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Esta política está obsoleta en M70. Utiliza <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> y <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> en su lugar. Habilita la función Autocompletar de <ph name="PRODUCT_NAME" /> y permite que los usuarios rellenen formularios web automáticamente con información almacenada anteriormente, como una dirección o una tarjeta de crédito. @@ -2947,7 +2936,6 @@ Nota: En los dispositivos administrados de <ph name="MS_AD_NAME" />, esta política admite una expansión de <ph name="MACHINE_NAME_VARIABLE" /> al nombre de máquina de <ph name="MS_AD_NAME" /> o una subcadena de este. Por ejemplo, si el nombre del equipo es <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> se sustituye por 4 caracteres después de la sexta posición; es decir, <ph name="MACHINE_NAME_PART_EXAMPLE" />. La posición se basa en cero.</translation> <translation id="377044054160169374">Aplicar intervención de experiencia abusiva</translation> -<translation id="3777833753656885744">Habilitar el flujo de atestación de una lista de URLs en las pantallas de inicio de sesión y de bloqueo</translation> <translation id="3778689139323007309">Realizar comprobaciones de revocación de los certificados del servidor validados correctamente y firmados por certificados AC instalados localmente</translation> <translation id="3780152581321609624">Incluir un puerto no estándar en SPN de Kerberos</translation> <translation id="378495749480642482">Configura si los sitios a los que accede el usuario tienen permiso para crear sesiones de realidad aumentada inmersiva usando <ph name="WEBXR_API_NAME" />. @@ -3056,6 +3044,13 @@ Si asignas el valor "2" a esta política, se bloquearán los anuncios de sitios web con anuncios invasivos.</translation> <translation id="3877517141460819966">Modo de autenticación de dos factores integrado</translation> +<translation id="3877908683993837673">Esta política controla qué pila de software se usa para comunicarse con el servidor DNS: el cliente DNS del sistema operativo o el cliente DNS integrado de <ph name="PRODUCT_NAME" />. Esta política no afecta a qué servidores DNS se utilizan. Por ejemplo, si el sistema operativo está configurado para utilizar un servidor DNS de empresa, el cliente DNS integrado usará ese mismo servidor. Tampoco controla si se usará DNS‑over‑HTTPS; <ph name="PRODUCT_NAME" /> siempre utilizará la resolución integrada para solicitudes DNS‑over‑HTTPS. Consulta la política <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> para obtener información sobre los controles de DNS‑over‑HTTPS. + + Si se habilita esta política, se usará el cliente DNS integrado si está disponible. + + Si se inhabilita esta política, solo se usará el cliente DNS integrado cuando se esté utilizando DNS‑over‑HTTPS. + + Si no se define esta política, el cliente DNS integrado se habilitará de forma predeterminada en <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> (si no se ha habilitado un DNS privado ni una VPN) y <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3879208481373875102">Configurar lista de aplicaciones web de instalación forzada</translation> <translation id="3879700444818346084">Inhabilitar la importación de las contraseñas guardadas en la primera ejecución</translation> <translation id="388237772682176890">Esta política está obsoleta en M53 y se ha quitado de M54, ya que se ha retirado la compatibilidad con SPDY/3.1. @@ -3995,7 +3990,6 @@ Si no se establece esta política en las versiones hasta la M76 (incluida), <ph name="PRODUCT_NAME" /> no podrá recoger ni enviar esos registros de forma predeterminada. A partir de la versión M77, <ph name="PRODUCT_NAME" /> puede recoger y enviar esos registros de forma predeterminada de la mayoría de los perfiles afectados por políticas de empresa a nivel de usuario basadas en la nube. Desde la versión M77 hasta la M80 (incluida), <ph name="PRODUCT_NAME" /> también puede recoger y enviar esos registros de forma predeterminada de los perfiles afectados por la gestión on-premise de <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">puerto 989 (puede desbloquearse hasta el 01/02/2022)</translation> -<translation id="4913065710388638917">Habilitar el flujo de atestación de una lista de URLs</translation> <translation id="4917385247580444890">Buena</translation> <translation id="4918261735182294270">Permitir que los usuarios elijan si se habilita <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Habilitar integración con <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -4120,6 +4114,7 @@ <translation id="5025239932007658691">Si se habilita la política o no se establece, <ph name="PRODUCT_NAME" /> enviará consultas ocasionales a un servidor de Google para obtener una marca de tiempo precisa. Si se inhabilita la política, <ph name="PRODUCT_NAME" /> no podrá enviar esas consultas.</translation> +<translation id="5033070732967197381">Permitir solicitudes de la API WebAuthn en sitios con certificados TLS rotos.</translation> <translation id="5034504101537897433">Habilitar los datos de informes sobre fallos del dispositivo</translation> <translation id="5039110755072335605">Compatibilidad con encabezados de solicitud CORS sin comodín</translation> <translation id="504116558738617678">Solor mostrar advertencias de poco espacio en disco si el dispositivo no está gestionado o si únicamente hay 1 usuario</translation> @@ -5607,6 +5602,7 @@ Nota: Actualmente, los reinicios automáticos solo están habilitados mientras se muestra la pantalla de inicio de sesión o mientras haya una sesión de una aplicación de kiosco.</translation> <translation id="6556586932263358975">Permitir el bloqueo de la pantalla</translation> <translation id="6559057113164934677">No permitir que ningún sitio acceda a la cámara y al micrófono</translation> +<translation id="65591220958874949">Usar el cliente DNS integrado en Windows, macOS, Android y ChromeOS</translation> <translation id="6559221564468029245">Si se habilita la política o no se establece, no se considerará que el usuario está inactivo mientras se reproduzca audio. Esto impide que se alcance el tiempo de espera de inactividad y que se entre en modo de inactividad. Sin embargo, se llevarán a cabo la atenuación de pantalla, la desconexión de pantalla y el bloqueo de pantalla tras los tiempos de espera configurados, a pesar de la actividad del audio. Si se inhabilita la política, la actividad de audio no impedirá que se considere al usuario como inactivo.</translation> @@ -5694,6 +5690,7 @@ - Si se inhabilita esta política, los administradores deberán comunicárselo a los usuarios finales del dispositivo.</translation> <translation id="6609867253856597039">Establecer la experiencia de usuario de funciones inhabilitadas</translation> <translation id="6614557704487944013">Permitir que los usuarios utilicen el navegador <ph name="LACROS_NAME" /></translation> +<translation id="661610294649586421">No permitir solicitudes de la API WebAuthn en sitios con certificados TLS rotos.</translation> <translation id="6617589895942747919">Hora de inicio del intervalo, inclusiva.</translation> <translation id="6621830999036927230">Si se le asigna un valor a esta política, el host de acceso remoto utilizará esta URL para validar los tokens de autenticación de los clientes de acceso remoto y para aceptar las conexiones. Esta función está inhabilitada si está vacía o no se le asigna ningún valor. @@ -5996,6 +5993,9 @@ <translation id="6907778402784621686">Permite bloquear el contenido no seguro en estos sitios web</translation> <translation id="6908640907898649429">Permite configurar el proveedor de búsquedas predeterminadas. Puedes especificar el proveedor de búsquedas predeterminadas que utilizarán los usuarios o inhabilitar las búsquedas predeterminadas.</translation> <translation id="6913068954484253496">Permitir que <ph name="PRODUCT_NAME" /> se conecte a dispositivos de transmisión de todas las direcciones IP.</translation> +<translation id="6915493311660114995">Si se habilita esta política, <ph name="PRODUCT_NAME" /> permitirá las solicitudes de Web Authentication de los sitios web que tengan certificados TLS con errores (por ejemplo, sitios web que no se consideren seguros). + +Si se inhabilita esta política o no se define, se aplicará el comportamiento predeterminado de bloquear dichas solicitudes.</translation> <translation id="6919819553978815392">Si se le asigna el valor true a esta política o no se configura, <ph name="PRODUCT_NAME" /> y <ph name="LACROS_NAME" /> habilitarán los inicios de sesión como invitado. Los inicios de sesión como invitado son perfiles de <ph name="PRODUCT_NAME" /> en los que todas las ventanas están en modo Incógnito. Si se le asigna el valor false, <ph name="PRODUCT_NAME" /> y <ph name="LACROS_NAME" /> no permitirán que se inicien perfiles para invitados. @@ -6913,6 +6913,7 @@ <translation id="782661371433719637">No permitir que ningún sitio web solicite acceso de lectura a archivos y directorios a través de la API File System</translation> <translation id="7827127381981620448">Aplicación de una plataforma</translation> <translation id="7829436838673974723">Permitir que las páginas envíen solicitudes XHR síncronas durante el cierre de la página</translation> +<translation id="782978857350824974">Permitir solicitudes de Web Authentication en sitios con certificados TLS rotos.</translation> <translation id="7832225468415136704">Impedir que Limpiador de Chrome analice periódicamente el sistema e inhabilitar los análisis manuales</translation> <translation id="7833148823006528332">Identificador de la aplicación Android (por ejemplo, "com.google.android.gm" para Gmail)</translation> <translation id="7835218570504220753">Inhabilitar el clic automático</translation> @@ -7347,17 +7348,6 @@ <translation id="8274603902181597201">Borrar los eCryptfs del directorio principal del usuario y empezar con un nuevo directorio principal cifrado con ext4.</translation> <translation id="8274926413890711289">Habilitar los controles de informes granulares</translation> <translation id="8278133379873210419">Impedir que se activen cuadros de diálogo de JavaScript desde submarcos de origen diferente</translation> -<translation id="8279037559659894049">Habilita <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para una lista de URLs. - - Si se establece esta política, se especificarán las URLs que podrán formar parte del flujo de atestación para obtener un conjunto de señales del equipo. - - Si no se establece esta política o se deja vacía, ningún punto final podrá iniciar el flujo de atestación ni obtener señales procedentes del equipo. - - Nota: Se permiten los comodines (<ph name="WILDCARD_VALUE" />). - - En el caso de ChromeOS, esta política está relacionada con la atestación remota en la que un certificado se genera automáticamente y se sube al servidor de administración de dispositivos. - - Para obtener información detallada sobre los patrones válidos de <ph name="URL_LABEL" />, consulta https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Solicitudes de autenticación HTTP de origen cruzado</translation> <translation id="8284527236880877730">Si se inhabilita la política <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> y se establece <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" />, se especifica el porcentaje del retraso de atenuación de pantalla cuando el dispositivo esté en el modo de presentación. Si se ajusta el retraso de atenuación de pantalla, se ajustan los retrasos de apagado de pantalla, bloqueo de pantalla e inactividad para mantener las mismas distancias del retraso de atenuación de pantalla que tenía la configuración original.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 61e2240..e29e1083 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -2860,17 +2860,6 @@ Si cette règle est désactivée, l'utilisateur n'est pas invité à saisir de mot de passe pour déverrouiller l'appareil. Si cette règle n'est pas configurée, l'utilisateur peut choisir d'être invité ou non à saisir un mot de passe pour déverrouiller l'appareil.</translation> -<translation id="3729689441404871493">Activez <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> pour une liste d'URL sur l'écran de connexion et de verrouillage. - - Cette règle indique quelles URL doivent être autorisées à faire partie du parcours d'attestation visant à obtenir l'ensemble de signaux auprès de la machine. - - Si cette règle n'est pas configurée ou qu'elle est vide, aucun point de terminaison ne peut lancer le parcours d'attestation ni obtenir de signaux auprès de la machine. - - Remarque : les caractères génériques (<ph name="WILDCARD_VALUE" />) sont autorisés. - - Cette règle ne s'appliquera qu'au parcours d'attestation sur l'écran de connexion et de verrouillage. Pour modifier le flux d'attestation en cours de session, veuillez utiliser la règle <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Pour en savoir plus sur les formats <ph name="URL_LABEL" /> valides, veuillez consulter la page https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Cette règle a été abandonnée dans la version M70. Veuillez utiliser <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> et <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> à la place. Active la fonctionnalité de saisie automatique de <ph name="PRODUCT_NAME" />, qui permet aux utilisateurs de remplir automatiquement des formulaires Web à partir de données stockées précédemment, telles qu'une adresse et des infos de carte de crédit. @@ -2936,7 +2925,6 @@ Remarque : Pour les appareils gérés par <ph name="MS_AD_NAME" />, cette règle permet l'extension de <ph name="MACHINE_NAME_VARIABLE" /> sur le nom de machine <ph name="MS_AD_NAME" /> ou l'une de ses sous-chaînes. Par exemple, si le nom de machine est <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> est remplacé par les quatre caractères suivant la sixième position, soit <ph name="MACHINE_NAME_PART_EXAMPLE" />. La position prend en compte le zéro.</translation> <translation id="377044054160169374">Application de l'intervention en cas d'expérience abusive</translation> -<translation id="3777833753656885744">Activer le flux d'attestation pour une liste d'URL sur l'écran de connexion et de verrouillage</translation> <translation id="3778689139323007309">Procéder à des vérifications de la révocation des certificats de serveur qui sont validés et signés par des certificats CA installés localement</translation> <translation id="3780152581321609624">Inclure un port non standard dans le SPN Kerberos</translation> <translation id="378495749480642482">Définit si les sites auxquels l'utilisateur accède sont autorisés à créer des sessions de réalité augmentée immersive avec <ph name="WEBXR_API_NAME" />. @@ -3971,7 +3959,6 @@ Sur <ph name="PRODUCT_NAME" /> version M76 ou inférieure, si la règle n'est pas définie, l'application ne peut, par défaut, ni collecter, ni importer ces journaux. À partir de la version M77, <ph name="PRODUCT_NAME" /> est, par défaut, en mesure de collecter et d'importer ces journaux à partir de la plupart des profils affectés par les règles d'entreprise au niveau de l'utilisateur dans le cloud. De la version M77 à la version M80, <ph name="PRODUCT_NAME" /> peut également, par défaut, collecter et importer ces journaux à partir des profils affectés par la fonction de gestion sur site de <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">port 989 (peut être débloqué jusqu'au 01/02/2022)</translation> -<translation id="4913065710388638917">Activer le flux d'attestation pour une liste d'URL</translation> <translation id="4917385247580444890">Très bon</translation> <translation id="4918261735182294270">Laisser aux utilisateurs le choix d'activer ou de désactiver <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Activer l'intégration de <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -4092,6 +4079,7 @@ <translation id="5025239932007658691">Si cette règle est activée ou qu'elle n'est pas configurée, <ph name="PRODUCT_NAME" /> envoie des requêtes occasionnelles à un serveur Google pour récupérer un horodatage précis. Si cette règle est désactivée, <ph name="PRODUCT_NAME" /> cesse d'envoyer ces requêtes.</translation> +<translation id="5033070732967197381">Autoriser les requêtes API WebAuthn sur les sites avec des certificats TLS non fonctionnels.</translation> <translation id="5034504101537897433">Activer les rapports d'erreur de l'appareil</translation> <translation id="5039110755072335605">Prise en charge des en-têtes de requêtes CORS sans caractères génériques</translation> <translation id="504116558738617678">N'afficher des avertissements de type "espace disque insuffisant" que si l'appareil n'est pas géré ou s'il n'a qu'un seul utilisateur</translation> @@ -5649,6 +5637,7 @@ - Si cette règle est désactivée, les administrateurs doivent le signaler aux utilisateurs finaux de l'appareil.</translation> <translation id="6609867253856597039">Définir l'expérience utilisateur pour les fonctionnalités désactivées</translation> <translation id="6614557704487944013">Autoriser les utilisateurs à se servir du navigateur <ph name="LACROS_NAME" /></translation> +<translation id="661610294649586421">Ne pas autoriser les requêtes API WebAuthn sur les sites avec des certificats TLS non fonctionnels.</translation> <translation id="6617589895942747919">Heure de début de l'intervalle (incluse).</translation> <translation id="6621830999036927230">Si cette règle est configurée, l'hôte d'accès à distance utilise cette URL pour valider les jetons d'authentification provenant des clients d'accès à distance afin d'accepter les connexions. Si cette règle est définie sur une chaîne vide ou qu'elle n'est pas configurée, elle est désactivée. @@ -5951,6 +5940,9 @@ <translation id="6907778402784621686">Bloquer le contenu non sécurisé sur ces sites</translation> <translation id="6908640907898649429">Configure le moteur de recherche par défaut. Vous pouvez définir le moteur de recherche par défaut dont se servira l'utilisateur ou choisir de désactiver le moteur de recherche par défaut.</translation> <translation id="6913068954484253496">Autoriser <ph name="PRODUCT_NAME" /> à se connecter aux appareils Cast sur toutes les adresses IP.</translation> +<translation id="6915493311660114995">Si cette règle est activée, <ph name="PRODUCT_NAME" /> autorise les requêtes d'authentification Web sur les sites dont les certificats TLS comportent des erreurs (c'est-à-dire les sites Web considérés comme non sécurisés). + +Si la règle est désactivée ou n'est pas configurée, le comportement par défaut s'applique et ces requêtes sont bloquées.</translation> <translation id="6919819553978815392">Si cette règle est définie sur "true" ou si elle n'est pas configurée, <ph name="PRODUCT_NAME" /> et <ph name="LACROS_NAME" /> autorisent les connexions en mode Invité. Les connexions en mode Invité sont des profils <ph name="PRODUCT_NAME" /> où toutes les fenêtres s'ouvrent en mode navigation privée. Si elle est définie sur "false", <ph name="PRODUCT_NAME" /> et <ph name="LACROS_NAME" /> n'autorisent pas l'utilisation de profils Invité. @@ -6863,6 +6855,7 @@ <translation id="782661371433719637">Interdire à tous les sites de demander l'accès en lecture aux fichiers et répertoires via l'API File System</translation> <translation id="7827127381981620448">Application de plate-forme</translation> <translation id="7829436838673974723">Autoriser les pages à envoyer des requêtes XHR synchrones pendant leur fermeture</translation> +<translation id="782978857350824974">Autoriser les requêtes d'authentification Web sur les sites avec des certificats TLS non fonctionnels.</translation> <translation id="7832225468415136704">Empêcher Chrome Cleanup d'analyser périodiquement le système, et désactiver les analyses manuelles</translation> <translation id="7833148823006528332">Identifiant d'appli Android (par ex. : "com.google.android.gm" pour Gmail)</translation> <translation id="7835218570504220753">Désactiver les clics automatiques</translation> @@ -7257,6 +7250,7 @@ <translation id="8250048892729838843">Cette règle est obsolète. Si cette règle est activée ou qu'elle n'est pas configurée, l'appareil peut recevoir des contrôles de rapports précis. Si cette règle est désactivée, les appareils enregistrés ne reçoivent pas de contrôles de rapports précis.</translation> <translation id="82530263956734297">Identifiants d'extension à exclure de la liste de blocage</translation> +<translation id="8256006033157034334">Cette règle est obsolète et incompatible, veuillez utiliser la règle <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME_POLICY_NAME" /> à la place.</translation> <translation id="8256688113167012935">Définit quel nom de compte s'affiche sur l'écran de connexion de <ph name="PRODUCT_OS_NAME" /> pour le compte local de l'appareil correspondant. Si cette règle est définie, l'écran de connexion affiche la chaîne spécifiée dans le sélecteur de comptes reposant sur les images, pour le compte local de l'appareil correspondant. @@ -7296,17 +7290,6 @@ <translation id="8274603902181597201">Nettoyer le répertoire d'accueil eCryptfs de l'utilisateur et employer un nouveau répertoire d'accueil chiffré avec ext4.</translation> <translation id="8274926413890711289">Activer les contrôles de rapports précis</translation> <translation id="8278133379873210419">Supprimer les boîtes de dialogue JavaScript déclenchées depuis des sous-frames d'une autre origine</translation> -<translation id="8279037559659894049">Activer <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> pour une liste d'URL. - - Cette règle indique quelles URL doivent être autorisées à faire partie du parcours d'attestation visant à obtenir l'ensemble de signaux auprès de la machine. - - Si cette règle n'est pas configurée ou qu'elle est vide, aucun point de terminaison ne peut lancer le parcours d'attestation ni obtenir de signaux auprès de la machine. - - Remarque : les caractères génériques (<ph name="WILDCARD_VALUE" />) sont autorisés. - - Pour ChromeOS, cette règle est liée à l'attestation à distance où un certificat est automatiquement généré et importé sur le serveur de gestion des appareils. - - Pour en savoir plus sur les formats <ph name="URL_LABEL" /> valides, veuillez consulter la page https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Commandes d'authentification HTTP multi-domaines</translation> <translation id="8284527236880877730">Si la règle <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> est désactivée, la règle <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> permet de définir le pourcentage de scaling du délai d'assombrissement lorsque l'appareil effectue la présentation. Le scaling de ce délai décale d'autant le moment où l'écran doit s'éteindre, se verrouiller et se mettre en veille, ceci afin de maintenir l'intervalle initialement configuré.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 767219bb..19793fd 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -207,6 +207,7 @@ Jika kebijakan ini ditetapkan ke Salah, kotak centang "Selalu izinkan" tidak akan ditampilkan dan pengguna akan diminta untuk mengonfirmasi setiap kali protokol eksternal dipanggil.</translation> <translation id="1181598794547737681">Aktifkan UI balon download</translation> +<translation id="1184562656144537588">Manifes v2 hanya diaktifkan untuk ekstensi yang diinstal otomatis</translation> <translation id="11903325225202653">Jika kebijakan ditetapkan ke Benar (True), Mode kontras tinggi akan tetap diaktifkan. Jika kebijakan ditetapkan ke Salah (False), Mode kontras tinggi akan tetap dinonaktifkan. Jika kebijakan ditetapkan, pengguna tidak dapat mengubahnya. Jika tidak ditetapkan, Mode kontras tinggi akan dinonaktifkan, tetapi pengguna dapat mengaktifkannya kapan saja.</translation> @@ -1524,6 +1525,7 @@ Nilai kebijakan harus ditentukan dalam hari.</translation> <translation id="2466131534462628618">Autentikasi portal tawanan mengabaikan proxy</translation> +<translation id="2467181864598429837">Perilaku browser default</translation> <translation id="2467896267442150508">Interval waktu paling lama satu minggu. Jika waktu mulai melebihi waktu berakhir, maka intervalnya akan berakhir di hari berikutnya.</translation> <translation id="2476249479201711962">Aktifkan akses ke menu konteks penyedia penelusuran default</translation> <translation id="247658312644322296">Tujuan 'Simpan sebagai PDF'</translation> @@ -2685,6 +2687,7 @@ <translation id="3524204464536655762">Jangan izinkan situs apa pun meminta akses ke perangkat USB melalui WebUSB API</translation> <translation id="3526752951628474302">Khusus pencetakan monokrom</translation> <translation id="3528000905991875314">Mengaktifkan halaman kesalahan alternatif</translation> +<translation id="3528681240373634003">Mengontrol ketersediaan ekstensi manifes v2.</translation> <translation id="3530249698314520116">Mengonfigurasi daftar aturan untuk mencegah kebocoran data di <ph name="PRODUCT_OS_NAME" />. Kebocoran data dapat terjadi dengan menyalin dan menempelkan data, mentransfer file, mencetak, berbagi layar, atau mengambil screenshot ...dll. @@ -2876,17 +2879,6 @@ Jika kebijakan disetel ke Nonaktif, pengguna tidak akan dimintai sandi untuk membuka kunci perangkat. Jika kebijakan tidak disetel, pengguna dapat memilih apakah akan dimintai sandi untuk membuka kunci perangkat.</translation> -<translation id="3729689441404871493">Mengaktifkan <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> untuk daftar URL di layar login dan layar kunci. - - Menyetel kebijakan ini akan menentukan URL mana yang akan diizinkan menjadi bagian dari alur pengesahan untuk mendapatkan serangkaian sinyal dari perangkat. - - Jika kebijakan ini disetel ke kosong atau tidak disetel, tidak ada endpoint yang akan dapat memulai alur pengesahan atau memperoleh sinyal dari perangkat. - - Catatan: Karakter pengganti, <ph name="WILDCARD_VALUE" />, diizinkan. - - Kebijakan ini hanya akan memengaruhi alur pengesahan di layar login dan layar kunci. Untuk mengubah alur pengesahan dalam sesi, gunakan kebijakan <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Kebijakan ini tidak digunakan lagi di M70. Sebagai gantinya, gunakan <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> dan <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Mengaktifkan fitur Isi Otomatis <ph name="PRODUCT_NAME" /> dan mengizinkan pengguna untuk melengkapi formulir web secara otomatis menggunakan informasi yang tersimpan sebelumnya, seperti alamat atau informasi kartu kredit. @@ -2953,7 +2945,6 @@ Catatan: Untuk perangkat yang dikelola oleh <ph name="MS_AD_NAME" />, kebijakan ini mendukung ekspansi <ph name="MACHINE_NAME_VARIABLE" /> ke nama mesin <ph name="MS_AD_NAME" /> atau substring darinya. Misalnya, jika nama mesin adalah <ph name="MACHINE_NAME_EXAMPLE" />, lalu <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> digantikan oleh 4 karakter yang dimulai setelah posisi ke-6, dengan kata lain, <ph name="MACHINE_NAME_PART_EXAMPLE" />. Posisi dimulai dari nol.</translation> <translation id="377044054160169374">Penerapan Pencegahan Pengalaman yang Menyinggung</translation> -<translation id="3777833753656885744">Mengaktifkan alur pengesahan untuk daftar URL pada layar login dan layar kunci</translation> <translation id="3778689139323007309">Lakukan pemeriksaan pembatalan sertifikat server yang berhasil divalidasi yang ditandatangani oleh sertifikat CA yang diinstal secara lokal</translation> <translation id="3780152581321609624">Sertakan port non-standar di SPN Kerberos</translation> <translation id="378495749480642482">Mengonfigurasi apakah situs yang dibuka pengguna akan diizinkan untuk membuat sesi Augmented Reality yang imersif menggunakan <ph name="WEBXR_API_NAME" />. @@ -3062,6 +3053,13 @@ Jika kebijakan disetel ke 2, iklan akan diblokir di situs yang menayangkan iklan mengganggu.</translation> <translation id="3877517141460819966">Mode autentikasi faktor kedua yang terintegrasi</translation> +<translation id="3877908683993837673">Kebijakan ini mengontrol stack software yang digunakan untuk berkomunikasi dengan server DNS: klien DNS Sistem Operasi, atau klien DNS bawaan dari <ph name="PRODUCT_NAME" />. Kebijakan ini tidak memengaruhi server DNS mana yang digunakan: misalnya, jika sistem operasi dikonfigurasi untuk menggunakan server DNS perusahaan, server yang sama tersebut akan digunakan oleh klien DNS bawaan. Kebijakan ini juga tidak akan mengontrol jika DNS-over-HTTPS digunakan; <ph name="PRODUCT_NAME" /> akan selalu menggunakan resolver bawaan untuk permintaan DNS-over-HTTPS. Lihat kebijakan <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> untuk mengetahui informasi mengenai pengontrolan DNS-over-HTTPS. + + Jika kebijakan ini disetel ke Aktif, klien DNS bawaan akan digunakan, jika tersedia. + + Jika kebijakan ini disetel ke Nonaktif, klien DNS bawaan hanya akan digunakan jika DNS-over-HTTPS sedang digunakan. + + Jika kebijakan ini tidak disetel, klien DNS bawaan akan diaktifkan secara default di <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> (jika DNS Pribadi atau VPN tidak diaktifkan), dan <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3879208481373875102">Konfigurasi daftar Aplikasi Web yang diinstal otomatis</translation> <translation id="3879700444818346084">Nonaktifkan impor sandi tersimpan saat browser pertama kali dijalankan</translation> <translation id="388237772682176890">Kebijakan ini sudah tidak digunakan di M53 dan dihapus di M54, karena dukungan SPDY/3.1 telah dihapus. @@ -3163,6 +3161,7 @@ <translation id="3990391739475801018">Mode Penghemat Baterai akan dinonaktifkan.</translation> <translation id="3994043824457743421">Menampilkan pengumuman slot tengah di Halaman Tab Baru</translation> <translation id="399433537808390819">Jangan menyediakan Mode Desktop Terpadu untuk pengguna</translation> +<translation id="3995880046827722248">Manifes v2 dinonaktifkan</translation> <translation id="3996325823532867220">Kebijakan ini tidak lagi didukung, tetapi kebijakan terkait, <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />, mungkin didukung di platform tertentu. Jika setelan ini diaktifkan, <ph name="PRODUCT_NAME" /> akan menjalankan verifikasi sertifikat server menggunakan pemverifikasi sertifikat bawaan. @@ -3684,6 +3683,7 @@ Jika kebijakan ini tidak ditetapkan, pengguna dapat menonaktifkan plugin apa pun yang diinstal pada sistem.</translation> <translation id="4549405078915181477">Aktifkan Waktu Pemakaian Perangkat untuk situs</translation> +<translation id="4549695018986780856">Manifes v2 diaktifkan</translation> <translation id="4554651132977135445">Mode pemrosesan loopback kebijakan pengguna</translation> <translation id="4554991346503872538">Jangan pernah tawarkan terjemahan</translation> <translation id="4555850956567117258">Mengaktifkan pengesahan jarak jauh bagi pengguna</translation> @@ -4020,7 +4020,6 @@ Jika kebijakan pada versi hingga dan termasuk M76 tidak disetel, berarti default <ph name="PRODUCT_NAME" /> tidak dapat mengumpulkan atau mengupload log tersebut. Mulai versi M77, default <ph name="PRODUCT_NAME" /> akan dapat mengumpulkan dan mengupload log tersebut dari sebagian besar profil yang terdampak oleh kebijakan perusahaan tingkat pengguna berbasis cloud. Mulai versi M77 hingga dan termasuk M80, <ph name="PRODUCT_NAME" /> juga dapat mengumpulkan dan mengupload log secara default dari profil yang terdampak oleh manajemen lokal <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">port 989 (blokir dapat dibatalkan hingga 01/02/2022)</translation> -<translation id="4913065710388638917">Mengaktifkan alur pengesahan untuk daftar URL</translation> <translation id="4917385247580444890">Kuat</translation> <translation id="4918261735182294270">Izinkan pengguna memilih apakah akan mengaktifkan <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Mengaktifkan Integrasi <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -5046,6 +5045,19 @@ Jika disetel ke Benar (True), situs dapat mengirim modul WebAssembly serta lintas asal tanpa batasan. Jika disetel ke Salah (False) atau tidak disetel, situs hanya dapat mengirim modul WebAssembly ke jendela dan pekerja di asal yang sama.</translation> +<translation id="6005906773585863978">Mengontrol apakah ekstensi manifes v2 dapat digunakan oleh browser. + +Dukungan ekstensi manifes v2 tidak akan digunakan lagi dan semua ekstensi perlu +dimigrasikan ke v3 di masa mendatang. Informasi selengkapnya dan linimasa migrasi +dapat ditemukan di https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Jika kebijakan disetel ke <ph name="DEFAULT" /> (0) atau tidak disetel, pemuatan ekstensi v2 akan ditentukan oleh browser, mengikuti linimasa di atas. +Jika kebijakan disetel ke <ph name="DISABLE" /> (1), penginstalan ekstensi v2 akan diblokir dan ekstensi yang ada akan dinonaktifkan. Opsi ini akan diperlakukan sama seperti jika kebijakan tidak disetel setelah dukungan v2 dinonaktifkan secara default. +Jika kebijakan disetel ke <ph name="ENABLE" /> (2), ekstensi v2 akan diizinkan. Opsi ini akan diperlakukan sama seperti jika kebijakan tidak disetel sebelum dukungan v2 dinonaktifkan secara default. +Jika kebijakan disetel ke <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), ekstensi v2 yang diinstal otomatis akan diizinkan. Ini termasuk ekstensi yang dicantumkan oleh <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> atau <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> dengan <ph name="INSTALLATION_MODE" /> "force_installed" atau "normal_installed". Semua ekstensi v2 lainnya akan dinonaktifkan. Opsi ini akan diperlakukan sama seperti jika kebijakan tidak disetel sebelum dukungan v2 dinonaktifkan secara default. + + +Ketersediaan ekstensi masih dikontrol oleh kebijakan lainnya.</translation> <translation id="6009062900206392980">Menetapkan kebijakan ke Tidak Ada (None) akan menonaktifkan fitur pembesaran layar di layar login. Jika kebijakan ditetapkan, pengguna dapat mengaktifkan atau menonaktifkan Kaca Pembesar Layar untuk sementara. Saat dimuat ulang atau tidak ada aktivitas selama satu menit, layar login akan kembali ke keadaan semula. @@ -5633,6 +5645,7 @@ Catatan: Saat ini, mulai ulang otomatis hanya diaktifkan ketika layar login ditampilkan atau sesi aplikasi kios sedang berlangsung.</translation> <translation id="6556586932263358975">Izinkan penguncian layar</translation> <translation id="6559057113164934677">Jangan izinkan situs apa pun mengakses kamera dan mikrofon</translation> +<translation id="65591220958874949">Gunakan klien DNS bawaan di Windows, macOS, Android, dan Chrome OS</translation> <translation id="6559221564468029245">Jika kebijakan disetel ke Aktif atau tidak disetel, pengguna tidak akan dianggap tidak ada aktivitas saat audio diputar. Hal ini mencegah tercapainya waktu tunggu tidak ada aktivitas dan mencegah diambilnya tindakan tidak ada aktivitas. Namun, peredupan layar, penonaktifan layar, dan penguncian layar akan tetap terjadi setelah waktu tunggu yang dikonfigurasi tercapai, meski terdapat aktivitas audio. Jika kebijakan disetel ke Nonaktif, sistem akan dapat menganggap pengguna tidak ada aktivitas meski terdapat aktivitas audio.</translation> @@ -7371,17 +7384,6 @@ <translation id="8274603902181597201">Menghapus total direktori beranda ecryptfs pengguna dan memulai direktori beranda yang dienkripsi ext4.</translation> <translation id="8274926413890711289">Mengaktifkan kontrol pelaporan terperinci</translation> <translation id="8278133379873210419">Menyembunyikan Dialog JavaScript yang dipicu dari subframe asal yang berbeda</translation> -<translation id="8279037559659894049">Mengaktifkan <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> untuk daftar URL. - - Menyetel kebijakan ini akan menentukan URL mana yang akan diizinkan menjadi bagian dari alur pengesahan untuk mendapatkan serangkaian sinyal dari perangkat. - - Jika kebijakan ini disetel ke kosong atau tidak disetel, tidak ada endpoint yang akan dapat memulai alur pengesahan atau memperoleh sinyal dari perangkat. - - Catatan: Karakter pengganti, <ph name="WILDCARD_VALUE" />, diizinkan. - - Untuk ChromeOS, kebijakan ini berhubungan dengan pengesahan jarak jauh dengan sertifikat yang otomatis dibuat dan diupload ke Server Pengelolaan Perangkat. - - Untuk informasi selengkapnya tentang pola <ph name="URL_LABEL" /> yang valid, lihat https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Permintaan Autentikasi HTTP lintas asal</translation> <translation id="8284527236880877730">Jika <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> Dinonaktifkan, menyetel <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> akan menentukan persentase yang menskalakan penundaan peredupan layar saat perangkat dalam mode presentasi. Jika penundaan peredupan layar diskalakan, penundaan penonaktifan layar, penguncian layar, dan tidak ada aktivitas akan disesuaikan untuk mempertahankan jarak waktu yang sama dari penundaan peredupan layar seperti yang disetel sebelumnya.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index f8ea302..8275fd4 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -2831,17 +2831,6 @@ Se il criterio viene impostato su Disabled, agli utenti non viene richiesta la password per sbloccare il dispositivo. Se non viene configurato, gli utenti possono scegliere se devono inserire una password o meno per sbloccare il dispositivo.</translation> -<translation id="3729689441404871493">Consente di attivare <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> per un elenco di URL nella schermata di accesso e di blocco. - - La configurazione di questo criterio consente di specificare gli URL autorizzati a far parte del flusso di attestazione per ricevere l'insieme di segnali dalla macchina. - - Se questo criterio non viene impostato o se viene lasciato vuoto, nessun endpoint potrà avviare il flusso di attestazione o ricevere segnali dalla macchina. - - Nota: i caratteri jolly, <ph name="WILDCARD_VALUE" />, sono consentiti. - - Questo criterio inciderà soltanto sul flusso di attestazione nella schermata di accesso e di blocco. Per modificare il flusso di attestazione all'interno della sessione, utilizza il criterio <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Per informazioni dettagliate sui pattern <ph name="URL_LABEL" /> validi, visita la pagina https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Questo criterio è stata deprecato in M70, utilizza invece <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> e <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Consente di attivare la funzionalità di compilazione automatica di <ph name="PRODUCT_NAME" /> e permette agli utenti di compilare automaticamente i moduli web utilizzando informazioni memorizzate in precedenza, come l'indirizzo o i dati della carta di credito. @@ -2907,7 +2896,6 @@ Nota: per i dispositivi <ph name="MS_AD_NAME" /> gestiti, questo criterio supporta l'espansione di <ph name="MACHINE_NAME_VARIABLE" /> al nome della macchina <ph name="MS_AD_NAME" /> oppure a una sua sottostringa. Ad esempio, se il nome della macchina è <ph name="MACHINE_NAME_EXAMPLE" />, la variabile <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> viene sostituita dai quattro caratteri che iniziano dopo la sesta posizione, ad esempio <ph name="MACHINE_NAME_PART_EXAMPLE" />. La posizione è in base zero.</translation> <translation id="377044054160169374">Applicazione dell'intervento in caso di esperienza intrusiva</translation> -<translation id="3777833753656885744">Attiva il flusso di attestazione per un elenco di URL nella schermata di accesso e di blocco</translation> <translation id="3778689139323007309">Esegui i controlli delle revoche per i certificati dei server che vengono convalidati correttamente e firmati tramite certificati CA installati localmente</translation> <translation id="3780152581321609624">Includi porta non standard in Kerberos SPN</translation> <translation id="378495749480642482">Consente di stabilire se i siti visitati dagli utenti possono creare sessioni di realtà aumentata immersive usando <ph name="WEBXR_API_NAME" />. @@ -3951,7 +3939,6 @@ Se il criterio non viene impostato su versioni fino alla M76 inclusa, per impostazione predefinita <ph name="PRODUCT_NAME" /> non può raccogliere e caricare questi log. A partire dalla versione M77, per impostazione predefinita <ph name="PRODUCT_NAME" /> può raccogliere e caricare questi log dalla maggior parte dei profili interessati dai criteri aziendali a livello di utente basati su cloud. Dalla versione M77 fino alla M80 inclusa, <ph name="PRODUCT_NAME" /> può anche raccogliere e caricare questi log per impostazione predefinita dai profili soggetti alla gestione on-premise di <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">porta 989 (può essere sbloccata fino al 01/02/2022)</translation> -<translation id="4913065710388638917">Attiva flusso di attestazione per un elenco di URL</translation> <translation id="4917385247580444890">Forte</translation> <translation id="4918261735182294270">Consenti agli utenti di scegliere se attivare <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Attiva integrazione di <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -5693,6 +5680,13 @@ Se questo criterio viene impostato su False, viene applicata la visualizzazione dell'URL predefinita. Se questo criterio non viene configurato, viene applicata la visualizzazione dell'URL predefinita e l'utente può passare dalla visualizzazione predefinita all'URL completo e viceversa tramite un menu contestuale. </translation> +<translation id="6670716303606644752">Come descritto alla pagina https://www.chromestatus.com/feature/5148698084376576, le finestre di dialogo modali JavaScript, attivate da <ph name="JS_ALERT" />, <ph name="JS_CONFIRM" /> e <ph name="JS_PROMPT" />, saranno bloccate in <ph name="PRODUCT_NAME" /> se attivate da un frame secondario la cui origine è diversa da quella del frame principale. + +Il criterio consente di eseguire l'override di questa modifica. +Se il criterio viene attivato o se non viene configurato, le finestre di dialogo JavaScript attivate da un frame secondario di origine diversa verranno bloccate. +Se il criterio viene disattivato, le finestre di dialogo JavaScript attivate da un frame secondario di origine diversa non verranno bloccate. + +Il criterio verrà rimosso da <ph name="PRODUCT_NAME" /> in futuro.</translation> <translation id="6670794785040100077">Disattiva l'invio di documenti a <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6672070613706645316">Consenti agli utenti di personalizzare lo sfondo della pagina Nuova scheda</translation> <translation id="6672630473862787247">Attiva l'autenticazione ambientale nelle sessioni standard, Ospite e in modalità in incognito.</translation> @@ -7272,17 +7266,6 @@ <translation id="8274603902181597201">Cancella la home directory ecryptfs dell'utente e inizia con una nuova home directory criptata tramite ext4</translation> <translation id="8274926413890711289">Attiva i controlli di reporting granulare</translation> <translation id="8278133379873210419">Elimina le finestre di dialogo JavaScript attivate da frame secondari di origine diversa</translation> -<translation id="8279037559659894049">Consente di attivare <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> per un elenco di URL. - - La configurazione di questo criterio consente di specificare gli URL autorizzati a far parte del flusso di attestazione per ricevere l'insieme di segnali dalla macchina. - - Se questo criterio non viene impostato o se viene lasciato vuoto, nessun endpoint potrà avviare il flusso di attestazione o ricevere segnali dalla macchina. - - Nota: i caratteri jolly, <ph name="WILDCARD_VALUE" />, sono consentiti. - - Per ChromeOS, questo criterio riguarda l'attestazione da remoto, durante la quale un certificato viene generato e caricato automaticamente sul Server di gestione del dispositivo. - - Per informazioni dettagliate sui pattern <ph name="URL_LABEL" /> validi, visita la pagina https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Prompt di autenticazione HTTP multiorigine</translation> <translation id="8284527236880877730">Se il criterio <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> è impostato su Disattivato, la configurazione del criterio <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> consente di specificare la percentuale di regolazione del ritardo di oscuramento dello schermo quando il dispositivo è in modalità di presentazione. Quando il ritardo di oscuramento dello schermo viene regolato, i ritardi di spegnimento, blocco e inattività dello schermo vengono regolati per mantenere gli stessi distacchi dal ritardo di oscuramento dello schermo impostato in origine.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 59ab63ed..305a1f5 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -2708,17 +2708,6 @@ このポリシーを無効に設定すると、デバイスのロック解除時にパスワードの入力をユーザーに要求しません。 このポリシーを未設定のままにすると、ユーザーはデバイスのロック解除時にパスワードの入力を要求するかどうかを選択できます。</translation> -<translation id="3729689441404871493">ログイン画面とロック画面で <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> を有効にする URL のリストを指定します。 - - このポリシーでは、パソコンから一連のシグナルを受け取る認証フローに含める URL を指定できます。 - - このポリシーを未設定のままにするか空白にした場合は、どのエンドポイントも、認証フローを開始したり、パソコンからシグナルを受け取ったりできません。 - - 注: ワイルドカード(<ph name="WILDCARD_VALUE" />)は使用可能です。 - - このポリシーは、ログイン画面とロック画面の認証フローにのみ影響します。セッション中の認証フローを変更するには、<ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> ポリシーを使用してください。 - - 有効な <ph name="URL_LABEL" /> パターンについて詳しくは、https://support.google.com/chrome/a?p=url_blocklist_filter_format をご覧ください。</translation> <translation id="3729937245044939404">このポリシーは M70 でサポート終了となりました。代わりに <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> と <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> を使用してください。 <ph name="PRODUCT_NAME" /> の自動入力機能を有効にし、ユーザーが以前に保存した情報(住所やクレジット カード情報など)を使用してウェブフォームに自動入力できるようにします。 @@ -2784,7 +2773,6 @@ 注: <ph name="MS_AD_NAME" /> の管理対象デバイスの場合、このポリシーは <ph name="MACHINE_NAME_VARIABLE" /> から <ph name="MS_AD_NAME" /> のマシン名またはその部分文字列への展開をサポートします。たとえばマシン名が <ph name="MACHINE_NAME_EXAMPLE" /> の場合、<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> は 6 文字目以降の 4 文字(<ph name="MACHINE_NAME_PART_EXAMPLE" />)に置き換えられます(先頭をゼロ文字目として数えます)。</translation> <translation id="377044054160169374">不正なコンテンツに対する処理の適用</translation> -<translation id="3777833753656885744">ログイン画面とロック画面で認証フローを有効にする URL のリストを指定する</translation> <translation id="3778689139323007309">ローカルにインストール済みの CA 証明書によって署名された、確認済みのサーバー証明書に対して失効確認を行う</translation> <translation id="3780152581321609624">Kerberos SPN に非標準ポートを含める</translation> <translation id="378495749480642482">ユーザーがアクセスしたサイトで <ph name="WEBXR_API_NAME" /> を使用した没入的な拡張現実セッションの作成を許可するかどうかを設定します。 @@ -2891,6 +2879,13 @@ このポリシーを 2 に設定した場合、煩わしい広告が掲載されるサイトで広告の表示をブロックします。</translation> <translation id="3877517141460819966">統合 2 段階認証モード</translation> +<translation id="3877908683993837673">このポリシーでは、DNS サーバーとの通信にオペレーティング システムの DNS クライアントと <ph name="PRODUCT_NAME" /> の組み込みの DNS クライアントのどちらのソフトウェア スタックを使用するかを管理できます。このポリシーは、使用する DNS サーバーの選択には影響しません。たとえば、オペレーティング システムで企業の DNS サーバーを使用するよう設定されている場合、組み込みの DNS クライアントでも同じサーバーが使用されます。また、DNS-over-HTTPS が使用されている場合は、このポリシーの対象となりません。<ph name="PRODUCT_NAME" /> では DNS-over-HTTPS リクエストに対して、常に組み込みのリゾルバを使用します。DNS-over-HTTPS の管理については、<ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> ポリシーをご覧ください。 + + このポリシーを有効に設定した場合、可能なときは組み込みの DNS クライアントが使用されます。 + + このポリシーを無効に設定した場合、DNS-over-HTTPS の使用時のみ、組み込みの DNS クライアントが使用されます。 + + このポリシーを未設定のままにした場合、<ph name="MS_WIN_NAME" />、<ph name="MAC_OS_NAME" />、<ph name="ANDROID_NAME" />(プライベート DNS も VPN も有効でない場合)、<ph name="PRODUCT_OS_NAME" /> では組み込みの DNS クライアントがデフォルトで有効になります。</translation> <translation id="3879208481373875102">強制的にインストールされるウェブアプリのリストを設定する</translation> <translation id="3879700444818346084">初回実行時の保存したパスワードのインポートを無効にする</translation> <translation id="388237772682176890">SPDY/3.1 がサポートされなくなるため、このポリシーは、M53 でサポート終了、M54 で廃止となります。 @@ -3796,7 +3791,6 @@ ポリシーが未設定の場合、<ph name="PRODUCT_NAME" /> M76 まではデフォルトの設定によりログの収集とアップロードは行えません。<ph name="PRODUCT_NAME" /> M77 以降では、クラウドベースのユーザーレベル エンタープライズ ポリシーの対象となるほとんどのプロファイルから、ログの収集とアップロードをデフォルトで行うことができます。<ph name="PRODUCT_NAME" /> M77 から M80 までは、<ph name="PRODUCT_NAME" /> オンプレミス管理の対象となるプロファイルからも、ログの収集とアップロードをデフォルトで行うことができます。</translation> <translation id="4911334289324462969">ポート 989(ブロックの解除は 2022 年 2 年 1 日まで可能)</translation> -<translation id="4913065710388638917">認証フローを有効にする URL のリストを指定する</translation> <translation id="4917385247580444890">強い</translation> <translation id="4918261735182294270">ユーザーが <ph name="CHROME_SYNC_NAME" /> を有効にするかどうかを選択できるようにする</translation> <translation id="491889618361437456"><ph name="GOOGLE_CALENDAR_NAME" /> 統合を有効にします</translation> @@ -5292,6 +5286,7 @@ 注: 現在のところ、自動の再起動はログイン画面が表示されているとき、またはキオスクアプリのセッション中のみ有効になります。</translation> <translation id="6556586932263358975">画面のロックを許可する</translation> <translation id="6559057113164934677">カメラやマイクへのアクセスをどのサイトにも許可しない</translation> +<translation id="65591220958874949">Windows、macOS、Android、ChromeOS で組み込みの DNS クライアントを使用する</translation> <translation id="6559221564468029245">このポリシーを有効に設定するか未設定のままにした場合、音声が再生されている間は、ユーザーはアイドル状態とはみなされません。アイドル タイムアウトにはならず、アイドル処理も行われません。ただし、音声操作にかかわらず、画面を暗くするまでの時間、画面オフまでの時間、画面ロックまでの時間としてそれぞれ設定されたタイムアウト後は、対応する処理が行われます。 このポリシーを無効に設定した場合、音声操作にかかわらず、ユーザーはアイドル状態とみなされます。</translation> @@ -6919,17 +6914,6 @@ <translation id="8274603902181597201">ユーザーの ecryptfs ホーム ディレクトリのデータをワイプして、ext4 で暗号化された新規のホーム ディレクトリから開始する。</translation> <translation id="8274926413890711289">詳細なレポート コントロールを有効にする</translation> <translation id="8278133379873210419">異なる生成元のサブフレームからトリガーされた JavaScript ダイアログを抑制します</translation> -<translation id="8279037559659894049"><ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> を有効にする URL のリストを指定します。 - - このポリシーでは、パソコンから一連のシグナルを受け取る認証フローに含める URL を指定できます。 - - このポリシーを未設定のままにするか空白にした場合は、どのエンドポイントも、認証フローを開始したり、パソコンからシグナルを受け取ったりできません。 - - 注: ワイルドカード(<ph name="WILDCARD_VALUE" />)は使用可能です。 - - ChromeOS では、このポリシーはリモート認証に関連付けられ、証明書が自動的に生成されてデバイス管理サーバーにアップロードされます。 - - 有効な <ph name="URL_LABEL" /> パターンについて詳しくは、https://support.google.com/chrome/a?p=url_blocklist_filter_format をご覧ください。</translation> <translation id="8284296539558710573">クロスオリジンの HTTP 認証プロンプト</translation> <translation id="8284527236880877730"><ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> が無効になっている場合に、<ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> では、デバイスがプレゼンテーション モードのときに画面を暗くするまでの時間を調整する比率(%)を指定できます。時間が調整された場合は、画面オフまでの時間、画面ロックまでの時間、およびアイドル時間が調整され、画面を暗くするまでの時間との差が元の設定と同じに維持されます。
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb index 44047c61..132e5b0 100644 --- a/components/policy/resources/policy_templates_ko.xtb +++ b/components/policy/resources/policy_templates_ko.xtb
@@ -205,6 +205,7 @@ 이 정책이 False로 설정되면 '항상 허용' 체크박스가 표시되지 않고 외부 프로토콜이 호출될 때마다 사용자에게 메시지가 표시됩니다.</translation> <translation id="1181598794547737681">다운로드 도움말 풍선 UI 사용 설정</translation> +<translation id="1184562656144537588">매니페스트 v2가 강제 확장 프로그램에만 사용 설정됨</translation> <translation id="11903325225202653">이 정책을 True로 설정하면 고대비 모드가 사용 상태로 유지됩니다. 정책을 False로 설정하면 고대비 모드가 사용 중지 상태로 유지됩니다. 정책을 설정하면 사용자가 변경할 수 없습니다. 설정하지 않으면 고대비 모드가 사용 중지되지만 사용자가 언제든지 사용 설정할 수 있습니다.</translation> @@ -1520,6 +1521,7 @@ 정책 값은 일 단위로 지정해야 합니다.</translation> <translation id="2466131534462628618">캡티브 포털 승인에서 프록시를 무시함</translation> +<translation id="2467181864598429837">기본 브라우저 동작</translation> <translation id="2467896267442150508">최대 1주일 기간의 시간 간격입니다. 시작 시간이 종료 시간 이후인 경우 간격이 범위를 둘러싼 값으로 설정됩니다.</translation> <translation id="2476249479201711962">기본 검색 제공업체 컨텍스트 메뉴에 대한 액세스 허용</translation> <translation id="247658312644322296">'PDF로 저장' 목적지</translation> @@ -2670,6 +2672,7 @@ <translation id="3524204464536655762">어떤 사이트든지 WebUSB API를 통해 USB 기기의 액세스를 요청하도록 허용하지 않습니다.</translation> <translation id="3526752951628474302">단색 인쇄만</translation> <translation id="3528000905991875314">대체 오류 페이지 사용</translation> +<translation id="3528681240373634003">매니페스트 v2 확장 프로그램의 가용성을 제어합니다.</translation> <translation id="3530249698314520116"><ph name="PRODUCT_OS_NAME" />의 데이터 유출을 방지하기 위해 규칙 목록을 구성합니다. 데이터 복사 및 붙여넣기, 파일 전송, 인쇄, 화면 공유, 스크린샷 찍기 등으로 인해 데이터가 유출될 수 있습니다. @@ -2862,17 +2865,6 @@ 정책을 사용 안함으로 설정하면 사용자에게 기기 잠금 해제 시 비밀번호를 입력하라는 메시지가 표시되지 않습니다. 정책을 설정하지 않으면 사용자가 기기를 잠금 해제할 때 비밀번호를 사용할지 여부를 선택할 수 있습니다.</translation> -<translation id="3729689441404871493">로그인 화면 및 잠금 화면의 URL 목록에 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />을(를) 사용 설정합니다. - - 정책을 설정하면 시스템에서 여러 신호를 가져오기 위한 증명 흐름의 일부로서 어떤 URL을 허용할지 지정할 수 있습니다. - - 정책을 설정하지 않거나 비워두면 어떤 엔드포인트도 증명 흐름을 시작할 수 없고 시스템에서 신호를 수신할 수 없게 됩니다. - - 참고: <ph name="WILDCARD_VALUE" /> 와일드 카드가 허용됩니다. - - 이 정책은 로그인 화면 및 잠금 화면의 증명 흐름에만 영향을 미칩니다. 세션 내 증명 흐름을 변경하려면 <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> 정책을 사용하세요. - - 유효한 <ph name="URL_LABEL" /> 패턴에 관해 자세히 알아보려면 https://support.google.com/chrome/a?p=url_blocklist_filter_format을 참고하세요.</translation> <translation id="3729937245044939404">이 정책은 M70에서 지원이 중단되었습니다. 대신 <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> 및 <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> 정책을 사용하시기 바랍니다. <ph name="PRODUCT_NAME" />의 자동 완성 기능을 사용 설정하여 사용자가 주소나 신용카드 정보와 같이 이전에 저장한 정보를 이용하여 웹 양식을 자동으로 완성할 수 있습니다. @@ -2938,7 +2930,6 @@ 참고: <ph name="MS_AD_NAME" /> 관리 대상 기기에서는 이 정책을 통해 <ph name="MACHINE_NAME_VARIABLE" />을(를) <ph name="MS_AD_NAME" /> 컴퓨터 이름 또는 관련 하위 문자열로 확장할 수 있습니다. 예를 들어, 컴퓨터 이름이 <ph name="MACHINE_NAME_EXAMPLE" />인 경우 <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />이(가) 6번째 글자 후의 글자 4개로 대체되어 <ph name="MACHINE_NAME_PART_EXAMPLE" />이(가) 됩니다. 글자 위치는 0을 기준으로 합니다.</translation> <translation id="377044054160169374">악의적 사용자 환경 개입 시행</translation> -<translation id="3777833753656885744">로그인 화면 및 잠금 화면의 URL 목록에 증명 흐름 사용 설정</translation> <translation id="3778689139323007309">로컬에 설치된 CA 인증서로 서명했으며 유효성이 검증된 서버 인증서 폐기 확인 검사 실행</translation> <translation id="3780152581321609624">Kerberos SPN에 비표준 포트 포함</translation> <translation id="378495749480642482">사용자가 탐색하는 사이트에서 <ph name="WEBXR_API_NAME" />를 사용하여 몰입형 증강 현실 세션을 생성할 수 있는지 선택합니다. @@ -3155,6 +3146,7 @@ <translation id="3990391739475801018">절전 모드가 사용 중지됩니다.</translation> <translation id="3994043824457743421">새 탭 페이지에서 가운데 슬롯 알림 표시</translation> <translation id="399433537808390819">사용자가 통합 바탕화면 모드를 사용할 수 없도록 설정</translation> +<translation id="3995880046827722248">매니페스트 v2가 사용 중지됨</translation> <translation id="3996325823532867220">이 정책은 더 이상 지원되지 않지만 특정 플랫폼에서는 관련 정책 <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />가 지원될 수 있습니다. 이 설정을 사용하면 <ph name="PRODUCT_NAME" />에서 내장된 인증서 확인 기능을 사용하여 서버 인증서를 확인합니다. @@ -3675,6 +3667,7 @@ 이 정책을 설정하지 않으면 사용자가 시스템에 설치된 모든 플러그인을 사용 중지할 수 있습니다.</translation> <translation id="4549405078915181477">웹사이트에 대한 Screen Time(기기 사용 시간) 사용 설정</translation> +<translation id="4549695018986780856">매니페스트 v2가 사용 설정됨</translation> <translation id="4554651132977135445">사용자 정책 루프백 처리 모드</translation> <translation id="4554991346503872538">번역 안 함</translation> <translation id="4555850956567117258">사용자에 대한 원격 인증을 사용합니다.</translation> @@ -4003,7 +3996,6 @@ M76 이하 버전에서 정책을 설정하지 않으면 기본적으로 <ph name="PRODUCT_NAME" />에서 이러한 로그를 수집하거나 업로드할 수 없습니다. M77부터는 <ph name="PRODUCT_NAME" />에서 기본적으로 클라우드 기반 사용자 수준 엔터프라이즈 정책의 영향을 받는 대부분의 프로필에서 이러한 로그를 수집하고 업로드할 수 있습니다. M77부터 M80까지는 <ph name="PRODUCT_NAME" />에서 기본적으로 <ph name="PRODUCT_NAME" /> 온프레미스 관리의 영향을 받는 프로필에서 이러한 로그를 수집하고 업로드할 수도 있습니다.</translation> <translation id="4911334289324462969">포트 989(2022년 2월 1일까지 차단 해제될 수 있음)</translation> -<translation id="4913065710388638917">URL 목록에 대한 증명 흐름 사용 설정</translation> <translation id="4917385247580444890">강력</translation> <translation id="4918261735182294270">사용자가 <ph name="CHROME_SYNC_NAME" /> 설정 여부를 선택하도록 허용</translation> <translation id="491889618361437456"><ph name="GOOGLE_CALENDAR_NAME" /> 통합을 사용 설정합니다.</translation> @@ -5026,6 +5018,17 @@ True로 설정하면 제한 없이 출처 간 WebAssembly 모듈 전송이 가능해집니다. False로 설정되거나 설정되지 않으면 사이트에서 동일한 출처의 창 및 작업자로만 WebAssembly를 전송할 수 있습니다.</translation> +<translation id="6005906773585863978">브라우저에서 매니페스트 v2 확장 프로그램의 사용 가능 여부를 제어합니다. + +매니페스트 v2 확장 프로그램 지원이 중단되며 향후 모든 확장 프로그램을 v3로 이전해야 합니다. 이전에 관한 자세한 내용과 타임라인은 https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/에서 확인할 수 있습니다. + +정책을 <ph name="DEFAULT" />(0)으로 설정하거나 설정하지 않으면 위 일정에 따라 브라우저에서 v2 확장 프로그램 로드를 결정합니다. +정책을 <ph name="DISABLE" />(1)로 설정하면 v2 확장 프로그램 설치가 차단되고 기존 확장 프로그램은 사용 중지됩니다. 이 옵션은 기본적으로 v2 지원이 사용 중지된 후에 정책이 설정되지 않은 경우와 동일하게 처리됩니다. +정책을 <ph name="ENABLE" />(2)으로 설정하면 v2 확장 프로그램이 허용됩니다. 이 옵션은 기본적으로 v2 지원이 사용 중지되기 전에 정책이 설정되지 않은 경우와 동일하게 처리됩니다. +정책을 <ph name="ENABLE_FOR_FORCED_EXTENSIONS" />(3)로 설정하면 강제 설치된 v2 확장 프로그램이 허용됩니다. 여기에는 <ph name="INSTALLATION_MODE" />가 'force_installed' 또는 'normal_installed'이며 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> 또는 <ph name="EXTENSION_SETTINGS_POLICY_NAME" />에 의해 나열된 확장 프로그램이 포함됩니다. 다른 모든 v2 확장 프로그램은 사용 중지됩니다. 이 옵션은 기본적으로 v2 지원이 사용 중지되기 전에 정책이 설정되지 않은 경우와 동일하게 처리됩니다. + + +확장 프로그램 사용 가능 여부는 다른 정책에 의해 계속 제어됩니다.</translation> <translation id="6009062900206392980">이 정책을 None으로 설정하면 로그인 화면에서 화면 확대 기능이 사용 중지됩니다. 정책을 설정하면 사용자는 일시적으로 화면 돋보기를 사용 설정하거나 사용 중지할 수 있습니다. 로그인 화면이 새로고침되거나 1분 정도 유휴 상태가 유지되면 원래 상태로 돌아갑니다. @@ -7344,17 +7347,6 @@ <translation id="8274603902181597201">사용자의 ecryptfs 홈 디렉터리를 삭제하고 ext4로 암호화된 새 홈 디렉터리로 시작합니다.</translation> <translation id="8274926413890711289">상세 보고 제어 사용</translation> <translation id="8278133379873210419">다른 출처 서브프레임에서 실행된 자바스크립트 대화상자 차단</translation> -<translation id="8279037559659894049">URL 목록에 대한 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />을(를) 사용 설정합니다. - - 정책을 설정하면 시스템에서 여러 신호를 가져오기 위한 증명 흐름의 일부로서 어떤 URL을 허용할지 지정할 수 있습니다. - - 정책을 설정하지 않거나 비워두면 어떤 엔드포인트도 증명 흐름을 시작할 수 없고 시스템에서 신호를 수신할 수 없게 됩니다. - - 참고: <ph name="WILDCARD_VALUE" /> 와일드 카드가 허용됩니다. - - ChromeOS의 경우 이 정책은 원격 증명과 관련되어 있으며, 원격 증명에서는 인증서가 자동으로 생성되어 기기 관리 서버에 업로드됩니다. - - 유효한 <ph name="URL_LABEL" /> 패턴에 관해 자세히 알아보려면 https://support.google.com/chrome/a?p=url_blocklist_filter_format을 참고하세요.</translation> <translation id="8284296539558710573">교차 도메인 HTTP 인증 프롬프트</translation> <translation id="8284527236880877730"><ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" />를 사용 중지한 경우 <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" />을 설정하면 기기에서 프레젠테이션 중일 때 화면 어둡게 하기 지연 시간이 조정되는 비율을 지정할 수 있습니다. 화면 어둡게 하기 지연 시간이 조정되면 화면 꺼짐, 화면 잠금 및 유휴 지연 시간이 원래 설정된 화면 어둡게 하기 지연 시간과 같은 간격을 유지하도록 조정됩니다.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index adf4c97..8cdda84 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -205,6 +205,7 @@ Als dit beleid is ingesteld op False, wordt het selectievakje 'Altijd toestaan' niet getoond en krijgt de gebruiker elke keer als er een extern protocol wordt aangeroepen een prompt.</translation> <translation id="1181598794547737681">Ballon-UI voor downloaden aanzetten</translation> +<translation id="1184562656144537588">Manifest v2 staat alleen aan voor afgedwongen extensies</translation> <translation id="11903325225202653">Als het beleid is ingesteld op True, blijft de modus voor hoog contrast aan. Als het beleid is ingesteld op False, blijft de modus voor hoog contrast uit. Als je dit beleid instelt, kunnen gebruikers het niet wijzigen. Als je dit beleid niet instelt, staat de modus voor hoog contrast uit, maar kunnen gebruikers deze op elk moment aanzetten.</translation> @@ -1518,6 +1519,7 @@ De beleidswaarde moet worden opgegeven in dagen.</translation> <translation id="2466131534462628618">Captive portal-verificatie negeert proxyserver</translation> +<translation id="2467181864598429837">Standaard browsergedrag</translation> <translation id="2467896267442150508">Tijdsinterval van maximaal één week. Is de begintijd later dan de eindtijd, dan eindigt het interval op de aangegeven eindtijd op de volgende dag.</translation> <translation id="2476249479201711962">Toegang tot het contextmenu van de standaard zoekprovider aanzetten</translation> <translation id="247658312644322296">De bestemming 'Opslaan als pdf'</translation> @@ -2639,6 +2641,7 @@ <translation id="3524204464536655762">Niet toestaan dat sites via de WebUSB API toegang tot USB-apparaten vragen</translation> <translation id="3526752951628474302">Alleen monochroom afdrukken</translation> <translation id="3528000905991875314">Alternatieve foutpagina's gebruiken</translation> +<translation id="3528681240373634003">De beschikbaarheid van Manifest v2-extensies beheren.</translation> <translation id="3530249698314520116">Hiermee stel je een lijst op met regels om datalekken op <ph name="PRODUCT_OS_NAME" /> te voorkomen. Een datalek kan optreden als je gegevens kopieert en plakt, gegevens overdraagt, afdrukt, je scherm deelt of screenshots maakt, enzovoort. @@ -2830,17 +2833,6 @@ Als je het beleid niet toepast (False), wordt gebruikers niet om een wachtwoord gevraagd om het apparaat te ontgrendelen. Als je het beleid niet instelt, kunnen gebruikers zelf kiezen of ze een wachtwoord moeten opgeven om het apparaat te ontgrendelen.</translation> -<translation id="3729689441404871493">Zet <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> aan voor een lijst met URL's op het inlog- en vergrendelscherm. - - Als je dit beleid instelt, geef je op welke URL's moeten worden toegestaan als onderdeel van het attestproces om de reeks signalen van de machine te krijgen. - - Als je dit beleid niet instelt of leeg laat, kan geen enkel eindpunt het attestproces starten of signalen van de machine krijgen. - - Opmerking: Jokertekens, <ph name="WILDCARD_VALUE" />, zijn toegestaan. - - Dit beleid is alleen van invloed op het attestproces op het inlog- en vergrendelscherm. Gebruik het beleid <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> om het attestproces van een sessie te wijzigen. - - Ga naar https://support.google.com/chrome/a?p=url_blocklist_filter_format voor uitgebreide informatie over geldige <ph name="URL_LABEL" />-patronen.</translation> <translation id="3729937245044939404">Dit beleid is beëindigd in M70. Gebruik in plaats hiervan <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> en <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Hiermee wordt de functie Automatisch aanvullen van <ph name="PRODUCT_NAME" /> geactiveerd en wordt gebruikers toegestaan webformulieren automatisch in te vullen met eerder opgeslagen informatie zoals adres- of creditcardgegevens. @@ -2906,7 +2898,6 @@ Opmerking: Voor apparaten die via <ph name="MS_AD_NAME" /> worden beheerd, ondersteunt dit beleid de uitbreiding van <ph name="MACHINE_NAME_VARIABLE" /> naar de naam van de <ph name="MS_AD_NAME" />-machine of naar een subtekenreeks daarvan. Als de machinenaam bijvoorbeeld <ph name="MACHINE_NAME_EXAMPLE" /> is, wordt <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> vervangen door 4 tekens vanaf de 6e positie, oftewel <ph name="MACHINE_NAME_PART_EXAMPLE" />. De positie wordt geteld vanaf 0.</translation> <translation id="377044054160169374">Interventie voor misleidende functionaliteit afdwingen</translation> -<translation id="3777833753656885744">Attestproces aanzetten voor een lijst met URL's op het inlog- en vergrendelscherm</translation> <translation id="3778689139323007309">Intrekkingscontroles uitvoeren voor gevalideerde servercertificaten die zijn ondertekend door lokaal geïnstalleerde CA-certificaten</translation> <translation id="3780152581321609624">Niet-standaardpoort in Kerberos-SPN opnemen</translation> <translation id="378495749480642482">Hiermee configureer je of de sites waar de gebruiker naartoe gaat uitgebreide augmented reality-sessies met <ph name="WEBXR_API_NAME" /> mogen maken. @@ -3122,6 +3113,7 @@ <translation id="3990391739475801018">De batterijbesparingsmodus wordt uitgezet.</translation> <translation id="3994043824457743421">De aankondiging in de middelste ruimte op de pagina Nieuw tabblad tonen</translation> <translation id="399433537808390819">Samengestelde desktopmodus niet beschikbaar maken voor de gebruiker</translation> +<translation id="3995880046827722248">Manifest v2 staat uit</translation> <translation id="3996325823532867220">Dit beleid wordt niet meer ondersteund, maar het gerelateerde beleid <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> wordt misschien wel ondersteund op bepaalde platforms. Als je deze instelling toepast, verifieert <ph name="PRODUCT_NAME" /> servercertificaten met de ingebouwde certificaatverificatie. @@ -3621,6 +3613,7 @@ Als dit beleid niet is ingesteld, kan de gebruiker alle op het systeem geïnstalleerde plug-ins uitzetten.</translation> <translation id="4549405078915181477">Schermtijd aanzetten voor websites</translation> +<translation id="4549695018986780856">Manifest v2 staat aan</translation> <translation id="4554651132977135445">Loopback-verwerkingsmodus voor gebruikersbeleid</translation> <translation id="4554991346503872538">Nooit een vertaling aanbieden</translation> <translation id="4555850956567117258">Externe bevestiging van gebruiker aanzetten</translation> @@ -3937,7 +3930,6 @@ Als het beleid niet is ingesteld in versies tot en met M76, kan <ph name="PRODUCT_NAME" /> deze logboeken standaard niet verzamelen en uploaden. Vanaf M77 kan <ph name="PRODUCT_NAME" /> deze logboeken standaard verzamelen en uploaden vanuit de meeste profielen waarop cloudgebaseerde bedrijfsbeleidsregels op gebruikersniveau van toepassing zijn. Vanaf M77 tot en met M80 kan <ph name="PRODUCT_NAME" /> deze logboeken ook standaard verzamelen en uploaden vanuit profielen waarop <ph name="PRODUCT_NAME" />-beheer op locatie van toepassing is.</translation> <translation id="4911334289324462969">poort 989 (blokkering kan worden opgeheven tot 01-02-2022)</translation> -<translation id="4913065710388638917">Attestproces aanzetten voor een lijst met URL's</translation> <translation id="4917385247580444890">Sterk</translation> <translation id="4918261735182294270">Gebruikers toestaan om te kiezen of <ph name="CHROME_SYNC_NAME" /> moet worden aangezet</translation> <translation id="491889618361437456"><ph name="GOOGLE_CALENDAR_NAME" />-integratie aanzetten</translation> @@ -4948,6 +4940,17 @@ Als je dit beleid instelt op True, kunnen sites zonder beperkingen WebAssembly-modules cross-origin versturen. Als je dit beleid instelt op False of niet instelt, kunnen sites alleen WebAssembly-modules naar vensters en werkrollen in dezelfde oorsprong sturen.</translation> +<translation id="6005906773585863978">Bepaal of Manifest v2-extensies kunnen worden gebruikt door de browser. + +Ondersteuning voor Manifest v2-extensies wordt beëindigd en alle extensies moeten in de toekomst worden overgezet naar v3. Je kunt meer informatie en een tijdlijn van de migratie vinden op https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Als je het beleid instelt op <ph name="DEFAULT" /> (0) of niet instelt, wordt het laden van v2-extensies bepaald door de browser op basis van de bovenstaande tijdlijn. +Als je het beleid instelt op <ph name="DISABLE" /> (1), wordt de installatie van v2-extensies geblokkeerd. Bestaande extensies worden uitgezet. De optie wordt op dezelfde manier behandeld als wanneer het beleid niet is ingesteld nadat de v2-ondersteuning standaard is uitgezet. +Als je het beleid instelt op <ph name="ENABLE" /> (2), zijn v2-extensies toegestaan. De optie wordt op dezelfde manier behandeld als wanneer het beleid niet is ingesteld voordat de v2-ondersteuning standaard wordt uitgezet. +Als je het beleid instelt op <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), zijn afgedwongen geïnstalleerde v2-extensies toegestaan. Dit omvat extensies die worden vermeld in <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> of <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> met <ph name="INSTALLATION_MODE" /> force_installed of normal_installed. Alle andere v2-extensies staan uit. De optie wordt op dezelfde manier behandeld als wanneer het beleid niet is ingesteld voordat de v2-ondersteuning standaard wordt uitgezet. + + +De beschikbaarheid van extensies wordt nog steeds beheerd door andere beleidsregels.</translation> <translation id="6009062900206392980">Als het beleid is ingesteld op None, staat schermvergroting uit op het inlogscherm. Als je dit beleid instelt, kunnen gebruikers het vergrootglas tijdelijk aan- of uitzetten. Als het inlogscherm opnieuw wordt geladen of een minuut lang niet wordt gebruikt, wordt de oorspronkelijke status hersteld. @@ -7251,17 +7254,6 @@ <translation id="8274603902181597201">De eCryptfs-hoofdmap van de gebruiker wissen en beginnen met een nieuwe hoofdmap die is versleuteld met ext4</translation> <translation id="8274926413890711289">Opties voor gedetailleerde rapportage aanzetten</translation> <translation id="8278133379873210419">JavaScript-dialoogvensters onderdrukken als deze worden geactiveerd vanaf een subframe met een andere oorsprong</translation> -<translation id="8279037559659894049">Stel <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> in voor een lijst met URL's. - -Als je dit beleid instelt, geef je op welke URL's moeten worden toegestaan als onderdeel van het attestproces om de reeks signalen van de machine te ontvangen. - - Als je dit beleid niet instelt of leeg laat, kan geen enkel eindpunt het attestproces starten of signalen van de machine krijgen. - - Opmerking: Jokertekens, <ph name="WILDCARD_VALUE" />, zijn toegestaan. - - Voor ChromeOS is dit beleid gerelateerd aan externe attesten, waarbij er automatisch certificaten worden gemaakt en geüpload naar de Device Management Server. - - Ga naar https://support.google.com/chrome/a?p=url_blocklist_filter_format voor uitgebreide informatie over geldige <ph name="URL_LABEL" />-patronen.</translation> <translation id="8284296539558710573">Cross-origin-prompts voor HTTP-verificatie</translation> <translation id="8284527236880877730">Als <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> is uitgezet, stel je met <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> het percentage in waarmee de dimperiode van het scherm wordt geschaald als met het apparaat wordt gepresenteerd. Als de dimperiode van het scherm wordt geschaald, blijven de perioden tot het scherm uitgaat, het scherm wordt vergrendeld en inactiviteit wordt geactiveerd, gelijk aan de periode voor het dimmen van het scherm die je oorspronkelijk had ingesteld.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index ff6e7f53..dd1fb28 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -2868,17 +2868,6 @@ Se a política for desativada, os usuários não vão precisar digitar uma senha para desbloquear o dispositivo. Se ela for deixada sem definição, os usuários vão poder escolher se querem receber uma solicitação de senha para desbloquear o dispositivo.</translation> -<translation id="3729689441404871493">Ative o <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para criar uma lista de URLs nas telas de login e bloqueio. - - Se esta política for definida, ela vai especificar quais URLs têm permissão para fazer parte do fluxo de atestado e receber o conjunto de indicadores da máquina. - - Se ela não for definida ou se for deixada em branco, nenhum endpoint poderá iniciar o fluxo de atestado ou receber sinais da máquina. - - Observação: caracteres curinga (<ph name="WILDCARD_VALUE" />) são permitidos. - - Esta política afeta apenas o fluxo de atestado nas telas de login e bloqueio. Para mudar o fluxo de atestado na sessão, use a política <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Para informações detalhadas sobre padrões de <ph name="URL_LABEL" /> válidos, consulte https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">O esta política foi descontinuada na versão M70. Use a <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> e a <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Ativa o recurso de preenchimento automático do <ph name="PRODUCT_NAME" /> e permite que os usuários preencham formulários da Web automaticamente usando informações já armazenadas, como dados de endereço ou do cartão de crédito. @@ -2944,7 +2933,6 @@ Observação: para dispositivos gerenciados com o <ph name="MS_AD_NAME" />, esta política é compatível com a expansão de <ph name="MACHINE_NAME_VARIABLE" /> para o nome de máquina do <ph name="MS_AD_NAME" /> ou uma substring correspondente. Por exemplo, se o nome de máquina for <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> será substituído pelos quatro caracteres que começam depois da sexta posição, ou seja, <ph name="MACHINE_NAME_PART_EXAMPLE" />. A posição se baseia em zero.</translation> <translation id="377044054160169374">Aplicação de intervenção de experiência ofensiva</translation> -<translation id="3777833753656885744">Ativar o fluxo de atestado para uma lista de URLs nas telas de login e bloqueio</translation> <translation id="3778689139323007309">Realizar verificações de revogação para certificados de servidor validados com assinatura dos certificados de CA locais</translation> <translation id="3780152581321609624">Incluir porta não padrão no SPN Kerberos</translation> <translation id="378495749480642482">Define se os sites acessados pelos usuários podem criar sessões de realidade aumentada imersivas usando a <ph name="WEBXR_API_NAME" />. @@ -3053,6 +3041,13 @@ Se a política for definida como 2, os anúncios serão bloqueados em sites com anúncios invasivos.</translation> <translation id="3877517141460819966">Modo de autenticação de segundo fator integrado</translation> +<translation id="3877908683993837673">Esta política controla qual pilha de software é usada para se comunicar com o servidor DNS: o cliente DNS do sistema operacional ou o integrado do <ph name="PRODUCT_NAME" />. A política não afeta qual servidor DNS vai ser usado. Se, por exemplo, o sistema operacional estiver configurado para usar um servidor DNS empresarial, o mesmo servidor será usado pelo cliente DNS integrado. Ela também não controla como o DNS sobre HTTPS é usado. O <ph name="PRODUCT_NAME" /> sempre vai usar o resolvedor integrado para solicitações DNS sobre HTTPS. Consulte a política <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> para informações sobre como controlar o DNS sobre HTTPS. + + Se a política for ativada, o cliente DNS integrado será usado, quando disponível. + + Se ela for desativada, o cliente DNS integrado vai ser usado apenas quando o DNS sobre HTTPS estiver em uso. + + Se esta política for deixada sem definição, o cliente DNS integrado será ativado por padrão no <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> (quando não houver uma VPN ou um DNS particular ativos) e <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3879208481373875102">Configurar a lista de apps da Web de instalação forçada</translation> <translation id="3879700444818346084">Desativar a importação de senhas salvas na primeira execução</translation> <translation id="388237772682176890">O uso dessa política foi suspenso no M53 e removido no M54, porque a compatibilidade com o SPDY/3.1 foi removida. @@ -4010,7 +4005,6 @@ Se a política não for definida em versões até a M76, o <ph name="PRODUCT_NAME" /> terá como padrão não coletar esses registros nem fazer upload deles. A partir da versão M77, o <ph name="PRODUCT_NAME" /> terá como padrão coletar os registros e fazer upload deles da maioria dos perfis afetados por políticas de empresas no nível de usuário baseadas em nuvem. A partir da versão M77 até a M80, o <ph name="PRODUCT_NAME" /> também pode coletar esses registros e, por padrão, fazer upload deles tomando perfis afetados pelo gerenciamento local do <ph name="PRODUCT_NAME" /> como base.</translation> <translation id="4911334289324462969">porta 989 (pode ser desbloqueada até 01/02/2022)</translation> -<translation id="4913065710388638917">Ativar fluxo de atestado para uma lista de URLs</translation> <translation id="4917385247580444890">Forte</translation> <translation id="4918261735182294270">Permitir que os usuários escolham quando ativar a <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Ativar a integração com o <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -5615,6 +5609,7 @@ Observação: no momento, as reinicializações automáticas são ativadas apenas enquanto a tela de login está sendo mostrada ou uma sessão de aplicativo de quiosque está em andamento.</translation> <translation id="6556586932263358975">Permitir o bloqueio da tela</translation> <translation id="6559057113164934677">Não permitir que nenhum site acesse minha câmera e meu microfone</translation> +<translation id="65591220958874949">Usar o cliente DNS integrado no Windows, macOS, Android e ChromeOS</translation> <translation id="6559221564468029245">Se a política for definida como "Ativada" ou não for definida, o usuário não será considerado inativo quando o dispositivo estiver tocando áudio. Isso impede que o tempo limite de inatividade seja atingido e que as ações correspondentes sejam realizadas. No entanto, o escurecimento, o desligamento e o bloqueio de tela ainda serão realizados após os limites de tempo configurados, independentemente da atividade de áudio. Se a política for definida como "Desativada", o sistema poderá considerar os usuários inativos, independentemente da atividade de áudio.</translation> @@ -7349,17 +7344,6 @@ <translation id="8274603902181597201">Faz a limpeza do diretório inicial do ecryptfs do usuário e começa com um novo diretório inicial ext4-encrypted.</translation> <translation id="8274926413890711289">Ativar controles de geração de relatórios granulares</translation> <translation id="8278133379873210419">Suprimir caixas de diálogo de JavaScript acionadas por subframes de origem diferentes</translation> -<translation id="8279037559659894049">Ativar <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> para uma lista de URLs. - - Se esta política for definida, ela especificará quais URLs têm permissão para fazer parte do fluxo de atestado e receber o conjunto de sinais da máquina. - - Se ela não for definida ou se for deixada em branco, nenhum endpoint poderá iniciar o fluxo de atestado ou receber sinais da máquina. - - Observação: caracteres curinga (<ph name="WILDCARD_VALUE" />) são permitidos. - - No ChromeOS, esta política está relacionada a atestados remotos em que um certificado é gerado automaticamente e o upload dele é feito para o servidor do Gerenciador de dispositivos. - - Para informações detalhadas sobre padrões de <ph name="URL_LABEL" /> válidos, consulte https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Prompts de autenticação HTTP de origem cruzada</translation> <translation id="8284527236880877730">Se <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> for definida como "Desativada", a definição de <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> especificará a porcentagem para o cálculo do intervalo de escurecimento da tela quando o dispositivo estiver no modo de apresentação. Quando o intervalo de escurecimento for calculado, os intervalos de desligamento, bloqueio e inatividade da tela serão ajustados para manter as mesmas distâncias do intervalo de escurecimento da tela de acordo com a configuração original.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index 9c28a12..d7b1d54 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -202,6 +202,7 @@ Если задано значение False, флажка "Запомнить мой выбор для этого типа ссылок" нет и пользователю необходимо каждый раз подтверждать вызов внешнего протокола.</translation> <translation id="1181598794547737681">Включить всплывающую подсказку о скачиваемых файлах</translation> +<translation id="1184562656144537588">Манифесты версии 2 разрешены только для расширений, установленных принудительно</translation> <translation id="11903325225202653">Если для правила задано значение True, режим высокой контрастности будет всегда включен. Если для правила задано значение False, режим высокой контрастности будет всегда выключен. Если вы настроите правило, пользователи не смогут изменить этот параметр. Если правило не задано, режим высокой контрастности будет выключен, но пользователи в любое время смогут включить его.</translation> @@ -1520,6 +1521,7 @@ Значение для правила указывается в днях.</translation> <translation id="2466131534462628618">Игнорировать прокси при аутентификации через страницу входа</translation> +<translation id="2467181864598429837">Поведение браузера по умолчанию</translation> <translation id="2467896267442150508">Интервал времени, охватывающий не более одной недели. Если время начала позже, чем время окончания, интервал будет продлен на следующий период.</translation> <translation id="2476249479201711962">Открыть доступ к контекстному меню поисковой системы по умолчанию</translation> <translation id="247658312644322296">Вариант "Сохранить как PDF"</translation> @@ -2671,6 +2673,7 @@ <translation id="3524204464536655762">Запретить всем сайтам запрашивать доступ к USB-устройствам через WebUSB API</translation> <translation id="3526752951628474302">Только черно-белая печать</translation> <translation id="3528000905991875314">Включить дополнительные страницы с сообщениями об ошибках</translation> +<translation id="3528681240373634003">Управление доступностью расширений с манифестом версии 2</translation> <translation id="3530249698314520116">Настраивает список правил для предотвращения утечки данных в <ph name="PRODUCT_OS_NAME" />. Утечка данных может произойти при копировании и вставке данных, переносе файлов, печати, демонстрации экрана, создании скриншота и т. д. @@ -2862,17 +2865,6 @@ Если правило отключено, для разблокировки устройства пароль не запрашивается. Если правило не настроено, пользователи сами смогут выбрать, вводить пароль для разблокировки или нет.</translation> -<translation id="3729689441404871493">Включить <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> для списка URL на экране входа и заблокированном экране. - - Правило позволяет указать, какие URL могут проходить проверку и получать набор сигналов от компьютера. - - Если правило не настроено или в качестве значения указана пустая строка, никакие конечные точки не смогут начинать проверку и получать сигналы от компьютера. - - Примечание. Разрешены подстановочные знаки (<ph name="WILDCARD_VALUE" />). - - Правило влияет только на проверку на экране входа и заблокированном экране. Чтобы изменить проверку, выполняемую во время сеанса, используйте правило <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Подробнее о допустимых шаблонах <ph name="URL_LABEL" />: https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Не поддерживается в M70. Используйте правила <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> и <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Включает функцию автозаполнения в <ph name="PRODUCT_NAME" /> и разрешает автоматически заполнять веб-формы, например указывать в них адреса или данные банковских карт. @@ -2938,7 +2930,6 @@ Примечание. В среде <ph name="MS_AD_NAME" /> переменная <ph name="MACHINE_NAME_VARIABLE" /> может заменяться именем устройства <ph name="MS_AD_NAME" /> или частью этого имени. Например, если имя устройства – <ph name="MACHINE_NAME_EXAMPLE" />, то переменная <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> будет возвращать значение <ph name="MACHINE_NAME_PART_EXAMPLE" /> (четыре символа, начиная с 6-й позиции). Отсчет позиции начинается с нуля.</translation> <translation id="377044054160169374">Принудительное прерывание при злоупотреблении доверием</translation> -<translation id="3777833753656885744">Включить проверку для списка URL на экране входа и заблокированном экране</translation> <translation id="3778689139323007309">Проверять, не был ли отозван сертификат сервера, успешно прошедший проверку и подписанный локальным сертификатом ЦС</translation> <translation id="3780152581321609624">Включить нестандартный порт в имя SPN Kerberos</translation> <translation id="378495749480642482">Разрешает или запрещает сайтам, на которые переходит пользователь, создавать сеансы дополненной реальности с эффектом погружения, используя <ph name="WEBXR_API_NAME" />. @@ -3048,6 +3039,13 @@ Если выбрано значение "2", навязчивая реклама на сайтах будет заблокирована.</translation> <translation id="3877517141460819966">Встроенный режим двухэтапной аутентификации</translation> +<translation id="3877908683993837673">Правило позволяет выбрать, какой программный стек использовать для взаимодействия с DNS-сервером: клиент DNS операционной системы или встроенный в <ph name="PRODUCT_NAME" /> клиент DNS. Это не влияет на выбор DNS-серверов. Например, если операционная система использует корпоративный DNS-сервер, то встроенный клиент DNS будет использовать этот же сервер. Это правило также не влияет на режим DNS-over-HTTPS. <ph name="PRODUCT_NAME" /> всегда отправляет запросы по этому протоколу через встроенный преобразователь. Подробные сведения об управлении режимом DNS-over-HTTPS можно найти в правиле <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" />. + + Если правило включено, используется встроенный клиент DNS (если есть). + + Если правило отключено, встроенный клиент DNS используется, только если включен режим DNS-over-HTTPS. + + Если правило не настроено, встроенный клиент DNS работает по умолчанию на устройствах с <ph name="MS_WIN_NAME" />, <ph name="MAC_OS_NAME" />, <ph name="ANDROID_NAME" /> (при выключенном частном DNS-сервере и VPN), а также <ph name="PRODUCT_OS_NAME" />.</translation> <translation id="3879208481373875102">Настройка списка принудительно устанавливаемых веб-приложений</translation> <translation id="3879700444818346084">Запретить импорт сохраненных паролей при первом запуске</translation> <translation id="388237772682176890">Это правило перестало поддерживаться в M53 и было удалено в M54 вследствие отключения поддержки SPDY/3.1. @@ -3147,6 +3145,7 @@ <translation id="3990391739475801018">Режим энергосбережения отключен</translation> <translation id="3994043824457743421">Показывать сообщение в среднем слоте на странице быстрого доступа</translation> <translation id="399433537808390819">Не предоставлять пользователю доступ к режиму единого рабочего стола</translation> +<translation id="3995880046827722248">Манифесты версии 2 запрещены</translation> <translation id="3996325823532867220">Это правило больше не поддерживается. Однако связанное правило <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> может поддерживаться на определенных платформах. Если правило включено, подтверждение сертификатов сервера в <ph name="PRODUCT_NAME" /> будет выполняться встроенным инструментом верификации. @@ -3667,6 +3666,7 @@ Если правило не настроено, пользователи могут отключать любые плагины, установленные в системе.</translation> <translation id="4549405078915181477">Включить Экранное время для сайтов</translation> +<translation id="4549695018986780856">Манифесты версии 2 разрешены</translation> <translation id="4554651132977135445">Режим кольцевой проверки правил для пользователей</translation> <translation id="4554991346503872538">Никогда не предлагать перевод</translation> <translation id="4555850956567117258">Включает удаленное подтверждение данных пользователем</translation> @@ -3983,7 +3983,6 @@ Если правило не настроено и используется версия не выше M76, <ph name="PRODUCT_NAME" /> по умолчанию не может собирать и загружать эти журналы. Если используется версия не ниже M77, <ph name="PRODUCT_NAME" /> по умолчанию может собирать и загружать эти журналы из большинства профилей, к которым применяются корпоративные облачные правила на уровне пользователя. Если используется версия от M77 до M80 включительно, <ph name="PRODUCT_NAME" /> также по умолчанию может собирать и загружать эти журналы из профилей, которые находятся под локальным управлением <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">порт 989 (можно разблокировать до 01.02.2022)</translation> -<translation id="4913065710388638917">Включение проверки для списка URL</translation> <translation id="4917385247580444890">Сильный</translation> <translation id="4918261735182294270">Разрешить пользователям самостоятельно решать, должна ли быть включена функция "<ph name="CHROME_SYNC_NAME" />"</translation> <translation id="491889618361437456">Включить интеграцию с сервисом "<ph name="GOOGLE_CALENDAR_NAME" />"</translation> @@ -5004,6 +5003,17 @@ Если задано значение True, сайты могут передавать модули WebAssembly между разными источниками без ограничений. Если правило не настроено или для него указано значение False, сайтам разрешается отправлять модули WebAssembly в скрипты Worker и окна, только если у них один источник.</translation> +<translation id="6005906773585863978">Укажите, может ли браузер использовать расширения с манифестом версии 2. + +В будущем поддержка таких расширений будет прекращена. Разрешено будет использовать только расширения с манифестом версии 3. Подробнее о сроках прекращения поддержки: https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Если правило не настроено или для него задано значение <ph name="DEFAULT" /> (0), браузер будет загружать расширения с манифестом версии 2, пока не истечет их срок поддержки. +Если для правила указано значение <ph name="DISABLE" /> (1), загрузка расширений с манифестом версии 2 будет заблокирована. Существующие расширения будут отключены. Такое же поведение будет в случае, если правило не настроено и расширения с манифестом версии 2 по умолчанию не поддерживаются. +Если выбрано значение <ph name="ENABLE" /> (2), загрузка расширений с манифестом версии 2 будет разрешена. Такое же поведение будет в случае, если правило не настроено и расширения с манифестом версии 2 по умолчанию поддерживаются. +Если для правила задано значение <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), разрешается использовать принудительно установленные расширения с манифестом версии 2. Это относится к расширениям, перечисленным в правилах <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> и <ph name="EXTENSION_SETTINGS_POLICY_NAME" />, если в качестве значения параметра <ph name="INSTALLATION_MODE" /> указано force_installed или normal_installed. Остальные расширения с манифестом версии 2 будут отключены. Такое же поведение будет в случае, если правило не настроено и расширения с манифестом версии 2 по умолчанию поддерживаются. + + +Доступность расширений по-прежнему определяется другими правилами.</translation> <translation id="6009062900206392980">Если для правила задано значение None, экранная лупа будет выключена на экране входа. Если вы настроите это правило, пользователи смогут временно включить или выключить экранную лупу. При перезагрузке экрана входа или после одной минуты бездействия будет восстановлено исходное состояние этой функции. @@ -5588,6 +5598,7 @@ Примечание. В настоящее время автоматическая перезагрузка выполняется только на экране входа или во время работы в киоск-приложении.</translation> <translation id="6556586932263358975">Разрешить блокировку экрана</translation> <translation id="6559057113164934677">Запретить сайтам доступ к камере и микрофону</translation> +<translation id="65591220958874949">Использовать встроенный клиент DNS клиент в Windows, macOS, Android и ChromeOS</translation> <translation id="6559221564468029245">Если правило включено или не настроено, воспроизведение аудио не считается бездействием. В этом случае период отсутствия активности не отсчитывается и действие не выполняется. Однако воспроизведение аудио не влияет на затемнение, отключение и блокировку экрана. Если правило отключено, воспроизведение аудио не воспринимается системой как действие.</translation> @@ -7322,17 +7333,6 @@ <translation id="8274603902181597201">Заменить исходный каталог пользователя, зашифрованный с помощью ecryptfs, каталогом, зашифрованным с помощью ext4</translation> <translation id="8274926413890711289">Включить элементы управления для отчетов с высокой детализацией</translation> <translation id="8278133379873210419">Запретить показывать диалоговые окна JavaScript, запущенные из других субфреймов</translation> -<translation id="8279037559659894049">Включить <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> для списка URL. - - Правило позволяет указать, какие URL могут проходить проверку и получать набор сигналов от компьютера. - - Если правило не настроено или в качестве значения указана пустая строка, никакие конечные точки не смогут начинать проверку и получать сигналы от компьютера. - - Примечание. Разрешены подстановочные знаки (<ph name="WILDCARD_VALUE" />). - - В ChromeOS это правило относится к удаленной проверке, во время которой автоматически генерируется сертификат, который затем загружается на сервер управления устройствами. - - Подробнее о допустимых шаблонах <ph name="URL_LABEL" />: https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Междоменные запросы аутентификации HTTP</translation> <translation id="8284527236880877730">Если правило <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> отключено, параметр <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> определяет, на сколько процентов увеличивается время до затемнения экрана при показе презентации. Пропорционально этому значению меняется время до отключения и блокировки экрана и период отсутствия активности.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 469eba6..422a395 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -2834,17 +2834,6 @@ การตั้งค่านโยบายเป็น "ปิดใช้" หมายความว่าระบบจะไม่ขอรหัสผ่านจากผู้ใช้เพื่อปลดล็อกอุปกรณ์ การไม่ตั้งค่านโยบายจะอนุญาตให้ผู้ใช้เลือกได้ว่าจะให้มีการขอรหัสผ่านเพื่อปลดล็อกอุปกรณ์หรือไม่</translation> -<translation id="3729689441404871493">เปิดใช้ <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> สำหรับรายการ URL ในหน้าจอการเข้าสู่ระบบและหน้าจอล็อก - - การตั้งค่านโยบายนี้จะระบุ URL ที่ควรได้เป็นส่วนหนึ่งของโฟลว์เอกสารรับรองเพื่อรับชุดสัญญาณจากเครื่อง - - การไม่ตั้งค่านโยบายนี้หรือปล่อยว่างไว้จะทำให้ปลายทางทั้งหมดไม่สามารถเริ่มโฟลว์เอกสารรับรองหรือได้รับสัญญาณจากเครื่อง - - หมายเหตุ: อนุญาตให้ใช้ไวลด์การ์ด <ph name="WILDCARD_VALUE" /> - - นโยบายนี้จะส่งผลต่อโฟลว์เอกสารรับรองในหน้าจอการเข้าสู่ระบบและหน้าจอล็อกเท่านั้น หากต้องการเปลี่ยนโฟลว์เอกสารรับรองในเซสชัน โปรดใช้นโยบาย <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> - - ดูข้อมูลโดยละเอียดเกี่ยวกับรูปแบบ <ph name="URL_LABEL" /> ที่ถูกต้องได้ที่ https://support.google.com/chrome/a?p=url_blocklist_filter_format</translation> <translation id="3729937245044939404">นโยบายนี้เลิกใช้งานไปแล้วใน M70 โปรดใช้ <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> และ <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> แทน เปิดใช้ฟีเจอร์ป้อนข้อความอัตโนมัติของ <ph name="PRODUCT_NAME" /> และอนุญาตให้ผู้ใช้เติมคำอัตโนมัติในเว็บฟอร์มโดยใช้ข้อมูลที่เก็บไว้ก่อนหน้านี้ เช่น ที่อยู่หรือข้อมูลบัตรเครดิต @@ -2910,7 +2899,6 @@ หมายเหตุ: สำหรับอุปกรณ์ที่จัดการโดย <ph name="MS_AD_NAME" /> นโยบายนี้รองรับการขยาย <ph name="MACHINE_NAME_VARIABLE" /> เป็นชื่อเครื่อง <ph name="MS_AD_NAME" /> หรือสตริงย่อย ตัวอย่างเช่น หากชื่อเครื่องคือ <ph name="MACHINE_NAME_EXAMPLE" /> ระบบจะแทนที่ <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> ด้วยอักขระ 4 ตัวที่เริ่มหลังจากตำแหน่งที่ 6 นั่นคือ <ph name="MACHINE_NAME_PART_EXAMPLE" /> ตำแหน่งจะเริ่มนับจากศูนย์</translation> <translation id="377044054160169374">การบังคับใช้การแทรกแซงเมื่อเกิดประสบการณ์ที่ไม่เหมาะสม</translation> -<translation id="3777833753656885744">เปิดใช้โฟลว์เอกสารรับรองสำหรับรายการ URL ในหน้าจอการเข้าสู่ระบบและหน้าจอล็อก</translation> <translation id="3778689139323007309">ตรวจสอบการเพิกถอนใบรับรองเซิร์ฟเวอร์ที่ได้รับการรับรองว่าใช้ได้โดยใบรับรอง CA ที่ติดตั้งไว้ในเครื่องอยู่เสมอ</translation> <translation id="3780152581321609624">รวมพอร์ตที่ไม่ใช่แบบมาตรฐานใน Kerberos SPN</translation> <translation id="378495749480642482">กำหนดค่าให้เว็บไซต์ที่ผู้ใช้ไปถึงได้รับอนุญาตให้สร้างเซสชัน Augmented Reality ที่สมจริงโดยใช้ <ph name="WEBXR_API_NAME" /> @@ -3945,7 +3933,6 @@ หากไม่ได้ตั้งค่านโยบายนี้ในเวอร์ชันตั้งแต่ M76 ลงมา โดยค่าเริ่มต้นของ <ph name="PRODUCT_NAME" /> จะรวบรวมหรืออัปโหลดบันทึกเหล่านี้ไม่ได้ เริ่มตั้งแต่เวอร์ชัน M77 ขึ้นไป ค่าเริ่มต้นของ <ph name="PRODUCT_NAME" /> จะรวบรวมและอัปโหลดบันทึกเหล่านี้ได้จากโปรไฟล์ส่วนใหญ่ที่ได้รับผลกระทบจากนโยบายองค์กรในระดับผู้ใช้บนระบบคลาวด์ ตั้งแต่เวอร์ชัน M77 ขึ้นไปจนถึงเวอร์ชัน M80 โดยค่าเริ่มต้น <ph name="PRODUCT_NAME" /> จะรวบรวมและอัปโหลดบันทึกเหล่านี้ได้จากโปรไฟล์ที่ได้รับผลกระทบจากการจัดการภายในองค์กรของ <ph name="PRODUCT_NAME" /></translation> <translation id="4911334289324462969">พอร์ต 989 (เลิกบล็อกได้จนถึง 01/02/2022)</translation> -<translation id="4913065710388638917">เปิดใช้โฟลว์เอกสารรับรองสำหรับรายการ URL</translation> <translation id="4917385247580444890">แรง</translation> <translation id="4918261735182294270">อนุญาตให้ผู้ใช้เลือกว่าจะเปิดใช้ <ph name="CHROME_SYNC_NAME" /> หรือไม่</translation> <translation id="491889618361437456">เปิดใช้การผสานรวม "<ph name="GOOGLE_CALENDAR_NAME" />"</translation> @@ -7273,17 +7260,6 @@ <translation id="8274603902181597201">ล้างข้อมูลไดเรกทอรีหลักที่เข้ารหัสของผู้ใช้และเริ่มด้วยไดเรกทอรีหลักใหม่แบบ ext4 ที่เข้ารหัส</translation> <translation id="8274926413890711289">เปิดใช้การควบคุมการรายงานแบบละเอียด</translation> <translation id="8278133379873210419">ระงับกล่องโต้ตอบ JavaScript ที่เกิดจากเฟรมย่อยที่เป็นต้นทางเฟรมอื่น</translation> -<translation id="8279037559659894049">เปิดใช้ <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> สำหรับรายการ URL - - การตั้งค่านโยบายนี้จะระบุ URL ที่ควรได้เป็นส่วนหนึ่งของโฟลว์เอกสารรับรองเพื่อรับชุดสัญญาณจากเครื่อง - - การไม่ตั้งค่านโยบายนี้หรือปล่อยว่างไว้จะทำให้ปลายทางทั้งหมดไม่สามารถเริ่มโฟลว์เอกสารรับรองหรือได้รับสัญญาณจากเครื่อง - - หมายเหตุ: อนุญาตให้ใช้ไวลด์การ์ด <ph name="WILDCARD_VALUE" /> - - สำหรับ ChromeOS นโยบายนี้เกี่ยวข้องกับเอกสารรับรองระยะไกลซึ่งระบบสร้างใบรับรองโดยอัตโนมัติแล้วอัปโหลดไปยังเซิร์ฟเวอร์การจัดการอุปกรณ์ - - ดูข้อมูลโดยละเอียดเกี่ยวกับรูปแบบ <ph name="URL_LABEL" /> ที่ถูกต้องได้ที่ https://support.google.com/chrome/a?p=url_blocklist_filter_format</translation> <translation id="8284296539558710573">พรอมต์การตรวจสอบสิทธิ์ HTTP แบบข้ามต้นทาง</translation> <translation id="8284527236880877730">หากปิดใช้ <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> การตั้งค่า <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> จะระบุเปอร์เซ็นต์การปรับขนาดการหน่วงเวลาการหรี่แสงหน้าจอเมื่ออุปกรณ์กำลังนำเสนอ เมื่อมีการปรับขนาดการหน่วงเวลาการหรี่แสง ระบบจะปรับการหน่วงเวลาของการปิดหน้าจอ การล็อกหน้าจอ ตลอดจนการหน่วงเวลาที่ไม่มีความเคลื่อนไหวเพื่อรักษาระยะห่างจากการหน่วงเวลาการหรี่แสงหน้าจอให้อยู่ในระดับเดียวกันกับค่าเดิมที่ตั้งไว้
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 0fbe5939..203b3fc 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -2854,17 +2854,6 @@ Politika, Devre Dışı değerine ayarlanırsa cihazın kilidini açmak için kullanıcılardan şifre istenmez. Politika ayarlanmadan bırakılırsa kullanıcı uykudaki cihazın kilidini açmak için şifre istenip istenmeyeceğini seçebilir.</translation> -<translation id="3729689441404871493">Giriş ve kilit ekranında URL listesi için <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> politikasını etkinleştirin. - - Bu politikanın ayarlanması, makineden sinyal grubu alma onay akışına dahil olmasına izin verilmesi gereken URL'leri belirtir. - - Bu politikanın ayarlanmadan veya boş bırakılması hiçbir uç noktanın onay akışı başlatamayacağı veya makineden sinyal alamayacağı anlamına gelir. - - Not: <ph name="WILDCARD_VALUE" /> joker karakterlerine izin verilir. - - Bu politika yalnızca giriş ve kilit ekranındaki onay akışını etkiler. Oturum içi onay akışını değiştirmek için lütfen <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> politikasını kullanın. - - Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://support.google.com/chrome/a?p=url_blocklist_filter_format adresine bakabilirsiniz.</translation> <translation id="3729937245044939404">Bu politika M70 sürümünde kullanımdan kaldırılmıştır. Lütfen bunun yerine <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> ve <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" /> politikalarını kullanın. <ph name="PRODUCT_NAME" /> içinde bulunan Otomatik Doldurma özelliğini etkinleştirir ve kullanıcıların adresler ve kredi kartı bilgileri gibi önceden saklanmış bilgileri kullanarak web formlarını otomatik bir şekilde doldurmalarına olanak sağlar. @@ -2930,7 +2919,6 @@ Not: <ph name="MS_AD_NAME" /> tarafından yönetilen cihazlarda bu politika, <ph name="MACHINE_NAME_VARIABLE" /> değişkeninin <ph name="MS_AD_NAME" /> makine adına veya bunun bir alt dizesine genişletilmesini destekler. Örneğin, makine adı <ph name="MACHINE_NAME_EXAMPLE" /> ise <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />, 6. konumdan sonra başlayan 4 karakterle değiştirilir (<ph name="MACHINE_NAME_PART_EXAMPLE" /> gibi). Konum sıfır tabanlıdır.</translation> <translation id="377044054160169374">Kötüye Kullanım Deneyimi Müdahele Yaptırımı</translation> -<translation id="3777833753656885744">Giriş ve kilit ekranında URL listesi için onay akışını etkinleştir</translation> <translation id="3778689139323007309">Yerel olarak yüklü CA sertifikaları tarafından imzalanmış başarıyla doğrulanmış sunucu sertifikaları için iptal kontrolleri gerçekleştir</translation> <translation id="3780152581321609624">Kerberos SPN'sine standart dışı bağlantı noktasını dahil et</translation> <translation id="378495749480642482">Kullanıcıların gittiği sitelerin, <ph name="WEBXR_API_NAME" /> API'yi kullanarak yoğun düzeyde Artırılmış Gerçeklik oluşturmasına izin verilip verilmeyeceğini yapılandırır. @@ -3972,7 +3960,6 @@ Bu politika ayarlanmadan bırakılırsa M76 ve önceki sürümlerde <ph name="PRODUCT_NAME" /> varsayılan olarak bu günlükleri toplayıp yükleyemez. M77'den itibaren <ph name="PRODUCT_NAME" /> varsayılan olarak, bu günlükleri bulut tabanlı kullanıcı düzeyi kurumsal politikalardan etkilenen profillerin çoğundan toplayıp yükleyebilir. M77'den M80'e (dahil) kadar, <ph name="PRODUCT_NAME" /> bu günlükleri varsayılan olarak <ph name="PRODUCT_NAME" /> şirket içi yönetiminden etkilenen profillerden toplayıp yükleyebilir.</translation> <translation id="4911334289324462969">bağlantı noktası 989 (01.02.2022'ye kadar engellemesi kaldırılabilir)</translation> -<translation id="4913065710388638917">URL listesi için onay akışını etkinleştir</translation> <translation id="4917385247580444890">Güçlü</translation> <translation id="4918261735182294270">Kullanıcıların, <ph name="CHROME_SYNC_NAME" /> için etkinleştirme yapıp yapmamayı seçmesine izin ver</translation> <translation id="491889618361437456"><ph name="GOOGLE_CALENDAR_NAME" /> entegrasyonunu etkinleştir</translation> @@ -4096,6 +4083,7 @@ <translation id="5025239932007658691">Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa <ph name="PRODUCT_NAME" />, doğru zaman damgası almak için bir Google sunucusuna ara sıra sorgu gönderir. Politika, Devre Dışı değerine ayarlanırsa <ph name="PRODUCT_NAME" />, bu sorguları göndermez.</translation> +<translation id="5033070732967197381">Sorunlu TLS sertifikalarına sahip sitelerde WebAuthn API isteklerine izin ver.</translation> <translation id="5034504101537897433">Cihaz kilitlenme raporu bilgi raporlamasını etkinleştir</translation> <translation id="5039110755072335605">CORS joker karakter olmayan istek başlıkları desteği</translation> <translation id="504116558738617678">Düşük disk alanı uyarılarını, yalnızca cihaz yönetilmiyorsa veya yalnızca 1 kullanıcı varsa göster</translation> @@ -5656,6 +5644,7 @@ - Bu politika Devre Dışı ise yöneticiler bunu cihazın son kullanıcılarına belirtmelidir.</translation> <translation id="6609867253856597039">Devre dışı bırakılan özelliklerle ilgili kullanıcı deneyimini ayarla</translation> <translation id="6614557704487944013">Kullanıcıların <ph name="LACROS_NAME" /> tarayıcıyı kullanmalarına izin ver</translation> +<translation id="661610294649586421">Sorunlu TLS sertifikalarına sahip sitelerde WebAuthn API isteklerine izin verme.</translation> <translation id="6617589895942747919">Aranın başlangıç zamanı (girilen tarihler dahil).</translation> <translation id="6621830999036927230">Politika ayarlanırsa uzaktan erişim ana makinesi, bağlantıları kabul etmek için uzaktan erişim istemcilerinin kimlik doğrulama jetonlarını doğrulamak üzere bu URL'yi kullanır. Boş bırakılır veya ayarlanmazsa bu özellik devre dışı bırakılır. @@ -5958,6 +5947,12 @@ <translation id="6907778402784621686">Bu sitelerde güvenli olmayan içeriği engelle</translation> <translation id="6908640907898649429">Varsayılan arama sağlayıcıyı yapılandırır. Kullanıcının kullanacağı varsayılan arama sağlayıcıyı belirleyebilir veya varsayılan aramayı devre dışı bırakmayı seçebilirsiniz.</translation> <translation id="6913068954484253496"><ph name="PRODUCT_NAME" /> ürününün tüm IP adreslerindeki Yayın cihazlarına bağlanmasına izin ver</translation> +<translation id="6915493311660114995">Politika, Etkin değerine ayarlanırsa <ph name="PRODUCT_NAME" /> +hatalı TLS sertifikası içeren web sitelerinde (yani, güvenli olmadığı düşünülen web sitelerinde) +web kimlik doğrulama isteklerine izin verir. + +Politika, Devre Dışı değerine ayarlanırsa veya ayarlanmadan bırakılırsa varsayılan +olarak bu tür istekleri engelleme davranışı geçerli olur.</translation> <translation id="6919819553978815392">Bu politika doğru değerine ayarlanırsa veya yapılandırılmazsa <ph name="PRODUCT_NAME" /> ve <ph name="LACROS_NAME" />, misafir girişlerini etkinleştirir. Misafir girişleri, tüm pencerelerin gizli modda olduğu <ph name="PRODUCT_NAME" /> profilleridir. Bu politika yanlış değerine ayarlanırsa <ph name="PRODUCT_NAME" /> ve <ph name="LACROS_NAME" />, misafir profillerinin başlatılmasına izin vermez. @@ -6874,6 +6869,7 @@ <translation id="782661371433719637">Hiçbir sitenin File System API üzerinden dosya ve dizinlere okuma erişimi istemesine izin verme</translation> <translation id="7827127381981620448">Platform uygulaması</translation> <translation id="7829436838673974723">Sayfa kapatma işlemi sırasında sayfaların eş zamanlı XHR istekleri göndermesine izin ver</translation> +<translation id="782978857350824974">Sorunlu TLS sertifikalarına sahip sitelerde web kimlik doğrulama isteklerine izin ver.</translation> <translation id="7832225468415136704">Chrome Temizleme özelliğinin, sistemi düzenli olarak taramasını engelle ve manuel taramaları devre dışı bırak</translation> <translation id="7833148823006528332">Android uygulaması tanımlayıcı (ör. Gmail için "com.google.android.gm")</translation> <translation id="7835218570504220753">Otomatik tıklamayı devre dışı bırak</translation> @@ -7268,6 +7264,7 @@ <translation id="8250048892729838843">Bu politika kullanımdan kaldırılmıştır. Politika, Etkin değerine ayarlanır veya ayarlanmadan bırakılırsa cihaz, ayrıntılı raporlama kontrolleri alabilir. Politika, Devre Dışı değerine ayarlanırsa kayıtlı cihazlar ayrıntılı raporlama kontrolleri alamaz.</translation> <translation id="82530263956734297">Engellenenler listesinden muaf tutulacak uzantı kimlikleri</translation> +<translation id="8256006033157034334">Bu politikanın desteği sonlandırıldığı için lütfen bunun yerine <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME_POLICY_NAME" /> politikasını kullanın.</translation> <translation id="8256688113167012935">Hesap adının (<ph name="PRODUCT_OS_NAME" />) ilgili cihaz-yerel hesap için giriş ekranında görüntülenip görüntülenmeyeceğini kontrol eder. Bu politika ayarlanırsa, giriş ekranı tarafından, ilgili cihaz-yerel hesap için resimle giriş seçicisinde belirtilen dize kullanılır. @@ -7305,17 +7302,6 @@ <translation id="8274603902181597201">Kullanıcının ecryptfs ana dizinini sil ve yeni bir ext4-encrypted ana diziniyle başla.</translation> <translation id="8274926413890711289">Ayrıntılı raporlama kontrollerini etkinleştir</translation> <translation id="8278133379873210419">Farklı kaynaklı alt çerçevelerden tetiklenen JavaScript İletişim Kutularını gizle</translation> -<translation id="8279037559659894049">URL listesi için <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> politikasını etkinleştirin. - - Bu politikanın ayarlanması, makineden sinyal grubu alma onay akışına dahil olmasına izin verilmesi gereken URL'leri belirtir. - - Bu politikanın ayarlanmadan veya boş bırakılması hiçbir uç noktanın onay akışı başlatamayacağı veya makineden sinyal alamayacağı anlamına gelir. - - Not: <ph name="WILDCARD_VALUE" /> joker karakterlerine izin verilir. - - ChromeOS'te bu politika, uzaktan onay ile sertifikanın otomatik olarak oluşturulup Cihaz Yönetim Sunucusuna yüklenmesiyle ilgilidir. - - Geçerli <ph name="URL_LABEL" /> kalıpları hakkında ayrıntılı bilgi için https://support.google.com/chrome/a?p=url_blocklist_filter_format adresine bakabilirsiniz.</translation> <translation id="8284296539558710573">Çapraz kaynak HTTP Kimlik Doğrulama istemleri</translation> <translation id="8284527236880877730"><ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" />, Devre Dışı değerine ayarlanırsa <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" />, cihaz sunum yaparken ekran kararma gecikmesinin ölçeklendiği yüzdeyi belirtir. Ekran kararma gecikmesi ölçeklendiğinde ekran kapanması, ekran kilidi ve boşta kalma gecikmeleriyle ilgili süreler, orijinal olarak ayarlanan ekran kararma gecikmesine göre aynı oran korunacak biçimde düzenlenir.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 3d3e558..ace6f898 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -2865,17 +2865,6 @@ Якщо це правило вимкнути, користувачі не отримуватимуть запит ввести пароль, щоб розблокувати пристрій. Якщо це правило не налаштувати, користувачі можуть указати, чи хочуть отримувати такий запит.</translation> -<translation id="3729689441404871493">Увімкнути <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> для списку URL-адрес на екрані входу й заблокованому екрані. - - Це правило визначає, які URL-адреси можуть проходити засвідчення й отримувати набір сигналів від машини. - - Якщо це правило не налаштувати або не вказати для нього значення, кінцева точка не зможе розпочати засвідчення й отримувати сигнали від машини. - - Примітка: символи підстановки (<ph name="WILDCARD_VALUE" />) дозволені. - - Це правило впливає лише на засвідчення на екрані входу й заблокованому екрані. Щоб змінити метод засвідчення під час сеансу, скористайтеся правилом <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Докладніше про дійсні шаблони <ph name="URL_LABEL" />-адрес можна дізнатися на сторінці https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Це правило більше не підтримується у версії M70. Натомість використовуйте правила <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> і <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Вмикає функцію автозаповнення в <ph name="PRODUCT_NAME" /> і дає змогу користувачам автоматично заповнювати веб-форми, використовуючи раніше збережену інформацію, наприклад адресу або дані кредитної картки. @@ -2941,7 +2930,6 @@ Примітка: якщо пристроями керує <ph name="MS_AD_NAME" />, це правило підтримує заміну <ph name="MACHINE_NAME_VARIABLE" /> назвою або частиною назви пристрою <ph name="MS_AD_NAME" />. Наприклад, якщо назва пристрою – <ph name="MACHINE_NAME_EXAMPLE" />, то <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> буде замінено 4 символами після 6-ї позиції, тобто <ph name="MACHINE_NAME_PART_EXAMPLE" />. Відлік позиції починається з нуля.</translation> <translation id="377044054160169374">Abusive Experience Intervention Enforce</translation> -<translation id="3777833753656885744">Увімкнути засвідчення для списку URL-адрес на екрані входу й заблокованому екрані</translation> <translation id="3778689139323007309">Перевіряти відкликання сертифікатів сервера, підтверджених і підписаних локально встановленими сертифікатами центру сертифікації</translation> <translation id="3780152581321609624">Включити нестандартний порт в ім’я учасника сервера (SPN) за протоколом Kerberos</translation> <translation id="378495749480642482">Визначає, чи можуть сайти, на які переходить користувач, створювати сеанси доповненої реальності з ефектом присутності через <ph name="WEBXR_API_NAME" />. @@ -3989,7 +3977,6 @@ Якщо це правило не налаштовано в М76 і старіших версіях, <ph name="PRODUCT_NAME" /> за умовчанням не зможе збирати й завантажувати ці журнали. Починаючи з версії M77, <ph name="PRODUCT_NAME" /> за умовчанням може збирати й завантажувати ці журнали з більшості профілів, до яких застосовуються корпоративні правила для користувачів на основі хмари. У версіях від M77 до M80 включно <ph name="PRODUCT_NAME" /> також може збирати й завантажувати ці журнали за умовчанням із профілів, якими керують локально в <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">порт 989 (можна розблокувати до 01.02.2022)</translation> -<translation id="4913065710388638917">Увімкнути засвідчення для списку URL-адрес</translation> <translation id="4917385247580444890">Потужний</translation> <translation id="4918261735182294270">Дати користувачам змогу вибирати, чи вмикати функцію <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">Увімкнути інтеграцію із сервісом <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -7293,6 +7280,7 @@ <translation id="8250048892729838843">Це правило не підтримується. Якщо ввімкнути або не налаштувати це правило, на пристрої будуть доступні елементи керування докладними звітами. Якщо його вимкнути, таких елементів не буде на зареєстрованих пристроях.</translation> <translation id="82530263956734297">Ідентифікатори розширень-винятків із чорного списку</translation> +<translation id="8256006033157034334">Це правило більше не підтримується. Натомість використовуйте <ph name="PRINTERS_BULK_ACCESS_MODE_POLICY_NAME_POLICY_NAME" />.</translation> <translation id="8256688113167012935">Контролюється, як <ph name="PRODUCT_OS_NAME" /> відображає ім’я облікового запису на екрані входу для відповідних локальних облікових записів у пристрої. Якщо це правило налаштовано, на екрані входу відображається рядок, указаний в інструменті вибору користувача для відповідного локального облікового запису в пристрої. @@ -7331,17 +7319,6 @@ <translation id="8274603902181597201">Видалити домашній каталог eCryptfs і перейти на нову версію із шифруванням ext4.</translation> <translation id="8274926413890711289">Увімкнути елементи керування докладними звітами</translation> <translation id="8278133379873210419">Заборонити вікна JavaScript, активовані зі сторонніх додаткових фреймів</translation> -<translation id="8279037559659894049">Увімкнути <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> для списку URL-адрес. - - Це правило визначає, які URL-адреси можуть проходити засвідчення й отримувати набір сигналів від машини. - - Якщо це правило не налаштувати або не вказати для нього значення, кінцева точка не зможе розпочати засвідчення й отримувати сигнали від машини. - - Примітка: символи підстановки (<ph name="WILDCARD_VALUE" />) дозволені. - - У ChromeOS це правило пов’язане з віддаленим засвідченням, під час якого сертифікат автоматично створюватиметься та завантажуватиметься на сервер керування пристроями. - - Докладніше про дійсні шаблони <ph name="URL_LABEL" />-адрес можна дізнатися на сторінці https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Міждоменні запити автентифікації HTTP</translation> <translation id="8284527236880877730">Якщо правило <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> вимкнено, за допомогою правила <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> можна вказати, на скільки відсотків збільшити затримку затемнення екрана пристрою в режимі презентації. Якщо затримка затемнення екрана збільшується, затримки вимкнення, блокування й неактивності екрана відповідно коригуються.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index 08b97fa6..072e834 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -205,6 +205,7 @@ Nếu bạn đặt chính sách này thành False, thì hộp đánh dấu "Luôn cho phép" sẽ không hiển thị và người dùng sẽ nhận được lời nhắc mỗi khi hệ thống gọi giao thức bên ngoài.</translation> <translation id="1181598794547737681">Bật giao diện người dùng bong bóng tải xuống</translation> +<translation id="1184562656144537588">Manifest v2 chỉ được bật cho những tiện ích bắt buộc</translation> <translation id="11903325225202653">Khi bạn đặt chính sách này thành True, chế độ tương phản cao sẽ luôn bật. Khi bạn đặt chính sách này thành False, chế độ tương phản cao sẽ luôn tắt. Nếu bạn đặt chính sách này, thì người dùng sẽ không thể thay đổi được. Nếu bạn không đặt chính sách này, thì chế độ tương phản cao sẽ tắt, nhưng người dùng có thể bật bất cứ lúc nào.</translation> @@ -1520,6 +1521,7 @@ Bạn phải chỉ định giá trị của chính sách bằng ngày.</translation> <translation id="2466131534462628618">Xác thực cổng cố định bỏ qua proxy</translation> +<translation id="2467181864598429837">Hành vi mặc định của trình duyệt</translation> <translation id="2467896267442150508">Khoảng thời gian kéo dài tối đa 1 tuần. Nếu thời gian bắt đầu ở sau thời gian kết thúc, thì khoảng thời gian này sẽ kéo dài trong khoảng đó.</translation> <translation id="2476249479201711962">Bật quyền truy cập trình đơn theo bối cảnh của nhà cung cấp dịch vụ tìm kiếm mặc định</translation> <translation id="247658312644322296">Đích 'Lưu dưới dạng PDF'</translation> @@ -2675,6 +2677,7 @@ <translation id="3524204464536655762">Không cho phép bất kỳ trang web nào yêu cầu quyền truy cập vào thiết bị USB qua API WebUSB</translation> <translation id="3526752951628474302">Chỉ in đen trắng</translation> <translation id="3528000905991875314">Bật các trang lỗi thay thế</translation> +<translation id="3528681240373634003">Kiểm soát khả năng sử dụng tiện ích Manifest v2.</translation> <translation id="3530249698314520116">Định cấu hình danh sách các quy tắc để ngăn rò rỉ dữ liệu trên <ph name="PRODUCT_OS_NAME" />. Rò rỉ dữ liệu có thể xảy ra khi bạn sao chép và dán dữ liệu, chuyển tệp, in, chia sẻ màn hình hoặc chụp ảnh màn hình và làm nhiều việc khác. @@ -2867,17 +2870,6 @@ Nếu bạn đặt chính sách này thành Tắt, thì người dùng sẽ không cần nhập mật khẩu để mở khoá thiết bị. Nếu bạn không đặt chính sách này, thì người dùng có thể chọn có nhắc nhập mật khẩu để mở khoá thiết bị hay không.</translation> -<translation id="3729689441404871493">Bật <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> cho một danh sách URL trên màn hình đăng nhập và màn hình khoá. - - Việc đặt chính sách này sẽ chỉ định những URL được phép đưa vào quy trình chứng thực để nhận được loạt tín hiệu từ máy. - - Nếu bạn không đặt hoặc để trống chính sách này thì sẽ không có thiết bị đầu cuối nào có thể bắt đầu quy trình chứng thực hay nhận tín hiệu từ máy. - - Lưu ý: Cho phép sử dụng ký tự đại diện <ph name="WILDCARD_VALUE" />. - - Chính sách này sẽ chỉ tác động đến quy trình chứng thực trên màn hình đăng nhập và màn hình khoá. Để thay đổi quy trình chứng thực trong phiên hoạt động, vui lòng sử dụng chính sách <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" />. - - Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="3729937245044939404">Chính sách này không còn dùng trong M70, thay vào đó, hãy dùng <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> và <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />. Bật tính năng Tự động điền của <ph name="PRODUCT_NAME" /> và cho phép người dùng tự động hoàn thành các biểu mẫu web bằng cách dùng thông tin đã lưu trữ trước đây, chẳng hạn như địa chỉ và thông tin thẻ tín dụng. @@ -2943,7 +2935,6 @@ Lưu ý: Đối với các thiết bị được quản lý <ph name="MS_AD_NAME" />, chính sách này hỗ trợ việc mở rộng <ph name="MACHINE_NAME_VARIABLE" /> sang tên máy <ph name="MS_AD_NAME" /> hoặc một chuỗi con của biến đó. Ví dụ: nếu tên máy là <ph name="MACHINE_NAME_EXAMPLE" />, <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> sẽ được thay bằng 4 ký tự bắt đầu sau vị trí thứ 6, nói cách khác là sẽ được thay bằng <ph name="MACHINE_NAME_PART_EXAMPLE" />. Vị trí này dựa trên mốc 0.</translation> <translation id="377044054160169374">Thực thi can thiệp trải nghiệm lạm dụng</translation> -<translation id="3777833753656885744">Bật quy trình chứng thực cho một danh sách URL trên màn hình đăng nhập và màn hình khoá</translation> <translation id="3778689139323007309">Thực hiện quá trình kiểm tra trạng thái thu hồi đối của các chứng chỉ máy chủ đã xác thực thành công, được ký theo chứng chỉ CA đã cài đặt trên máy</translation> <translation id="3780152581321609624">Bao gồm cổng không chuẩn trong Kerberos SPN</translation> <translation id="378495749480642482">Định cấu hình liệu các trang web mà người dùng chuyển đến có được phép tạo các phiên Thực tế tăng cường sống động bằng cách sử dụng <ph name="WEBXR_API_NAME" /> hay không. @@ -3160,6 +3151,7 @@ <translation id="3990391739475801018">Chế độ tiết kiệm pin sẽ tắt.</translation> <translation id="3994043824457743421">Cho thông báo giữa trang xuất hiện trên trang Thẻ mới</translation> <translation id="399433537808390819">Không cung cấp Chế độ màn hình hợp nhất cho người dùng</translation> +<translation id="3995880046827722248">Manifest v2 bị vô hiệu hoá</translation> <translation id="3996325823532867220">Chính sách này không còn được hỗ trợ. Tuy nhiên, chính sách liên quan <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> có thể được hỗ trợ trên một số nền tảng nhất định. Khi bạn bật chế độ cài đặt này, <ph name="PRODUCT_NAME" /> sẽ sử dụng trình xác minh chứng chỉ tích hợp sẵn để xác minh chứng chỉ máy chủ. @@ -3661,6 +3653,7 @@ Nếu bạn không đặt chính sách này, thì người dùng có thể tắt bất kỳ plugin nào đã cài đặt trên hệ thống.</translation> <translation id="4549405078915181477">Bật tính năng Thời gian sử dụng thiết bị đối với các trang web</translation> +<translation id="4549695018986780856">Manifest v2 được bật</translation> <translation id="4554651132977135445">Chế độ xử lý vòng lặp trở lại của chính sách người dùng</translation> <translation id="4554991346503872538">Không bao giờ cung cấp bản dịch</translation> <translation id="4555850956567117258">Cho phép chứng thực từ xa cho người dùng</translation> @@ -3989,7 +3982,6 @@ Nếu bạn không đặt chính sách này trên các phiên bản M76 trở xuống, thì <ph name="PRODUCT_NAME" /> sẽ không thể thu thập và tải các nhật ký này lên theo mặc định. Kể từ phiên bản M77, theo mặc định, <ph name="PRODUCT_NAME" /> sẽ có thể thu thập và tải các nhật ký này lên từ hầu hết các hồ sơ chịu ảnh hưởng của chính sách doanh nghiệp dựa trên đám mây ở cấp người dùng. Kể từ phiên bản M77 đến M80, theo mặc định, <ph name="PRODUCT_NAME" /> cũng có thể thu thập và tải các nhật ký này lên từ các hồ sơ chịu ảnh hưởng của tính năng quản lý tại chỗ của <ph name="PRODUCT_NAME" />.</translation> <translation id="4911334289324462969">cổng 989 (có thể được bỏ chặn cho đến ngày 1/2/2022)</translation> -<translation id="4913065710388638917">Bật quy trình chứng thực cho một danh sách các URL</translation> <translation id="4917385247580444890">Mạnh</translation> <translation id="4918261735182294270">Cho phép người dùng chọn có bật <ph name="CHROME_SYNC_NAME" /> hay không</translation> <translation id="491889618361437456">Bật tính năng tích hợp <ph name="GOOGLE_CALENDAR_NAME" /></translation> @@ -5014,6 +5006,17 @@ Khi bạn đặt chính sách này thành Đúng, các trang web cũng có thể gửi mô-đun WebAssembly trên nhiều nguồn gốc mà không có hạn chế. Khi bạn đặt chính sách này thành Sai hoặc không đặt chính sách, các trang web chỉ có thể gửi mô-đun WebAssembly đến các cửa sổ và trình chạy dịch vụ trên cùng một nguồn gốc.</translation> +<translation id="6005906773585863978">Kiểm soát xem trình duyệt có thể sử dụng tiện ích Manifest v2 hay không. + +Chúng tôi sẽ ngừng hỗ trợ tiện ích Manifest v2 và cần di chuyển tất cả tiện ích sang v3 trong tương lai. Bạn có thể tìm thêm thông tin và tiến trình di chuyển tại https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/. + +Nếu bạn đặt chính sách này thành <ph name="DEFAULT" /> (0) hoặc không đặt, thì quá trình tải các tiện ích v2 sẽ do trình duyệt quyết định, theo tiến trình nêu trên. +Nếu bạn đặt chính sách này thành <ph name="DISABLE" /> (1), thì việc cài đặt các tiện ích v2 sẽ bị chặn còn các tiện ích hiện có sẽ bị vô hiệu hoá. Tuỳ chọn này sẽ được xử lý giống như trường hợp bạn không đặt chính sách này sau khi tính năng hỗ trợ v2 bị tắt theo mặc định. +Nếu bạn đặt chính sách này thành <ph name="ENABLE" /> (2), thì các tiện ích v2 sẽ được cho phép. Tuỳ chọn này sẽ được xử lý giống như trường hợp bạn không đặt chính sách này trước khi tính năng hỗ trợ v2 bị tắt theo mặc định. +Nếu bạn đặt chính sách này thành <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3), thì các tiện ích v2 bị buộc cài đặt sẽ được cho phép. Phạm vi bao gồm các tiện ích được <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> hoặc <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> liệt kê với <ph name="INSTALLATION_MODE" /> là "force_install" hoặc "normal_install". Tất cả các tiện ích v2 khác đều bị vô hiệu hoá. Tuỳ chọn này sẽ được xử lý giống như trường hợp bạn không đặt chính sách này trước khi tính năng hỗ trợ v2 bị tắt theo mặc định. + + +Khả năng sử dụng tiện ích vẫn chịu sự kiểm soát của các chính sách khác.</translation> <translation id="6009062900206392980">Khi bạn đặt chính sách này thành None, tính năng phóng to màn hình sẽ tắt trên màn hình đăng nhập. Nếu bạn đặt chính sách này, thì người dùng có thể tạm thời bật hoặc tắt tính năng phóng to màn hình. Khi màn hình đăng nhập tải lại hoặc không hoạt động trong vài phút, tính năng phóng to màn hình sẽ trở về trạng thái ban đầu. @@ -5741,6 +5744,13 @@ Nếu bạn đặt chính sách này thành False, thì thanh địa chỉ sẽ hiển thị URL mặc định. Nếu bạn không đặt chính sách này, thì thanh địa chỉ sẽ hiển thị URL mặc định. Đồng thời, người dùng sẽ có thể chuyển đổi giữa chế độ hiển thị URL mặc định và đầy đủ bằng tùy chọn trình đơn ngữ cảnh. </translation> +<translation id="6670716303606644752">Theo thông tin mô tả tại https://www.chromestatus.com/feature/5148698084376576, các hộp thoại kiểu JavaScript, do <ph name="JS_ALERT" />, <ph name="JS_CONFIRM" /> và <ph name="JS_PROMPT" /> kích hoạt, sẽ bị chặn trong <ph name="PRODUCT_NAME" /> nếu được kích hoạt từ một khung phụ không có cùng nguồn gốc với khung chính. + +Chính sách này cho phép ghi đè sự thay đổi đó. +Nếu bạn đặt chính sách này thành bật hoặc không đặt, thì hộp thoại JavaScript kích hoạt từ một khung phụ có nguồn gốc khác sẽ bị chặn. +Nếu bạn đặt chính sách này thành tắt, thì hộp thoại JavaScript kích hoạt từ một khung phụ có nguồn gốc khác sẽ không bị chặn. + +Trong tương lai, chúng tôi sẽ loại bỏ chính sách này khỏi <ph name="PRODUCT_NAME" />.</translation> <translation id="6670794785040100077">Không cho phép gửi tài liệu tới <ph name="CLOUD_PRINT_NAME" /></translation> <translation id="6672070613706645316">Cho phép người dùng tùy chỉnh nền trên trang Thẻ mới</translation> <translation id="6672630473862787247">Bật quy trình xác thực môi trường xung quanh trong các phiên khách, phiên thông thường và phiên ẩn danh.</translation> @@ -7336,17 +7346,6 @@ <translation id="8274603902181597201">Xóa thư mục chính ecryptf của người dùng và bắt đầu bằng một thư mục chính mới được mã hóa ext4.</translation> <translation id="8274926413890711289">Bật các biện pháp kiểm soát báo cáo chi tiết</translation> <translation id="8278133379873210419">Ngăn các Hộp thoại JavaScript được kích hoạt từ một khung phụ có nguồn gốc khác</translation> -<translation id="8279037559659894049">Bật <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" /> cho một danh sách URL. - - Việc đặt chính sách này sẽ chỉ định những URL được phép đưa vào quy trình chứng thực để nhận được loạt tín hiệu từ máy. - - Nếu bạn không đặt hoặc để trống chính sách này thì sẽ không có thiết bị đầu cuối nào có thể bắt đầu quy trình chứng thực hay nhận tín hiệu từ máy. - - Lưu ý: Cho phép sử dụng ký tự đại diện <ph name="WILDCARD_VALUE" />. - - Đối với ChromeOS, chính sách này có liên quan đến chương trình chứng thực từ xa. Theo chương trình này, một chứng chỉ sẽ tự động được tạo và tải lên Máy chủ quản lý thiết bị. - - Để biết thông tin chi tiết về các mẫu <ph name="URL_LABEL" /> hợp lệ, vui lòng xem tại https://support.google.com/chrome/a?p=url_blocklist_filter_format.</translation> <translation id="8284296539558710573">Lời nhắc xác thực HTTP trên nhiều nguồn gốc</translation> <translation id="8284527236880877730">Nếu bạn đặt <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> thành Tắt, việc đặt <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> sẽ chỉ định tỷ lệ phần trăm mà theo đó thời gian trì hoãn giảm độ sáng màn hình sẽ thay đổi khi thiết bị đang trình chiếu. Khi thời gian trì hoãn giảm độ sáng thay đổi, thời gian trì hoãn tắt màn hình, thời gian trì hoãn khóa màn hình và thời gian trì hoãn khi ở chế độ tạm vắng sẽ điều chỉnh để duy trì cùng khoảng thời gian với thời gian trì hoãn giảm độ sáng màn hình như được đặt ban đầu.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index fc64e42..afcc04ac 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -205,6 +205,7 @@ 如果您将此政策设为 false,系统将不会显示“始终打开”复选框,并且在每次调用外部协议时都会提示用户。</translation> <translation id="1181598794547737681">启用下载气泡界面</translation> +<translation id="1184562656144537588">仅为强制安装的扩展程序启用 Manifest V2</translation> <translation id="11903325225202653">将此政策设为 True 会使高对比度模式保持开启状态。将此政策设为 False 会使高对比度模式保持关闭状态。 如果您设置了此政策,用户便无法更改它。如果您未设置此政策,高对比度模式会处于关闭状态,但用户可随时开启它。</translation> @@ -1510,6 +1511,7 @@ 此政策的值应以天为单位。</translation> <translation id="2466131534462628618">进行强制门户身份验证时忽略代理服务器</translation> +<translation id="2467181864598429837">默认浏览器行为</translation> <translation id="2467896267442150508">持续时间不超过 1 周的间隔时段。如果开始时间晚于结束时间,该间隔时段会跨周。</translation> <translation id="2476249479201711962">允许在上下文菜单中使用默认搜索服务提供商</translation> <translation id="247658312644322296">“另存为 PDF”目的地</translation> @@ -2632,6 +2634,7 @@ <translation id="3524204464536655762">不允许任何网站通过 WebUSB API 请求访问 USB 设备</translation> <translation id="3526752951628474302">仅限单色打印</translation> <translation id="3528000905991875314">启用备用的错误页面</translation> +<translation id="3528681240373634003">控制 Manifest V2 扩展程序的可用性。</translation> <translation id="3530249698314520116">配置一个规则列表,以防止 <ph name="PRODUCT_OS_NAME" /> 上发生数据泄露。 复制和粘贴数据、传输文件、打印、共享屏幕或截屏等操作都可能会导致数据泄露。 @@ -2823,17 +2826,6 @@ 如果此政策已停用,系统将不会要求用户提供密码来解锁设备。 如果您未设置此政策,用户可选择是否让系统提示输入密码以设备解锁。</translation> -<translation id="3729689441404871493">旨在以列表形式为登录屏幕和锁定的屏幕上的一系列网址启用 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />。 - - 通过设置此政策,您可以指定应允许哪些网址参与认证流程,以便接收来自计算机的一系列信号。 - - 如果您未设置此政策或将其留空,任何端点都将无法启动认证流程,也无法接收来自计算机的信号。 - - 注意:允许使用通配符 <ph name="WILDCARD_VALUE" />。 - - 此政策只会影响登录屏幕和锁定的屏幕上的认证流程。如需更改会话期间认证流程,请使用 <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> 政策。 - - 如需详细了解有效<ph name="URL_LABEL" />格式,请访问 https://support.google.com/chrome/a?p=url_blocklist_filter_format。</translation> <translation id="3729937245044939404">此政策已在 M70 中弃用,请改用 <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> 和 <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />。 此政策会启用 <ph name="PRODUCT_NAME" /> 的“自动填充”功能,并允许用户使用先前存储的信息(例如地址或信用卡信息)自动填写网络表单。 @@ -2898,7 +2890,6 @@ 注意:对于 <ph name="MS_AD_NAME" /> 管理的设备,此政策支持将 <ph name="MACHINE_NAME_VARIABLE" /> 扩展为 <ph name="MS_AD_NAME" /> 机器名称或其子字符串。例如,如果机器名称是“<ph name="MACHINE_NAME_EXAMPLE" />”,<ph name="MACHINE_NAME_VARIABLE_EXAMPLE" /> 便会被替换为第 6 个字符后面的 4 个字符(即 <ph name="MACHINE_NAME_PART_EXAMPLE" />)。位置序数从 0 起算。</translation> <translation id="377044054160169374">针对误导性体验的强制干预政策</translation> -<translation id="3777833753656885744">为登录屏幕和锁定的屏幕上的网址列表启用认证流程</translation> <translation id="3778689139323007309">对于已成功通过验证且已由安装在本地的 CA 证书签名的服务器证书,一律执行撤消检查</translation> <translation id="3780152581321609624">在 Kerberos SPN 中加入非标准端口</translation> <translation id="378495749480642482">此政策旨在配置是否允许用户所导航到的网站使用 <ph name="WEBXR_API_NAME" /> 创建沉浸式增强现实会话。 @@ -3008,6 +2999,13 @@ 如果此政策设为 2,系统会阻止含侵扰性广告的网站展示广告。</translation> <translation id="3877517141460819966">集成的双重身份验证模式</translation> +<translation id="3877908683993837673">此政策用于控制使用哪个软件堆栈与 DNS 服务器通信:操作系统 DNS 客户端或 <ph name="PRODUCT_NAME" /> 的内置 DNS 客户端。此政策不会影响使用哪些 DNS 服务器:例如,如果操作系统已配置为使用一台企业 DNS 服务器,内置 DNS 客户端也会使用这台服务器。此政策也不会控制是否使用 DNS-over-HTTPS;<ph name="PRODUCT_NAME" /> 将始终使用内置的解析器发送 DNS-over-HTTPS 请求。如需了解如何控制 DNS-over-HTTPS,请参阅 <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> 政策。 + + 如果此政策已启用,系统将会使用内置 DNS 客户端(如果可用)。 + + 如果此政策已停用,只有当 DNS-over-HTTPS 正在使用中时,系统才会使用内置 DNS 客户端。 + + 如果此政策未设置,在 <ph name="MS_WIN_NAME" />、<ph name="MAC_OS_NAME" />、<ph name="ANDROID_NAME" />(当专用 DNS 和 VPN 均未启用时)和 <ph name="PRODUCT_OS_NAME" /> 中,内置 DNS 客户端将会默认处于启用状态。</translation> <translation id="3879208481373875102">配置强制安装的 Web 应用的列表</translation> <translation id="3879700444818346084">禁止在首次运行时导入已保存的密码</translation> <translation id="388237772682176890">我们在 M53 中弃用了此政策,并在 M54 中移除了此政策(因为 SPDY/3.1 已不再受支持)。 @@ -3108,6 +3106,7 @@ <translation id="3990391739475801018">系统将停用省电模式。</translation> <translation id="3994043824457743421">在“新标签页”页面上显示中间槽通知</translation> <translation id="399433537808390819">不为用户提供统一桌面模式选项</translation> +<translation id="3995880046827722248">停用 Manifest V2</translation> <translation id="3996325823532867220">此政策已不再受支持,但特定平台可能支持相关政策 <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />。 如果此设置已启用,<ph name="PRODUCT_NAME" /> 将会使用内置的证书验证程序来验证服务器证书。 @@ -3609,6 +3608,7 @@ 如果未设置此政策,则用户可以停用系统中安装的任何插件。</translation> <translation id="4549405078915181477">为网站启用“设备使用时间”功能</translation> +<translation id="4549695018986780856">启用 Manifest V2</translation> <translation id="4554651132977135445">用户政策环回处理模式</translation> <translation id="4554991346503872538">一律不提供翻译</translation> <translation id="4555850956567117258">为该用户启用远程认证</translation> @@ -3925,7 +3925,6 @@ 在 M76 或更早版本中,不设置此政策意味着 <ph name="PRODUCT_NAME" /> 默认无法收集和上传这些日志。从 M77 开始,<ph name="PRODUCT_NAME" /> 默认能够从受基于云的用户级企业政策影响的大多数个人资料中收集并上传这些日志。从 M77 到 M80(含),<ph name="PRODUCT_NAME" /> 还默认能从受 <ph name="PRODUCT_NAME" /> 本地管理功能影响的个人资料中收集并上传这些日志。</translation> <translation id="4911334289324462969">端口 989(可在 2022 年 2 月 1 日之前解禁)</translation> -<translation id="4913065710388638917">为一个网址列表启用认证流程</translation> <translation id="4917385247580444890">强</translation> <translation id="4918261735182294270">允许用户选择是否启用 <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">启用 <ph name="GOOGLE_CALENDAR_NAME" />集成</translation> @@ -4048,6 +4047,7 @@ <translation id="5025239932007658691">如果此政策已启用或未设置,<ph name="PRODUCT_NAME" /> 会不定时向 Google 服务器发送查询以检索准确的时间戳。 如果此政策已停用,系统会阻止 <ph name="PRODUCT_NAME" /> 发送此类查询。</translation> +<translation id="5033070732967197381">允许在 TLS 证书已损坏的网站上发出 WebAuthn API 请求。</translation> <translation id="5034504101537897433">启用设备崩溃报告信息报告功能</translation> <translation id="5039110755072335605">对 CORS 非通配符式请求标头的支持情况</translation> <translation id="504116558738617678">仅在相应设备不受管理或只有 1 个用户时显示磁盘空间不足警告</translation> @@ -4934,6 +4934,17 @@ 如果此政策设为 True,网站不仅能发送 WebAssembly 模块,而且能不受限制地跨源发送。 如果此政策设为 False 或未设置,网站只能将 WebAssembly 模块发送到同源的窗口和工作器。</translation> +<translation id="6005906773585863978">控制浏览器是否可以使用 Manifest V2 扩展程序。 + +对 Manifest V2 扩展程序的支持将被弃用,日后所有扩展程序都需要迁移到 v3。如需了解详情和迁移时间轴,请访问 https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/。 + +如果此政策设为 <ph name="DEFAULT" /> (0) 或未设置,浏览器会根据上述时间轴决定是否加载 V2 扩展程序。 +如果此政策设为 <ph name="DISABLE" /> (1),系统会禁止安装 V2 扩展程序,并停用已安装的这类扩展程序。在 V2 支持被默认关闭之后,系统对该选项的处理方式将与未设置此政策时的情形相同。 +如果此政策设为 <ph name="ENABLE" /> (2),系统将允许安装 V2 扩展程序。在 V2 支持被默认关闭之前,系统对该选项的处理方式将与未设置此政策时的情形相同。 +如果此政策设为 <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3),系统将允许使用强制安装的 V2 扩展程序。这包括由 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> 或 <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> 列出且 <ph name="INSTALLATION_MODE" /> 为“force_installed”或“normal_installed”的扩展程序。所有其他 V2 扩展程序均会被停用。在 V2 支持被默认关闭之前,系统对该选项的处理方式将与未设置此政策时的情形相同。 + + +扩展程序的可用性仍由其他政策控制。</translation> <translation id="6009062900206392980">将此政策设为 None 时,系统会在登录屏幕上关闭屏幕放大功能。 如果您设置了此政策,用户便可暂时开启或关闭放大镜。当登录屏幕重新加载或闲置了 1 分钟后,放大镜就会还原为初始状态。 @@ -5504,6 +5515,7 @@ 请注意:目前,系统仅会在显示登录屏幕或使用自助服务终端应用期间启用自动重新启动。</translation> <translation id="6556586932263358975">允许锁定屏幕</translation> <translation id="6559057113164934677">不允许任何网站使用摄像头和麦克风</translation> +<translation id="65591220958874949">在 Windows、macOS、Android 和 ChromeOS 中使用内置 DNS 客户端</translation> <translation id="6559221564468029245">如果此政策已启用或未设置,播放音频时设备不会被视为闲置。这样就不会导致闲置超时,系统也不会执行闲置操作。不过,在达到配置的超时值后,尽管存在音频活动,屏幕仍会变暗、关闭和锁定。 如果此政策已停用,则即使存在音频活动,系统仍会将设备视为闲置。</translation> @@ -5591,6 +5603,7 @@ - 如果此政策已停用,管理员必须将这项设置告知设备的最终用户。</translation> <translation id="6609867253856597039">设置已停用功能的用户体验</translation> <translation id="6614557704487944013">允许用户使用 <ph name="LACROS_NAME" /> 浏览器</translation> +<translation id="661610294649586421">禁止在 TLS 证书已损坏的网站上发出 WebAuthn API 请求。</translation> <translation id="6617589895942747919">间隔时段(含端点值)的开始时间。</translation> <translation id="6621830999036927230">如果您设置了此政策,远程访问主机会使用该网址来验证远程访问客户端的身份验证令牌,以便确定是否接受连接。如果您未设置此政策或将它留空,系统会停用此功能。 @@ -5893,6 +5906,9 @@ <translation id="6907778402784621686">禁止在这些网站上显示不安全内容</translation> <translation id="6908640907898649429">配置默认搜索服务提供商。您可以指定用户会使用的默认搜索服务提供商,或选择停用默认搜索。</translation> <translation id="6913068954484253496">允许 <ph name="PRODUCT_NAME" /> 连接到位于所有 IP 地址的 Cast 设备。</translation> +<translation id="6915493311660114995">如果此政策已启用,<ph name="PRODUCT_NAME" /> 将允许在 TLS 证书含有错误的网站(即,那些被视为不安全的网站)上发出网络身份验证请求。 + +如果此政策已停用或未设置,系统将会应用默认行为(即,屏蔽这类请求)。</translation> <translation id="6919819553978815392">如果此政策设为 true 或未配置,<ph name="PRODUCT_NAME" /> 和 <ph name="LACROS_NAME" /> 将会允许以访客身份登录。访客身份是一类 <ph name="PRODUCT_NAME" /> 个人资料;使用此类个人资料登录后,所有窗口均会处于无痕模式。 如果此政策设为 false,<ph name="PRODUCT_NAME" /> 和 <ph name="LACROS_NAME" /> 将会禁止启用访客个人资料。 @@ -6801,6 +6817,7 @@ <translation id="782661371433719637">不允许任何网站通过 File System API 请求对文件和目录的读取权限</translation> <translation id="7827127381981620448">平台应用</translation> <translation id="7829436838673974723">允许页面在关闭期间发送同步 XHR 请求</translation> +<translation id="782978857350824974">允许在 TLS 证书已损坏的网站上发出网络身份验证请求。</translation> <translation id="7832225468415136704">禁止 Chrome 清理功能定期扫描系统并停用人工扫描</translation> <translation id="7833148823006528332">Android 应用标识符,例如“com.google.android.gm”是 Gmail 的标识符</translation> <translation id="7835218570504220753">禁止自动点击</translation> @@ -7228,17 +7245,6 @@ <translation id="8274603902181597201">清空用户的 ecryptfs 主目录,并改用全新的 ext4 加密主目录。</translation> <translation id="8274926413890711289">启用精细报告控件</translation> <translation id="8278133379873210419">禁止显示从其他来源的子框架触发的 JavaScript 对话框</translation> -<translation id="8279037559659894049">旨在以列表形式为一系列网址启用 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />。 - - 通过设置此政策,您可以指定应允许哪些网址参与认证流程,以便接收来自计算机的一系列信号。 - - 如果您未设置此政策或将其留空,任何端点都将无法启动认证流程,也无法接收来自计算机的信号。 - - 注意:允许使用通配符 <ph name="WILDCARD_VALUE" />。 - - 对于 ChromeOS,此政策会与远程认证关联,在这种情况下,系统会自动生成一个证书,并将其上传到设备管理服务器。 - - 如需详细了解有效<ph name="URL_LABEL" />格式,请访问 https://support.google.com/chrome/a?p=url_blocklist_filter_format。</translation> <translation id="8284296539558710573">跨域 HTTP 身份验证提示</translation> <translation id="8284527236880877730">如果 <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> 已停用,您可以通过设置 <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> 来指定:当设备处于演示模式时,系统应该对屏幕变暗延迟时间采取的调整幅度(百分比)。调整屏幕变暗延迟时间时,系统会随之调整屏幕关闭延迟时间、屏幕锁定延迟时间和闲置延迟时间,以使它们保持在原有设置下与屏幕变暗延迟时间的间隔。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index be4c5bf..bedd69c 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -204,6 +204,7 @@ 如果將這項政策設為 False,系統將不會顯示「一律允許」核取方塊,並會在每次叫用外部通訊協定時向使用者顯示提示。</translation> <translation id="1181598794547737681">啟用下載對話框 UI</translation> +<translation id="1184562656144537588">僅針對強制安裝的擴充功能啟用資訊清單 v2</translation> <translation id="11903325225202653">將這項政策設為 True 時,系統會讓高對比模式保持在啟用狀態。將這項政策設為 False 時,系統會讓高對比模式保持在停用狀態。 如果設定這項政策,使用者將無法變更。如果未設定,系統會停用高對比模式,但使用者隨時可以啟用。</translation> @@ -1509,6 +1510,7 @@ 指定政策值時需以天為單位。</translation> <translation id="2466131534462628618">要求網頁認證入口的驗證機制忽略 Proxy 設定</translation> +<translation id="2467181864598429837">預設瀏覽器行為</translation> <translation id="2467896267442150508">最長為期一週的限制時段。如果開始時間設在結束時間之後,限制時段會跨日。</translation> <translation id="2476249479201711962">允許存取預設搜尋引擎內容選單</translation> <translation id="247658312644322296">「另存為 PDF」目的地</translation> @@ -2616,6 +2618,7 @@ <translation id="3524204464536655762">不允許任何網站透過 WebUSB API 要求存取 USB 裝置</translation> <translation id="3526752951628474302">僅限單色列印</translation> <translation id="3528000905991875314">啟用替代的錯誤網頁</translation> +<translation id="3528681240373634003">控制資訊清單 v2 擴充功能的可用性。</translation> <translation id="3530249698314520116">設定規則清單,避免 <ph name="PRODUCT_OS_NAME" /> 發生資料外洩。 複製及貼上資料、傳輸檔案、列印、分享螢幕畫面或擷取螢幕畫面等動作都有可能導致資料外洩。 @@ -2806,17 +2809,6 @@ 如果將這項政策設為停用,系統不會要求使用者必須輸入密碼,才能解鎖裝置。 如果不設定這項政策,使用者可選擇在解鎖裝置時,是否要收到輸入密碼的提示。</translation> -<translation id="3729689441404871493">在登入畫面和螢幕鎖定畫面上針對清單中的網址啟用 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />。 - - 你可以透過這項政策指定要讓哪些網址加入認證流程,接收裝置傳送的信號。 - - 如果不設定這項政策或留空,就表示沒有端點能啟動認證流程,以及接收裝置傳送的信號。 - - 附註:可以使用萬用字元 <ph name="WILDCARD_VALUE" />。 - - 這項政策只會影響登入畫面和螢幕鎖定畫面上的認證流程。如要變更工作階段中認證流程,請使用 <ph name="CONTEXT_AWARE_ACCESS_SIGNALS_ALLOWLIST_POLICY_NAME" /> 政策。 - - 如要進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://support.google.com/chrome/a?p=url_blocklist_filter_format。</translation> <translation id="3729937245044939404">這項政策自 M70 起已淘汰,請改用 <ph name="AUTOFILL_ADDRESS_ENABLED_POLICY_NAME" /> 和 <ph name="AUTOFILL_CREDIT_CARD_ENABLED_POLICY_NAME" />。 啟用 <ph name="PRODUCT_NAME" /> 的自動填入功能,允許使用者利用先前儲存的資訊 (例如地址或信用卡資訊) 自動填寫網路表單。 @@ -2882,7 +2874,6 @@ 注意:如果是 <ph name="MS_AD_NAME" /> 管理的裝置,這項政策支援將 <ph name="MACHINE_NAME_VARIABLE" /> 擴充為 <ph name="MS_AD_NAME" /> 電腦名稱或其子字串。舉例來說,如果電腦名稱為 <ph name="MACHINE_NAME_EXAMPLE" />,系統將以第 6 個字元後的 4 個字元取代 <ph name="MACHINE_NAME_VARIABLE_EXAMPLE" />,也就是 <ph name="MACHINE_NAME_PART_EXAMPLE" />。字元序數是從 0 開始計算。</translation> <translation id="377044054160169374">強制干預濫用行為</translation> -<translation id="3777833753656885744">在登入畫面和螢幕鎖定畫面上針對清單中的網址啟用認證流程</translation> <translation id="3778689139323007309">針對由本機裝載 CA 憑證所簽署並經過成功驗證的伺服器憑證,執行撤銷檢查</translation> <translation id="3780152581321609624">Kerberos SPN 包含非標準連接埠</translation> <translation id="378495749480642482">設定使用者前往的網站是否能透過 <ph name="WEBXR_API_NAME" /> 建立沉浸式擴增實境工作階段。 @@ -2991,6 +2982,13 @@ 如果將這項政策設為 2,系統會禁止包含侵入式廣告的網站顯示廣告。</translation> <translation id="3877517141460819966">整合式雙重驗證模式</translation> +<translation id="3877908683993837673">這項政策可指定要使用哪一個軟體堆疊與 DNS 伺服器進行通訊,選項包括作業系統 DNS 用戶端,以及 <ph name="PRODUCT_NAME" /> 的內建 DNS 用戶端。這項政策不會影響所用的 DNS 伺服器。比方說,如果作業系統設定使用企業的 DNS 伺服器,內建 DNS 用戶端就會使用相同的伺服器。這項政策也不會限制是否使用 DNS-over-HTTPS。<ph name="PRODUCT_NAME" /> 一律會使用內建解析器處理 DNS-over-HTTPS 要求。想瞭解如何控管 DNS-over-HTTPS,請參閱 <ph name="DNS_OVER_HTTPS_MODE_POLICY_NAME" /> 政策。 + + 如果將這項政策設為啟用,系統將使用內建的 DNS 用戶端 (如果有的話)。 + + 如果將這項政策設為停用,只有在採用 DNS-over-HTTPS 的情況下,系統才會使用內建的 DNS 用戶端。 + + 如果不設定這項政策,在 <ph name="MS_WIN_NAME" />、<ph name="MAC_OS_NAME" />、<ph name="ANDROID_NAME" /> (適用於私人 DNS 和 VPN 皆未啟用的情形) 和 <ph name="PRODUCT_OS_NAME" /> 上,系統預設會啟用內建的 DNS 用戶端。</translation> <translation id="3879208481373875102">設定強制安裝的網頁應用程式清單</translation> <translation id="3879700444818346084">不允許在第一次執行時匯入儲存的密碼</translation> <translation id="388237772682176890">自 M53 起我們已淘汰這項政策,至 M54 則移除了這項政策 (因為我們已不再支援 SPDY/3.1)。 @@ -3091,6 +3089,7 @@ <translation id="3990391739475801018">裝置將停用省電模式。</translation> <translation id="3994043824457743421">在新分頁顯示中間版位公告</translation> <translation id="399433537808390819">不要讓使用者使用整合桌面模式</translation> +<translation id="3995880046827722248">資訊清單 v2 已停用</translation> <translation id="3996325823532867220">系統不再支援這項政策,但特定平台可能支援相關政策 <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />。 如果啟用這項設定,<ph name="PRODUCT_NAME" /> 將使用內建的憑證驗證器執行伺服器憑證驗證作業。 @@ -3589,6 +3588,7 @@ 如果不設定這項政策,使用者將可停用系統上安裝的任何外掛程式。</translation> <translation id="4549405078915181477">啟用網站的裝置使用時間功能</translation> +<translation id="4549695018986780856">資訊清單 v2 已啟用</translation> <translation id="4554651132977135445">使用者政策回送處理模式</translation> <translation id="4554991346503872538">一律不提供翻譯</translation> <translation id="4555850956567117258">為使用者啟用遠端認證機制</translation> @@ -3904,7 +3904,6 @@ 如果不設定這項政策,<ph name="PRODUCT_NAME" /> M76 以下版本預設將無法收集與上傳這類記錄。自 M77 版起,針對大多數適用雲端式使用者層級企業政策的設定檔,<ph name="PRODUCT_NAME" /> 預設可收集與上傳這類記錄。從 M77 版到 M80 版,針對適用 <ph name="PRODUCT_NAME" /> 內部部署管理設定的設定檔,<ph name="PRODUCT_NAME" /> 預設也可收集與上傳這類記錄。</translation> <translation id="4911334289324462969">通訊埠 989 (2022 年 2 月 1 日前可解除封鎖)</translation> -<translation id="4913065710388638917">針對清單中的網址啟用認證流程</translation> <translation id="4917385247580444890">強</translation> <translation id="4918261735182294270">允許使用者選擇是否要啟用 <ph name="CHROME_SYNC_NAME" /></translation> <translation id="491889618361437456">啟用 <ph name="GOOGLE_CALENDAR_NAME" />整合</translation> @@ -4902,6 +4901,17 @@ 如果將這項政策設為 True,網站即可不受限制地跨來源傳送 WebAssembly 模組。 如果設為 False 或未設定,網站就只能將 WebAssembly 模組傳送到相同來源的視窗和工作站。</translation> +<translation id="6005906773585863978">控制瀏覽器可否使用資訊清單 v2 擴充功能。 + +資訊清單 v2 擴充功能支援將遭淘汰,日後所有擴充功能都必須遷移至 v3。如要進一步瞭解遷移的資訊和時間表,請前往 https://developer.chrome.com/docs/extensions/mv3/mv2-sunset/。 + +如果將這項政策設為「<ph name="DEFAULT" />」(0) 或不設定,瀏覽器會依據上述時間表決定是否載入 v2 擴充功能。 +如果將這項政策設為「<ph name="DISABLE" />」(1),系統將禁止安裝 v2 擴充功能,並停用現有的 v2 擴充功能。在根據預設關閉 v2 支援後,這個選項將比照不設定這項政策時的做法處理。 +如果將這項政策設為「<ph name="ENABLE" />」(2),系統將允許使用 v2 擴充功能。在根據預設關閉 v2 支援前,這個選項將比照不設定這項政策時的做法處理。 +如果將這項政策設為 <ph name="ENABLE_FOR_FORCED_EXTENSIONS" /> (3),系統將允許強制安裝的 v2 擴充功能。這包括 <ph name="EXTENSION_INSTALL_FORCELIST_POLICY_NAME" /> 或 <ph name="EXTENSION_SETTINGS_POLICY_NAME" /> 列出,且 <ph name="INSTALLATION_MODE" /> 為「force_installed」或「normal_installed」的擴充功能。系統會停用所有其他 v2 擴充功能。在根據預設關閉 v2 支援前,這個選項將比照不設定這項政策時的做法處理。 + + +擴充功能可用性仍會受其他政策控制。</translation> <translation id="6009062900206392980">將這項政策設為 None 時,系統會在登入畫面停用螢幕放大功能。 如果設定這項政策,使用者可暫時啟用或停用放大鏡。當登入畫面重新載入或閒置達一分鐘時,放大鏡會還原成原始狀態。 @@ -5471,6 +5481,7 @@ 注意:目前只有在裝置顯示登入畫面或正在進行資訊站應用程式工作階段時,才能啟用自動重新啟動。</translation> <translation id="6556586932263358975">允許螢幕鎖定</translation> <translation id="6559057113164934677">不允許任何網站使用攝影機和麥克風</translation> +<translation id="65591220958874949">在 Windows、macOS、Android 和 ChromeOS 中使用內建 DNS 用戶端</translation> <translation id="6559221564468029245">如果將這項政策設為啟用或不設定,系統在音訊播放期間不會將使用者狀態視為閒置。這麼做可防止系統因達到閒置逾時限制,而採取閒置因應動作。不過,即使有音訊活動,系統在達到螢幕調暗、螢幕關閉和螢幕鎖定的逾時限制後,仍會觸發這些動作。 如果將這項政策設為停用,即使有音訊活動,系統仍會將使用者狀態視為閒置。</translation> @@ -7190,17 +7201,6 @@ <translation id="8274603902181597201">清除使用者的 eCryptfs 主目錄,改用全新的 Ext4 加密主目錄。</translation> <translation id="8274926413890711289">啟用精細回報控制項</translation> <translation id="8278133379873210419">隱藏從不同來源子頁框觸發的 JavaScript 對話方塊</translation> -<translation id="8279037559659894049">針對清單中的網址啟用 <ph name="CHROME_ENTERPRISE_PLATFORM_IDENTITY_CONNECTOR" />。 - - 你可以透過這項政策指定要讓哪些網址加入認證流程,以接收裝置傳送的信號。 - - 如果不設定這項政策或留空,就表示沒有端點能啟動認證流程,以及接收裝置傳送的信號。 - - 附註:可以使用萬用字元 <ph name="WILDCARD_VALUE" />。 - - 對 ChromeOS 而言,這項政策與遠端認證相關,其中的憑證會自動產生並上傳至裝置管理伺服器。 - - 如要進一步瞭解有效的<ph name="URL_LABEL" />模式,請參閱 https://support.google.com/chrome/a?p=url_blocklist_filter_format。</translation> <translation id="8284296539558710573">跨來源 HTTP 驗證提示</translation> <translation id="8284527236880877730">如果 <ph name="POWER_SMART_DIM_ENABLED_POLICY_NAME" /> 設定為停用,當裝置播放簡報時,系統將根據 <ph name="PRESENTATION_SCREEN_DIM_DELAY_SCALE_POLICY_NAME" /> 所設百分比延長螢幕調暗延遲時間。一旦延長螢幕調暗延遲時間,螢幕關閉、螢幕鎖定和閒置狀態的延遲時間也會隨之調整,以維持與原先設定相同的間隔時間。
diff --git a/components/power_monitor/BUILD.gn b/components/power_monitor/BUILD.gn new file mode 100644 index 0000000..cb92dc5 --- /dev/null +++ b/components/power_monitor/BUILD.gn
@@ -0,0 +1,26 @@ +# Copyright 2022 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/config/features.gni") + +source_set("power_monitor") { + public = [ "make_power_monitor_device_source.h" ] + deps = [ "//base" ] + + if (is_linux && use_dbus) { + # Use the D-Bus-based implementation on Linux builds when enabled. + sources = [ + "make_power_monitor_device_source_linux.cc", + "power_monitor_device_source_linux.cc", + "power_monitor_device_source_linux.h", + ] + deps += [ + "//components/dbus/thread_linux", + "//dbus", + ] + } else { + # Use the //base implementation everywhere else. + sources = [ "make_power_monitor_device_source_default.cc" ] + } +}
diff --git a/components/power_monitor/DEPS b/components/power_monitor/DEPS new file mode 100644 index 0000000..6d5d660 --- /dev/null +++ b/components/power_monitor/DEPS
@@ -0,0 +1,4 @@ +include_rules = [ + "+components/dbus/thread_linux", + "+dbus", +]
diff --git a/components/power_monitor/OWNERS b/components/power_monitor/OWNERS new file mode 100644 index 0000000..da56ce4 --- /dev/null +++ b/components/power_monitor/OWNERS
@@ -0,0 +1,2 @@ +etienneb@chromium.org +grt@chromium.org
diff --git a/components/power_monitor/README.md b/components/power_monitor/README.md new file mode 100644 index 0000000..3b4eeb3e --- /dev/null +++ b/components/power_monitor/README.md
@@ -0,0 +1,5 @@ +# PowerMonitor + +This component layers on top of //base/power_monitor to provide complete +functionality on platforms whose full implementations have necessary +dependencies outside of //base (e.g., //dbus on Linux).
diff --git a/components/power_monitor/make_power_monitor_device_source.h b/components/power_monitor/make_power_monitor_device_source.h new file mode 100644 index 0000000..cea0d70 --- /dev/null +++ b/components/power_monitor/make_power_monitor_device_source.h
@@ -0,0 +1,18 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_POWER_MONITOR_MAKE_POWER_MONITOR_DEVICE_SOURCE_H_ +#define COMPONENTS_POWER_MONITOR_MAKE_POWER_MONITOR_DEVICE_SOURCE_H_ + +#include <memory> + +namespace base { +class PowerMonitorSource; +} + +// Returns an implementation of `base::PowerMonitorSource` that uses the current +// device as the source of signals. +std::unique_ptr<base::PowerMonitorSource> MakePowerMonitorDeviceSource(); + +#endif // COMPONENTS_POWER_MONITOR_MAKE_POWER_MONITOR_DEVICE_SOURCE_H_
diff --git a/components/power_monitor/make_power_monitor_device_source_default.cc b/components/power_monitor/make_power_monitor_device_source_default.cc new file mode 100644 index 0000000..63208e72 --- /dev/null +++ b/components/power_monitor/make_power_monitor_device_source_default.cc
@@ -0,0 +1,14 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/power_monitor/make_power_monitor_device_source.h" + +#include "base/power_monitor/power_monitor_device_source.h" + +#include <memory> + +// Returns an instance of base::PowerMonitorDeviceSource. +std::unique_ptr<base::PowerMonitorSource> MakePowerMonitorDeviceSource() { + return std::make_unique<base::PowerMonitorDeviceSource>(); +}
diff --git a/components/power_monitor/make_power_monitor_device_source_linux.cc b/components/power_monitor/make_power_monitor_device_source_linux.cc new file mode 100644 index 0000000..c26eb38 --- /dev/null +++ b/components/power_monitor/make_power_monitor_device_source_linux.cc
@@ -0,0 +1,13 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/power_monitor/make_power_monitor_device_source.h" + +#include "components/power_monitor/power_monitor_device_source_linux.h" + +#include <memory> + +std::unique_ptr<base::PowerMonitorSource> MakePowerMonitorDeviceSource() { + return std::make_unique<PowerMonitorDeviceSourceLinux>(); +}
diff --git a/components/power_monitor/power_monitor_device_source_linux.cc b/components/power_monitor/power_monitor_device_source_linux.cc new file mode 100644 index 0000000..f22b33b --- /dev/null +++ b/components/power_monitor/power_monitor_device_source_linux.cc
@@ -0,0 +1,85 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/power_monitor/power_monitor_device_source_linux.h" + +#include <utility> + +#include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "base/location.h" +#include "base/logging.h" +#include "base/memory/scoped_refptr.h" +#include "components/dbus/thread_linux/dbus_thread_linux.h" +#include "dbus/bus.h" +#include "dbus/message.h" +#include "dbus/object_path.h" +#include "dbus/object_proxy.h" + +namespace { + +scoped_refptr<dbus::Bus> CreateBus() { + dbus::Bus::Options options; + options.bus_type = dbus::Bus::SYSTEM; + options.connection_type = dbus::Bus::PRIVATE; + options.dbus_task_runner = dbus_thread_linux::GetTaskRunner(); + return base::MakeRefCounted<dbus::Bus>(options); +} + +} // namespace + +PowerMonitorDeviceSourceLinux::PowerMonitorDeviceSourceLinux() + : bus_(CreateBus()) { + bus_->GetObjectProxy("org.freedesktop.login1", + dbus::ObjectPath("/org/freedesktop/login1")) + ->ConnectToSignal( + "org.freedesktop.login1.Manager", "PrepareForSleep", + base::BindRepeating(&PowerMonitorDeviceSourceLinux::OnPrepareForSleep, + weak_ptr_factory_.GetWeakPtr()), + base::BindOnce(&PowerMonitorDeviceSourceLinux::OnSignalConnected, + weak_ptr_factory_.GetWeakPtr())); +} + +PowerMonitorDeviceSourceLinux::~PowerMonitorDeviceSourceLinux() { + if (bus_) + ShutdownBus(); +} + +bool PowerMonitorDeviceSourceLinux::IsOnBatteryPower() { + // TODO(crbug.com/1320271): Use org.freedesktop.UPower to check for OnBattery. + // One possibility is to connect to the DeviceService's BatteryMonitor. + return false; +} + +void PowerMonitorDeviceSourceLinux::ShutdownBus() { + DCHECK(bus_); + dbus::Bus* const bus_ptr = bus_.get(); + bus_ptr->GetDBusTaskRunner()->PostTask( + FROM_HERE, base::BindOnce(&dbus::Bus::ShutdownAndBlock, std::move(bus_))); +} + +void PowerMonitorDeviceSourceLinux::OnSignalConnected( + const std::string& interface_name, + const std::string& signal_name, + bool connected) { + if (connected) + return; + + DLOG(ERROR) << "Failed to connect to " << interface_name << " for signal " + << signal_name; + if (bus_) + ShutdownBus(); +} + +void PowerMonitorDeviceSourceLinux::OnPrepareForSleep(dbus::Signal* signal) { + dbus::MessageReader reader(signal); + if (bool start = false; !reader.PopBool(&start) || reader.HasMoreData()) { + DLOG(ERROR) << "Received malformed PrepareForSleep signal from systemd"; + } else if (start) { + ProcessPowerEvent(SUSPEND_EVENT); + } else { + ProcessPowerEvent(RESUME_EVENT); + } +}
diff --git a/components/power_monitor/power_monitor_device_source_linux.h b/components/power_monitor/power_monitor_device_source_linux.h new file mode 100644 index 0000000..8da7e72 --- /dev/null +++ b/components/power_monitor/power_monitor_device_source_linux.h
@@ -0,0 +1,43 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_LINUX_H_ +#define COMPONENTS_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_LINUX_H_ + +#include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" +#include "base/power_monitor/power_monitor_source.h" + +#include <string> + +namespace dbus { +class Bus; +class Signal; +} // namespace dbus + +// A PowerMonitorSource that observes sleep/resume signals issued by systemd on +// Linux systems. +class PowerMonitorDeviceSourceLinux : public base::PowerMonitorSource { + public: + PowerMonitorDeviceSourceLinux(); + PowerMonitorDeviceSourceLinux(const PowerMonitorDeviceSourceLinux&) = delete; + PowerMonitorDeviceSourceLinux& operator=( + const PowerMonitorDeviceSourceLinux&) = delete; + ~PowerMonitorDeviceSourceLinux() override; + + // base::PowerMonitorSource: + bool IsOnBatteryPower() override; + + private: + void ShutdownBus(); + void OnSignalConnected(const std::string& interface_name, + const std::string& signal_name, + bool connected); + void OnPrepareForSleep(dbus::Signal* signal); + + scoped_refptr<dbus::Bus> bus_; + base::WeakPtrFactory<PowerMonitorDeviceSourceLinux> weak_ptr_factory_{this}; +}; + +#endif // COMPONENTS_POWER_MONITOR_POWER_MONITOR_DEVICE_SOURCE_LINUX_H_
diff --git a/components/resources/README.md b/components/resources/README.md new file mode 100644 index 0000000..9e9b2d8 --- /dev/null +++ b/components/resources/README.md
@@ -0,0 +1,4 @@ +If the resource that you want to check in is product-branded and/or trademarked, +please read the docs on +[Google Chrome branding](../../docs/google_chrome_branded_builds.md) to +determine the correct steps to take.
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 745eeab1..e4e1ecb 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -354,6 +354,7 @@ <translation id="1791820510173628507"><ph name="MANAGE_GOOGLE_ACCOUNT_FOCUSED_FRIENDLY_MATCH_TEXT" />: اضغط على مفتاح التبويب (Tab) ثم Enter لإدارة المعلومات والخصوصية والأمان في حسابك على Google.</translation> <translation id="1798447301915465742"><ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />، تتوفّر عدة إجراءات، اضغط على مفتاح التبويب (Tab) للتنقّل بينها.</translation> <translation id="1800473098294731951">B9</translation> +<translation id="1801812870656502108">تفاصيل البطاقة الافتراضية</translation> <translation id="1803020234906945288">تغذية صحية</translation> <translation id="1803264062614276815">اسم حامل البطاقة</translation> <translation id="1803351196216024260">السماح للموقع الإلكتروني بطلب استخدام الميكروفون</translation> @@ -447,6 +448,7 @@ <translation id="2059202684901022309">22 × 34 بوصة</translation> <translation id="2064691555167957331">{COUNT,plural, =1{اقتراح واحد}zero{# اقتراح}two{اقتراحان (#)}few{# اقتراحات}many{# اقتراحًا}other{# اقتراح}}</translation> <translation id="2066915425250589881">طلب حذف هذه المعلومات</translation> +<translation id="2066969741541525119">تحظر مؤسستك الوصول إلى الموقع الإلكتروني الذي تحاول زيارته</translation> <translation id="2068528718802935086">رُضّع وأطفال صغار</translation> <translation id="2071156619270205202">رقم هذه البطاقة غير مؤهَّل للاستخدام كرقم بطاقة افتراضية.</translation> <translation id="2071692954027939183">تم حظر الإشعارات تلقائيًا لأنّك عادةً لا تسمح بظهورها.</translation> @@ -501,6 +503,7 @@ <translation id="2188375229972301266">عمل عدة ثقوب في الأسفل</translation> <translation id="219906046732893612">تجديد المنازل</translation> <translation id="2202020181578195191">أدخِل سنة تاريخ انتهاء صلاحية صحيحة</translation> +<translation id="2202627062836089804">الجهة الخلفية للبطاقة</translation> <translation id="22081806969704220">الدُرج 3</translation> <translation id="2210794033760923560">تحميل التقرير</translation> <translation id="2212735316055980242">تعذر العثور على السياسة</translation> @@ -986,6 +989,7 @@ <translation id="350069200438440499">اسم الملفّ:</translation> <translation id="3507936815618196901">إنشاء خريطة ثلاثية الأبعاد للبيئة المحيطة بك وتتبُّع موضع الكاميرا</translation> <translation id="3512163584740124171">يتم تجاهل هذه السياسة بسبب سياسة أخرى من نفس مجموعة السياسة لها أولوية أعلى.</translation> +<translation id="3515972145999192222">حظرت مؤسستك النطاق <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> بسبب انتهاكه إحدى السياسات. <ph name="BEGIN_LEARN_MORE_LINK" />مزيد من المعلومات<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="35172538073169599">زر "إدارة العناوين"، اضغط على مفتاح Enter لإضافة عناوين وإدارتها في إعدادات متصفّح Chrome.</translation> <translation id="3518941727116570328">معالجة الأهداف المتعددة</translation> <translation id="3525130752944427905">10 × 14 بوصة</translation> @@ -1060,6 +1064,7 @@ <translation id="3678342917559046352">امتداد غير صالح: القيمة المتوقّعة هي أحد النموذجين التاليين: <extension_id> أو <extension_id>;<update_url>.</translation> <translation id="3678529606614285348">يمكنك فتح الصفحة في نافذة جديدة للتصفح المتخفي (Ctrl-Shift-N)</translation> <translation id="3681007416295224113">معلومات الشهادة</translation> +<translation id="3693327506115126094">اختيار كيفية إثبات هويتك</translation> <translation id="3699374065820972102">تم تفعيل ميزة TouchID لملء كلمات المرور.</translation> <translation id="3701427423622901115">تمت الموافقة على إعادة الضبط.</translation> <translation id="3704162925118123524">قد تتطلب الشبكة التي تستخدمها زيارة صفحة تسجيل الدخول.</translation> @@ -1145,6 +1150,7 @@ <translation id="3906954721959377182">جهاز لوحي</translation> <translation id="3909477809443608991">يريد <ph name="URL" /> تشغيل المحتوى المُحمي. ستتحقَّق Google من هوية جهازك ويمكن الوصول إليه من خلال هذا الموقع.</translation> <translation id="3909695131102177774"><ph name="LABEL" /> <ph name="ERROR" /></translation> +<translation id="3921869355029467742">إدخال رمز الأمان</translation> <translation id="3927932062596804919">رفض</translation> <translation id="393316646445601645">إنترنت واتصالات</translation> <translation id="3939773374150895049">هل تريد استخدم WebAuthn بدلاً من رمز التحقق من البطاقة (CVC)؟</translation> @@ -1392,6 +1398,7 @@ <translation id="4524805452350978254">إدارة البطاقات</translation> <translation id="4526465106919207193">أشخاص ومجتمعات</translation> <translation id="4530347922939905757">رسالة نصية</translation> +<translation id="4531477351494678589">رقم البطاقة الافتراضية:</translation> <translation id="4540780316273593836">حدث خطأٌ</translation> <translation id="4541810033354695636">الواقع المعزّز</translation> <translation id="4542971377163063093">الدُرج 6</translation> @@ -1401,6 +1408,7 @@ <translation id="4567686777917670400">يمكن لمشرفك تغيير إعدادات المتصفِّح عن بُعد. وقد تتم أيضًا إدارة النشاط على هذا الجهاز خارج Chromium. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> <translation id="457875822857220463">التسليم</translation> <translation id="4582204425268416675">إزالة البطاقة</translation> +<translation id="4582595824823167856">تلقي رسالة نصية</translation> <translation id="4587425331216688090">هل تريد إزالة العنوان من Chrome؟</translation> <translation id="459089498662672729">لصق المحتوى من <ph name="ORIGIN_NAME" /> إلى هذا المكان هو إجراء لا تنصح به سياسة المشرف.</translation> <translation id="4592951414987517459">يتم ترميز اتصالك بالنطاق <ph name="DOMAIN" /> باستخدام مجموعة ترميز حديثة.</translation> @@ -1412,6 +1420,7 @@ <translation id="4606870351894164739">مؤثِّر</translation> <translation id="4607603470419975064">زرّ الاطّلاع على معلومات بشأن استخدام متصفّح Chrome: اضغط على مفتاح Enter للتعرّف على ميزات Chrome.</translation> <translation id="4607608436550361748">الاطّلاع على معلومات بشأن استخدام متصفّح Chrome</translation> +<translation id="460848736049414407">حظَر المشرف عنوان URL هذا</translation> <translation id="4610279718074907952">يندرج هذا الموقع الإلكتروني ضمن مجموعة حدّدها <ph name="SET_OWNER" /> ويمكنها الاطّلاع على نشاطك.</translation> <translation id="4617273035598175554">برنامج رسومات وصور متحركة</translation> <translation id="4622292761762557753">النقل على أي حال</translation> @@ -1878,6 +1887,7 @@ <translation id="57689295674415555">ألم تتم تعبئة الحقل برقم البطاقة الافتراضية؟</translation> <translation id="5772086939108830423">استخدام مفتاح مرور على جهاز آخر</translation> <translation id="5776313857861697733">الأولوية</translation> +<translation id="5776574724412881956">ألم يتم إدخال بيانات البطاقة الافتراضية؟ انقر على تفاصيل البطاقة الافتراضية لنسخها إلى الحافظة. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_MANUAL_FALLBACK_BUBBLE_LEARN_MORE_LINK_LABEL" /></translation> <translation id="5781136890105823427">تم تفعيل التجربة.</translation> <translation id="578305955206182703">كهرمان</translation> <translation id="57838592816432529">كتم الصوت</translation> @@ -2007,6 +2017,7 @@ <translation id="6116338172782435947">الاطلاع على النصوص والصور التي تم نسخها إلى الحافظة</translation> <translation id="6118782133429281336">قائمة المصادر فارغة.</translation> <translation id="6120179357481664955">هل تتذكر معرّف واجهة الدفعات الموحّدة؟</translation> +<translation id="6122181661879998141">الجهة الأمامية للبطاقة</translation> <translation id="6124432979022149706">Chrome Enterprise Connectors</translation> <translation id="6126565365696310362">ظرف صيني رقم 2</translation> <translation id="6127379762771434464">أُزيلَ عنصر</translation> @@ -2373,6 +2384,7 @@ <translation id="7108634116785509031">يريد <ph name="HOST" /> استخدام الكاميرا.</translation> <translation id="7108819624672055576">تم السماح بواسطة إحدى الإضافات</translation> <translation id="7111012039238467737">(صالح)</translation> +<translation id="7112327784801341716">إذا لم تظهر معلوماتك الحديثة، يُرجى التواصل مع المصرف الذي تتعامل معه لتعديلها.</translation> <translation id="7118618213916969306">البحث عن عنوان URL للحافظة، <ph name="SHORT_URL" /></translation> <translation id="7119414471315195487">إغلاق علامات التبويب أو البرامج الأخرى</translation> <translation id="7129355289156517987">عند إغلاق كل علامات التبويب في وضع التصفّح المتخفي في متصفّح Chromium، يتم محو نشاطك في علامات التبويب تلك من هذا الجهاز: @@ -2676,6 +2688,7 @@ <translation id="7798389633136518089">تم التجاهل لعدم إعداد السياسة من خلال أحد مصادر السحابة الإلكترونية.</translation> <translation id="7800304661137206267">تم ترميز الاتصال باستخدام <ph name="CIPHER" />، مع <ph name="MAC" /> لمصادقة الرسالة و<ph name="KX" /> كآلية التبادل الرئيسية.</translation> <translation id="7802523362929240268">الموقع الإلكتروني مشروع</translation> +<translation id="7802989406998618639">يُرجى إدخال رمز الأمان المكوّن من <ph name="NUMBER_OF_DIGITS" /> أرقام المكتوب على <ph name="SIDE_OF_CARD" /> ليتمكّن المصرف من إثبات هويتك.</translation> <translation id="780301667611848630">لا، شكرًا</translation> <translation id="7805571567667010077">إذن تديره مؤسستك</translation> <translation id="7805768142964895445">الحالة</translation> @@ -2963,7 +2976,7 @@ <translation id="858637041960032120">إضافة رقم هاتف </translation> <translation id="8589998999637048520">أفضل جودة</translation> -<translation id="8600271352425265729">هذه المرَّة فقط</translation> +<translation id="8600271352425265729">هذه المرّة فقط</translation> <translation id="860043288473659153">اسم حامل البطاقة</translation> <translation id="8606726445206553943">استخدام أجهزة MIDI</translation> <translation id="8617269623452051934">استخدامك للجهاز</translation> @@ -3007,6 +3020,7 @@ <translation id="8725066075913043281">إعادة المحاولة</translation> <translation id="8726549941689275341">حجم الصفحة:</translation> <translation id="8730621377337864115">تم</translation> +<translation id="8731268612289859741">رمز الأمان</translation> <translation id="8731544501227493793">زر "إدارة كلمات المرور"، اضغط على مفتاح Enter لعرض كلمات المرور في إعدادات متصفِّح Chrome وإدارتها.</translation> <translation id="8734529307927223492">يدير <ph name="MANAGER" /> الجهاز <ph name="DEVICE_TYPE" />.</translation> <translation id="8736059027199600831">30 × 40 بوصة</translation> @@ -3112,6 +3126,7 @@ <translation id="9005998258318286617">فشل تحميل مستند PDF.</translation> <translation id="9008178007718859630">ديكور منزلي وديكور داخلي</translation> <translation id="9008201768610948239">تجاهل</translation> +<translation id="9018120810758822233">إدخال رمز الأمان لبطاقتك الافتراضية المنتهية بالرقم <ph name="CREDIT_CARD" /></translation> <translation id="901834265349196618">بريد إلكتروني</translation> <translation id="9020200922353704812">عنوان إرسال الفواتير للبطاقة مطلوب</translation> <translation id="9020542370529661692">تمت ترجمة هذه الصفحة إلى <ph name="TARGET_LANGUAGE" /></translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index 87e3751..1f973e4 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarian mətbəxi</translation> <translation id="1623104350909869708">Bu səhifədə əlavə dialoqlar yaranmasın</translation> +<translation id="1633137413609266904">{0,plural, =1{Bu faylın açılması administrator siyasəti əsasında bloklanıb}other{# faylın açılması administrator siyasəti əsasında bloklanıb}}</translation> <translation id="1634828734222219955">Ümumi</translation> <translation id="163669211644121865">Vergi hazırlanması və planlaşdırılması</translation> <translation id="1638780421120290329">Kartı yadda saxlamaq mümkün deyil</translation> @@ -894,6 +895,7 @@ <translation id="3270847123878663523">Təkrar sıralamanı geri qaytarın</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> qoşulmaq istəyir</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Administrator siyasəti bu faylı burada açmağı tövsiyə etmir: <ph name="DESTINATION_NAME" />}other{Administrator siyasəti bu faylları burada açmağı tövsiyə etmir: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Təşkilatınız <ph name="ENROLLMENT_DOMAIN" /> aşağıdakı veb saytlara ayarlar və ya siyasətlər kimi bəzi məlumatlar göndərib.</translation> <translation id="3282497668470633863">Kart üzərindəki adı daxil edin</translation> <translation id="3286372614333682499">portret</translation> @@ -1291,6 +1293,7 @@ <translation id="4275830172053184480">Cihazınızı yenidən başladın</translation> <translation id="4277028893293644418">Parolu sıfırlayın</translation> <translation id="4278390842282768270">İcazə verilib</translation> +<translation id="4281998142035485137">{0,plural, =1{Məxfi fayl açılsın?}other{Məxfi fayllar açılsın?}}</translation> <translation id="4282346679996504092">Bu məhsul üçün xəbərdarlıqlar deaktiv edilib və əlfəcin silinib</translation> <translation id="4285498937028063278">Çıxarın</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Bu kart Google Hesabında yadda saxlanılıb}other{Bu kartlar Google Hesabında yadda saxlanılıb}}</translation> @@ -1924,6 +1927,7 @@ <translation id="5903264686717710770">Başlıq:</translation> <translation id="5904360430676679685">Ailə və münasibətlər</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinxronlaşdırıldı)</translation> +<translation id="5911110632211230665">Açma bloklanıb</translation> <translation id="59174027418879706">Aktiv edilib</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 istifadə edilir}other{# istifadə edilir}}</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 116084c5..2c861d8d 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Камера</translation> <translation id="1622571349153632031">Вегетарианска кухня</translation> <translation id="1623104350909869708">Да не се създават допълнителни диалогови прозорци от тази страница</translation> +<translation id="1633137413609266904">{0,plural, =1{Отварянето на този файл е блокирано чрез администраторско правило}other{Отварянето на # файла е блокирано чрез администраторско правило}}</translation> <translation id="1634828734222219955">Общо</translation> <translation id="163669211644121865">Данъчна подготовка и планиране</translation> <translation id="1638780421120290329">Картата не може да бъде запазена</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Отмяна на пренареждането</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> иска да се свърже</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Според администраторско правило отварянето на този файл в(ъв) <ph name="DESTINATION_NAME" /> не се препоръчва}other{Според администраторско правило отварянето на тези файлове в(ъв) <ph name="DESTINATION_NAME" /> не се препоръчва}}</translation> <translation id="3282085321714087552">Организацията ви (<ph name="ENROLLMENT_DOMAIN" />) изпрати известна информация, като например настройки или правила, до долупосочените уебсайтове.</translation> <translation id="3282497668470633863">Добавяне на името на картодържателя</translation> <translation id="3286372614333682499">вертикална ориентация</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Рестартиране на устройството ви</translation> <translation id="4277028893293644418">Повторно задаване на паролата</translation> <translation id="4278390842282768270">Разрешено</translation> +<translation id="4281998142035485137">{0,plural, =1{Да се отвори ли поверителният файл?}other{Да се отворят ли поверителните файлове?}}</translation> <translation id="4282346679996504092">Сигналите за този продукт са изключени и отметката е премахната</translation> <translation id="4285498937028063278">Освобождаване</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Тази карта е запазена в профила ви в Google}other{Тези карти са запазени в профила ви в Google}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Заглавие:</translation> <translation id="5904360430676679685">Семейство и връзки</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизирано)</translation> +<translation id="5911110632211230665">Отварянето е блокирано</translation> <translation id="59174027418879706">Активирано</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Използва се 1}other{Използват се #}}</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 2a80c53..4007712 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -282,7 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarijanska kuhinja</translation> <translation id="1623104350909869708">Spriječi da ova stranica kreira dodatne dijaloške okvire</translation> -<translation id="1633137413609266904">{0,plural, =1{Otvaranje te datoteke blokirano je prema administratorskim pravilima}one{Otvaranje # datoteke blokirano je prema administratorskim pravilima}few{Otvaranje # datoteke blokirano je prema administratorskim pravilima}other{Otvaranje # datoteka blokirano je prema administratorskim pravilima}}</translation> +<translation id="1633137413609266904">{0,plural, =1{Administratorska pravila blokiraju otvaranje ovog fajla}one{Administratorska pravila blokiraju otvaranje # fajla}few{Administratorska pravila blokiraju otvaranje # fajlova}other{Administratorska pravila blokiraju otvaranje # fajlova}}</translation> <translation id="1634828734222219955">Ukupno</translation> <translation id="163669211644121865">Priprema i planiranje poreza</translation> <translation id="1638780421120290329">Nije moguće sačuvati karticu</translation> @@ -897,7 +897,7 @@ <translation id="3270847123878663523">&Poništi preuređivanje</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> se želi povezati</translation> <translation id="3272091146646336650">Super B</translation> -<translation id="3281350579597955952">{0,plural, =1{Prema pravilima administratora ne preporučuje se otvaranje ove datoteke na odredištu <ph name="DESTINATION_NAME" />}one{Prema pravilima administratora ne preporučuje se otvaranje ovih datoteka na odredištu <ph name="DESTINATION_NAME" />}few{Prema pravilima administratora ne preporučuje se otvaranje ovih datoteka na odredištu <ph name="DESTINATION_NAME" />}other{Prema pravilima administratora ne preporučuje se otvaranje ovih datoteka na odredištu <ph name="DESTINATION_NAME" />}}</translation> +<translation id="3281350579597955952">{0,plural, =1{Prema administratorskim pravilima nije preporučeno otvaranje ovog fajla na lokaciji <ph name="DESTINATION_NAME" />}one{Prema administratorskim pravilima nije preporučeno otvaranje ovih fajlova na lokaciji <ph name="DESTINATION_NAME" />}few{Prema administratorskim pravilima nije preporučeno otvaranje ovih fajlova na lokaciji <ph name="DESTINATION_NAME" />}other{Prema administratorskim pravilima nije preporučeno otvaranje ovih fajlova na lokaciji <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Vaša organizacija, <ph name="ENROLLMENT_DOMAIN" />, je poslala određene informacije web lokacijama u nastavku, naprimjer postavke ili pravila.</translation> <translation id="3282497668470633863">Dodajte ime na kartici</translation> <translation id="3286372614333682499">uspravno</translation> @@ -1297,7 +1297,7 @@ <translation id="4275830172053184480">Ponovo pokrenite uređaj</translation> <translation id="4277028893293644418">Ponovo postavi lozinku</translation> <translation id="4278390842282768270">Dozvoljeno</translation> -<translation id="4281998142035485137">{0,plural, =1{Želite li otvoriti povjerljivu datoteku?}one{Želite li otvoriti povjerljive datoteke?}few{Želite li otvoriti povjerljive datoteke?}other{Želite li otvoriti povjerljive datoteke?}}</translation> +<translation id="4281998142035485137">{0,plural, =1{Otvoriti povjerljivi fajl?}one{Otvoriti povjerljive fajlove?}few{Otvoriti povjerljive fajlove?}other{Otvoriti povjerljive fajlove?}}</translation> <translation id="4282346679996504092">Obavještenja za ovaj proizvod su isključena, a oznaka uklonjena</translation> <translation id="4285498937028063278">Otkači</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Ova kartica je sačuvana na vašem Google računu}one{Ove kartice su sačuvane na vašem Google računu}few{Ove kartice su sačuvane na vašem Google računu}other{Ove kartice su sačuvane na vašem Google računu}}</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index ab6a52a..6fc00f1 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -700,6 +700,7 @@ <translation id="2715612312510870559"><ph name="UPDATE_CREDIT_CARD_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter můžete spravovat údaje o platbách a platebních kartách v nastavení Chromu</translation> <translation id="2715808615350965923">Super A</translation> <translation id="271663710482723385">Režim celé obrazovky ukončíte stisknutím kláves |<ph name="ACCELERATOR1" />| + |<ph name="ACCELERATOR2" />|</translation> +<translation id="2718207025093645426">Spravovaný uživatel nebo zařízení nemá načtené žádné zásady.</translation> <translation id="2721148159707890343">Požadavek byl úspěšný</translation> <translation id="2723669454293168317">Spusťte v nastavení Chromu bezpečnostní kontrolu</translation> <translation id="2726001110728089263">Boční zásobník</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index a383f6c..bf12104d 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarmad</translation> <translation id="1623104350909869708">Undgå, at denne side opretter yderligere dialogbokse</translation> +<translation id="1633137413609266904">{0,plural, =1{Administratorpolitikken tillader ikke, at du åbner denne fil}one{Administratorpolitikken tillader ikke, at du åbner # fil}other{Administratorpolitikken tillader ikke, at du åbner # filer}}</translation> <translation id="1634828734222219955">Total</translation> <translation id="163669211644121865">Skatteangivelse og -rådgivning</translation> <translation id="1638780421120290329">Kortet kan ikke gemmes</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Fortryd omarrangering</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> vil gerne oprette forbindelse</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Administratorpolitikken fraråder at åbne denne fil på <ph name="DESTINATION_NAME" />}one{Administratorpolitikken fraråder at åbne denne fil på <ph name="DESTINATION_NAME" />}other{Administratorpolitikken fraråder at åbne disse filer på <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Din organisation <ph name="ENROLLMENT_DOMAIN" /> har sendt nogle oplysninger til følgende websites, f.eks. indstillinger eller politikker.</translation> <translation id="3282497668470633863">Tilføj navn på kort</translation> <translation id="3286372614333682499">stående</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Genstart din enhed</translation> <translation id="4277028893293644418">Nulstil adgangskoden</translation> <translation id="4278390842282768270">Tilladt</translation> +<translation id="4281998142035485137">{0,plural, =1{Vil du åbne den fortrolige fil?}one{Vil du åbne den fortrolige fil?}other{Vil du åbne de fortrolige filer?}}</translation> <translation id="4282346679996504092">Underretninger for dette produkt er deaktiveret, og bogmærket er fjernet</translation> <translation id="4285498937028063278">Frigør</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Kortet er gemt på din Google-konto}one{Kortet er gemt på din Google-konto}other{Kortene er gemt på din Google-konto}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Titel:</translation> <translation id="5904360430676679685">Familie og forhold</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkroniseret)</translation> +<translation id="5911110632211230665">Åbning er ikke tilladt</translation> <translation id="59174027418879706">Aktiveret</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 i brug}one{# i brug}other{# i brug}}</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 9792f17..0f9440cd 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarische Küche</translation> <translation id="1623104350909869708">Keine weiteren Dialogfelder auf dieser Seite zulassen</translation> +<translation id="1633137413609266904">{0,plural, =1{Die Administratorrichtlinie blockiert das Öffnen dieser Datei}other{Die Administratorrichtlinie blockiert das Öffnen von # Dateien}}</translation> <translation id="1634828734222219955">Gesamt</translation> <translation id="163669211644121865">Steuerberatung</translation> <translation id="1638780421120290329">Karte kann nicht gespeichert werden</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Neu anordnen rückgängig machen</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> möchte eine Verbindung herstellen</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Laut Administratorrichtlinie wird das Öffnen dieser Datei in <ph name="DESTINATION_NAME" /> nicht empfohlen}other{Laut Administratorrichtlinie wird das Öffnen dieser Dateien in <ph name="DESTINATION_NAME" /> nicht empfohlen}}</translation> <translation id="3282085321714087552">Deine Organisation, <ph name="ENROLLMENT_DOMAIN" />, hat Informationen wie z. B. Einstellungen oder Richtlinien an folgende Websites gesendet.</translation> <translation id="3282497668470633863">Angabe für "Name auf der Karte" hinzufügen</translation> <translation id="3286372614333682499">Hochformat</translation> @@ -1293,6 +1295,7 @@ <translation id="4275830172053184480">Gerät neu starten</translation> <translation id="4277028893293644418">Passwort zurücksetzen</translation> <translation id="4278390842282768270">Zugelassen</translation> +<translation id="4281998142035485137">{0,plural, =1{Vertrauliche Datei öffnen?}other{Vertrauliche Dateien öffnen?}}</translation> <translation id="4282346679996504092">Benachrichtigungen zu diesem Produkt wurden deaktiviert und das Lesezeichen wurde entfernt</translation> <translation id="4285498937028063278">Loslösen</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Diese Karte wurde in deinem Google-Konto gespeichert}other{Diese Karten wurden in deinem Google-Konto gespeichert}}</translation> @@ -1926,6 +1929,7 @@ <translation id="5903264686717710770">Titel:</translation> <translation id="5904360430676679685">Familie und Beziehungen</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synchronisiert)</translation> +<translation id="5911110632211230665">Öffnen blockiert</translation> <translation id="59174027418879706">Aktiviert</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 wird verwendet}other{# werden verwendet}}</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 557b21b..3f26bb4 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -2845,6 +2845,7 @@ <translation id="8233773197406738106">Preparing file</translation> <translation id="8235754723616617175">Country music</translation> <translation id="8237519162179154808">Hobbies and leisure</translation> +<translation id="8238188918340945316">28 x 40 in</translation> <translation id="8238581221633243064">Open page in a new Incognito tab</translation> <translation id="8241707690549784388">The page that you're looking for used information that you entered. Returning to that page might cause any action that you took to be repeated. Do you want to continue?</translation> <translation id="8241712895048303527">Block on this site</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index 1af168d..565ca96 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">دوربین</translation> <translation id="1622571349153632031">غذای ویژه گیاهخواران</translation> <translation id="1623104350909869708">جلوگیری از ایجاد پنجرههای اضافی توسط این صفحه</translation> +<translation id="1633137413609266904">{0,plural, =1{خطمشی سرپرست باز کردن این فایل را مسدود کرده است}one{خطمشی سرپرست باز کردن # فایل را مسدود کرده است}other{خطمشی سرپرست باز کردن # فایل را مسدود کرده است}}</translation> <translation id="1634828734222219955">مجموع</translation> <translation id="163669211644121865">آمادهسازی و برنامهریزی مالیاتی</translation> <translation id="1638780421120290329">نمیتوان کارت را ذخیره کرد</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&واگرد ترتیببندی مجدد</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> میخواهد مرتبط شود</translation> <translation id="3272091146646336650">B سوپر</translation> +<translation id="3281350579597955952">{0,plural, =1{خطمشی سرپرست توصیه نمیکند این فایل را در <ph name="DESTINATION_NAME" /> باز کنید}one{خطمشی سرپرست توصیه نمیکند این فایل را در <ph name="DESTINATION_NAME" /> باز کنید}other{خطمشی سرپرست توصیه نمیکند این فایلها را در <ph name="DESTINATION_NAME" /> باز کنید}}</translation> <translation id="3282085321714087552">سازمان شما، <ph name="ENROLLMENT_DOMAIN" />، اطلاعاتی (مثل تنظیمات یا خطمشیها) را به وبسایتهای زیر ارسال کرده است.</translation> <translation id="3282497668470633863">افزودن نام روی کارت</translation> <translation id="3286372614333682499">عمودی</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">راهاندازی دستگاه خود</translation> <translation id="4277028893293644418">بازنشانی گذرواژه</translation> <translation id="4278390842282768270">مجاز است</translation> +<translation id="4281998142035485137">{0,plural, =1{فایل محرمانه باز شود؟}one{فایل محرمانه باز شود؟}other{فایلهای محرمانه باز شود؟}}</translation> <translation id="4282346679996504092">هشدارهای این محصول خاموش شد و نشانک آن حذف شد</translation> <translation id="4285498937028063278">برداشتن سنجاق</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{این کارت در حساب Google ذخیره شده است}one{این کارتها در حساب Google ذخیره شدهاند}other{این کارتها در حساب Google ذخیره شدهاند}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">عنوان:</translation> <translation id="5904360430676679685">خانواده و روابط</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (همگامسازیشده)</translation> +<translation id="5911110632211230665">باز کردن مسدود است</translation> <translation id="59174027418879706">فعال شد</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{۱ کوکی درحال استفاده}one{# کوکی درحال استفاده}other{# کوکی درحال استفاده}}</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 71bd050..f977a7f5 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Camera</translation> <translation id="1622571349153632031">Pang-vegetarian na cuisine</translation> <translation id="1623104350909869708">Pigilan ang pahinang ito sa paggawa ng mga karagdagang dialog</translation> +<translation id="1633137413609266904">{0,plural, =1{Na-block ng patakaran ng administrator ang pagbubukas ng file na ito}one{Na-block ng patakaran ng administrator ang pagbubukas ng # file}other{Na-block ng patakaran ng administrator ang pagbubukas ng # na file}}</translation> <translation id="1634828734222219955">Kabuuan</translation> <translation id="163669211644121865">Paghahanda at pagpaplano sa pagbubuwis</translation> <translation id="1638780421120290329">Hindi ma-save ang card</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&I-undo ang Pagbabago sa Ayos</translation> <translation id="3271648667212143903">Gustong kumonekta ng <ph name="ORIGIN" /></translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Hindi inirerekomenda ng patakaran ng administrator na buksan ang file na ito sa <ph name="DESTINATION_NAME" />}one{Hindi inirerekomenda ng patakaran ng administrator na buksan ang mga file na ito sa <ph name="DESTINATION_NAME" />}other{Hindi inirerekomenda ng patakaran ng administrator na buksan ang mga file na ito sa <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Nagpadala ang iyong organisasyon, ang <ph name="ENROLLMENT_DOMAIN" />, ng ilang impormasyon sa mga sumusunod na website, tulad ng mga setting o patakaran.</translation> <translation id="3282497668470633863">Magdagdag ng pangalan sa card</translation> <translation id="3286372614333682499">portrait</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">I-restart ang iyong device</translation> <translation id="4277028893293644418">I-reset ang password</translation> <translation id="4278390842282768270">Pinapayagan</translation> +<translation id="4281998142035485137">{0,plural, =1{Buksan ang kumpidensyal na file?}one{Buksan ang mga kumpidensyal na file?}other{Buksan ang mga kumpidensyal na file?}}</translation> <translation id="4282346679996504092">Na-off ang mga alerto para sa produktong ito at inalis ang bookmark</translation> <translation id="4285498937028063278">I-unpin</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Na-save na ang card na ito sa iyong Google Account}one{Na-save na ang mga card na ito sa iyong Google Account}other{Na-save na ang mga card na ito sa iyong Google Account}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Pamagat:</translation> <translation id="5904360430676679685">Pamilya at mga ugnayan</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (naka-sync)</translation> +<translation id="5911110632211230665">Naka-block ang pagbubukas</translation> <translation id="59174027418879706">Pinagana</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ang ginagamit}one{# ang ginagamit}other{# ang ginagamit}}</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index b15890f..5ce1e4e 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">कैमरा</translation> <translation id="1622571349153632031">शाकाहारी पकवान</translation> <translation id="1623104350909869708">इस पेज को अतिरिक्त डॉयलॉग बनाने से रोकें</translation> +<translation id="1633137413609266904">{0,plural, =1{एडमिन नीति के तहत, इस फ़ाइल को खोलने की अनुमति नहीं है}one{एडमिन नीति के तहत, # फ़ाइल को खोलने की अनुमति नहीं है}other{एडमिन नीति के तहत, # फ़ाइलों को खोलने की अनुमति नहीं है}}</translation> <translation id="1634828734222219955">कुल</translation> <translation id="163669211644121865">टैक्स भरने से जुड़ी जानकारी तैयार करने और सलाह देने वाली सेवाएं</translation> <translation id="1638780421120290329">कार्ड सेव नहीं किया जा सकता</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&पुन: क्रमित करना वापस लाएं</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> कनेक्ट करना चाहती है</translation> <translation id="3272091146646336650">सुपर बी</translation> +<translation id="3281350579597955952">{0,plural, =1{एडमिन नीति, इस फ़ाइल को <ph name="DESTINATION_NAME" /> में खोलने का सुझाव नहीं देती}one{एडमिन नीति, इस फ़ाइल को <ph name="DESTINATION_NAME" /> में खोलने का सुझाव नहीं देती}other{एडमिन नीति, इन फ़ाइलों को <ph name="DESTINATION_NAME" /> में खोलने का सुझाव नहीं देती}}</translation> <translation id="3282085321714087552">आपके संगठन <ph name="ENROLLMENT_DOMAIN" /> ने नीचे दी गई वेबसाइटों को सेटिंग या नीतियों वगैरह के बारे में कुछ जानकारी भेजी है.</translation> <translation id="3282497668470633863">कार्ड पर नाम जोड़ें</translation> <translation id="3286372614333682499">पोर्ट्रेट</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">अपना डिवाइस फिर से प्रारंभ करें</translation> <translation id="4277028893293644418">पासवर्ड रीसेट करें</translation> <translation id="4278390842282768270">अनुमति है</translation> +<translation id="4281998142035485137">{0,plural, =1{क्या आपको गोपनीय फ़ाइल खोलनी है?}one{क्या आपको गोपनीय फ़ाइल खोलनी है?}other{क्या आपको गोपनीय फ़ाइलें खोलनी हैं?}}</translation> <translation id="4282346679996504092">इस प्रॉडक्ट के लिए, सूचनाएं पाने की सुविधा बंद कर दी गई है और बुकमार्क को हटा दिया गया है</translation> <translation id="4285498937028063278">अनपिन करें</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{यह कार्ड आपके Google खाते में सेव कर लिया गया है}one{ये कार्ड आपके Google खाते में सेव कर लिए गए हैं}other{ये कार्ड आपके Google खाते में सेव कर लिए गए हैं}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">शीर्षक :</translation> <translation id="5904360430676679685">परिवार और रिश्तेदार</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक किया गया)</translation> +<translation id="5911110632211230665">फ़ाइल को खोलने की अनुमति नहीं है</translation> <translation id="59174027418879706">चालू किया गया</translation> <translation id="5919090499915321845">बी10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 इस्तेमाल में है}one{# इस्तेमाल में है}other{# इस्तेमाल में हैं}}</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index 5e897e01..dd1cebd 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetáriánus konyha</translation> <translation id="1623104350909869708">Akadályozza meg, hogy ez az oldal további párbeszédablakokat hozzon létre.</translation> +<translation id="1633137413609266904">{0,plural, =1{A fájl megnyitását rendszergazdai házirend tiltja}other{# fájl megnyitását rendszergazdai házirend tiltja}}</translation> <translation id="1634828734222219955">Végösszeg</translation> <translation id="163669211644121865">Adóelőkészítés és -tervezés</translation> <translation id="1638780421120290329">Nem lehet menteni a kártyát</translation> @@ -894,6 +895,7 @@ <translation id="3270847123878663523">&Átrendezés visszavonása</translation> <translation id="3271648667212143903">A(z) <ph name="ORIGIN" /> csatlakozni szeretne</translation> <translation id="3272091146646336650">„Super B” méret</translation> +<translation id="3281350579597955952">{0,plural, =1{A rendszergazda által beállított házirend nem javasolja ennek a fájlnak a megnyitását itt: <ph name="DESTINATION_NAME" />}other{A rendszergazda által beállított házirend nem javasolja ezeknek a fájloknak a megnyitását itt: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">A szervezete (<ph name="ENROLLMENT_DOMAIN" />) elküldött bizonyos információkat (pl. a beállításokat és a házirendeket) a következő webhelyeknek.</translation> <translation id="3282497668470633863">Adja meg a kártyán szereplő nevet</translation> <translation id="3286372614333682499">álló</translation> @@ -1293,6 +1295,7 @@ <translation id="4275830172053184480">Indítsa újra az eszközt</translation> <translation id="4277028893293644418">Jelszó visszaállítása</translation> <translation id="4278390842282768270">Engedélyezve</translation> +<translation id="4281998142035485137">{0,plural, =1{Megnyitja a bizalmas fájlt?}other{Megnyitja a bizalmas fájlokat?}}</translation> <translation id="4282346679996504092">Megtörtént a termékhez tartozó értesítések kikapcsolása és a könyvjelző eltávolítása</translation> <translation id="4285498937028063278">Rögzítés megszüntetése</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{A kártyát mentettük a Google-fiókjába.}other{Ezeket a kártyákat mentettük a Google-fiókjába.}}</translation> @@ -1926,6 +1929,7 @@ <translation id="5903264686717710770">Megszólítás:</translation> <translation id="5904360430676679685">Család és kapcsolatok</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (szinkronizálva)</translation> +<translation id="5911110632211230665">Megnyitás letiltva</translation> <translation id="59174027418879706">Engedélyezve</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 van használatban}other{# van használatban}}</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 2c824365..9863d6a 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Masakan vegetarian</translation> <translation id="1623104350909869708">Cegah dialog lain dari halaman ini.</translation> +<translation id="1633137413609266904">{0,plural, =1{Pembukaan file ini diblokir oleh kebijakan administrator}other{Pembukaan # file diblokir oleh kebijakan administrator}}</translation> <translation id="1634828734222219955">Total</translation> <translation id="163669211644121865">Persiapan & perencanaan pajak</translation> <translation id="1638780421120290329">Tidak dapat menyimpan kartu</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Urungkan Pengaturan Ulang</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> ingin terhubung</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Kebijakan administrator tidak merekomendasikan untuk membuka file ini di <ph name="DESTINATION_NAME" />}other{Kebijakan administrator tidak merekomendasikan untuk membuka file ini di <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Organisasi Anda, <ph name="ENROLLMENT_DOMAIN" />, telah mengirim beberapa info ke situs berikut, seperti setelan atau kebijakan.</translation> <translation id="3282497668470633863">Tambahkan nama di kartu</translation> <translation id="3286372614333682499">potret</translation> @@ -1294,6 +1296,7 @@ <translation id="4275830172053184480">Mulai ulang perangkat Anda</translation> <translation id="4277028893293644418">Reset sandi</translation> <translation id="4278390842282768270">Diizinkan</translation> +<translation id="4281998142035485137">{0,plural, =1{Buka file rahasia?}other{Buka file rahasia?}}</translation> <translation id="4282346679996504092">Notifikasi untuk produk ini telah dinonaktifkan dan bookmark dihapus</translation> <translation id="4285498937028063278">Lepaskan</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Kartu ini telah disimpan di Akun Google Anda}other{Kartu-kartu ini telah disimpan di Akun Google Anda}}</translation> @@ -1927,6 +1930,7 @@ <translation id="5903264686717710770">Judul:</translation> <translation id="5904360430676679685">Keluarga & hubungan</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (disinkronkan)</translation> +<translation id="5911110632211230665">Pembukaan diblokir</translation> <translation id="59174027418879706">Diaktifkan</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 terpakai}other{# terpakai}}</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index 2d83935..18d4ec3 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -2841,6 +2841,7 @@ <translation id="8233773197406738106">ფაილი მზადდება</translation> <translation id="8235754723616617175">ქანთრი მუსიკა</translation> <translation id="8237519162179154808">ჰობი და დასვენება</translation> +<translation id="8238188918340945316">28 x 40 დუიმი</translation> <translation id="8238581221633243064">გვერდის ახალ ინკოგნიტო ჩანართში გახსნა</translation> <translation id="8241707690549784388">გვერდი, რომელსაც ეძებთ, იყენებს თქვენ მიერ შეყვანილ ინფორმაციას. ამ გვერდზე დაბრუნების შემთხვევაში, ნებისმიერი ადრე განხორციელებული მოქმედება შეიძლება გამეორდეს. გსურთ გააგრძელოთ?</translation> <translation id="8241712895048303527">ამ საიტზე დაბლოკვა</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index c715b66..f739de9b 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">카메라</translation> <translation id="1622571349153632031">채식주의자 음식</translation> <translation id="1623104350909869708">이 페이지가 추가적인 대화를 생성하지 않도록 차단</translation> +<translation id="1633137413609266904">{0,plural, =1{관리자 정책에 의해 이 파일의 열기가 차단되었습니다.}other{관리자 정책에 의해 파일 #개의 열기가 차단되었습니다.}}</translation> <translation id="1634828734222219955">합계</translation> <translation id="163669211644121865">세무</translation> <translation id="1638780421120290329">카드를 저장할 수 없음</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">재정렬 실행 취소(&U)</translation> <translation id="3271648667212143903"><ph name="ORIGIN" />에서 연결하려고 함</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{관리자 정책에 따라 이 파일을 <ph name="DESTINATION_NAME" />에서 열지 않는 것이 좋습니다.}other{관리자 정책에 따라 이 파일을 <ph name="DESTINATION_NAME" />에서 열지 않는 것이 좋습니다.}}</translation> <translation id="3282085321714087552"><ph name="ENROLLMENT_DOMAIN" /> 조직에서 다음 웹사이트로 설정 또는 정책과 같은 정보를 전송했습니다.</translation> <translation id="3282497668470633863">카드 명의 추가</translation> <translation id="3286372614333682499">세로 모드</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">기기 다시 시작</translation> <translation id="4277028893293644418">비밀번호 재설정</translation> <translation id="4278390842282768270">허용</translation> +<translation id="4281998142035485137">{0,plural, =1{기밀 파일을 여시겠습니까?}other{기밀 파일을 여시겠습니까?}}</translation> <translation id="4282346679996504092">제품 관련 알림이 사용 중지되었으며 북마크가 삭제되었습니다.</translation> <translation id="4285498937028063278">고정 해제</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{다음 카드가 Google 계정에 저장되었습니다.}other{다음 카드가 Google 계정에 저장되었습니다.}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">직책:</translation> <translation id="5904360430676679685">가족 및 대인관계</translation> <translation id="5908541034548427511"><ph name="TYPE_1" />(동기화됨)</translation> +<translation id="5911110632211230665">파일 열기 차단됨</translation> <translation id="59174027418879706">사용 가능</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1개 사용 중}other{#개 사용 중}}</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 78d4dde..0256123 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">ക്യാമറ</translation> <translation id="1622571349153632031">വെജിറ്റേറിയൻ ഭക്ഷണം</translation> <translation id="1623104350909869708">കൂടുതൽ ഡയലോഗുകൾ സൃഷ്ടിക്കുന്നതിൽ നിന്നും ഈ പേജിനെ തടയുക</translation> +<translation id="1633137413609266904">{0,plural, =1{ഈ ഫയൽ തുറക്കുന്നത് അഡ്മിൻ നയം ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു}other{# ഫയലുകൾ തുറക്കുന്നത് അഡ്മിൻ നയം ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു}}</translation> <translation id="1634828734222219955">മൊത്തം</translation> <translation id="163669211644121865">നികുതി തയ്യാറാക്കലും ആസൂത്രണവും</translation> <translation id="1638780421120290329">കാർഡ് സംരക്ഷിക്കാനാകുന്നില്ല</translation> @@ -895,6 +896,7 @@ <translation id="3270847123878663523">&പുനഃക്രമീകരിക്കുന്നത് പഴയപടിയാക്കുക</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> കണക്റ്റുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു</translation> <translation id="3272091146646336650">സൂപ്പർ B</translation> +<translation id="3281350579597955952">{0,plural, =1{<ph name="DESTINATION_NAME" /> എന്നതിൽ ഈ ഫയൽ തുറക്കുന്നത് അഡ്മിൻ നയം ശുപാർശ ചെയ്യുന്നില്ല}other{<ph name="DESTINATION_NAME" /> എന്നതിൽ ഈ ഫയലുകൾ തുറക്കുന്നത് അഡ്മിൻ നയം ശുപാർശ ചെയ്യുന്നില്ല}}</translation> <translation id="3282085321714087552">നിങ്ങളുടെ സ്ഥാപനം, <ph name="ENROLLMENT_DOMAIN" />, ക്രമീകരണമോ നയങ്ങളോ പോലുള്ള ചില വിവരങ്ങൾ ഇനിപ്പറയുന്ന വെബ്സൈറ്റുകളിലേക്ക് അയച്ചു.</translation> <translation id="3282497668470633863">കാർഡിൽ പേര് ചേർക്കുക</translation> <translation id="3286372614333682499">പോർട്രെയ്റ്റ്</translation> @@ -1294,6 +1296,7 @@ <translation id="4275830172053184480">നിങ്ങളുടെ ഉപകരണം പുനരാരംഭിക്കുക</translation> <translation id="4277028893293644418">പാസ്വേഡ് റീസെറ്റ് ചെയ്യുക</translation> <translation id="4278390842282768270">അനുവദനീയം</translation> +<translation id="4281998142035485137">{0,plural, =1{രഹസ്യാത്മക ഫയൽ തുറക്കണോ?}other{രഹസ്യാത്മക ഫയലുകൾ തുറക്കണോ?}}</translation> <translation id="4282346679996504092">ഈ ഉൽപ്പന്നത്തിനായുള്ള അറിയിപ്പുകൾ ഓഫാക്കി, ബുക്ക്മാർക്ക് നീക്കം ചെയ്തു</translation> <translation id="4285498937028063278">പിൻചെയ്യൽ മാറ്റുക</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{ഈ കാർഡ് നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിച്ചു}other{ഈ കാർഡുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിച്ചു}}</translation> @@ -1927,6 +1930,7 @@ <translation id="5903264686717710770">ശീര്ഷകം:</translation> <translation id="5904360430676679685">കുടുംബവും ബന്ധങ്ങളും</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (സമന്വയിപ്പിച്ചത്)</translation> +<translation id="5911110632211230665">തുറക്കുന്നത് ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു</translation> <translation id="59174027418879706">പ്രവർത്തനക്ഷമമാക്കി</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{ഒരെണ്ണം ഉപയോഗത്തിലുണ്ട്}other{# എണ്ണം ഉപയോഗത്തിലുണ്ട്}}</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 1725d7c..9dcfe83 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Камер</translation> <translation id="1622571349153632031">Цагаан хоол</translation> <translation id="1623104350909869708">Энэ хуудсыг нэмэлт хэлэлцүүлэг үүсгэхээс нь урьдчилан сэргийлэх</translation> +<translation id="1633137413609266904">{0,plural, =1{Энэ файлыг нээхийг администраторын бодлогоор блоклосон}other{# файлыг нээхийг администраторын бодлогоор блоклосон}}</translation> <translation id="1634828734222219955">Нийт</translation> <translation id="163669211644121865">Татварын тайлан гаргах болон төлөвлөх</translation> <translation id="1638780421120290329">Картыг хадгалах боломжгүй байна</translation> @@ -897,6 +898,7 @@ <translation id="3270847123878663523">& Дахин эрэмбэлэх үйлдлийг буцаах</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> холбогдох хүсэлтэй байна</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Администраторын бодлого энэ файлыг <ph name="DESTINATION_NAME" />-д нээхийг санал болгодоггүй}other{Администраторын бодлого эдгээр файлыг <ph name="DESTINATION_NAME" />-д нээхийг санал болгодоггүй}}</translation> <translation id="3282085321714087552">Танай байгууллага, <ph name="ENROLLMENT_DOMAIN" /> дараах вебсайтууд руу тохиргоо эсвэл бодлого зэрэг зарим мэдээллийг илгээсэн.</translation> <translation id="3282497668470633863">Картанд нэр нэмэх</translation> <translation id="3286372614333682499">хөрөг зураг</translation> @@ -1296,6 +1298,7 @@ <translation id="4275830172053184480">Төхөөрөмжийг дахин эхлүүл</translation> <translation id="4277028893293644418">Нууц үгийг шинэчлэх</translation> <translation id="4278390842282768270">Зөвшөөрөгдсөн</translation> +<translation id="4281998142035485137">{0,plural, =1{Нууцлалтай файлыг нээх үү?}other{Нууцлалтай файлуудыг нээх үү?}}</translation> <translation id="4282346679996504092">Энэ бүтээгдэхүүний сэрэмжлүүлгийг унтраасан бөгөөд хавчуургыг хассан</translation> <translation id="4285498937028063278">Сонголтоос гаргах</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Энэ картыг таны Google Бүртгэлд хадгаллаа}other{Эдгээр картыг таны Google Бүртгэлд хадгаллаа}}</translation> @@ -1929,6 +1932,7 @@ <translation id="5903264686717710770">Гарчиг:</translation> <translation id="5904360430676679685">Гэр бүл, харилцаа холбоо</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синк хийсэн)</translation> +<translation id="5911110632211230665">Нээхийг блоклосон</translation> <translation id="59174027418879706">Идэвхжсэн</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1-г ашиглаж байгаа}other{# ашиглаж байгаа}}</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index 83707f14..c32e564 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">ကင်မရာ</translation> <translation id="1622571349153632031">သက်သတ်လွတ် အစားအစာ</translation> <translation id="1623104350909869708">ဤစာမျက်နှာကို နောက်ထပ် စကားကွက်များထပ်မံ ဖန်တီးခြင်းမှ ကာကွယ်မည်။</translation> +<translation id="1633137413609266904">{0,plural, =1{စီမံခန့်ခွဲသူမူဝါဒက ဤဖိုင်ဖွင့်ခွင့် ပိတ်ထားသည်}other{စီမံခန့်ခွဲသူမူဝါဒက ဖိုင် # ဖိုင်ဖွင့်ခွင့် ပိတ်ထားသည်}}</translation> <translation id="1634828734222219955">စုစုပေါင်း</translation> <translation id="163669211644121865">အခွန်ပြင်ဆင်ခြင်းနှင့် စီစဉ်ခြင်း</translation> <translation id="1638780421120290329">ကတ်ကို သိမ်း၍မရပါ</translation> @@ -898,6 +899,7 @@ <translation id="3270847123878663523">&ပြန်စီမှုကို တစ်ဆင့်နောက်ပြန်ရန်</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> သည် ချိတ်ဆက်လိုပါသည်</translation> <translation id="3272091146646336650">စူပါ B</translation> +<translation id="3281350579597955952">{0,plural, =1{စီမံခန့်ခွဲသူမူဝါဒက <ph name="DESTINATION_NAME" /> ရှိ ဤဖိုင်ဖွင့်ရန် အကြံမပြုပါ}other{စီမံခန့်ခွဲသူမူဝါဒက <ph name="DESTINATION_NAME" /> ရှိ ဤဖိုင်များဖွင့်ရန် အကြံမပြုပါ}}</translation> <translation id="3282085321714087552">သင့်အဖွဲ့အစည်း <ph name="ENROLLMENT_DOMAIN" /> သည် ဆက်တင်များ (သို့) မူဝါဒများကဲ့သို့ အချက်အလက်အချို့ကို အောက်ပါဝဘ်ဆိုက်များသို့ ပို့လိုက်သည်။</translation> <translation id="3282497668470633863">ကတ်ပေါ်ရှိ အမည်ကို ထည့်ပါ</translation> <translation id="3286372614333682499">ဒေါင်လိုက်</translation> @@ -1296,6 +1298,7 @@ <translation id="4275830172053184480">သင့်စက်ပစ္စည်းကို ပြန်လည် အစပြုပါ</translation> <translation id="4277028893293644418">စကားဝှက် ပြင်ဆင်သတ်မှတ်ရန်</translation> <translation id="4278390842282768270">ခွင့်ပြုထား</translation> +<translation id="4281998142035485137">{0,plural, =1{လျှို့ဝှက်ဖိုင် ဖွင့်မလား။}other{လျှို့ဝှက်ဖိုင်များ ဖွင့်မလား။}}</translation> <translation id="4282346679996504092">ဤထုတ်ကုန်အတွက် သတိပေးချက်များကို ပိတ်ထားပြီး လိပ်စာကို ဖယ်ရှားထားသည်</translation> <translation id="4285498937028063278">ပင်ဖြုတ်ရန်</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{ဤကတ်ကို သင်၏ Google အကောင့်တွင် သိမ်းပြီးပါပြီ}other{ဤကတ်များကို သင်၏ Google အကောင့်တွင် သိမ်းပြီးပါပြီ}}</translation> @@ -1929,6 +1932,7 @@ <translation id="5903264686717710770">ခေါင်းစဉ်-</translation> <translation id="5904360430676679685">မိသားစုအရေးနှင့် အချစ်ရေး</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (စင့်ခ်လုပ်ထားသည်)</translation> +<translation id="5911110632211230665">ဖွင့်ခွင့် ပိတ်ထားသည်</translation> <translation id="59174027418879706">ဖွင့်ထားသည်</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{၁ ခု အသုံးပြုနေသည်}other{# ခု အသုံးပြုနေသည်}}</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 6629e5d..456103c5 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Camera</translation> <translation id="1622571349153632031">Vegetarische keuken</translation> <translation id="1623104350909869708">Voorkomen dat deze pagina extra dialoogvensters toont</translation> +<translation id="1633137413609266904">{0,plural, =1{Dit bestand openen is geblokkeerd door het beheerdersbeleid}other{Deze # bestanden openen is geblokkeerd door het beheerdersbeleid}}</translation> <translation id="1634828734222219955">Totaal</translation> <translation id="163669211644121865">Belastingaangifte en belastingservices</translation> <translation id="1638780421120290329">Kan kaart niet opslaan</translation> @@ -893,6 +894,7 @@ <translation id="3270847123878663523">&Volgorde wijzigen ongedaan maken</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> wil verbinding maken</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Op basis van het beheerdersbeleid wordt afgeraden dit bestand te openen in <ph name="DESTINATION_NAME" />}other{Op basis van het beheerdersbeleid wordt afgeraden deze bestanden te openen in <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Je organisatie, <ph name="ENROLLMENT_DOMAIN" />, heeft bepaalde gegevens gestuurd naar de volgende websites, zoals instellingen of beleidsregels.</translation> <translation id="3282497668470633863">Naam op pas toevoegen</translation> <translation id="3286372614333682499">staand</translation> @@ -1290,6 +1292,7 @@ <translation id="4275830172053184480">Je apparaat opnieuw opstarten</translation> <translation id="4277028893293644418">Wachtwoord opnieuw instellen</translation> <translation id="4278390842282768270">Toegestaan</translation> +<translation id="4281998142035485137">{0,plural, =1{Vertrouwelijk bestand openen?}other{Vertrouwelijke bestanden openen?}}</translation> <translation id="4282346679996504092">Meldingen voor dit product zijn uitgezet en de bookmark is verwijderd</translation> <translation id="4285498937028063278">Losmaken</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Deze pas is opgeslagen in je Google-account}other{Deze passen zijn opgeslagen in je Google-account}}</translation> @@ -1923,6 +1926,7 @@ <translation id="5903264686717710770">Titel:</translation> <translation id="5904360430676679685">Familie en relaties</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (gesynchroniseerd)</translation> +<translation id="5911110632211230665">Openen geblokkeerd</translation> <translation id="59174027418879706">Aangezet</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in gebruik}other{# in gebruik}}</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index fe8e9bd..fa0cfdc 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarmat</translation> <translation id="1623104350909869708">Hindre denne siden i å opprette flere dialogruter</translation> +<translation id="1633137413609266904">{0,plural, =1{Åpning av denne filen er blokkert på grunn av en administratorregel}other{Åpning av # filer er blokkert på grunn av en administratorregel}}</translation> <translation id="1634828734222219955">Totalt</translation> <translation id="163669211644121865">Skatteforberedelse og -planlegging</translation> <translation id="1638780421120290329">Kan ikke lagre kortet</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Angre omorganiseringen</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> vil koble til</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Administratorreglene anbefaler ikke at du åpner denne filen i <ph name="DESTINATION_NAME" />}other{Administratorreglene anbefaler ikke at du åpner disse filene i <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Organisasjonen din, <ph name="ENROLLMENT_DOMAIN" />, har sendt noe informasjon til de følgende nettstedene, for eksempel innstillinger eller retningslinjer.</translation> <translation id="3282497668470633863">Legg til navnet på kortet</translation> <translation id="3286372614333682499">stående</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Start enheten din på nytt</translation> <translation id="4277028893293644418">Tilbakestill passordet</translation> <translation id="4278390842282768270">Tillatt</translation> +<translation id="4281998142035485137">{0,plural, =1{Vil du åpne den konfidensielle filen?}other{Vil du åpne de konfidensielle filene?}}</translation> <translation id="4282346679996504092">Varsler for dette produktet er slått av, og bokmerket er fjernet</translation> <translation id="4285498937028063278">Løsne</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Dette kortet er lagret i Google-kontoen din}other{Disse kortene er lagret i Google-kontoen din}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Tittel:</translation> <translation id="5904360430676679685">Familie og forhold</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (synkronisert)</translation> +<translation id="5911110632211230665">Blokkert åpning</translation> <translation id="59174027418879706">Aktivert</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 er i bruk}other{# er i bruk}}</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index d70209b..70fadf5 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">କ୍ୟାମେରା</translation> <translation id="1622571349153632031">ନିରାମିଷ ପାକପ୍ରଣାଳୀ</translation> <translation id="1623104350909869708">ଅତିରିକ୍ତ ସଂଳାପଗୁଡିକ ସୃଷ୍ଟି କରିବା କାର୍ଯ୍ୟରୁ ଏହି ପୃଷ୍ଠାକୁ ପ୍ରତିରୋଧ କରନ୍ତୁ</translation> +<translation id="1633137413609266904">{0,plural, =1{ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ଅନୁଯାୟୀ ଏହି ଫାଇଲକୁ ଖୋଲିବା ବ୍ଲକ କରାଯାଇଛି}other{ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ଅନୁଯାୟୀ #ଟି ଫାଇଲକୁ ଖୋଲିବା ବ୍ଲକ କରାଯାଇଛି}}</translation> <translation id="1634828734222219955">ମୋଟ</translation> <translation id="163669211644121865">କର ପ୍ରସ୍ତୁତି ଏବଂ ପ୍ଲାନିଂ</translation> <translation id="1638780421120290329">କାର୍ଡ ସେଭ୍ କରିପାରିବ ନାହିଁ</translation> @@ -894,6 +895,7 @@ <translation id="3270847123878663523">ପୁନଃକ୍ରମକୁ &ପୂର୍ବବତ୍ କରନ୍ତୁ</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> ସଂଯୋଗ ହେବାକୁ ଚାହୁଁଛି</translation> <translation id="3272091146646336650">ସୁପର B</translation> +<translation id="3281350579597955952">{0,plural, =1{<ph name="DESTINATION_NAME" />ରେ ଏହି ଫାଇଲକୁ ଖୋଲିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}other{<ph name="DESTINATION_NAME" />ରେ ଏହି ଫାଇଲଗୁଡ଼ିକୁ ଖୋଲିବା ପାଇଁ ଆଡମିନିଷ୍ଟ୍ରେଟର ନୀତି ସୁପାରିଶ କରେ ନାହିଁ}}</translation> <translation id="3282085321714087552">ଆପଣଙ୍କ ସଂସ୍ଥା, <ph name="ENROLLMENT_DOMAIN" />, ନିମ୍ନୋକ୍ତ ୱେବସାଇଟଗୁଡ଼ିକୁ ସେଟିଂସ୍ କିମ୍ବା ନୀତିଗୁଡ଼ିକ ପରି କିଛି ସୂଚନା ପଠାଇଛି।</translation> <translation id="3282497668470633863">କାର୍ଡରେ ନାମକୁ ଯୋଗ କରନ୍ତୁ</translation> <translation id="3286372614333682499">ପୋଟ୍ରେଟ୍</translation> @@ -1292,6 +1294,7 @@ <translation id="4275830172053184480">ଆପଣଙ୍କର ଡିଭାଇସ୍ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ</translation> <translation id="4277028893293644418">ପାସ୍ୱର୍ଡ ରିସେଟ୍ କରନ୍ତୁ</translation> <translation id="4278390842282768270">ଅନୁମୋଦିତ</translation> +<translation id="4281998142035485137">{0,plural, =1{ଗୋପନୀୟ ଫାଇଲ ଖୋଲିବେ?}other{ଗୋପନୀୟ ଫାଇଲଗୁଡ଼ିକୁ ଖୋଲିବେ?}}</translation> <translation id="4282346679996504092">ଏହି ପ୍ରଡକ୍ଟ ପାଇଁ ଆଲର୍ଟଗୁଡ଼ିକୁ ବନ୍ଦ କରିଦିଆଯାଇଛି ଏବଂ ବୁକମାର୍କକୁ କାଢ଼ି ଦିଆଯାଇଛି</translation> <translation id="4285498937028063278">ଅନ୍ପିନ୍ କରନ୍ତୁ</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{ଏହି କାର୍ଡ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ୍ କରିଦିଆଯାଇଛି}other{ଏହି କାର୍ଡଗୁଡ଼ିକୁ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସେଭ୍ କରିଦିଆଯାଇଛି}}</translation> @@ -1926,6 +1929,7 @@ <translation id="5903264686717710770">ଆଖ୍ୟା:</translation> <translation id="5904360430676679685">ପରିବାର ଏବଂ ସମ୍ପର୍କଗୁଡ଼ିକ</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> ( ସିଙ୍କ୍ କରାଯାଇଛି)</translation> +<translation id="5911110632211230665">ଖୋଲିବା ବ୍ଲକ କରାଯାଇଛି</translation> <translation id="59174027418879706">ସାମର୍ଥ୍ୟ ହୋଇଛି</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1ଟି ବ୍ୟବହାରରେ ଅଛି}other{#ଟି ବ୍ୟବହାରରେ ଅଛି}}</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index e0f9dd21..1eee15c 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Камера</translation> <translation id="1622571349153632031">Вегетарианская кухня</translation> <translation id="1623104350909869708">Запретить создание дополнительных диалоговых окон на этой странице</translation> +<translation id="1633137413609266904">{0,plural, =1{Администратор запретил открывать этот файл.}one{Администратор запретил открывать # файл.}few{Администратор запретил открывать # файла.}many{Администратор запретил открывать # файлов.}other{Администратор запретил открывать # файла.}}</translation> <translation id="1634828734222219955">Всего</translation> <translation id="163669211644121865">Расчет и планирование налогов</translation> <translation id="1638780421120290329">Не удалось сохранить карту</translation> @@ -895,6 +896,7 @@ <translation id="3270847123878663523">&Отменить изменение порядка</translation> <translation id="3271648667212143903">Сайт <ph name="ORIGIN" /> запрашивает подключение</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Администратор не рекомендует открывать этот файл в месте назначения "<ph name="DESTINATION_NAME" />".}one{Администратор не рекомендует открывать эти файлы в месте назначения "<ph name="DESTINATION_NAME" />".}few{Администратор не рекомендует открывать эти файлы в месте назначения "<ph name="DESTINATION_NAME" />".}many{Администратор не рекомендует открывать эти файлы в месте назначения "<ph name="DESTINATION_NAME" />".}other{Администратор не рекомендует открывать эти файлы в месте назначения "<ph name="DESTINATION_NAME" />".}}</translation> <translation id="3282085321714087552">Ваша организация (<ph name="ENROLLMENT_DOMAIN" />) отправила на следующие веб-сайты некоторые данные, такие как настройки и правила.</translation> <translation id="3282497668470633863">Укажите имя владельца карты</translation> <translation id="3286372614333682499">вертикальная ориентация</translation> @@ -1294,6 +1296,7 @@ <translation id="4275830172053184480">Перезапуск устройства</translation> <translation id="4277028893293644418">Сбросить пароль</translation> <translation id="4278390842282768270">Разрешено</translation> +<translation id="4281998142035485137">{0,plural, =1{Открыть конфиденциальный файл?}one{Открыть конфиденциальные файлы?}few{Открыть конфиденциальные файлы?}many{Открыть конфиденциальные файлы?}other{Открыть конфиденциальные файлы?}}</translation> <translation id="4282346679996504092">Оповещения об этом товаре отключены, а закладка удалена.</translation> <translation id="4285498937028063278">Открепить</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Карта сохранена в аккаунте Google.}one{Карты сохранены в аккаунте Google.}few{Карты сохранены в аккаунте Google.}many{Карты сохранены в аккаунте Google.}other{Карты сохранены в аккаунте Google.}}</translation> @@ -1927,6 +1930,7 @@ <translation id="5903264686717710770">Заголовок:</translation> <translation id="5904360430676679685">Семья и взаимоотношения</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (данные синхронизируются)</translation> +<translation id="5911110632211230665">Открывать запрещено</translation> <translation id="59174027418879706">Включено</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Используется 1 файл cookie}one{Используется # файл cookie}few{Используется # файла cookie}many{Используется # файлов cookie}other{Используется # файла cookie}}</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index 859be7fc7..0a4df1dc 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarijanska kuhinja</translation> <translation id="1623104350909869708">Spreči ovu stranicu da pravi dodatne dijaloge</translation> +<translation id="1633137413609266904">{0,plural, =1{Smernice administratora blokiraju otvaranje ovog fajla}one{Smernice administratora blokiraju otvaranje # fajla}few{Smernice administratora blokiraju otvaranje # fajla}other{Smernice administratora blokiraju otvaranje # fajlova}}</translation> <translation id="1634828734222219955">Ukupno</translation> <translation id="163669211644121865">Priprema i planiranje poreza</translation> <translation id="1638780421120290329">Čuvanje kartice nije uspelo</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Opozovi promenu redosleda</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> želi da se poveže</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Smernice administratora ne preporučuju otvaranje ovog fajla u: <ph name="DESTINATION_NAME" />}one{Smernice administratora ne preporučuju otvaranje ovih fajlova u: <ph name="DESTINATION_NAME" />}few{Smernice administratora ne preporučuju otvaranje ovih fajlova u: <ph name="DESTINATION_NAME" />}other{Smernice administratora ne preporučuju otvaranje ovih fajlova u: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Vaša organizacija, <ph name="ENROLLMENT_DOMAIN" />, poslala je određene podatke sledećim veb-sajtovima, poput podešavanja ili smernica.</translation> <translation id="3282497668470633863">Dodajte ime na kartici</translation> <translation id="3286372614333682499">uspravno</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Ponovno pokretanje uređaja</translation> <translation id="4277028893293644418">Resetujte lozinku</translation> <translation id="4278390842282768270">Dozvoljeno</translation> +<translation id="4281998142035485137">{0,plural, =1{Želite da otvorite poverljiv fajl?}one{Želite da otvorite poverljive fajlove?}few{Želite da otvorite poverljive fajlove?}other{Želite da otvorite poverljive fajlove?}}</translation> <translation id="4282346679996504092">Obaveštenja za ovaj proizvod su isključena, a obeleživač je uklonjen</translation> <translation id="4285498937028063278">Otkači</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Ova kartica je sačuvana na Google nalogu}one{Ove kartice su sačuvane na Google nalogu}few{Ove kartice su sačuvane na Google nalogu}other{Ove kartice su sačuvane na Google nalogu}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Naslov:</translation> <translation id="5904360430676679685">Porodični i drugi odnosi</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinhronizovano)</translation> +<translation id="5911110632211230665">Otvaranje je blokirano</translation> <translation id="59174027418879706">Omogućeno</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Koristi se 1}one{Koristi se #}few{Koriste se #}other{Koristi se #}}</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 7f92051..f2d0ebd2 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Камера</translation> <translation id="1622571349153632031">Вегетаријанска кухиња</translation> <translation id="1623104350909869708">Спречи ову страницу да прави додатне дијалоге</translation> +<translation id="1633137413609266904">{0,plural, =1{Смернице администратора блокирају отварање овог фајла}one{Смернице администратора блокирају отварање # фајла}few{Смернице администратора блокирају отварање # фајла}other{Смернице администратора блокирају отварање # фајлова}}</translation> <translation id="1634828734222219955">Укупно</translation> <translation id="163669211644121865">Припрема и планирање пореза</translation> <translation id="1638780421120290329">Чување картице није успело</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Опозови промену редоследа</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> жели да се повеже</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Смернице администратора не препоручују отварање овог фајла у: <ph name="DESTINATION_NAME" />}one{Смернице администратора не препоручују отварање ових фајлова у: <ph name="DESTINATION_NAME" />}few{Смернице администратора не препоручују отварање ових фајлова у: <ph name="DESTINATION_NAME" />}other{Смернице администратора не препоручују отварање ових фајлова у: <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Ваша организација, <ph name="ENROLLMENT_DOMAIN" />, послала је одређене податке следећим веб-сајтовима, попут подешавања или смерница.</translation> <translation id="3282497668470633863">Додајте име на картици</translation> <translation id="3286372614333682499">усправно</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Поновно покретање уређаја</translation> <translation id="4277028893293644418">Ресетујте лозинку</translation> <translation id="4278390842282768270">Дозвољено</translation> +<translation id="4281998142035485137">{0,plural, =1{Желите да отворите поверљив фајл?}one{Желите да отворите поверљиве фајлове?}few{Желите да отворите поверљиве фајлове?}other{Желите да отворите поверљиве фајлове?}}</translation> <translation id="4282346679996504092">Обавештења за овај производ су искључена, а обележивач је уклоњен</translation> <translation id="4285498937028063278">Откачи</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Ова картица је сачувана на Google налогу}one{Ове картице су сачуване на Google налогу}few{Ове картице су сачуване на Google налогу}other{Ове картице су сачуване на Google налогу}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Наслов:</translation> <translation id="5904360430676679685">Породични и други односи</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (синхронизовано)</translation> +<translation id="5911110632211230665">Отварање је блокирано</translation> <translation id="59174027418879706">Омогућено</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Користи се 1}one{Користи се #}few{Користе се #}other{Користи се #}}</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index c0a306c..82048e56 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -284,6 +284,7 @@ <translation id="1620510694547887537">కెమెరా</translation> <translation id="1622571349153632031">శాకాహార వంటకాలు</translation> <translation id="1623104350909869708">ఈ పేజీని అదనపు డైలాగ్లు సృష్టించనీయకుండా నిరోధించు</translation> +<translation id="1633137413609266904">{0,plural, =1{ఈ ఫైల్ను తెరవకుండా అడ్మినిస్ట్రేటర్ పాలసీ బ్లాక్ చేసింది}other{# ఫైల్స్ను తెరవకుండా అడ్మినిస్ట్రేటర్ పాలసీ బ్లాక్ చేసింది}}</translation> <translation id="1634828734222219955">మొత్తం</translation> <translation id="163669211644121865">ట్యాక్స్ రూపకల్పన & ప్లానింగ్</translation> <translation id="1638780421120290329">కార్డ్ను సేవ్ చేయలేకపోయింది</translation> @@ -898,6 +899,7 @@ <translation id="3270847123878663523">&మళ్లీ క్రమం చేయడాన్ని రద్దు చేయి</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> దీనికి కనెక్ట్ చేయాలనుకుంటోంది</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{<ph name="DESTINATION_NAME" />లో ఈ ఫైల్ను తెరవవద్దని అడ్మినిస్ట్రేటర్ పాలసీ సిఫార్సు చేస్తోంది}other{<ph name="DESTINATION_NAME" />లో ఈ ఫైల్స్ను తెరవవద్దని అడ్మినిస్ట్రేటర్ పాలసీ సిఫార్సు చేస్తోంది}}</translation> <translation id="3282085321714087552">సెట్టింగ్లు లేదా పాలసీల వంటి కొంత సమాచారాన్ని మీ సంస్థ <ph name="ENROLLMENT_DOMAIN" />, దిగువున పేర్కొన్న వెబ్సైట్లకు పంపింది.</translation> <translation id="3282497668470633863">కార్డ్లో పేరుని జోడించండి</translation> <translation id="3286372614333682499">పోర్ట్రెయిట్లో ఉంది</translation> @@ -1297,6 +1299,7 @@ <translation id="4275830172053184480">మీ పరికరాన్ని పునఃప్రారంభించండి</translation> <translation id="4277028893293644418">పాస్వర్డ్ను రీసెట్ చేయి</translation> <translation id="4278390842282768270">అనుమతించబడింది</translation> +<translation id="4281998142035485137">{0,plural, =1{గోప్యమైన ఫైల్ను తెరవాలా?}other{గోప్యమైన ఫైల్స్ను తెరవాలా?}}</translation> <translation id="4282346679996504092">ఈ ప్రోడక్ట్కి సంబంధించిన హెచ్చరికలు ఆఫ్ చేయబడ్డాయి, బుక్మార్క్ తీసివేయబడింది</translation> <translation id="4285498937028063278">అన్పిన్ చేయి</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{ఈ కార్డ్ మీ Google ఖాతాలో సేవ్ చేయబడింది}other{ఈ కార్డ్లు మీ Google ఖాతాలో సేవ్ చేయబడ్డాయి}}</translation> @@ -1930,6 +1933,7 @@ <translation id="5903264686717710770">శీర్షిక:</translation> <translation id="5904360430676679685">కుటుంబం & సంబంధాలు</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (సింక్ చేయబడింది)</translation> +<translation id="5911110632211230665">తెరవకుండా బ్లాక్ చేసింది</translation> <translation id="59174027418879706">ప్రారంభించబడింది</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 వినియోగంలో ఉంది}other{# వినియోగంలో ఉన్నాయి}}</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 62b3ce3..f8265b7 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -283,6 +283,7 @@ <translation id="1620510694547887537">کیمرا</translation> <translation id="1622571349153632031">سبزی والے پکوان</translation> <translation id="1623104350909869708">اس صفحہ کو اضافی ڈائیلاگز بنانے سے روکیں</translation> +<translation id="1633137413609266904">{0,plural, =1{منتظم کی پالیسی کے تحت اس فائل کا کھولنا مسدود ہے}other{منتظم کی پالیسی کے تحت # فائلز کا کھولنا مسدود ہے}}</translation> <translation id="1634828734222219955">کُل</translation> <translation id="163669211644121865">ٹیکس کی تیاری اور منصوبہ بندی</translation> <translation id="1638780421120290329">کارڈ محفوظ نہیں کر سکتے</translation> @@ -898,6 +899,7 @@ <translation id="3270847123878663523">دوبارہ ترتیب &کالعدم کریں</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> منسلک ہونا چاہتی ہے</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{منتظم کی پالیسی اس فائل کو <ph name="DESTINATION_NAME" /> میں کھولنے کی تجویز نہیں کرتی ہے}other{منتظم کی پالیسی ان فائلز کو <ph name="DESTINATION_NAME" /> میں کھولنے کی تجویز نہیں کرتی ہے}}</translation> <translation id="3282085321714087552">آپ کی تنظیم، <ph name="ENROLLMENT_DOMAIN" />، نے کچھ معلومات، جیسے ترتیبات یا پالیسیاں درج ذیل ویب سائٹس پر بھیجی ہیں۔</translation> <translation id="3282497668470633863">کارڈ پر نام شامل کریں</translation> <translation id="3286372614333682499">پورٹریٹ</translation> @@ -1297,6 +1299,7 @@ <translation id="4275830172053184480">اپنا آلہ دوبارہ شروع کریں</translation> <translation id="4277028893293644418">پاس ورڈ ری سیٹ کریں</translation> <translation id="4278390842282768270">اجازت یافتہ</translation> +<translation id="4281998142035485137">{0,plural, =1{رازدارانہ فائل کھولیں؟}other{رازدارانہ فائلز کھولیں؟}}</translation> <translation id="4282346679996504092">اس پروڈکٹ کے لیے الرٹس کو آف کر دیا گیا ہے اور بُک مارک ہٹا دیا گیا ہے</translation> <translation id="4285498937028063278">پن ہٹائیں</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{اس کارڈ کو آپ کے Google اکاؤنٹ میں محفوظ کر دیا گیا ہے}other{ان کارڈز کو آپ کے Google اکاؤنٹ میں محفوظ کر دیا گیا ہے}}</translation> @@ -1930,6 +1933,7 @@ <translation id="5903264686717710770">عنوان:</translation> <translation id="5904360430676679685">خاندان اور تعلقات</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (مطابقت پذیری کردہ)</translation> +<translation id="5911110632211230665">فائل کھولنے کو مسدود کیا گیا</translation> <translation id="59174027418879706">فعال</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 زیر استعمال ہے}other{# زیر استعمال ہیں}}</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 91338a0..9950ced 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -281,6 +281,7 @@ <translation id="1620510694547887537">Kamera</translation> <translation id="1622571349153632031">Vegetarian oshxonasi</translation> <translation id="1623104350909869708">Bu sahifada qo‘shimcha muloqot oynalari yaratishni taqiqlash</translation> +<translation id="1633137413609266904">{0,plural, =1{Bu fayllarni ochishni administrator taqiqlagan}other{# ta faylni ochishni administrator taqiqlagan}}</translation> <translation id="1634828734222219955">Jami</translation> <translation id="163669211644121865">Soliqlarni rejalashtirish</translation> <translation id="1638780421120290329">Karta saqlanmadi.</translation> @@ -893,6 +894,7 @@ <translation id="3270847123878663523">&Qayta tartiblashni bekor qilish</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> qurilmangizga ulanmoqchi</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Administrator bu faylni <ph name="DESTINATION_NAME" />da ochishni tavsiya qilmaydi}other{Administrator bu fayllarni <ph name="DESTINATION_NAME" />da ochishni tavsiya qilmaydi}}</translation> <translation id="3282085321714087552"><ph name="ENROLLMENT_DOMAIN" /> tashkilotingiz quyidagi saytlarga sozlamalar va qoidalar kabi ayrim axborotlarni yubordi.</translation> <translation id="3282497668470633863">Karta egasining ismini kiriting</translation> <translation id="3286372614333682499">tik</translation> @@ -1290,6 +1292,7 @@ <translation id="4275830172053184480">Qurilmangizni qayta yuklang</translation> <translation id="4277028893293644418">Parolni o‘zgartirish</translation> <translation id="4278390842282768270">Berilgan ruxsatnomalar</translation> +<translation id="4281998142035485137">{0,plural, =1{Maxfiy fayl ochilsinmi?}other{Maxfiy fayllar ochilsinmi?}}</translation> <translation id="4282346679996504092">Ushbu mahsulot uchun ogohlantirishlar oʻchirildi va bukmark olib tashlandi</translation> <translation id="4285498937028063278">Olib tashlash</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Bu karta Google hisobingizga saqlandi}other{Bu kartalar Google hisobingizga saqlandi}}</translation> @@ -1923,6 +1926,7 @@ <translation id="5903264686717710770">Nomi:</translation> <translation id="5904360430676679685">Oila va munosabatlar</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (sinxronlandi)</translation> +<translation id="5911110632211230665">Bloklangan fayllarni ochish</translation> <translation id="59174027418879706">Yoqilgan</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 ta cookie-fayl}other{ # ta cookie-fayl}}</translation> @@ -2835,6 +2839,7 @@ <translation id="8233773197406738106">Fayl tayyorlanmoqda</translation> <translation id="8235754723616617175">Kantri musiqasi</translation> <translation id="8237519162179154808">Xobbilar va hordiq</translation> +<translation id="8238188918340945316">28 x 40 in</translation> <translation id="8238581221633243064">Sahifani yangi inkognito varaqda ochish</translation> <translation id="8241707690549784388">Siz qidirayotgan sahifada o‘zingiz kiritgan ma’lumotlardan foydalanilgan. Unga qaytib borsangiz, u yerda bajargan amallaringiz takrorlanishi mumkin. Davom etasizmi?</translation> <translation id="8241712895048303527">Bu saytda bloklansin</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index bdc6c7a3..f0ccb1c6 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Máy ảnh</translation> <translation id="1622571349153632031">Món chay</translation> <translation id="1623104350909869708">Ngăn trang này tạo hộp thoại bổ sung</translation> +<translation id="1633137413609266904">{0,plural, =1{Chính sách của quản trị viên không cho phép mở tệp này}other{Chính sách của quản trị viên không cho phép mở # tệp}}</translation> <translation id="1634828734222219955">Tổng cộng</translation> <translation id="163669211644121865">Lập kế hoạch và chuẩn bị hồ sơ thuế</translation> <translation id="1638780421120290329">Không thể lưu thẻ</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">&Hoàn tác sắp xếp lại</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> muốn kết nối</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{Theo chính sách của quản trị viên, bạn không nên mở tệp này trong <ph name="DESTINATION_NAME" />}other{Theo chính sách của quản trị viên, bạn không nên mở các tệp này trong <ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Tổ chức <ph name="ENROLLMENT_DOMAIN" /> của bạn đã gửi một số thông tin (chẳng hạn như chế độ cài đặt hoặc chính sách) đến các trang web sau đây.</translation> <translation id="3282497668470633863">Thêm tên trên thẻ</translation> <translation id="3286372614333682499">dọc</translation> @@ -1295,6 +1297,7 @@ <translation id="4275830172053184480">Khởi động lại thiết bị của bạn</translation> <translation id="4277028893293644418">Đặt lại mật khẩu</translation> <translation id="4278390842282768270">Được cho phép</translation> +<translation id="4281998142035485137">{0,plural, =1{Mở tệp bảo mật?}other{Mở các tệp bảo mật?}}</translation> <translation id="4282346679996504092">Thông báo về sản phẩm này đã bị tắt và dấu trang đã bị xoá</translation> <translation id="4285498937028063278">Bỏ ghim</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Đã lưu thẻ này vào Tài khoản Google của bạn}other{Đã lưu các thẻ này vào Tài khoản Google của bạn}}</translation> @@ -1928,6 +1931,7 @@ <translation id="5903264686717710770">Tiêu đề:</translation> <translation id="5904360430676679685">Gia đình và các mối quan hệ</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (được đồng bộ hóa)</translation> +<translation id="5911110632211230665">Đã chặn việc mở tệp</translation> <translation id="59174027418879706">Được kích hoạt</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Đang sử dụng 1 cookie}other{Đang sử dụng # cookie}}</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 59b1802..63eb9a1 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">摄像头</translation> <translation id="1622571349153632031">素食</translation> <translation id="1623104350909869708">阻止此页创建其他对话框</translation> +<translation id="1633137413609266904">{0,plural, =1{管理员政策禁止打开这个文件}other{管理员政策禁止打开 # 个文件}}</translation> <translation id="1634828734222219955">总计</translation> <translation id="163669211644121865">报税与纳税筹划</translation> <translation id="1638780421120290329">无法保存卡</translation> @@ -894,6 +895,7 @@ <translation id="3270847123878663523">撤消顺序调整(&U)</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> 希望连接到以下所选设备:</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{管理员政策不建议在<ph name="DESTINATION_NAME" />中打开这个文件}other{管理员政策不建议在<ph name="DESTINATION_NAME" />中打开这些文件}}</translation> <translation id="3282085321714087552">贵组织 <ph name="ENROLLMENT_DOMAIN" /> 已将某些信息(例如设置或政策)发送给下列网站。</translation> <translation id="3282497668470633863">添加持卡人姓名</translation> <translation id="3286372614333682499">纵向</translation> @@ -1291,6 +1293,7 @@ <translation id="4275830172053184480">重启您的设备</translation> <translation id="4277028893293644418">重置密码</translation> <translation id="4278390842282768270">允许</translation> +<translation id="4281998142035485137">{0,plural, =1{打开机密文件?}other{打开机密文件?}}</translation> <translation id="4282346679996504092">针对此商品的提醒已被关闭,相应书签已被移除</translation> <translation id="4285498937028063278">取消固定</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{这张卡已保存到您的 Google 帐号中}other{这些卡已保存到您的 Google 帐号中}}</translation> @@ -1924,6 +1927,7 @@ <translation id="5903264686717710770">标题:</translation> <translation id="5904360430676679685">家庭与人际关系</translation> <translation id="5908541034548427511"><ph name="TYPE_1" />(已同步)</translation> +<translation id="5911110632211230665">禁止打开</translation> <translation id="59174027418879706">已启用</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{正在使用 1 个}other{正在使用 # 个}}</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index f412b47..94fb517 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">相機</translation> <translation id="1622571349153632031">素食</translation> <translation id="1623104350909869708">防止這個網頁產生其他對話方塊</translation> +<translation id="1633137413609266904">{0,plural, =1{管理員政策已禁止開啟此檔案}other{管理員政策已禁止開啟 # 個檔案}}</translation> <translation id="1634828734222219955">全部</translation> <translation id="163669211644121865">稅務籌劃</translation> <translation id="1638780421120290329">無法儲存付款卡</translation> @@ -896,6 +897,7 @@ <translation id="3270847123878663523">復原重新排序(&U)</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> 要求連接至</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{管理員政策不建議在<ph name="DESTINATION_NAME" />中開啟這個檔案}other{管理員政策不建議在<ph name="DESTINATION_NAME" />中開啟這些檔案}}</translation> <translation id="3282085321714087552">機構 (<ph name="ENROLLMENT_DOMAIN" />) 已將一些資訊 (例如設定或政策) 傳送到以下網站。</translation> <translation id="3282497668470633863">新增持卡人姓名</translation> <translation id="3286372614333682499">直向</translation> @@ -1294,6 +1296,7 @@ <translation id="4275830172053184480">重新啟動裝置</translation> <translation id="4277028893293644418">重設密碼</translation> <translation id="4278390842282768270">已允許</translation> +<translation id="4281998142035485137">{0,plural, =1{要開啟機密檔案嗎?}other{要開啟機密檔案嗎?}}</translation> <translation id="4282346679996504092">此產品的通知已關閉,網頁亦已從書籤中移除</translation> <translation id="4285498937028063278">取消固定</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{此卡已儲存至您的 Google 帳戶}other{這些卡已儲存至您的 Google 帳戶}}</translation> @@ -1927,6 +1930,7 @@ <translation id="5903264686717710770">標題:</translation> <translation id="5904360430676679685">家庭和人際關係</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (已同步)</translation> +<translation id="5911110632211230665">已禁止開啟</translation> <translation id="59174027418879706">已啟用</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{正在使用 1 個 cookie}other{正在使用 # 個 cookie}}</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 5b060c69..6ec2780a 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">攝影機</translation> <translation id="1622571349153632031">素食料理</translation> <translation id="1623104350909869708">防止這個網頁產生其他對話方塊</translation> +<translation id="1633137413609266904">{0,plural, =1{根據系統管理員政策,你無法開啟這個檔案}other{根據系統管理員政策,你無法開啟這 # 個檔案}}</translation> <translation id="1634828734222219955">全部</translation> <translation id="163669211644121865">稅務準備與規劃</translation> <translation id="1638780421120290329">無法儲存卡片</translation> @@ -895,6 +896,7 @@ <translation id="3270847123878663523">復原重新排序(&U)</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> 要求連線</translation> <translation id="3272091146646336650">Super B</translation> +<translation id="3281350579597955952">{0,plural, =1{根據系統管理員政策,建議你不要在「<ph name="DESTINATION_NAME" />」中開啟這個檔案}other{根據系統管理員政策,建議你不要在「<ph name="DESTINATION_NAME" />」中開啟這些檔案}}</translation> <translation id="3282085321714087552">貴機構 (<ph name="ENROLLMENT_DOMAIN" />) 已將一些資訊 (例如設定或政策) 傳送到下列網站。</translation> <translation id="3282497668470633863">新增持卡人姓名</translation> <translation id="3286372614333682499">肖像</translation> @@ -1294,6 +1296,7 @@ <translation id="4275830172053184480">重新啟動裝置</translation> <translation id="4277028893293644418">重設密碼</translation> <translation id="4278390842282768270">允許</translation> +<translation id="4281998142035485137">{0,plural, =1{要開啟機密檔案嗎?}other{要開啟機密檔案嗎?}}</translation> <translation id="4282346679996504092">這項產品的快訊已關閉,這個網頁也已從書籤中移除</translation> <translation id="4285498937028063278">取消固定</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{這張卡片已儲存到你的 Google 帳戶}other{這些卡片已儲存到你的 Google 帳戶}}</translation> @@ -1927,6 +1930,7 @@ <translation id="5903264686717710770">標題:</translation> <translation id="5904360430676679685">家庭與人際關係</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (已同步)</translation> +<translation id="5911110632211230665">已禁止開啟</translation> <translation id="59174027418879706">已啟用</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{目前使用 1 個 Cookie}other{目前使用 # 個 Cookie}}</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index d4beb78..6551c6b 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -282,6 +282,7 @@ <translation id="1620510694547887537">Ikhamela</translation> <translation id="1622571349153632031">I-cuisine yabangadli inyama</translation> <translation id="1623104350909869708">Vimbela leli khasi kusukela ekudaleni izingxoxo ezingeziwe</translation> +<translation id="1633137413609266904">{0,plural, =1{Ukukopisha leli fayela kuvinjelwe inqubomgomo yomlawuli}one{Ukukopisha amafayela angu-# kuvinjelwe inqubomgomo yomlawuli}other{Ukukopisha amafayela angu-# kuvinjelwe inqubomgomo yomlawuli}}</translation> <translation id="1634828734222219955">Inani</translation> <translation id="163669211644121865">Ukulungiselwa kwentela nokuhlela</translation> <translation id="1638780421120290329">Ayikwazi ukulondoloza ikhadi</translation> @@ -894,6 +895,7 @@ <translation id="3270847123878663523">&Hlehlisa ukuhlela kabusha</translation> <translation id="3271648667212143903"><ph name="ORIGIN" /> ufuna ukuxhuma</translation> <translation id="3272091146646336650">I-Super-B</translation> +<translation id="3281350579597955952">{0,plural, =1{Inqubomgomo yomlawuli ayincomi ukuvula leli fayela e-<ph name="DESTINATION_NAME" />}one{Inqubomgomo yomlawuli ayincomi ukuvula lamafayela ku-<ph name="DESTINATION_NAME" />}other{Inqubomgomo yomlawuli ayincomi ukuvula lamafayela ku-<ph name="DESTINATION_NAME" />}}</translation> <translation id="3282085321714087552">Inhlangano yakho, i-<ph name="ENROLLMENT_DOMAIN" />, ithumele ulwazi kumawebhusayithi alandelayo, njengamasethingi noma izinqumbomgomo.</translation> <translation id="3282497668470633863">Engeza igama kukhadi</translation> <translation id="3286372614333682499">ukuma ngobude</translation> @@ -1292,6 +1294,7 @@ <translation id="4275830172053184480">Qalisa kabusha idivayisi yakho</translation> <translation id="4277028893293644418">Setha kabusha iphasiwedi</translation> <translation id="4278390842282768270">Kuvunyelwe</translation> +<translation id="4281998142035485137">{0,plural, =1{Vula ifayela lokuyimfihlo?}one{Vula amafayela wokuyimfihlo?}other{Vula amafayela wokuyimfihlo?}}</translation> <translation id="4282346679996504092">Izaziso zalo mkhiqizo zivaliwe futhi ibhukhimakhi isusiwe</translation> <translation id="4285498937028063278">Susa ukuphina</translation> <translation id="428639260510061158">{NUM_CARDS,plural, =1{Leli khadi lilondolozwe ku-akhawunti yakho ye-Google}one{Lawa makhadi alondolozwe ku-akhawunti yakho ye-Google}other{Lawa makhadi alondolozwe ku-akhawunti yakho ye-Google}}</translation> @@ -1925,6 +1928,7 @@ <translation id="5903264686717710770">Isihloko:</translation> <translation id="5904360430676679685">Umndeni nobudlelwano</translation> <translation id="5908541034548427511"><ph name="TYPE_1" /> (kuvumelanisiwe)</translation> +<translation id="5911110632211230665">Ukuvula okuvinjelwe</translation> <translation id="59174027418879706">Kunikwe amandla</translation> <translation id="5919090499915321845">B10</translation> <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 esebenzayo}one{# esebenzayo}other{# esebenzayo}}</translation>
diff --git a/components/sync/driver/sync_service_impl.cc b/components/sync/driver/sync_service_impl.cc index 9683e47..90bcd1b 100644 --- a/components/sync/driver/sync_service_impl.cc +++ b/components/sync/driver/sync_service_impl.cc
@@ -249,12 +249,6 @@ user_settings_->IsFirstSetupComplete(), is_regular_profile_for_uma_); - if (!HasSyncConsent()) { - // Remove after 11/2021. Migration logic to set SyncRequested to false if - // the user is signed-out or signed-in but not syncing (crbug.com/1147026). - user_settings_->SetSyncRequested(false); - } - // Auto-start means the first time the profile starts up, sync should start up // immediately. Since IsSyncRequested() is false by default and nobody else // will set it, we need to set it here.
diff --git a/components/sync/protocol/device_info_specifics.proto b/components/sync/protocol/device_info_specifics.proto index bbced628..99fb989 100644 --- a/components/sync/protocol/device_info_specifics.proto +++ b/components/sync/protocol/device_info_specifics.proto
@@ -90,6 +90,12 @@ ChromeVersionInfo chrome_version_info = 17; GooglePlayServicesVersionInfo google_play_services_version_info = 18; } + + // The OS type the device. + optional SyncEnums.OsType os_type = 19; + + // The form factor of the device. + optional SyncEnums.DeviceFormFactor device_form_factor = 20; } // Feature specific information about the device that is running a sync-enabled
diff --git a/components/sync/protocol/proto_enum_conversions.cc b/components/sync/protocol/proto_enum_conversions.cc index c38730a..81d6eb0 100644 --- a/components/sync/protocol/proto_enum_conversions.cc +++ b/components/sync/protocol/proto_enum_conversions.cc
@@ -277,6 +277,24 @@ return ""; } +const char* ProtoEnumToString(sync_pb::SyncEnums::OsType os_type) { + ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, OsType, OS_TYPE_UNSPECIFIED, + OS_TYPE_FUCHSIA); + switch (os_type) { + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_UNSPECIFIED); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_WINDOWS); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_MAC); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_LINUX); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_CHROME_OS_ASH); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_ANDROID); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_IOS); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_CHROME_OS_LACROS); + ENUM_CASE(sync_pb::SyncEnums, OS_TYPE_FUCHSIA); + } + NOTREACHED(); + return ""; +} + const char* ProtoEnumToString( sync_pb::SyncEnums::DeviceFormFactor device_form_factor) { ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, DeviceFormFactor,
diff --git a/components/sync/protocol/proto_enum_conversions.h b/components/sync/protocol/proto_enum_conversions.h index 856d129..467ba043 100644 --- a/components/sync/protocol/proto_enum_conversions.h +++ b/components/sync/protocol/proto_enum_conversions.h
@@ -71,6 +71,8 @@ const char* ProtoEnumToString(sync_pb::SyncEnums::DeviceType device_type); +const char* ProtoEnumToString(sync_pb::SyncEnums::OsType os_type); + const char* ProtoEnumToString( sync_pb::SyncEnums::DeviceFormFactor device_form_factor);
diff --git a/components/sync/protocol/proto_visitors.h b/components/sync/protocol/proto_visitors.h index 09c680f..4276e06 100644 --- a/components/sync/protocol/proto_visitors.h +++ b/components/sync/protocol/proto_visitors.h
@@ -477,6 +477,8 @@ VISIT(full_hardware_class); VISIT(chrome_version_info); VISIT(google_play_services_version_info); + VISIT_ENUM(os_type); + VISIT_ENUM(device_form_factor); } VISIT_PROTO_FIELDS(const sync_pb::FeatureSpecificFields& proto) { @@ -1027,6 +1029,7 @@ VISIT_REP(window); VISIT(client_name); VISIT_ENUM(device_type); + VISIT_ENUM(device_form_factor); } VISIT_PROTO_FIELDS(const sync_pb::SessionSpecifics& proto) {
diff --git a/components/sync/protocol/session_specifics.proto b/components/sync/protocol/session_specifics.proto index 07c313b2..8cecba7 100644 --- a/components/sync/protocol/session_specifics.proto +++ b/components/sync/protocol/session_specifics.proto
@@ -37,6 +37,8 @@ optional string client_name = 3; // The type of device. optional SyncEnums.DeviceType device_type = 4; + // The form factor of device. + optional SyncEnums.DeviceFormFactor device_form_factor = 5; } message SessionWindow {
diff --git a/components/sync/protocol/sync_enums.proto b/components/sync/protocol/sync_enums.proto index 2d3e95c9..30461ce 100644 --- a/components/sync/protocol/sync_enums.proto +++ b/components/sync/protocol/sync_enums.proto
@@ -150,6 +150,19 @@ TYPE_TABLET = 7; } + // Types of device OS. + enum OsType { + OS_TYPE_UNSPECIFIED = 0; + OS_TYPE_WINDOWS = 1; + OS_TYPE_MAC = 2; + OS_TYPE_LINUX = 3; + OS_TYPE_CHROME_OS_ASH = 4; + OS_TYPE_ANDROID = 5; + OS_TYPE_IOS = 6; + OS_TYPE_CHROME_OS_LACROS = 7; + OS_TYPE_FUCHSIA = 8; + } + // Types of device form factors. enum DeviceFormFactor { DEVICE_FORM_FACTOR_UNSPECIFIED = 0;
diff --git a/content/app/BUILD.gn b/content/app/BUILD.gn index 2753f02..72e7745 100644 --- a/content/app/BUILD.gn +++ b/content/app/BUILD.gn
@@ -75,6 +75,7 @@ configs += extra_configs deps = content_app_deps + [ "//components/optimization_guide:machine_learning_tflite_buildflags", + "//components/power_monitor", "//components/power_scheduler", "//content/browser", "//content/gpu:gpu_sources",
diff --git a/content/app/DEPS b/content/app/DEPS index 044a3d0..194f0d8 100644 --- a/content/app/DEPS +++ b/content/app/DEPS
@@ -3,6 +3,7 @@ "+components/discardable_memory", "+components/download", "+components/optimization_guide", + "+components/power_monitor", "+components/tracing/common", "+content", "+device/bluetooth",
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc index 33ec861..1cc74951 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc
@@ -33,7 +33,7 @@ #include "base/metrics/histogram_base.h" #include "base/path_service.h" #include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_device_source.h" +#include "base/power_monitor/power_monitor_source.h" #include "base/process/launch.h" #include "base/process/memory.h" #include "base/process/process.h" @@ -50,6 +50,7 @@ #include "components/discardable_memory/service/discardable_shared_memory_manager.h" #include "components/download/public/common/download_task_runner.h" #include "components/optimization_guide/machine_learning_tflite_buildflags.h" +#include "components/power_monitor/make_power_monitor_device_source.h" #include "components/power_scheduler/power_mode_arbiter.h" #include "components/variations/variations_ids_provider.h" #include "content/app/mojo_ipc_support.h" @@ -1176,8 +1177,7 @@ // PowerMonitor is needed in reduced mode. BrowserMainLoop will safely skip // initializing it again if it has already been initialized. - base::PowerMonitor::Initialize( - std::make_unique<base::PowerMonitorDeviceSource>()); + base::PowerMonitor::Initialize(MakePowerMonitorDeviceSource()); // Ensure the visibility tracker is created on the main thread. ProcessVisibilityTracker::GetInstance();
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 131ea565..d519feb5 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -94,6 +94,7 @@ "//components/os_crypt", "//components/payments/content/icon", "//components/payments/mojom", + "//components/power_monitor", "//components/power_scheduler", "//components/services/filesystem:lib", "//components/services/quarantine:quarantine",
diff --git a/content/browser/DEPS b/content/browser/DEPS index 9554e95..4638eb1 100644 --- a/content/browser/DEPS +++ b/content/browser/DEPS
@@ -13,6 +13,7 @@ "+components/file_access", "+components/filename_generation", "+components/permissions/features.h", + "+components/power_monitor", "+components/services/font", "+components/services/filesystem", "+components/services/quarantine/test_support.h",
diff --git a/content/browser/back_forward_cache_browsertest.h b/content/browser/back_forward_cache_browsertest.h index 3b47a85..da314308 100644 --- a/content/browser/back_forward_cache_browsertest.h +++ b/content/browser/back_forward_cache_browsertest.h
@@ -130,7 +130,7 @@ using SameOriginMatcher = testing::Matcher< const blink::mojom::SameOriginBfcacheNotRestoredDetailsPtr&>; ReasonsMatcher MatchesNotRestoredReasons( - const testing::Matcher<bool>& blocked, + const testing::Matcher<blink::mojom::BFCacheBlocked>& blocked, const SameOriginMatcher* same_origin_details); SameOriginMatcher MatchesSameOriginDetails( const testing::Matcher<std::string>& id,
diff --git a/content/browser/back_forward_cache_internal_browsertest.cc b/content/browser/back_forward_cache_internal_browsertest.cc index 9f3abb1..966a0002 100644 --- a/content/browser/back_forward_cache_internal_browsertest.cc +++ b/content/browser/back_forward_cache_internal_browsertest.cc
@@ -4158,12 +4158,10 @@ blink::mojom::BackForwardCacheNotRestoredReasonsPtr web_reasons = can_store_result.tree_reasons->GetWebExposedNotRestoredReasons(); EXPECT_TRUE(web_reasons->same_origin_details); - EXPECT_FALSE(web_reasons->blocked); + EXPECT_EQ(web_reasons->blocked, blink::mojom::BFCacheBlocked::kNo); EXPECT_EQ(2u, web_reasons->same_origin_details->children.size()); - EXPECT_FALSE(web_reasons->same_origin_details->children.at(0)->blocked); EXPECT_FALSE( web_reasons->same_origin_details->children.at(0)->same_origin_details); - EXPECT_TRUE(web_reasons->same_origin_details->children.at(1)->blocked); EXPECT_FALSE( web_reasons->same_origin_details->children.at(1)->same_origin_details); }
diff --git a/content/browser/back_forward_cache_not_restored_reasons_browsertest.cc b/content/browser/back_forward_cache_not_restored_reasons_browsertest.cc index 0d903c8..d2d9bc91 100644 --- a/content/browser/back_forward_cache_not_restored_reasons_browsertest.cc +++ b/content/browser/back_forward_cache_not_restored_reasons_browsertest.cc
@@ -33,7 +33,7 @@ using SameOriginMatcher = testing::Matcher< const blink::mojom::SameOriginBfcacheNotRestoredDetailsPtr&>; ReasonsMatcher BackForwardCacheBrowserTest::MatchesNotRestoredReasons( - const testing::Matcher<bool>& blocked, + const testing::Matcher<blink::mojom::BFCacheBlocked>& blocked, const SameOriginMatcher* same_origin_details) { return testing::Pointee(testing::AllOf( testing::Field("blocked", @@ -126,7 +126,7 @@ /*id=*/"", /*name=*/"", /*src=*/"", /*url=*/rfh_a_url, /*reasons=*/{"Dummy"}, /*children=*/{}); auto rfh_a_result = MatchesNotRestoredReasons( - /*blocked=*/true, &rfh_a_details); + blink::mojom::BFCacheBlocked::kYes, &rfh_a_details); EXPECT_THAT(current_frame_host()->NotRestoredReasonsForTesting(), rfh_a_result); EXPECT_TRUE(rfh_b->IsInBackForwardCache()); @@ -183,16 +183,16 @@ auto rfh_a_2_details = MatchesSameOriginDetails( /*id=*/"rfh_a_2_id", /*name=*/"rfh_a_2_name", /*src=*/rfh_a_2_url, /*url=*/rfh_a_2_url, /*reasons=*/{}, /*children=*/{}); - auto rfh_b_result = MatchesNotRestoredReasons( - /*blocked=*/true, nullptr); + auto rfh_b_result = + MatchesNotRestoredReasons(blink::mojom::BFCacheBlocked::kYes, nullptr); auto rfh_a_2_result = MatchesNotRestoredReasons( - /*blocked=*/false, &rfh_a_2_details); + blink::mojom::BFCacheBlocked::kNo, &rfh_a_2_details); auto rfh_a_1_details = MatchesSameOriginDetails( /*id=*/"", /*name=*/"", /*src=*/"", /*url=*/rfh_a_1_url, /*reasons=*/{}, /*children=*/{rfh_a_2_result, rfh_b_result}); auto rfh_a_1_result = MatchesNotRestoredReasons( - /*blocked=*/false, &rfh_a_1_details); + blink::mojom::BFCacheBlocked::kNo, &rfh_a_1_details); EXPECT_THAT(current_frame_host()->NotRestoredReasonsForTesting(), rfh_a_1_result); @@ -239,25 +239,25 @@ /*reasons=*/{"Dummy"}, /*children=*/{}); auto rfh_a_2_result = MatchesNotRestoredReasons( - /*blocked=*/true, &rfh_a_2_details); + blink::mojom::BFCacheBlocked::kYes, &rfh_a_2_details); auto rfh_a_4_details = MatchesSameOriginDetails( /*id=*/"child-0", /*name=*/"", /*src=*/rfh_a_4_url, /*url=*/rfh_a_4_url, /*reasons=*/{"Dummy"}, /*children=*/{}); auto rfh_a_4_result = MatchesNotRestoredReasons( - /*blocked=*/true, &rfh_a_4_details); + blink::mojom::BFCacheBlocked::kYes, &rfh_a_4_details); auto rfh_a_3_details = MatchesSameOriginDetails( /*id=*/"child-1", /*name=*/"", /*src=*/rfh_a_3_url, /*url=*/rfh_a_3_url, /*reasons=*/{}, /*children=*/ {rfh_a_4_result}); auto rfh_a_3_result = MatchesNotRestoredReasons( - /*blocked=*/false, &rfh_a_3_details); + blink::mojom::BFCacheBlocked::kNo, &rfh_a_3_details); auto rfh_a_1_details = MatchesSameOriginDetails( /*id=*/"", /*name=*/"", /*src=*/"", /*url=*/rfh_a_1_url, /*reasons=*/{"Dummy"}, /*children=*/{rfh_a_2_result, rfh_a_3_result}); auto rfh_a_1_result = MatchesNotRestoredReasons( - /*blocked=*/true, &rfh_a_1_details); + blink::mojom::BFCacheBlocked::kYes, &rfh_a_1_details); EXPECT_THAT(current_frame_host()->NotRestoredReasonsForTesting(), rfh_a_1_result); } @@ -360,7 +360,7 @@ /*reasons=*/{"Related active contents", "Internal error"}, /*children=*/{}); auto rfh_a_result = MatchesNotRestoredReasons( - /*blocked=*/true, &rfh_a_details); + blink::mojom::BFCacheBlocked::kYes, &rfh_a_details); EXPECT_THAT(current_frame_host()->NotRestoredReasonsForTesting(), rfh_a_result); }
diff --git a/content/browser/background_fetch/background_fetch_registration_service_impl.cc b/content/browser/background_fetch/background_fetch_registration_service_impl.cc index d883ba1..eeb3945 100644 --- a/content/browser/background_fetch/background_fetch_registration_service_impl.cc +++ b/content/browser/background_fetch/background_fetch_registration_service_impl.cc
@@ -130,7 +130,7 @@ bool BackgroundFetchRegistrationServiceImpl::ValidateTitle( const std::string& title) { if (title.empty() || title.size() > kMaxTitleLength) { - mojo::ReportBadMessage("Invalid title"); + receiver_.ReportBadMessage("Invalid title"); return false; }
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index 3d9f0db..3cbedbc 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc
@@ -28,7 +28,7 @@ #include "base/path_service.h" #include "base/pending_task.h" #include "base/power_monitor/power_monitor.h" -#include "base/power_monitor/power_monitor_device_source.h" +#include "base/power_monitor/power_monitor_source.h" #include "base/process/process_metrics.h" #include "base/run_loop.h" #include "base/scoped_observation.h" @@ -55,6 +55,7 @@ #include "cc/base/histograms.h" #include "components/discardable_memory/service/discardable_shared_memory_manager.h" #include "components/memory_pressure/multi_source_memory_pressure_monitor.h" +#include "components/power_monitor/make_power_monitor_device_source.h" #include "components/services/storage/dom_storage/storage_area_impl.h" #include "components/tracing/common/trace_startup_config.h" #include "components/tracing/common/tracing_switches.h" @@ -646,10 +647,8 @@ } { TRACE_EVENT0("startup", "BrowserMainLoop::Subsystem:PowerMonitor"); - if (!base::PowerMonitor::IsInitialized()) { - base::PowerMonitor::Initialize( - std::make_unique<base::PowerMonitorDeviceSource>()); - } + if (!base::PowerMonitor::IsInitialized()) + base::PowerMonitor::Initialize(MakePowerMonitorDeviceSource()); } { TRACE_EVENT0("startup", "BrowserMainLoop::Subsystem:HighResTimerManager");
diff --git a/content/browser/devtools/devtools_background_services_context_impl.cc b/content/browser/devtools/devtools_background_services_context_impl.cc index 6e81573..f9f6f1c 100644 --- a/content/browser/devtools/devtools_background_services_context_impl.cc +++ b/content/browser/devtools/devtools_background_services_context_impl.cc
@@ -7,7 +7,6 @@ #include <algorithm> #include "base/guid.h" -#include "base/metrics/histogram_macros.h" #include "base/observer_list.h" #include "base/strings/string_number_conversions.h" #include "base/time/time.h" @@ -33,16 +32,6 @@ return CreateEntryKeyPrefix(service) + base::GenerateGUID(); } -void DidLogServiceEvent(blink::ServiceWorkerStatusCode status) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - UMA_HISTOGRAM_ENUMERATION("DevTools.BackgroundService.LogEvent", status); -} - -void DidClearServiceEvents(blink::ServiceWorkerStatusCode status) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - UMA_HISTOGRAM_ENUMERATION("DevTools.BackgroundService.ClearEvents", status); -} - constexpr devtools::proto::BackgroundService ServiceToProtoEnum( DevToolsBackgroundService service) { switch (service) { @@ -162,8 +151,6 @@ blink::ServiceWorkerStatusCode status) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - UMA_HISTOGRAM_ENUMERATION("DevTools.BackgroundService.GetEvents", status); - std::vector<devtools::proto::BackgroundServiceEvent> events; if (status != blink::ServiceWorkerStatusCode::kOk) { @@ -197,7 +184,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); service_worker_context_->ClearUserDataForAllRegistrationsByKeyPrefix( - CreateEntryKeyPrefix(service), base::BindOnce(&DidClearServiceEvents)); + CreateEntryKeyPrefix(service), base::DoNothing()); } void DevToolsBackgroundServicesContextImpl::LogBackgroundServiceEvent( @@ -235,7 +222,7 @@ service_worker_context_->StoreRegistrationUserData( service_worker_registration_id, blink::StorageKey(origin), {{CreateEntryKey(event.background_service()), event.SerializeAsString()}}, - base::BindOnce(&DidLogServiceEvent)); + base::DoNothing()); NotifyEventObservers(std::move(event)); }
diff --git a/content/browser/renderer_host/back_forward_cache_impl.cc b/content/browser/renderer_host/back_forward_cache_impl.cc index 7ebd34dd..cba6eed 100644 --- a/content/browser/renderer_host/back_forward_cache_impl.cc +++ b/content/browser/renderer_host/back_forward_cache_impl.cc
@@ -13,6 +13,7 @@ #include "base/containers/cxx20_erase.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" +#include "base/rand_util.h" #include "base/ranges/algorithm.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" @@ -1472,6 +1473,20 @@ src_(rfh->frame_tree_node()->html_src()), url_(url) {} +BackForwardCacheCanStoreTreeResult::BackForwardCacheCanStoreTreeResult( + BackForwardCacheCanStoreDocumentResult& result_for_this_document, + bool is_same_origin, + const std::string& id, + const std::string& name, + const std::string& src, + const GURL& url) + : document_result_(std::move(result_for_this_document)), + is_same_origin_(is_same_origin), + id_(id), + name_(name), + src_(src), + url_(url) {} + BackForwardCacheCanStoreTreeResult::~BackForwardCacheCanStoreTreeResult() = default; @@ -1531,6 +1546,14 @@ blink::mojom::BackForwardCacheNotRestoredReasonsPtr BackForwardCacheCanStoreTreeResult::GetWebExposedNotRestoredReasons() { + uint32_t count = GetCrossOriginReachableFrameCount(); + int index = count == 0 ? 0 : base::RandInt(0, count - 1); + return GetWebExposedNotRestoredReasonsInternal(index); +} + +blink::mojom::BackForwardCacheNotRestoredReasonsPtr +BackForwardCacheCanStoreTreeResult::GetWebExposedNotRestoredReasonsInternal( + int& index) { blink::mojom::BackForwardCacheNotRestoredReasonsPtr not_restored_reasons = blink::mojom::BackForwardCacheNotRestoredReasons::New(); if (IsSameOrigin()) { @@ -1546,21 +1569,44 @@ not_restored_reasons->same_origin_details->reasons = GetDocumentResult().GetStringReasons(); - not_restored_reasons->blocked = !GetDocumentResult().CanRestore(); + not_restored_reasons->blocked = GetDocumentResult().CanRestore() + ? blink::mojom::BFCacheBlocked::kNo + : blink::mojom::BFCacheBlocked::kYes; for (const auto& subtree : GetChildren()) { not_restored_reasons->same_origin_details->children.push_back( - subtree->GetWebExposedNotRestoredReasons()); + subtree->GetWebExposedNotRestoredReasonsInternal(index)); } } else { // If the subtree's root document is cross-origin from the main frame - // document, report whether or not this entire subtree is blocking - // back/forward cache. - not_restored_reasons->blocked = - !GetDocumentResult().CanRestore() || !FlattenTree().CanRestore(); + // document, and if this is the randomly selected cross-origin iframe, + // report whether or not this entire subtree is blocking back/forward cache. + if (index == 0) { + not_restored_reasons->blocked = + (!GetDocumentResult().CanRestore() || !FlattenTree().CanRestore()) + ? blink::mojom::BFCacheBlocked::kYes + : blink::mojom::BFCacheBlocked::kNo; + } else { + not_restored_reasons->blocked = blink::mojom::BFCacheBlocked::kMasked; + } + // Decrease the index now that we saw a cross-origin iframe. + index--; } return not_restored_reasons; } +uint32_t +BackForwardCacheCanStoreTreeResult::GetCrossOriginReachableFrameCount() { + // If the document is cross-origin, we cannot reach any further. Only count + // the one we have reached and return. + if (!IsSameOrigin()) + return 1; + uint32_t count = 0; + for (const auto& subtree : GetChildren()) { + count += subtree->GetCrossOriginReachableFrameCount(); + } + return count; +} + BackForwardCacheCanStoreDocumentResultWithTree:: BackForwardCacheCanStoreDocumentResultWithTree( BackForwardCacheCanStoreDocumentResult& flattened_reasons,
diff --git a/content/browser/renderer_host/back_forward_cache_impl.h b/content/browser/renderer_host/back_forward_cache_impl.h index b3a2750..fe8c183 100644 --- a/content/browser/renderer_host/back_forward_cache_impl.h +++ b/content/browser/renderer_host/back_forward_cache_impl.h
@@ -595,8 +595,11 @@ } // Populate NotRestoredReasons mojom struct based on the existing tree of - // reason to report to the renderer. This will not contain cross-origin - // subtree's information to avoid cross-origin information leak. + // reason to report to the renderer. This will only partially contain + // cross-origin reasons. See |GetWebExposedNotRestoredReasonsInternal()| for + // more explanation. + // This should be called only when the root document is outermost main + // document. blink::mojom::BackForwardCacheNotRestoredReasonsPtr GetWebExposedNotRestoredReasons(); @@ -624,12 +627,38 @@ CreateEmptyTreeBeforeCommit(NavigationRequest* navigation); private: + friend class BackForwardCacheImplTest; + FRIEND_TEST_ALL_PREFIXES(BackForwardCacheImplTest, + CrossOriginReachableFrameCount); + FRIEND_TEST_ALL_PREFIXES(BackForwardCacheImplTest, FirstCrossOriginReachable); + FRIEND_TEST_ALL_PREFIXES(BackForwardCacheImplTest, + SecondCrossOriginReachable); BackForwardCacheCanStoreTreeResult( RenderFrameHostImpl* rfh, const url::Origin& main_document_origin, const GURL& url, BackForwardCacheCanStoreDocumentResult& result_for_this_document); + BackForwardCacheCanStoreTreeResult( + BackForwardCacheCanStoreDocumentResult& result_for_this_document, + bool is_same_origin, + const std::string& id, + const std::string& name, + const std::string& src, + const GURL& url); + + // Helper function for |GetWebExposedNotRestoredReasons()|. |index| is the + // random index of the cross-origin iframe that we decided to report + // from all the reachable cross-origin iframes. We decrement this count + // every time we call this function, and report only when |index| is 0 so + // that reporting happens only for randomly picked one of such iframes. + blink::mojom::BackForwardCacheNotRestoredReasonsPtr + GetWebExposedNotRestoredReasonsInternal(int& index); + + // Count the number of cross-origin frames that are direct children of + // same-origin frames, including the main frame, in the tree. + uint32_t GetCrossOriginReachableFrameCount(); + void FlattenTreeHelper( BackForwardCacheCanStoreDocumentResult* document_result);
diff --git a/content/browser/renderer_host/back_forward_cache_impl_unittest.cc b/content/browser/renderer_host/back_forward_cache_impl_unittest.cc new file mode 100644 index 0000000..7e2d8bb --- /dev/null +++ b/content/browser/renderer_host/back_forward_cache_impl_unittest.cc
@@ -0,0 +1,91 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/renderer_host/back_forward_cache_impl.h" +#include "content/test/test_render_view_host.h" + +namespace content { + +class BackForwardCacheImplTest : public RenderViewHostImplTestHarness { + public: + BackForwardCacheImplTest() = default; + + std::unique_ptr<BackForwardCacheCanStoreTreeResult> SetUpTree() { + // (a-1) + // / | + // (b-1) (a-2) + // | | + // (b-2) (b-3) + auto tree_a_1 = CreateSameOriginTree(); + auto tree_a_2 = CreateSameOriginTree(); + auto tree_b_1 = CreateCrossOriginTree(); + auto tree_b_2 = CreateCrossOriginTree(); + auto tree_b_3 = CreateCrossOriginTree(); + tree_b_1->AppendChild(std::move(tree_b_2)); + tree_a_2->AppendChild(std::move(tree_b_3)); + tree_a_1->AppendChild(std::move(tree_b_1)); + tree_a_1->AppendChild(std::move(tree_a_2)); + return tree_a_1; + } + + private: + std::unique_ptr<BackForwardCacheCanStoreTreeResult> CreateSameOriginTree() { + BackForwardCacheCanStoreDocumentResult result; + std::unique_ptr<BackForwardCacheCanStoreTreeResult> tree( + new BackForwardCacheCanStoreTreeResult(result, /*is_same_origin=*/true, + /*id=*/"a", /*name=*/"a", + /*src=*/"a", + GURL("https://a.com/test"))); + return tree; + } + + std::unique_ptr<BackForwardCacheCanStoreTreeResult> CreateCrossOriginTree() { + BackForwardCacheCanStoreDocumentResult result; + std::unique_ptr<BackForwardCacheCanStoreTreeResult> tree( + new BackForwardCacheCanStoreTreeResult(result, /*is_same_origin=*/false, + /*id=*/"b", /*name=*/"b", + /*src=*/"b", + GURL("https://b.com/test"))); + return tree; + } +}; + +TEST_F(BackForwardCacheImplTest, CrossOriginReachableFrameCount) { + auto tree_root = SetUpTree(); + // The reachable cross-origin frames are b-1 and b-3. + EXPECT_EQ(static_cast<int>(tree_root->GetCrossOriginReachableFrameCount()), + 2); +} + +TEST_F(BackForwardCacheImplTest, FirstCrossOriginReachable) { + auto tree_root = SetUpTree(); + int index = 0; + // First cross-origin reachable frame (b-1) should be unmasked. + auto result = tree_root->GetWebExposedNotRestoredReasonsInternal(index); + // b-1 is unmasked. + EXPECT_EQ(result->same_origin_details->children[0]->blocked, + blink::mojom::BFCacheBlocked::kNo); + // b-3 is masked. + EXPECT_EQ(result->same_origin_details->children[1] + ->same_origin_details->children[0] + ->blocked, + blink::mojom::BFCacheBlocked::kMasked); +} + +TEST_F(BackForwardCacheImplTest, SecondCrossOriginReachable) { + auto tree_root = SetUpTree(); + int index = 1; + // Second cross-origin reachable frame (b-3) should be unmasked. + auto result = tree_root->GetWebExposedNotRestoredReasonsInternal(index); + // b-1 is unmasked. + EXPECT_EQ(result->same_origin_details->children[0]->blocked, + blink::mojom::BFCacheBlocked::kMasked); + // b-3 is masked. + EXPECT_EQ(result->same_origin_details->children[1] + ->same_origin_details->children[0] + ->blocked, + blink::mojom::BFCacheBlocked::kNo); +} + +} // namespace content \ No newline at end of file
diff --git a/content/browser/service_worker/service_worker_new_script_fetcher.cc b/content/browser/service_worker/service_worker_new_script_fetcher.cc index a273b447..941534c 100644 --- a/content/browser/service_worker/service_worker_new_script_fetcher.cc +++ b/content/browser/service_worker/service_worker_new_script_fetcher.cc
@@ -149,22 +149,22 @@ // ServiceWorkerNewScriptFetcher doesn't receive redirects because // ServiceWorkerNewScriptLoader disallows it and completes the network request // with an error. - mojo::ReportBadMessage("SWNSF_BAD_MSG"); + url_loader_client_receiver_.ReportBadMessage("SWNSF_BAD_MSG"); } void ServiceWorkerNewScriptFetcher::OnUploadProgress(int64_t, int64_t, OnUploadProgressCallback) { - mojo::ReportBadMessage("SWNSF_BAD_MSG"); + url_loader_client_receiver_.ReportBadMessage("SWNSF_BAD_MSG"); } void ServiceWorkerNewScriptFetcher::OnTransferSizeUpdated(int32_t) { - mojo::ReportBadMessage("SWNSF_BAD_MSG"); + url_loader_client_receiver_.ReportBadMessage("SWNSF_BAD_MSG"); } void ServiceWorkerNewScriptFetcher::OnComplete( const network::URLLoaderCompletionStatus& status) { // OnComplete can be called only when loading fails before receiving the // header and the body. if (status.error_code == net::OK) { - mojo::ReportBadMessage("SWNSF_BAD_OK"); + url_loader_client_receiver_.ReportBadMessage("SWNSF_BAD_OK"); // Do not continue with further script processing, but let the |callback_| // hang. This renderer process would be killed soon anyways. return;
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc index f39060a..0de8125 100644 --- a/content/renderer/accessibility/render_accessibility_impl.cc +++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -642,6 +642,17 @@ : kDelayForDeferredUpdatesBeforePageLoad; } +void RenderAccessibilityImpl::AXReadyCallback() { + // TODO(aleventhal) Merge crrev.com/c/3914885 which implements this. +} + +void RenderAccessibilityImpl::ScheduleImmediateAXUpdate() { + // This method is currently only used for RenderAccessibilityImplTest tests, + // which is expected to change in synchronous a11y implementation. + event_schedule_mode_ = EventScheduleMode::kProcessEventsImmediately; + ScheduleSendPendingAccessibilityEvents(true); +} + void RenderAccessibilityImpl::ScheduleSendPendingAccessibilityEvents( bool scheduling_from_task) { // Don't send accessibility events for frames that are not in the frame tree
diff --git a/content/renderer/accessibility/render_accessibility_impl.h b/content/renderer/accessibility/render_accessibility_impl.h index 003b063..0bcaabd3 100644 --- a/content/renderer/accessibility/render_accessibility_impl.h +++ b/content/renderer/accessibility/render_accessibility_impl.h
@@ -124,6 +124,8 @@ void NotifyWebAXObjectMarkedDirty(const blink::WebAXObject& obj, ax::mojom::Event event_type = ax::mojom::Event::kNone); + // Called when it is safe to begin a serialization. + void AXReadyCallback(); // Returns the main top-level document for this page, or NULL if there's // no view or frame. @@ -203,6 +205,10 @@ void MarkAllAXObjectsDirty(ax::mojom::Role role, ax::mojom::Action event_from_action); + // Ensure that AXReadyCallback() will be called at the next available + // opportunity, so that any dirty objects will be serialized soon. + void ScheduleImmediateAXUpdate(); + // If we are calling this from a task, scheduling is allowed even if there is // a running task void ScheduleSendPendingAccessibilityEvents(
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc index dc9226b..5b0530c 100644 --- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc +++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -266,42 +266,6 @@ ~RenderAccessibilityImplTest() override = default; - void ScheduleSendPendingAccessibilityEvents() { - GetRenderAccessibilityImpl()->ScheduleSendPendingAccessibilityEvents(); - } - - void ExpectScheduleStatusScheduledDeferred() { - EXPECT_EQ(GetRenderAccessibilityImpl()->event_schedule_status_, - RenderAccessibilityImpl::EventScheduleStatus::kScheduledDeferred); - } - - void ExpectScheduleStatusScheduledImmediate() { - EXPECT_EQ( - GetRenderAccessibilityImpl()->event_schedule_status_, - RenderAccessibilityImpl::EventScheduleStatus::kScheduledImmediate); - } - - void ExpectScheduleStatusWaitingForAck() { - EXPECT_EQ(GetRenderAccessibilityImpl()->event_schedule_status_, - RenderAccessibilityImpl::EventScheduleStatus::kWaitingForAck); - } - - void ExpectScheduleStatusNotWaiting() { - EXPECT_EQ(GetRenderAccessibilityImpl()->event_schedule_status_, - RenderAccessibilityImpl::EventScheduleStatus::kNotWaiting); - } - - void ExpectScheduleModeDeferEvents() { - EXPECT_EQ(GetRenderAccessibilityImpl()->event_schedule_mode_, - RenderAccessibilityImpl::EventScheduleMode::kDeferEvents); - } - - void ExpectScheduleModeProcessEventsImmediately() { - EXPECT_EQ( - GetRenderAccessibilityImpl()->event_schedule_mode_, - RenderAccessibilityImpl::EventScheduleMode::kProcessEventsImmediately); - } - protected: RenderFrameImpl* frame() { return static_cast<RenderFrameImpl*>(RenderViewTest::GetMainRenderFrame()); @@ -326,8 +290,6 @@ EXPECT_FALSE(document.IsNull()); WebAXObject root_obj = WebAXObject::FromWebDocument(document); EXPECT_FALSE(root_obj.IsNull()); - GetRenderAccessibilityImpl()->HandleAXEvent( - ui::AXEvent(root_obj.AxID(), ax::mojom::Event::kLayoutComplete)); SendPendingAccessibilityEvents(); } @@ -397,7 +359,8 @@ // be able to properly check later on the nodes that have been updated, and // also wait for the mojo messages to be processed once they are sent. task_environment_.RunUntilIdle(); - GetRenderAccessibilityImpl()->SendPendingAccessibilityEvents(); + GetRenderAccessibilityImpl()->ScheduleImmediateAXUpdate(); + GetRenderAccessibilityImpl()->GetAXContext()->UpdateAXForAllDocuments(); task_environment_.RunUntilIdle(); } @@ -429,8 +392,7 @@ ClearHandledUpdates(); WebDocument document = GetMainFrame()->GetDocument(); WebAXObject root_obj = WebAXObject::FromWebDocument(document); - GetRenderAccessibilityImpl()->HandleAXEvent( - ui::AXEvent(root_obj.AxID(), ax::mojom::Event::kChildrenChanged)); + GetRenderAccessibilityImpl()->MarkWebAXObjectDirty(root_obj, false); SendPendingAccessibilityEvents(); EXPECT_EQ(1, CountAccessibilityNodesSentToBrowser()); { @@ -446,8 +408,6 @@ document = GetMainFrame()->GetDocument(); root_obj = WebAXObject::FromWebDocument(document); ClearHandledUpdates(); - GetRenderAccessibilityImpl()->HandleAXEvent( - ui::AXEvent(root_obj.AxID(), ax::mojom::Event::kLayoutComplete)); SendPendingAccessibilityEvents(); EXPECT_EQ(6, CountAccessibilityNodesSentToBrowser()); @@ -491,15 +451,15 @@ WebAXObject node_b = node_a.ChildAt(0); WebAXObject node_c = node_b.ChildAt(0); - // Hide node "B" ("C" stays visible). - ExecuteJavaScriptForTests( - "document.getElementById('B').style.visibility = 'hidden';"); - GetRenderAccessibilityImpl()->GetAXContext()->UpdateAXForAllDocuments(); - // Send a childrenChanged on "A". ClearHandledUpdates(); GetRenderAccessibilityImpl()->HandleAXEvent( ui::AXEvent(node_a.AxID(), ax::mojom::Event::kChildrenChanged)); + + // Hide node "B" ("C" stays visible). + ExecuteJavaScriptForTests( + "document.getElementById('B').style.visibility = 'hidden';"); + SendPendingAccessibilityEvents(); ui::AXTreeUpdate update = GetLastAccUpdate(); ASSERT_EQ(2U, update.nodes.size()); @@ -541,15 +501,14 @@ WebAXObject node_b = node_a.ChildAt(0); WebAXObject node_c = node_b.ChildAt(0); - // Show node "B", then send a childrenChanged on "A". + // Send a childrenChanged on "A" and show node "B", + GetRenderAccessibilityImpl()->HandleAXEvent( + ui::AXEvent(node_a.AxID(), ax::mojom::Event::kChildrenChanged)); ExecuteJavaScriptForTests( "document.getElementById('B').style.visibility = 'visible';"); - GetRenderAccessibilityImpl()->GetAXContext()->UpdateAXForAllDocuments(); ClearHandledUpdates(); - GetRenderAccessibilityImpl()->HandleAXEvent( - ui::AXEvent(node_a.AxID(), ax::mojom::Event::kChildrenChanged)); SendPendingAccessibilityEvents(); ui::AXTreeUpdate update = GetLastAccUpdate();
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 7e687d64..4204722d 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -2787,9 +2787,6 @@ // Save the Back/Forward Cache NotRestoredReasons struct to WebLocalFrame to // report for PerformanceNavigationTiming API. frame_->SetNotRestoredReasons(std::move(not_restored_reasons)); - // For cross-document main frame history navigations, |not_restored_reasons| - // should be populated and has blocking reasons. - DCHECK(frame_->HasBlockingReasons()); } // Note: this intentionally does not call |Detach()| before |reset()|. If @@ -4476,6 +4473,14 @@ ->NotifyWebAXObjectMarkedDirty(obj); } +void RenderFrameImpl::AXReadyCallback() { + if (!IsAccessibilityEnabled()) + return; + + render_accessibility_manager_->GetRenderAccessibilityImpl() + ->AXReadyCallback(); +} + void RenderFrameImpl::AddObserver(RenderFrameObserver* observer) { observers_.AddObserver(observer); }
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index ae3fbad..33dea08e 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -615,6 +615,7 @@ const blink::WebURL& url) override; void PostAccessibilityEvent(const ui::AXEvent& event) override; void NotifyWebAXObjectMarkedDirty(const blink::WebAXObject& object) override; + void AXReadyCallback() override; void CheckIfAudioSinkExistsAndIsAuthorized( const blink::WebString& sink_id, blink::WebSetSinkIdCompleteCallback callback) override;
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index dc24051..76def03 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -2312,6 +2312,7 @@ "../browser/quota/quota_change_dispatcher_unittest.cc", "../browser/reduce_accept_language/reduce_accept_language_utils_unittest.cc", "../browser/renderer_host/ancestor_throttle_unittest.cc", + "../browser/renderer_host/back_forward_cache_impl_unittest.cc", "../browser/renderer_host/back_forward_cache_metrics_unittest.cc", "../browser/renderer_host/clipboard_host_impl_unittest.cc", "../browser/renderer_host/commit_deferring_condition_runner_unittest.cc",
diff --git a/content/test/data/gpu/pixel_webgl_display_p3.html b/content/test/data/gpu/pixel_webgl_display_p3.html new file mode 100644 index 0000000..63e6d37c --- /dev/null +++ b/content/test/data/gpu/pixel_webgl_display_p3.html
@@ -0,0 +1,71 @@ +<!DOCTYPE html> +<html> +<!-- +Clears a WebGL canvas to the value (0.91749, 0.20029, 0.13856, 1.0). When +interpreted in Display P3, this appears the same as rgb(100% 0% 0%). Display +the canvas next to the correct color and a likely incorrect color. +--> +<head> + <style type="text/css"> + .nomargin { + margin: 0; + } + </style> + <script type="text/javascript"> + var g_swapsBeforeAck = 15; + + function waitForFinish() { + if (g_swapsBeforeAck == 0) { + sendResult("SUCCESS"); + } else { + g_swapsBeforeAck--; + window.requestAnimationFrame(waitForFinish); + } + } + + function sendResult(status) { + if (window.domAutomationController) { + window.domAutomationController.send(status); + } else { + console.log(status); + } + } + + var g_swapsBeforeAck = 15; + function waitForFinish() { + if (g_swapsBeforeAck == 0) { + sendResult("SUCCESS"); + } else { + g_swapsBeforeAck--; + window.requestAnimationFrame(waitForFinish); + } + } + + async function main() { + const canvas = document.getElementById('canvas_gl'); + const context = canvas.getContext('webgl'); + if (!context) { + console.error("Failed to initialize WebGL"); + sendResult("FAILURE"); + } + + context.drawingBufferColorSpace = 'display-p3'; + context.clearColor(0.91749, 0.20029, 0.13856, 1.0); + context.clear(context.COLOR_BUFFER_BIT); + + waitForFinish(); + } + </script> +</head> + +<body onload="main()" style="background:white;"> + <canvas id="canvas_gl" style="width:150px; height:150px; position:absolute; top:0px; left:0px; background: rgb(0% 100% 0%);"></canvas> + <div style="width:150px; height:150px; position:absolute; top:150px; left:0px; background: rgb(91.749% 20.029% 13.856%);"> + <p>The canvas above SHOULD NOT match this color</p> + </div> + <div style="width:150px; height:150px; position:absolute; top:0px; left:150px; background: rgb(100% 0% 0%);"> + <p>The canvas to the left SHOULD match this color</p> + </div> +</body> + +</html>
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py index ef1a1d3..56a02b47 100644 --- a/content/test/gpu/gpu_tests/pixel_test_pages.py +++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -395,6 +395,9 @@ test_rect=[0, 0, 400, 400], optional_action='ScrollOutAndBack', grace_period_end=date(2022, 8, 29)), + PixelTestPage('pixel_webgl_display_p3.html', + base_name + '_WebGLDisplayP3', + test_rect=[0, 0, 300, 300]), ] @staticmethod
diff --git a/docs/google_chrome_branded_builds.md b/docs/google_chrome_branded_builds.md index 95a2d76..9885021 100644 --- a/docs/google_chrome_branded_builds.md +++ b/docs/google_chrome_branded_builds.md
@@ -1,22 +1,71 @@ # Google Chrome branded builds +> Note: to do any of this, an `src-internal` checkout is needed. For more info, +> see http://go/chrome-linux-build#optional-add-src-internal-to-the-checkout + By default, chromium will build with the open source chromium assets and -branding (`is_chrome_branded = false` in [GN - args](https://www.chromium.org/developers/gn-build-configuration), see -also [Chrome vs. Chromium](chromium_browser_vs_google_chrome.md)). +branding (`is_chrome_branded = false` in +[GN args](https://www.chromium.org/developers/gn-build-configuration), see also +[Chrome vs. Chromium](chromium_browser_vs_google_chrome.md)). The main reason for this is that the Google Chrome logo and related assets is a trademark which we don't want to release under Chromium's open source license. -Therefore, if you want to add a trademarked resource, check it into the -internal repository, and pick a resource based on the branding -(`is_chrome_branded` in GN, `#if BUILDFLAG(GOOGLE_CHROME_BRANDING)` in cpp). If -possible, check an open source version into Chromium, so the feature -continues to work as expected in the open source build. +Therefore, if you want to add a trademarked resource, check it into an internal +repository (see section below), and pick a resource based on the branding +(`is_chrome_branded` in GN, `#if BUILDFLAG(GOOGLE_CHROME_BRANDING)` in cpp, `<if +expr="_google_chrome">` in grit preprocessing). If possible, check an open +source version into Chromium, so the feature continues to work as expected in +the open source build. -E.g. [`//components/resources/default_100_percent/chromium`](../components/resources/default_100_percent/chromium) vs [`//components/resources/default_100_percent/google_chrome`](https://chrome-internal.googlesource.com/chrome/components/default_100_percent/google_chrome/). +E.g. +[`//components/resources/default_100_percent/chromium`](../components/resources/default_100_percent/chromium) +vs +[`//components/resources/default_100_percent/google_chrome`](https://chrome-internal.googlesource.com/chrome/components/default_100_percent/google_chrome/). -For strings, it’s ok to check them into the open source repository, but make sure that you refer to the correct product, i.e., check in a version of the string that says “Google Chrome” and a version that says “Chromium”. +For strings, it’s ok to check them into the open source repository, but make +sure that you refer to the correct product, i.e., check in a version of the +string that says “Google Chrome” and a version that says “Chromium”. -E.g. [`//chrome/app/chromium_strings.grd`](../chrome/app/chromium_strings.grd) vs [`//chrome/app/google_chrome_strings.grd`](../chrome/app/google_chrome_strings.grd). +E.g. [`//chrome/app/chromium_strings.grd`](../chrome/app/chromium_strings.grd) +vs +[`//chrome/app/google_chrome_strings.grd`](../chrome/app/google_chrome_strings.grd). + +## Internal asset repositories + +Assets live in various locations based on where they are used: native vs WebUI, +chrome vs component layer, etc. You can read more about this here: +[chromium.org | High DPI Resources](https://www.chromium.org/developers/design-documents/high-dpi-resources/) + +To check in product-specific assets, in general: +- Add `//chrome` ones under + `//chrome/app/theme[/optional_scale_factor_indicator]/[product_name]`. E.g. + [`//chrome/app/theme/default_100_percent/chromium/product_logo_32.png`](../chrome/app/theme/default_100_percent/chromium/product_logo_32.png) + + > Note: WebUI-specific resources should go under + > `//chrome/browser/resources/[/optional_scale_factor_indicator]/[product_name]`. + > We don't have an internal repo associated yet, so please + > [create one](http://go/git-admin-cheatsheet#creating-a-repo) if the use case + > comes up. + +- Add `//components` ones under + `//components/resources[/optional_scale_factor_indicator]/[product_name]`. + E.g. + [`//components/resources/default_200_percent/chromium/product_logo.png`](../components/resources/default_200_percent/chromium/product_logo.png) + +Each `google_chrome` version of a product directory points to a separate +internal git repo. Some examples: +- https://chrome-internal.googlesource.com/chrome/theme/google_chrome/ +- https://chrome-internal.googlesource.com/chrome/theme/default_100_percent/google_chrome/ +- https://chrome-internal.googlesource.com/chrome/components/default_200_percent/google_chrome/ + +To add resources there, `cd` to this repo, add your new assets and `git cl +upload` to start an internal code review. Once it lands, you will need to create +a roll CL for the `//../src-internal/DEPS`, using +[roll-dep](https://chromium.googlesource.com/chromium/tools/depot_tools/+/main/README.md#:~:text=cl.md.-,roll%2Ddep,-%3A%20A%20gclient%20dependency). + +Once that CL lands, an auto-roller bot will update the main repo's src-internal +hash reference in `//DEPS` ([example autoroll CL](https://crrev.com/c/4024955)) +and your new internal resources will be available on the bots. The chromium-side +CL making use of it can then be uploaded.
diff --git a/extensions/common/api/_api_features.json b/extensions/common/api/_api_features.json index 0f71860..9d47807 100644 --- a/extensions/common/api/_api_features.json +++ b/extensions/common/api/_api_features.json
@@ -346,6 +346,7 @@ "chrome://history/*", "chrome://new-tab-page/*", "chrome://os-settings/*", + "chrome://password-manager/*", "chrome://personalization/*", "chrome://profile-picker/*", "chrome://read-later.top-chrome/*",
diff --git a/fuchsia_web/common/test/test_devtools_list_fetcher.cc b/fuchsia_web/common/test/test_devtools_list_fetcher.cc index 30e29bf..f1281e4e 100644 --- a/fuchsia_web/common/test/test_devtools_list_fetcher.cc +++ b/fuchsia_web/common/test/test_devtools_list_fetcher.cc
@@ -15,7 +15,7 @@ #include "net/url_request/url_request_context_builder.h" #include "net/url_request/url_request_test_util.h" -base::Value GetDevToolsListFromPort(uint16_t port) { +base::Value::List GetDevToolsListFromPort(uint16_t port) { GURL url(base::StringPrintf("http://127.0.0.1:%d/json/list", port)); auto request_context = net::CreateTestURLRequestContextBuilder()->Build(); net::TestDelegate delegate; @@ -26,14 +26,17 @@ delegate.RunUntilComplete(); if (delegate.request_status() < 0) - return base::Value(); + return base::Value::List(); if (request->response_headers()->response_code() != net::HTTP_OK) - return base::Value(); + return base::Value::List(); const std::string& result = delegate.data_received(); if (result.empty()) - return base::Value(); + return base::Value::List(); - return base::JSONReader::Read(result).value_or(base::Value()); + return base::JSONReader::Read(result) + .value_or(base::Value()) + .GetList() + .Clone(); }
diff --git a/fuchsia_web/common/test/test_devtools_list_fetcher.h b/fuchsia_web/common/test/test_devtools_list_fetcher.h index 14d63c9..b8da70f 100644 --- a/fuchsia_web/common/test/test_devtools_list_fetcher.h +++ b/fuchsia_web/common/test/test_devtools_list_fetcher.h
@@ -11,6 +11,6 @@ // Returns the JSON value of the list URL for the DevTools service listening // on port |port| on localhost. Returns an empty value on error. -base::Value GetDevToolsListFromPort(uint16_t port); +base::Value::List GetDevToolsListFromPort(uint16_t port); #endif // FUCHSIA_WEB_COMMON_TEST_TEST_DEVTOOLS_LIST_FETCHER_H_
diff --git a/fuchsia_web/runners/cast/cast_runner_integration_test.cc b/fuchsia_web/runners/cast/cast_runner_integration_test.cc index d8c3289..75c1126 100644 --- a/fuchsia_web/runners/cast/cast_runner_integration_test.cc +++ b/fuchsia_web/runners/cast/cast_runner_integration_test.cc
@@ -595,13 +595,11 @@ component.CreateComponentContextAndStartComponent(); // Connect to the debug service and ensure we get the proper response. - base::Value devtools_list = + base::Value::List devtools_list = GetDevToolsListFromPort(CastRunner::kRemoteDebuggingPort); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); + EXPECT_EQ(devtools_list.size(), 1u); - base::Value* devtools_url = - devtools_list.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), app_url.spec()); }
diff --git a/fuchsia_web/webengine/web_engine_debug_integration_test.cc b/fuchsia_web/webengine/web_engine_debug_integration_test.cc index 379aa71..d2b1bb7 100644 --- a/fuchsia_web/webengine/web_engine_debug_integration_test.cc +++ b/fuchsia_web/webengine/web_engine_debug_integration_test.cc
@@ -123,18 +123,15 @@ // Test the debug information is correct. ASSERT_NO_FATAL_FAILURE(dev_tools_listener_.RunUntilNumberOfPortsIs(1u)); - base::Value devtools_list = + base::Value::List devtools_list = GetDevToolsListFromPort(*dev_tools_listener_.debug_ports().begin()); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); + EXPECT_EQ(devtools_list.size(), 1u); - base::Value* devtools_url = - devtools_list.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url); - base::Value* devtools_title = - devtools_list.GetListDeprecated()[0].FindPath("title"); + base::Value* devtools_title = devtools_list[0].FindPath("title"); ASSERT_TRUE(devtools_title->is_string()); EXPECT_EQ(devtools_title->GetString(), "title 1"); @@ -154,17 +151,14 @@ ASSERT_NO_FATAL_FAILURE(dev_tools_listener_.RunUntilNumberOfPortsIs(1u)); uint16_t port1 = *dev_tools_listener_.debug_ports().begin(); - base::Value devtools_list1 = GetDevToolsListFromPort(port1); - ASSERT_TRUE(devtools_list1.is_list()); - EXPECT_EQ(devtools_list1.GetListDeprecated().size(), 1u); + base::Value::List devtools_list1 = GetDevToolsListFromPort(port1); + EXPECT_EQ(devtools_list1.size(), 1u); - base::Value* devtools_url1 = - devtools_list1.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url1 = devtools_list1[0].FindPath("url"); ASSERT_TRUE(devtools_url1->is_string()); EXPECT_EQ(devtools_url1->GetString(), url1); - base::Value* devtools_title1 = - devtools_list1.GetListDeprecated()[0].FindPath("title"); + base::Value* devtools_title1 = devtools_list1[0].FindPath("title"); ASSERT_TRUE(devtools_title1->is_string()); EXPECT_EQ(devtools_title1->GetString(), "title 1"); @@ -192,17 +186,14 @@ ASSERT_NE(dev_tools_listener_.debug_ports().find(port2), dev_tools_listener_.debug_ports().end()); - base::Value devtools_list2 = GetDevToolsListFromPort(port2); - ASSERT_TRUE(devtools_list2.is_list()); - EXPECT_EQ(devtools_list2.GetListDeprecated().size(), 1u); + base::Value::List devtools_list2 = GetDevToolsListFromPort(port2); + EXPECT_EQ(devtools_list2.size(), 1u); - base::Value* devtools_url2 = - devtools_list2.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url2 = devtools_list2[0].FindPath("url"); ASSERT_TRUE(devtools_url2->is_string()); EXPECT_EQ(devtools_url2->GetString(), url2); - base::Value* devtools_title2 = - devtools_list2.GetListDeprecated()[0].FindPath("title"); + base::Value* devtools_title2 = devtools_list2[0].FindPath("title"); ASSERT_TRUE(devtools_title2->is_string()); EXPECT_EQ(devtools_title2->GetString(), "title 2"); @@ -238,17 +229,15 @@ ASSERT_EQ(remote_debugging_port, *dev_tools_listener_.debug_ports().begin()); // Test the debug information is correct. - base::Value devtools_list = GetDevToolsListFromPort(remote_debugging_port); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); + base::Value::List devtools_list = + GetDevToolsListFromPort(remote_debugging_port); + EXPECT_EQ(devtools_list.size(), 1u); - base::Value* devtools_url = - devtools_list.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url); - base::Value* devtools_title = - devtools_list.GetListDeprecated()[0].FindPath("title"); + base::Value* devtools_title = devtools_list[0].FindPath("title"); ASSERT_TRUE(devtools_title->is_string()); EXPECT_EQ(devtools_title->GetString(), "title 1");
diff --git a/fuchsia_web/webengine/web_engine_integration_test.cc b/fuchsia_web/webengine/web_engine_integration_test.cc index 1c2f0d2b..ebf4022 100644 --- a/fuchsia_web/webengine/web_engine_integration_test.cc +++ b/fuchsia_web/webengine/web_engine_integration_test.cc
@@ -273,12 +273,11 @@ ASSERT_NO_FATAL_FAILURE(LoadUrlAndExpectResponse(url.spec())); navigation_listener()->RunUntilUrlEquals(url); - base::Value devtools_list = GetDevToolsListFromPort(remote_debugging_port); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); + base::Value::List devtools_list = + GetDevToolsListFromPort(remote_debugging_port); + EXPECT_EQ(devtools_list.size(), 1u); - base::Value* devtools_url = - devtools_list.GetListDeprecated()[0].FindPath("url"); + base::Value* devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url); @@ -289,10 +288,9 @@ context()->CreateFrame(web_frame2.NewRequest()); devtools_list = GetDevToolsListFromPort(remote_debugging_port); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); + EXPECT_EQ(devtools_list.size(), 1u); - devtools_url = devtools_list.GetListDeprecated()[0].FindPath("url"); + devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url); @@ -309,7 +307,7 @@ controller_run_loop.Run(); devtools_list = GetDevToolsListFromPort(remote_debugging_port); - EXPECT_TRUE(devtools_list.is_none()); + EXPECT_TRUE(devtools_list.empty()); } // Check that remote debugging requests for Frames in non-debuggable Contexts
diff --git a/fuchsia_web/webinstance_host/web_instance_host_integration_test.cc b/fuchsia_web/webinstance_host/web_instance_host_integration_test.cc index 7872f03..e292629 100644 --- a/fuchsia_web/webinstance_host/web_instance_host_integration_test.cc +++ b/fuchsia_web/webinstance_host/web_instance_host_integration_test.cc
@@ -120,11 +120,10 @@ fuchsia::web::LoadUrlParams(), url.spec())); frame.navigation_listener().RunUntilUrlEquals(url); - base::Value devtools_list = GetDevToolsListFromPort(remote_debugging_port); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); - base::Value* devtools_url = - devtools_list.GetListDeprecated()[0].FindPath("url"); + base::Value::List devtools_list = + GetDevToolsListFromPort(remote_debugging_port); + EXPECT_EQ(devtools_list.size(), 1u); + base::Value* devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url); @@ -141,9 +140,8 @@ frame.navigation_listener().RunUntilUrlEquals(url2); devtools_list = GetDevToolsListFromPort(remote_debugging_port); - ASSERT_TRUE(devtools_list.is_list()); - EXPECT_EQ(devtools_list.GetListDeprecated().size(), 1u); - devtools_url = devtools_list.GetListDeprecated()[0].FindPath("url"); + EXPECT_EQ(devtools_list.size(), 1u); + devtools_url = devtools_list[0].FindPath("url"); ASSERT_TRUE(devtools_url->is_string()); EXPECT_EQ(devtools_url->GetString(), url2); }
diff --git a/gpu/command_buffer/service/shared_image/gl_image_backing.cc b/gpu/command_buffer/service/shared_image/gl_image_backing.cc index 6ab1939..5e688a9d 100644 --- a/gpu/command_buffer/service/shared_image/gl_image_backing.cc +++ b/gpu/command_buffer/service/shared_image/gl_image_backing.cc
@@ -90,7 +90,7 @@ auto si_format = viz::SharedImageFormat::SinglePlane(format); auto shared_image = base::WrapUnique<GLImageBacking>(new GLImageBacking( std::move(image), mailbox, si_format, size, color_space, surface_origin, - alpha_type, usage, params, true)); + alpha_type, usage, params)); shared_image->passthrough_texture_ = std::move(wrapped_gl_texture); shared_image->gl_texture_retained_for_legacy_mailbox_ = true; @@ -108,8 +108,7 @@ GrSurfaceOrigin surface_origin, SkAlphaType alpha_type, uint32_t usage, - const InitializeGLTextureParams& params, - bool is_passthrough) + const InitializeGLTextureParams& params) : SharedImageBacking( mailbox, format, @@ -122,7 +121,6 @@ false /* is_thread_safe */), image_(image), gl_params_(params), - is_passthrough_(is_passthrough), cleared_rect_(params.is_cleared ? gfx::Rect(size) : gfx::Rect()), weak_factory_(this) { DCHECK(image_); @@ -142,25 +140,14 @@ // Allocate the GL texture. GLTextureImageBackingHelper::MakeTextureAndSetParameters( gl_params_.target, 0 /* service_id */, - gl_params_.framebuffer_attachment_angle, - is_passthrough_ ? &passthrough_texture_ : nullptr, - is_passthrough_ ? nullptr : &texture_); + gl_params_.framebuffer_attachment_angle, &passthrough_texture_, nullptr); // Set the GLImage to be initially unbound from the GL texture. image_bind_or_copy_needed_ = true; - if (is_passthrough_) { - passthrough_texture_->SetEstimatedSize( - viz::ResourceSizes::UncheckedSizeInBytes<size_t>(size(), format())); - passthrough_texture_->SetLevelImage(gl_params_.target, 0, image_.get()); - passthrough_texture_->set_is_bind_pending(true); - } else { - texture_->SetLevelInfo(gl_params_.target, 0, gl_params_.internal_format, - size().width(), size().height(), 1, 0, - gl_params_.format, gl_params_.type, cleared_rect_); - texture_->SetLevelImage(gl_params_.target, 0, image_.get(), - gles2::Texture::UNBOUND); - texture_->SetImmutable(true, false /* has_immutable_storage */); - } + passthrough_texture_->SetEstimatedSize( + viz::ResourceSizes::UncheckedSizeInBytes<size_t>(size(), format())); + passthrough_texture_->SetLevelImage(gl_params_.target, 0, image_.get()); + passthrough_texture_->set_is_bind_pending(true); } void GLImageBacking::ReleaseGLTexture(bool have_context) { @@ -178,26 +165,18 @@ } } - if (IsPassthrough()) { - if (passthrough_texture_) { - if (have_context) { - if (!passthrough_texture_->is_bind_pending()) { - const GLenum target = GetGLTarget(); - gl::ScopedTextureBinder binder(target, - passthrough_texture_->service_id()); - image_->ReleaseTexImage(target); - } - } else { - passthrough_texture_->MarkContextLost(); + if (passthrough_texture_) { + if (have_context) { + if (!passthrough_texture_->is_bind_pending()) { + const GLenum target = GetGLTarget(); + gl::ScopedTextureBinder binder(target, + passthrough_texture_->service_id()); + image_->ReleaseTexImage(target); } - passthrough_texture_.reset(); + } else { + passthrough_texture_->MarkContextLost(); } - } else { - if (texture_) { - cleared_rect_ = texture_->GetLevelClearedRect(texture_->target(), 0); - texture_->RemoveLightweightRef(have_context); - texture_ = nullptr; - } + passthrough_texture_.reset(); } } @@ -206,8 +185,6 @@ } GLuint GLImageBacking::GetGLServiceId() const { - if (texture_) - return texture_->service_id(); if (passthrough_texture_) return passthrough_texture_->service_id(); return 0; @@ -248,27 +225,18 @@ } gfx::Rect GLImageBacking::ClearedRect() const { - if (texture_) - return texture_->GetLevelClearedRect(texture_->target(), 0); return cleared_rect_; } void GLImageBacking::SetClearedRect(const gfx::Rect& cleared_rect) { - if (texture_) - texture_->SetLevelClearedRect(texture_->target(), 0, cleared_rect); - else - cleared_rect_ = cleared_rect; + cleared_rect_ = cleared_rect; } std::unique_ptr<GLTextureImageRepresentation> GLImageBacking::ProduceGLTexture( SharedImageManager* manager, MemoryTypeTracker* tracker) { - // The corresponding release will be done when the returned representation is - // destroyed, in GLTextureImageRepresentationRelease. - RetainGLTexture(); - DCHECK(texture_); - return std::make_unique<GLTextureGLCommonRepresentation>(manager, this, this, - tracker, texture_); + NOTREACHED(); + return nullptr; } std::unique_ptr<GLTexturePassthroughImageRepresentation> GLImageBacking::ProduceGLTexturePassthrough(SharedImageManager* manager, @@ -299,7 +267,7 @@ } return GLTextureImageBackingHelper::ProduceDawnCommon( - factory(), manager, tracker, device, backend_type, this, IsPassthrough()); + factory(), manager, tracker, device, backend_type, this, true); } std::unique_ptr<SkiaImageRepresentation> GLImageBacking::ProduceSkia( @@ -407,7 +375,7 @@ bool GLImageBacking::BindOrCopyImageIfNeeded() { // This is called by code that has retained the GL texture. - DCHECK(texture_ || passthrough_texture_); + DCHECK(passthrough_texture_); if (!image_bind_or_copy_needed_) return true; @@ -418,14 +386,7 @@ // Un-bind the GLImage from the texture if it is currently bound. if (image_->ShouldBindOrCopy() == gl::GLImage::BIND) { - bool is_bound = false; - if (IsPassthrough()) { - is_bound = !passthrough_texture_->is_bind_pending(); - } else { - gles2::Texture::ImageState old_state = gles2::Texture::UNBOUND; - texture_->GetLevelImage(target, 0, &old_state); - is_bound = old_state == gles2::Texture::BOUND; - } + bool is_bound = !passthrough_texture_->is_bind_pending(); if (is_bound) image_->ReleaseTexImage(target); } @@ -449,11 +410,7 @@ } DCHECK(new_state == gles2::Texture::BOUND || new_state == gles2::Texture::COPIED); - if (IsPassthrough()) { - passthrough_texture_->set_is_bind_pending(false); - } else { - texture_->SetLevelImage(target, 0, image_.get(), new_state); - } + passthrough_texture_->set_is_bind_pending(false); image_bind_or_copy_needed_ = false; return true;
diff --git a/gpu/command_buffer/service/shared_image/gl_image_backing.h b/gpu/command_buffer/service/shared_image/gl_image_backing.h index 1376f010f..80be5be 100644 --- a/gpu/command_buffer/service/shared_image/gl_image_backing.h +++ b/gpu/command_buffer/service/shared_image/gl_image_backing.h
@@ -88,8 +88,7 @@ GrSurfaceOrigin surface_origin, SkAlphaType alpha_type, uint32_t usage, - const GLTextureImageBackingHelper::InitializeGLTextureParams& params, - bool is_passthrough); + const GLTextureImageBackingHelper::InitializeGLTextureParams& params); // SharedImageBacking: scoped_refptr<gfx::NativePixmap> GetNativePixmap() override; @@ -128,8 +127,6 @@ void GLTextureImageRepresentationEndAccess(bool readonly) override; void GLTextureImageRepresentationRelease(bool have_context) override; - bool IsPassthrough() const { return is_passthrough_; } - scoped_refptr<gl::GLImage> image_; // If |image_bind_or_copy_needed_| is true, then either bind or copy |image_| @@ -143,13 +140,10 @@ bool gl_texture_retained_for_legacy_mailbox_ = false; const GLTextureImageBackingHelper::InitializeGLTextureParams gl_params_; - const bool is_passthrough_; - // This is the cleared rect used by ClearedRect and SetClearedRect when - // |texture_| is nullptr. + // This is the cleared rect used by ClearedRect and SetClearedRect. gfx::Rect cleared_rect_; - gles2::Texture* texture_ = nullptr; scoped_refptr<gles2::TexturePassthrough> passthrough_texture_; sk_sp<SkPromiseImageTexture> cached_promise_texture_;
diff --git a/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/properties.json b/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/properties.json index c392908..9b2e511 100644 --- a/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/properties.json +++ b/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/properties.json
@@ -111,11 +111,6 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", "jobs": 150,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-intel-rel-64/properties.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-intel-rel-64/properties.json index bc71c86..555c54c 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-intel-rel-64/properties.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-intel-rel-64/properties.json
@@ -71,11 +71,6 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", "jobs": 150,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/properties.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/properties.json index a6d5a8b..f11f688e 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/properties.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/properties.json
@@ -71,11 +71,6 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", "jobs": 150,
diff --git a/infra/config/generated/builders/try/win-asan/properties.json b/infra/config/generated/builders/try/win-asan/properties.json index 61ebd181..5200cb7 100644 --- a/infra/config/generated/builders/try/win-asan/properties.json +++ b/infra/config/generated/builders/try/win-asan/properties.json
@@ -37,15 +37,9 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "jobs": 150, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", - "jobs": 150, + "jobs": 300, "metrics_project": "chromium-reclient-metrics" }, "$recipe_engine/resultdb/test_presentation": {
diff --git a/infra/config/generated/builders/try/win-dawn-rel/properties.json b/infra/config/generated/builders/try/win-dawn-rel/properties.json index 5465229..0bb1d91f 100644 --- a/infra/config/generated/builders/try/win-dawn-rel/properties.json +++ b/infra/config/generated/builders/try/win-dawn-rel/properties.json
@@ -114,11 +114,6 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", "jobs": 150,
diff --git a/infra/config/generated/builders/try/win-official/properties.json b/infra/config/generated/builders/try/win-official/properties.json index 69eb8fe8..80ac000 100644 --- a/infra/config/generated/builders/try/win-official/properties.json +++ b/infra/config/generated/builders/try/win-official/properties.json
@@ -38,10 +38,10 @@ ] } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" + "$build/reclient": { + "instance": "rbe-chromium-untrusted", + "jobs": 300, + "metrics_project": "chromium-reclient-metrics" }, "$recipe_engine/resultdb/test_presentation": { "column_keys": [],
diff --git a/infra/config/generated/builders/try/win11-blink-rel/properties.json b/infra/config/generated/builders/try/win11-blink-rel/properties.json index 2f40943..9ed7823 100644 --- a/infra/config/generated/builders/try/win11-blink-rel/properties.json +++ b/infra/config/generated/builders/try/win11-blink-rel/properties.json
@@ -37,10 +37,10 @@ "retry_failed_shards": true } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" + "$build/reclient": { + "instance": "rbe-chromium-untrusted", + "jobs": 150, + "metrics_project": "chromium-reclient-metrics" }, "$recipe_engine/resultdb/test_presentation": { "column_keys": [],
diff --git a/infra/config/generated/builders/try/win_chromium_compile_dbg_ng/properties.json b/infra/config/generated/builders/try/win_chromium_compile_dbg_ng/properties.json index 052a5f18..bc97034d 100644 --- a/infra/config/generated/builders/try/win_chromium_compile_dbg_ng/properties.json +++ b/infra/config/generated/builders/try/win_chromium_compile_dbg_ng/properties.json
@@ -38,15 +38,9 @@ "is_compile_only": true } }, - "$build/goma": { - "enable_ats": false, - "jobs": 150, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", - "jobs": 150, + "jobs": 300, "metrics_project": "chromium-reclient-metrics" }, "$recipe_engine/resultdb/test_presentation": {
diff --git a/infra/config/generated/builders/try/win_optional_gpu_tests_rel/properties.json b/infra/config/generated/builders/try/win_optional_gpu_tests_rel/properties.json index 03f9c72..97e2fe6 100644 --- a/infra/config/generated/builders/try/win_optional_gpu_tests_rel/properties.json +++ b/infra/config/generated/builders/try/win_optional_gpu_tests_rel/properties.json
@@ -41,11 +41,6 @@ "retry_failed_shards": false } }, - "$build/goma": { - "enable_ats": false, - "rpc_extra_params": "?prod", - "server_host": "goma.chromium.org" - }, "$build/reclient": { "instance": "rbe-chromium-untrusted", "jobs": 150,
diff --git "a/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests \050dbg\051/properties.json" "b/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests \050dbg\051/properties.json" new file mode 100644 index 0000000..7883bfd5 --- /dev/null +++ "b/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests \050dbg\051/properties.json"
@@ -0,0 +1,11 @@ +{ + "$recipe_engine/resultdb/test_presentation": { + "column_keys": [], + "grouping_keys": [ + "status", + "v.test_suite" + ] + }, + "builder_group": "chromium.webrtc.fyi", + "recipe": "chromium" +} \ No newline at end of file
diff --git "a/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 \050dbg\051/properties.json" "b/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 \050dbg\051/properties.json" new file mode 100644 index 0000000..7883bfd5 --- /dev/null +++ "b/infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 \050dbg\051/properties.json"
@@ -0,0 +1,11 @@ +{ + "$recipe_engine/resultdb/test_presentation": { + "column_keys": [], + "grouping_keys": [ + "status", + "v.test_suite" + ] + }, + "builder_group": "chromium.webrtc.fyi", + "recipe": "chromium" +} \ No newline at end of file
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index b0d99d9..c0f8d3ee 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -91765,11 +91765,6 @@ } properties: '{' - ' "$build/goma": {' - ' "enable_ats": false,' - ' "rpc_extra_params": "?prod",' - ' "server_host": "goma.chromium.org"' - ' },' ' "$build/reclient": {' ' "instance": "rbe-chromium-untrusted",' ' "jobs": 150,' @@ -95797,6 +95792,57 @@ } } builders { + name: "WebRTC Chromium FYI Android Tests (dbg)" + swarming_host: "chromium-swarm.appspot.com" + dimensions: "cpu:x86-64" + dimensions: "os:Ubuntu-18.04" + dimensions: "pool:luci.chromium.webrtc.fyi" + exe { + cipd_package: "infra/chromium/bootstrapper/${platform}" + cipd_version: "latest" + cmd: "bootstrapper" + } + properties: + '{' + ' "$bootstrap/exe": {' + ' "exe": {' + ' "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",' + ' "cipd_version": "refs/heads/main",' + ' "cmd": [' + ' "luciexe"' + ' ]' + ' }' + ' },' + ' "$bootstrap/properties": {' + ' "properties_file": "infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests (dbg)/properties.json",' + ' "top_level_project": {' + ' "ref": "refs/heads/main",' + ' "repo": {' + ' "host": "chromium.googlesource.com",' + ' "project": "chromium/src"' + ' }' + ' }' + ' },' + ' "builder_group": "chromium.webrtc.fyi",' + ' "led_builder_is_bootstrapped": true,' + ' "recipe": "chromium"' + '}' + execution_timeout_secs: 7200 + build_numbers: YES + service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" + experiments { + key: "luci.buildbucket.omit_python2" + value: 100 + } + experiments { + key: "luci.recipes.use_python3" + value: 100 + } + resultdb { + enable: true + } + } + builders { name: "WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)" swarming_host: "chromium-swarm.appspot.com" dimensions: "cpu:x86-64" @@ -95899,6 +95945,57 @@ } } builders { + name: "WebRTC Chromium FYI Android Tests ARM64 (dbg)" + swarming_host: "chromium-swarm.appspot.com" + dimensions: "cpu:x86-64" + dimensions: "os:Ubuntu-18.04" + dimensions: "pool:luci.chromium.webrtc.fyi" + exe { + cipd_package: "infra/chromium/bootstrapper/${platform}" + cipd_version: "latest" + cmd: "bootstrapper" + } + properties: + '{' + ' "$bootstrap/exe": {' + ' "exe": {' + ' "cipd_package": "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",' + ' "cipd_version": "refs/heads/main",' + ' "cmd": [' + ' "luciexe"' + ' ]' + ' }' + ' },' + ' "$bootstrap/properties": {' + ' "properties_file": "infra/config/generated/builders/webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 (dbg)/properties.json",' + ' "top_level_project": {' + ' "ref": "refs/heads/main",' + ' "repo": {' + ' "host": "chromium.googlesource.com",' + ' "project": "chromium/src"' + ' }' + ' }' + ' },' + ' "builder_group": "chromium.webrtc.fyi",' + ' "led_builder_is_bootstrapped": true,' + ' "recipe": "chromium"' + '}' + execution_timeout_secs: 7200 + build_numbers: YES + service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" + experiments { + key: "luci.buildbucket.omit_python2" + value: 100 + } + experiments { + key: "luci.recipes.use_python3" + value: 100 + } + resultdb { + enable: true + } + } + builders { name: "WebRTC Chromium FYI Linux Builder" swarming_host: "chromium-swarm.appspot.com" dimensions: "cpu:x86-64"
diff --git a/infra/config/generated/luci/luci-milo.cfg b/infra/config/generated/luci/luci-milo.cfg index 8071e3d6..d74e521 100644 --- a/infra/config/generated/luci/luci-milo.cfg +++ b/infra/config/generated/luci/luci-milo.cfg
@@ -14746,6 +14746,16 @@ short_name: "N" } builders { + name: "buildbucket/luci.chromium.webrtc.fyi/WebRTC Chromium FYI Android Tests (dbg)" + category: "android|debug|tester" + short_name: "P" + } + builders { + name: "buildbucket/luci.chromium.webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 (dbg)" + category: "android|debug|tester" + short_name: "P" + } + builders { name: "buildbucket/luci.chromium.webrtc.fyi/WebRTC Chromium FYI Android Builder" category: "android|release" short_name: "32"
diff --git a/infra/config/generated/luci/luci-scheduler.cfg b/infra/config/generated/luci/luci-scheduler.cfg index 726f5ed..47c21e2 100644 --- a/infra/config/generated/luci/luci-scheduler.cfg +++ b/infra/config/generated/luci/luci-scheduler.cfg
@@ -2783,6 +2783,15 @@ } } job { + id: "WebRTC Chromium FYI Android Tests (dbg)" + realm: "webrtc.fyi" + buildbucket { + server: "cr-buildbucket.appspot.com" + bucket: "webrtc.fyi" + builder: "WebRTC Chromium FYI Android Tests (dbg)" + } +} +job { id: "WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)" realm: "webrtc.fyi" buildbucket { @@ -2801,6 +2810,15 @@ } } job { + id: "WebRTC Chromium FYI Android Tests ARM64 (dbg)" + realm: "webrtc.fyi" + buildbucket { + server: "cr-buildbucket.appspot.com" + bucket: "webrtc.fyi" + builder: "WebRTC Chromium FYI Android Tests ARM64 (dbg)" + } +} +job { id: "WebRTC Chromium FYI Linux Builder" realm: "webrtc.fyi" buildbucket {
diff --git a/infra/config/generated/luci/realms.cfg b/infra/config/generated/luci/realms.cfg index 44434455..36c6a53 100644 --- a/infra/config/generated/luci/realms.cfg +++ b/infra/config/generated/luci/realms.cfg
@@ -609,8 +609,10 @@ conditions { restrict { attribute: "scheduler.job.name" + values: "WebRTC Chromium FYI Android Tests (dbg)" values: "WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)" values: "WebRTC Chromium FYI Android Tests (dbg) (N Nexus5X)" + values: "WebRTC Chromium FYI Android Tests ARM64 (dbg)" values: "WebRTC Chromium FYI Linux Tester" values: "WebRTC Chromium FYI Mac Tester" values: "WebRTC Chromium FYI Win10 Tester"
diff --git a/infra/config/subprojects/chromium/gpu.try.star b/infra/config/subprojects/chromium/gpu.try.star index 595e968..350f1ec 100644 --- a/infra/config/subprojects/chromium/gpu.try.star +++ b/infra/config/subprojects/chromium/gpu.try.star
@@ -460,6 +460,7 @@ "ci/GPU FYI Win x64 Builder", "ci/Win10 FYI x64 Release (Intel HD 630)", ], + goma_backend = None, ) gpu_win_builder( @@ -469,6 +470,7 @@ "ci/GPU FYI Win x64 Builder (dbg)", "ci/Win10 FYI x64 Debug (NVIDIA)", ], + goma_backend = None, ) gpu_win_builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.blink.star b/infra/config/subprojects/chromium/try/tryserver.blink.star index d8721c9..4a990e5 100644 --- a/infra/config/subprojects/chromium/try/tryserver.blink.star +++ b/infra/config/subprojects/chromium/try/tryserver.blink.star
@@ -115,9 +115,10 @@ try_settings = builder_config.try_settings( retry_failed_shards = True, ), - goma_backend = goma.backend.RBE_PROD, os = os.WINDOWS_ANY, builderless = True, + reclient_instance = reclient.instance.DEFAULT_UNTRUSTED, + reclient_jobs = reclient.jobs.LOW_JOBS_FOR_CQ, ) blink_mac_builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.dawn.star b/infra/config/subprojects/chromium/try/tryserver.chromium.dawn.star index 71cc0d2..2dd0121f 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.dawn.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.dawn.star
@@ -147,6 +147,7 @@ try_.builder( name = "dawn-win10-x86-deps-rel", branch_selector = branches.DESKTOP_EXTENDED_STABLE_MILESTONE, + goma_backend = None, mirrors = [ "ci/Dawn Win10 x86 DEPS Builder", "ci/Dawn Win10 x86 DEPS Release (Intel HD 630)", @@ -249,6 +250,7 @@ test_presentation = resultdb.test_presentation( grouping_keys = ["status", "v.test_suite", "v.gpu"], ), + goma_backend = None, ) try_.builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.star b/infra/config/subprojects/chromium/try/tryserver.chromium.star index 6ed5c7f..f51fbc60 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.star
@@ -79,6 +79,9 @@ ], os = os.WINDOWS_DEFAULT, execution_timeout = 6 * time.hour, + goma_backend = None, + reclient_instance = reclient.instance.DEFAULT_UNTRUSTED, + reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CQ, ) try_.builder(
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star index a19d149..c28a979 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star
@@ -41,8 +41,9 @@ mirrors = [ "ci/win-asan", ], - goma_jobs = goma.jobs.J150, execution_timeout = 6 * time.hour, + goma_backend = None, + reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CQ, ) try_.builder( @@ -67,6 +68,7 @@ # TODO(crbug.com/1366994): remove this. omit_python2 = False, + goma_backend = None, ) try_.orchestrator_builder( @@ -127,7 +129,7 @@ include_all_triggered_testers = True, is_compile_only = True, ), - goma_jobs = goma.jobs.J150, + goma_backend = None, main_list_view = "try", tryjob = try_.job( # TODO(crbug.com/1335555) Remove once cancelling doesn't wipe @@ -140,6 +142,7 @@ # TODO(crbug.com/1366994): remove this. omit_python2 = False, + reclient_jobs = reclient.jobs.HIGH_JOBS_FOR_CQ, ) try_.builder( @@ -374,4 +377,5 @@ cq.location_filter(path_regexp = "ui/gl/.+"), ], ), + goma_backend = None, )
diff --git a/infra/config/subprojects/webrtc/consoles/chromium.webrtc.fyi.star b/infra/config/subprojects/webrtc/consoles/chromium.webrtc.fyi.star index 743cd59..2795e12 100644 --- a/infra/config/subprojects/webrtc/consoles/chromium.webrtc.fyi.star +++ b/infra/config/subprojects/webrtc/consoles/chromium.webrtc.fyi.star
@@ -31,6 +31,16 @@ short_name = "N", ), luci.console_view_entry( + builder = "webrtc.fyi/WebRTC Chromium FYI Android Tests (dbg)", + category = "android|debug|tester", + short_name = "P", + ), + luci.console_view_entry( + builder = "webrtc.fyi/WebRTC Chromium FYI Android Tests ARM64 (dbg)", + category = "android|debug|tester", + short_name = "P", + ), + luci.console_view_entry( builder = "webrtc.fyi/WebRTC Chromium FYI Android Builder", category = "android|release", short_name = "32",
diff --git a/infra/config/subprojects/webrtc/webrtc.fyi.star b/infra/config/subprojects/webrtc/webrtc.fyi.star index 5a04ad3..06ff617 100644 --- a/infra/config/subprojects/webrtc/webrtc.fyi.star +++ b/infra/config/subprojects/webrtc/webrtc.fyi.star
@@ -73,6 +73,16 @@ ) builder( + name = "WebRTC Chromium FYI Android Tests (dbg)", + triggered_by = ["WebRTC Chromium FYI Android Builder (dbg)"], +) + +builder( + name = "WebRTC Chromium FYI Android Tests ARM64 (dbg)", + triggered_by = ["WebRTC Chromium FYI Android Builder ARM64 (dbg)"], +) + +builder( name = "WebRTC Chromium FYI Linux Builder", goma_backend = goma.backend.RBE_PROD, )
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb index 3e52a44..81a1c01 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
@@ -28,6 +28,7 @@ <translation id="2178608107313874732">يتعذر على Chromium استخدام الكاميرا في الوقت الحالي</translation> <translation id="2195025571279539885">هل ترغب في أن يعرض Chromium ترجمة صفحات <ph name="LANGUAGE_NAME" /> من الموقع الإلكتروني هذا في المرة القادمة؟</translation> <translation id="2218146227246548550">تطلُب مؤسستك منك تسجيل الدخول للتمكّن من استخدام Chromium. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation> +<translation id="2228617012253907725">إنجاز المزيد باستخدام Chromium</translation> <translation id="2236584955986023187">يعني هذا أنّ Chromium سيطلب دائمًا استخدام الموقع الإلكتروني المتوافق مع الكمبيوتر المكتبي.</translation> <translation id="2313870531055795960">يعمل هذا الوضع على التحقّق من عناوين URL التي تحتوي على قائمة بمواقع إلكترونية غير آمنة مُخزّنة في Chromium. وإذا حاول موقع إلكتروني سرقة كلمة المرور أو إذا نزّلت ملفًا ضارًا، قد يرسل متصفِّح Chromium أيضًا عناوين URL تتضمّن أجزاء من محتوى الصفحة إلى "التصفُّح الآمن".</translation> <translation id="2426113998523353159">تطلُب المؤسسة منك تسجيل الدخول للتمكّن من استخدام Chromium.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb index fffaa1c..93610ac 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
@@ -85,6 +85,7 @@ <translation id="6427126399757991875">تعمل مؤسستك حاليًا على إعداد Chrome...</translation> <translation id="651403856614361404">استُخدمت كلمة المرور هذه في عملية اختراق للبيانات. ينصح Chrome بتغيير كلمة مرورك الآن.</translation> <translation id="6600954340915313787">تم النسخ إلى Chrome</translation> +<translation id="6632661856876686289">إنجاز المزيد باستخدام Chrome</translation> <translation id="6634107063912726160">عند تسجيل الخروج، لن تتم مزامنة أي بيانات جديدة في Chrome مع حسابك على Google. وتظلّ البيانات التي تمت مزامنتها سابقًا متوفّرة في حسابك.</translation> <translation id="6648150602980899529">يتم تسجيل دخولك باستخدام حساب يتم إدارته من خلال <ph name="DOMAIN" /> ومنح مشرفه الحق في التحكم في بياناتك على Chrome. سيؤدي ذلك إلى جعل بياناتك مرتبطة دائمًا بهذا الحساب. كما سيؤدي تسجيل الخروج من Chrome إلى حذف بياناتك من هذا الجهاز، ولكن ستظل هذه البيانات مخزنة على حسابك في Google.</translation> <translation id="6676840375528380067">هل تريد محو بيانات Chrome من هذا الجهاز؟</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_as.xtb b/ios/chrome/app/strings/resources/ios_strings_as.xtb index 4095686d..77455dc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_as.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_as.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">২) ডিফ’ল্ট ব্ৰাউজাৰ এপত টিপক</translation> <translation id="2820289420301699633">আপোনাৰ প্ৰশাসকে Chrome নিয়ন্ত্ৰণ কৰিব পাৰে আৰু ইয়াৰ ডেটা এক্সেছ কৰিব পাৰে</translation> <translation id="2830972654601096923">ঠিকনা পৰিচালনা কৰক...</translation> +<translation id="2834399722155632105">৩) পাছৱৰ্ডৰ বিকল্পসমূহত টিপক</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">অনুবাদৰ ছেটিং ৰিছেট কৰক</translation> <translation id="2848086008667475748">ছেটিঙত ডিফ’ল্ট হিচাপে ছেট কৰক…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">আশে-পাশে থকা লোকসকলৰ সৈতে শ্বেয়াৰ কৰিবলৈ তেওঁলোকক তেওঁলোকৰ কেমেৰা অথবা কিউআৰ স্কেনাৰ এপ্টো ব্যৱহাৰ কৰি এই কিউআৰ ক’ডটো স্কেন কৰিবলৈ দিয়ক</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">পৃষ্ঠাখন অনুবাদ কৰাৰ বিকল্পসমূহ</translation> +<translation id="5933515656458364246">আটাইবোৰ ডিভাইচত আপোনাৰ ডেটা ছিংক কৰক।</translation> <translation id="5938160824633642847">আপোনাৰ ডিভাইচৰ ষ্ট’ৰেজ প্ৰায় সম্পূর্ণ হৈছে। খালী ঠাই উলিয়াই আকৌ চেষ্টা কৰক।</translation> <translation id="5948291296578561264">ইয়াৰ জৰিয়তে আপুনি ফট’ লাইব্ৰেৰীত ফট’ ছেভ কৰিব পাৰে।</translation> <translation id="5951816930277761335">লিংকটো শ্বেয়াৰ কৰক</translation> @@ -713,6 +715,7 @@ আপোনাৰ ছিংক পাছফ্ৰেজৰ সৈতে নিজৰ ডেটা <ph name="TIME" />ত এনক্ৰিপ্ট কৰা হৈছিল। ছিংক আৰম্ভ কৰিবলৈ এইটো দিয়ক।</translation> <translation id="6418346271604475326">PDF সাজু কৰি থকা হৈছে</translation> +<translation id="6429213933892582367">পাছৱৰ্ডৰ বিকল্পসমূহ খোলক</translation> <translation id="6434591244308415567">আসোঁৱাহ হৈছে। পাছত আকৌ চেষ্টা কৰক।</translation> <translation id="6435236283694032571">পঢ়াৰ সূচীত যোগ দিয়ক</translation> <translation id="6439338047467462846">সকলোকে অনুমতি দিয়ক</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">সঁহাৰিটো কৈ দিয়ক</translation> <translation id="7207023858769244910">আপোনাৰ আগ্ৰহৰ ওপৰত ভিত্তি কৰি সমল লাভ কৰিবলৈ ছিংক কৰক।</translation> <translation id="721597782417389033">কার্ডৰ উপনাম অমান্য</translation> +<translation id="7221173315674413369">নতুন কি আছেত নতুন সুবিধা আৰু পৰামৰ্শসমূহ অন্বেষণ কৰক</translation> <translation id="722454870747268814">নতুন ইনক’গ্নিট’ টেব</translation> <translation id="7265758999917665941">এই ছাইটটোৰ বাবে কেতিয়াও নহয়</translation> <translation id="7272437679830969316">আপোনাৰ পৰিচয় সত্যাপন কৰিব পৰা নগ’ল। পাছৱৰ্ড প্ৰতিলিপি কৰা নহ’ল।</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">ডাউনল'ড কৰক</translation> <translation id="7531345132340165516">বৰ্তমানৰ ছাইট</translation> <translation id="7537586195939242955">দুঃখিত, এই সময়ত আপোনাৰ পাছ Passbookত ইনষ্টল কৰিব নোৱাৰি।</translation> +<translation id="7553234618121028547">অফ কৰিবলৈ<ph name="BEGIN_LINK" />ছেটিং<ph name="END_LINK" /> খোলক আৰু পাছৱৰ্ডৰ বিকল্পসমূহলৈ যাওক।</translation> <translation id="7554791636758816595">নতুন টেব</translation> <translation id="7561196759112975576">সদায়</translation> <translation id="7583004045319035904">আপোনাৰ ইনক’গনিট’ টেবসমূহ আনলক কৰিবলৈ <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ব্যৱহাৰ কৰক।</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">আপুনি যাতে ছাইট আৰু এপ্সমূহত সহজতে ছাইন ইন কৰিব পাৰে, তাৰ বাবে আপোনাৰ পাছৱৰ্ড সৃষ্টি, ছেভ আৰু পৰিচালনা কৰক। <ph name="BEGIN_LINK" />অধিক জানক<ph name="END_LINK" /></translation> <translation id="8105368624971345109">অফ কৰক</translation> <translation id="8114753159095730575">ফাইল ডাউনল’ড উপলব্ধ। স্ক্ৰীনৰ তলৰ অংশৰ কাষত থকা বিকল্পসমূহ।</translation> +<translation id="81313319706244542">২) পাছৱৰ্ডত টিপক</translation> <translation id="8132598642024322408">পূৰ্বে <ph name="PREVIOUS_PRICE" /> আছিল, এতিয়া <ph name="PRICE" />।</translation> <translation id="8136856065410661948">Chrome আৰু Google Lensৰ পৰা আপোনাৰ Apple Calendarত অনুষ্ঠান সৃষ্টি কৰিবলৈ এইটো ব্যৱহাৰ কৰা হ’ব।</translation> <translation id="8156478151976189188">পাছৱৰ্ড ছিংক কৰাৰ সুবিধাটোৱে কাম কৰা নাই</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">নতুন সন্ধান</translation> <translation id="8323906514956095947">টেবৰ অধিক বিকল্পৰ বাবে স্পৰ্শ কৰি ধৰি ৰাখক</translation> <translation id="8328777765163860529">সকলো বন্ধ কৰক</translation> +<translation id="8343993175958086504">আপোনাৰ বস্তুবোৰৰ বেক আপ লওক আৰু সেইবোৰ যিকোনো ডিভাইচত ব্যৱহাৰ কৰক।</translation> <translation id="8378714024927312812">আপোনাৰ প্ৰতিষ্ঠানৰ দ্বাৰা পৰিচালিত</translation> <translation id="8386068868580335421">ৰিছেট কৰক</translation> <translation id="8407669440184693619">এই ছাইটটোৰ বাবে কোনো পাছৱৰ্ড বিচাৰি পোৱা নগ’ল</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_be.xtb b/ios/chrome/app/strings/resources/ios_strings_be.xtb index 69e5ee7..5a7040b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_be.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_be.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Націсніце "Стандартны браўзер".</translation> <translation id="2820289420301699633">Ваш адміністратар можа кіраваць браўзерам Chrome і мае доступ да даных у ім</translation> <translation id="2830972654601096923">Кіраваць адрасамі...</translation> +<translation id="2834399722155632105">3. Націсніце Password Options ("Налады пароляў").</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Скін. нал. перакл.</translation> <translation id="2848086008667475748">Зрабіць браўзер стандартным у Наладах…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Каб абагуліць гэта змесціва з карыстальнікамі паблізу, дайце ім адсканіраваць гэты QR-код камерай або з дапамогай праграмы сканіравання QR-кодаў.</translation> <translation id="5911030830365207728">Перакладчык Google</translation> <translation id="5913600720976431809">Параметры перакладу старонкі</translation> +<translation id="5933515656458364246">Сінхранізуйце даныя на ўсіх прыладах.</translation> <translation id="5938160824633642847">Сховішча прылады амаль запоўнена. Вызваліце месца і паўтарыце спробу.</translation> <translation id="5948291296578561264">Гэта дазваляе захоўваць фота ў бібліятэцы.</translation> <translation id="5951816930277761335">Абагульце спасылку</translation> @@ -713,6 +715,7 @@ Вашы даныя былі зашыфраваны з дапамогай фразы-пароля <ph name="TIME" />. Увядзіце яе, каб пачаць сінхранізацыю.</translation> <translation id="6418346271604475326">PDF рыхтуецца</translation> +<translation id="6429213933892582367">Адкрыйце раздзел Password Options ("Налады пароляў").</translation> <translation id="6434591244308415567">Адбылася памылка. Паўтарыце спробу пазней.</translation> <translation id="6435236283694032571">Дадаць у Спіс на прагляд</translation> <translation id="6439338047467462846">Дазволіць усе</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Агучваць атрыманыя адказы</translation> <translation id="7207023858769244910">Каб атрымліваць змесціва на падставе сваіх інтарэсаў, уключыце сінхранізацыю.</translation> <translation id="721597782417389033">Несапраўдны псеўданім карткі</translation> +<translation id="7221173315674413369">Знаёмцеся з новымі функцыямі і атрымлівайце парады ў раздзеле "Што новага"</translation> <translation id="722454870747268814">Новая ўкладка ў рэжыме інкогніта</translation> <translation id="7265758999917665941">Ніколі для гэтага сайта</translation> <translation id="7272437679830969316">Не ўдалося спраўдзіць вашу асобу. Пароль не скапіраваны.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Спампаваць</translation> <translation id="7531345132340165516">Бягучы сайт</translation> <translation id="7537586195939242955">Зараз усталяваць пароль у Passbook не ўдалося.</translation> +<translation id="7553234618121028547">Каб выключыць аўтазапаўненне, выберыце <ph name="BEGIN_LINK" />Settings ("Налады")<ph name="END_LINK" /> і перайдзіце ў раздзел Password Options ("Параметры пароляў").</translation> <translation id="7554791636758816595">Новая ўкладка</translation> <translation id="7561196759112975576">Заўсёды</translation> <translation id="7583004045319035904">Выкарыстоўвайце <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> для разблакіроўкі ўкладак у рэжыме інкогніта</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Стварайце паролі, захоўвайце іх і кіруйце імі, каб мець магчымасць з лёгкасцю ўваходзіць ва ўліковыя запісы на сайтах і ў праграмах. <ph name="BEGIN_LINK" />Даведацца больш<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Выключыць</translation> <translation id="8114753159095730575">Файл даступны для спампоўвання. Параметры знаходзяцца ў ніжняй частцы экрана.</translation> +<translation id="81313319706244542">2. Націсніце Passwords ("Паролі").</translation> <translation id="8132598642024322408">Цяпер: <ph name="PRICE" />, раней: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Гэта інфармацыя будзе выкарыстоўвацца для стварэння падзей у Apple Calendar непасрэдна з Chrome і Google Аб'ектыва.</translation> <translation id="8156478151976189188">Сінхранізацыя пароляў не працуе</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Новы пошук</translation> <translation id="8323906514956095947">Каб адкрыць дадатковыя параметры ўкладкі, націсніце і ўтрымлівайце гэту кнопку</translation> <translation id="8328777765163860529">Закрыць усе</translation> +<translation id="8343993175958086504">Стварайце рэзервовыя копіі сваіх даных, каб іх можна было выкарыстоўваць на іншых прыладах.</translation> <translation id="8378714024927312812">Пад кіраваннем вашай арганізацыі</translation> <translation id="8386068868580335421">Скінуць</translation> <translation id="8407669440184693619">Паролі для гэтага сайта не знойдзены</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index 6f4d3315..af6d5b3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Докоснете „Стандартно прилож. за браузър“.</translation> <translation id="2820289420301699633">Администраторът ви контролира Chrome и има достъп до данните в браузъра</translation> <translation id="2830972654601096923">Управление на адресите...</translation> +<translation id="2834399722155632105">3. Докоснете „Опции за паролите“.</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Настр. за Преводач: Нулир.</translation> <translation id="2848086008667475748">Задаване като браузър по подразбиране в настройките…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">За да споделите с хората в близост, те трябва да сканират този QR код с камерата си или с приложение за целта</translation> <translation id="5911030830365207728">Google Преводач</translation> <translation id="5913600720976431809">Опции за превод на страницата</translation> +<translation id="5933515656458364246">Синхронизирайте данните си на всички устройства.</translation> <translation id="5938160824633642847">Хранилището на устройството ви е почти пълно. Освободете място и опитайте отново.</translation> <translation id="5948291296578561264">Това ви позволява да запазвате снимки във фотобиблиотеката си.</translation> <translation id="5951816930277761335">Споделете връзката.</translation> @@ -713,6 +715,7 @@ На <ph name="TIME" /> данните ви бяха шифровани с пропуска ви за синхронизиране. Въведете го, за да стартирате синхронизирането.</translation> <translation id="6418346271604475326">PDF файлът се подготвя</translation> +<translation id="6429213933892582367">Отворете „Опции за паролите“.</translation> <translation id="6434591244308415567">Възникна грешка. Опитайте отново по-късно.</translation> <translation id="6435236283694032571">Добавяне към списъка за четене</translation> <translation id="6439338047467462846">Разрешаване на всичко</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Изговаряне на отговорите</translation> <translation id="7207023858769244910">Включете синхронизирането, за да получавате съдържание въз основа на интересите си.</translation> <translation id="721597782417389033">Псевдонимът на картата е невалиден</translation> +<translation id="7221173315674413369">Разгледайте новите функции и съвети в „Новите неща“</translation> <translation id="722454870747268814">Нов раздел в режим „инкогнито“</translation> <translation id="7265758999917665941">Никога за този сайт</translation> <translation id="7272437679830969316">Паролата не бе копирана поради неуспешно удостоверяване.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Изтегляне</translation> <translation id="7531345132340165516">Настоящ сайт</translation> <translation id="7537586195939242955">Понастоящем пропускът не може да се инсталира в Passbook.</translation> +<translation id="7553234618121028547">За да изключите функцията, отворете <ph name="BEGIN_LINK" />Настройки<ph name="END_LINK" /> и след това „Опции за паролите“.</translation> <translation id="7554791636758816595">Нов раздел</translation> <translation id="7561196759112975576">Винаги</translation> <translation id="7583004045319035904">Използвайте <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> за отключване на разделите в режим „инкогнито“.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Създавайте, запазвайте и управлявайте паролите си, така че лесно да можете да влизате в сайтовете и приложенията. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Изключване</translation> <translation id="8114753159095730575">Наличен е файл за изтегляне. Съответните опции са достъпни в долната част на екрана.</translation> +<translation id="81313319706244542">2. Докоснете „Пароли“.</translation> <translation id="8132598642024322408">Сега цената е <ph name="PRICE" />, беше <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Това ще даде възможност за създаване на събития в Apple Calendar чрез съдържание от Chrome и Google Обектив.</translation> <translation id="8156478151976189188">Синхронизирането на паролите не работи</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Ново търсене</translation> <translation id="8323906514956095947">Докоснете и задръжте, за да видите още опции за разделите</translation> <translation id="8328777765163860529">Затваряне на всички</translation> +<translation id="8343993175958086504">Създайте резервно копие на нещата си и ги използвайте на всяко устройство.</translation> <translation id="8378714024927312812">Управлява се от организацията ви</translation> <translation id="8386068868580335421">Нулиране</translation> <translation id="8407669440184693619">Няма намерени пароли за този сайт</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb index f58732d..360c619b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">২. 'ডিফল্ট ব্রাউজার অ্যাপ' বিকল্পে ট্যাপ করুন</translation> <translation id="2820289420301699633">আপনার অ্যাডমিনিস্ট্রেটরের কাছে Chrome-এর নিয়ন্ত্রণ আছে এবং তিনি এর ডেটা অ্যাক্সেস করতে পারবেন</translation> <translation id="2830972654601096923">ঠিকানাগুলি ম্যানেজ করুন...</translation> +<translation id="2834399722155632105">৩. পাসওয়ার্ড বিকল্পে ট্যাপ করুন</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">অনুবাদ সেটিংস রিসেট করুন</translation> <translation id="2848086008667475748">Settings-এ এটিকে ডিফল্ট হিসেবে সেট করুন…</translation> @@ -633,6 +634,7 @@ <translation id="5899314093904173337">কাছাকাছি থাকা লোকেদের সাথে শেয়ার করতে, তাদের ক্যামেরা বা QR স্ক্যানার অ্যাপ দিয়ে এই QR কোড স্ক্যান করতে দিন</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">পৃষ্ঠা অনুবাদ করার বিকল্প</translation> +<translation id="5933515656458364246">সব ডিভাইসে আপনার ডেটা সিঙ্ক করুন।</translation> <translation id="5938160824633642847">আপনার ডিভাইসে পর্যাপ্ত জায়গা নেই। জায়গা খালি করে আবার চেষ্টা করুন।</translation> <translation id="5948291296578561264">এর ফলে আপনি ফটো লাইব্রেরিতে ফটো সেভ করতে পারবেন।</translation> <translation id="5951816930277761335">লিঙ্ক শেয়ার করুন</translation> @@ -714,6 +716,7 @@ আপনার সিঙ্ক পাসফ্রেজের মাধ্যমে আপনার ডেটা <ph name="TIME" /> এ এনক্রিপটেড হয়েছে। সিঙ্ক শুরু করতে এটি লিখুন।</translation> <translation id="6418346271604475326">পিডিএফ প্রস্তুত হচ্ছে</translation> +<translation id="6429213933892582367">পাসওয়ার্ড বিকল্প খুলুন</translation> <translation id="6434591244308415567">কোনও সমস্যা হয়েছে। পরে আবার চেষ্টা করুন।</translation> <translation id="6435236283694032571">পড়ার তালিকায় যোগ করুন</translation> <translation id="6439338047467462846">সব কুকিকে অনুমতি দিন</translation> @@ -829,6 +832,7 @@ <translation id="7203585745079012652">আবার উত্তরগুলি বলে</translation> <translation id="7207023858769244910">আপনার আগ্রহের উপর ভিত্তি করে কন্টেন্ট পেতে সিঙ্ক করুন।</translation> <translation id="721597782417389033">কার্ডের বিশেষ নামটি সঠিক নয়</translation> +<translation id="7221173315674413369">'নতুন' বিভাগে নতুন ফিচার এবং পরামর্শ এক্সপ্লোর করুন</translation> <translation id="722454870747268814">নতুন ছদ্মবেশী ট্যাব</translation> <translation id="7265758999917665941">এই সাইটের জন্য কখনই নয়</translation> <translation id="7272437679830969316">আপনার পরিচয় যাচাই করা যাবে না। পাসওয়ার্ড কপি করা হয়নি।</translation> @@ -862,6 +866,7 @@ <translation id="7514365320538308">ডাউনলোড করুন</translation> <translation id="7531345132340165516">বর্তমান সাইট</translation> <translation id="7537586195939242955">দুঃখিত, এই সময়ে পাসবুকে আপনার পাস ইনস্টল করা যাবে না৷</translation> +<translation id="7553234618121028547">বন্ধ করতে, <ph name="BEGIN_LINK" />সেটিংস<ph name="END_LINK" /> বিকল্প খুলে পাসওয়ার্ড বিকল্পে যান।</translation> <translation id="7554791636758816595">নতুন ট্যাব</translation> <translation id="7561196759112975576">সবসময়</translation> <translation id="7583004045319035904">আপনার ছদ্মবেশী ট্যাব আনলক করতে, <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ব্যবহার করুন।</translation> @@ -943,6 +948,7 @@ <translation id="8101409298456377967">পাসওয়ার্ড তৈরি, সেভ ও ম্যানেজ করুন যাতে আপনি সহজেই সাইট ও অ্যাপে সাইন-ইন করতে পারেন। <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation> <translation id="8105368624971345109">বন্ধ করুন</translation> <translation id="8114753159095730575">ফাইল ডাউনলোড করা যাবে। স্ক্রিনের নিচের দিকে বিকল্পগুলি উপলভ্য।</translation> +<translation id="81313319706244542">২. পাসওয়ার্ডে ট্যাপ করুন</translation> <translation id="8132598642024322408">আগে <ph name="PREVIOUS_PRICE" /> ছিল এখন <ph name="PRICE" />।</translation> <translation id="8136856065410661948">এটি Chrome এবং Google Lens থেকে আপনার Apple ক্যালেন্ডারে ইভেন্ট তৈরি করতে ব্যবহার করা হবে।</translation> <translation id="8156478151976189188">'পাসওয়ার্ড সিঙ্ক' ফিচার কাজ করছে না</translation> @@ -965,6 +971,7 @@ <translation id="8319076807703933069">নতুন ট্যাবে সার্চ করুন</translation> <translation id="8323906514956095947">আরও ট্যাবের বিকল্প দেখতে টাচ করে ধরে থাকুন</translation> <translation id="8328777765163860529">সমস্ত বন্ধ করুন</translation> +<translation id="8343993175958086504">আপনার ডেটার ব্যাক-আপ নিন এবং যেকোনও ডিভাইসে তা ব্যবহার করুন।</translation> <translation id="8378714024927312812">আপনার প্রতিষ্ঠানের দ্বারা ম্যানেজ করা</translation> <translation id="8386068868580335421">রিসেট করুন</translation> <translation id="8407669440184693619">এই সাইটের জন্য কোনও পাসওয়ার্ড পাওয়া যায়নি</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index fd962ee..841519f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Skeniraj QR kôd</translation> <translation id="1552525382687785070">Vaš administrator je onemogućio sinhronizaciju</translation> <translation id="1554477036522844996">Novi prozor</translation> +<translation id="1565371473877914088">Nova anonimna kartica</translation> <translation id="1580715474678097352">Zaštitite se od opasnih web lokacija</translation> <translation id="1580783302095112590">E-poruka je poslana.</translation> <translation id="1582732959743469162">Ovim će se zaustaviti sav tok trenutnog preuzimanja.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Mobilni uređaj</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="199425419756152024">Prikaži lozinku</translation> +<translation id="2010008505735295285">Ponovo učitaj</translation> <translation id="2015722694326466240">Postavite šifru na uređaju da vidite lozinke.</translation> <translation id="2021670401941426298">Ako je primjenjivo, pogledajte uputstva pretraživača da saznate kako izbrisati historiju pretraživanja.</translation> <translation id="202292859882676807">Pristup mikrofonu je dozvoljen</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Otkaži</translation> <translation id="3277021493514034324">Adresa web lokacije je kopirana</translation> <translation id="3285962946108803577">Dijeli stranicu...</translation> +<translation id="3289505634533552500">Glasovno pretraživanje</translation> <translation id="3290875554372353449">Odaberite račun</translation> <translation id="3305294846493618482">više</translation> <translation id="3311748811247479259">Isključeno</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Ukloniti račun <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Prikaži</translation> <translation id="5317780077021120954">Sačuvaj</translation> +<translation id="5318298563956633672">Već pratite ovaj proizvod.</translation> <translation id="5339316356165661760">Uključi sinhronizaciju</translation> <translation id="536067926684072644">Prikazivanje oznaka</translation> <translation id="5360976571138293719">Više postavki koje se odnose na privatnost, sigurnost i prikupljanje podataka možete pronaći u <ph name="BEGIN_LINK" />Googleovim uslugama<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Uključi sinhronizaciju</translation> <translation id="5819208479324046259">Preglednikom upravlja <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Sačuvajte lozinke, načine plaćanja i adrese za Chrome radi budućeg automatskog popunjavanja.</translation> +<translation id="5834415013958049700">Slika Objektiva koju ste kopirali</translation> <translation id="5846482154967366008">Pretraživač</translation> <translation id="5854790677617711513">Starije od 30 dana</translation> <translation id="5857090052475505287">Novi folder</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Nedavno posjećeno</translation> <translation id="5988097621740394599">Pregledajte padove cijena na svojim karticama.</translation> <translation id="5988851877894965432">Otvori URL-ove u Chromeu</translation> +<translation id="6006672969046233841">Nova kartica</translation> <translation id="6012140227487808125">Šifriranje…</translation> <translation id="6021332621416007159">Otvori u aplikaciji...</translation> <translation id="6027945736510816438">Jeste li mislili <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Sinhronizirajte da dobijete sadržaj zasnovan na vašim interesovanjima.</translation> <translation id="721597782417389033">Nevažeći nadimak kartice</translation> <translation id="7221173315674413369">Istražite nove značajke i savjete u odjeljku Novosti</translation> +<translation id="7223102419539744003">Zatvori karticu</translation> <translation id="722454870747268814">Nova anonimna kartica</translation> <translation id="7265758999917665941">Nikada za ovu web lokaciju</translation> <translation id="7272437679830969316">Nije moguće potvrditi identitet. Lozinka nije kopirana.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Preuzimanje nije uspjelo</translation> <translation id="785938070103630874">Otvorite lozinke, načine plaćanja ili adresu i još mnogo toga</translation> <translation id="7859704718976024901">Historija pregledanja</translation> +<translation id="7870750252270996949">Slika Objektiva koju ste kopirali</translation> <translation id="7879275349003161544">Prikaz preuzimanja</translation> <translation id="7884694604461143138">Pretražite historiju (broj rezultata je <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Chrome neće automatski popuniti ovu rubriku radi zaštite vaše privatnosti.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Zadani prikaz web lokacije</translation> <translation id="8820817407110198400">Oznake</translation> +<translation id="882557203579758546">Pronađi na stranici…</translation> <translation id="8840513115188359703">Nećete se odjaviti sa svog Google računa.</translation> <translation id="8843129975935593190">Vaša organizacija ograničava šta možete sinhronizirati.</translation> <translation id="8849001918648564819">Skriveno</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 3c27c53e..a4e6f84 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Toca Aplicació de navegador predeterminada.</translation> <translation id="2820289420301699633">El teu administrador té control sobre Chrome i pot accedir a les dades associades</translation> <translation id="2830972654601096923">Gestiona les adreces...</translation> +<translation id="2834399722155632105">3. Toca Opcions de contrasenya</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Restableix config. Traductor</translation> <translation id="2848086008667475748">Estableix com a predeterminat a Configuració…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Per compartir contingut amb persones del teu entorn, permet-los que escanegin aquest codi QR amb la càmera o l'aplicació d'escaneig QR</translation> <translation id="5911030830365207728">Traductor de Google</translation> <translation id="5913600720976431809">Opcions per traduir la pàgina</translation> +<translation id="5933515656458364246">Sincronitza les dades en tots els dispositius.</translation> <translation id="5938160824633642847">El dispositiu està gairebé ple. Allibera espai i torna-ho a provar.</translation> <translation id="5948291296578561264">Et permet desar fotos a la biblioteca de fotos.</translation> <translation id="5951816930277761335">Comparteix l'enllaç</translation> @@ -713,6 +715,7 @@ Les teves dades es van encriptar el dia <ph name="TIME" /> amb la teva frase de contrasenya de sincronització. Introduei-la per començar la sincronització.</translation> <translation id="6418346271604475326">Preparant el PDF</translation> +<translation id="6429213933892582367">Obre Opcions de contrasenya</translation> <translation id="6434591244308415567">S'ha produït un error. Torna-ho a provar més tard.</translation> <translation id="6435236283694032571">Afegeix a la llista de lectura</translation> <translation id="6439338047467462846">Permet-ho tot</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Pronuncia les respostes</translation> <translation id="7207023858769244910">Sincronitza per obtenir contingut basat en els teus interessos.</translation> <translation id="721597782417389033">L'àlies de la targeta no és vàlid</translation> +<translation id="7221173315674413369">Explora noves funcions i consells a Novetats</translation> <translation id="722454870747268814">Pestanya d'incògnit nova</translation> <translation id="7265758999917665941">Mai per a aquest lloc web</translation> <translation id="7272437679830969316">No es pot verificar la teva identitat. La contrasenya no s'ha copiat.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Baixa</translation> <translation id="7531345132340165516">Lloc web actual</translation> <translation id="7537586195939242955">No es pot instal·lar el passi a Passbook en aquest moment.</translation> +<translation id="7553234618121028547">Per desactivar aquesta funció, obre <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" /> i ves a Opcions de contrasenya.</translation> <translation id="7554791636758816595">Pestanya nova</translation> <translation id="7561196759112975576">Sempre</translation> <translation id="7583004045319035904">Utilitza <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> per desbloquejar les pestanyes d'incògnit.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Crea, desa i gestiona les teves contrasenyes de manera que puguis iniciar la sessió fàcilment en llocs web i aplicacions. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Desactiva</translation> <translation id="8114753159095730575">La baixada de fitxers està disponible. Opcions disponibles a la part inferior de la pantalla.</translation> +<translation id="81313319706244542">2. Toca Contrasenyes</translation> <translation id="8132598642024322408">Ara val <ph name="PRICE" />, abans valia <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">S'utilitzarà per crear esdeveniments al teu Calendari d'Apple des de Chrome i Google Lens.</translation> <translation id="8156478151976189188">La sincronització de contrasenyes no funciona</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Cerca nova</translation> <translation id="8323906514956095947">Mantén premut el botó per veure més opcions de pestanyes</translation> <translation id="8328777765163860529">Tanca-ho tot</translation> +<translation id="8343993175958086504">Fes una còpia de seguretat de les teves dades i utilitza-les en qualsevol dispositiu.</translation> <translation id="8378714024927312812">Gestionat per la teva organització</translation> <translation id="8386068868580335421">Restableix</translation> <translation id="8407669440184693619">No s'ha trobat cap contrasenya per a aquest lloc web</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index ed2b122..65af798 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Klepněte na Výchozí prohlížeč.</translation> <translation id="2820289420301699633">Váš administrátor může ovládat Chrome a má přístup k jeho datům</translation> <translation id="2830972654601096923">Spravovat adresy...</translation> +<translation id="2834399722155632105">3. Klepněte na Volby hesel.</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Obnovit nastavení Překladače</translation> <translation id="2848086008667475748">Nastavit jako výchozí v Nastavení…</translation> @@ -568,6 +569,7 @@ <translation id="5439599923922718668">Často navštěvované</translation> <translation id="54401264925851789">Informace o zabezpečení stránky</translation> <translation id="5443952882982198570">Platební karty</translation> +<translation id="5444892875087332195">Záložky</translation> <translation id="5457226814769348910">Otevřít offline verzi</translation> <translation id="5489208564673669003">Chcete-li spravovat cookies pro všechny weby, přejděte do <ph name="BEGIN_LINK" />Nastavení souborů cookie<ph name="END_LINK" />.</translation> <translation id="5490005495580364134">Blokovat všechny soubory cookie (nedoporučujeme)</translation> @@ -632,6 +634,7 @@ <translation id="5899314093904173337">Chcete-li obsah sdílet s lidmi z okolí, nechte je naskenovat tento QR kód (pomocí fotoaparátu nebo aplikace na skenování QR kódů)</translation> <translation id="5911030830365207728">Překladač Google</translation> <translation id="5913600720976431809">Možnosti překladu stránky</translation> +<translation id="5933515656458364246">Synchronizujte svá data na všech zařízeních.</translation> <translation id="5938160824633642847">Zařízení je téměř plné. Uvolněte místo a zkuste to znovu.</translation> <translation id="5948291296578561264">Toto umožňuje ukládat fotky do vaší knihovny fotek.</translation> <translation id="5951816930277761335">Sdílejte odkaz.</translation> @@ -713,6 +716,7 @@ Vaše data byla <ph name="TIME" /> zašifrována pomocí heslové fráze pro synchronizaci. Chcete-li zahájit synchronizaci, zadejte ji.</translation> <translation id="6418346271604475326">Příprava souboru PDF</translation> +<translation id="6429213933892582367">Otevřete sekci Volby hesel.</translation> <translation id="6434591244308415567">Došlo k chybě, zkuste to později.</translation> <translation id="6435236283694032571">Přidat do seznamu četby</translation> <translation id="6439338047467462846">Povolit vše</translation> @@ -828,6 +832,7 @@ <translation id="7203585745079012652">Vyslovovat odpovědi</translation> <translation id="7207023858769244910">Proveďte synchronizaci a dostávejte obsah podle svých zájmů.</translation> <translation id="721597782417389033">Neplatná přezdívka karty</translation> +<translation id="7221173315674413369">Novinky a tipy v sekci Novinky</translation> <translation id="722454870747268814">Nová anonymní karta</translation> <translation id="7265758999917665941">Pro tento web nikdy</translation> <translation id="7272437679830969316">Vaši totožnost nelze ověřit. Heslo nebylo zkopírováno.</translation> @@ -861,6 +866,7 @@ <translation id="7514365320538308">Stáhnout</translation> <translation id="7531345132340165516">Aktuální web</translation> <translation id="7537586195939242955">Pass v této chvíli do aplikace Passbook nelze nainstalovat.</translation> +<translation id="7553234618121028547">Tuto funkci vypnete tak, že otevřete <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" /> a přejdete na Volby hesel.</translation> <translation id="7554791636758816595">Nová karta</translation> <translation id="7561196759112975576">Vždy</translation> <translation id="7583004045319035904">Anonymní karty odemknete pomocí <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation> @@ -942,6 +948,7 @@ <translation id="8101409298456377967">Vytváření, ukládání a správa hesel pro snadné přihlašování na weby a do aplikací. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Vypnout</translation> <translation id="8114753159095730575">Je k dispozici soubor ke stažení. Možnosti jsou k dispozici ve spodní části obrazovky.</translation> +<translation id="81313319706244542">2. Klepněte na Hesla.</translation> <translation id="8132598642024322408">Nyní <ph name="PRICE" />, dříve <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Tyto údaje poslouží k vytváření událostí v Kalendáři Apple z Chromu a Google Lens.</translation> <translation id="8156478151976189188">Synchronizace hesel nefunguje</translation> @@ -964,6 +971,7 @@ <translation id="8319076807703933069">Nové vyhledávání</translation> <translation id="8323906514956095947">Přidržením zobrazíte další možnosti karet</translation> <translation id="8328777765163860529">Zavřít vše</translation> +<translation id="8343993175958086504">Zálohujte si data a používejte je na libovolném zařízení.</translation> <translation id="8378714024927312812">Spravováno vaší organizací</translation> <translation id="8386068868580335421">Obnovit</translation> <translation id="8407669440184693619">Pro tento web nebyla nalezena žádná hesla</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cy.xtb b/ios/chrome/app/strings/resources/ios_strings_cy.xtb index 63286ff2..aa8c847 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cy.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Tapiwch Ap Pori Diofyn</translation> <translation id="2820289420301699633">Mae gan eich gweinyddwr reolaeth dros Chrome a gall gael mynediad at ei ddata</translation> <translation id="2830972654601096923">Rheoli Cyfeiriadau...</translation> +<translation id="2834399722155632105">3. Tapiwch Opsiynau Cyfrinair</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Ailosod Gosodiadau Translate</translation> <translation id="2848086008667475748">Gwneud yn Ddiofyn yn y Gosodiadau…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">I rannu â phobl gerllaw, gadewch iddynt sganio'r cod QR hwn gyda'u camera neu ap sganio codau QR</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">Dewisiadau i Gyfieithu'r dudalen</translation> +<translation id="5933515656458364246">Cysoni eich data ar bob dyfais.</translation> <translation id="5938160824633642847">Mae'ch dyfais bron yn llawn. Crëwch ragor o le a rhowch gynnig arall arni.</translation> <translation id="5948291296578561264">Mae hyn yn eich galluogi i gadw lluniau i'ch llyfrgell luniau.</translation> <translation id="5951816930277761335">Rhannu'r Ddolen</translation> @@ -713,6 +715,7 @@ Amgryptiwyd eich data â'ch cyfrinair cysoni <ph name="TIME" />. Rhowch eich cyfrinymadrodd i ddechrau cysoni.</translation> <translation id="6418346271604475326">Wrthi'n paratoi PDF</translation> +<translation id="6429213933892582367">Agorwch Opsiynau Cyfrinair</translation> <translation id="6434591244308415567">Bu gwall. Rhowch gynnig arall arni'n nes ymlaen.</translation> <translation id="6435236283694032571">Ychwanegu at y Rhestr Ddarllen</translation> <translation id="6439338047467462846">Caniatáu Pob Un</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Adrodd Atebion yn Ôl</translation> <translation id="7207023858769244910">Cysonwch i gael cynnwys yn seiliedig ar eich diddordebau.</translation> <translation id="721597782417389033">Llysenw Cerdyn Annilys</translation> +<translation id="7221173315674413369">Archwiliwch nodweddion ac awgrymiadau newydd yn Beth sy'n Newydd</translation> <translation id="722454870747268814">Tab Anhysbys Newydd</translation> <translation id="7265758999917665941">Byth ar gyfer y Wefan hon</translation> <translation id="7272437679830969316">Methu â chadarnhau'ch hunaniaeth. Ni chopïwyd y cyfrinair.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Lawrlwytho</translation> <translation id="7531345132340165516">Gwefan Bresennol</translation> <translation id="7537586195939242955">Mae'n ddrwg gennym, ni ellir gosod y Passbook ar yr adeg hon.</translation> +<translation id="7553234618121028547">I'w ddiffodd, agorwch <ph name="BEGIN_LINK" />Gosodiadau<ph name="END_LINK" /> ac ewch i Opsiynau Cyfrinair.</translation> <translation id="7554791636758816595">Tab Newydd</translation> <translation id="7561196759112975576">Bob tro</translation> <translation id="7583004045319035904">Defnyddiwch <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> i ddatgloi eich tabiau Anhysbys.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Creu, cadw a rheoli eich cyfrineiriau fel y gallwch fewngofnodi'n hawdd i wefannau ac apiau. <ph name="BEGIN_LINK" />Dysgu rhagor<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Diffodd</translation> <translation id="8114753159095730575">Mae lawrlwytho ffeiliau ar gael. Mae dewisiadau ar gael ger gwaelod y sgrîn.</translation> +<translation id="81313319706244542">2. Tapiwch Cyfrineiriau</translation> <translation id="8132598642024322408">Bellach yn <ph name="PRICE" />. Roedd yn <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Bydd hwn yn cael ei ddefnyddio i greu digwyddiadau yn eich Apple Calendar o Chrome a Google Lens.</translation> <translation id="8156478151976189188">Nid yw Cysoni Cyfrineiriau yn Gweithio</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Chwiliad Newydd</translation> <translation id="8323906514956095947">Cyffyrddwch a daliwch i weld rhagor o ddewisiadau tab</translation> <translation id="8328777765163860529">Cau Pob Un</translation> +<translation id="8343993175958086504">Gwneud copïau wrth gefn o'ch pethau a'u defnyddio ar unrhyw ddyfais.</translation> <translation id="8378714024927312812">Rheolir gan eich sefydliad</translation> <translation id="8386068868580335421">Ailosod</translation> <translation id="8407669440184693619">Nid ydym wedi dod o hyd i unrhyw gyfrineiriau ar gyfer y wefan hon</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index 8005509..a141a24 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Tippe auf „Standard-Browser-App“</translation> <translation id="2820289420301699633">Dein Administrator hat die Kontrolle über Chrome und Zugriff auf die Daten</translation> <translation id="2830972654601096923">Adressen verwalten…</translation> +<translation id="2834399722155632105">3. Tippe auf „Passwortoptionen“</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Übersetzungseinstellungen zurücksetzen</translation> <translation id="2848086008667475748">In den Einstellungen als Standardbrowser festlegen…</translation> @@ -572,6 +573,7 @@ <translation id="5489208564673669003">Cookies für alle Websites kannst du in den <ph name="BEGIN_LINK" />Cookie-Einstellungen<ph name="END_LINK" /> verwalten.</translation> <translation id="5490005495580364134">Alle Cookies blockieren (nicht empfohlen)</translation> <translation id="5513681519188741830">Vor <ph name="TIME" /> h</translation> +<translation id="5520466080178053306">Auf „Passwortmanager“ und dann auf „Hinzufügen“ tippen</translation> <translation id="5525095647255982834">Wenn du diesen Tab an ein anderes Gerät senden möchtest, melde dich dort in Chrome an.</translation> <translation id="5525269841082836315">Passphrase erstellen</translation> <translation id="5542540507657872337"><ph name="COUNT" /> gefunden</translation> @@ -631,6 +633,7 @@ <translation id="5899314093904173337">Um diesen Inhalt mit Leuten in deiner Nähe zu teilen, bitte sie, den QR-Code mit ihrer Kamera oder einer entsprechenden App zu scannen.</translation> <translation id="5911030830365207728">Google Übersetzer</translation> <translation id="5913600720976431809">Optionen zum Übersetzen der Seite</translation> +<translation id="5933515656458364246">Du kannst deine Daten auf allen Geräten synchronisieren.</translation> <translation id="5938160824633642847">Der Speicher deines Geräts ist fast voll. Gib Speicherplatz frei und versuche es dann noch einmal.</translation> <translation id="5948291296578561264">Dadurch kannst du Fotos in der Fotogalerie speichern.</translation> <translation id="5951816930277761335">Link teilen</translation> @@ -712,6 +715,7 @@ Deine Daten wurden am <ph name="TIME" /> mit deiner Synchronisierungspassphrase verschlüsselt. Gib diese ein, um die Synchronisierung zu starten.</translation> <translation id="6418346271604475326">PDF wird vorbereitet</translation> +<translation id="6429213933892582367">„Passwortoptionen“ öffnen</translation> <translation id="6434591244308415567">Ein Fehler ist aufgetreten. Bitte versuche es später noch einmal.</translation> <translation id="6435236283694032571">Zur Leseliste hinzufügen</translation> <translation id="6439338047467462846">Alle zulassen</translation> @@ -827,6 +831,7 @@ <translation id="7203585745079012652">Gesprochene Antworten</translation> <translation id="7207023858769244910">Aktiviere die Synchronisierung, um Inhalte zu erhalten, die deinen Interessen entsprechen.</translation> <translation id="721597782417389033">Ungültiger Kartenalias</translation> +<translation id="7221173315674413369">Entdecke unter „Neue Funktionen“ Tipps und neue Funktionen</translation> <translation id="722454870747268814">Neuer Inkognitotab</translation> <translation id="7265758999917665941">Für diese Website niemals</translation> <translation id="7272437679830969316">Deine Identität konnte nicht bestätigt werden. Das Passwort wurde nicht kopiert.</translation> @@ -860,6 +865,7 @@ <translation id="7514365320538308">Herunterladen</translation> <translation id="7531345132340165516">Aktuelle Website</translation> <translation id="7537586195939242955">Dein Pass kann derzeit nicht in Passbook installiert werden.</translation> +<translation id="7553234618121028547">Öffne zum Deaktivieren <ph name="BEGIN_LINK" />Einstellungen<ph name="END_LINK" /> und gehe zu „Passwortoptionen“.</translation> <translation id="7554791636758816595">Neuer Tab</translation> <translation id="7561196759112975576">Immer</translation> <translation id="7583004045319035904">Nutze <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />, um deine Inkognitotabs zu entsperren.</translation> @@ -879,6 +885,7 @@ <translation id="7726702057919861819">„Menü“ → „Verlauf“ → „Browserdaten löschen“</translation> <translation id="7738120385185846461">Problem melden…</translation> <translation id="7741325291586284254">Seite „Neuer Inkognitotab“</translation> +<translation id="7744394900930577716">Passwörter in anderen Apps</translation> <translation id="7756478488453921771">Menü → Einstellungen → Zahlungsmethoden</translation> <translation id="7765158879357617694">Verschieben</translation> <translation id="7772032839648071052">Passphrase bestätigen</translation> @@ -940,6 +947,7 @@ <translation id="8101409298456377967">Du kannst Passwörter erstellen, speichern und verwalten, damit du dich auf Websites und in Apps einfach anmelden kannst. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Deaktivieren</translation> <translation id="8114753159095730575">Dateidownload verfügbar. Optionen stehen unten auf dem Bildschirm zur Verfügung.</translation> +<translation id="81313319706244542">2. Tippe auf „Passwörter“</translation> <translation id="8132598642024322408">Jetzt: <ph name="PRICE" /> – zuvor: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Dadurch kannst du in deinem Apple-Kalender Termine anhand von Inhalten aus Chrome und Google Lens erstellen.</translation> <translation id="8156478151976189188">Die Passwortsynchronisierung funktioniert nicht</translation> @@ -962,6 +970,7 @@ <translation id="8319076807703933069">Neue Suche</translation> <translation id="8323906514956095947">Für weitere Tab-Optionen berühren und halten</translation> <translation id="8328777765163860529">Alle schließen</translation> +<translation id="8343993175958086504">Du kannst deine Inhalte sichern und auf jedem Gerät verwenden.</translation> <translation id="8378714024927312812">Von deiner Organisation verwaltet</translation> <translation id="8386068868580335421">Zurücksetzen</translation> <translation id="8407669440184693619">Keine Passwörter für diese Website gefunden</translation> @@ -1056,6 +1065,7 @@ <translation id="9081058212938299310">Passwort für <ph name="USERNAME" /> aktualisieren?</translation> <translation id="9083838294503912307">Aktiviere die Synchronisierung, um geräteübergreifend zu synchronisieren und zu personalisieren.</translation> <translation id="9087108903408689779">Von Chrome vorgeschlagenes Passwort:</translation> +<translation id="9093271241977565440">Oben auf dem Bildschirm auf das Suchsymbol tippen</translation> <translation id="9094033019050270033">Passwort aktualisieren</translation> <translation id="9097506547406246598">Nicht mehr folgen nicht möglich. Ein Fehler ist aufgetreten.</translation> <translation id="9100610230175265781">Passphrase erforderlich</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb index 6dde1f1..e083997 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Presiona la app de navegador predeterminada.</translation> <translation id="2820289420301699633">Tu administrador controla Chrome y puede acceder a sus datos.</translation> <translation id="2830972654601096923">Administrar direcciones…</translation> +<translation id="2834399722155632105">3. Presiona Opciones de contraseña</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Restablecer</translation> <translation id="2848086008667475748">Establecer como predeterminado en Configuración…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Para habilitar el uso compartido con personas cercanas, permíteles que escaneen este código QR con la cámara o una app de lectura de código QR</translation> <translation id="5911030830365207728">Google Traductor</translation> <translation id="5913600720976431809">Opciones para traducir la página</translation> +<translation id="5933515656458364246">Sincroniza tus datos en todos los dispositivos.</translation> <translation id="5938160824633642847">El dispositivo está casi lleno. Libera espacio y vuelve a intentarlo.</translation> <translation id="5948291296578561264">Esta acción te permite guardar fotos en tu biblioteca de fotos.</translation> <translation id="5951816930277761335">Comparte el vínculo.</translation> @@ -713,6 +715,7 @@ Tus datos se encriptaron con tu frase de contraseña para sincronización el <ph name="TIME" />. Debes ingresarla para iniciar la sincronización.</translation> <translation id="6418346271604475326">Preparando PDF</translation> +<translation id="6429213933892582367">Abre Opciones de contraseña</translation> <translation id="6434591244308415567">Se produjo un error. Vuelve a intentarlo más tarde.</translation> <translation id="6435236283694032571">Agregar a la Lista de lectura</translation> <translation id="6439338047467462846">Permitir todas</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Decir las respuestas</translation> <translation id="7207023858769244910">Activa la sincronización para obtener contenido en función de tus intereses.</translation> <translation id="721597782417389033">El sobrenombre de la tarjeta no es válido</translation> +<translation id="7221173315674413369">Explora nuevas funciones y sugerencias en Novedades</translation> <translation id="722454870747268814">Nueva pestaña de incógnito</translation> <translation id="7265758999917665941">Nunca para este sitio</translation> <translation id="7272437679830969316">No se puede verificar tu identidad. La contraseña no se copió.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Descargar</translation> <translation id="7531345132340165516">Sitio actual</translation> <translation id="7537586195939242955">Tu pase no se puede instalar en Passbook en este momento.</translation> +<translation id="7553234618121028547">Para desactivar esta opción, abre <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" /> y ve a Opciones de contraseña.</translation> <translation id="7554791636758816595">Nueva pestaña</translation> <translation id="7561196759112975576">Siempre</translation> <translation id="7583004045319035904">Desbloquea tus pestañas de incógnito mediante <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Crea, guarda y administra tus contraseñas para acceder fácilmente a sitios y apps. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Desactivar</translation> <translation id="8114753159095730575">El archivo ya se puede descargar. Las opciones disponibles se muestran junto a la parte inferior de la pantalla.</translation> +<translation id="81313319706244542">2. Presiona Contraseñas</translation> <translation id="8132598642024322408">El precio actual es <ph name="PRICE" />; antes costaba <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Se usará para crear eventos en el Calendario de Apple desde Chrome y Google Lens.</translation> <translation id="8156478151976189188">No funciona la Sincronización de contraseñas.</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Nueva búsqueda</translation> <translation id="8323906514956095947">Mantén presionado el botón para ver más opciones de pestañas</translation> <translation id="8328777765163860529">Cerrar todas</translation> +<translation id="8343993175958086504">Crea una copia de seguridad de tus datos y úsalos en cualquier dispositivo.</translation> <translation id="8378714024927312812">Administrado por tu organización</translation> <translation id="8386068868580335421">Restablecer</translation> <translation id="8407669440184693619">No se encontraron contraseñas para este sitio</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index c865940..caaeb778 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Toca Aplicación de navegador predeterminada.</translation> <translation id="2820289420301699633">Tu administrador controla Chrome y puede acceder a sus datos</translation> <translation id="2830972654601096923">Gestionar tus direcciones...</translation> +<translation id="2834399722155632105">3. Toca Opciones de las contraseñas</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" /> (<ph name="URL" />)</translation> <translation id="2843803966603263712">Restablecer ajustes trad.</translation> <translation id="2848086008667475748">Establecer como predeterminado en Ajustes…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Para compartir con personas que estén cerca de ti, pídeles que escaneen este código QR con su aplicación de cámara o de escáner de códigos QR</translation> <translation id="5911030830365207728">Traductor de Google</translation> <translation id="5913600720976431809">Opciones para traducir la página</translation> +<translation id="5933515656458364246">Sincroniza tus datos en todos los dispositivos.</translation> <translation id="5938160824633642847">Tu dispositivo está casi lleno. Libera espacio y vuelve a intentarlo.</translation> <translation id="5948291296578561264">Esta acción te permite guardar fotos en tu biblioteca.</translation> <translation id="5951816930277761335">Comparte el enlace</translation> @@ -713,6 +715,7 @@ Tus datos se cifraron con tu frase de contraseña de sincronización el <ph name="TIME" />. Introdúcela para iniciar la sincronización.</translation> <translation id="6418346271604475326">Preparando PDF</translation> +<translation id="6429213933892582367">Abre Opciones de las contraseñas</translation> <translation id="6434591244308415567">Se ha producido un error. Vuelve a intentarlo más tarde.</translation> <translation id="6435236283694032571">Añadir a lista de lectura</translation> <translation id="6439338047467462846">Permitir todas</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Decir las respuestas</translation> <translation id="7207023858769244910">Habilita la sincronización para ver contenido basado en tus intereses.</translation> <translation id="721597782417389033">Nombre de la tarjeta no válido</translation> +<translation id="7221173315674413369">Descubre nuevas funciones y consejos en Novedades</translation> <translation id="722454870747268814">Nueva pestaña de Incógnito</translation> <translation id="7265758999917665941">Jamás para este sitio web</translation> <translation id="7272437679830969316">No se puede verificar tu identidad. No se ha copiado la contraseña.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Descargar</translation> <translation id="7531345132340165516">Sitio actual</translation> <translation id="7537586195939242955">No se puede instalar tu tarjeta en Passbook en este momento.</translation> +<translation id="7553234618121028547">Para desactivar esta función, abre <ph name="BEGIN_LINK" />Ajustes<ph name="END_LINK" /> y ve a Opciones de las contraseñas.</translation> <translation id="7554791636758816595">Nueva pestaña</translation> <translation id="7561196759112975576">Siempre</translation> <translation id="7583004045319035904">Usa <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> para desbloquear tus pestañas de incógnito.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Crea, guarda y gestiona tus contraseñas para iniciar sesión fácilmente en sitios y aplicaciones. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Desactivar</translation> <translation id="8114753159095730575">La descarga de archivos está disponible. Hay opciones disponibles en la parte inferior de la pantalla.</translation> +<translation id="81313319706244542">2. Toca Contraseñas</translation> <translation id="8132598642024322408">Ahora por <ph name="PRICE" />. Antes por <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Se usará para crear eventos en tu calendario de Apple a partir de contenido de Chrome y Google Lens.</translation> <translation id="8156478151976189188">Sincronización de contraseñas no funciona</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Nueva búsqueda</translation> <translation id="8323906514956095947">Mantén pulsado el botón para ver más opciones de pestañas</translation> <translation id="8328777765163860529">Cerrar todo</translation> +<translation id="8343993175958086504">Crea una copia de seguridad de tus cosas y úsala en cualquier dispositivo.</translation> <translation id="8378714024927312812">Gestionado por tu organización</translation> <translation id="8386068868580335421">Restablecer</translation> <translation id="8407669440184693619">No se han encontrado contraseñas para este sitio web</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index 4492432..e06cbc5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Puudutage valikut Vaikebrauserirakendus.</translation> <translation id="2820289420301699633">Teie administraator saab Chrome'i hallata ja selle andmetele juurde pääseda</translation> <translation id="2830972654601096923">Halda aadresse …</translation> +<translation id="2834399722155632105">3. Puudutage valikut Paroolivalikud.</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Tõlkimisseadete lähtestamine</translation> <translation id="2848086008667475748">Muuda seadetes vaikevalikuks …</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Läheduses asuvate inimestega jagamiseks paluge neil kaamera või QR-skannerirakendusega skannida see QR-kood</translation> <translation id="5911030830365207728">Google'i tõlge</translation> <translation id="5913600720976431809">Lehe tõlkimise võimalused</translation> +<translation id="5933515656458364246">Sünkroonige oma andmed kõigis seadmetes.</translation> <translation id="5938160824633642847">Seade on peaaegu täis. Vabastage ruumi ja proovige uuesti.</translation> <translation id="5948291296578561264">See võimaldab teil salvestada fotod fotokogusse.</translation> <translation id="5951816930277761335">Lingi jagamine</translation> @@ -713,6 +715,7 @@ Teie andmed krüpteeriti <ph name="TIME" /> teie sünkroonimisparooliga. Sisestage see sünkroonimise alustamiseks.</translation> <translation id="6418346271604475326">PDF-i ettevalm.</translation> +<translation id="6429213933892582367">Avage jaotis Paroolivalikud.</translation> <translation id="6434591244308415567">Ilmnes viga. Proovige hiljem uuesti.</translation> <translation id="6435236283694032571">Lugemisloendisse lisamine</translation> <translation id="6439338047467462846">Luba kõik</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Vastuste esitamine</translation> <translation id="7207023858769244910">Sünkroonige, et saada oma huvidel põhinevat sisu.</translation> <translation id="721597782417389033">Kaardi sobimatu hüüdnimi</translation> +<translation id="7221173315674413369">Jaotises „Mis on uut?“ näete uusi funktsioone ja nõuandeid</translation> <translation id="722454870747268814">Uus inkognito vaheleht</translation> <translation id="7265758999917665941">Selle saidi puhul mitte kunagi</translation> <translation id="7272437679830969316">Teie isikut ei õnnestu tuvastada. Parooli ei kopeeritud.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Laadi alla</translation> <translation id="7531345132340165516">Praegune sait</translation> <translation id="7537586195939242955">Kahjuks ei saa teie Passi praegu Passbooki installida.</translation> +<translation id="7553234618121028547">Väljalülitamiseks avage jaotis <ph name="BEGIN_LINK" />Seaded<ph name="END_LINK" /> ja tehke valik Paroolivalikud.</translation> <translation id="7554791636758816595">Uus vaheleht</translation> <translation id="7561196759112975576">Alati</translation> <translation id="7583004045319035904">Kasutage oma inkognito vahelehtede avamiseks meetodit <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Looge, salvestage ja hallake oma paroole, et saaksite hõlpsalt saitidele ja rakendustesse sisse logida. <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Lülita välja</translation> <translation id="8114753159095730575">Allalaaditav fail on saadaval. Valikud kuvatakse ekraani alaosas.</translation> +<translation id="81313319706244542">2. Puudutage valikut Paroolid.</translation> <translation id="8132598642024322408">Nüüd on <ph name="PRICE" />, enne oli <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Seda kasutatakse Chrome'i ja Google Lensi kaudu teie Apple'i rakenduses Calendar sündmuste loomiseks.</translation> <translation id="8156478151976189188">Paroolide sünkroonimine ei tööta</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Uus otsing</translation> <translation id="8323906514956095947">Vahelehtede lisavalikute nägemiseks puudutage ja hoidke</translation> <translation id="8328777765163860529">Sule kõik</translation> +<translation id="8343993175958086504">Varundage oma sisu ja kasutage seda mis tahes seadmes.</translation> <translation id="8378714024927312812">Haldab teie organisatsioon</translation> <translation id="8386068868580335421">Lähtesta</translation> <translation id="8407669440184693619">Selle saidi jaoks ei leitud paroole</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_eu.xtb b/ios/chrome/app/strings/resources/ios_strings_eu.xtb index 610fde81..682280e 100644 --- a/ios/chrome/app/strings/resources/ios_strings_eu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_eu.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Sakatu Arakatzaile lehenetsia</translation> <translation id="2820289420301699633">Administratzaileak Chrome kontrolatu, eta bertako datuak atzitu ahal izango ditu</translation> <translation id="2830972654601096923">Kudeatu helbideak…</translation> +<translation id="2834399722155632105">3. Sakatu Password Options (pasahitzen aukerak).</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Berrezarri Translate ezarpenak</translation> <translation id="2848086008667475748">Ezarri aukera lehenetsi gisa Ezarpenak atalean…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Ingurukoekin partekatu nahi izanez gero, eska iezaiezu QR kode hau eskaneatzeko kamera edo QR kodeak eskaneatzeko aplikazio baten bidez</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">Orria itzultzeko aukerak</translation> +<translation id="5933515656458364246">Sinkronizatu datuak gailu guztietan.</translation> <translation id="5938160824633642847">Gailua ia beteta dago. Egin toki pixka bat eta saiatu berriro.</translation> <translation id="5948291296578561264">Honekin, argazkien liburutegian gorde ahalko dituzu argazkiak.</translation> <translation id="5951816930277761335">Partekatu esteka</translation> @@ -713,6 +715,7 @@ Sinkronizatzeko pasaesaldiaren bidez enkriptatu dira datuak (<ph name="TIME" />). Idatz ezazu sinkronizatzen hasteko.</translation> <translation id="6418346271604475326">Prestatzen</translation> +<translation id="6429213933892582367">Ireki Password Options (pasahitzen aukerak).</translation> <translation id="6434591244308415567">Errore bat gertatu da. Saiatu berriro geroago.</translation> <translation id="6435236283694032571">Gehitu irakurketa-zerrendan</translation> <translation id="6439338047467462846">Eman baimena guztiei</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Erantzun ahots bidez</translation> <translation id="7207023858769244910">Interesetan oinarritutako edukia lortzeko, sinkronizatu.</translation> <translation id="721597782417389033">Txartelaren goitizenak ez du balio</translation> +<translation id="7221173315674413369">Arakatu eginbide berriak eta aholkuak Berritasunak atalean</translation> <translation id="722454870747268814">Ezkutuko moduko fitxa berria</translation> <translation id="7265758999917665941">Inoiz ez webgune honetan</translation> <translation id="7272437679830969316">Ezin da egiaztatu identitatea. Ez da kopiatu pasahitza.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Deskargatu</translation> <translation id="7531345132340165516">Oraingo webgunea</translation> <translation id="7537586195939242955">Dokumentua ezin izan da instalatu Passbook-en.</translation> +<translation id="7553234618121028547">Pasahitzen eremuak automatikoki betetzeko aukera desaktibatzeko, ireki <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> (ezarpenak) eta joan Password Options (pasahitzen aukerak) atalera.</translation> <translation id="7554791636758816595">Fitxa berria</translation> <translation id="7561196759112975576">Beti</translation> <translation id="7583004045319035904">Erabili <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ezkutuko moduko fitxak desblokeatzeko.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Sortu, gorde eta kudeatu pasahitzak, webgune eta aplikazioetan erraz hasteko saioa. <ph name="BEGIN_LINK" />Lortu informazio gehiago<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Desaktibatu</translation> <translation id="8114753159095730575">Fitxategi bat deskargatzeko prest dago. Pantailaren behealdean agertzen dira horretarako aukerak.</translation> +<translation id="81313319706244542">2. Sakatu Passwords (pasahitzak).</translation> <translation id="8132598642024322408">Orain: <ph name="PRICE" /> (aurreko prezioa: <ph name="PREVIOUS_PRICE" />)</translation> <translation id="8136856065410661948">Chrome-ren eta Google Lens-en bidez Apple Calendar-en gertaerak sortzeko erabiliko da hau.</translation> <translation id="8156478151976189188">Pasahitzen sinkronizazioa ez dabil</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Bilaketa berria</translation> <translation id="8323906514956095947">Eduki sakatuta fitxetako aukera gehiago ikusteko</translation> <translation id="8328777765163860529">Itxi guztiak</translation> +<translation id="8343993175958086504">Egin zure gauzen babeskopiak, edozein gailutan erabil ditzazun.</translation> <translation id="8378714024927312812">Erakundeak kudeatzen du</translation> <translation id="8386068868580335421">Berrezarri</translation> <translation id="8407669440184693619">Ez da aurkitu webgune honen pasahitzik</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index 4e983ef6..1cdc7bc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Valitse Oletusselain</translation> <translation id="2820289420301699633">Järjestelmänvalvoja hallitsee Chromea ja pääsee sen dataan</translation> <translation id="2830972654601096923">Määritä osoitteet…</translation> +<translation id="2834399722155632105">3. Valitse Salasana-asetukset</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Nollaa käännösasetukset</translation> <translation id="2848086008667475748">Muuta oletusselaimeksi asetuksissa…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Jaa lähellä oleville ihmisille antamalla tämä QR-koodi, jonka he voivat skannata kameralla tai QR-skannaussovelluksella</translation> <translation id="5911030830365207728">Google Kääntäjä</translation> <translation id="5913600720976431809">Sivun käännösvalinnat</translation> +<translation id="5933515656458364246">Synkronoi datasi kaikilla laitteilla.</translation> <translation id="5938160824633642847">Laite on lähes täynnä. Vapauta tilaa ja yritä uudelleen.</translation> <translation id="5948291296578561264">Tämän avulla voit tallentaa kuvia kuvakirjastoon.</translation> <translation id="5951816930277761335">Jaa linkki</translation> @@ -713,6 +715,7 @@ Tietosi salattiin tunnuslauseesi avulla <ph name="TIME" />. Aloita synkronointi antamalla tunnuslause.</translation> <translation id="6418346271604475326">Valmistellaan</translation> +<translation id="6429213933892582367">Avaa Salasana-asetukset</translation> <translation id="6434591244308415567">Tapahtui virhe, yritä myöhemmin uudelleen.</translation> <translation id="6435236283694032571">Lisää lukulistalle</translation> <translation id="6439338047467462846">Salli kaikki</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Puhu vastaukset</translation> <translation id="7207023858769244910">Synkronoimalla näet kiinnostuksen kohteidesi mukaista sisältöä.</translation> <translation id="721597782417389033">Virheellinen kortin lyhytnimi</translation> +<translation id="7221173315674413369">Tutustu uusiin ominaisuuksiin ja vinkkeihin Uutta-ominaisuudessa</translation> <translation id="722454870747268814">Uusi incognito-välilehti</translation> <translation id="7265758999917665941">Ei koskaan tälle sivustolle</translation> <translation id="7272437679830969316">Henkilöllisyytesi vahvistaminen ei onnistunut. Salasanaa ei kopioitu.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Lataa</translation> <translation id="7531345132340165516">Nykyinen sivusto</translation> <translation id="7537586195939242955">Passiasi ei voi asentaa Passbookiin tällä hetkellä.</translation> +<translation id="7553234618121028547">Jos haluat laittaa ominaisuuden pois päältä, avaa <ph name="BEGIN_LINK" />Asetukset<ph name="END_LINK" /> ja sitten Salasana-asetukset.</translation> <translation id="7554791636758816595">Uusi välilehti</translation> <translation id="7561196759112975576">Aina</translation> <translation id="7583004045319035904">Valitse <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> incognito-välilehtien lukituksen avaamiseen.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Luo, tallenna ja ylläpidä salasanoja, jotta voit kirjautua helposti sivustoille ja sovelluksiin <ph name="BEGIN_LINK" />Lue lisää<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Poista käytöstä</translation> <translation id="8114753159095730575">Ladattava tiedosto on saatavilla. Ruudun alaosassa on käytettävissä valintoja.</translation> +<translation id="81313319706244542">2. Valitse Salasanat.</translation> <translation id="8132598642024322408">Hinta nyt <ph name="PRICE" />, ennen <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Käytetään Apple-kalenterin tapahtumien luomiseen Chromesta ja Google Lensistä.</translation> <translation id="8156478151976189188">Salasanojen synkronointi ei toimi</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Uusi haku</translation> <translation id="8323906514956095947">Katso lisää välilehtiasetuksia painamalla pitkään</translation> <translation id="8328777765163860529">Sulje kaikki</translation> +<translation id="8343993175958086504">Varmuuskopioi sisältösi ja käytä sitä millä tahansa laitteella.</translation> <translation id="8378714024927312812">Organisaatiosi ylläpitämä</translation> <translation id="8386068868580335421">Nollaa</translation> <translation id="8407669440184693619">Tälle sivustolle ei löytynyt salasanoja</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb index a328b9a..6e1e8fc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Appuyez sur "Navigateur par défaut"</translation> <translation id="2820289420301699633">Votre administrateur contrôle Chrome et peut accéder à ses données</translation> <translation id="2830972654601096923">Gérer les adresses…</translation> +<translation id="2834399722155632105">3. Appuyez sur "Options de mots de passe"</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Réinitialiser paramètres Traduction</translation> <translation id="2848086008667475748">Configurer par défaut dans les réglages…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Pour partager un contenu avec des personnes à proximité, laissez-les scanner ce code QR avec leur appareil photo ou leur application de lecture de codes QR</translation> <translation id="5911030830365207728">Google Traduction</translation> <translation id="5913600720976431809">Options de traduction de la page</translation> +<translation id="5933515656458364246">Synchronisez vos données sur tous les appareils.</translation> <translation id="5938160824633642847">Votre appareil est presque saturé. Libérez de l'espace et réessayez.</translation> <translation id="5948291296578561264">Cela vous permet d'enregistrer des photos dans votre bibliothèque.</translation> <translation id="5951816930277761335">Partagez le lien</translation> @@ -713,6 +715,7 @@ Vos données ont été chiffrées avec votre phrase secrète de synchronisation le <ph name="TIME" />. Saisissez-la pour lancer la synchronisation.</translation> <translation id="6418346271604475326">PDF en prépa.</translation> +<translation id="6429213933892582367">Ouvrez "Options de mots de passe"</translation> <translation id="6434591244308415567">Une erreur s'est produite. Réessayez plus tard.</translation> <translation id="6435236283694032571">Ajouter à la liste de lecture</translation> <translation id="6439338047467462846">Tout autoriser</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Énoncer les réponses</translation> <translation id="7207023858769244910">Activez la synchronisation pour bénéficier de contenus correspondant à vos centres d'intérêt.</translation> <translation id="721597782417389033">Pseudo incorrect associé à la carte</translation> +<translation id="7221173315674413369">Découvrez de nouvelles fonctionnalités et des astuces dans "Nouveautés"</translation> <translation id="722454870747268814">Nouvel onglet de navigation privée </translation> <translation id="7265758999917665941">Jamais pour ce site</translation> @@ -862,6 +866,7 @@ <translation id="7514365320538308">Télécharger</translation> <translation id="7531345132340165516">Site actuel</translation> <translation id="7537586195939242955">Impossible d'installer votre Pass dans Passbook actuellement.</translation> +<translation id="7553234618121028547">Pour désactiver, ouvrez <ph name="BEGIN_LINK" />Réglages<ph name="END_LINK" />, puis accédez à "Options de mots de passe".</translation> <translation id="7554791636758816595">Nouvel onglet</translation> <translation id="7561196759112975576">Toujours</translation> <translation id="7583004045319035904">Utilisez "<ph name="BIOMETRIC_AUTHENITCATION_TYPE" />" pour déverrouiller vos onglets de navigation privée.</translation> @@ -943,6 +948,7 @@ <translation id="8101409298456377967">Créez, enregistrez et gérez vos mots de passe pour vous connecter facilement à des sites et à des applis. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Désactiver</translation> <translation id="8114753159095730575">Vous pouvez télécharger des fichiers. Différentes options sont disponibles au bas de l'écran.</translation> +<translation id="81313319706244542">2. Appuyez sur "Mots de passe"</translation> <translation id="8132598642024322408"><ph name="PRICE" /> (précédemment à <ph name="PREVIOUS_PRICE" />).</translation> <translation id="8136856065410661948">Cela permettra de créer des événements dans votre calendrier Apple à partir de Chrome et de Google Lens.</translation> <translation id="8156478151976189188">Password Sync ne fonctionne pas</translation> @@ -965,6 +971,7 @@ <translation id="8319076807703933069">Nouvelle recherche</translation> <translation id="8323906514956095947">Appuyez de manière prolongée pour afficher plus d'options d'onglets</translation> <translation id="8328777765163860529">Tout fermer</translation> +<translation id="8343993175958086504">Sauvegardez vos données et utilisez-les sur n'importe quel appareil.</translation> <translation id="8378714024927312812">Géré par votre organisation</translation> <translation id="8386068868580335421">Réinitialiser</translation> <translation id="8407669440184693619">Aucun mot de passe trouvé pour ce site</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index 6bac360..a04f53d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Toca Aplicación de navegador predeterminada</translation> <translation id="2820289420301699633">O teu administrador controla Chrome e pode acceder aos datos asociados</translation> <translation id="2830972654601096923">Xestionar enderezos…</translation> +<translation id="2834399722155632105">3. Toca Password Options (Opcións de contrasinais)</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Rest conf trad</translation> <translation id="2848086008667475748">Definir como aplicación predeterminada na configuración</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Para compartir contido coas persoas que estean preto, deixa que escaneen este código QR coa cámara ou coa aplicación de escáner de QR</translation> <translation id="5911030830365207728">Tradutor de Google</translation> <translation id="5913600720976431809">Opcións para traducir a páxina</translation> +<translation id="5933515656458364246">Sincroniza os teus datos en todos os dispositivos.</translation> <translation id="5938160824633642847">O teu dispositivo case está cheo. Libera espazo e téntao de novo.</translation> <translation id="5948291296578561264">Permíteche gardar fotos na túa fototeca.</translation> <translation id="5951816930277761335">Comparte a ligazón</translation> @@ -713,6 +715,7 @@ Os teus datos encriptáronse co teu contrasinal de sincronización o <ph name="TIME" />. Introdúceo para comezar a sincronización.</translation> <translation id="6418346271604475326">Preparando PDF</translation> +<translation id="6429213933892582367">Abre Password Options (Opcións de contrasinais)</translation> <translation id="6434591244308415567">Produciuse un erro. Téntao de novo máis tarde.</translation> <translation id="6435236283694032571">Engadir á lista de lectura</translation> <translation id="6439338047467462846">Permitir todas</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Dicir as respostas</translation> <translation id="7207023858769244910">Activa a sincronización para obter contido baseado nos teus intereses.</translation> <translation id="721597782417389033">O alcume da tarxeta non é válido</translation> +<translation id="7221173315674413369">Explora funcións e consellos na páxina Novidades</translation> <translation id="722454870747268814">Nova pestana do modo de incógnito</translation> <translation id="7265758999917665941">Nunca neste sitio</translation> <translation id="7272437679830969316">Non se pode verificar a túa identidade, polo que non se copiou o contrasinal.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Descargar</translation> <translation id="7531345132340165516">Sitio actual</translation> <translation id="7537586195939242955">Non se pode instalar o teu pase en Passbook neste momento.</translation> +<translation id="7553234618121028547">Para desactivar esta función, abre <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> (Configuración) e vai a Password Options (Opcións de contrasinais).</translation> <translation id="7554791636758816595">Nova pestana</translation> <translation id="7561196759112975576">Sempre</translation> <translation id="7583004045319035904">Utiliza <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> para desbloquear as pestanas do modo de incógnito.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Crea, garda e xestiona os teus contrasinais para que poidas iniciar sesión facilmente nos sitios e nas aplicacións. <ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Desactivar</translation> <translation id="8114753159095730575">Podes descargar ficheiros. Tes opcións dispoñibles na parte inferior da pantalla.</translation> +<translation id="81313319706244542">2. Toca Passwords (Contrasinais)</translation> <translation id="8132598642024322408">Agora: <ph name="PRICE" />. Antes: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Usarase para crear eventos no teu calendario de Apple desde Chrome e Google Lens.</translation> <translation id="8156478151976189188">A sincronización de contrasinais non funciona</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Nova busca</translation> <translation id="8323906514956095947">Mantén premido o botón para ver máis opcións da pestana</translation> <translation id="8328777765163860529">Pechar todo</translation> +<translation id="8343993175958086504">Fai unha copia de seguranza dos teus datos e úsaos en calquera dispositivo.</translation> <translation id="8378714024927312812">Xestionado pola túa organización</translation> <translation id="8386068868580335421">Restablecer</translation> <translation id="8407669440184693619">Non se atopou ningún contrasinal para este sitio</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index 81d4def70..b69cd028 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. ડિફૉલ્ટ બ્રાઉઝર ઍપ પર ટૅપ કરો</translation> <translation id="2820289420301699633">તમારા વ્યવસ્થાપક Chrome પર નિયંત્રણ ધરાવે છે અને તેનો ડેટા ઍક્સેસ કરી શકે છે</translation> <translation id="2830972654601096923">સરનામા મેનેજ કરો…</translation> +<translation id="2834399722155632105">3. પાસવર્ડના વિકલ્પો પર ટૅપ કરો</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">અનુવાદ સેટિંગને રીસેટ કરો</translation> <translation id="2848086008667475748">સેટિંગમાં ડિફૉલ્ટ બનાવો…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">નજીકના લોકો સાથે શેર કરવા માટે, તેમને તેમના કૅમેરા અથવા QR સ્કૅનર ઍપ વડે આ QR કોડ તપાસવા દો</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">પેજનો અનુવાદ કરવા માટેના વિકલ્પો</translation> +<translation id="5933515656458364246">બધા ડિવાઇસ પર તમારો ડેટા સિંક કરો.</translation> <translation id="5938160824633642847">તમારું ઉપકરણ લગભગ ભરાઈ ગયું છે. સ્પેસ બનાવો અને ફરી પ્રયાસ કરો.</translation> <translation id="5948291296578561264">આ તમને તમારી ફોટો લાઇબ્રેરીમાં ફોટો સાચવવા દે છે.</translation> <translation id="5951816930277761335">લિંક શેર કરો</translation> @@ -713,6 +715,7 @@ તમારો ડેટા <ph name="TIME" />ના રોજ તમારા સિંક પાસફ્રેઝ સાથે એન્ક્રિપ્ટ કરવામાં આવ્યો હતો. સિંક શરૂ કરવા માટે એ દાખલ કરો.</translation> <translation id="6418346271604475326">PDF તૈયાર કરી રહ્યાં છે</translation> +<translation id="6429213933892582367">પાસવર્ડના વિકલ્પો ખોલો</translation> <translation id="6434591244308415567">એક ભૂલ આવી છે. થોડા સમય પછી ફરી પ્રયાસ કરો.</translation> <translation id="6435236283694032571">વાંચન સૂચિમાં ઉમેરો</translation> <translation id="6439338047467462846">બધાને મંજૂરી આપો</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">જવાબો પાછા બોલો</translation> <translation id="7207023858769244910">તમારી રુચિઓના આધારે કન્ટેન્ટ મેળવવા માટે સિંક કરો.</translation> <translation id="721597782417389033">કાર્ડનું અમાન્ય ઉપનામ</translation> +<translation id="7221173315674413369">"નવું શું છે" સુવિધામાં નવી સુવિધાઓ અને ટિપ વિશે જાણો</translation> <translation id="722454870747268814">નવું છૂપું ટૅબ</translation> <translation id="7265758999917665941">આ સાઇટ માટે ક્યારેય નહીં</translation> <translation id="7272437679830969316">તમારી ઓળખની ચકાસણી કરી શકાતી નથી. પાસવર્ડ કૉપિ કરેલો નથી.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">ડાઉનલોડ કરો</translation> <translation id="7531345132340165516">વર્તમાન સાઇટ</translation> <translation id="7537586195939242955">માફ કરશો, તમારો પાસ આ સમયે પાસબુક પર ઇન્સ્ટોલ કરી શકાતો નથી.</translation> +<translation id="7553234618121028547">બંધ કરવા માટે, <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> ખોલો અને પાસવર્ડ સંબંધિત વિકલ્પો પર જાઓ.</translation> <translation id="7554791636758816595">નવું ટૅબ</translation> <translation id="7561196759112975576">હંમેશાં</translation> <translation id="7583004045319035904">તમારી છૂપી ટૅબને અનલૉક કરવા માટે <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />નો ઉપયોગ કરો.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">તમારા પાસવર્ડ બનાવો, સાચવો અને મેનેજ કરો, જેથી તમે સાઇટ અને ઍપમાં સરળતાથી સાઇન ઇન કરી શકો. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation> <translation id="8105368624971345109">બંધ કરો</translation> <translation id="8114753159095730575">ફાઇલ ડાઉનલોડ માટે ઉપલબ્ધ છે. સ્ક્રીનના તળિયે વિકલ્પો ઉપલબ્ધ છે.</translation> +<translation id="81313319706244542">2. પાસવર્ડ પર ટૅપ કરો</translation> <translation id="8132598642024322408">હવે <ph name="PRICE" /> છે, પહેલાં <ph name="PREVIOUS_PRICE" /> હતી.</translation> <translation id="8136856065410661948">Chrome અને Google Lensમાંથી તમારા Apple Calendarમાં ઇવેન્ટ બનાવવા માટે, આનો ઉપયોગ કરવામાં આવશે.</translation> <translation id="8156478151976189188">પાસવર્ડ સિંક કાર્ય કરતું નથી</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">નવી શોધ</translation> <translation id="8323906514956095947">ટૅબના વધુ વિકલ્પો માટે, ટચ કરીને થોડીવાર દબાવી રાખો</translation> <translation id="8328777765163860529">બધું બંધ કરો</translation> +<translation id="8343993175958086504">તમારી સામગ્રીનું બૅકઅપ લો અને કોઈપણ ડિવાઇસ પર તેનો ઉપયોગ કરો.</translation> <translation id="8378714024927312812">તમારી સંસ્થા દ્વારા મેનેજ કરેલ</translation> <translation id="8386068868580335421">રીસેટ કરો</translation> <translation id="8407669440184693619">આ સાઇટ માટે કોઈ પાસવર્ડ મળ્યાં નથી</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index 6bad7943..47967fa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Default Browser App पर टैप करें</translation> <translation id="2820289420301699633">Chrome को आपका एडमिन कंट्रोल करता है और इसका डेटा ऐक्सेस कर सकता है</translation> <translation id="2830972654601096923">पते प्रबंधित करें...</translation> +<translation id="2834399722155632105">3. Password Options पर टैप करें</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">अनुवाद सेटिंग रीसेट करें</translation> <translation id="2848086008667475748">सेटिंग में जाकर, इसे डिफ़ॉल्ट ब्राउज़र के रूप में सेट करें…</translation> @@ -631,6 +632,7 @@ <translation id="5899314093904173337">आस-पास के लोगों के साथ शेयर करने के लिए, उन्हें कैमरे या क्यूआर स्कैन करने वाले ऐप्लिकेशन से इस क्यूआर कोड को स्कैन करने दें</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">पेज का अनुवाद करने के विकल्प</translation> +<translation id="5933515656458364246">सभी डिवाइसों पर अपना डेटा सिंक करें.</translation> <translation id="5938160824633642847">आपके डिवाइस की करीब पूरी जगह भर गई है. जगह खाली करके दोबारा आज़माएं.</translation> <translation id="5948291296578561264">इससे फ़ोटो आपकी फ़ोटो लाइब्रेरी में सेव कर लिए जाते हैं.</translation> <translation id="5951816930277761335">लिंक शेयर करें</translation> @@ -712,6 +714,7 @@ आपका डेटा आपके सिंक पासफ़्रेज़ के साथ <ph name="TIME" /> पर सुरक्षित किया गया था. सिंक शुरू करने के लिए यह डालें.</translation> <translation id="6418346271604475326">PDF तैयार हो रहा है</translation> +<translation id="6429213933892582367">Password Options को खोलें</translation> <translation id="6434591244308415567">कोई गड़बड़ी हुई. बाद में फिर कोशिश करें.</translation> <translation id="6435236283694032571">रीडिंग लिस्ट में जोड़ें</translation> <translation id="6439338047467462846">सभी को अनुमति दें</translation> @@ -827,6 +830,7 @@ <translation id="7203585745079012652">उत्तर फिर से बोलें</translation> <translation id="7207023858769244910">अपनी पसंद के हिसाब से कॉन्टेंट पाने के लिए सिंक करें.</translation> <translation id="721597782417389033">कार्ड का प्रचलित नाम अमान्य है</translation> +<translation id="7221173315674413369">'नया क्या है' में नई सुविधाओं के बारे में जानें और सलाह पाएं</translation> <translation id="722454870747268814">नया गुप्त टैब</translation> <translation id="7265758999917665941">इस साइट के लिए कभी नहीं</translation> <translation id="7272437679830969316">आपकी पहचान की पुष्टि नहीं हो पा रही है. पासवर्ड कॉपी नहीं हुआ.</translation> @@ -860,6 +864,7 @@ <translation id="7514365320538308">डाउनलोड करें</translation> <translation id="7531345132340165516">मौजूदा साइट</translation> <translation id="7537586195939242955">क्षमा करें, इस समय पासबुक में पास इंस्टॉल नहीं किया जा सकता.</translation> +<translation id="7553234618121028547">बंद करने के लिए, <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> खोलें और Password Options पर जाएं.</translation> <translation id="7554791636758816595">नया टैब</translation> <translation id="7561196759112975576">हमेशा</translation> <translation id="7583004045319035904">अपने गुप्त टैब को <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> से अनलॉक करें.</translation> @@ -940,6 +945,7 @@ <translation id="8101409298456377967">ऐप्लिकेशन और साइटों में आसानी से साइन इन करने के लिए पासवर्ड बनाएं, उन्हें सेव करें, और मैनेज करें. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation> <translation id="8105368624971345109">बंद करें</translation> <translation id="8114753159095730575">फ़ाइल डाउनलोड करने की सुविधा उपलब्ध है. विकल्प स्क्रीन के नीचे उपलब्ध हैं.</translation> +<translation id="81313319706244542">2. Passwords पर टैप करें.</translation> <translation id="8132598642024322408">अब <ph name="PRICE" /> में, पहले कीमत <ph name="PREVIOUS_PRICE" /> थी.</translation> <translation id="8136856065410661948">Chrome और Google Lens में मौजूद इवेंट को आपके Apple Calendar में जोड़ने के लिए, इसका इस्तेमाल किया जाएगा.</translation> <translation id="8156478151976189188">पासवर्ड को सिंक करने की सुविधा काम नहीं कर रही</translation> @@ -962,6 +968,7 @@ <translation id="8319076807703933069">नई खोज</translation> <translation id="8323906514956095947">ज़्यादा टैब विकल्पों के लिए दबाकर रखें</translation> <translation id="8328777765163860529">सभी बंद करें</translation> +<translation id="8343993175958086504">अपने डेटा का बैक अप लें और इसे किसी भी डिवाइस पर इस्तेमाल करें</translation> <translation id="8378714024927312812">आपके संगठन की ओर से प्रबंधित</translation> <translation id="8386068868580335421">रीसेट करें</translation> <translation id="8407669440184693619">इस साइट के लिए कोई पासवर्ड नहीं मिला</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index 46aad35e..d77ec9f3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Skeniranje QR koda</translation> <translation id="1552525382687785070">Administrator je onemogućio sinkronizaciju</translation> <translation id="1554477036522844996">Novi prozor</translation> +<translation id="1565371473877914088">Nova anonimna kartica</translation> <translation id="1580715474678097352">Zaštitite se od opasnih web-lokacija</translation> <translation id="1580783302095112590">Poruka je poslana.</translation> <translation id="1582732959743469162">Time će se zaustaviti trenutačno preuzimanje i izbrisati sve što je dosad preuzeto.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Mobilni uređaj</translation> <translation id="1989112275319619282">Pregledaj</translation> <translation id="199425419756152024">Prikaži zaporku</translation> +<translation id="2010008505735295285">Ponovno učitaj</translation> <translation id="2015722694326466240">Da biste vidjeli zaporke, najprije morate postaviti šifru zaporke na uređaju.</translation> <translation id="2021670401941426298">Potražite upute za svoju tražilicu da biste saznali kako izbrisati svoju povijest pretraživanja, ako je primjenjivo.</translation> <translation id="202292859882676807">Dopušten je pristup mikrofonu</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Odustani</translation> <translation id="3277021493514034324">Adresa web-lokacije kopirana</translation> <translation id="3285962946108803577">Dijeli stranicu...</translation> +<translation id="3289505634533552500">Glasovno pretraživanje</translation> <translation id="3290875554372353449">Odabir računa</translation> <translation id="3305294846493618482">više</translation> <translation id="3311748811247479259">Isključeno</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Ukloniti račun <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Prikaži</translation> <translation id="5317780077021120954">Spremi</translation> +<translation id="5318298563956633672">Već pratite ovaj proizvod.</translation> <translation id="5339316356165661760">Uključi sinkronizaciju</translation> <translation id="536067926684072644">Prikaži oznake</translation> <translation id="5360976571138293719">Više postavki koje se odnose na privatnost, sigurnost i prikupljanje podataka dostupno je u odjeljku <ph name="BEGIN_LINK" />Googleove usluge<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Uključi sinkronizaciju</translation> <translation id="5819208479324046259">Uređajem upravlja <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Spremajte zaporke, načine plaćanja i adrese kako bi ih Chrome automatski unio kasnije.</translation> +<translation id="5834415013958049700">Slika Objektiva koju ste kopirali</translation> <translation id="5846482154967366008">Tražilica</translation> <translation id="5854790677617711513">Starije od 30 dana</translation> <translation id="5857090052475505287">Nova mapa</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Nedavno posjećeno</translation> <translation id="5988097621740394599">Pogledajte pad cijena na karticama.</translation> <translation id="5988851877894965432">Otvorite URL-ove u Chromeu</translation> +<translation id="6006672969046233841">Nova kartica</translation> <translation id="6012140227487808125">Enkripcija…</translation> <translation id="6021332621416007159">Otvori u...</translation> <translation id="6027945736510816438">Jeste li mislili <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Omogućite sinkronizaciju da biste dobivali sadržaj na temelju svojih interesa.</translation> <translation id="721597782417389033">Nadimak kartice nije važeći</translation> <translation id="7221173315674413369">Istražite nove značajke i savjete u odjeljku Novosti</translation> +<translation id="7223102419539744003">Zatvori karticu</translation> <translation id="722454870747268814">Nova anonimna kartica</translation> <translation id="7265758999917665941">Nikad za ovu web lokaciju</translation> <translation id="7272437679830969316">Potvrda identiteta nije moguća. Zaporka nije kopirana.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Preuzimanje nije moguće</translation> <translation id="785938070103630874">Otvorite zaporke, načine plaćanja ili adresu i drugo</translation> <translation id="7859704718976024901">Povijest pregledavanja</translation> +<translation id="7870750252270996949">Slika koju je kopirao Objektiv</translation> <translation id="7879275349003161544">Prikaži preuzimanja</translation> <translation id="7884694604461143138">Povijest pretraživanja (pronađeno: <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Da bi zaštitio vašu privatnost, Chrome neće automatski popuniti ovo polje.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Zadani prikaz web-lokacije</translation> <translation id="8820817407110198400">Knjižne oznake</translation> +<translation id="882557203579758546">Traži na stranici…</translation> <translation id="8840513115188359703">Nećete se odjaviti s Google računa.</translation> <translation id="8843129975935593190">Vaša organizacija ograničava sadržaj koji možete sinkronizirati.</translation> <translation id="8849001918648564819">Skriveno</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hy.xtb b/ios/chrome/app/strings/resources/ios_strings_hy.xtb index 37e500e..7dda2ff 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hy.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hy.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Հպեք «Դիտարկիչի կանխադրված հավելված»։</translation> <translation id="2820289420301699633">Ադմինիստրատորը վերահսկում է Chrome-ը, և նրան հասանելի են դրա տվյալները։</translation> <translation id="2830972654601096923">Կառավարել հասցեները…</translation> +<translation id="2834399722155632105">3. Հպեք Գաղտնաբառերի կարգավորումներին</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Վերակայել Translate-ի կարգավորումները</translation> <translation id="2848086008667475748">Դարձնել կանխադրված դիտարկիչ կարգավորումներում…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Մոտակայքում գտնվող մարդկանց հետ կիսվելու համար խնդրեք նրանց սկանավորել այս QR կոդը տեսախցիկի կամ QR սկաների հավելվածի միջոցով</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">Էջը թարգմանելու տարբերակներ</translation> +<translation id="5933515656458364246">Համաժամացրեք ձեր տվյալները բոլոր սարքերում։</translation> <translation id="5938160824633642847">Ձեր սարքի հիշողությունը գրեթե լիքն է։ Ազատեք տարածք և նորից փորձեք:</translation> <translation id="5948291296578561264">Սրա շնորհիվ կկարողանաք լուսանկարներ պահել ձեր ֆոտոդարանում:</translation> <translation id="5951816930277761335">Կիսվեք հղումով</translation> @@ -713,6 +715,7 @@ Ձեր տվյալները գաղտնագրվել են ձեր համաժամացման անցաբառով <ph name="TIME" />-ին: Համաժամացման համար մուտքագրեք անցաբառը:</translation> <translation id="6418346271604475326">PDF-ի պատրաստում</translation> +<translation id="6429213933892582367">Բացեք Գաղտնաբառերի կարգավորումները</translation> <translation id="6434591244308415567">Սխալ առաջացավ։ Փորձեք ավելի ուշ։</translation> <translation id="6435236283694032571">Ավելացնել ընթերցանության ցանկում</translation> <translation id="6439338047467462846">Թույլատրել բոլորը</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Կարդալ պատասխանները</translation> <translation id="7207023858769244910">Միացրեք համաժամացումը՝ ձեր հետաքրքրություններին համապատասխան բովանդակություն ստանալու համար։</translation> <translation id="721597782417389033">Քարտի կեղծանունն անվավեր է</translation> +<translation id="7221173315674413369">Բացահայտեք նոր գործառույթներ և ստացեք խորհուրդներ «Նորություններ» բաժնում</translation> <translation id="722454870747268814">Նոր ինկոգնիտո ներդիր</translation> <translation id="7265758999917665941">Երբեք չպահել այս կայքի համար</translation> <translation id="7272437679830969316">Չհաջողվեց հաստատել ձեր ինքնությունը: Գաղտնաբառը չի պատճենվել:</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Ներբեռնել</translation> <translation id="7531345132340165516">Ընթացիկ կայքը</translation> <translation id="7537586195939242955">Ներեցեք, այս պահին հնարավոր չէ տեղադրել ձեր Անցագիրը Անցագրերի մատյանում:</translation> +<translation id="7553234618121028547">Անջատելու համար բացեք <ph name="BEGIN_LINK" />Կարգավորումները<ph name="END_LINK" /> և անցեք «Գաղտնաբառերի կարգավորումներ»։</translation> <translation id="7554791636758816595">Նոր ներդիր</translation> <translation id="7561196759112975576">Միշտ</translation> <translation id="7583004045319035904">Ապակողպեք ձեր ինկոգնիտո ներդիրները՝ օգտագործելով <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />։</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Ստեղծեք, պահեք և կառավարեք ձեր գաղտնաբառերը, որպեսզի հեշտությամբ մուտք գործեք կայքեր և հավելվածներ։ <ph name="BEGIN_LINK" />Իմանալ ավելին<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Անջատել</translation> <translation id="8114753159095730575">Ֆայլը հասանելի է ներբեռնման համար: Ընտրանքները հասանելի են էկրանի ներքևի հատվածում:</translation> +<translation id="81313319706244542">2. Հպեք «Գաղտնաբառեր»</translation> <translation id="8132598642024322408">Նոր գինը՝ <ph name="PRICE" />, նախկին գինը՝ <ph name="PREVIOUS_PRICE" />։</translation> <translation id="8136856065410661948">Սա կօգտագործվի՝ ձեր Apple Calendar-ում Chrome-ից և Google Տեսապակուց միջոցառումներ ստեղծելու համար։</translation> <translation id="8156478151976189188">Գաղտնաբառերի համաժամացումը չի աշխատում</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Նոր որոնում</translation> <translation id="8323906514956095947">Հպեք և պահեք՝ ներդիրներին առնչվող այլ ընտրանքներ տեսնելու համար</translation> <translation id="8328777765163860529">Փակել բոլորը</translation> +<translation id="8343993175958086504">Պահուստավորեք ձեր տվյալները և օգտագործեք դրանք ցանկացած սարքում։</translation> <translation id="8378714024927312812">Կառավարվում է ձեր կազմակերպության կողմից</translation> <translation id="8386068868580335421">Վերակայել</translation> <translation id="8407669440184693619">Այս կայքի համար գաղտնաբառեր չեն գտնվել</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index 737d44e..9c7125c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Scansiona codice QR</translation> <translation id="1552525382687785070">Sincronizzazione disattivata dall'amministratore</translation> <translation id="1554477036522844996">Nuova finestra</translation> +<translation id="1565371473877914088">Nuova scheda di navigazione in incognito</translation> <translation id="1580715474678097352">Proteggiti dai siti web pericolosi</translation> <translation id="1580783302095112590">Messaggio inviato.</translation> <translation id="1582732959743469162">Verrà interrotto l'avanzamento del tuo download attuale.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Dispositivo mobile</translation> <translation id="1989112275319619282">Esplora</translation> <translation id="199425419756152024">Visualizza password</translation> +<translation id="2010008505735295285">Ricarica</translation> <translation id="2015722694326466240">Per visualizzare le password, per prima cosa imposta un passcode sul tuo dispositivo.</translation> <translation id="2021670401941426298">Consulta le istruzioni del tuo motore di ricerca per eliminare la tua cronologia delle ricerche, se applicabile.</translation> <translation id="202292859882676807">Accesso al microfono consentito</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Annulla</translation> <translation id="3277021493514034324">Indirizzo del sito copiato</translation> <translation id="3285962946108803577">Condividi pagina…</translation> +<translation id="3289505634533552500">Ricerca vocale</translation> <translation id="3290875554372353449">Scegli un account</translation> <translation id="3305294846493618482">altro</translation> <translation id="3311748811247479259">Off</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Vuoi rimuovere l'account <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Mostra</translation> <translation id="5317780077021120954">Salva</translation> +<translation id="5318298563956633672">Stai già monitorando questo prodotto.</translation> <translation id="5339316356165661760">Attiva la sincronizzazione</translation> <translation id="536067926684072644">Mostra i preferiti</translation> <translation id="5360976571138293719">Per altre impostazioni relative a privacy, sicurezza e raccolta dei dati, consulta la sezione <ph name="BEGIN_LINK" />Servizi Google<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Attiva la sincronizzazione</translation> <translation id="5819208479324046259">Gestito da <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Salva password, metodi di pagamento e indirizzi per la compilazione automatica di Chrome in un secondo momento.</translation> +<translation id="5834415013958049700">Immagine Lens copiata</translation> <translation id="5846482154967366008">Motore di ricerca</translation> <translation id="5854790677617711513">Oltre 30 giorni fa</translation> <translation id="5857090052475505287">Nuova cartella</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Visitati di recente</translation> <translation id="5988097621740394599">Visualizza i cali di prezzo nelle tue schede.</translation> <translation id="5988851877894965432">Apri URL in Chrome</translation> +<translation id="6006672969046233841">Nuova scheda</translation> <translation id="6012140227487808125">Crittografia…</translation> <translation id="6021332621416007159">Apri in...</translation> <translation id="6027945736510816438">Intendevi <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Sincronizza per ricevere contenuti in base ai tuoi interessi.</translation> <translation id="721597782417389033">Nickname carta non valido</translation> <translation id="7221173315674413369">Esplora nuove funzionalità e suggerimenti nella sezione Novità</translation> +<translation id="7223102419539744003">Chiudi scheda</translation> <translation id="722454870747268814">Nuova scheda in incognito</translation> <translation id="7265758999917665941">Mai per questo sito</translation> <translation id="7272437679830969316">Impossibile verificare la tua identità. Password non copiata.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Download non riuscito</translation> <translation id="785938070103630874">Apri password, metodi di pagamento o indirizzo e altro</translation> <translation id="7859704718976024901">Cronologia di navigazione</translation> +<translation id="7870750252270996949">Immagine copiata da Lens</translation> <translation id="7879275349003161544">Mostra download</translation> <translation id="7884694604461143138">Cerca nella cronologia (<ph name="COUNT" /> risultati)</translation> <translation id="7887198238286927132">Per tutelare la tua privacy, Chrome non compilerà automaticamente questo campo.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Scopri di più<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Visualizzazione predefinita sito</translation> <translation id="8820817407110198400">Preferiti</translation> +<translation id="882557203579758546">Trova nella pagina…</translation> <translation id="8840513115188359703">Non verrai disconnesso dal tuo Account Google.</translation> <translation id="8843129975935593190">La tua organizzazione limita ciò che puoi sincronizzare.</translation> <translation id="8849001918648564819">Nascosto</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index 5f2ba3f..663e789 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -572,6 +572,7 @@ <translation id="5489208564673669003">הסבר על ניהול קובצי ה-cookie עבור כל האתרים זמין במאמר <ph name="BEGIN_LINK" />הגדרות קובצי cookie<ph name="END_LINK" />.</translation> <translation id="5490005495580364134">חסימה של כל קובצי ה-cookie (לא מומלץ)</translation> <translation id="5513681519188741830">לפני <ph name="TIME" /> שעות</translation> +<translation id="5520466080178053306">מקישים על 'מנהל הסיסמאות' ואז על 'הוספה'</translation> <translation id="5525095647255982834">כדי לשלוח את הכרטיסייה הזו למכשיר אחר, יש להיכנס ל-Chrome במכשיר האחר.</translation> <translation id="5525269841082836315">יצירת ביטוי סיסמה</translation> <translation id="5542540507657872337"><ph name="COUNT" /> נמצאו</translation> @@ -879,6 +880,7 @@ <translation id="7726702057919861819">תפריט ← היסטוריה ← מחיקה של נתוני הגלישה</translation> <translation id="7738120385185846461">דיווח על בעיה…</translation> <translation id="7741325291586284254">דף חדש של כרטיסיית מצב אנונימי</translation> +<translation id="7744394900930577716">סיסמאות ששמורות באפליקציות אחרות</translation> <translation id="7756478488453921771">תפריט ← הגדרות ← אמצעי תשלום</translation> <translation id="7765158879357617694">העברה</translation> <translation id="7772032839648071052">אישור משפט-סיסמה</translation> @@ -1056,6 +1058,7 @@ <translation id="9081058212938299310">לעדכן את הסיסמה של <ph name="USERNAME" />?</translation> <translation id="9083838294503912307">כדי לסנכרן ולהתאים אישית את החוויה במכשירים שונים, צריך להפעיל את הסנכרון.</translation> <translation id="9087108903408689779">הצעה לסיסמה מ-Chrome:</translation> +<translation id="9093271241977565440">בחלק העליון של המסך, מקישים על סמל החיפוש</translation> <translation id="9094033019050270033">עדכון סיסמה</translation> <translation id="9097506547406246598">לא ניתן לבטל את המעקב. משהו השתבש.</translation> <translation id="9100610230175265781">יש להזין ביטוי סיסמה</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb index 5858f5c..3e6021aa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. "Әдепкі браузер қолданбасы" түймесін түртіңіз.</translation> <translation id="2820289420301699633">Әкімші Chrome-ды бақылайды және оның деректерін пайдалана алады.</translation> <translation id="2830972654601096923">Мекенжайларды басқару...</translation> +<translation id="2834399722155632105">3. "Құпия сөз опциялары" түймесін түртіңіз.</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Аудару параметрлерін қайта орнату</translation> <translation id="2848086008667475748">Параметрлерде әдепкі браузер етіп орнату…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Жаныңыздағы адамдармен бөлісу үшін олар осы QR кодын камера немесе QR сканерлеу қолданбасы арқылы сканерлеуі қажет.</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">Бетті аудару опциялары</translation> +<translation id="5933515656458364246">Деректерді барлық құрылғыда синхрондаңыз.</translation> <translation id="5938160824633642847">Құрылғыңыздың жады толуға жақын. Оны босатып, әрекетті қайталаңыз.</translation> <translation id="5948291296578561264">Бұл суреттерді жинаққа сақтауға мүмкіндік береді.</translation> <translation id="5951816930277761335">Сілтеме бөлісіңіз.</translation> @@ -713,6 +715,7 @@ Деректер <ph name="TIME" /> күні синхрондаудың құпия фразасымен шифрланды. Синхрондауды бастау үшін фразаны енгізіңіз.</translation> <translation id="6418346271604475326">PDF дайындалуда</translation> +<translation id="6429213933892582367">"Құпия сөз опциялары" параметрін ашыңыз.</translation> <translation id="6434591244308415567">Қате шықты. Әрекетті кейінірек қайталаңыз.</translation> <translation id="6435236283694032571">Оқу тізіміне қосу</translation> <translation id="6439338047467462846">Барлығына рұқсат беру</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Жауаптарды дыбыстау</translation> <translation id="7207023858769244910">Қызығушылықтарыңызға негізделген мазмұнды көру үшін синхрондау функциясын қосыңыз.</translation> <translation id="721597782417389033">Картаның лақап аты жарамсыз</translation> +<translation id="7221173315674413369">"Жаңалықтар" бөліміндегі жаңа мүмкіндіктермен және кеңестермен танысыңыз</translation> <translation id="722454870747268814">Жаңа инкогнито қойындысы</translation> <translation id="7265758999917665941">Бұл сайт үшін ешқашан</translation> <translation id="7272437679830969316">Жеке басыңыз расталмады. Құпия сөз көшірілмеді.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Жүктеу</translation> <translation id="7531345132340165516">Қолданыстағы сайт</translation> <translation id="7537586195939242955">Кешіріңіз, Pass нысанын Passbook қолданбасына қазір орнату мүмкін емес.</translation> +<translation id="7553234618121028547">Өшіру үшін <ph name="BEGIN_LINK" />Параметрлер<ph name="END_LINK" /> тармағын ашып, "Құпия сөз опциялары" тармағына өтіңіз.</translation> <translation id="7554791636758816595">Жаңа қойынды</translation> <translation id="7561196759112975576">Әрқашан</translation> <translation id="7583004045319035904">Инкогнито қойындыларының құлпын ашу үшін <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> пайдаланыңыз.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Сайттар мен қолданбаларға оңай кіру үшін құпия сөздер жасаңыз, сақтаңыз және басқарыңыз. <ph name="BEGIN_LINK" />Толығырақ<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Өшіру</translation> <translation id="8114753159095730575">Файлды жүктеп алуға болады. Экранның төменгі жағынан басқа опцияларды таңдай аласыз.</translation> +<translation id="81313319706244542">2. "Құпия сөздер" түймесін түртіңіз.</translation> <translation id="8132598642024322408">Қазіргі бағасы: <ph name="PRICE" />, бастапқы бағасы: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Apple Calendar-да Chrome және Google Lens арқылы оқиғалар жасау үшін пайдаланылады.</translation> <translation id="8156478151976189188">Құпия сөзді синхрондау жұмыс істемейді</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Жаңа іздеу</translation> <translation id="8323906514956095947">Қосымша қойынды опциялары үшін басып тұрыңыз.</translation> <translation id="8328777765163860529">Барлығын жабу</translation> +<translation id="8343993175958086504">Деректердің сақтық көшірмесін жасап, оларды кез келген құрылғыда пайдаланыңыз.</translation> <translation id="8378714024927312812">Ұйым басқарады</translation> <translation id="8386068868580335421">Бастапқы күйге қайтару</translation> <translation id="8407669440184693619">Бұл сайт үшін ешқандай құпия сөз табылмады.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index 7059c3f..5e5c55b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">ស្កេនកូដ QR</translation> <translation id="1552525382687785070">ការធ្វើសមកាលកម្មត្រូវបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក</translation> <translation id="1554477036522844996">វិនដូថ្មី</translation> +<translation id="1565371473877914088">ផ្ទាំងឯកជនថ្មី</translation> <translation id="1580715474678097352">ទទួលបានការការពារពីគេហទំព័រគ្រោះថ្នាក់</translation> <translation id="1580783302095112590">បានផ្ញើមែល។</translation> <translation id="1582732959743469162">សកម្មភាពនេះនឹងបញ្ឈប់ដំណើរការទាំងអស់សម្រាប់ការទាញយកបច្ចុប្បន្នរបស់អ្នក។</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">ឧបករណ៍ចល័ត</translation> <translation id="1989112275319619282">រុករក</translation> <translation id="199425419756152024">មើលពាក្យសម្ងាត់</translation> +<translation id="2010008505735295285">ផ្ទុកឡើងវិញ</translation> <translation id="2015722694326466240">ដើម្បីមើលពាក្យសម្ងាត់ អ្នកត្រូវកំណត់លេខកូដសម្ងាត់នៅលើឧបករណ៍របស់អ្នកជាមុនសិន។</translation> <translation id="2021670401941426298">មើលការណែនាំរបស់ម៉ាស៊ីនស្វែងរកអ្នក ដើម្បីដឹងអំពីរបៀបលុបប្រវត្តិស្វែងរករបស់អ្នក ប្រសិនបើអាច។</translation> <translation id="202292859882676807">បានអនុញ្ញាតសិទ្ធិចូលប្រើមីក្រូហ្វូន</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">បោះបង់</translation> <translation id="3277021493514034324">បានចម្លងអាសយដ្ឋានទំព័រ</translation> <translation id="3285962946108803577">ចែករំលែកទំព័រ...</translation> +<translation id="3289505634533552500">ស្វែងរកតាមសំឡេង</translation> <translation id="3290875554372353449">ជ្រើសរើសគណនី</translation> <translation id="3305294846493618482">ច្រើនទៀត</translation> <translation id="3311748811247479259">បិទ</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">លុបគណនី <ph name="USER_EMAIL" /> ឬ?</translation> <translation id="5300589172476337783">បង្ហាញ</translation> <translation id="5317780077021120954">រក្សាទុក</translation> +<translation id="5318298563956633672">អ្នកកំពុងតាមដានផលិតផលនេះស្រាប់ហើយ។</translation> <translation id="5339316356165661760">បើកសមកាលកម្ម</translation> <translation id="536067926684072644">បង្ហាញចំណាំ</translation> <translation id="5360976571138293719">សម្រាប់ការកំណត់ជាច្រើនទៀត ដែលពាក់ព័ន្ធនឹងឯកជនភាព សុវត្ថិភាព និងការប្រមូលទិន្នន័យ សូមមើល<ph name="BEGIN_LINK" />សេវាកម្ម Google<ph name="END_LINK" />។</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">បើកសមកាលកម្ម</translation> <translation id="5819208479324046259">គ្រប់គ្រងដោយ <ph name="MANAGER" />។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> <translation id="5833643789537100742">រក្សាទុកពាក្យសម្ងាត់ វិធីបង់ប្រាក់ និងអាសយដ្ឋានសម្រាប់ Chrome ដើម្បីបំពេញស្វ័យប្រវត្តិនៅពេលក្រោយ។</translation> +<translation id="5834415013958049700">ស្វែងរកលើរូបភាពដែលអ្នកបានចម្លងដោយប្រើ Lens</translation> <translation id="5846482154967366008">ម៉ាស៊ីនស្វែងរក</translation> <translation id="5854790677617711513">ចាស់ជាង 30 ថ្ងៃ</translation> <translation id="5857090052475505287">ថតឯកសារថ្មី</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">បានទៅកាន់កន្លងទៅថ្មីៗ</translation> <translation id="5988097621740394599">មើលការធ្លាក់ថ្លៃនៅក្នុងផ្ទាំងរបស់អ្នក។</translation> <translation id="5988851877894965432">បើក URL នៅក្នុង Chrome</translation> +<translation id="6006672969046233841">ផ្ទាំងថ្មី</translation> <translation id="6012140227487808125">កំពុងអ៊ីនគ្រីប…</translation> <translation id="6021332621416007159">បើកនៅក្នុង...</translation> <translation id="6027945736510816438">តើអ្នកចង់មានន័យថា <ph name="WEBSITE" /> មែនទេ?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">ធ្វើសមកាលកម្ម ដើម្បីយកខ្លឹមសារដោយផ្អែកលើចំណាប់អារម្មណ៍របស់អ្នក។</translation> <translation id="721597782417389033">ឈ្មោះហៅក្រៅរបស់កាតមិនត្រឹមត្រូវ</translation> <translation id="7221173315674413369">រុករកមុខងារ និងគន្លឹះថ្មីៗនៅក្នុង "អ្វីដែលថ្មី"</translation> +<translation id="7223102419539744003">បិទផ្ទាំង</translation> <translation id="722454870747268814">ផ្ទាំងអនាមិកថ្មី</translation> <translation id="7265758999917665941">មិនចងចាំសម្រាប់គេហទំព័រនេះទេ</translation> <translation id="7272437679830969316">មិនអាចផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នកបានទេ។ ពាក្យសម្ងាត់មិនបានចម្លង។</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">មិនអាចទាញយកបានទេ</translation> <translation id="785938070103630874">បើកពាក្យសម្ងាត់ វិធីបង់ប្រាក់ ឬអាសយដ្ឋាន និងអ្វីៗជាច្រើនទៀត</translation> <translation id="7859704718976024901">ប្រវត្តិរុករក</translation> +<translation id="7870750252270996949">ស្វែងរកលើរូបភាពដែលបានចម្លងដោយប្រើ Lens</translation> <translation id="7879275349003161544">បង្ហាញការទាញយក</translation> <translation id="7884694604461143138">ប្រវត្តិស្វែងរក (បានរកឃើញ <ph name="COUNT" />)</translation> <translation id="7887198238286927132">ដើម្បីការពារឯកជនភាពរបស់អ្នក Chrome នឹងមិនបំពេញកន្លែងបញ្ចូលនេះដោយស្វ័យប្រវត្តិទេ។</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> <translation id="8810413591309742901">ទិដ្ឋភាពគេហទំព័រលំនាំដើម</translation> <translation id="8820817407110198400">ចំណាំ</translation> +<translation id="882557203579758546">ស្វែងរកក្នុងទំព័រ…</translation> <translation id="8840513115188359703">អ្នកនឹងមិនត្រូវបាននាំចេញពីគណនី Google របស់អ្នកទេ។</translation> <translation id="8843129975935593190">ស្ថាប័នរបស់អ្នកដាក់កំហិតលើអ្វីដែលអ្នកអាចធ្វើសមកាលកម្មបាន។</translation> <translation id="8849001918648564819">លាក់</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index cc16137..e3c61f1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆ್ಯಪ್ ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="2820289420301699633">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು Chrome ಮೇಲೆ ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಅದರ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು</translation> <translation id="2830972654601096923">ವಿಳಾಸಗಳನ್ನು ನಿರ್ವಹಿಸಿ...</translation> +<translation id="2834399722155632105">3. ಪಾಸ್ವರ್ಡ್ ಆಯ್ಕೆಗಳು ಎಂಬುದನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">ಅನುವಾದ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಹೊಂದಿಸಿ</translation> <translation id="2848086008667475748">ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಎಂಬುದನ್ನು ಬದಲಿಸಿ…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">ಹತ್ತಿರದ ಜನರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲು, ಅವರ ಕ್ಯಾಮರಾ ಅಥವಾ QR ಸ್ಕ್ಯಾನರ್ ಆ್ಯಪ್ ಮೂಲಕ ಈ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಅವರಿಗೆ ಅನುಮತಿಸಿ</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ಆಯ್ಕೆಗಳು</translation> +<translation id="5933515656458364246">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಸಿಂಕ್ ಮಾಡಿ.</translation> <translation id="5938160824633642847">ನಿಮ್ಮ ಸಾಧನ ಬಹುತೇಕ ಭರ್ತಿಯಾಗಿದೆ. ಸ್ಥಳಾವಕಾಶ ಮುಕ್ತಗೊಳಿಸಿ, ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="5948291296578561264">ನಿಮ್ಮ ಫೋಟೋ ಲೈಬ್ರರಿಗೆ ಫೋಟೋಗಳನ್ನು ಉಳಿಸಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ.</translation> <translation id="5951816930277761335">ಲಿಂಕ್ ಹಂಚಿಕೊಳ್ಳಿ</translation> @@ -713,6 +715,7 @@ ನಿಮ್ಮ ಡೇಟಾವನ್ನು <ph name="TIME" /> ರಂದು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ನೊಂದಿಗೆ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು ಅದನ್ನು ನಮೂದಿಸಿ.</translation> <translation id="6418346271604475326">PDF ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತಿದೆ</translation> +<translation id="6429213933892582367">ಪಾಸ್ವರ್ಡ್ ಆಯ್ಕೆಗಳು ಎಂಬುದನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="6434591244308415567">ಒಂದು ದೋಷ ಸಂಭವಿಸಿದೆ. ಆನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6435236283694032571">ಓದುವ ಪಟ್ಟಿಗೆ ಸೇರಿಸಿ</translation> <translation id="6439338047467462846">ಎಲ್ಲವನ್ನು ಅನುಮತಿಸಿ</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">ಉತ್ತರಗಳನ್ನು ಮತ್ತೆ ಮಾತನಾಡಿ</translation> <translation id="7207023858769244910">ನಿಮ್ಮ ಆಸಕ್ತಿಗಳನ್ನು ಆಧರಿಸಿದ ವಿಷಯವನ್ನು ಪಡೆಯಲು ಸಿಂಕ್ ಮಾಡಿ.</translation> <translation id="721597782417389033">ಕಾರ್ಡ್ ಅಡ್ಡಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ</translation> +<translation id="7221173315674413369">'ಹೊಸತೇನಿದೆ' ಎಂಬಲ್ಲಿ ಹೊಸ ಫೀಚರ್ಗಳು ಹಾಗೂ ಸಲಹೆಗಳನ್ನು ಎಕ್ಸ್ಪ್ಲೋರ್ ಮಾಡಿ</translation> <translation id="722454870747268814">ಹೊಸ ಅದೃಶ್ಯ ಟ್ಯಾಬ್</translation> <translation id="7265758999917665941">ಈ ಸೈಟ್ಗೆ ಎಂದಿಗೂ ಬೇಡ</translation> <translation id="7272437679830969316">ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಕಲಿಸಲಾಗಿಲ್ಲ.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">ಡೌನ್ಲೋಡ್</translation> <translation id="7531345132340165516">ಪ್ರಸ್ತುತ ಸೈಟ್</translation> <translation id="7537586195939242955">ಕ್ಷಮಿಸಿ, ಈ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್ ಅನ್ನು ಪಾಸ್ಬುಕ್ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ.</translation> +<translation id="7553234618121028547">ಆಫ್ ಮಾಡಲು, <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್ಗಳು<ph name="END_LINK" /> ಎಂಬುದನ್ನು ತೆರೆಯಿರಿ ಹಾಗೂ ಪಾಸ್ವರ್ಡ್ ಆಯ್ಕೆಗಳು ಎಂಬಲ್ಲಿಗೆ ಹೋಗಿ.</translation> <translation id="7554791636758816595">ಹೊಸ ಟ್ಯಾಬ್</translation> <translation id="7561196759112975576">ಯಾವಾಗಲೂ</translation> <translation id="7583004045319035904">ನಿಮ್ಮ ಅಜ್ಞಾತ ಟ್ಯಾಬ್ಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ಬಳಸಿ.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ರಚಿಸಿ, ಉಳಿಸಿ ಹಾಗೂ ನಿರ್ವಹಿಸಿ ಇದರಿಂದ ನೀವು ಸೈಟ್ಗಳು ಮತ್ತು ಆ್ಯಪ್ಗಳಿಗೆ ಸುಲಭವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation> <translation id="8105368624971345109">ಆಫ್ ಮಾಡು</translation> <translation id="8114753159095730575">ಫೈಲ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡುವ ಸೌಲಭ್ಯ ಲಭ್ಯವಿದೆ. ಪರದೆಯ ಕೆಳಗಿನ ಭಾಗದಲ್ಲಿ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿವೆ.</translation> +<translation id="81313319706244542">2. ಪಾಸ್ವರ್ಡ್ಗಳು ಎಂಬುದನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="8132598642024322408">ಈಗಿನ ಬೆಲೆ <ph name="PRICE" />, ಹಿಂದಿನ ಬೆಲೆ <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Chrome ಮತ್ತು Google Lens ಸಹಾಯದಿಂದ ನಿಮ್ಮ Apple Calendar ನಲ್ಲಿ ಈವೆಂಟ್ಗಳನ್ನು ರಚಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation> <translation id="8156478151976189188">ಪಾಸ್ವರ್ಡ್ ಸಿಂಕ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲ</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">ಹೊಸ ಹುಡುಕಾಟ</translation> <translation id="8323906514956095947">ಹೆಚ್ಚಿನ ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗಾಗಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ</translation> <translation id="8328777765163860529">ಎಲ್ಲವನ್ನು ಮುಚ್ಚಿರಿ</translation> +<translation id="8343993175958086504">ನಿಮ್ಮ ವಿಷಯವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ ಹಾಗೂ ಅದನ್ನು ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ಬಳಸಿ.</translation> <translation id="8378714024927312812">ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> <translation id="8386068868580335421">ಮರುಹೊಂದಿಸಿ</translation> <translation id="8407669440184693619">ಈ ಸೈಟ್ಗಾಗಿ ಯಾವುದೇ ಪಾಸ್ವರ್ಡ್ ಕಂಡುಬಂದಿಲ್ಲ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index 59e109a..5a0fb39 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Демейки серепчи колдонмосун басыңыз</translation> <translation id="2820289420301699633">Администраторуңуз Chrome'ду көзөмөлдөп, андагы маалыматты колдоно алат.</translation> <translation id="2830972654601096923">Даректерди башкаруу…</translation> +<translation id="2834399722155632105">3. Сырсөздүн параметрлерин таптап коюңуз</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Котор жөндөөлрн кайр кюу</translation> <translation id="2848086008667475748">Жөндөөлөрдө демейки катары коюу…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Жакын жердеги адамдар менен бөлүшүү үчүн, алар камера же болбосо QR кодун скандаган колдонмо менен бул QR кодду скандашы керек</translation> <translation id="5911030830365207728">Google Котормо</translation> <translation id="5913600720976431809">Бул баракты которуу параметрлери</translation> +<translation id="5933515656458364246">Бардык түзмөктөрдөгү маалыматты шайкештириңиз.</translation> <translation id="5938160824633642847">Түзмөгүңүздө орун аз калды. Орун бошотуп, кайталап көрүңүз.</translation> <translation id="5948291296578561264">Ушуну менен сүрөттөрдү галереяңызга сактоого мүмкүндүк берилет.</translation> <translation id="5951816930277761335">Шилтемени бөлүшүңүз</translation> @@ -713,6 +715,7 @@ Дайын-даректериңиз саат <ph name="TIME" /> купуя сөз айкашы менен шифрлеген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> <translation id="6418346271604475326">PDF даярдалууда</translation> +<translation id="6429213933892582367">Сырсөздүн параметрлерин ачыңыз</translation> <translation id="6434591244308415567">Ката кетти. Бир аздан кийин кайталап көрүңүз.</translation> <translation id="6435236283694032571">Окуу тизмесине кошуу</translation> <translation id="6439338047467462846">Баарына уруксат берүү</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Жоопторду айтуу</translation> <translation id="7207023858769244910">Контентти кызыккан нерселериңиздин негизинде көрүү үчүн шайкештириңиз.</translation> <translation id="721597782417389033">Картанын ылакап аты туура эмес</translation> +<translation id="7221173315674413369">Эмне жаңылык бөлүмүнөн жаңы функцияларды жана кеңештерди караңыз</translation> <translation id="722454870747268814">Жаңы жашыруун өтмөк</translation> <translation id="7265758999917665941">Бул сайт үчүн эч качан</translation> <translation id="7272437679830969316">Аныктыгыңыз тастыкталган жок. Сырсөз көчүрүлгөн жок.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Жүктөп алуу</translation> <translation id="7531345132340165516">Учурдагы сайт</translation> <translation id="7537586195939242955">Кечиресиз, учурда картаңызды Passbook'ка орнотуу мүмкүн эмес</translation> +<translation id="7553234618121028547">Өчүрүү үчүн <ph name="BEGIN_LINK" />Тууралоону<ph name="END_LINK" /> ачып, Сырсөздөрдүн параметрлерине өтүңүз.</translation> <translation id="7554791636758816595">Жаңы өтмөк</translation> <translation id="7561196759112975576">Ар дайым</translation> <translation id="7583004045319035904">Жашыруун өтмөктөрүңүздүн кулпусун <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> менен ачыңыз.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Сайттарга жана колдонмолорго оңой кирүү үчүн сырсөздөрдү түзүп, сактап жана башкарыңыз. <ph name="BEGIN_LINK" />Кеңири маалымат<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Өчүрүү</translation> <translation id="8114753159095730575">Файлды жүктөп алууга болот. Параметрлер экрандын төмөн жагында берилген.</translation> +<translation id="81313319706244542">2. Сырсөздөрдү таптап коюңуз</translation> <translation id="8132598642024322408">Азыркы баасы: <ph name="PRICE" />, мурунку баасы: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Бул Chrome жана Google Lens кызматындагы Apple Жылнаамасында иш-чараларды түзүү үчүн колдонулат.</translation> <translation id="8156478151976189188">Сырсөздү шайкештирүү иштеген жок</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Жаңы издөө</translation> <translation id="8323906514956095947">Өтмөктөгү башка параметрлерди көрүү үчүн коё бербей басып туруңуз</translation> <translation id="8328777765163860529">Баарын жабуу</translation> +<translation id="8343993175958086504">Маалыматтын камдык көчүрмөсүн сактап, башка түзмөктө колдоно аласыз.</translation> <translation id="8378714024927312812">Уюмуңуз тарабынан башкарылат</translation> <translation id="8386068868580335421">Кайра коюу</translation> <translation id="8407669440184693619">Бул сайт үчүн бир да сырсөз табылган жок</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index eb7056d..0ae5815 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. ഡിഫോൾട്ട് ബ്രൗസർ ആപ്പ് ടാപ്പ് ചെയ്യുക</translation> <translation id="2820289420301699633">നിങ്ങളുടെ അഡ്മിൻ ആണ് Chrome നിയന്ത്രിക്കുന്നത്, അവർക്ക് അതിന്റെ ഡാറ്റ ആക്സസ് ചെയ്യാനാകും</translation> <translation id="2830972654601096923">വിലാസങ്ങൾ മാനേജ് ചെയ്യുക...</translation> +<translation id="2834399722155632105">3. പാസ്വേഡ് ഓപ്ഷനുകൾ ടാപ്പ് ചെയ്യുക</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">വിവർത്തന ക്രമീകരണം റീസെറ്റ് ചെയ്യുക</translation> <translation id="2848086008667475748">ക്രമീകരണത്തിൽ ഡിഫോൾട്ട് ആക്കുക…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">സമീപമുള്ള ആളുകളുമായി പങ്കിടുന്നതിന്, അവരുടെ ക്യാമറയോ QR സ്കാനർ ആപ്പോ ഉപയോഗിച്ച് ഈ QR കോഡ് സ്കാൻ ചെയ്യാൻ അവരെ അനുവദിക്കുക</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">പേജ് വിവർത്തനം ചെയ്യാനുള്ള ഓപ്ഷനുകൾ</translation> +<translation id="5933515656458364246">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കുക.</translation> <translation id="5938160824633642847">ഉപകരണത്തിന്റെ സ്റ്റോറേജ് ഏകദേശം നിറഞ്ഞു. കുറച്ച് ഇടം സൃഷ്ടിച്ച ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="5948291296578561264">നിങ്ങളുടെ ഫോട്ടോ ലൈബ്രറിയിലേക്ക് ഫോട്ടോകൾ സംരക്ഷിക്കാൻ അനുവദിക്കുന്നു.</translation> <translation id="5951816930277761335">ലിങ്ക് പങ്കിടുക</translation> @@ -713,6 +715,7 @@ <ph name="TIME" />-ന് നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് ഉപയോഗിച്ച് ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്തു. സമന്വയം ആരംഭിക്കുന്നതിന് പാസ്ഫ്രേസ് നൽകുക.</translation> <translation id="6418346271604475326">PDF തയ്യാറാക്കുന്നു</translation> +<translation id="6429213933892582367">പാസ്വേഡ് ഓപ്ഷനുകൾ തുറക്കുക</translation> <translation id="6434591244308415567">ഒരു പിശകുണ്ടായി. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="6435236283694032571">വായിക്കാനുള്ളവയുടെ ലിസ്റ്റിൽ ചേർക്കുക</translation> <translation id="6439338047467462846">എല്ലാം അനുവദിക്കുക</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">മറുപടിയായി ഉത്തരങ്ങൾ പറയുക</translation> <translation id="7207023858769244910">നിങ്ങളുടെ താൽപ്പര്യങ്ങൾ അടിസ്ഥാനമാക്കിയുള്ള ഉള്ളടക്കം നേടാൻ സമന്വയിപ്പിക്കൂ.</translation> <translation id="721597782417389033">കാർഡിന്റെ വിളിപ്പേര് അസാധുവാണ്</translation> +<translation id="7221173315674413369">പുതിയത് എന്തൊക്കെ എന്നതിൽ പുതിയ ഫീച്ചറുകളും നുറുങ്ങുകളും അടുത്തറിയുക</translation> <translation id="722454870747268814">പുതിയ ആൾമാറാട്ട ടാബ്</translation> <translation id="7265758999917665941">ഈ സൈറ്റിൻ്റെ പാസ്വേഡ് ഓർക്കേണ്ടതില്ല</translation> <translation id="7272437679830969316">നിങ്ങളുടെ ഐഡന്റിറ്റി പരിശോധിച്ചുറപ്പിക്കാനാകില്ല. പാസ്വേഡ് പകർത്തിയില്ല.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">ഡൗൺലോഡ് ചെയ്യുക</translation> <translation id="7531345132340165516">നിലവിലെ സൈറ്റ്</translation> <translation id="7537586195939242955">ക്ഷമിക്കണം, നിങ്ങളുടെ പാസ് ഈ സമയം പാസ്ബുക്കിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയില്ല.</translation> +<translation id="7553234618121028547">ഓഫാക്കാൻ, <ph name="BEGIN_LINK" />ക്രമീകരണം<ph name="END_LINK" /> തുറന്ന് പാസ്വേഡ് ഓപ്ഷനുകളിലേക്ക് പോകുക.</translation> <translation id="7554791636758816595">പുതിയ ടാബ്</translation> <translation id="7561196759112975576">എല്ലായ്പ്പോഴും</translation> <translation id="7583004045319035904">നിങ്ങളുടെ അദൃശ്യ ടാബുകൾ അൺലോക്ക് ചെയ്യാൻ <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ഉപയോഗിക്കുക.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">സൈറ്റുകളിലേക്കും ആപ്പുകളിലേക്കും എളുപ്പത്തിൽ സൈൻ ഇൻ ചെയ്യുന്നതിന് നിങ്ങളുടെ പാസ്വേഡുകൾ സൃഷ്ടിക്കുക, സംരക്ഷിക്കുക, മാനേജ് ചെയ്യുക. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation> <translation id="8105368624971345109">ഓഫാക്കുക</translation> <translation id="8114753159095730575">ഫയൽ ഡൗൺലോഡ് ചെയ്യൽ ലഭ്യമാണ്. സ്ക്രീനിന്റെ ചുവടെ ഓപ്ഷനുകളുണ്ട്.</translation> +<translation id="81313319706244542">2. പാസ്വേഡുകൾ ടാപ്പ് ചെയ്യുക</translation> <translation id="8132598642024322408">ഇപ്പോൾ <ph name="PRICE" />, മുമ്പത്തെ വില <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Chrome, Google Lens എന്നിവയിൽ നിന്ന് Apple കലണ്ടറിൽ ഇവന്റുകൾ സൃഷ്ടിക്കാൻ ഇത് ഉപയോഗിക്കും.</translation> <translation id="8156478151976189188">പാസ്വേഡ് സമന്വയം പ്രവർത്തിക്കുന്നില്ല</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">പുതിയ തിരയൽ</translation> <translation id="8323906514956095947">കൂടുതൽ ടാബ് ഓപ്ഷനുകൾക്കായി സ്പർശിച്ച് പിടിക്കുക</translation> <translation id="8328777765163860529">എല്ലാം അടയ്ക്കുക</translation> +<translation id="8343993175958086504">നിങ്ങളുടെ ഡാറ്റ ബാക്കപ്പ് ചെയ്ത് ഏത് ഉപകരണത്തിലും ഉപയോഗിക്കുക.</translation> <translation id="8378714024927312812">നിങ്ങളുടെ സ്ഥാപനം മാനേജ് ചെയ്യുന്നത്</translation> <translation id="8386068868580335421">റീസെറ്റ് ചെയ്യുക</translation> <translation id="8407669440184693619">ഈ സൈറ്റിനുള്ള പാസ്വേഡുകളൊന്നും കണ്ടെത്തിയില്ല</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index 609f0b0..770a373 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">२. डीफॉल्ट ब्राउझर अॅप वर टॅप करा</translation> <translation id="2820289420301699633">तुमच्या अॅडमिनिस्ट्रेटरचे Chrome वर नियंत्रण आहे आणि तो त्याचा डेटा अॅक्सेस करू शकतो</translation> <translation id="2830972654601096923">पत्ते व्यवस्थापित करा...</translation> +<translation id="2834399722155632105">३. पासवर्ड पर्याय वर टॅप करा</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">भाषांतर सेटिंग्ज रीसेट करा</translation> <translation id="2848086008667475748">सेटिंग्ज मध्ये डीफॉल्ट बनवा…</translation> @@ -633,6 +634,7 @@ <translation id="5899314093904173337">जवळपासच्या लोकांसोबत शेअर करण्यासाठी, त्यांना त्यांचा कॅमेरा किंवा QR scanner अॅप वापरून हा QR कोड स्कॅन करू द्या</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">पेज भाषांतरित करण्यासाठी पर्याय</translation> +<translation id="5933515656458364246">तुमचा डेटा सर्व डिव्हाइसवर सिंक करा.</translation> <translation id="5938160824633642847">तुमचे डिव्हाइस जवळजवळ भरले आहे. जागा मोकळी करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="5948291296578561264">हे तुम्हाला तुमच्या फोटो लायब्ररीवर फोटो सेव्ह करू देते.</translation> <translation id="5951816930277761335">लिंक शेअर करा</translation> @@ -715,6 +717,7 @@ तुमचा डेटा तुमच्या सिंक सांकेतिक पासफ्रेझसह <ph name="TIME" /> वाजता एंक्रिप्ट केलेला होता. सिंक सुरू करण्यासाठी तो एंटर करा.</translation> <translation id="6418346271604475326">पीडीएफ तयार करत आहे</translation> +<translation id="6429213933892582367">पासवर्ड पर्याय उघडा</translation> <translation id="6434591244308415567">एरर आली. नंतर पुन्हा प्रयत्न करा.</translation> <translation id="6435236283694032571">वाचन सूची मध्ये जोडा</translation> <translation id="6439338047467462846">सर्वांना अनुमती द्या</translation> @@ -830,6 +833,7 @@ <translation id="7203585745079012652">उत्तरे वाचून सांगा</translation> <translation id="7207023858769244910">तुमच्या स्वारस्यांनुसार आशय मिळवण्यासाठी सिंक करा.</translation> <translation id="721597782417389033">कार्डाचे चुकीचे टोपणनाव</translation> +<translation id="7221173315674413369">नवीन काय आहे मधील नवीन वैशिष्ट्ये आणि टिपा एक्सप्लोर करा</translation> <translation id="722454870747268814">नवीन गुप्त टॅब</translation> <translation id="7265758999917665941">या साइटसाठी कधीही नाही</translation> <translation id="7272437679830969316">तुमच्या ओळखीची पडताळणी करता आली नाही. पासवर्ड कॉपी केला नाही.</translation> @@ -863,6 +867,7 @@ <translation id="7514365320538308">डाउनलोड करा</translation> <translation id="7531345132340165516">सध्याची साइट</translation> <translation id="7537586195939242955">क्षमस्व, यावेळी तुमचा पास पासबुकमध्ये इंस्टॉल केला जाऊ शकत नाही.</translation> +<translation id="7553234618121028547">बंद करण्यासाठी, <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> उघडा आणि पासवर्ड पर्याय वर जा.</translation> <translation id="7554791636758816595">नवीन टॅब</translation> <translation id="7561196759112975576">नेहमी</translation> <translation id="7583004045319035904">तुमचे गुप्त टॅब अनलॉक करण्यासाठी <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> वापरा.</translation> @@ -944,6 +949,7 @@ <translation id="8101409298456377967">तुमचे पासवर्ड तयार, सेव्ह आणि व्यवस्थापित करा, जेणेकरून तुम्ही साइट आणि अॅप्समध्ये सहजरीत्या साइन इन करू शकाल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation> <translation id="8105368624971345109">बंद करा</translation> <translation id="8114753159095730575">फाइल डाउनलोड उपलब्ध आहे. स्क्रीनच्या तळाशी पर्याय उपलब्ध आहेत.</translation> +<translation id="81313319706244542">२. पासवर्ड वर टॅप करा</translation> <translation id="8132598642024322408">आता <ph name="PRICE" /> आहे, आधी <ph name="PREVIOUS_PRICE" /> होती.</translation> <translation id="8136856065410661948">हे Chrome आणि Google Lens वरून तुमच्या Apple Calendar मध्ये इव्हेंट तयार करण्यासाठी वापरले जाईल.</translation> <translation id="8156478151976189188">पासवर्ड सिंक काम करत नाही</translation> @@ -966,6 +972,7 @@ <translation id="8319076807703933069">नवीन शोध</translation> <translation id="8323906514956095947">आणखी टॅब पर्यायांसाठी स्पर्श करा आणि धरून ठेवा</translation> <translation id="8328777765163860529">सर्व बंद करा</translation> +<translation id="8343993175958086504">तुमच्या आशयाचा बॅकअप घ्या आणि तो कोणत्याही डिव्हाइसवर वापरा.</translation> <translation id="8378714024927312812">तुमच्या संस्थेकडून व्यवस्थापित केलेले</translation> <translation id="8386068868580335421">रीसेट करा</translation> <translation id="8407669440184693619">या साइटसाठी पासवर्ड सापडले नाहीत</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index de06dda..a40e2cc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Ketik Apl Penyemak Imbas Lalai</translation> <translation id="2820289420301699633">Pentadbir anda boleh mengawal Chrome dan dapat mengakses data penyemak imbas itu</translation> <translation id="2830972654601096923">Urus Alamat...</translation> +<translation id="2834399722155632105">3. Ketik Pilihan Kata Laluan</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Tetapkan semula tetapan terjemahan</translation> <translation id="2848086008667475748">Jadikan Lalai dalam Tetapan…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Untuk berkongsi dengan orang yang berdekatan, benarkan mereka mengimbas kod QR ini dengan kamera atau apl pengimbas QR mereka</translation> <translation id="5911030830365207728">Google Terjemah</translation> <translation id="5913600720976431809">Pilihan untuk Menterjemah halaman</translation> +<translation id="5933515656458364246">Segerakkan data anda pada semua peranti.</translation> <translation id="5938160824633642847">Peranti anda hampir penuh. Kosongkan ruang dan cuba lagi.</translation> <translation id="5948291296578561264">Tindakan ini membolehkan anda menyimpan foto pada pustaka foto anda.</translation> <translation id="5951816930277761335">Kongsi Pautan</translation> @@ -713,6 +715,7 @@ Data anda disulitkan dengan ungkapan laluan segerak anda pada <ph name="TIME" />. Masukkannya untuk memulakan penyegerakan.</translation> <translation id="6418346271604475326">Menyediakan PDF</translation> +<translation id="6429213933892582367">Buka Pilihan Kata Laluan</translation> <translation id="6434591244308415567">Ralat telah berlaku. Cuba sebentar lagi.</translation> <translation id="6435236283694032571">Tambahkan pada Senarai Bacaan</translation> <translation id="6439338047467462846">Benarkan Semua</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Sebut Kembali Jawapan</translation> <translation id="7207023858769244910">Segerakkan untuk mendapatkan kandungan berdasarkan minat anda.</translation> <translation id="721597782417389033">Nama Panggilan Kad Tidak Sah</translation> +<translation id="7221173315674413369">Teroka ciri dan petua baharu dalam Perkara Baharu</translation> <translation id="722454870747268814">Tab Inkognito Baharu</translation> <translation id="7265758999917665941">Jangan Sekali-kali untuk Tapak Ini</translation> <translation id="7272437679830969316">Tidak dapat mengesahkan identiti anda. Kata laluan tidak disalin.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Muat Turun</translation> <translation id="7531345132340165516">Laman Semasa</translation> <translation id="7537586195939242955">Maaf, Pas anda tidak boleh dipasang pd Passbook pd masa ini.</translation> +<translation id="7553234618121028547">Untuk mematikan, buka <ph name="BEGIN_LINK" />Tetapan<ph name="END_LINK" /> dan pergi ke Pilihan Kata Laluan.</translation> <translation id="7554791636758816595">Tab Baharu</translation> <translation id="7561196759112975576">Sentiasa</translation> <translation id="7583004045319035904">Gunakan <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> untuk membuka kunci tab Inkognito anda.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Buat, simpan dan urus kata laluan anda supaya anda dapat log masuk ke laman dan apl dengan mudah. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Matikan</translation> <translation id="8114753159095730575">Muat turun fail tersedia. Pilihan tersedia di bahagian bawah skrin.</translation> +<translation id="81313319706244542">2. Ketik Kata Kaluan</translation> <translation id="8132598642024322408">Kini <ph name="PRICE" />, sebelum ini <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Ini akan digunakan untuk membuat acara dalam Apple Calendar anda daripada Chrome dan Google Lens.</translation> <translation id="8156478151976189188">Penyegerakan Kata Laluan Tidak Berfungsi</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Carian Baharu</translation> <translation id="8323906514956095947">Sentuh & tahan untuk melihat lagi pilihan tab</translation> <translation id="8328777765163860529">Tutup Semua</translation> +<translation id="8343993175958086504">Sandarkan bahan anda dan gunakan bahan itu pada mana-mana peranti.</translation> <translation id="8378714024927312812">Diurus oleh organisasi anda</translation> <translation id="8386068868580335421">Tetapkan semula</translation> <translation id="8407669440184693619">Tiada kata laluan ditemui untuk tapak ini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ne.xtb b/ios/chrome/app/strings/resources/ios_strings_ne.xtb index ebd334f7..eeeae23 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ne.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ne.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">२. डिफल्ट ब्राउजर एपमा ट्याप गर्नुहोस्</translation> <translation id="2820289420301699633">तपाईंका एड्मिन Chrome नियन्त्रण गर्छन् र उनी त्यसमा भएका डेटा हेर्न तथा प्रयोग गर्न सक्छन्</translation> <translation id="2830972654601096923">ठेगानाहरू व्यवस्थापन गर्नुहोस्...</translation> +<translation id="2834399722155632105">३. पासवर्डसम्बन्धी विकल्पहरूमा ट्याप गर्नुहोस्</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">अनुवाद सेटिङहरू रिसेट गर्नुहोस्</translation> <translation id="2848086008667475748">सेटिङमा गई यसलाई डिफल्ट ब्राउजर बनाउनुहोस्…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">वरपर रहेका मान्छेहरूसँग सेयर गर्न उनीहरूलाई क्यामेरा वा QR स्क्यान गर्ने एप प्रयोग गरी यो QR कोड स्क्यान गर्न लगाउनुहोस्</translation> <translation id="5911030830365207728">Google अनुवादक</translation> <translation id="5913600720976431809">यो पृष्ठ अनुवाद गर्ने विकल्पहरू</translation> +<translation id="5933515656458364246">सबै डिभाइसहरूमा आफ्नो डेटा सिंक गर्नुहोस्।</translation> <translation id="5938160824633642847">तपाईंको डिभाइसको भण्डारण स्थान लगभग भरिएको छ। भण्डारण स्थान खाली गरी फेरि प्रयास गर्नुहोस्।</translation> <translation id="5948291296578561264">यो एपले तपाईंलाई आफ्नो तस्बिरको लाइब्रेरीमा तस्बिरहरू सुरक्षित गर्न दिन्छ।</translation> <translation id="5951816930277761335">लिंक सेयर गर्नुहोस्</translation> @@ -713,6 +715,7 @@ तपाईँको डेटालाई <ph name="TIME" /> मा तपाईँको सिंक पासफ्रेजमार्फत इन्क्रिप्ट गरिएको थियो। सिंक सुरु गर्न त्यो पासफ्रेज प्रविष्टि गर्नुहोस्।</translation> <translation id="6418346271604475326">PDF तयार गर्दै</translation> +<translation id="6429213933892582367">पासवर्डसम्बन्धी विकल्पहरू खोल्नुहोस्</translation> <translation id="6434591244308415567">कुनै त्रुटि भयो। पछि फेरि प्रयास गर्नुहोस्।</translation> <translation id="6435236283694032571">पछि पढ्न सेभ गरिएका वेबपेजको सूचीमा हाल्नुहोस्</translation> <translation id="6439338047467462846">सबैलाई अनुमति दिनुहोस्</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">जवाफहरू पुन: भन्नुहोस्</translation> <translation id="7207023858769244910">आफ्नो रुचिअनुसारका सामग्री प्राप्त गर्न सिंक गर्नुहोस्।</translation> <translation id="721597782417389033">कार्डको उपनाम अवैध छ</translation> +<translation id="7221173315674413369">"नयाँ के छ" मा गई नयाँ सुविधा र सुझावहरूका बारेमा जान्नुहोस्</translation> <translation id="722454870747268814">नयाँ इन्कोग्निटो ट्याब</translation> <translation id="7265758999917665941">यो साइटका हकमा कहिल्यै पनि नसम्झनुहोस्</translation> <translation id="7272437679830969316">तपाईंको पहिचान पुष्टि गर्न सकिएन। पासवर्डको प्रतिलिपि गरिएको छैन।</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">डाउनलोड गर्नुहोस्</translation> <translation id="7531345132340165516">हालको साइट</translation> <translation id="7537586195939242955">माफ गर्नुहोस्, यस समयमा तपाईंको पासलाई पासबुकमा स्थापना गर्न सकिदैन।</translation> +<translation id="7553234618121028547">स्वतः भर्ने सुविधा अफ गर्न <ph name="BEGIN_LINK" />सेटिङ<ph name="END_LINK" /> खोल्नुहोस् अनि पासवर्डसम्बन्धी विकल्पहरूमा जानुहोस्।</translation> <translation id="7554791636758816595">नयाँ ट्याब</translation> <translation id="7561196759112975576">सधैं</translation> <translation id="7583004045319035904">आफ्ना इन्कोग्निटो ट्याबहरू अनलक गर्न <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> प्रयोग गर्नुहोस्।</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">तपाईं साइट र एपहरूमा सजिलै साइन इन गर्न चाहनुहुन्छ भने पासवर्ड सिर्जना गर्नुहोस्, सेभ गर्नुहोस् र व्यवस्थापन गर्नुहोस्। <ph name="BEGIN_LINK" />थप जान्नुहोस्<ph name="END_LINK" /></translation> <translation id="8105368624971345109">निष्क्रिय पार्नुहोस्</translation> <translation id="8114753159095730575">डाउनलोड गर्न फाइल उपलब्ध छ। स्क्रिनको फेदनजिकै विकल्पहरू उपलब्ध छन्।</translation> +<translation id="81313319706244542">२. पासवर्डहरूमा ट्याप गर्नुहोस्</translation> <translation id="8132598642024322408">अहिले <ph name="PRICE" /> पर्छ, पहिले <ph name="PREVIOUS_PRICE" /> पर्थ्यो।</translation> <translation id="8136856065410661948">Chrome तथा Google लेन्समार्फत Apple पात्रोमा कार्यक्रमहरू बनाउने प्रयोजनका लागि यो एप प्रयोग गरिने छ।</translation> <translation id="8156478151976189188">पासवर्ड सिंक गर्ने सुविधाले काम गरिरहेको छैन</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">नयाँ खोज</translation> <translation id="8323906514956095947">ट्याबसम्बन्धी थप विकल्पहरू हेर्न टच एण्ड होल्ड गर्नुहोस्</translation> <translation id="8328777765163860529">सबै बन्द गर्नुहोस्</translation> +<translation id="8343993175958086504">आफ्नो डेटा ब्याकअप गर्नुहोस् र जुनसुकै डिभाइसमा सो डेटा प्रयोग गर्नुहोस्।</translation> <translation id="8378714024927312812">तपाईंको सङ्गठनले व्यवस्थापन गरेको</translation> <translation id="8386068868580335421">रिसेट गर्नुहोस्</translation> <translation id="8407669440184693619">यो साइटका लागि कुनै पनि पासवर्ड फेला परेन</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 11491585f..79b3145 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Kliknij opcję Domyślna przeglądarka.</translation> <translation id="2820289420301699633">Twój administrator ma kontrolę nad Chrome i dostęp do danych w Chrome</translation> <translation id="2830972654601096923">Zarządzaj adresami...</translation> +<translation id="2834399722155632105">3. Kliknij Opcje haseł</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Zresetuj ustawienia tłumaczenia</translation> <translation id="2848086008667475748">Określ jako domyślną w ustawieniach…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Aby udostępnić ten kod QR osobom w pobliżu, pozwól im go zeskanować za pomocą aparatu lub aplikacji do skanowania kodów QR</translation> <translation id="5911030830365207728">Tłumacz Google</translation> <translation id="5913600720976431809">Opcje tłumaczenia strony</translation> +<translation id="5933515656458364246">Synchronizuj dane na wszystkich urządzeniach.</translation> <translation id="5938160824633642847">Na urządzeniu brakuje wolnego miejsca. Zwolnij miejsce i spróbuj ponownie.</translation> <translation id="5948291296578561264">Umożliwia zapisywanie zdjęć w ich bibliotece.</translation> <translation id="5951816930277761335">Udostępnij link</translation> @@ -713,6 +715,7 @@ Twoje dane zostały zaszyfrowane z użyciem hasła synchronizacji w dniu <ph name="TIME" />. Wpisz je, by rozpocząć synchronizację.</translation> <translation id="6418346271604475326">Przygotowuję PDF</translation> +<translation id="6429213933892582367">Otwórz Opcje haseł</translation> <translation id="6434591244308415567">Wystąpił błąd. Spróbuj ponownie później.</translation> <translation id="6435236283694032571">Dodaj do listy Do przeczytania</translation> <translation id="6439338047467462846">Zezwalaj na wszystkie</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Odczytuj odpowiedzi</translation> <translation id="7207023858769244910">Włącz synchronizację, aby otrzymywać treści związane ze swoimi zainteresowaniami.</translation> <translation id="721597782417389033">Nieprawidłowa nazwa karty</translation> +<translation id="7221173315674413369">Poznaj nowe funkcje i wskazówki przedstawione na stronie Nowe funkcje</translation> <translation id="722454870747268814">Nowa karta incognito</translation> <translation id="7265758999917665941">Nigdy dla tej witryny</translation> <translation id="7272437679830969316">Nie można zweryfikować Twojej tożsamości. Hasło nie zostało skopiowane.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Pobierz</translation> <translation id="7531345132340165516">Bieżąca witryna</translation> <translation id="7537586195939242955">Twojego hasła nie można teraz umieścić w Passbooku.</translation> +<translation id="7553234618121028547">Aby wyłączyć funkcję, otwórz <ph name="BEGIN_LINK" />Ustawienia<ph name="END_LINK" /> i kliknij Opcje haseł.</translation> <translation id="7554791636758816595">Nowa karta</translation> <translation id="7561196759112975576">Zawsze</translation> <translation id="7583004045319035904">Używaj <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> do odblokowywania kart incognito.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Twórz i zapisuj hasła oraz nimi zarządzaj, aby łatwo logować się na stronach i w aplikacjach. <ph name="BEGIN_LINK" />Więcej informacji<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Wyłącz</translation> <translation id="8114753159095730575">Pobrany plik jest dostępny. Opcje są dostępne u dołu ekranu.</translation> +<translation id="81313319706244542">2. Kliknij Hasła</translation> <translation id="8132598642024322408">Teraz <ph name="PRICE" />, wcześniej <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Będziemy z tego korzystać, aby tworzyć wydarzenia z Chrome i Obiektywu Google w kalendarzu Apple.</translation> <translation id="8156478151976189188">Funkcja Password Sync nie działa</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Nowe wyszukiwanie</translation> <translation id="8323906514956095947">Naciśnij i przytrzymaj, by zobaczyć więcej opcji</translation> <translation id="8328777765163860529">Zamknij wszystkie</translation> +<translation id="8343993175958086504">Twórz kopie zapasowe swoich danych i używaj ich na dowolnym urządzeniu.</translation> <translation id="8378714024927312812">Zarządzane przez Twoją organizację</translation> <translation id="8386068868580335421">Resetuj</translation> <translation id="8407669440184693619">Nie znaleziono haseł do tej strony</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index be4e8be10..451abff5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -573,6 +573,7 @@ <translation id="5489208564673669003">Para gerenciar os cookies de todos os sites, acesse <ph name="BEGIN_LINK" />Configurações de cookies<ph name="END_LINK" />.</translation> <translation id="5490005495580364134">Bloquear todos os cookies (não recomendado)</translation> <translation id="5513681519188741830"><ph name="TIME" />h atrás</translation> +<translation id="5520466080178053306">Toque em "Gerenciador de senhas" e depois em "Adicionar"</translation> <translation id="5525095647255982834">Para enviar esta guia a outro dispositivo, faça login no Chrome no outro aparelho.</translation> <translation id="5525269841082836315">Criar senha</translation> <translation id="5542540507657872337">Encontradas: <ph name="COUNT" /></translation> @@ -884,6 +885,7 @@ <translation id="7726702057919861819">Menu → Histórico → Remover dados de navegação</translation> <translation id="7738120385185846461">Informar um problema…</translation> <translation id="7741325291586284254">Nova página de guia anônima</translation> +<translation id="7744394900930577716">Senhas em outros apps</translation> <translation id="7756478488453921771">Menu → Configurações → Formas de pagamento</translation> <translation id="7765158879357617694">Mover</translation> <translation id="7772032839648071052">Confirmar senha</translation> @@ -1063,6 +1065,7 @@ <translation id="9081058212938299310">Atualizar senha para <ph name="USERNAME" />?</translation> <translation id="9083838294503912307">Para sincronizar e personalizar vários dispositivos, ative a sincronização.</translation> <translation id="9087108903408689779">Senha sugerida pelo Chrome:</translation> +<translation id="9093271241977565440">Na parte de cima da tela, toque no ícone de pesquisa</translation> <translation id="9094033019050270033">Atualizar senha</translation> <translation id="9097506547406246598">Não foi possível parar de seguir. Algo deu errado.</translation> <translation id="9100610230175265781">Senha necessária</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb index 2806038..670186a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Ler código QR</translation> <translation id="1552525382687785070">A sincronização foi desativada pelo administrador.</translation> <translation id="1554477036522844996">Nova janela</translation> +<translation id="1565371473877914088">Novo separador de navegação anónima</translation> <translation id="1580715474678097352">Obtenha proteção contra Websites perigosos.</translation> <translation id="1580783302095112590">Correio enviado.</translation> <translation id="1582732959743469162">Esta ação vai interromper totalmente o progresso da transferência atual.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Telemóvel</translation> <translation id="1989112275319619282">Procurar</translation> <translation id="199425419756152024">Ver a palavra-passe</translation> +<translation id="2010008505735295285">Atualizar</translation> <translation id="2015722694326466240">Para ver as palavras-passe, tem de definir primeiro um código secreto no dispositivo.</translation> <translation id="2021670401941426298">Se aplicável, consulte as instruções do motor de pesquisa para eliminar o histórico de pesquisas.</translation> <translation id="202292859882676807">Acesso ao microfone permitido</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Cancelar</translation> <translation id="3277021493514034324">Endereço do site copiado</translation> <translation id="3285962946108803577">Partilhar página…</translation> +<translation id="3289505634533552500">Pesquisa por voz</translation> <translation id="3290875554372353449">Selecione uma conta</translation> <translation id="3305294846493618482">mais</translation> <translation id="3311748811247479259">Desativado</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Pretende remover a conta <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Mostrar</translation> <translation id="5317780077021120954">Guardar</translation> +<translation id="5318298563956633672">Já está a acompanhar este produto.</translation> <translation id="5339316356165661760">Ativar sincronização</translation> <translation id="536067926684072644">Mostrar marcadores</translation> <translation id="5360976571138293719">Para obter mais definições relacionadas com privacidade, segurança e recolha de dados, consulte <ph name="BEGIN_LINK" />Serviços Google<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Ativar sincronização</translation> <translation id="5819208479324046259">Gerido por <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Guarde palavras-passe, métodos de pagamento e moradas para o Chrome preencher automaticamente mais tarde.</translation> +<translation id="5834415013958049700">Imagem do Lens que copiou</translation> <translation id="5846482154967366008">Motor de Pesquisa</translation> <translation id="5854790677617711513">Com mais de 30 dias</translation> <translation id="5857090052475505287">Nova pasta</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Visitados Recentemente</translation> <translation id="5988097621740394599">Veja as descidas de preços nos seus separadores</translation> <translation id="5988851877894965432">Abrir URLs no Chrome</translation> +<translation id="6006672969046233841">Novo separador</translation> <translation id="6012140227487808125">A encriptar...</translation> <translation id="6021332621416007159">Abrir em...</translation> <translation id="6027945736510816438">Será que quis dizer <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Sincronize para obter conteúdo com base nos seus interesses.</translation> <translation id="721597782417389033">Alcunha do cartão inválido</translation> <translation id="7221173315674413369">Explore novas funcionalidades e sugestões em Novidades</translation> +<translation id="7223102419539744003">Fechar separador</translation> <translation id="722454870747268814">Novo separador anónimo</translation> <translation id="7265758999917665941">Nunca para este site</translation> <translation id="7272437679830969316">Não é possível validar a sua identidade. Palavra-passe não copiada.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Impossível transferir</translation> <translation id="785938070103630874">Abra palavras-passe, métodos de pagamento, moradas e muito mais</translation> <translation id="7859704718976024901">Histórico de navegação</translation> +<translation id="7870750252270996949">Imagem copiada do Lens</translation> <translation id="7879275349003161544">Mostrar transferências</translation> <translation id="7884694604461143138">Histórico de pesquisas (<ph name="COUNT" /> encontrado[s])</translation> <translation id="7887198238286927132">Para proteger a sua privacidade, o Chrome não irá preencher automaticamente este campo.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Vista do site predefinida</translation> <translation id="8820817407110198400">Marcadores</translation> +<translation id="882557203579758546">Localizar na página…</translation> <translation id="8840513115188359703">A sessão na sua Conta Google não é terminada.</translation> <translation id="8843129975935593190">A sua organização limita o que pode sincronizar.</translation> <translation id="8849001918648564819">Oculto</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index 05c5873..d5bae1e3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Scanează codul QR</translation> <translation id="1552525382687785070">Sincronizarea este dezactivată de administrator</translation> <translation id="1554477036522844996">Fereastră nouă</translation> +<translation id="1565371473877914088">Filă incognito nouă</translation> <translation id="1580715474678097352">Protejează-te împotriva site-urilor periculoase</translation> <translation id="1580783302095112590">E-mail trimis.</translation> <translation id="1582732959743469162">Aceasta va opri progresul descărcării actuale.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Mobil</translation> <translation id="1989112275319619282">Răsfoiește</translation> <translation id="199425419756152024">Vezi parola</translation> +<translation id="2010008505735295285">Reîncarcă</translation> <translation id="2015722694326466240">Pentru a vedea parolele, trebuie mai întâi să setezi o parolă pe dispozitiv.</translation> <translation id="2021670401941426298">Vezi instrucțiunile motorului de căutare pentru ștergerea istoricului căutărilor, dacă este cazul.</translation> <translation id="202292859882676807">Se acordă acces la microfon</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Anulează</translation> <translation id="3277021493514034324">Adresa site-ului a fost copiată</translation> <translation id="3285962946108803577">Trimite pagina…</translation> +<translation id="3289505634533552500">Căutare vocală</translation> <translation id="3290875554372353449">Alege un cont</translation> <translation id="3305294846493618482">mai multe</translation> <translation id="3311748811247479259">Dezactivat</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Elimini contul <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Afișează</translation> <translation id="5317780077021120954">Salvează</translation> +<translation id="5318298563956633672">Urmărești deja acest produs.</translation> <translation id="5339316356165661760">Activează sincronizarea</translation> <translation id="536067926684072644">Afișează marcajele</translation> <translation id="5360976571138293719">Pentru mai multe setări privind confidențialitatea, securitatea și colectarea datelor, consultă <ph name="BEGIN_LINK" />Serviciile Google<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Activează sincronizarea</translation> <translation id="5819208479324046259">Gestionat de <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Salvează parole, metode de plată și adrese pentru ca browserul Chrome să le completeze automat mai târziu.</translation> +<translation id="5834415013958049700">Imaginea pe care ai copiat-o din Lens</translation> <translation id="5846482154967366008">Motor de căutare</translation> <translation id="5854790677617711513">Mai vechi de 30 de zile</translation> <translation id="5857090052475505287">Dosar nou</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Recently visited (Vizitate recent)</translation> <translation id="5988097621740394599">Vezi scăderile de prețuri din file</translation> <translation id="5988851877894965432">Deschide adresele URL în Chrome</translation> +<translation id="6006672969046233841">Filă nouă</translation> <translation id="6012140227487808125">Se criptează…</translation> <translation id="6021332621416007159">Deschide în…</translation> <translation id="6027945736510816438">Ai vrut să scrii <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Sincronizează pentru a obține conținut în funcție de interesele tale.</translation> <translation id="721597782417389033">Pseudonimul cardului nu este valid</translation> <translation id="7221173315674413369">Explorează noile funcții și sfaturi în secțiunea Noutăți</translation> +<translation id="7223102419539744003">Închide fila</translation> <translation id="722454870747268814">Filă incognito nouă</translation> <translation id="7265758999917665941">Niciodată pentru acest site</translation> <translation id="7272437679830969316">Nu ți se poate confirma identitatea. Parola nu a fost copiată.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Nu s-a putut descărca</translation> <translation id="785938070103630874">Deschide parole, metode de plată sau adresa și multe altele</translation> <translation id="7859704718976024901">Istoricul de navigare</translation> +<translation id="7870750252270996949">Imaginea copiată din Lens</translation> <translation id="7879275349003161544">Afișează descărcările</translation> <translation id="7884694604461143138">Istoricul căutărilor (găsite: <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Pentru a-ți proteja confidențialitatea, Chrome nu va completa automat acest câmp.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Vizualizarea prestabilită a site-urilor</translation> <translation id="8820817407110198400">Marcaje</translation> +<translation id="882557203579758546">Caută în pagină…</translation> <translation id="8840513115188359703">Nu vei fi deconectat(ă) de la Contul Google.</translation> <translation id="8843129975935593190">Organizația ta limitează tipurile de conținut pe care îl poți sincroniza.</translation> <translation id="8849001918648564819">Ascuns</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index a4e02cf..6850d0f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Naskenovať kód QR</translation> <translation id="1552525382687785070">Synchronizáciu zakázal správca</translation> <translation id="1554477036522844996">Nové okno</translation> +<translation id="1565371473877914088">Nová karta inkognito</translation> <translation id="1580715474678097352">Chráňte sa pred nebezpečenými webmi</translation> <translation id="1580783302095112590">E-mail bol odoslaný.</translation> <translation id="1582732959743469162">Tým zastavíte ďalší postup aktuálneho sťahovania.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Mobil</translation> <translation id="1989112275319619282">Prehliadať</translation> <translation id="199425419756152024">Zobraziť heslo</translation> +<translation id="2010008505735295285">Opätovné načítanie</translation> <translation id="2015722694326466240">Ak si chcete zobraziť heslá, najprv musíte v zariadení nastaviť vstupný kód.</translation> <translation id="2021670401941426298">Prečítajte si pokyny vyhľadávača, ako odstrániť históriu vyhľadávania (ak je to možné).</translation> <translation id="202292859882676807">Prístup k mikrofónu je povolený</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Zrušiť</translation> <translation id="3277021493514034324">Adresa webu bola skopírovaná</translation> <translation id="3285962946108803577">Zdieľať stránku...</translation> +<translation id="3289505634533552500">Hlasové vyhľadávanie</translation> <translation id="3290875554372353449">Výber účtu</translation> <translation id="3305294846493618482">viac</translation> <translation id="3311748811247479259">Vypnuté</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Chcete odstrániť účet <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Zobraziť</translation> <translation id="5317780077021120954">Uložiť</translation> +<translation id="5318298563956633672">Tento výrobok už sledujete.</translation> <translation id="5339316356165661760">Zapnúť synchronizáciu</translation> <translation id="536067926684072644">Zobraziť záložky</translation> <translation id="5360976571138293719">Ďalšie nastavenia týkajúce sa ochrany súkromia, zabezpečenia a zhromažďovania údajov nájdete v sekcii <ph name="BEGIN_LINK" />Služby Googlu<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Zapnúť synchronizáciu</translation> <translation id="5819208479324046259">Spravuje <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Uložte si heslá, spôsoby platby a adresy, aby ich Chrome mohol neskôr automaticky dopĺňať.</translation> +<translation id="5834415013958049700">Obrázok Lens, ktorý ste skopírovali</translation> <translation id="5846482154967366008">Vyhľadávací nástroj</translation> <translation id="5854790677617711513">Staršie ako 30 dní</translation> <translation id="5857090052475505287">Nový priečinok</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Nedávno navštívené</translation> <translation id="5988097621740394599">Zobrazte si na kartách poklesy cien.</translation> <translation id="5988851877894965432">Otvoriť webové adresy v Chrome</translation> +<translation id="6006672969046233841">Nová karta</translation> <translation id="6012140227487808125">Prebieha šifrovanie…</translation> <translation id="6021332621416007159">Otvoriť v...</translation> <translation id="6027945736510816438">Mysleli ste <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Synchronizujte a získavajte tak obsah na základe svojich záujmov.</translation> <translation id="721597782417389033">Neplatná prezývka karty</translation> <translation id="7221173315674413369">Preskúmajte nové funkcie a tipy v sekcii Novinky</translation> +<translation id="7223102419539744003">Zavretie karty</translation> <translation id="722454870747268814">Nová karta inkognito</translation> <translation id="7265758999917665941">Nikdy pre tento web</translation> <translation id="7272437679830969316">Vašu totožnosť nie je možné overiť. Heslo sa neskopírovalo.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Sťahovanie zlyhalo</translation> <translation id="785938070103630874">Otvorte heslá, spôsoby platby alebo adresu a podobne</translation> <translation id="7859704718976024901">História prehliadania</translation> +<translation id="7870750252270996949">Funkcia Lens skopírovala obrázok</translation> <translation id="7879275349003161544">Zobraziť stiahnuté</translation> <translation id="7884694604461143138">Hľadať v histórii (počet nájdených: <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Chrome automaticky nedoplní toho pole, čím ochráni vaše súkromie.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Predvolené zobrazenie webu</translation> <translation id="8820817407110198400">Záložky</translation> +<translation id="882557203579758546">Vyhľadanie na stránke…</translation> <translation id="8840513115188359703">Neodhlásime vás z účtu Google.</translation> <translation id="8843129975935593190">Vaša organizácia obmedzuje, čo môžete synchronizovať.</translation> <translation id="8849001918648564819">Skryté</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index a6e9f64..fe98fd3f 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Scan QR Code</translation> <translation id="1552525382687785070">Sinhronizacijo je onemogočil skrbnik</translation> <translation id="1554477036522844996">Novo okno</translation> +<translation id="1565371473877914088">Nov anonimni zavihek</translation> <translation id="1580715474678097352">Bodite zaščiteni pred nevarnimi spletnimi mesti</translation> <translation id="1580783302095112590">Pošta je poslana.</translation> <translation id="1582732959743469162">S tem boste prekinili trenutni prenos.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Mobilna naprava</translation> <translation id="1989112275319619282">Brskanje</translation> <translation id="199425419756152024">Prikaži geslo</translation> +<translation id="2010008505735295285">Znova naloži</translation> <translation id="2015722694326466240">Če si želite ogledati gesla, morate najprej nastaviti geslo v napravi.</translation> <translation id="2021670401941426298">Oglejte si navodila iskalnika za brisanje zgodovine iskanja, če je na voljo.</translation> <translation id="202292859882676807">Dostop do mikrofona je odobren</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Prekliči</translation> <translation id="3277021493514034324">Kopiran naslov spletnega mesta</translation> <translation id="3285962946108803577">Deljenje strani …</translation> +<translation id="3289505634533552500">Glasovno iskanje</translation> <translation id="3290875554372353449">Izberite račun</translation> <translation id="3305294846493618482">več</translation> <translation id="3311748811247479259">Izklopljeno</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Želite odstraniti račun <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Pokaži</translation> <translation id="5317780077021120954">Shrani</translation> +<translation id="5318298563956633672">Ta izdelek že spremljate.</translation> <translation id="5339316356165661760">Vklopi sinhronizacijo</translation> <translation id="536067926684072644">Prikaz zaznamkov</translation> <translation id="5360976571138293719">Če vas zanima več nastavitev, povezanih z zasebnostjo, varnostjo in zbiranjem podatkov, si oglejte razdelek <ph name="BEGIN_LINK" />Googlove storitve<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Vklopi sinhronizacijo</translation> <translation id="5819208479324046259">Brskalnik upravlja podjetje <ph name="MANAGER" />. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Shranjevanje gesel, plačilnih sredstev in naslovov za Chrome za samodejno izpolnjevanje pozneje.</translation> +<translation id="5834415013958049700">Iskanje slike, ki ste jo kopirali, z Googlom Lens</translation> <translation id="5846482154967366008">Iskalnik</translation> <translation id="5854790677617711513">Starejše od 30 dni</translation> <translation id="5857090052475505287">Nova mapa</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Nedavno obiskano</translation> <translation id="5988097621740394599">Oglejte si znižanja cen na zavihkih.</translation> <translation id="5988851877894965432">Odpiranje URL-jev v Chromu</translation> +<translation id="6006672969046233841">Nov zavihek</translation> <translation id="6012140227487808125">Šifriranje ...</translation> <translation id="6021332621416007159">Odpri v ...</translation> <translation id="6027945736510816438">Ali ste mislili <ph name="WEBSITE" />?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Sinhronizirajte, da boste deležni vsebine glede na vaša zanimanja.</translation> <translation id="721597782417389033">Neveljaven vzdevek za kartico</translation> <translation id="7221173315674413369">Raziščite nove funkcije in nasvete v »Novosti«</translation> +<translation id="7223102419539744003">Zapri zavihek</translation> <translation id="722454870747268814">New Incognito Tab</translation> <translation id="7265758999917665941">Nikoli za to spletno mesto</translation> <translation id="7272437679830969316">Identitete ni mogoče preveriti. Geslo ni kopirano.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Prenos ni uspel</translation> <translation id="785938070103630874">Odprite gesla, plačilna sredstva ali naslov in drugo</translation> <translation id="7859704718976024901">Zgodovina brskanja</translation> +<translation id="7870750252270996949">Iskanje kopirane slike z Googlom Lens</translation> <translation id="7879275349003161544">Pokaži prenose</translation> <translation id="7884694604461143138">Zgodovina iskanja (najdeno: <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Chrome zaradi varovanja vaše zasebnosti ne bo samodejno izpolnil tega polja.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Privzeti pogled spletnega mesta</translation> <translation id="8820817407110198400">Zaznamki</translation> +<translation id="882557203579758546">Najdi na strani …</translation> <translation id="8840513115188359703">Iz Google Računa ne boste odjavljeni.</translation> <translation id="8843129975935593190">Vaša organizacija omejuje, kaj lahko sinhronizirate.</translation> <translation id="8849001918648564819">Skrito</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sq.xtb b/ios/chrome/app/strings/resources/ios_strings_sq.xtb index b7adc2c9..db0849ee 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sq.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sq.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Trokit tek "Aplikacioni i parazgjedhur i shfletuesit"</translation> <translation id="2820289420301699633">Administratori yt ka kontroll mbi Chrome dhe mund të ketë qasje në të dhënat e tij</translation> <translation id="2830972654601096923">Menaxho adresat...</translation> +<translation id="2834399722155632105">3. Trokit tek "Opsionet e fjalëkalimeve"</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Rivendos cilësimet e përkthimit</translation> <translation id="2848086008667475748">Bëje "Të parazgjedhur" te "Cilësimet"…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Për të ndarë me personat në afërsi, lejoji të skanojnë këtë kod QR me kamerën e tyre ose aplikacionin e skanerit të kodeve QR</translation> <translation id="5911030830365207728">Përkthe me Google</translation> <translation id="5913600720976431809">Opsionet për përkthimin e faqes</translation> +<translation id="5933515656458364246">Sinkronizo të dhënat e tua në të gjitha pajisjet.</translation> <translation id="5938160824633642847">Pajisja jote është thuajse plot. Liro hapësirë dhe provo përsëri.</translation> <translation id="5948291296578561264">Kjo të lejon të ruash fotografi në bibliotekën tënde të fotografive.</translation> <translation id="5951816930277761335">Ndaj lidhjen</translation> @@ -713,6 +715,7 @@ Të dhënat e tua janë koduar me frazën tënde të kalimit për sinkronizimin më <ph name="TIME" />. Fute atë për të nisur sinkronizmin.</translation> <translation id="6418346271604475326">Po përgatit PDF</translation> +<translation id="6429213933892582367">Hap "Opsionet e fjalëkalimeve"</translation> <translation id="6434591244308415567">Ndodhi një gabim. Provo përsëri më vonë.</translation> <translation id="6435236283694032571">Shto te lista e leximit</translation> <translation id="6439338047467462846">Lejo të gjitha</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Thuaji përgjigjet mbrapsht</translation> <translation id="7207023858769244910">Sinkronizoje për të marrë përmbajtje bazuar në interesat e tu.</translation> <translation id="721597782417389033">Pseudonim i pavlefshëm karte</translation> +<translation id="7221173315674413369">Eksploro këshillat dhe veçoritë e reja te "Ç'të reja ka"</translation> <translation id="722454870747268814">Skedë e re "e fshehtë"</translation> <translation id="7265758999917665941">Asnjëherë për këtë faqe</translation> <translation id="7272437679830969316">Nuk mund të verifikohet identiteti yt. Fjalëkalimi nuk u kopjua.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Shkarko</translation> <translation id="7531345132340165516">Sajti aktual</translation> <translation id="7537586195939242955">Na vjen keq, "Pass" nuk mund të instalohet te "Passbook" në këtë moment.</translation> +<translation id="7553234618121028547">Për ta çaktivizuar, hap <ph name="BEGIN_LINK" />Cilësimet<ph name="END_LINK" /> dhe shko te "Opsionet e fjalëkalimeve".</translation> <translation id="7554791636758816595">Skedë e re</translation> <translation id="7561196759112975576">Gjithmonë</translation> <translation id="7583004045319035904">Përdor <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> për të shkyçur skedat "e fshehta".</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Krijo, ruaj dhe menaxho fjalëkalimet e tua që të mund të identifikohesh me lehtësi në sajte dhe aplikacione. <ph name="BEGIN_LINK" />Mëso më shumë<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Çaktivizo</translation> <translation id="8114753159095730575">Ofrohet shkarkimi i skedarit. Opsionet ofrohen pranë fundit të ekranit.</translation> +<translation id="81313319706244542">2. Trokit te "Fjalëkalimet"</translation> <translation id="8132598642024322408">Tani <ph name="PRICE" />, ishte <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Kjo do të përdoret për të krijuar ngjarje në Apple Calendar nga Chrome dhe nga "Lentja e Google".</translation> <translation id="8156478151976189188">Sinkronizimi i fjalëkalimeve nuk po funksionon</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Kërkim i ri</translation> <translation id="8323906514956095947">Prek dhe mbaj të shtypur për opsione të tjera të skedës</translation> <translation id="8328777765163860529">Mbylli të gjitha</translation> +<translation id="8343993175958086504">Rezervo gjërat e tua dhe përdori në çdo pajisje.</translation> <translation id="8378714024927312812">Menaxhohet nga organizata jote</translation> <translation id="8386068868580335421">Rivendos</translation> <translation id="8407669440184693619">Nuk u gjetën fjalëkalime për këtë sajt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index 07e837f..57db5fac 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Tryck på Standardwebbläsarapp</translation> <translation id="2820289420301699633">Administratören har kontroll över Chrome och kan få åtkomst till dess data</translation> <translation id="2830972654601096923">Hantera adresser …</translation> +<translation id="2834399722155632105">3. Tryck på Lösenordsalternativ</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Återställ översättningsinställningar</translation> <translation id="2848086008667475748">Använd som standard i Inställningar …</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Om du vill dela med personer i närheten ber du dem att skanna QR-koden med kameran eller en app för att skanna QR-koder</translation> <translation id="5911030830365207728">Google Översätt</translation> <translation id="5913600720976431809">Alternativ för att översätta sidan</translation> +<translation id="5933515656458364246">Synkronisera din data på alla enheter.</translation> <translation id="5938160824633642847">Det finns nästan ingen plats kvar på enheten. Frigör utrymme och försök igen.</translation> <translation id="5948291296578561264">Gör så att du kan spara foton i fotobiblioteket.</translation> <translation id="5951816930277761335">Dela länken</translation> @@ -713,6 +715,7 @@ Din data krypterades med lösenfrasen den <ph name="TIME" />. Ange den om du vill starta synkroniseringen.</translation> <translation id="6418346271604475326">Förbereder PDF</translation> +<translation id="6429213933892582367">Öppna Lösenordsalternativ</translation> <translation id="6434591244308415567">Ett fel uppstod. Försök igen senare.</translation> <translation id="6435236283694032571">Lägg till i läslistan</translation> <translation id="6439338047467462846">Tillåt alla</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Läs upp svaren</translation> <translation id="7207023858769244910">Synkronisera för att få innehåll utifrån dina intressen.</translation> <translation id="721597782417389033">Ogiltigt kortnamn</translation> +<translation id="7221173315674413369">Utforska nya funktioner och tips i Nyheter</translation> <translation id="722454870747268814">Ny inkognitoflik</translation> <translation id="7265758999917665941">Aldrig på den här webbplatsen</translation> <translation id="7272437679830969316">Det gick inte att verifiera din identitet. Lösenordet har inte kopierats.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">Ladda ned</translation> <translation id="7531345132340165516">Nuvarande webbplats</translation> <translation id="7537586195939242955">Det går tyvärr inte att installera det här objektet i Passbook just nu.</translation> +<translation id="7553234618121028547">Inaktivera genom att öppna <ph name="BEGIN_LINK" />Inställningar<ph name="END_LINK" /> och sedan Lösenordsalternativ.</translation> <translation id="7554791636758816595">Ny flik</translation> <translation id="7561196759112975576">Alltid</translation> <translation id="7583004045319035904">Lås upp inkognitoflikarna med <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Skapa, spara och hantera dina lösenord så att du enkelt kan logga in på webbplatser och i appar. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Inaktivera</translation> <translation id="8114753159095730575">En filnedladdning är tillgänglig. Alternativ visas nära skärmens nederkant.</translation> +<translation id="81313319706244542">2. Tryck på Lösenord</translation> <translation id="8132598642024322408">Nedsatt från <ph name="PREVIOUS_PRICE" /> till <ph name="PRICE" />.</translation> <translation id="8136856065410661948">Detta används för att skapa händelser i Apple Kalender från Chrome och Google Lens.</translation> <translation id="8156478151976189188">Det går inte att synkronisera lösenord</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Ny sökning</translation> <translation id="8323906514956095947">Tryck länge för fler flikalternatv</translation> <translation id="8328777765163860529">Stäng alla</translation> +<translation id="8343993175958086504">Säkerhetskopiera dina grejer och använd dem på vilken enhet som helst</translation> <translation id="8378714024927312812">Hanteras av organisationen</translation> <translation id="8386068868580335421">Återställ</translation> <translation id="8407669440184693619">Inga lösenord hittades för webbplatsen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index fc401434..d042a50 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. இயல்பு உலாவி ஆப்ஸ் என்பதைத் தட்டவும்</translation> <translation id="2820289420301699633">Chromeமின் கட்டுப்பாடு உங்கள் நிர்வாகியிடம் இருப்பதால் அதன் தரவை அவரால் அணுக முடியும்</translation> <translation id="2830972654601096923">முகவரிகளை நிர்வகி...</translation> +<translation id="2834399722155632105">3. கடவுச்சொல் விருப்பங்கள் என்பதைத் தட்டவும்</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">மொழியாக்க அமைப்புகளை மீட்டமை</translation> <translation id="2848086008667475748">அமைப்புகளில் இயல்பு உலாவியாக அமை…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">அருகிலுள்ளவர்களுடன் பகிர, கேமரா மூலமோ QR ஸ்கேன்னர் ஆப்ஸ் மூலமோ அவர்களை இந்த QR குறியீட்டை ஸ்கேன் செய்யச் சொல்லுங்கள்</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">பக்கத்தை மொழிபெயர்ப்பதற்கான விருப்பத்தேர்வுகள்</translation> +<translation id="5933515656458364246">அனைத்துச் சாதனங்களிலும் உங்கள் தரவை ஒத்திசைக்கலாம்.</translation> <translation id="5938160824633642847">உங்கள் சாதனச் சேமிப்பகம் கிட்டத்தட்ட நிரம்பிவிட்டது. இடத்தைக் காலியாக்கி, மீண்டும் முயலவும்.</translation> <translation id="5948291296578561264">உங்கள் பட நூலகத்தில் படங்களைச் சேமிக்க இது அனுமதிக்கும்.</translation> <translation id="5951816930277761335">இணைப்பைப் பகிரவும்</translation> @@ -713,6 +715,7 @@ <ph name="TIME" /> அன்று உங்கள் தரவு உங்கள் ஒத்திசைவு கடவுச்சொற்றொடரைக் கொண்டு என்க்ரிப்ட் செய்யப்பட்டது. ஒத்திசைவைத் தொடங்க, அதை உள்ளிடவும்.</translation> <translation id="6418346271604475326">PDF தயாராகிறது</translation> +<translation id="6429213933892582367">கடவுச்சொல் விருப்பங்கள் என்பதைத் திறக்கவும்</translation> <translation id="6434591244308415567">பிழை ஏற்பட்டது. பிறகு முயலவும்.</translation> <translation id="6435236283694032571">வாசிப்புப் பட்டியலில் சேர்</translation> <translation id="6439338047467462846">அனைத்தையும் அனுமதி</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">பதில்களை மீண்டும் படி</translation> <translation id="7207023858769244910">உங்கள் ஆர்வங்களின் அடிப்படையில் உள்ளடக்கத்தைப் பார்க்க ஒத்திசைக்கவும்.</translation> <translation id="721597782417389033">கார்டின் புனைப்பெயர் தவறானது</translation> +<translation id="7221173315674413369">‘புதியவை’ என்பதில் புதிய அம்சங்களையும் உதவிக்குறிப்புகளையும் கண்டறியலாம்</translation> <translation id="722454870747268814">புதிய மறைநிலைத் தாவல்</translation> <translation id="7265758999917665941">இந்தத் தளத்திற்கு எப்போதும் வேண்டாம்</translation> <translation id="7272437679830969316">அடையாளத்தைச் சரிபார்க்க முடியவில்லை. கடவுச்சொல் நகலெடுக்கப்படவில்லை.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">பதிவிறக்கு</translation> <translation id="7531345132340165516">தற்போதைய தளம்</translation> <translation id="7537586195939242955">வருந்துகிறோம், இந்த நேரத்தில் உங்கள் பாஸை பாஸ்புக்கில் நிறுவ முடியாது.</translation> +<translation id="7553234618121028547">முடக்க, <ph name="BEGIN_LINK" />அமைப்புகள்<ph name="END_LINK" /> என்பதைத் திறந்து கடவுச்சொல் விருப்பங்களுக்குச் செல்லவும்.</translation> <translation id="7554791636758816595">புதிய தாவல்</translation> <translation id="7561196759112975576">எப்போதும்</translation> <translation id="7583004045319035904">மறைநிலைத் தாவல்களை அன்லாக் செய்ய <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> ஐப் பயன்படுத்தவும்.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">தளங்களிலும் ஆப்ஸிலும் எளிதாக உள்நுழைய, கடவுச்சொற்களை உருவாக்கலாம் சேமிக்கலாம் நிர்வகிக்கலாம். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation> <translation id="8105368624971345109">முடக்கு</translation> <translation id="8114753159095730575">ஃபைலைப் பதிவிறக்கிக்கொள்ளலாம். திரையின் அடிப்பகுதிக்கு அருகில், விருப்பங்கள் உள்ளன.</translation> +<translation id="81313319706244542">2. கடவுச்சொற்கள் என்பதைத் தட்டவும்</translation> <translation id="8132598642024322408">தற்போதைய விலை: <ph name="PRICE" />, முந்தைய விலை: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Chrome, Google Lens ஆகியவற்றில் இருந்து உங்கள் Apple Calendarரில் நிகழ்வுகளை உருவாக்க இது பயன்படுத்தப்படும்.</translation> <translation id="8156478151976189188">கடவுச்சொல்லை ஒத்திசைக்க முடியவில்லை</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">புதிய தேடல்</translation> <translation id="8323906514956095947">கூடுதல் தாவல் விருப்பத்தேர்வுகளுக்குத் தொட்டுப் பிடிக்கவும்</translation> <translation id="8328777765163860529">எல்லாவற்றையும் மூடு</translation> +<translation id="8343993175958086504">உங்கள் தரவைக் காப்புப் பிரதி எடுத்து எந்தச் சாதனத்தில் வேண்டுமானாலும் பயன்படுத்தலாம்.</translation> <translation id="8378714024927312812">உங்கள் நிறுவனத்தால் நிர்வகிக்கப்படுகிறது</translation> <translation id="8386068868580335421">மீட்டமை</translation> <translation id="8407669440184693619">இந்தத் தளத்திற்கான கடவுச்சொற்கள் எதுவும் இல்லை</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index 69a2c1e2..46dea25 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. ఆటోమేటిక్ బ్రౌజర్ యాప్ను ట్యాప్ చేయండి</translation> <translation id="2820289420301699633">మీ అడ్మినిస్ట్రేటర్ Chromeపైన కంట్రోల్ను కలిగి ఉన్నారు, అలాగే దాని డేటాను యాక్సెస్ చేయగలరు</translation> <translation id="2830972654601096923">అడ్రస్లను మేనేజ్ చేయండి...</translation> +<translation id="2834399722155632105">3. పాస్వర్డ్ ఆప్షన్లను ట్యాప్ చేయండి</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">అనువాద సెట్టింగ్లను రీసెట్ చేయి</translation> <translation id="2848086008667475748">సెట్టింగ్లకు వెళ్లి దానిని 'ఆటోమేటిక్ సెట్టింగ్'గా సెట్ చేయండి…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">సమీపంలోని వ్యక్తులతో షేర్ చేయడానికి, వారి కెమెరా లేదా QR స్కానర్ యాప్తో ఈ QR కోడ్ను స్కాన్ చేయడానికి వారిని అనుమతించండి</translation> <translation id="5911030830365207728">Google Translate</translation> <translation id="5913600720976431809">పేజీ అనువాద ఎంపికలు</translation> +<translation id="5933515656458364246">అన్ని పరికరాలలో మీ డేటాను సింక్ చేయండి.</translation> <translation id="5938160824633642847">మీ పరికరం దాదాపు నిండింది. స్థలాన్ని ఖాళీ చేసిన తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="5948291296578561264">ఇది మీ ఫోటో లైబ్రరీకి ఫోటోలను సేవ్ చేయడానికి మీకు వీలు కల్పిస్తుంది.</translation> <translation id="5951816930277761335">లింక్ను షేర్ చేయండి</translation> @@ -713,6 +715,7 @@ <ph name="TIME" />న మీ సింక్ రహస్య పదబంధంతో మీ డేటా ఎన్క్రిప్ట్ చేయబడింది. సింక్ను ప్రారంభించడానికి దీన్ని నమోదు చేయండి.</translation> <translation id="6418346271604475326">PDF సిద్ధపరు.</translation> +<translation id="6429213933892582367">పాస్వర్డ్ ఆప్షన్లను తెరవండి</translation> <translation id="6434591244308415567">ఎర్రర్ ఏర్పడింది. తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="6435236283694032571">చదవాల్సిన లిస్ట్కు జోడించండి</translation> <translation id="6439338047467462846">అన్నింటిని అనుమతించండి</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">సమాధానాలను చదివి వినిపించు</translation> <translation id="7207023858769244910">సింక్ చేసి, మీ ఆసక్తుల ఆధారంగా కంటెంట్ను పొందండి.</translation> <translation id="721597782417389033">కార్డ్ మారుపేరు చెల్లదు</translation> +<translation id="7221173315674413369">'కొత్తగా ఏమి ఉన్నాయి' విభాగంలో కొత్త ఫీచర్లు, చిట్కాలను అన్వేషించండి</translation> <translation id="722454870747268814">కొత్త అజ్ఞాత ట్యాబ్</translation> <translation id="7265758999917665941">ఈ సైట్ కోసం ఎప్పటికీ వద్దు</translation> <translation id="7272437679830969316">మీ గుర్తింపును ధృవీకరించడం సాధ్యపడలేదు. పాస్వర్డ్ కాపీ చేయబడలేదు.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">డౌన్లోడ్ చేయి</translation> <translation id="7531345132340165516">ప్రస్తుత సైట్</translation> <translation id="7537586195939242955">క్షమించండి, ఈ సమయంలో పాస్బుక్కు మీ పాస్ను ఇన్స్టాల్ చేయడం సాధ్యపడదు.</translation> +<translation id="7553234618121028547">ఆఫ్ చేయడానికి, <ph name="BEGIN_LINK" />సెట్టింగ్ల<ph name="END_LINK" />ను తెరిచి, పాస్వర్డ్ ఆప్షన్లకు వెళ్లండి.</translation> <translation id="7554791636758816595">కొత్త ట్యాబ్</translation> <translation id="7561196759112975576">ఎల్లప్పుడూ</translation> <translation id="7583004045319035904">మీ అజ్ఞాత ట్యాబ్లను అన్లాక్ చేయడానికి <ph name="BIOMETRIC_AUTHENITCATION_TYPE" />ను ఉపయోగించండి.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">మీ పాస్వర్డ్లను క్రియేట్ చేయండి, సేవ్ చేయండి, అలాగే మేనేజ్ చేయండి, తద్వారా మీరు సైట్లకు, యాప్లకు సులభంగా సైన్ ఇన్ చేయవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> <translation id="8105368624971345109">ఆఫ్ చేయి</translation> <translation id="8114753159095730575">ఫైల్ డౌన్లోడ్ అందుబాటులో ఉంది. ఎంపికలు స్క్రీన్ దిగువ భాగంలో అందుబాటులో ఉంటాయి.</translation> +<translation id="81313319706244542">2. పాస్వర్డ్లను ట్యాప్ చేయండి</translation> <translation id="8132598642024322408">ఇప్పుడు <ph name="PRICE" />, మునుపు <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Chrome, Google Lens నుండి మీ Apple క్యాలెండర్లో ఈవెంట్లను క్రియేట్ చేయడానికి ఇది ఉపయోగించబడుతుంది.</translation> <translation id="8156478151976189188">పాస్వర్డ్ సింక్ పనిచేయడం లేదు</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">కొత్త శోధన</translation> <translation id="8323906514956095947">మరిన్ని ట్యాబ్ ఎంపికల కోసం తాకి & అలాగే నొక్కి ఉంచండి</translation> <translation id="8328777765163860529">అన్నింటినీ మూసివేయి</translation> +<translation id="8343993175958086504">మీ అంశాలను బ్యాకప్ చేసి, వాటిని ఏ పరికరంలో అయినా ఉపయోగించండి.</translation> <translation id="8378714024927312812">మీ సంస్థ ద్వారా నిర్వహించబడుతున్నవి</translation> <translation id="8386068868580335421">రీసెట్ చేయి</translation> <translation id="8407669440184693619">ఈ సైట్ కోసం పాస్వర్డ్లు కనుగొనబడలేదు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb index 13e8794..4725390 100644 --- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. Varsayılan Tarayıcı Uygulaması'na dokunun</translation> <translation id="2820289420301699633">Yöneticiniz, Chrome üzerinde kontrole sahip ve Chrome'un verilerine ulaşabilir</translation> <translation id="2830972654601096923">Adresleri Yönet...</translation> +<translation id="2834399722155632105">3. Şifre Seçenekleri'ne dokunun</translation> <translation id="2834956026595107950"><ph name="TITLE" />, <ph name="STATE" />, <ph name="URL" /></translation> <translation id="2843803966603263712">Çeviri Ayarlarını Sıfırla</translation> <translation id="2848086008667475748">Ayarlar'dan Varsayılan yapın…</translation> @@ -632,6 +633,7 @@ <translation id="5899314093904173337">Yakınlardaki kişilerle paylaşmak için bu QR kodunu kameraları veya QR tarayıcı uygulamalarıyla taramalarını sağlayın</translation> <translation id="5911030830365207728">Google Çeviri</translation> <translation id="5913600720976431809">Sayfayı çevirme seçenekleri</translation> +<translation id="5933515656458364246">Verilerinizi tüm cihazlarda senkronize edin.</translation> <translation id="5938160824633642847">Cihazınızın depolama alanı dolmak üzere. Yer boşaltın ve tekrar deneyin.</translation> <translation id="5948291296578561264">Böylece, fotoğrafları fotoğraf kitaplığınıza kaydedebilirsiniz.</translation> <translation id="5951816930277761335">Bağlantıyı paylaşın</translation> @@ -713,6 +715,7 @@ Verileriniz <ph name="TIME" /> tarihinde senkronizasyon parolanızla şifrelendi. Senkronizasyonu başlatmak için senkronizasyon parolanızı girin.</translation> <translation id="6418346271604475326">PDF hazırlanıyor</translation> +<translation id="6429213933892582367">Şifre Seçenekleri'ni açın</translation> <translation id="6434591244308415567">Bir hata oluştu. Daha sonra tekrar deneyin.</translation> <translation id="6435236283694032571">Okuma Listesine Ekle</translation> <translation id="6439338047467462846">Tümüne İzin Ver</translation> @@ -828,6 +831,7 @@ <translation id="7203585745079012652">Yanıtı Sesli Söyle</translation> <translation id="7207023858769244910">Senkronize ederek ilgi alanlarınıza dayalı içerikler görün.</translation> <translation id="721597782417389033">Kart İçin Geçersiz Takma Ad</translation> +<translation id="7221173315674413369">Yenilikler bölümünde yeni özellikleri ve ipuçlarını keşfedin</translation> <translation id="722454870747268814">Yeni Gizli Sekme</translation> <translation id="7265758999917665941">Bu Site İçin Hiçbir Zaman</translation> <translation id="7272437679830969316">Kimliğiniz doğrulanamıyor. Şifre kopyalanmadı.</translation> @@ -861,6 +865,7 @@ <translation id="7514365320538308">İndir</translation> <translation id="7531345132340165516">Geçerli Site</translation> <translation id="7537586195939242955">Maalesef Pass'iniz şu anda Passbook'a yüklenemiyor.</translation> +<translation id="7553234618121028547">Özelliği kapatmak için <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'ı açıp Şifre Seçenekleri bölümüne gidin.</translation> <translation id="7554791636758816595">Yeni Sekme</translation> <translation id="7561196759112975576">Her zaman</translation> <translation id="7583004045319035904">Gizli sekmelerinizin kilidini açmak için <ph name="BIOMETRIC_AUTHENITCATION_TYPE" /> kullanın.</translation> @@ -942,6 +947,7 @@ <translation id="8101409298456377967">Sitelerde ve uygulamalarda kolayca oturum açabilmek için şifrelerinizi oluşturun, kaydedin ve yönetin. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation> <translation id="8105368624971345109">Kapat</translation> <translation id="8114753159095730575">Dosya indirme işlevi kullanılabilir. Seçenekler ekranın alt tarafındadır.</translation> +<translation id="81313319706244542">2. Şifreler'e dokunun</translation> <translation id="8132598642024322408">Şimdiki fiyat: <ph name="PRICE" />; eski fiyat: <ph name="PREVIOUS_PRICE" />.</translation> <translation id="8136856065410661948">Bu bilgiler, Chrome ve Google Lens'ten alınan etkinlikleri Apple Takvim'de oluşturmak için kullanılır.</translation> <translation id="8156478151976189188">Şifre Senkronizasyonu Çalışmıyor</translation> @@ -964,6 +970,7 @@ <translation id="8319076807703933069">Yeni Arama</translation> <translation id="8323906514956095947">Diğer sekme seçenekleri için dokunup basılı tutun</translation> <translation id="8328777765163860529">Tümünü Kapat</translation> +<translation id="8343993175958086504">Verilerinizi yedekleyin ve istediğiniz cihazda kullanın.</translation> <translation id="8378714024927312812">Kuruluşunuz tarafından yönetiliyor</translation> <translation id="8386068868580335421">Sıfırla</translation> <translation id="8407669440184693619">Bu site için şifre bulunamadı</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index 319685b48..4e47b3a1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -87,6 +87,7 @@ <translation id="1545749641540134597">Quét mã QR</translation> <translation id="1552525382687785070">Quản trị viên của bạn đã tắt tính năng đồng bộ hóa</translation> <translation id="1554477036522844996">Cửa sổ mới</translation> +<translation id="1565371473877914088">Thẻ ẩn danh mới</translation> <translation id="1580715474678097352">Luôn được bảo vệ khỏi các trang web nguy hiểm</translation> <translation id="1580783302095112590">Thư đã được gửi.</translation> <translation id="1582732959743469162">Thao tác này sẽ ngừng tất cả hoạt động tải xuống đang diễn ra.</translation> @@ -133,6 +134,7 @@ <translation id="1981118202195772574">Thiết bị di động</translation> <translation id="1989112275319619282">Duyệt qua</translation> <translation id="199425419756152024">Xem mật khẩu</translation> +<translation id="2010008505735295285">Tải lại</translation> <translation id="2015722694326466240">Để xem mật khẩu, trước tiên bạn phải đặt mật mã trên thiết bị của mình.</translation> <translation id="2021670401941426298">Để xóa nhật ký tìm kiếm, hãy xem hướng dẫn (nếu có) của công cụ tìm kiếm bạn đang dùng.</translation> <translation id="202292859882676807">Đã cho phép truy cập micrô</translation> @@ -299,6 +301,7 @@ <translation id="3272527697863656322">Hủy</translation> <translation id="3277021493514034324">Đã sao chép địa chỉ trang web</translation> <translation id="3285962946108803577">Chia sẻ trang...</translation> +<translation id="3289505634533552500">Tìm kiếm bằng giọng nói</translation> <translation id="3290875554372353449">Chọn một tài khoản</translation> <translation id="3305294846493618482">xem thêm</translation> <translation id="3311748811247479259">Đang tắt</translation> @@ -556,6 +559,7 @@ <translation id="5295239312320826323">Xóa tài khoản <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Hiển thị</translation> <translation id="5317780077021120954">Lưu</translation> +<translation id="5318298563956633672">Bạn đã theo dõi sản phẩm này rồi.</translation> <translation id="5339316356165661760">Bật tính năng đồng bộ hóa</translation> <translation id="536067926684072644">Hiện dấu trang</translation> <translation id="5360976571138293719">Bạn có thể xem thêm các chế độ cài đặt liên quan đến quyền riêng tư, khả năng bảo mật và hoạt động thu thập dữ liệu trong phần <ph name="BEGIN_LINK" />Các dịch vụ của Google<ph name="END_LINK" />.</translation> @@ -619,6 +623,7 @@ <translation id="581659025233126501">Bật tính năng đồng bộ hóa</translation> <translation id="5819208479324046259">Do <ph name="MANAGER" /> quản lý. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation> <translation id="5833643789537100742">Lưu mật khẩu, phương thức thanh toán và địa chỉ để Chrome tự động điền về sau.</translation> +<translation id="5834415013958049700">Dùng Ống kính để tìm hình ảnh bạn đã sao chép</translation> <translation id="5846482154967366008">Công cụ tìm kiếm</translation> <translation id="5854790677617711513">Đã tồn tại hơn 30 ngày</translation> <translation id="5857090052475505287">Thư mục Mới</translation> @@ -646,6 +651,7 @@ <translation id="5984222099446776634">Truy cập gần đây</translation> <translation id="5988097621740394599">Xem các mặt hàng giảm giá trong thẻ của bạn.</translation> <translation id="5988851877894965432">Mở URL trong Chrome</translation> +<translation id="6006672969046233841">Thẻ mới</translation> <translation id="6012140227487808125">Đang mã hóa...</translation> <translation id="6021332621416007159">Mở trong...</translation> <translation id="6027945736510816438">Ý của bạn là <ph name="WEBSITE" /> phải không?</translation> @@ -832,6 +838,7 @@ <translation id="7207023858769244910">Đồng bộ hóa để nhận nội dung dựa trên mối quan tâm của bạn.</translation> <translation id="721597782417389033">Biệt hiệu của thẻ không hợp lệ</translation> <translation id="7221173315674413369">Khám phá các mẹo và tính năng mới trong phần Tính năng mới</translation> +<translation id="7223102419539744003">Đóng thẻ</translation> <translation id="722454870747268814">Thẻ ẩn danh mới</translation> <translation id="7265758999917665941">Không bao giờ đối với trang web này</translation> <translation id="7272437679830969316">Không thể xác minh danh tính của bạn. Chưa sao chép mật khẩu.</translation> @@ -903,6 +910,7 @@ <translation id="7856733331829174190">Không thể tải xuống</translation> <translation id="785938070103630874">Mở phần Mật khẩu, Phương thức thanh toán hoặc Địa chỉ và các thông tin khác</translation> <translation id="7859704718976024901">Lịch sử duyệt web</translation> +<translation id="7870750252270996949">Dùng Ống kính để tìm hình ảnh đã sao chép</translation> <translation id="7879275349003161544">Hiện nội dung tải xuống</translation> <translation id="7884694604461143138">Nhật ký tìm kiếm (Đã tìm thấy <ph name="COUNT" />)</translation> <translation id="7887198238286927132">Để bảo vệ quyền riêng tư của bạn, Chrome sẽ không tự động điền trường này.</translation> @@ -1027,6 +1035,7 @@ <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation> <translation id="8810413591309742901">Chế độ xem trang web mặc định</translation> <translation id="8820817407110198400">Dấu trang</translation> +<translation id="882557203579758546">Tìm trong trang…</translation> <translation id="8840513115188359703">Bạn sẽ không được đăng xuất khỏi Tài khoản Google của mình.</translation> <translation id="8843129975935593190">Tổ chức của bạn giới hạn những nội dung bạn có thể đồng bộ hóa.</translation> <translation id="8849001918648564819">Đã ẩn</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index a1624a18..d381079 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -232,6 +232,7 @@ <translation id="2815198996063984598">2. 点按“默认浏览器应用”</translation> <translation id="2820289420301699633">您的管理员控制着 Chrome,且可访问其中的数据</translation> <translation id="2830972654601096923">管理地址…</translation> +<translation id="2834399722155632105">3. 点按“密码选项”</translation> <translation id="2834956026595107950"><ph name="TITLE" />,<ph name="STATE" />,<ph name="URL" /></translation> <translation id="2843803966603263712">重置翻译设置</translation> <translation id="2848086008667475748">在“设置”中设为默认选项…</translation> @@ -631,6 +632,7 @@ <translation id="5899314093904173337">若要与附近的人分享,请让他们用相机或二维码扫描器应用扫描此二维码</translation> <translation id="5911030830365207728">Google 翻译</translation> <translation id="5913600720976431809">网页翻译选项</translation> +<translation id="5933515656458364246">在所有设备上同步您的数据。</translation> <translation id="5938160824633642847">您设备上的存储空间即将用尽,请释放空间并重试。</translation> <translation id="5948291296578561264">这样,您便可将照片保存到您的照片库中。</translation> <translation id="5951816930277761335">分享链接</translation> @@ -712,6 +714,7 @@ 您的数据已于 <ph name="TIME" />使用您的同步密码加密。输入该密码即可开始同步。</translation> <translation id="6418346271604475326">正在准备 PDF 文件</translation> +<translation id="6429213933892582367">打开“密码选项”</translation> <translation id="6434591244308415567">发生错误,请稍后重试。</translation> <translation id="6435236283694032571">添加到阅读清单</translation> <translation id="6439338047467462846">全部允许</translation> @@ -827,6 +830,7 @@ <translation id="7203585745079012652">说出答案</translation> <translation id="7207023858769244910">同步即可获取系统根据您的兴趣推荐的内容。</translation> <translation id="721597782417389033">卡的昵称无效</translation> +<translation id="7221173315674413369">探索“新变化”中的新功能和提示</translation> <translation id="722454870747268814">打开新的无痕模式标签页</translation> <translation id="7265758999917665941">此网站一律不保存密码</translation> <translation id="7272437679830969316">无法验证您的身份。未复制密码。</translation> @@ -860,6 +864,7 @@ <translation id="7514365320538308">下载</translation> <translation id="7531345132340165516">当前网站</translation> <translation id="7537586195939242955">抱歉,目前无法将您的票证添加到 Passbook。</translation> +<translation id="7553234618121028547">如需关闭此功能,请打开<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />,然后进入“密码选项”部分。</translation> <translation id="7554791636758816595">新标签页</translation> <translation id="7561196759112975576">永远</translation> <translation id="7583004045319035904">请使用<ph name="BIOMETRIC_AUTHENITCATION_TYPE" />解锁您的无痕式标签页。</translation> @@ -940,6 +945,7 @@ <translation id="8101409298456377967">您可创建、保存和管理您的密码,以便轻松登录网站和应用。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation> <translation id="8105368624971345109">关闭</translation> <translation id="8114753159095730575">已可下载文件。选项位于屏幕底部附近。</translation> +<translation id="81313319706244542">2. 点按“密码”</translation> <translation id="8132598642024322408">现价 <ph name="PRICE" />,原价 <ph name="PREVIOUS_PRICE" />。</translation> <translation id="8136856065410661948">这是为了在 Apple 日历中通过 Chrome 和 Google 智能镜头创建活动。</translation> <translation id="8156478151976189188">无法同步密码</translation> @@ -962,6 +968,7 @@ <translation id="8319076807703933069">新搜索</translation> <translation id="8323906514956095947">轻触并按住可查看更多的标签页选项</translation> <translation id="8328777765163860529">全部关闭</translation> +<translation id="8343993175958086504">备份您的资料,以便在任意设备上使用。</translation> <translation id="8378714024927312812">由贵组织管理</translation> <translation id="8386068868580335421">重置</translation> <translation id="8407669440184693619">未找到任何用于此网站的密码</translation>
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_edit_view_controller_unittest.mm b/ios/chrome/browser/ui/bookmarks/bookmark_edit_view_controller_unittest.mm index 2f78eb8b3..7a9d25a 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_edit_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_edit_view_controller_unittest.mm
@@ -17,6 +17,29 @@ using BookmarkEditViewControllerTest = BookmarkIOSUnitTest; +// Checks that the view controller can become the first responder. This is +// needed to correctly register key commands. +TEST_F(BookmarkEditViewControllerTest, CanBecomeFirstResponder) { + const bookmarks::BookmarkNode* bookmark = + AddBookmark(bookmark_model_->mobile_node(), @"Some Bookmark"); + BookmarkEditViewController* controller = + [[BookmarkEditViewController alloc] initWithBookmark:bookmark + browser:browser_.get()]; + + EXPECT_TRUE(controller.canBecomeFirstResponder); +} + +// Checks that key commands are registered. +TEST_F(BookmarkEditViewControllerTest, KeyCommands) { + const bookmarks::BookmarkNode* bookmark = + AddBookmark(bookmark_model_->mobile_node(), @"Some Bookmark"); + BookmarkEditViewController* controller = + [[BookmarkEditViewController alloc] initWithBookmark:bookmark + browser:browser_.get()]; + + EXPECT_GT(controller.keyCommands.count, 0u); +} + // Checks that metrics are correctly reported. TEST_F(BookmarkEditViewControllerTest, Metrics) { const bookmarks::BookmarkNode* bookmark =
diff --git a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm index e81f7852..5882797 100644 --- a/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm +++ b/ios/chrome/browser/ui/bookmarks/bookmark_home_view_controller.mm
@@ -2310,11 +2310,11 @@ return [UIMenu menuWithTitle:@"" children:@[]]; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kBookmarkEntry); + RecordMenuShown(MenuScenarioHistogram::kBookmarkEntry); BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:strongSelf.browser - scenario:MenuScenario::kBookmarkEntry]; + scenario:MenuScenarioHistogram::kBookmarkEntry]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init]; @@ -2408,10 +2408,10 @@ return [UIMenu menuWithTitle:@"" children:@[]]; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kBookmarkFolder); + RecordMenuShown(MenuScenarioHistogram::kBookmarkFolder); ActionFactory* actionFactory = [[ActionFactory alloc] - initWithScenario:MenuScenario::kBookmarkFolder]; + initWithScenario:MenuScenarioHistogram::kBookmarkFolder]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm index 6e15d385..93a8af9 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_coordinator.mm
@@ -283,11 +283,11 @@ ContentSuggestionsCoordinator* strongSelf = weakSelf; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kMostVisitedEntry); + RecordMenuShown(MenuScenarioHistogram::kMostVisitedEntry); BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:strongSelf.browser - scenario:MenuScenario::kMostVisitedEntry]; + scenario:MenuScenarioHistogram::kMostVisitedEntry]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/context_menu/context_menu_configuration_provider.mm b/ios/chrome/browser/ui/context_menu/context_menu_configuration_provider.mm index ec977e4d..59eea66 100644 --- a/ios/chrome/browser/ui/context_menu/context_menu_configuration_provider.mm +++ b/ios/chrome/browser/ui/context_menu/context_menu_configuration_provider.mm
@@ -126,10 +126,10 @@ NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init]; // TODO(crbug.com/1299758) add scenario for not a link and not an image. - MenuScenario menuScenario = isImage && isLink - ? MenuScenario::kContextMenuImageLink - : isImage ? MenuScenario::kContextMenuImage - : MenuScenario::kContextMenuLink; + MenuScenarioHistogram menuScenario = + isImage && isLink ? MenuScenarioHistogram::kContextMenuImageLink + : isImage ? MenuScenarioHistogram::kContextMenuImage + : MenuScenarioHistogram::kContextMenuLink; BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:self.browser
diff --git a/ios/chrome/browser/ui/history/history_coordinator.mm b/ios/chrome/browser/ui/history/history_coordinator.mm index 17c6513..f52c0c2 100644 --- a/ios/chrome/browser/ui/history/history_coordinator.mm +++ b/ios/chrome/browser/ui/history/history_coordinator.mm
@@ -215,11 +215,11 @@ HistoryCoordinator* strongSelf = weakSelf; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kHistoryEntry); + RecordMenuShown(MenuScenarioHistogram::kHistoryEntry); BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:strongSelf.browser - scenario:MenuScenario::kHistoryEntry]; + scenario:MenuScenarioHistogram::kHistoryEntry]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/menu/BUILD.gn b/ios/chrome/browser/ui/menu/BUILD.gn index 19fca92..c05457fc 100644 --- a/ios/chrome/browser/ui/menu/BUILD.gn +++ b/ios/chrome/browser/ui/menu/BUILD.gn
@@ -4,6 +4,7 @@ source_set("menu") { sources = [ + "action_factory+protected.h", "action_factory.h", "action_factory.mm", "browser_action_factory.h",
diff --git a/ios/chrome/browser/ui/menu/action_factory+protected.h b/ios/chrome/browser/ui/menu/action_factory+protected.h new file mode 100644 index 0000000..e0517fbe --- /dev/null +++ b/ios/chrome/browser/ui/menu/action_factory+protected.h
@@ -0,0 +1,22 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_UI_MENU_ACTION_FACTORY_PROTECTED_H_ +#define IOS_CHROME_BROWSER_UI_MENU_ACTION_FACTORY_PROTECTED_H_ + +#import "ios/chrome/browser/ui/menu/action_factory.h" + +@interface ActionFactory (Protected) + +// Creates a UIAction instance configured with the given `title` and `image`. +// Upon execution, the action's `type` will be recorded and the `block` will be +// run. +- (UIAction*)actionWithTitle:(NSString*)title + image:(UIImage*)image + type:(MenuActionType)type + block:(ProceduralBlock)block; + +@end + +#endif // IOS_CHROME_BROWSER_UI_MENU_ACTION_FACTORY_PROTECTED_H_
diff --git a/ios/chrome/browser/ui/menu/action_factory.h b/ios/chrome/browser/ui/menu/action_factory.h index 24b4271..b25420a 100644 --- a/ios/chrome/browser/ui/menu/action_factory.h +++ b/ios/chrome/browser/ui/menu/action_factory.h
@@ -14,20 +14,14 @@ class GURL; // Factory providing methods to create UIActions with consistent titles, images -// and metrics structure. +// and metrics structure. When using any action from this class, an histogram +// will be recorded on Mobile.ContextMenu.<Scenario>.Action. @interface ActionFactory : NSObject // Initializes a factory instance to create action instances for the given -// `scenario`. -- (instancetype)initWithScenario:(MenuScenario)scenario; - -// Creates a UIAction instance configured with the given `title` and `image`. -// Upon execution, the action's `type` will be recorded and the `block` will be -// run. -- (UIAction*)actionWithTitle:(NSString*)title - image:(UIImage*)image - type:(MenuActionType)type - block:(ProceduralBlock)block; +// `scenario`. `scenario` is used to choose the histogram in which to record the +// actions. +- (instancetype)initWithScenario:(MenuScenarioHistogram)scenario; // Creates a UIAction instance configured to copy the given `URL` to the // pasteboard.
diff --git a/ios/chrome/browser/ui/menu/action_factory.mm b/ios/chrome/browser/ui/menu/action_factory.mm index 7e9c41a..3c7b33be 100644 --- a/ios/chrome/browser/ui/menu/action_factory.mm +++ b/ios/chrome/browser/ui/menu/action_factory.mm
@@ -27,7 +27,7 @@ @implementation ActionFactory -- (instancetype)initWithScenario:(MenuScenario)scenario { +- (instancetype)initWithScenario:(MenuScenarioHistogram)scenario { if (self = [super init]) { _histogram = GetActionsHistogramName(scenario); }
diff --git a/ios/chrome/browser/ui/menu/action_factory_unittest.mm b/ios/chrome/browser/ui/menu/action_factory_unittest.mm index 8ed8524..4ae5ebc 100644 --- a/ios/chrome/browser/ui/menu/action_factory_unittest.mm +++ b/ios/chrome/browser/ui/menu/action_factory_unittest.mm
@@ -8,6 +8,7 @@ #import "base/test/scoped_feature_list.h" #import "base/test/task_environment.h" #import "ios/chrome/browser/ui/icons/symbols.h" +#import "ios/chrome/browser/ui/menu/action_factory+protected.h" #import "ios/chrome/browser/ui/menu/menu_action_type.h" #import "ios/chrome/browser/ui/menu/menu_histograms.h" #import "ios/chrome/browser/ui/ui_feature_flags.h" @@ -27,7 +28,7 @@ #endif namespace { -MenuScenario kTestMenuScenario = MenuScenario::kHistoryEntry; +MenuScenarioHistogram kTestMenuScenario = MenuScenarioHistogram::kHistoryEntry; } // namespace // Test fixture for the ActionFactory.
diff --git a/ios/chrome/browser/ui/menu/browser_action_factory.h b/ios/chrome/browser/ui/menu/browser_action_factory.h index a55d27d..d3d7a3b 100644 --- a/ios/chrome/browser/ui/menu/browser_action_factory.h +++ b/ios/chrome/browser/ui/menu/browser_action_factory.h
@@ -16,15 +16,18 @@ class GURL; // Factory providing methods to create UIActions that depends on the provided -// browser with consistent titles, images and metrics structure. +// browser with consistent titles, images and metrics structure. When using any +// action from this class, an histogram will be recorded on +// Mobile.ContextMenu.<Scenario>.Action. @interface BrowserActionFactory : ActionFactory // Initializes a factory instance for the current `browser` to create action // instances for the given `scenario`. `browser` can be nil, and in that case // only actions that doesn't require browser will work, and other actions will -// return nil; +// return nil; `scenario` is used to choose the histogram in which to record the +// actions. - (instancetype)initWithBrowser:(Browser*)browser - scenario:(MenuScenario)scenario; + scenario:(MenuScenarioHistogram)scenario; // Creates a UIAction instance configured for opening the `URL` in a new tab and // which will invoke the given `completion` block after execution.
diff --git a/ios/chrome/browser/ui/menu/browser_action_factory.mm b/ios/chrome/browser/ui/menu/browser_action_factory.mm index 4c67e0f4..6501644 100644 --- a/ios/chrome/browser/ui/menu/browser_action_factory.mm +++ b/ios/chrome/browser/ui/menu/browser_action_factory.mm
@@ -21,6 +21,7 @@ #import "ios/chrome/browser/ui/icons/symbols.h" #import "ios/chrome/browser/ui/incognito_reauth/incognito_reauth_scene_agent.h" #import "ios/chrome/browser/ui/main/scene_state_browser_agent.h" +#import "ios/chrome/browser/ui/menu/action_factory+protected.h" #import "ios/chrome/browser/ui/ui_feature_flags.h" #import "ios/chrome/browser/ui/util/pasteboard_util.h" #import "ios/chrome/browser/url_loading/image_search_param_generator.h" @@ -44,7 +45,7 @@ @implementation BrowserActionFactory - (instancetype)initWithBrowser:(Browser*)browser - scenario:(MenuScenario)scenario { + scenario:(MenuScenarioHistogram)scenario { DCHECK(browser); if (self = [super initWithScenario:scenario]) { _browser = browser;
diff --git a/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm b/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm index 35e910f..b9d26c2 100644 --- a/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm +++ b/ios/chrome/browser/ui/menu/browser_action_factory_unittest.mm
@@ -42,7 +42,7 @@ #endif namespace { -MenuScenario kTestMenuScenario = MenuScenario::kHistoryEntry; +MenuScenarioHistogram kTestMenuScenario = MenuScenarioHistogram::kHistoryEntry; } // namespace // Test fixture for the BrowserActionFactory.
diff --git a/ios/chrome/browser/ui/menu/menu_histograms.h b/ios/chrome/browser/ui/menu/menu_histograms.h index 78259b34..869f0c6 100644 --- a/ios/chrome/browser/ui/menu/menu_histograms.h +++ b/ios/chrome/browser/ui/menu/menu_histograms.h
@@ -8,7 +8,7 @@ // Enum representing the existing set of menu scenarios. Current values should // not be renumbered. Please keep in sync with "IOSMenuScenario" in // src/tools/metrics/histograms/enums.xml. -enum class MenuScenario { +enum class MenuScenarioHistogram { kBookmarkEntry = 0, kBookmarkFolder = 1, kReadingListEntry = 2, @@ -30,9 +30,9 @@ }; // Records a menu shown histogram metric for the `scenario`. -void RecordMenuShown(MenuScenario scenario); +void RecordMenuShown(MenuScenarioHistogram scenario); // Retrieves a histogram name for the given menu `scenario`'s actions. -const char* GetActionsHistogramName(MenuScenario scenario); +const char* GetActionsHistogramName(MenuScenarioHistogram scenario); #endif // IOS_CHROME_BROWSER_UI_MENU_MENU_HISTOGRAMS_H_
diff --git a/ios/chrome/browser/ui/menu/menu_histograms.mm b/ios/chrome/browser/ui/menu/menu_histograms.mm index 0e651a5..86587eb 100644 --- a/ios/chrome/browser/ui/menu/menu_histograms.mm +++ b/ios/chrome/browser/ui/menu/menu_histograms.mm
@@ -48,44 +48,44 @@ "Mobile.ContextMenu.OmniboxMostVisitedEntry.Actions"; } // namespace -void RecordMenuShown(MenuScenario scenario) { +void RecordMenuShown(MenuScenarioHistogram scenario) { base::UmaHistogramEnumeration(kMenuEntryPointsHistogram, scenario); } -const char* GetActionsHistogramName(MenuScenario scenario) { +const char* GetActionsHistogramName(MenuScenarioHistogram scenario) { switch (scenario) { - case MenuScenario::kHistoryEntry: + case MenuScenarioHistogram::kHistoryEntry: return kHistoryEntryActionsHistogram; - case MenuScenario::kBookmarkEntry: + case MenuScenarioHistogram::kBookmarkEntry: return kBookmarkEntryActionsHistogram; - case MenuScenario::kReadingListEntry: + case MenuScenarioHistogram::kReadingListEntry: return kReadingListEntryActionsHistogram; - case MenuScenario::kRecentTabsEntry: + case MenuScenarioHistogram::kRecentTabsEntry: return kRecentTabsEntryActionsHistogram; - case MenuScenario::kRecentTabsHeader: + case MenuScenarioHistogram::kRecentTabsHeader: return kRecentTabsHeaderActionsHistogram; - case MenuScenario::kMostVisitedEntry: + case MenuScenarioHistogram::kMostVisitedEntry: return kMostVisitedEntryActionsHistogram; - case MenuScenario::kBookmarkFolder: + case MenuScenarioHistogram::kBookmarkFolder: return kBookmarkFolderActionsHistogram; - case MenuScenario::kContextMenuImage: + case MenuScenarioHistogram::kContextMenuImage: return KContextMenuImageActionsHistogram; - case MenuScenario::kContextMenuImageLink: + case MenuScenarioHistogram::kContextMenuImageLink: return KContextMenuImageLinkActionsHistogram; - case MenuScenario::kContextMenuLink: + case MenuScenarioHistogram::kContextMenuLink: return KContextMenuLinkActionsHistogram; - case MenuScenario::kTabGridEntry: - case MenuScenario::kThumbStrip: + case MenuScenarioHistogram::kTabGridEntry: + case MenuScenarioHistogram::kThumbStrip: return kTabGridActionsHistogram; - case MenuScenario::kTabGridAddTo: + case MenuScenarioHistogram::kTabGridAddTo: return kTabGridAddToActionsHistogram; - case MenuScenario::kTabGridEdit: + case MenuScenarioHistogram::kTabGridEdit: return kTabGridEditActionsHistogram; - case MenuScenario::kTabGridSearchResult: + case MenuScenarioHistogram::kTabGridSearchResult: return kTabGridSearchResultHistogram; - case MenuScenario::kToolbarMenu: + case MenuScenarioHistogram::kToolbarMenu: return kToolbarMenuActionsHistogram; - case MenuScenario::kOmniboxMostVisitedEntry: + case MenuScenarioHistogram::kOmniboxMostVisitedEntry: return kOmniboxMostVisitedEntryActionsHistogram; } }
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.h b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.h index 824049f..6f65d4e 100644 --- a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.h +++ b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.h
@@ -17,7 +17,6 @@ #import "ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_suggestions_delegate.h" #include "third_party/abseil-cpp/absl/types/optional.h" -class AutocompleteResult; class ChromeBrowserState; class GURL; class WebOmniboxEditController; @@ -141,7 +140,6 @@ void OnAccept() override; // OmniboxPopupViewSuggestionsDelegate methods - void OnResultsChanged(const AutocompleteResult& result) override; void OnPopupDidScroll() override; void OnSelectedMatchForAppending(const std::u16string& str) override; void OnSelectedMatchForOpening(AutocompleteMatch match,
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm index c8ef31e..2c97c9c 100644 --- a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm +++ b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm
@@ -712,18 +712,6 @@ #pragma mark - OmniboxPopupViewSuggestionsDelegate -void OmniboxViewIOS::OnResultsChanged(const AutocompleteResult& result) { - if (ignore_popup_updates_) { - // Please contact rohitrao@ if the following DCHECK ever fires. If - // `ignore_popup_updates_` is true but `result` is not empty, then the new - // prerender code in ChromeOmniboxClientIOS will incorrectly discard its - // prerender. - // TODO(crbug.com/754050): Remove this whole method once we are reasonably - // confident that we are not throwing away prerenders. - DCHECK(result.empty()); - } -} - void OmniboxViewIOS::OnPopupDidScroll() { if (ui::GetDeviceFormFactor() != ui::DEVICE_FORM_FACTOR_TABLET || base::FeatureList::IsEnabled(kEnableSuggestionsScrollingOnIPad)) {
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_coordinator.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_coordinator.mm index 64fef73..4c05667d 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_coordinator.mm +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_coordinator.mm
@@ -112,7 +112,7 @@ self.mediator.sharingDelegate = self; BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:self.browser - scenario:MenuScenario::kOmniboxMostVisitedEntry]; + scenario:MenuScenarioHistogram::kOmniboxMostVisitedEntry]; self.mediator.mostVisitedActionFactory = actionFactory; if (IsSwiftUIPopupEnabled()) {
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm index 3298537..e38fe9a 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_mediator.mm
@@ -505,7 +505,7 @@ strongSelf.mostVisitedActionFactory; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kOmniboxMostVisitedEntry); + RecordMenuShown(MenuScenarioHistogram::kOmniboxMostVisitedEntry); NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_ios.mm b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_ios.mm index bdf41e1e..bf93c599 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_ios.mm +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_ios.mm
@@ -52,8 +52,6 @@ const AutocompleteResult& result = model()->result(); [mediator_ updateWithResults:result]; - - delegate_->OnResultsChanged(result); } bool OmniboxPopupViewIOS::IsOpen() const {
diff --git a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_suggestions_delegate.h b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_suggestions_delegate.h index f93835b..6c090bb 100644 --- a/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_suggestions_delegate.h +++ b/ios/chrome/browser/ui/omnibox/popup/omnibox_popup_view_suggestions_delegate.h
@@ -9,14 +9,11 @@ #include "third_party/abseil-cpp/absl/types/optional.h" struct AutocompleteMatch; -class AutocompleteResult; class GURL; enum class WindowOpenDisposition; class OmniboxPopupViewSuggestionsDelegate { public: - // Called when results are updated. - virtual void OnResultsChanged(const AutocompleteResult& result) = 0; // Called whenever the popup is scrolled. virtual void OnPopupDidScroll() = 0; // Called when the user chooses a suggestion from the popup via the "append"
diff --git a/ios/chrome/browser/ui/reading_list/reading_list_coordinator.mm b/ios/chrome/browser/ui/reading_list/reading_list_coordinator.mm index cf519f43..a1ab6a97 100644 --- a/ios/chrome/browser/ui/reading_list/reading_list_coordinator.mm +++ b/ios/chrome/browser/ui/reading_list/reading_list_coordinator.mm
@@ -412,11 +412,11 @@ ReadingListCoordinator* strongSelf = weakSelf; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kReadingListEntry); + RecordMenuShown(MenuScenarioHistogram::kReadingListEntry); BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:strongSelf.browser - scenario:MenuScenario::kReadingListEntry]; + scenario:MenuScenarioHistogram::kReadingListEntry]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/recent_tabs/recent_tabs_menu_helper.mm b/ios/chrome/browser/ui/recent_tabs/recent_tabs_menu_helper.mm index 267bac0..601d1b7 100644 --- a/ios/chrome/browser/ui/recent_tabs/recent_tabs_menu_helper.mm +++ b/ios/chrome/browser/ui/recent_tabs/recent_tabs_menu_helper.mm
@@ -65,11 +65,11 @@ RecentTabsContextMenuHelper* strongSelf = weakSelf; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kRecentTabsEntry); + RecordMenuShown(MenuScenarioHistogram::kRecentTabsEntry); BrowserActionFactory* actionFactory = [[BrowserActionFactory alloc] initWithBrowser:strongSelf.browser - scenario:MenuScenario::kRecentTabsEntry]; + scenario:MenuScenarioHistogram::kRecentTabsEntry]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init]; @@ -129,10 +129,10 @@ RecentTabsContextMenuHelper* strongSelf = weakSelf; // Record that this context menu was shown to the user. - RecordMenuShown(MenuScenario::kRecentTabsHeader); + RecordMenuShown(MenuScenarioHistogram::kRecentTabsHeader); ActionFactory* actionFactory = [[ActionFactory alloc] - initWithScenario:MenuScenario::kRecentTabsHeader]; + initWithScenario:MenuScenarioHistogram::kRecentTabsHeader]; NSMutableArray<UIMenuElement*>* menuElements = [[NSMutableArray alloc] init];
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_helper.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_helper.mm index 9726163..bdf3dd2 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_helper.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_helper.mm
@@ -62,7 +62,7 @@ - (UIContextMenuConfiguration*) contextMenuConfigurationForGridCell:(GridCell*)gridCell - menuScenario:(MenuScenario)scenario { + menuScenario:(MenuScenarioHistogram)scenario { __weak __typeof(self) weakSelf = self; UIContextMenuActionProvider actionProvider = @@ -85,7 +85,8 @@ } - (NSArray<UIMenuElement*>*)menuElementsForGridCell:(GridCell*)gridCell - menuScenario:(MenuScenario)scenario { + menuScenario: + (MenuScenarioHistogram)scenario { // Record that this context menu was shown to the user. RecordMenuShown(scenario); @@ -155,8 +156,8 @@ // Thumb strip and search results menus don't support tab selection. BOOL scenarioDisablesSelection = - scenario == MenuScenario::kTabGridSearchResult || - scenario == MenuScenario::kThumbStrip; + scenario == MenuScenarioHistogram::kTabGridSearchResult || + scenario == MenuScenarioHistogram::kThumbStrip; if (!scenarioDisablesSelection && [self.contextMenuDelegate respondsToSelector:@selector(selectTabs)]) { [menuElements addObject:[actionFactory actionToSelectTabsWithBlock:^{
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h index 9aa4e52..a4dd7ec 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_context_menu_provider.h
@@ -17,7 +17,7 @@ // Returns a context menu configuration instance for the given `gridCell`. - (UIContextMenuConfiguration*) contextMenuConfigurationForGridCell:(GridCell*)gridCell - menuScenario:(MenuScenario)scenario; + menuScenario:(MenuScenarioHistogram)scenario; @end
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm index ad3857b..8f6909b8 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/grid_view_controller.mm
@@ -658,13 +658,13 @@ GridCell* cell = base::mac::ObjCCastStrict<GridCell>( [self.collectionView cellForItemAtIndexPath:indexPath]); - MenuScenario scenario; + MenuScenarioHistogram scenario; if (_mode == TabGridModeSearch) { - scenario = MenuScenario::kTabGridSearchResult; + scenario = MenuScenarioHistogram::kTabGridSearchResult; } else if (self.currentLayout == self.horizontalLayout) { - scenario = MenuScenario::kThumbStrip; + scenario = MenuScenarioHistogram::kThumbStrip; } else { - scenario = MenuScenario::kTabGridEntry; + scenario = MenuScenarioHistogram::kTabGridEntry; } return [self.menuProvider contextMenuConfigurationForGridCell:cell
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm index 196e9256..172b334 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_mediator.mm
@@ -631,8 +631,8 @@ return nil; } - ActionFactory* actionFactory = - [[ActionFactory alloc] initWithScenario:MenuScenario::kTabGridAddTo]; + ActionFactory* actionFactory = [[ActionFactory alloc] + initWithScenario:MenuScenarioHistogram::kTabGridAddTo]; __weak TabGridMediator* weakSelf = self;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm index a6ca4aaa..dacaff9 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
@@ -1354,8 +1354,8 @@ } - (void)setupEditButton API_AVAILABLE(ios(14.0)) { - ActionFactory* actionFactory = - [[ActionFactory alloc] initWithScenario:MenuScenario::kTabGridEdit]; + ActionFactory* actionFactory = [[ActionFactory alloc] + initWithScenario:MenuScenarioHistogram::kTabGridEdit]; __weak TabGridViewController* weakSelf = self; NSArray<UIMenuElement*>* menuElements = @[ [actionFactory actionToCloseAllTabsWithBlock:^{
diff --git a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm index d55686b..ba340b7 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm +++ b/ios/chrome/browser/ui/toolbar/adaptive_toolbar_coordinator.mm
@@ -79,9 +79,9 @@ self.mediator.templateURLService = ios::TemplateURLServiceFactory::GetForBrowserState( self.browser->GetBrowserState()); - self.mediator.actionFactory = - [[BrowserActionFactory alloc] initWithBrowser:self.browser - scenario:MenuScenario::kToolbarMenu]; + self.mediator.actionFactory = [[BrowserActionFactory alloc] + initWithBrowser:self.browser + scenario:MenuScenarioHistogram::kToolbarMenu]; self.viewController.menuProvider = self.mediator; }
diff --git a/ios/chrome/browser/ui/toolbar/toolbar_mediator_unittest.mm b/ios/chrome/browser/ui/toolbar/toolbar_mediator_unittest.mm index 94d7b97..8418683e 100644 --- a/ios/chrome/browser/ui/toolbar/toolbar_mediator_unittest.mm +++ b/ios/chrome/browser/ui/toolbar/toolbar_mediator_unittest.mm
@@ -55,7 +55,7 @@ namespace { -MenuScenario kTestMenuScenario = MenuScenario::kHistoryEntry; +MenuScenarioHistogram kTestMenuScenario = MenuScenarioHistogram::kHistoryEntry; static const int kNumberOfWebStates = 3; static const char kTestUrl[] = "http://www.chromium.org";
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index bdd77e5..01c98f19c 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -0e33fad2907d043d2653ca39dd860e2fb1dcc905 \ No newline at end of file +cbea3493c3774f4b594fc211e36ced218b38ca84 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index 9da26d6..b5fda2c5 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -4069dc6955283f4d477fa401629a80be377a2c2f \ No newline at end of file +49c6e323dfe4469f5ee72d2d59cfe5b52e08cb95 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index 983c31d..71d44b6 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -44d8314d87dac36d4e5648461b81ca17ef573840 \ No newline at end of file +3738ac1db1a86a831582b7d4b9775ab8392f0a3d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index 66dd731..3c509ff 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -aa1567723f68c3274c24f31ae64872ed3e2dd9e7 \ No newline at end of file +f95200479668ef3e22390e987576c9cc2153bdad \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index c0cbf73..50a1973 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -46afe14638c3d0d4cbef875d85aa44b36d068c63 \ No newline at end of file +f01f108a818d629cb0c3b44a08cca2f00081d2b7 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 10da84d8..0374a21b 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -429f55c64c298fe8c4f2200744874327692bb9c8 \ No newline at end of file +176d97349bbc2c62537036bc9ce0b3312223127e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index 6686bd9..c307429 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -960b0a43075d08d68cecab80d659a0cdacd11ca8 \ No newline at end of file +50ff5cfc34a47f200349d60dd590056e9bd63e89 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index ebcc3e2..e7e0ea91 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -5d15dabbf5c9e843d7a7668b3be7f62a3e386d1f \ No newline at end of file +cb92c621c736005f66f46ed19a188733322c1b3d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 242a6882..b4f5bfe 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -d5aa2b62ddbc153a9a09be46b7d97f8a832f52b3 \ No newline at end of file +db85956da3a376f7be3c60f5376e3bd783e72caf \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 1aa9582..0e7af100 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -2a52745107b2401168ffd05896582561ffe7ebd8 \ No newline at end of file +da9712fa9767e0f79c8a0d7aff93f32dbdf84b46 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index 6f876f8f..a0e2acb 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -18c0c825ec69c52fc52797ba1ad8db0250021dfe \ No newline at end of file +b8eb5fc640de47d57acb5d55e2911d1014f72a7b \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 018ffce..60c273c7 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -ea76d325c903f0180f859e885653556b04f1d516 \ No newline at end of file +048276e9952c4546ef330ced70c37c17e4f3efc8 \ No newline at end of file
diff --git a/ios/web/common/features.h b/ios/web/common/features.h index 83e57d13..23155ed 100644 --- a/ios/web/common/features.h +++ b/ios/web/common/features.h
@@ -29,11 +29,6 @@ // Feature flag enabling persistent downloads. BASE_DECLARE_FEATURE(kEnablePersistentDownloads); -// When enabled, preserves properties of the UIScrollView using CRWPropertyStore -// when the scroll view is recreated. When disabled, only preserve a small set -// of properties using hard coded logic. -BASE_DECLARE_FEATURE(kPreserveScrollViewProperties); - // Records snapshot size of image (IOS.Snapshots.ImageSize histogram) and PDF // (IOS.Snapshots.PDFSize histogram) if enabled. Enabling this flag will // generate PDF when Page Snapshot is taken just to record PDF size.
diff --git a/ios/web/common/features.mm b/ios/web/common/features.mm index 87543eb..482fff9 100644 --- a/ios/web/common/features.mm +++ b/ios/web/common/features.mm
@@ -33,10 +33,6 @@ "EnablePersistentDownloads", base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kPreserveScrollViewProperties, - "PreserveScrollViewProperties", - base::FEATURE_ENABLED_BY_DEFAULT); - BASE_FEATURE(kRecordSnapshotSize, "RecordSnapshotSize", base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy.mm b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy.mm index 234a7f4..8083b32 100644 --- a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy.mm +++ b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy.mm
@@ -75,11 +75,7 @@ @end -@interface CRWWebViewScrollViewProxy () { - std::unique_ptr<UIScrollViewContentInsetAdjustmentBehavior> - _storedContentInsetAdjustmentBehavior; - std::unique_ptr<BOOL> _storedClipsToBounds; -} +@interface CRWWebViewScrollViewProxy () // A delegate object of the UIScrollView managed by this class. @property(nonatomic, strong, readonly) @@ -214,27 +210,11 @@ scrollView.delegate = self.delegateProxy; [self.class startObservingScrollView:scrollView proxy:self]; - if (base::FeatureList::IsEnabled( - web::features::kPreserveScrollViewProperties)) { - [self preservePropertiesFromOldScrollView:self.underlyingScrollView - toNewScrollView:scrollView]; - } + [self preservePropertiesFromOldScrollView:self.underlyingScrollView + toNewScrollView:scrollView]; self.underlyingScrollView = scrollView; - // TODO(crbug.com/1023250): Restore these in - // -preservePropertiesFromOldScrollView:toNewScrollView: once the feature flag - // kPreserveScrollViewProperties is removed. - if (_storedClipsToBounds) { - scrollView.clipsToBounds = *_storedClipsToBounds; - } - // Assigns `contentInsetAdjustmentBehavior` which was set before setting the - // scroll view. - if (_storedContentInsetAdjustmentBehavior) { - self.underlyingScrollView.contentInsetAdjustmentBehavior = - *_storedContentInsetAdjustmentBehavior; - } - [_observers webViewScrollViewProxyDidSetScrollView:self]; } @@ -301,6 +281,14 @@ newScrollView.userInteractionEnabled = oldScrollView.userInteractionEnabled; newScrollView.multipleTouchEnabled = oldScrollView.multipleTouchEnabled; newScrollView.exclusiveTouch = oldScrollView.exclusiveTouch; + if (newScrollView.clipsToBounds != oldScrollView.clipsToBounds) { + newScrollView.clipsToBounds = oldScrollView.clipsToBounds; + } + if (newScrollView.contentInsetAdjustmentBehavior != + oldScrollView.contentInsetAdjustmentBehavior) { + newScrollView.contentInsetAdjustmentBehavior = + oldScrollView.contentInsetAdjustmentBehavior; + } } - (BOOL)clipsToBounds { @@ -308,7 +296,6 @@ } - (void)setClipsToBounds:(BOOL)clipsToBounds { - _storedClipsToBounds = std::make_unique<BOOL>(clipsToBounds); self.underlyingScrollView.clipsToBounds = clipsToBounds; } @@ -320,9 +307,6 @@ (UIScrollViewContentInsetAdjustmentBehavior)contentInsetAdjustmentBehavior { [self.underlyingScrollView setContentInsetAdjustmentBehavior:contentInsetAdjustmentBehavior]; - _storedContentInsetAdjustmentBehavior = - std::make_unique<UIScrollViewContentInsetAdjustmentBehavior>( - contentInsetAdjustmentBehavior); } - (NSArray<__kindof UIView*>*)subviews {
diff --git a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm index 9815e40..09a66010 100644 --- a/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm +++ b/ios/web/web_state/ui/crw_web_view_scroll_view_proxy_unittest.mm
@@ -775,10 +775,6 @@ // - the getter is called after the underlying scroll view is still not set TEST_F(CRWWebViewScrollViewProxyTest, PreservePropertiesWhileUnderlyingScrollViewIsAbsent) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init]; @@ -803,10 +799,6 @@ // - the getter is called after the underlying scroll view is set TEST_F(CRWWebViewScrollViewProxyTest, PreservePropertiesWhenUnderlyingScrollViewIsNewlyAssigned) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init]; @@ -836,10 +828,6 @@ // - the getter is called after the underlying scroll view is reassigned TEST_F(CRWWebViewScrollViewProxyTest, PreservePropertiesWhenUnderlyingScrollViewIsReassigned) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init]; @@ -869,10 +857,6 @@ // category of UIScrollView while the underlying scroll view is not set. TEST_F(CRWWebViewScrollViewProxyTest, UIScrollViewCategoryWithoutUnderlyingScrollView) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init]; @@ -886,10 +870,6 @@ // category of UIScrollView while the underlying scroll view is set. TEST_F(CRWWebViewScrollViewProxyTest, UIScrollViewCategoryWithUnderlyingScrollView) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init]; @@ -903,10 +883,6 @@ // Verifies that the scroll view backgound color is not preserved between // scroll views. Used to prevent regression of crbug.com/1078790. TEST_F(CRWWebViewScrollViewProxyTest, DontPreserveBackgroundColor) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature( - web::features::kPreserveScrollViewProperties); - // Recreate CRWWebViewScrollViewProxy with the updated feature flags. web_view_scroll_view_proxy_ = [[CRWWebViewScrollViewProxy alloc] init];
diff --git a/media/capture/video/chromeos/camera_metadata_utils.cc b/media/capture/video/chromeos/camera_metadata_utils.cc index b03f5ba..f7e36f44 100644 --- a/media/capture/video/chromeos/camera_metadata_utils.cc +++ b/media/capture/video/chromeos/camera_metadata_utils.cc
@@ -73,7 +73,6 @@ (*e)->count = entry->count; (*e)->data = std::move(entry->data); } else { - entry->index = (*to)->entries->size(); (*to)->entry_count += 1; (*to)->entry_capacity = std::max((*to)->entry_capacity, (*to)->entry_count); (*to)->data_count += entry->data.size(); @@ -81,6 +80,7 @@ if (!(*to)->entries) { (*to)->entries = std::vector<cros::mojom::CameraMetadataEntryPtr>(); } + entry->index = (*to)->entries->size(); (*to)->entries->push_back(std::move(entry)); SortCameraMetadata(to); }
diff --git a/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom b/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom index 14e1a3d..f78528805 100644 --- a/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom +++ b/media/capture/video/chromeos/mojom/camera_metadata_tags.mojom
@@ -8,7 +8,17 @@ * Generated automatically from camera_metadata_tags.mojom.mako */ -module cros.mojom; + /** + * Enums here are 1:1 mapping with Android Camera HAL3 metadata tags, used for + * communication between ARC, cros_camera_service, and Chrome browser. + * Any kind of opaque third party's camera codes are sandboxed and has no + * ability to directly communicate with Chrome browser, for details please see + * https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform2/camera/README.md + * These enums should be synced ideally every time ChromiumOS is supporting a + * new major Android version. + */ + + module cros.mojom; /** * Top level hierarchy definitions for camera metadata. *_INFO sections are for @@ -47,7 +57,9 @@ ANDROID_DISTORTION_CORRECTION = 0x1B, ANDROID_HEIC = 0x1C, ANDROID_HEIC_INFO = 0x1D, - ANDROID_SECTION_COUNT = 0x1E, + ANDROID_AUTOMOTIVE = 0x1E, + ANDROID_AUTOMOTIVE_LENS = 0x1F, + ANDROID_SECTION_COUNT = 0x20, VENDOR_SECTION = 0x8000 }; @@ -90,6 +102,8 @@ = 0x1B0000, ANDROID_HEIC_START = 0x1C0000, ANDROID_HEIC_INFO_START = 0x1D0000, + ANDROID_AUTOMOTIVE_START = 0x1E0000, + ANDROID_AUTOMOTIVE_LENS_START = 0x1F0000, // Mojom maps enum to int32_t in C++. This causes problem on the VENDOR_SECTION_START // below as 0x80000000 would generate -Wc++11-narrowing warnings while compiling the @@ -160,6 +174,10 @@ ANDROID_CONTROL_EXTENDED_SCENE_MODE, ANDROID_CONTROL_ZOOM_RATIO_RANGE, ANDROID_CONTROL_ZOOM_RATIO, + ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_CONTROL_AF_REGIONS_SET, + ANDROID_CONTROL_AE_REGIONS_SET, + ANDROID_CONTROL_AWB_REGIONS_SET, ANDROID_CONTROL_END, ANDROID_DEMOSAIC_MODE = 0x20000, // ANDROID_DEMOSAIC_START, ANDROID_DEMOSAIC_END, @@ -176,6 +194,8 @@ ANDROID_FLASH_END, ANDROID_FLASH_INFO_AVAILABLE = 0x50000, // ANDROID_FLASH_INFO_START, ANDROID_FLASH_INFO_CHARGE_DURATION, + ANDROID_FLASH_INFO_STRENGTH_MAXIMUM_LEVEL, + ANDROID_FLASH_INFO_STRENGTH_DEFAULT_LEVEL, ANDROID_FLASH_INFO_END, ANDROID_HOT_PIXEL_MODE = 0x60000, // ANDROID_HOT_PIXEL_START, ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES, @@ -205,6 +225,8 @@ ANDROID_LENS_RADIAL_DISTORTION, ANDROID_LENS_POSE_REFERENCE, ANDROID_LENS_DISTORTION, + ANDROID_LENS_DISTORTION_MAXIMUM_RESOLUTION, + ANDROID_LENS_INTRINSIC_CALIBRATION_MAXIMUM_RESOLUTION, ANDROID_LENS_END, ANDROID_LENS_INFO_AVAILABLE_APERTURES = 0x90000, // ANDROID_LENS_INFO_START, ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES, @@ -244,6 +266,8 @@ ANDROID_REQUEST_AVAILABLE_SESSION_KEYS, ANDROID_REQUEST_AVAILABLE_PHYSICAL_CAMERA_REQUEST_KEYS, ANDROID_REQUEST_CHARACTERISTIC_KEYS_NEEDING_PERMISSION, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP, + ANDROID_REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE, ANDROID_REQUEST_END, ANDROID_SCALER_CROP_REGION = 0xD0000, // ANDROID_SCALER_START, ANDROID_SCALER_AVAILABLE_FORMATS, @@ -263,6 +287,15 @@ ANDROID_SCALER_AVAILABLE_RECOMMENDED_INPUT_OUTPUT_FORMATS_MAP, ANDROID_SCALER_AVAILABLE_ROTATE_AND_CROP_MODES, ANDROID_SCALER_ROTATE_AND_CROP, + ANDROID_SCALER_DEFAULT_SECURE_IMAGE_SIZE, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP_MAXIMUM_RESOLUTION, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED, + ANDROID_SCALER_CROP_REGION_SET, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES, ANDROID_SCALER_END, ANDROID_SENSOR_EXPOSURE_TIME = 0xE0000, // ANDROID_SENSOR_START, ANDROID_SENSOR_FRAME_DURATION, @@ -295,6 +328,9 @@ ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL, ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL, ANDROID_SENSOR_OPAQUE_RAW_SIZE, + ANDROID_SENSOR_OPAQUE_RAW_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_PIXEL_MODE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED, ANDROID_SENSOR_END, ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE = 0xF0000, // ANDROID_SENSOR_INFO_START, ANDROID_SENSOR_INFO_SENSITIVITY_RANGE, @@ -307,6 +343,10 @@ ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE, ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED, ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE, + ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE_MAXIMUM_RESOLUTION, + ANDROID_SENSOR_INFO_BINNING_FACTOR, ANDROID_SENSOR_INFO_END, ANDROID_SHADING_MODE = 0x100000, // ANDROID_SHADING_START, ANDROID_SHADING_STRENGTH, @@ -360,6 +400,7 @@ ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL = 0x150000, // ANDROID_INFO_START, ANDROID_INFO_VERSION, ANDROID_INFO_SUPPORTED_BUFFER_MANAGEMENT_VERSION, + ANDROID_INFO_DEVICE_STATE_ORIENTATIONS, ANDROID_INFO_END, ANDROID_BLACK_LEVEL_LOCK = 0x160000, // ANDROID_BLACK_LEVEL_START, ANDROID_BLACK_LEVEL_END, @@ -378,6 +419,12 @@ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS, ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS, ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STALL_DURATIONS_MAXIMUM_RESOLUTION, ANDROID_DEPTH_END, ANDROID_LOGICAL_MULTI_CAMERA_PHYSICAL_IDS = 0x1A0000, // ANDROID_LOGICAL_MULTI_CAMERA_START, ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE, @@ -390,10 +437,17 @@ 0x1C0000, // ANDROID_HEIC_START, ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS, ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_MIN_FRAME_DURATIONS_MAXIMUM_RESOLUTION, + ANDROID_HEIC_AVAILABLE_HEIC_STALL_DURATIONS_MAXIMUM_RESOLUTION, ANDROID_HEIC_END, ANDROID_HEIC_INFO_SUPPORTED = 0x1D0000, // ANDROID_HEIC_INFO_START, ANDROID_HEIC_INFO_MAX_JPEG_APP_SEGMENTS_COUNT, ANDROID_HEIC_INFO_END, + ANDROID_AUTOMOTIVE_LOCATION = 0x1E0000, // ANDROID_AUTOMOTIVE_START, + ANDROID_AUTOMOTIVE_END, + ANDROID_AUTOMOTIVE_LENS_FACING = 0x1F0000, // ANDROID_AUTOMOTIVE_LENS_START, + ANDROID_AUTOMOTIVE_LENS_END, }; /** @@ -545,6 +599,7 @@ enum AndroidControlVideoStabilizationMode { ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF, ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON, + ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION, }; // ANDROID_CONTROL_AE_STATE @@ -608,6 +663,24 @@ ANDROID_CONTROL_EXTENDED_SCENE_MODE_VENDOR_START = 0x40, }; +// ANDROID_CONTROL_AF_REGIONS_SET +enum AndroidControlAfRegionsSet { + ANDROID_CONTROL_AF_REGIONS_SET_FALSE, + ANDROID_CONTROL_AF_REGIONS_SET_TRUE, +}; + +// ANDROID_CONTROL_AE_REGIONS_SET +enum AndroidControlAeRegionsSet { + ANDROID_CONTROL_AE_REGIONS_SET_FALSE, + ANDROID_CONTROL_AE_REGIONS_SET_TRUE, +}; + +// ANDROID_CONTROL_AWB_REGIONS_SET +enum AndroidControlAwbRegionsSet { + ANDROID_CONTROL_AWB_REGIONS_SET_FALSE, + ANDROID_CONTROL_AWB_REGIONS_SET_TRUE, +}; + // ANDROID_DEMOSAIC_MODE enum AndroidDemosaicMode { ANDROID_DEMOSAIC_MODE_FAST, @@ -675,6 +748,7 @@ ANDROID_LENS_POSE_REFERENCE_PRIMARY_CAMERA, ANDROID_LENS_POSE_REFERENCE_GYROSCOPE, ANDROID_LENS_POSE_REFERENCE_UNDEFINED, + ANDROID_LENS_POSE_REFERENCE_AUTOMOTIVE, }; // ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION @@ -729,6 +803,37 @@ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SECURE_IMAGE_DATA, ANDROID_REQUEST_AVAILABLE_CAPABILITIES_SYSTEM_CAMERA, ANDROID_REQUEST_AVAILABLE_CAPABILITIES_OFFLINE_PROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ULTRA_HIGH_RESOLUTION_SENSOR, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_REMOSAIC_REPROCESSING, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT, + ANDROID_REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE, +}; + +// ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP +enum AndroidRequestAvailableDynamicRangeProfilesMap { + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_STANDARD + = 0x1, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HLG10 = 0x2, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10 = 0x4, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_HDR10_PLUS + = 0x8, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF + = 0x10, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_REF_PO + = 0x20, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM + = 0x40, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_10B_HDR_OEM_PO + = 0x80, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF + = 0x100, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_REF_PO + = 0x200, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM + = 0x400, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_DOLBY_VISION_8B_HDR_OEM_PO + = 0x800, + ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP_MAX = 0x1000, }; // ANDROID_SCALER_AVAILABLE_FORMATS @@ -775,6 +880,10 @@ = 0x6, ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END = 0x7, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_10BIT_OUTPUT + = 0x8, + ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_PUBLIC_END_3_8 + = 0x9, ANDROID_SCALER_AVAILABLE_RECOMMENDED_STREAM_CONFIGURATIONS_VENDOR_START = 0x18, }; @@ -788,6 +897,42 @@ ANDROID_SCALER_ROTATE_AND_CROP_AUTO, }; +// ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS +enum AndroidScalerPhysicalCameraMultiResolutionStreamConfigurations { + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_OUTPUT, + ANDROID_SCALER_PHYSICAL_CAMERA_MULTI_RESOLUTION_STREAM_CONFIGURATIONS_INPUT, +}; + +// ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION +enum AndroidScalerAvailableStreamConfigurationsMaximumResolution { + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +}; + +// ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED +enum AndroidScalerMultiResolutionStreamSupported { + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_FALSE, + ANDROID_SCALER_MULTI_RESOLUTION_STREAM_SUPPORTED_TRUE, +}; + +// ANDROID_SCALER_CROP_REGION_SET +enum AndroidScalerCropRegionSet { + ANDROID_SCALER_CROP_REGION_SET_FALSE, + ANDROID_SCALER_CROP_REGION_SET_TRUE, +}; + +// ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES +enum AndroidScalerAvailableStreamUseCases { + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_DEFAULT = 0x0, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW = 0x1, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_STILL_CAPTURE = 0x2, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_RECORD = 0x3, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_PREVIEW_VIDEO_STILL + = 0x4, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VIDEO_CALL = 0x5, + ANDROID_SCALER_AVAILABLE_STREAM_USE_CASES_VENDOR_START = 0x10000, +}; + // ANDROID_SENSOR_REFERENCE_ILLUMINANT1 enum AndroidSensorReferenceIlluminant1 { ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT = 1, @@ -818,9 +963,22 @@ ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS, ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY, ANDROID_SENSOR_TEST_PATTERN_MODE_PN9, + ANDROID_SENSOR_TEST_PATTERN_MODE_BLACK, ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1 = 256, }; +// ANDROID_SENSOR_PIXEL_MODE +enum AndroidSensorPixelMode { + ANDROID_SENSOR_PIXEL_MODE_DEFAULT, + ANDROID_SENSOR_PIXEL_MODE_MAXIMUM_RESOLUTION, +}; + +// ANDROID_SENSOR_RAW_BINNING_FACTOR_USED +enum AndroidSensorRawBinningFactorUsed { + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_TRUE, + ANDROID_SENSOR_RAW_BINNING_FACTOR_USED_FALSE, +}; + // ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT enum AndroidSensorInfoColorFilterArrangement { ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB, @@ -971,6 +1129,18 @@ ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_INPUT, }; +// ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION +enum AndroidDepthAvailableDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +}; + +// ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION +enum AndroidDepthAvailableDynamicDepthStreamConfigurationsMaximumResolution { + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_DEPTH_AVAILABLE_DYNAMIC_DEPTH_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +}; + // ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE enum AndroidLogicalMultiCameraSensorSyncType { ANDROID_LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE_APPROXIMATE, @@ -990,8 +1160,48 @@ ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_INPUT, }; +// ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION +enum AndroidHeicAvailableHeicStreamConfigurationsMaximumResolution { + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_OUTPUT, + ANDROID_HEIC_AVAILABLE_HEIC_STREAM_CONFIGURATIONS_MAXIMUM_RESOLUTION_INPUT, +}; + // ANDROID_HEIC_INFO_SUPPORTED enum AndroidHeicInfoSupported { ANDROID_HEIC_INFO_SUPPORTED_FALSE, ANDROID_HEIC_INFO_SUPPORTED_TRUE, }; + +// ANDROID_AUTOMOTIVE_LOCATION +enum AndroidAutomotiveLocation { + ANDROID_AUTOMOTIVE_LOCATION_INTERIOR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_OTHER, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_FRONT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_REAR, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_LEFT, + ANDROID_AUTOMOTIVE_LOCATION_EXTRA_RIGHT, +}; + +// ANDROID_AUTOMOTIVE_LENS_FACING +enum AndroidAutomotiveLensFacing { + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_FRONT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_REAR, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_EXTERIOR_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_OTHER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_1_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_2_RIGHT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_LEFT, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_CENTER, + ANDROID_AUTOMOTIVE_LENS_FACING_INTERIOR_SEAT_ROW_3_RIGHT, +};
diff --git a/net/log/trace_net_log_observer_unittest.cc b/net/log/trace_net_log_observer_unittest.cc index 2f8f17d2..fc09978 100644 --- a/net/log/trace_net_log_observer_unittest.cc +++ b/net/log/trace_net_log_observer_unittest.cc
@@ -207,6 +207,8 @@ // This test will result in a deadlock if EnabledStateObserver instead // of AsyncEnabledStateObserver is used. Regression test for crbug.com/760817. +// Perfetto SDK doesn't have this problem, so the test is not necessary. +#if !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) TEST_F(TraceNetLogObserverTest, TracingDisabledDuringOnAddEntry) { trace_net_log_observer()->WatchForTraceStart(NetLog::Get()); TraceLog* trace_log = TraceLog::GetInstance(); @@ -225,6 +227,7 @@ // Flush now so that TraceLog's buffer is empty in the next test. EndTraceAndFlush(); } +#endif // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) TEST_F(TraceNetLogObserverTest, TraceEventCaptured) { auto entries = net_log_observer()->GetEntries();
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json index 70e85de8..2d5949e 100644 --- a/testing/buildbot/chrome.json +++ b/testing/buildbot/chrome.json
@@ -1946,7 +1946,7 @@ { "args": [], "cros_board": "eve", - "cros_img": "eve-release/R110-15245.0.0", + "cros_img": "eve-release/R110-15247.0.0", "name": "lacros_all_tast_tests EVE_RELEASE_LKGM", "resultdb": { "enable": true, @@ -2089,7 +2089,7 @@ { "args": [], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R110-15245.0.0", + "cros_img": "jacuzzi-release/R110-15247.0.0", "name": "lacros_all_tast_tests JACUZZI_RELEASE_LKGM", "resultdb": { "enable": true, @@ -2194,7 +2194,7 @@ { "args": [], "cros_board": "herobrine", - "cros_img": "herobrine-release/R110-15245.0.0", + "cros_img": "herobrine-release/R110-15247.0.0", "name": "lacros_fyi_tast_tests HEROBRINE_RELEASE_LKGM", "resultdb": { "enable": true,
diff --git a/testing/buildbot/chromium.webrtc.fyi.json b/testing/buildbot/chromium.webrtc.fyi.json index 0846f0d3..b2fb128 100644 --- a/testing/buildbot/chromium.webrtc.fyi.json +++ b/testing/buildbot/chromium.webrtc.fyi.json
@@ -11,6 +11,50 @@ }, "WebRTC Chromium FYI Android Builder (dbg)": {}, "WebRTC Chromium FYI Android Builder ARM64 (dbg)": {}, + "WebRTC Chromium FYI Android Tests (dbg)": { + "gtest_tests": [ + { + "args": [ + "--gtest_filter=WebRtc*", + "--gs-results-bucket=chromium-result-details", + "--recover-devices", + "--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_os_type": "userdebug", + "device_type": "walleye", + "os": "Android" + } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "content_browsertests", + "test_id_prefix": "ninja://content/test:content_browsertests/" + } + ] + }, "WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)": { "gtest_tests": [ { @@ -101,6 +145,50 @@ } ] }, + "WebRTC Chromium FYI Android Tests ARM64 (dbg)": { + "gtest_tests": [ + { + "args": [ + "--gtest_filter=WebRtc*", + "--gs-results-bucket=chromium-result-details", + "--recover-devices", + "--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "content_browsertests" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_os_type": "userdebug", + "device_type": "walleye", + "os": "Android" + } + ], + "output_links": [ + { + "link": [ + "https://luci-logdog.appspot.com/v/?s", + "=android%2Fswarming%2Flogcats%2F", + "${TASK_ID}%2F%2B%2Funified_logcats" + ], + "name": "shard #${SHARD_INDEX} logcats" + } + ], + "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" + }, + "test": "content_browsertests", + "test_id_prefix": "ninja://content/test:content_browsertests/" + } + ] + }, "WebRTC Chromium FYI Linux Builder (dbg)": { "additional_compile_targets": [ "browser_tests",
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json index f347b00..81292f5 100644 --- a/testing/buildbot/internal.chromeos.fyi.json +++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -1096,7 +1096,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R110-15245.0.0", + "cros_img": "octopus-release/R110-15247.0.0", "name": "lacros_fyi_tast_tests OCTOPUS_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1144,7 +1144,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R110-15245.0.0", + "cros_img": "octopus-release/R110-15247.0.0", "name": "ozone_unittests OCTOPUS_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -1195,7 +1195,7 @@ { "args": [], "cros_board": "hana", - "cros_img": "hana-release/R110-15245.0.0", + "cros_img": "hana-release/R110-15247.0.0", "name": "lacros_all_tast_tests HANA_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1243,7 +1243,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R110-15245.0.0", + "cros_img": "strongbad-release/R110-15247.0.0", "name": "lacros_all_tast_tests STRONGBAD_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1291,7 +1291,7 @@ { "args": [], "cros_board": "hana", - "cros_img": "hana-release/R110-15245.0.0", + "cros_img": "hana-release/R110-15247.0.0", "name": "ozone_unittests HANA_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -1335,7 +1335,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R110-15245.0.0", + "cros_img": "strongbad-release/R110-15247.0.0", "name": "ozone_unittests STRONGBAD_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -1379,7 +1379,7 @@ { "args": [], "cros_board": "hana", - "cros_img": "hana-release/R110-15245.0.0", + "cros_img": "hana-release/R110-15247.0.0", "name": "viz_unittests HANA_RELEASE_LKGM", "swarming": {}, "test": "viz_unittests", @@ -1423,7 +1423,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R110-15245.0.0", + "cros_img": "strongbad-release/R110-15247.0.0", "name": "viz_unittests STRONGBAD_RELEASE_LKGM", "swarming": {}, "test": "viz_unittests",
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 8106a52..e3d0ad5 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1705,6 +1705,11 @@ 'shards': 15, }, }, + 'WebRTC Chromium FYI Android Tests (dbg)': { + 'args': [ + '--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter', + ], + }, 'WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)': { 'args': [ '--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter', @@ -1715,6 +1720,11 @@ '--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter', ], }, + 'WebRTC Chromium FYI Android Tests ARM64 (dbg)': { + 'args': [ + '--test-launcher-filter-file=../../testing/buildbot/filters/chromium.webrtc.fyi.android.tests.dbg.content_browsertests.filter', + ], + }, 'Win10 Tests x64': { # crbug.com/868082 'args': [
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index fd7f409..0e42f3c9 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -503,8 +503,8 @@ 'CROS_EVE_RELEASE_LKGM': { 'skylab': { 'cros_board': 'eve', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'eve-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'eve-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'EVE_RELEASE_LKGM', @@ -549,8 +549,8 @@ 'CROS_HANA_RELEASE_LKGM': { 'skylab': { 'cros_board': 'hana', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'hana-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'hana-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'HANA_RELEASE_LKGM', @@ -585,8 +585,8 @@ 'CROS_HEROBRINE_RELEASE_LKGM': { 'skylab': { 'cros_board': 'herobrine', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'herobrine-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'herobrine-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'HEROBRINE_RELEASE_LKGM', @@ -594,8 +594,8 @@ 'CROS_JACUZZI_RELEASE_LKGM': { 'skylab': { 'cros_board': 'jacuzzi', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'jacuzzi-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'jacuzzi-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'JACUZZI_RELEASE_LKGM', @@ -660,8 +660,8 @@ 'CROS_OCTOPUS_RELEASE_LKGM': { 'skylab': { 'cros_board': 'octopus', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'octopus-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'octopus-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'OCTOPUS_RELEASE_LKGM', @@ -696,8 +696,8 @@ 'CROS_STRONGBAD_RELEASE_LKGM': { 'skylab': { 'cros_board': 'strongbad', - 'cros_chrome_version': '110.0.5419.0', - 'cros_img': 'strongbad-release/R110-15245.0.0', + 'cros_chrome_version': '110.0.5421.0', + 'cros_img': 'strongbad-release/R110-15247.0.0', }, 'enabled': True, 'identifier': 'STRONGBAD_RELEASE_LKGM',
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index a8fddbf..95c8b93 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -5955,6 +5955,15 @@ }, 'WebRTC Chromium FYI Android Builder (dbg)': {}, 'WebRTC Chromium FYI Android Builder ARM64 (dbg)': {}, + 'WebRTC Chromium FYI Android Tests (dbg)': { + 'os_type': 'android', + 'mixins': [ + 'walleye', + ], + 'test_suites': { + 'gtest_tests': 'webrtc_chromium_simple_gtests', + }, + }, 'WebRTC Chromium FYI Android Tests (dbg) (M Nexus5X)': { 'os_type': 'android', 'mixins': [ @@ -5975,6 +5984,15 @@ 'gtest_tests': 'webrtc_chromium_simple_gtests', }, }, + 'WebRTC Chromium FYI Android Tests ARM64 (dbg)': { + 'os_type': 'android', + 'mixins': [ + 'walleye', + ], + 'test_suites': { + 'gtest_tests': 'webrtc_chromium_simple_gtests', + }, + }, 'WebRTC Chromium FYI Linux Builder (dbg)': { 'additional_compile_targets': [ 'browser_tests',
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 3bd47db7..df747742 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -5604,6 +5604,7 @@ { "name": "Enabled", "enable_features": [ + "LongPressSurroundingText", "MapsExperienceKit" ] } @@ -5970,21 +5971,6 @@ ] } ], - "IOSThumbstrip": [ - { - "platforms": [ - "ios" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ExpandedTabStrip" - ] - } - ] - } - ], "IOSUseUserDefaultsForExitedCleanlyBeacon": [ { "platforms": [
diff --git a/third_party/blink/common/loader/record_load_histograms.cc b/third_party/blink/common/loader/record_load_histograms.cc index 3d79065..fe0084b 100644 --- a/third_party/blink/common/loader/record_load_histograms.cc +++ b/third_party/blink/common/loader/record_load_histograms.cc
@@ -13,6 +13,10 @@ namespace blink { +namespace { +constexpr char kIsolatedAppScheme[] = "isolated-app"; +} + void RecordLoadHistograms(const url::Origin& origin, network::mojom::RequestDestination destination, int net_error) { @@ -32,6 +36,12 @@ } base::UmaHistogramSparse("Net.ErrorCodesForSubresources3", -net_error); } + + // TODO(crbug.com/1384451): This is a temporary metric for monitoring the + // launch of Isolated Web Apps over the course of 2023. + if (origin.scheme() == kIsolatedAppScheme) { + base::UmaHistogramSparse("Net.ErrorCodesForIsolatedAppScheme", -net_error); + } } } // namespace blink
diff --git a/third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom b/third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom index e3020d2..9e74356 100644 --- a/third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom +++ b/third_party/blink/public/mojom/back_forward_cache_not_restored_reasons.mojom
@@ -21,12 +21,21 @@ array<BackForwardCacheNotRestoredReasons> children; }; +// Enum to indicate whether or not a document blocked back/forward cache. +enum BFCacheBlocked { + kYes = 0, + kNo = 1, + // This value indicates that the privacy sensitive information (whether or not a document blocked back/forward cache) is masked for a cross-origin iframe. + kMasked = 2 +}; + // Struct for NotRestoredReasons API to report from browser to renderer. struct BackForwardCacheNotRestoredReasons { // Indicates whether or not this document blocked back/forward cache. If this - // document is cross-origin from the main document, this boolean indicates if - // this frame's subtree blocked back/forward cache. - bool blocked; + // document is cross-origin from the main document, this indicates if this + // frame's subtree blocked back/forward cache. This value can be |kMasked| for + // privacy reasons. + BFCacheBlocked blocked; // This will be absl::nullopt when this document is cross-origin from the main // document. SameOriginBfcacheNotRestoredDetails? same_origin_details;
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h index c96746d1..e3263be7 100644 --- a/third_party/blink/public/web/web_local_frame.h +++ b/third_party/blink/public/web/web_local_frame.h
@@ -222,8 +222,6 @@ // Sets BackForwardCache NotRestoredReasons for the current frame. virtual void SetNotRestoredReasons( const mojom::BackForwardCacheNotRestoredReasonsPtr&) = 0; - // Returns if the current frame's NotRestoredReasons has any blocking reasons. - virtual bool HasBlockingReasons() = 0; // Hierarchy ----------------------------------------------------------
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h index 149ca59..92fc4db 100644 --- a/third_party/blink/public/web/web_local_frame_client.h +++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -627,6 +627,9 @@ // to be serialized again. virtual void NotifyWebAXObjectMarkedDirty(const WebAXObject&) {} + // Called when accessibility is ready to serialize. + virtual void AXReadyCallback() {} + // Audio Output Devices API -------------------------------------------- // Checks that the given audio sink exists and is authorized. The result is
diff --git a/third_party/blink/renderer/build/scripts/make_runtime_feature_state_override_context.py b/third_party/blink/renderer/build/scripts/make_runtime_feature_state_override_context.py new file mode 100755 index 0000000..991972d5 --- /dev/null +++ b/third_party/blink/renderer/build/scripts/make_runtime_feature_state_override_context.py
@@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +# Copyright 2022 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import json5_generator +import make_runtime_features +import make_runtime_features_utilities as util +import template_expander + + +class RunTimeFeatureStateOverrideContextWriter( + make_runtime_features.BaseRuntimeFeatureWriter): + file_basename = "runtime_feature_state_override_context" + + def __init__(self, json5_file_path, output_dir): + super(RunTimeFeatureStateOverrideContextWriter, + self).__init__(json5_file_path, output_dir) + self._outputs = { + (self.file_basename + '.cc'): self.generate_implementation, + (self.file_basename + '.h'): self.generate_header, + } + self._browser_read_access_features = util.browser_read_access( + self._features) + + def _template_inputs(self): + return { + 'features': self._features, + 'browser_read_access_features': self._browser_read_access_features, + 'platforms': self._platforms(), + 'input_files': self._input_files, + 'header_guard': self._header_guard, + } + + @template_expander.use_jinja(f'templates/{file_basename}.cc.tmpl') + def generate_implementation(self): + return self._template_inputs() + + @template_expander.use_jinja(f'templates/{file_basename}.h.tmpl') + def generate_header(self): + return self._template_inputs() + + +if __name__ == '__main__': + json5_generator.Maker(RunTimeFeatureStateOverrideContextWriter).main()
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl new file mode 100644 index 0000000..28b94de --- /dev/null +++ b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.cc.tmpl
@@ -0,0 +1,33 @@ +{% from 'templates/macros.tmpl' import license, source_files_for_generated_file %} +{{license()}} + +{{source_files_for_generated_file(template_file, input_files)}} + +#include "third_party/blink/renderer/core/runtime_feature_state/runtime_feature_state_override_context.h" + +namespace blink { +{% for feature in browser_read_access_features %} +bool RuntimeFeatureStateOverrideContext:: + Is{{feature.name}}ForceDisabled() { + // TODO(crbug.com/1377000): Get the real value. + return true; +} + +bool RuntimeFeatureStateOverrideContext:: + Is{{feature.name}}ForceEnabled() { + // TODO(crbug.com/1377000): Get the real value. + return true; +} + +void RuntimeFeatureStateOverrideContext:: + Set{{feature.name}}ForceDisabled() { + // TODO(crbug.com/1377000): Do something. +} + +void RuntimeFeatureStateOverrideContext:: + Set{{feature.name}}ForceEnabled() { + // TODO(crbug.com/1377000): Do something. +} +{% endfor %} + +} // namespace blink \ No newline at end of file
diff --git a/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl new file mode 100644 index 0000000..0bbe6c75 --- /dev/null +++ b/third_party/blink/renderer/build/scripts/templates/runtime_feature_state_override_context.h.tmpl
@@ -0,0 +1,36 @@ +{% from 'templates/macros.tmpl' import license, source_files_for_generated_file %} +{{license()}} + +{{source_files_for_generated_file(template_file, input_files)}} + +#ifndef {{header_guard}} +#define {{header_guard}} + +#include "third_party/blink/renderer/core/execution_context/execution_context.h" + +namespace blink { + +// This class coalesces browser side and enterprise policy state into a final +// value which is then used to override the blink runtime feature state. It can +// be queried with `Is*ForceEnabled()` or `Is*ForceDisabled()`. +class RuntimeFeatureStateOverrideContext { + public: + explicit RuntimeFeatureStateOverrideContext( + ExecutionContext* execution_context) { + // TODO(crbug.com/1377000): Actually init the object. + } + + {% for feature in browser_read_access_features %} + bool Is{{feature.name}}ForceDisabled(); + + bool Is{{feature.name}}ForceEnabled(); + + void Set{{feature.name}}ForceDisabled(); + + void Set{{feature.name}}ForceEnabled(); + {% endfor %} +}; + +} // namespace blink + +#endif // {{header_guard}}
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn index f4014df..42f8f26 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn
@@ -1136,6 +1136,28 @@ deps = make_core_generated_deps } +blink_python_runner( + "make_core_generated_runtime_feature_state_override_context") { + script = "../build/scripts/make_runtime_feature_state_override_context.py" + + inputs = scripts_for_json5_files + [ + "../build/scripts/make_runtime_feature_state_override_context.py", + "../platform/runtime_enabled_features.json5", + "../build/scripts/templates/runtime_feature_state_override_context.h.tmpl", + "../build/scripts/templates/runtime_feature_state_override_context.cc.tmpl", + ] + outputs = [ + "$blink_core_output_dir/runtime_feature_state/runtime_feature_state_override_context.h", + "$blink_core_output_dir/runtime_feature_state/runtime_feature_state_override_context.cc", + ] + + args = [ + rebase_path("../platform/runtime_enabled_features.json5", root_build_dir), + "--output_dir", + "$rel_blink_core_gen_dir/runtime_feature_state", + ] +} + blink_python_runner("make_core_generated_web_origin_trials") { script = "../build/scripts/make_web_origin_trials.py" @@ -1189,6 +1211,7 @@ ":make_core_generated_performance_entry_names", ":make_core_generated_permissions_policy_helper", ":make_core_generated_pointer_type_names", + ":make_core_generated_runtime_feature_state_override_context", ":make_core_generated_script_type_names", ":make_core_generated_securitypolicyviolation_disposition_names", ":make_core_generated_shadow_element_names",
diff --git a/third_party/blink/renderer/core/accessibility/ax_object_cache.h b/third_party/blink/renderer/core/accessibility/ax_object_cache.h index 7ca2911..6d7b28a 100644 --- a/third_party/blink/renderer/core/accessibility/ax_object_cache.h +++ b/third_party/blink/renderer/core/accessibility/ax_object_cache.h
@@ -213,6 +213,7 @@ virtual AXObject* GetPluginRoot() = 0; + // Serialize entire tree, returning true if successful. virtual bool SerializeEntireTree(bool exclude_offscreen, size_t max_node_count, base::TimeDelta timeout, @@ -245,7 +246,7 @@ // Note that any pending event also causes its corresponding object to // become dirty. - virtual bool HasDirtyObjects() = 0; + virtual bool HasDirtyObjects() const = 0; // Adds the event to a list of pending events that is cleared out by // a subsequent call to duplicates are not represented.. Returns false if @@ -254,7 +255,7 @@ bool insert_at_beginning) = 0; // Ensure that a call to ProcessDeferredAccessibilityEvents() will occur soon. - virtual void ScheduleAXUpdate() = 0; + virtual void ScheduleAXUpdate() const = 0; protected: friend class ScopedBlinkAXEventIntent;
diff --git a/third_party/blink/renderer/core/css/container_query_evaluator_test.cc b/third_party/blink/renderer/core/css/container_query_evaluator_test.cc index 5303866b..f2f0019 100644 --- a/third_party/blink/renderer/core/css/container_query_evaluator_test.cc +++ b/third_party/blink/renderer/core/css/container_query_evaluator_test.cc
@@ -673,6 +673,7 @@ TEST_F(ContainerQueryEvaluatorTest, Printing) { ScopedLayoutNGForTest ng_scope(true); ScopedLayoutNGPrintingForTest ng_printing_scope(true); + ScopedLayoutNGBlockFragmentationForTest ng_block_fragmentation_scope(true); SetBodyInnerHTML(R"HTML( <style>
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index c82bdae..4cf21ba 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2707,6 +2707,9 @@ if (ElementAnimations* element_animations = data->GetElementAnimations()) element_animations->CssAnimations().Cancel(); + NodeRareData* node_data = RareData(); + node_data->InvalidateAssociatedAnimationEffects(); + if (was_in_document && data->IntersectionObserverData()) { data->IntersectionObserverData()->ComputeIntersectionsForTarget( IntersectionObservation::kExplicitRootObserversNeedUpdate |
diff --git a/third_party/blink/renderer/core/dom/node_rare_data.cc b/third_party/blink/renderer/core/dom/node_rare_data.cc index dd0460a..ff7d593 100644 --- a/third_party/blink/renderer/core/dom/node_rare_data.cc +++ b/third_party/blink/renderer/core/dom/node_rare_data.cc
@@ -115,6 +115,15 @@ scroll_timelines_->erase(timeline); } +void NodeRareData::InvalidateAssociatedAnimationEffects() { + if (!scroll_timelines_) + return; + + for (ScrollTimeline* scroll_timeline : *scroll_timelines_) { + scroll_timeline->InvalidateEffectTargetStyle(); + } +} + void NodeRareData::Trace(blink::Visitor* visitor) const { visitor->Trace(mutation_observer_data_); visitor->Trace(flat_tree_node_data_);
diff --git a/third_party/blink/renderer/core/dom/node_rare_data.h b/third_party/blink/renderer/core/dom/node_rare_data.h index 16e20d0..d3a1539 100644 --- a/third_party/blink/renderer/core/dom/node_rare_data.h +++ b/third_party/blink/renderer/core/dom/node_rare_data.h
@@ -240,6 +240,7 @@ void RegisterScrollTimeline(ScrollTimeline*); void UnregisterScrollTimeline(ScrollTimeline*); + void InvalidateAssociatedAnimationEffects(); void Trace(blink::Visitor*) const override;
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 3d18dc6..589661f 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -3343,27 +3343,6 @@ return not_restored_reasons_; } -bool LocalFrame::HasBlockingReasons() { - DCHECK(IsOutermostMainFrame()); - if (!not_restored_reasons_) - return false; - return HasBlockingReasonsHelper(not_restored_reasons_); -} - -bool LocalFrame::HasBlockingReasonsHelper( - const mojom::blink::BackForwardCacheNotRestoredReasonsPtr& not_restored) { - if (not_restored->blocked) - return true; - if (not_restored->same_origin_details) { - for (const auto& child : not_restored->same_origin_details->children) { - if (HasBlockingReasonsHelper(child)) - return true; - } - return false; - } - return false; -} - void LocalFrame::AddScrollSnapshotClient(ScrollSnapshotClient& client) { scroll_snapshot_clients_.insert(&client); unvalidated_scroll_snapshot_clients_.insert(&client);
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h index 7f9eb251..ba5c5723 100644 --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -614,8 +614,6 @@ mojom::blink::BackForwardCacheNotRestoredReasonsPtr); const mojom::blink::BackForwardCacheNotRestoredReasonsPtr& GetNotRestoredReasons(); - // Returns if the saved NotRestoredReasons has any blocking reasons. - bool HasBlockingReasons(); const AtomicString& GetReducedAcceptLanguage() const { return reduced_accept_language_; @@ -923,10 +921,6 @@ String& clip_html, gfx::Rect& clip_rect); - // Helper function for |HasBlockingReasons()|. - bool HasBlockingReasonsHelper( - const mojom::blink::BackForwardCacheNotRestoredReasonsPtr&); - #if !BUILDFLAG(IS_ANDROID) void SetTitlebarAreaDocumentStyleEnvironmentVariables() const; void MaybeUpdateWindowControlsOverlayWithNewZoomLevel();
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc index 1ea9ed1..c99f8b32 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -3093,10 +3093,6 @@ ConvertNotRestoredReasons(not_restored_reasons)); } -bool WebLocalFrameImpl::HasBlockingReasons() { - return GetFrame()->HasBlockingReasons(); -} - const mojom::blink::BackForwardCacheNotRestoredReasonsPtr& WebLocalFrameImpl::GetNotRestoredReasons() { return GetFrame()->GetNotRestoredReasons();
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h index 45b7e211..928dc0cd 100644 --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -390,8 +390,6 @@ void SetNotRestoredReasons( const mojom::BackForwardCacheNotRestoredReasonsPtr&) override; - // Returns if the current frame's NotRestoredReasons has any blocking reasons. - bool HasBlockingReasons() override; const mojom::blink::BackForwardCacheNotRestoredReasonsPtr& GetNotRestoredReasons();
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h index a8cabc9..0e01ac7 100644 --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -1937,9 +1937,18 @@ return !Transform().Operations().empty(); } ETransformStyle3D UsedTransformStyle3D() const { + if (TransformStyle3D() == ETransformStyle3D::kFlat) { + return ETransformStyle3D::kFlat; + } + + // Even if the user specified transform-style: preserves-3d (which is + // non-default), it could be overridden by a number of other properties. + // These checks are fairly expensive (since there are so many of them), + // so we only bother going through them if needed. + DCHECK_EQ(TransformStyle3D(), ETransformStyle3D::kPreserve3d); return HasGroupingPropertyForUsedTransformStyle3D() ? ETransformStyle3D::kFlat - : TransformStyle3D(); + : ETransformStyle3D::kPreserve3d; } // Returns whether the transform operations for |otherStyle| differ from the // operations for this style instance. Note that callers may want to also
diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc index 8977e96..ae27c35 100644 --- a/third_party/blink/renderer/core/timing/performance_navigation_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_navigation_timing.cc
@@ -332,7 +332,17 @@ if (!reasons) return ScriptValue::CreateNull(script_state->GetIsolate()); V8ObjectBuilder builder(script_state); - builder.AddBoolean("blocked", reasons->blocked); + switch (reasons->blocked) { + case mojom::blink::BFCacheBlocked::kYes: + case mojom::blink::BFCacheBlocked::kNo: + builder.AddBoolean( + "blocked", reasons->blocked == mojom::blink::BFCacheBlocked::kYes); + break; + case mojom::blink::BFCacheBlocked::kMasked: + // |blocked| can be null when masking the value. + builder.AddNull("blocked"); + break; + } builder.AddString("url", AtomicString(reasons->same_origin_details ? reasons->same_origin_details->url : ""));
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc index 7548af35..ec9f5a7 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.cc
@@ -697,6 +697,8 @@ } AXObject* AXObjectCacheImpl::Root() { + if (AXObject* root = SafeGet(document_)) + return root; return GetOrCreate(document_); } @@ -746,7 +748,7 @@ // Next flush all accessibility events and dirty objects, for both the main // and popup document. - if (IsDirty()) + if (IsDirty() || HasDirtyObjects()) ProcessDeferredAccessibilityEvents(GetDocument()); } @@ -2077,35 +2079,19 @@ DCHECK(layout_object); SCOPED_DISALLOW_LIFECYCLE_TRANSITION(); Node* node = GetClosestNodeForLayoutObject(layout_object); - if (node) - DeferTreeUpdate(&AXObjectCacheImpl::StyleChangedWithCleanLayout, node); -} - -void AXObjectCacheImpl::StyleChangedWithCleanLayout(Node* node) { - DCHECK(node); - DCHECK(!node->GetDocument().NeedsLayoutTreeUpdateForNode(*node)); - - // There is a ton of style change notifications coming from newly-opened - // calendar popups for pickers. Solving that problem is what inspired the - // approach below, which is likely true for all elements. - // - // If we don't know about an object, then its style did not change as far as - // we (and ATs) are concerned. For this reason, don't call GetOrCreate. - AXObject* obj = Get(node); - if (!obj) + if (!node) return; - DCHECK(!obj->IsDetached()); - - // If the foreground or background color on an item inside a container which - // supports selection changes, it can be the result of the selection changing - // as well as the container losing focus. We handle these notifications via - // their state changes, so no need to mark them dirty here. - AXObject* parent = obj->CachedParentObject(); - if (parent && ui::IsContainerWithSelectableChildren(parent->RoleValue())) + AXObject* ax_object = SafeGet(node); + if (!ax_object) { + // No object exists to mark dirty yet -- there can sometimes be a layout in + // the initial empty document, or style has changed before the object cache + // becomes aware that the node exists. It's too early for the style change + // to be useful. return; + } - MarkAXObjectDirtyWithCleanLayout(obj); + MarkAXObjectDirty(ax_object); } void AXObjectCacheImpl::TextChanged(Node* node) { @@ -2292,8 +2278,7 @@ } void AXObjectCacheImpl::DidInsertChildrenOfNode(Node* node) { - // If a node is inserted that is a descendant of a leaf node in the - // accessibility tree, notify the root of that subtree that its children have + // If a node is inserted, notify its parent that its text/children may have // changed. DCHECK(node); while (node) { @@ -2518,6 +2503,15 @@ ProcessDeferredAccessibilityEventsImpl(document); } + // Check whether there are dirty objects ready to be serialized. + // TODO(accessibility) It's a bit confusing that this can be true when the + // IsDirty() is false, but this is the case for objects marked dirty from + // RenderAccessibilityImpl, e.g. for the kEndOfTest event. + if (HasDirtyObjects()) { + if (auto* client = GetWebLocalFrameClient()) + client->AXReadyCallback(); + } + // Accessibility is now clean for both documents: AXObjects can be safely // traversed and AXObject's properties can be safely fetched. // TODO(accessibility) Now that both documents are always processed at the @@ -2909,7 +2903,7 @@ ScheduleAXUpdate(); } -void AXObjectCacheImpl::ScheduleAXUpdate() { +void AXObjectCacheImpl::ScheduleAXUpdate() const { // A visual update will force accessibility to be updated as well. // Scheduling visual updates before the document is finished loading can // interfere with event ordering. In any case, at least one visual update will @@ -4109,7 +4103,10 @@ "the first place: " << obj->ToString(true) << "\nParent: " << obj->ParentObjectIncludedInTree()->ToString(true) - << "\nIndex in parent: " << obj->IndexInParent(); + << "\nIndex in parent: " + << obj->ParentObjectIncludedInTree() + ->CachedChildrenIncludingIgnored() + .Find(obj); updates.push_back(update); } @@ -4337,7 +4334,11 @@ void AXObjectCacheImpl::HandleLoadStart(Document* document) { SCOPED_DISALLOW_LIFECYCLE_TRANSITION(); - if (!IsPopup(*document)) { + // Popups do not need to fire load start or load complete , because ATs do not + // regard popups as documents -- that is an implementation detail of the + // browser. The AT regards popups as part of a widget, and a load start or + // load complete event would only potentially confuse the AT. + if (!IsPopup(*document) && !IsInitialEmptyDocument(*document)) { DeferTreeUpdate(&AXObjectCacheImpl::EnsurePostNotification, document, ax::mojom::blink::Event::kLoadStart); } @@ -4346,28 +4347,20 @@ void AXObjectCacheImpl::HandleLoadComplete(Document* document) { SCOPED_DISALLOW_LIFECYCLE_TRANSITION(); - // Popups do not need to fire a load complete message. - if (!IsPopup(*document)) { - AddPermissionStatusListener(); - DeferTreeUpdate(&AXObjectCacheImpl::HandleLoadCompleteWithCleanLayout, - document); - } -} - -void AXObjectCacheImpl::HandleLoadCompleteWithCleanLayout(Node* document_node) { - DCHECK(document_node); - const Document* document = To<Document>(document_node); -#if DCHECK_IS_ON() - DCHECK(document->Lifecycle().GetState() >= DocumentLifecycle::kLayoutClean) - << "Unclean document at lifecycle " << document->Lifecycle().ToString(); - DCHECK(document == document_.Get()); -#endif // DCHECK_IS_ON() - - if (!document->IsLoadCompleted() || IsInitialEmptyDocument(*document)) + // TODO(accessibility) Change this to a DCHECK, but that would fail right now + // in navigation API tests. + if (!document->IsLoadCompleted()) return; - PostNotification(GetOrCreate(document_node), - ax::mojom::blink::Event::kLoadComplete); + // Popups do not need to fire load start or load complete , because ATs do not + // regard popups as documents -- that is an implementation detail of the + // browser. The AT regards popups as part of a widget, and a load start or + // load complete event would only potentially confuse the AT. + if (!IsPopup(*document) && !IsInitialEmptyDocument(*document)) { + AddPermissionStatusListener(); + DeferTreeUpdate(&AXObjectCacheImpl::EnsurePostNotification, document, + ax::mojom::blink::Event::kLoadComplete); + } } void AXObjectCacheImpl::HandleLayoutComplete(Document* document) { @@ -4377,10 +4370,6 @@ if (IsPopup(*document)) return; - // Do not fire for initial empty document. - if (IsInitialEmptyDocument(*document)) - return; - // TODO(accessibility) Investigate removal of the layout complete event, which // seems to only be used as a signal to serialize location data. DeferTreeUpdate(&AXObjectCacheImpl::EnsurePostNotification, document,
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h index b2a27bf..2c243a0 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h +++ b/third_party/blink/renderer/modules/accessibility/ax_object_cache_impl.h
@@ -103,7 +103,7 @@ // Ensure that a full document lifecycle will occur, which in turn ensures // that a call to ProcessDeferredAccessibilityEvents() will occur soon. - void ScheduleAXUpdate() override; + void ScheduleAXUpdate() const override; void Dispose() override; @@ -313,11 +313,9 @@ void HandleAriaPressedChangedWithCleanLayout(Element*); void HandleNodeLostFocusWithCleanLayout(Node*); void HandleNodeGainedFocusWithCleanLayout(Node*); - void HandleLoadCompleteWithCleanLayout(Node*); void UpdateCacheAfterNodeIsAttachedWithCleanLayout(Node*); void DidShowMenuListPopupWithCleanLayout(Node*); void DidHideMenuListPopupWithCleanLayout(Node*); - void StyleChangedWithCleanLayout(Node*); void HandleScrollPositionChangedWithCleanLayout(Node*); void HandleValidationMessageVisibilityChangedWithCleanLayout(const Node*); void HandleUpdateActiveMenuOptionWithCleanLayout(Node*); @@ -455,9 +453,7 @@ pending_events_.clear(); } - bool HasDirtyObjects() override { - return !dirty_objects_.empty(); - } + bool HasDirtyObjects() const override { return !dirty_objects_.empty(); } bool AddPendingEvent(const ui::AXEvent& event, bool insert_at_beginning) override;
diff --git a/third_party/blink/renderer/modules/exported/web_ax_context.cc b/third_party/blink/renderer/modules/exported/web_ax_context.cc index ddc43019..140e825 100644 --- a/third_party/blink/renderer/modules/exported/web_ax_context.cc +++ b/third_party/blink/renderer/modules/exported/web_ax_context.cc
@@ -127,7 +127,15 @@ void WebAXContext::ScheduleAXUpdate() { if (!private_->HasActiveDocument()) return; - return private_->GetAXObjectCache().ScheduleAXUpdate(); + + const auto& cache = private_->GetAXObjectCache(); + + // If no dirty objects are queued, it's not necessary to schedule an extra + // visual update. + if (!cache.HasDirtyObjects()) + return; + + return cache.ScheduleAXUpdate(); } void WebAXContext::FireLoadCompleteIfLoaded() {
diff --git a/third_party/blink/renderer/modules/exported/web_ax_object.cc b/third_party/blink/renderer/modules/exported/web_ax_object.cc index b6dea2c..e6089280 100644 --- a/third_party/blink/renderer/modules/exported/web_ax_object.cc +++ b/third_party/blink/renderer/modules/exported/web_ax_object.cc
@@ -549,23 +549,14 @@ if (IsDetached()) return WebAXObject(); + private_->GetDocument()->View()->CheckDoesNotNeedLayout(); + ScopedActionAnnotator annotater(private_.Get(), ax::mojom::blink::Action::kHitTest); gfx::Point contents_point = private_->DocumentFrameView()->SoonToBeRemovedUnscaledViewportToContents( point); - Document* document = private_->GetDocument(); - if (!document || !document->View()) - return WebAXObject(); - if (!document->View()->UpdateAllLifecyclePhasesExceptPaint( - DocumentUpdateReason::kAccessibility)) { - return WebAXObject(); - } - - if (IsDetached()) - return WebAXObject(); // Updating lifecycle could detach object. - AXObject* hit = private_->AccessibilityHitTest(contents_point); if (hit) @@ -1316,6 +1307,8 @@ const Document* document = web_document.ConstUnwrap<Document>(); auto* cache = To<AXObjectCacheImpl>(document->ExistingAXObjectCache()); DCHECK(cache); + if (!cache->Root()) + return WebAXObject(); // Accessibility not yet active in this cache. return WebAXObject(cache->GetOrCreate(document)); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc index b7f66c8b..ddd95bde 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -287,6 +287,7 @@ WebVector<webrtc::PeerConnectionInterface::IceServer> ice_servers; for (const RTCIceServer* ice_server : configuration->iceServers()) { Vector<String> url_strings; + std::vector<std::string> converted_urls; if (ice_server->hasUrls()) { UseCounter::Count(context, WebFeature::kRTCIceServerURLs); switch (ice_server->urls()->GetContentType()) { @@ -331,18 +332,18 @@ "\"turn\" or \"turns\"."); } - auto converted_ice_server = - webrtc::PeerConnectionInterface::IceServer(); - converted_ice_server.urls.push_back(String(url).Utf8()); - if (ice_server->hasUsername()) { - converted_ice_server.username = ice_server->username().Utf8(); - } - if (ice_server->hasCredential()) { - converted_ice_server.password = ice_server->credential().Utf8(); - } - - ice_servers.emplace_back(std::move(converted_ice_server)); + converted_urls.push_back(String(url).Utf8()); } + + auto converted_ice_server = webrtc::PeerConnectionInterface::IceServer(); + converted_ice_server.urls = std::move(converted_urls); + if (ice_server->hasUsername()) { + converted_ice_server.username = ice_server->username().Utf8(); + } + if (ice_server->hasCredential()) { + converted_ice_server.password = ice_server->credential().Utf8(); + } + ice_servers.emplace_back(std::move(converted_ice_server)); } web_configuration.servers = ice_servers.ReleaseVector(); } @@ -1243,18 +1244,21 @@ } webrtc::RTCErrorType error = peer_handler_->SetConfiguration(configuration); - if (error != webrtc::RTCErrorType::NONE) { - // All errors besides InvalidModification should have been detected above. - if (error == webrtc::RTCErrorType::INVALID_MODIFICATION) { - exception_state.ThrowDOMException( - DOMExceptionCode::kInvalidModificationError, - "Attempted to modify the PeerConnection's " - "configuration in an unsupported way."); - } else { - exception_state.ThrowDOMException( - DOMExceptionCode::kOperationError, - "Could not update the PeerConnection with the given configuration."); - } + if (error == webrtc::RTCErrorType::NONE) { + return; + } else if (error == webrtc::RTCErrorType::INVALID_MODIFICATION) { + exception_state.ThrowDOMException( + DOMExceptionCode::kInvalidModificationError, + "Attempted to modify the PeerConnection's configuration in an " + "unsupported way."); + } else if (error == webrtc::RTCErrorType::SYNTAX_ERROR) { + exception_state.ThrowDOMException( + DOMExceptionCode::kSyntaxError, + "The given configuration has a syntax error."); + } else { + exception_state.ThrowDOMException( + DOMExceptionCode::kOperationError, + "Could not update the PeerConnection with the given configuration."); } } @@ -1409,7 +1413,6 @@ ConvertToRTCIceCandidatePlatform(ExecutionContext::From(script_state), candidate); - if (IsIceCandidateMissingSdpMidAndMLineIndex(candidate)) { exception_state.ThrowTypeError( "Candidate missing values for both sdpMid and sdpMLineIndex");
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc index b42807f..0bc95f5 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -3001,6 +3001,32 @@ EXPECT_EQ(7ul, begin_events.size()); EXPECT_EQ(7ul, end_events.size()); + + // Traces collected through Perfetto tracing backend differ in 2 aspects: + // 1. Arguments from the corresponding begin and end events are merged and + // stored in the begin event. + // 2. Enum values are converted to strings for better readability. + // So test expectations differ a bit in the SDK build and non-SDK build. +#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) + EXPECT_EQ("kGestureScrollUpdate", + begin_events[0]->GetKnownArgAsString("type")); + EXPECT_EQ(3, begin_events[0]->GetKnownArgAsInt("coalesced_count")); + + EXPECT_EQ("kGestureScrollEnd", begin_events[1]->GetKnownArgAsString("type")); + EXPECT_EQ("{kGestureScrollBegin, kGestureTypeFirst}", + begin_events[2]->GetKnownArgAsString("type")); + EXPECT_EQ("{kGesturePinchBegin, kGesturePinchTypeFirst}", + begin_events[3]->GetKnownArgAsString("type")); + // Original scroll and pinch updates will be stored in the coalesced + // PinchUpdate of the <ScrollUpdate, PinchUpdate> pair. + // The ScrollUpdate of the pair doesn't carry original events and won't be + // traced. + EXPECT_EQ("{kGesturePinchUpdate, kGesturePinchTypeLast}", + begin_events[4]->GetKnownArgAsString("type")); + EXPECT_EQ(4, begin_events[4]->GetKnownArgAsInt("coalesced_count")); + EXPECT_EQ("kGesturePinchEnd", begin_events[5]->GetKnownArgAsString("type")); + EXPECT_EQ("kGestureScrollEnd", begin_events[6]->GetKnownArgAsString("type")); +#else // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) EXPECT_EQ(static_cast<int>(WebInputEvent::Type::kGestureScrollUpdate), end_events[0]->GetKnownArgAsInt("type")); EXPECT_EQ(3, end_events[0]->GetKnownArgAsInt("coalesced_count")); @@ -3022,6 +3048,8 @@ end_events[5]->GetKnownArgAsInt("type")); EXPECT_EQ(static_cast<int>(WebInputEvent::Type::kGestureScrollEnd), end_events[6]->GetKnownArgAsInt("type")); +#endif // !BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) + testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); }
diff --git a/third_party/blink/web_tests/MSANExpectations b/third_party/blink/web_tests/MSANExpectations index fc7df679..f5d0fd7d 100644 --- a/third_party/blink/web_tests/MSANExpectations +++ b/third_party/blink/web_tests/MSANExpectations
@@ -41,9 +41,7 @@ crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-layout/timeline-layout-with-invalidations.js [ Pass Timeout ] crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidations.js [ Pass Timeout ] crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-style/timeline-style-recalc-with-invalidator-invalidations.js [ Pass Timeout ] -crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-misc/timeline-event-causes.js [ Pass Timeout ] crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-time/timeline-usertiming.js [ Pass Timeout ] -crbug.com/760543 [ Linux ] http/tests/devtools/tracing/timeline-paint/timeline-paint.js [ Pass Timeout ] crbug.com/760543 [ Linux ] http/tests/devtools/oopif/oopif-performance-cpu-profiles.js [ Pass Timeout ] # Memory allocation hooks are disabled on ASAN/MSAN
diff --git a/third_party/blink/web_tests/SlowTests b/third_party/blink/web_tests/SlowTests index 79619682..c495002 100644 --- a/third_party/blink/web_tests/SlowTests +++ b/third_party/blink/web_tests/SlowTests
@@ -754,7 +754,6 @@ crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/idb-explicit-commit.any.worker.html [ Slow ] crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/idbindex_getAll.html [ Slow ] crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/idbindex_getAllKeys.html [ Slow ] -crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/idbindex-query-exception-order.html [ Slow ] crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/idbtransaction_objectStoreNames.html [ Slow ] crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/keygenerator-explicit.html [ Slow ] crbug.com/1195814 [ Mac11 ] external/wpt/IndexedDB/keypath-special-identifiers.htm [ Slow ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 3c6c3fa..5093ef0 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1760,7 +1760,6 @@ # lab color space not yet implemented # color() function not implemented crbug.com/1068610 external/wpt/css/css-color/parsing/color-computed-color-mix-function.html [ Failure ] -crbug.com/1068610 external/wpt/css/css-color/tagged-images-004.html [ Failure ] crbug.com/1068610 [ Linux ] external/wpt/css/css-color/t422-rgba-a0.6-a.xht [ Failure ] crbug.com/1068610 [ Linux ] external/wpt/css/css-color/t425-hsla-basic-a.xht [ Failure ] crbug.com/1068610 external/wpt/css/css-color/t32-opacity-basic-0.6-a.xht [ Failure ] @@ -2343,7 +2342,6 @@ # These tests will be added back soon: crbug.com/706350 external/wpt/html/browsers/browsing-the-web/history-traversal/window-name-after-cross-origin-main-frame-navigation.sub.html [ Crash Failure Pass Timeout ] -crbug.com/706350 external/wpt/html/browsers/browsing-the-web/history-traversal/window-name-after-same-origin-sub-frame-navigation.sub.html [ Crash Failure Pass Timeout ] crbug.com/1236768 external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-same-document-traversal-hashchange.html [ Timeout ] crbug.com/1236768 external/wpt/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/same-document-traversal-same-document-traversal-pushstate.html [ Timeout ] @@ -2373,7 +2371,6 @@ crbug.com/805463 external/wpt/acid/acid3/numbered-tests.html [ Crash Failure Pass Timeout ] -crbug.com/828506 [ Win ] fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html [ Failure Pass ] # Failure messages are unstable so we cannot create baselines. crbug.com/832071 external/wpt/service-workers/service-worker/worker-client-id.https.html [ Failure ] @@ -3002,7 +2999,6 @@ crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-012.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-016.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-020.xht [ Failure ] -crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-177.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-179.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-189.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-192.xht [ Failure ] @@ -3012,7 +3008,6 @@ crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-196.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-197.xht [ Failure ] crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-205.xht [ Failure ] -crbug.com/958381 [ Mac ] external/wpt/css/CSS2/tables/table-anonymous-objects-206.xht [ Failure ] # Custom-elements crbug.com/1351482 external/wpt/custom-elements/form-associated/ElementInternals-target-element-is-held-strongly.html [ Timeout ] @@ -3041,17 +3036,8 @@ crbug.com/626703 external/wpt/css/css-grid/subgrid/grid-gap-010.html [ Failure ] crbug.com/626703 external/wpt/css/css-grid/subgrid/grid-gap-011.html [ Failure ] crbug.com/626703 [ Win ] external/wpt/html/semantics/disabled-elements/event-propagate-disabled.tentative.html [ Failure Timeout ] -crbug.com/626703 [ Win11 ] external/wpt/screen-orientation/hidden_document.html [ Failure Timeout ] crbug.com/626703 [ Win10.20h2 ] external/wpt/speculation-rules/prerender/opt-out.html [ Failure Timeout ] crbug.com/626703 [ Mac12 ] virtual/pending-beacon/external/wpt/pending-beacon/pending_beacon-sendonhidden.tentative.https.window.html [ Timeout ] -crbug.com/626703 [ Linux ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Mac11 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Mac11-arm64 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Mac12 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Mac12-arm64 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Win11 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Failure ] -crbug.com/626703 [ Mac10.15 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash ] -crbug.com/626703 [ Win10.20h2 ] external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Crash Timeout ] crbug.com/626703 [ Mac10.15 ] virtual/pending-beacon/external/wpt/pending-beacon/pending_post_beacon-cors.tentative.https.window.html [ Timeout ] crbug.com/626703 [ Mac11 ] virtual/pending-beacon/external/wpt/pending-beacon/pending_beacon-sendonhidden.tentative.https.window.html [ Timeout ] crbug.com/626703 [ Mac11 ] virtual/pending-beacon/external/wpt/pending-beacon/pending_post_beacon-cors.tentative.https.window.html [ Timeout ] @@ -3829,7 +3815,6 @@ crbug.com/757165 [ Win ] fast/spatial-navigation/snav-container-only-white-space.html [ Crash Failure Pass Timeout ] crbug.com/757165 [ Win ] fast/spatial-navigation/snav-container-white-space.html [ Crash Failure Pass Timeout ] crbug.com/757165 [ Win ] fast/spatial-navigation/snav-date.html [ Crash Failure Pass Timeout ] -crbug.com/757165 [ Win ] fast/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html [ Crash Failure Pass Timeout ] crbug.com/757165 [ Win ] fast/spatial-navigation/snav-fully-aligned-horizontally.html [ Crash Failure Pass Timeout ] crbug.com/757165 [ Win ] fast/spatial-navigation/snav-fully-aligned-vertically.html [ Crash Failure Pass Timeout ] crbug.com/757165 [ Win ] fast/spatial-navigation/snav-iframe-recursive-offset-parent.html [ Crash Failure Pass Timeout ] @@ -3947,7 +3932,6 @@ crbug.com/783154 [ Mac ] media/controls/click-anywhere-to-play-pause.html [ Crash Failure Pass Timeout ] # Seen flaky on Linux, suppressing on Windows as well -crbug.com/831720 [ Linux ] media/controls/doubletap-to-jump-forwards-too-short.html [ Failure Pass ] crbug.com/831720 media/controls/tap-to-hide-controls.html [ Failure Pass ] # These tests require Unified Autoplay. @@ -6938,7 +6922,11 @@ crbug.com/1207146 virtual/force-eager/external/wpt/measure-memory/main-frame-and-worker.https.window.html [ Failure Pass ] crbug.com/1385413 [ Win ] media/controls/overflow-menu-pointer-selection.html [ Failure Pass ] -crbug.com/1385413 [ Win ] media/controls/text-track-menu-pointer-selection.html [ Failure Pass ] +crbug.com/1385413 media/controls/text-track-menu-pointer-selection.html [ Failure Pass Timeout Skip ] # Sheriff 2022-11-17 -crbug.com/1385642 [ Linux ] external/wpt/css/css-values/calc-in-media-queries-with-mixed-units.html [ Failure Pass ] +crbug.com/1385642 [ Linux ] external/wpt/css/css-values/calc-in-media-queries-with-mixed-units.html [ Skip Failure Pass Timeout ] +crbug.com/1385676 external/wpt/screen-capture/getdisplaymedia.https.html [ Skip Timeout ] +crbug.com/1385681 external/wpt/web-share/disabled-by-permissions-policy-cross-origin.https.sub.html [ Failure Pass ] +crbug.com/1372166 fast/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html [ Failure Pass ] +crbug.com/1385497 http/tests/inspector-protocol/tracing/page-load-metrics.js [ Failure Pass ]
diff --git a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html index 1f891ca..6b7bab9 100644 --- a/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html +++ b/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-named-scroll-progress-timeline.tentative.html
@@ -454,7 +454,45 @@ }, 'Change in scroll-timeline-name to no longer match animation timeline updates animation.'); promise_test(async t => { + let target = createTarget(t); + let scroller1 = createScroller(t); + let scroller2 = createScroller(t); + + target.style.animation = 'anim 10s linear timeline'; + scroller1.style.scrollTimelineName = 'timeline'; + scroller2.style.scrollTimelineName = 'timeline'; + scroller1.id = 'A'; + scroller2.id = 'B'; + + // <div class='scroller' id='A'> ... </div> (scroller1) + // <div class='scroller' id="B"> ... </div> (scroller2) + // <div id='target'></div> + document.body.appendChild(scroller1); + document.body.appendChild(scroller2); + document.body.append(target); + + scroller1.scrollTop = 10; // 10%, in [50, 150]. + scroller2.scrollTop = 50; // 50%, in [50, 150]. await waitForNextFrame(); + + + // The named timeline lookup should select scroller2. + let anim = target.getAnimations()[0]; + assert_true(!!anim, 'Failed to fetch animation'); + assert_equals(anim.timeline.source.id, 'B'); + assert_equals(getComputedStyle(target).translate, '100px'); + + scroller2.remove(); + + // Now it should select scroller1. + anim = target.getAnimations()[0]; + assert_true(!!anim, 'Failed to fetch animation after update'); + assert_true(!!anim.timeline, 'Animation no longer has a timeline'); + assert_equals(anim.timeline.source.id, 'A', 'Timeline not updated'); + assert_equals(getComputedStyle(target).translate, '60px'); +}, 'Timeline lookup finds next candidate when element is removed'); + +promise_test(async t => { let target = createTarget(t); let scroller1 = createScroller(t); @@ -473,12 +511,11 @@ const anim = target.getAnimations()[0]; - assert_equals(getComputedStyle(target).translate, '60px'); assert_true(!!anim.timeline, 'Failed to retrieve animation'); assert_equals(anim.timeline.source.id, 'A'); + assert_equals(getComputedStyle(target).translate, '60px'); await waitForNextFrame(); - await waitForNextFrame(); let scroller2 = createScroller(t); scroller2.style.scrollTimelineName = 'timeline'; @@ -499,6 +536,37 @@ assert_equals(getComputedStyle(target).translate, '100px'); }, 'Timeline lookup updates candidate when closer match available.'); +promise_test(async t => { + let target = createTarget(t); + + // <div id='target'></div> + document.body.append(target); + target.style.animation = "anim 10s linear timeline"; + + await waitForNextFrame(); + + // Timeline initially cannot be resolved, resulting in a null + // timeline. The animation's hold time is zero. + let anim = document.getAnimations()[0]; + assert_equals(getComputedStyle(target).translate, '50px'); + + await waitForNextFrame(); + + let scroller = createScroller(t); + scroller.style.scrollTimelineName = 'timeline'; + + // <div class='scroller'> ... </div> (scroller1) + // <div id='target'></div> + document.body.insertBefore(scroller, target); + + scroller.scrollTop = 50; // 50%, in [50, 150]. + + await waitForNextFrame(); + + // The timeline should be updated to scroller. + assert_equals(getComputedStyle(target).translate, '100px'); +}, 'Timeline lookup updates candidate when match becomes available.'); + // ------------------------- // Test scroll-timeline-axis // -------------------------
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt index c333f28..dceb1eea 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCConfiguration-iceServers-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 59 tests; 42 PASS, 17 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 59 tests; 49 PASS, 10 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS new RTCPeerConnection() should have default configuration.iceServers of undefined PASS new RTCPeerConnection(config) - {} should succeed PASS setConfiguration(config) - {} should succeed @@ -19,16 +19,16 @@ PASS setConfiguration(config) - with stun server should succeed PASS new RTCPeerConnection(config) - with stun server array should succeed PASS setConfiguration(config) - with stun server array should succeed -FAIL new RTCPeerConnection(config) - with 2 stun servers should succeed assert_equals: expected 1 but got 2 -FAIL setConfiguration(config) - with 2 stun servers should succeed assert_equals: expected 1 but got 2 +PASS new RTCPeerConnection(config) - with 2 stun servers should succeed +PASS setConfiguration(config) - with 2 stun servers should succeed PASS new RTCPeerConnection(config) - with turn server, username, credential should succeed PASS setConfiguration(config) - with turn server, username, credential should succeed FAIL new RTCPeerConnection(config) - with turns server and empty string username, credential should succeed Failed to construct 'RTCPeerConnection': ICE server parsing failed: TURN server with empty username or password FAIL setConfiguration(config) - with turns server and empty string username, credential should succeed Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration. FAIL new RTCPeerConnection(config) - with turn server and empty string username, credential should succeed Failed to construct 'RTCPeerConnection': ICE server parsing failed: TURN server with empty username or password FAIL setConfiguration(config) - with turn server and empty string username, credential should succeed Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration. -FAIL new RTCPeerConnection(config) - with one turns server, one turn server, username, credential should succeed assert_equals: expected 1 but got 2 -FAIL setConfiguration(config) - with one turns server, one turn server, username, credential should succeed assert_equals: expected 1 but got 2 +PASS new RTCPeerConnection(config) - with one turns server, one turn server, username, credential should succeed +PASS setConfiguration(config) - with one turns server, one turn server, username, credential should succeed PASS new RTCPeerConnection(config) - with turn server and no credentials should throw InvalidAccessError PASS setConfiguration(config) - with turn server and no credentials should throw InvalidAccessError PASS new RTCPeerConnection(config) - with turn server and only username should throw InvalidAccessError @@ -58,18 +58,9 @@ urls: 'turn://example.org/foo?x=y' }] })" threw object "InvalidAccessError: Failed to execute 'setConfiguration' on 'RTCPeerConnection': Both username and credential are required when the URL scheme is "turn" or "turns"." that is not a DOMException SyntaxError: property "code" is equal to 15, expected 12 PASS new RTCPeerConnection(config) - with invalid stun url should throw SyntaxError -FAIL setConfiguration(config) - with invalid stun url should throw SyntaxError assert_throws_dom: function "() => - makePc({ iceServers: [{ - urls: 'stun://example.org/foo?x=y' - }] })" threw object "OperationError: Failed to execute 'setConfiguration' on 'RTCPeerConnection': Could not update the PeerConnection with the given configuration." that is not a DOMException SyntaxError: property "code" is equal to 0, expected 12 -FAIL new RTCPeerConnection(config) - with empty urls should throw SyntaxError assert_throws_dom: function "() => - makePc({ iceServers: [{ - urls: [] - }] })" did not throw -FAIL setConfiguration(config) - with empty urls should throw SyntaxError assert_throws_dom: function "() => - makePc({ iceServers: [{ - urls: [] - }] })" did not throw +PASS setConfiguration(config) - with invalid stun url should throw SyntaxError +PASS new RTCPeerConnection(config) - with empty urls should throw SyntaxError +PASS setConfiguration(config) - with empty urls should throw SyntaxError FAIL new RTCPeerConnection(config) - with url field should throw TypeError assert_throws_js: function "() => makePc({ iceServers: [{ url: 'stun:stun1.example.net'
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages-expected.txt deleted file mode 100644 index f94f0968..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages-expected.txt +++ /dev/null
@@ -1,39 +0,0 @@ -Tests that console logging large messages will be truncated. - -Setting max length to: 40 -Setting long string visible length to: 20 -Message: 0, length: 14, "a".repeat(80) -Message: 1, length: 20, 'aaaaaaaaaaaaaaaaaaa -Message: 2, length: 20, aaaaaaaaaaaaaaaaaaaa -Message: 3, length: 41, aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbb -Message: 4, length: 20, aaaaaaaaaaaaaaaaaaaa -Message: 5, length: 20, 'aaaaaaaaaaaaaaaaaaa -Message: 6, length: 20, aaaaaaaaaaaaaaaaaaaa -Message: 7, length: 55, foo aaaaaaaaaaaaaaaa{a: 1}a: 1[[Prototype]]: Object bar -Message: 8, length: 84, {a: 1}a: 1[[Prototype]]: Object 'aaaaaaaaaaaaaaaaaaa {b: 1}b: 1[[Prototype]]: Object -Link: https://chromium.org -Message: 9, length: 41, aaaaaaaaaaaaaaaaaaaa https://chromium.org -Link: https://chromium.org -Message: 10, length: 41, https://chromium.org aaaaaaaaaaaaaaaaaaaa -Message: 11, length: 20, /aaaaaaaaaaaaaaaaaaa -Message: 12, length: 20, Symbol(aaaaaaaaaaaaa -Message: 13, length: 169, ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa']0: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalength: 1[[Prototype]]: Array(0) - -Expanding hidden texts -Message: 0, length: 14, "a".repeat(80) -Message: 1, length: 82, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' -Message: 2, length: 80, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Message: 3, length: 161, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -Message: 4, length: 80, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Message: 5, length: 82, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' -Message: 6, length: 80, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Message: 7, length: 120, foo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {a: 1}a: 1[[Prototype]]: Object bar -Message: 8, length: 146, {a: 1}a: 1[[Prototype]]: Object 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' {b: 1}b: 1[[Prototype]]: Object -Link: https://chromium.org -Message: 9, length: 101, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa https://chromium.org -Link: https://chromium.org -Message: 10, length: 101, https://chromium.org aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -Message: 11, length: 82, /aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ -Message: 12, length: 88, Symbol(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) -Message: 13, length: 169, ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa']0: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalength: 1[[Prototype]]: Array(0) -
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages.js b/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages.js deleted file mode 100644 index 632e814..0000000 --- a/third_party/blink/web_tests/http/tests/devtools/console/console-truncate-long-messages.js +++ /dev/null
@@ -1,62 +0,0 @@ -// Copyright 2017 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -(async function() { - TestRunner.addResult('Tests that console logging large messages will be truncated.\n'); - - await TestRunner.loadLegacyModule('console'); await TestRunner.loadTestModule('console_test_runner'); - await TestRunner.showPanel('console'); - const consoleView = Console.ConsoleView.instance(); - const maxLength = 40; - Console.ConsoleViewMessage.setMaxTokenizableStringLength(maxLength); - ObjectUI.ObjectPropertiesSection._maxRenderableStringLength = maxLength; - const visibleLength = 20; - Console.ConsoleViewMessage.setLongStringVisibleLength(visibleLength); - const overMaxLength = maxLength * 2; - TestRunner.addResult(`Setting max length to: ${maxLength}`); - TestRunner.addResult(`Setting long string visible length to: ${visibleLength}`); - - await ConsoleTestRunner.evaluateInConsolePromise(`"a".repeat(${overMaxLength})`); - await TestRunner.evaluateInPagePromise(`console.log("a".repeat(${overMaxLength}))`); - await TestRunner.evaluateInPagePromise(`console.log("a".repeat(${overMaxLength}), "b".repeat(${overMaxLength}))`); - await TestRunner.evaluateInPagePromise(`console.log("%s", "a".repeat(${overMaxLength}))`); - await TestRunner.evaluateInPagePromise(`console.log("%o", "a".repeat(${overMaxLength}))`); - await TestRunner.evaluateInPagePromise(`console.log("%c" + "a".repeat(${overMaxLength}), "color: green")`); - await TestRunner.evaluateInPagePromise(`console.log("foo %s %o bar", "a".repeat(${overMaxLength}), {a: 1})`); - await TestRunner.evaluateInPagePromise(`console.log({a: 1}, "a".repeat(${overMaxLength}), {b: 1})`); - await TestRunner.evaluateInPagePromise(`console.log("a".repeat(${overMaxLength}), "https://chromium.org")`); - await TestRunner.evaluateInPagePromise(`console.log("https://chromium.org", "a".repeat(${overMaxLength}))`); - await TestRunner.evaluateInPagePromise(`console.log(RegExp("a".repeat(${overMaxLength})))`); - await TestRunner.evaluateInPagePromise(`console.log(Symbol("a".repeat(${overMaxLength})))`); - await TestRunner.evaluateInPagePromise(`console.log(["a".repeat(${overMaxLength})])`); - - await ConsoleTestRunner.expandConsoleMessagesPromise(); - dumpMessageLengths(); - - TestRunner.addResult('\nExpanding hidden texts'); - consoleView.visibleViewMessages.forEach(message => { - message.element().querySelectorAll('.expandable-inline-button').forEach(button => button.click()); - }); - - dumpMessageLengths(); - TestRunner.completeTest(); - - function dumpMessageLengths() { - consoleView.visibleViewMessages.forEach((message, index) => { - const text = consoleMessageText(index); - TestRunner.addResult(`Message: ${index}, length: ${text.length}, ${text}`); - }); - - function consoleMessageText(index) { - const messageElement = consoleView.visibleViewMessages[index].element(); - const anchor = messageElement.querySelector('.console-message-anchor'); - if (anchor) - anchor.remove(); - const links = messageElement.querySelectorAll('.devtools-link'); - for (const link of links) - TestRunner.addResult(`Link: ${link.textContent}`); - return messageElement.deepTextContent(); - } - } -})();
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index 8fa0d8e..9579d1e6 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -882,7 +882,7 @@ 'mac12.0-blink-rel': 'release_bot_blink_minimal_symbols_no_nacl', 'mac12.0.arm64-blink-rel': 'release_bot_blink_arm64_minimal_symbols', 'win10.20h2-blink-rel': 'release_bot_blink_x86_minimal_symbols', - 'win11-blink-rel': 'release_bot_blink_x64_minimal_symbols', + 'win11-blink-rel': 'release_bot_blink_x64_minimal_symbols_reclient', }, 'tryserver.chrome': { @@ -943,7 +943,7 @@ 'fuchsia-official': 'fuchsia_official_optimize_goma_trybot', 'linux-official': 'official_optimize_reclient_trybot', 'mac-official': 'official_optimize_goma_trybot', - 'win-official': 'official_optimize_goma_trybot', + 'win-official': 'official_optimize_reclient_trybot', 'win32-official': 'x86_official_optimize_goma_trybot', }, @@ -1097,10 +1097,10 @@ 'dawn-try-win10-x64-asan-rel': 'dawn_tests_asan_release_trybot', 'dawn-try-win10-x86-rel': 'dawn_tests_release_trybot_x86', 'dawn-win10-x64-deps-rel': 'dawn_tests_release_trybot', - 'dawn-win10-x86-deps-rel': 'dawn_tests_release_trybot_x86', + 'dawn-win10-x86-deps-rel': 'dawn_tests_release_trybot_x86_reclient', 'linux-dawn-rel': 'dawn_tests_with_desktop_gl_release_trybot', 'mac-dawn-rel': 'dawn_tests_release_trybot_alloc_none', - 'win-dawn-rel': 'dawn_tests_release_trybot', + 'win-dawn-rel': 'dawn_tests_release_trybot_reclient', }, 'tryserver.chromium.fuchsia': { @@ -1321,18 +1321,18 @@ 'tryserver.chromium.win': { 'gpu-fyi-try-win10-amd-rel-64': 'gpu_fyi_tests_release_trybot', 'gpu-fyi-try-win10-intel-exp-64': 'gpu_fyi_tests_release_trybot', - 'gpu-fyi-try-win10-intel-rel-64': 'gpu_fyi_tests_release_trybot', - 'gpu-fyi-try-win10-nvidia-dbg-64': 'gpu_fyi_tests_debug_trybot', + 'gpu-fyi-try-win10-intel-rel-64': 'gpu_fyi_tests_release_trybot_reclient', + 'gpu-fyi-try-win10-nvidia-dbg-64': 'gpu_fyi_tests_debug_trybot_reclient', 'gpu-fyi-try-win10-nvidia-dx12vk-dbg-64': 'gpu_fyi_tests_dx12vk_debug_trybot', 'gpu-fyi-try-win10-nvidia-dx12vk-rel-64': 'gpu_fyi_tests_dx12vk_release_trybot', 'gpu-fyi-try-win10-nvidia-exp-64': 'gpu_fyi_tests_release_trybot', 'gpu-fyi-try-win10-nvidia-rel-32': 'gpu_fyi_tests_release_trybot_x86', 'gpu-fyi-try-win10-nvidia-rel-64': 'gpu_fyi_tests_release_trybot', 'win-annotator-rel': 'release_trybot', - 'win-asan': 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release', + 'win-asan': 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release_reclient', 'win-celab-try-rel': 'release_bot_minimal_symbols', 'win-fieldtrial-rel': 'release_bot_minimal_symbols', - 'win-libfuzzer-asan-rel': 'libfuzzer_windows_asan_release_trybot', + 'win-libfuzzer-asan-rel': 'libfuzzer_windows_asan_release_trybot_reclient', 'win-perfetto-rel': 'perfetto_release_trybot', 'win-rel': 'gpu_tests_release_trybot_resource_allowlisting_code_coverage', 'win10-wpt-content-shell-fyi-rel': 'release_trybot', @@ -1344,10 +1344,10 @@ 'win11-x64-fyi-rel': 'gpu_tests_release_trybot_resource_allowlisting_code_coverage', 'win7-rel': 'gpu_tests_release_trybot_x86_resource_allowlisting', 'win_archive': 'release_trybot_x86', - 'win_chromium_compile_dbg_ng': 'gpu_tests_debug_bot_x86_no_symbols', + 'win_chromium_compile_dbg_ng': 'gpu_tests_debug_bot_x86_no_symbols_reclient', 'win_chromium_compile_rel_ng': 'gpu_tests_release_trybot_x86_resource_allowlisting', 'win_chromium_x64_rel_ng': 'gpu_tests_release_trybot', - 'win_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot', + 'win_optional_gpu_tests_rel': 'gpu_fyi_tests_release_trybot_reclient', 'win_upload_clang': 'release_bot', 'win_x64_archive': 'release_trybot', }, @@ -1796,10 +1796,6 @@ 'angle_deqp_tests', 'shared_release_trybot', 'x86', ], - 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release': [ - 'asan', 'fuzzer', 'static', 'v8_heap', 'minimal_symbols', 'release_bot', - ], - 'asan_clang_fuzzer_static_v8_heap_minimal_symbols_release_reclient': [ 'asan', 'fuzzer', 'static', 'v8_heap', 'minimal_symbols', 'release_bot_reclient', ], @@ -2468,10 +2464,18 @@ 'dawn_tests', 'release_trybot', 'padisabled', ], + 'dawn_tests_release_trybot_reclient': [ + 'dawn_tests', 'release_trybot_reclient', + ], + 'dawn_tests_release_trybot_x86': [ 'dawn_tests', 'release_trybot', 'x86', ], + 'dawn_tests_release_trybot_x86_reclient': [ + 'dawn_tests', 'release_trybot_reclient', 'x86', + ], + 'dawn_tests_with_desktop_gl_release_trybot': [ 'dawn_tests', 'dawn_enable_desktop_gl', 'release_trybot_minimal_symbols', ], @@ -3169,8 +3173,8 @@ 'libfuzzer', 'asan', 'release_bot_reclient', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'minimal_symbols', 'mojo_fuzzer', ], - 'libfuzzer_windows_asan_release_trybot': [ - 'libfuzzer', 'asan', 'release_trybot', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'mojo_fuzzer', 'skip_generate_fuzzer_owners', 'no_symbols', + 'libfuzzer_windows_asan_release_trybot_reclient': [ + 'libfuzzer', 'asan', 'release_trybot_reclient', 'chrome_with_codecs', 'pdf_xfa', 'disable_nacl', 'mojo_fuzzer', 'skip_generate_fuzzer_owners', 'no_symbols', ], 'linux_cfm_release_bot_reclient': [ @@ -3484,8 +3488,8 @@ 'release_bot_blink_reclient', 'v8_enable_debugging_features', ], - 'release_bot_blink_x64_minimal_symbols': [ - 'release_bot_blink', 'x64', 'minimal_symbols', + 'release_bot_blink_x64_minimal_symbols_reclient': [ + 'release_bot_blink_reclient', 'x64', 'minimal_symbols', ], 'release_bot_blink_x86_minimal_symbols': [
diff --git a/tools/mb/mb_config_expectations/tryserver.blink.json b/tools/mb/mb_config_expectations/tryserver.blink.json index 61b9433..27cac497 100644 --- a/tools/mb/mb_config_expectations/tryserver.blink.json +++ b/tools/mb/mb_config_expectations/tryserver.blink.json
@@ -115,7 +115,7 @@ "proprietary_codecs": true, "symbol_level": 1, "target_cpu": "x64", - "use_goma": true + "use_remoteexec": true } } } \ No newline at end of file
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json b/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json index df54a1e..3db5191 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.dawn.json
@@ -125,7 +125,7 @@ "symbol_level": 0, "target_cpu": "x86", "use_dawn": true, - "use_goma": true + "use_remoteexec": true } }, "linux-dawn-rel": { @@ -162,7 +162,7 @@ "is_debug": false, "symbol_level": 0, "use_dawn": true, - "use_goma": true + "use_remoteexec": true } } } \ No newline at end of file
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.json b/tools/mb/mb_config_expectations/tryserver.chromium.json index 72ea0ab..a0fe32a 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.json
@@ -39,7 +39,7 @@ "dcheck_always_on": true, "is_official_build": true, "symbol_level": 1, - "use_goma": true + "use_remoteexec": true } }, "win32-official": {
diff --git a/tools/mb/mb_config_expectations/tryserver.chromium.win.json b/tools/mb/mb_config_expectations/tryserver.chromium.win.json index 2c27fcc..4a630b7 100644 --- a/tools/mb/mb_config_expectations/tryserver.chromium.win.json +++ b/tools/mb/mb_config_expectations/tryserver.chromium.win.json
@@ -32,7 +32,7 @@ "is_debug": false, "proprietary_codecs": true, "symbol_level": 1, - "use_goma": true + "use_remoteexec": true } }, "gpu-fyi-try-win10-nvidia-dbg-64": { @@ -43,7 +43,7 @@ "is_debug": true, "proprietary_codecs": true, "symbol_level": 1, - "use_goma": true + "use_remoteexec": true } }, "gpu-fyi-try-win10-nvidia-dx12vk-dbg-64": { @@ -125,7 +125,7 @@ "is_component_build": false, "is_debug": false, "symbol_level": 1, - "use_goma": true, + "use_remoteexec": true, "v8_enable_verify_heap": true } }, @@ -160,8 +160,8 @@ "pdf_enable_xfa": true, "proprietary_codecs": true, "symbol_level": 0, - "use_goma": true, - "use_libfuzzer": true + "use_libfuzzer": true, + "use_remoteexec": true } }, "win-perfetto-rel": { @@ -302,7 +302,7 @@ "proprietary_codecs": true, "symbol_level": 0, "target_cpu": "x86", - "use_goma": true + "use_remoteexec": true } }, "win_chromium_compile_rel_ng": { @@ -338,7 +338,7 @@ "is_debug": false, "proprietary_codecs": true, "symbol_level": 1, - "use_goma": true + "use_remoteexec": true } }, "win_upload_clang": {
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index e3f3eeb..ca0bf33 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -52316,6 +52316,8 @@ <int value="109" label="SUPPORTED_LINKS_INFOBAR_DELEGATE_CHROMEOS"/> <int value="110" label="AUTOFILL_VIRTUAL_CARD_ENROLLMENT_INFOBAR_DELEGATE_MOBILE"/> + <int value="111" label="TAILORED_SECURITY_SERVICE_INFOBAR_DELEGATE"/> + <int value="112" label="CHROME_FOR_TESTING_INFOBAR_DELEGATE"/> </enum> <enum name="InfoBarResponse"> @@ -101526,6 +101528,8 @@ <int value="6" label="Privacy Sandbox 3 Notice Dismiss"/> <int value="7" label="Privacy Sandbox 3 Notice Ok"/> <int value="8" label="Privacy Sandbox 3 Notice Settings"/> + <int value="9" label="Privacy Sandbox 3 Learn More"/> + <int value="10" label="Safety Check"/> </enum> <enum name="TrustTokenRequestHelperFactoryOutcome">
diff --git a/tools/metrics/histograms/metadata/dev/OWNERS b/tools/metrics/histograms/metadata/dev/OWNERS index b1a606d..309ba9ef 100644 --- a/tools/metrics/histograms/metadata/dev/OWNERS +++ b/tools/metrics/histograms/metadata/dev/OWNERS
@@ -2,4 +2,6 @@ # Prefer sending CLs to the owners listed below. # Use chromium-metrics-reviews@google.com as a backup. -changhaohan@chromium.org \ No newline at end of file +bmeurer@chromium.org +changhaohan@chromium.org +yangguo@chromium.org
diff --git a/tools/metrics/histograms/metadata/dev/histograms.xml b/tools/metrics/histograms/metadata/dev/histograms.xml index f794a6b5..92a7e8c5 100644 --- a/tools/metrics/histograms/metadata/dev/histograms.xml +++ b/tools/metrics/histograms/metadata/dev/histograms.xml
@@ -30,41 +30,6 @@ <summary>Specified DevTools action has been taken.</summary> </histogram> -<histogram name="DevTools.BackgroundService.ClearEvents" - enum="ServiceWorkerStatusCode" expires_after="M99"> - <owner>yangguo@chromium.org</owner> - <owner>rayankans@chromium.org</owner> - <owner>bmeurer@chromium.org</owner> - <summary> - The result of clearing all stored events for a Background Service feature. - This is called if a developer clicks on a delete button in a Background - Service DevTools panel. - </summary> -</histogram> - -<histogram name="DevTools.BackgroundService.GetEvents" - enum="ServiceWorkerStatusCode" expires_after="M99"> - <owner>rayankans@chromium.org</owner> - <owner>yangguo@chromium.org</owner> - <owner>bmeurer@chromium.org</owner> - <summary> - The result of loading all stored events for a Background Service feature. - This is called when the a Bakground Service DevTools panel is opened. - </summary> -</histogram> - -<histogram name="DevTools.BackgroundService.LogEvent" - enum="ServiceWorkerStatusCode" expires_after="M99"> - <owner>rayankans@chromium.org</owner> - <owner>yangguo@chromium.org</owner> - <owner>bmeurer@chromium.org</owner> - <summary> - The result of logging a Background Service event. An event is logged if - `Recording` mode is on and a relevant Background Service event is taking - place. - </summary> -</histogram> - <histogram name="DevTools.BackgroundService.StartRecording" enum="DevToolsBackgroundService" expires_after="2022-07-09"> <owner>yangguo@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml index fc50644..d9cbbac 100644 --- a/tools/metrics/histograms/metadata/ios/histograms.xml +++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -1908,6 +1908,17 @@ </histogram> <histogram + name="IOS.TextSelection.EntityDetection.FullPageTFLiteModelEvaluationDuration" + units="ms" expires_after="2023-03-19"> + <owner>rajendrant@chromium.org</owner> + <owner>sophiechang@chromium.org</owner> + <summary> + Records the time taken for the TFLite text classifier model to extract + entities given a full web page text (up to 64k characters). + </summary> +</histogram> + +<histogram name="IOS.TextSelection.EntityDetection.TFLiteModelEvaluationDuration" units="ms" expires_after="2023-03-19"> <owner>rajendrant@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml index cef92c9..d9c3658 100644 --- a/tools/metrics/histograms/metadata/net/histograms.xml +++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -1504,6 +1504,16 @@ </summary> </histogram> +<histogram name="Net.ErrorCodesForIsolatedAppScheme" enum="NetErrorCodes" + expires_after="2023-11-08"> + <owner>cmfcmf@chromium.org</owner> + <owner>peletskyi@chromium.org</owner> + <summary> + Positive net error codes that HTTP requests using the isolated-app: URL + scheme end with, including net::OK and net::ERR_ABORTED. + </summary> +</histogram> + <histogram name="Net.ErrorCodesForMainFrame4" enum="NetErrorCodes" expires_after="never"> <!-- expires-never: Core network stack health metric -->
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml index 1d745da..8e8b412 100644 --- a/tools/metrics/histograms/metadata/password/histograms.xml +++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -820,24 +820,26 @@ </histogram> <histogram name="PasswordManager.ApplySyncChanges.UpdateLoginSyncError" - enum="PasswordUpdateLoginSyncError" expires_after="2021-07-31"> + enum="PasswordUpdateLoginSyncError" expires_after="2023-03-05"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> Records different results upon updating a remote password to the password manager. It is recorded every time after receiving remote password - incremental updates from the server. + incremental updates from the server. Warning: this histogram was expired + from 2021-07-31 to 2022-11-17; data may be missing. </summary> </histogram> <histogram name="PasswordManager.ApplySyncChangesState" - enum="PasswordApplySyncChangesState" expires_after="2021-07-31"> + enum="PasswordApplySyncChangesState" expires_after="2023-03-05"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> Records different states upon applying remote sync changes to the password manager. It recorded every time after receiving remote password incremental - updates from the server. + updates from the server. Warning: this histogram was expired from 2021-07-31 + to 2022-11-17; data may be missing. </summary> </histogram> @@ -2014,13 +2016,14 @@ </histogram> <histogram name="PasswordManager.MergeSyncData.UpdateLoginSyncError" - enum="PasswordUpdateLoginSyncError" expires_after="2021-07-31"> + enum="PasswordUpdateLoginSyncError" expires_after="2023-03-19"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> Records different results upon updating a remote password in the password manager. It is recorded during the initial sync when merging remote and - local data. + local data. Warning: this histogram was expired from 2021-07-31 to + 2022-11-17; data may be missing. </summary> </histogram>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 0ddbbbf..ffcf85d 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,24 +5,24 @@ "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm64/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "win": { - "hash": "076d933aca51d40e961ba72959e129fdb62055c1", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/b25d8d9bb1d5aca92d98c17acabd5a8e208e74ad/trace_processor_shell.exe" + "hash": "bb2cc045bbee68ad3cd3daed827075285572fe49", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/cd8caf2a15c6ecd393ff7add162f6e3af681d0a3/trace_processor_shell.exe" }, "linux_arm": { "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893", "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux_arm/49b4b5dcbc312d8d2c3751cf29238b8efeb4e494/trace_processor_shell" }, "mac": { - "hash": "962d7d09b1bfec0adede446e816481ba44919bb9", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/31d7f4d96753a1a7e9a04b733e8e7e66fb8e2221/trace_processor_shell" + "hash": "08e3f8126405ba583ce845a3af5ef631f2cf68b3", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/mac/b25d8d9bb1d5aca92d98c17acabd5a8e208e74ad/trace_processor_shell" }, "mac_arm64": { "hash": "92318bea34f5c9beec69d2d826a9a92ec9d3cdcd", "full_remote_path": "perfetto-luci-artifacts/v30.0/mac-arm64/trace_processor_shell" }, "linux": { - "hash": "e2f95db9d415b32f1e88b975a19d500e02911a09", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/b25d8d9bb1d5aca92d98c17acabd5a8e208e74ad/trace_processor_shell" + "hash": "7e4cc10d0a4b47b170771988b6800e9438ad73cf", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/cd8caf2a15c6ecd393ff7add162f6e3af681d0a3/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml index ffc5d0d..f502833b 100644 --- a/tools/traffic_annotation/summary/annotations.xml +++ b/tools/traffic_annotation/summary/annotations.xml
@@ -404,4 +404,5 @@ <item id="managed_acccount_signin_restrictions_secure_connect_chromeos" added_in_milestone="109" content_hash_code="05958d4c" os_list="chromeos" file_path="chrome/browser/ui/webui/signin/ash/user_cloud_signin_restriction_policy_fetcher.cc" /> <item id="ntp_custom_background" added_in_milestone="109" content_hash_code="05dcbc8b" os_list="linux,windows,chromeos" file_path="chrome/browser/search/background/ntp_custom_background_service.cc" /> <item id="iwa_policy_update_manifest" added_in_milestone="110" content_hash_code="0273ee59" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> + <item id="iwa_policy_signed_web_bundle" added_in_milestone="110" content_hash_code="019d2b7d" os_list="chromeos" file_path="chrome/browser/web_applications/isolated_web_apps/policy/isolated_web_app_policy_manager.cc" /> </annotations>
diff --git a/tools/traffic_annotation/summary/grouping.xml b/tools/traffic_annotation/summary/grouping.xml index 68353bd..b2e3885 100644 --- a/tools/traffic_annotation/summary/grouping.xml +++ b/tools/traffic_annotation/summary/grouping.xml
@@ -271,6 +271,7 @@ <annotation id="managed_acccount_signin_restrictions_secure_connect_chromeos"/> <annotation id="ntp_custom_background"/> <annotation id="iwa_policy_update_manifest"/> + <annotation id="iwa_policy_signed_web_bundle"/> </sender> </group> <group name="Admin Features" hidden="true">
diff --git a/ui/android/java/strings/translations/android_ui_strings_ar.xtb b/ui/android/java/strings/translations/android_ui_strings_ar.xtb index cd598d02..367e732 100644 --- a/ui/android/java/strings/translations/android_ui_strings_ar.xtb +++ b/ui/android/java/strings/translations/android_ui_strings_ar.xtb
@@ -5,5 +5,6 @@ <translation id="3240426699337459095">تم نسخ الرابط</translation> <translation id="6315516427814392808">تعذر إكمال العملية السابقة نظرًا لانخفاض الذاكرة</translation> <translation id="6555463879959038093">تعذّر النسخ إلى الحافظة</translation> +<translation id="7075708960180832482">يتعذّر اختيار الوسائط بسبب رفض الأذونات.</translation> <translation id="793640675459356075">تعذّر فتح الملف المحدد</translation> </translationbundle> \ No newline at end of file
diff --git a/ui/chromeos/strings/network/network_element_localized_strings_provider.cc b/ui/chromeos/strings/network/network_element_localized_strings_provider.cc index f1d4233..ac95ec6 100644 --- a/ui/chromeos/strings/network/network_element_localized_strings_provider.cc +++ b/ui/chromeos/strings/network/network_element_localized_strings_provider.cc
@@ -307,6 +307,7 @@ void AddDetailsLocalizedStrings(content::WebUIDataSource* html_source) { static constexpr webui::LocalizedString kLocalizedStrings[] = { {"internetApnPageTitle", IDS_SETTINGS_ACCESS_POINT_NAME_APN}, + {"apn", IDS_SETTINGS_APN_INPUT_LABEL}, {"apnPageAddNewApn", IDS_SETTINGS_ADD_NEW_APN}, {"apnSettingsDescriptionNoLink", IDS_SETTINGS_APN_DESCRIPTION_NO_LINK}, {"apnSettingsDescriptionWithLink", @@ -316,6 +317,7 @@ {"apnMenuRemove", IDS_SETTINGS_APN_MENU_REMOVE}, {"apnMoreActionsTitle", IDS_SETTINGS_APN_MORE_ACTIONS_TITLE}, {"apnDetailAddApnDialogTitle", IDS_SETTINGS_ADD_APN_DIALOG_TITLE}, + {"apnDetailAdvancedSettings", IDS_SETTINGS_APN_DIALOG_ADVANCED_SETTING}, {"hidePassword", IDS_SETTINGS_PASSWORD_HIDE}, {"showPassword", IDS_SETTINGS_PASSWORD_SHOW}, {"networkProxy", IDS_SETTINGS_INTERNET_NETWORK_PROXY_PROXY},
diff --git a/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc b/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc index 02f4c3e1..3aaafddd 100644 --- a/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc +++ b/ui/ozone/platform/wayland/gpu/wayland_surface_factory_unittest.cc
@@ -784,6 +784,9 @@ gl::FrameData()); } + // Give mojo messages chance to reach host. + base::RunLoop().RunUntilIdle(); + PostToServerAndWait([main_surface_id = surface_id_, overlay_surface_id, primary_subsurface_id]( wl::TestWaylandServerThread* server) {
diff --git a/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc b/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc index 0da52810..10d8f80 100644 --- a/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc
@@ -231,7 +231,10 @@ class WaylandInputMethodContextTest : public WaylandTest { public: - WaylandInputMethodContextTest() = default; + // TODO(crbug.com/1365887): TestServerMode::kAsync must be removed once all + // tests switch to asynchronous mode. + WaylandInputMethodContextTest() + : WaylandTest(WaylandTest::TestServerMode::kAsync) {} ~WaylandInputMethodContextTest() override = default; WaylandInputMethodContextTest(const WaylandInputMethodContextTest&) = delete; WaylandInputMethodContextTest& operator=( @@ -240,12 +243,14 @@ void SetUp() override { WaylandTest::SetUp(); - // WaylandInputMethodContext behaves differently when no keyboard is - // attached. - wl_seat_send_capabilities(server_.seat()->resource(), - WL_SEAT_CAPABILITY_KEYBOARD); + surface_id_ = window_->root_surface()->get_surface_id(); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + // WaylandInputMethodContext behaves differently when no keyboard is + // attached. + wl_seat_send_capabilities(server->seat()->resource(), + WL_SEAT_CAPABILITY_KEYBOARD); + }); SetUpInternal(); } @@ -260,18 +265,18 @@ input_method_context_->Init(true); connection_->Flush(); - Sync(); + SyncDisplay(); + // Unset Keyboard focus. connection_->wayland_window_manager()->SetKeyboardFocusedWindow(nullptr); - zwp_text_input_ = server_.text_input_manager_v1()->text_input(); - ASSERT_TRUE(connection_->text_input_manager_v1()); - ASSERT_TRUE(zwp_text_input_); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + ASSERT_TRUE(server->text_input_manager_v1()->text_input()); + ASSERT_TRUE(server->text_input_extension_v1()->extended_text_input()); + }); - zcr_extended_text_input_ = - server_.text_input_extension_v1()->extended_text_input(); + ASSERT_TRUE(connection_->text_input_manager_v1()); ASSERT_TRUE(connection_->text_input_extension_v1()); - ASSERT_TRUE(zcr_extended_text_input_); } std::unique_ptr<TestInputMethodContextDelegate> @@ -279,6 +284,8 @@ std::unique_ptr<WaylandInputMethodContext> input_method_context_; raw_ptr<wl::MockZwpTextInput> zwp_text_input_ = nullptr; raw_ptr<wl::MockZcrExtendedTextInput> zcr_extended_text_input_ = nullptr; + + uint32_t surface_id_ = 0u; }; TEST_P(WaylandInputMethodContextTest, ActivateDeactivate) { @@ -289,106 +296,163 @@ // Unset them in the reversed order. InSequence s; - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())).Times(0); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()).Times(0); + PostToServerAndWait([id = surface_id_](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + ASSERT_TRUE(zwp_text_input); + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())) + .Times(0); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()).Times(0); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_NONE, ui::TEXT_INPUT_TYPE_TEXT); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()); + PostToServerAndWait([id = surface_id_](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()); + }); + connection_->wayland_window_manager()->SetKeyboardFocusedWindow( window_.get()); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, HideInputPanel()); - EXPECT_CALL(*zwp_text_input_, Deactivate()); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, HideInputPanel()); + EXPECT_CALL(*zwp_text_input, Deactivate()); + }); + connection_->wayland_window_manager()->SetKeyboardFocusedWindow(nullptr); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, HideInputPanel()).Times(0); - EXPECT_CALL(*zwp_text_input_, Deactivate()).Times(0); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, HideInputPanel()).Times(0); + EXPECT_CALL(*zwp_text_input, Deactivate()).Times(0); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_TEXT, ui::TEXT_INPUT_TYPE_NONE); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // Scenario 2: Keyboard focus is set, then InputMethod focus is set. - // Unset them in the reversed order. - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())).Times(0); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()).Times(0); + PostToServerAndWait([id = surface_id_](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + // Scenario 2: Keyboard focus is set, then InputMethod focus is set. + // Unset them in the reversed order. + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())) + .Times(0); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()).Times(0); + }); + connection_->wayland_window_manager()->SetKeyboardFocusedWindow( window_.get()); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()); + PostToServerAndWait([id = surface_id_](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_NONE, ui::TEXT_INPUT_TYPE_TEXT); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, HideInputPanel()); - EXPECT_CALL(*zwp_text_input_, Deactivate()); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, HideInputPanel()); + EXPECT_CALL(*zwp_text_input, Deactivate()); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_TEXT, ui::TEXT_INPUT_TYPE_NONE); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - EXPECT_CALL(*zwp_text_input_, HideInputPanel()).Times(0); - EXPECT_CALL(*zwp_text_input_, Deactivate()).Times(0); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + EXPECT_CALL(*zwp_text_input, HideInputPanel()).Times(0); + EXPECT_CALL(*zwp_text_input, Deactivate()).Times(0); + }); + connection_->wayland_window_manager()->SetKeyboardFocusedWindow(nullptr); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + }); } TEST_P(WaylandInputMethodContextTest, Reset) { - EXPECT_CALL(*zwp_text_input_, Reset()); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), Reset()); + }); input_method_context_->Reset(); connection_->Flush(); - Sync(); } TEST_P(WaylandInputMethodContextTest, SetCursorLocation) { - EXPECT_CALL(*zwp_text_input_, SetCursorRect(50, 0, 1, 1)); - input_method_context_->SetCursorLocation(gfx::Rect(50, 0, 1, 1)); + constexpr gfx::Rect cursor_location(50, 0, 1, 1); + PostToServerAndWait([cursor_location](wl::TestWaylandServerThread* server) { + EXPECT_CALL( + *server->text_input_manager_v1()->text_input(), + SetCursorRect(cursor_location.x(), cursor_location.y(), + cursor_location.width(), cursor_location.height())); + }); + input_method_context_->SetCursorLocation(cursor_location); connection_->Flush(); - Sync(); } TEST_P(WaylandInputMethodContextTest, SetSurroundingTextForShortText) { const std::u16string text(50, u'あ'); - const gfx::Range range(20, 30); + constexpr gfx::Range range(20, 30); - std::string sent_text; - gfx::Range sent_range; - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)) - .WillOnce(DoAll(SaveArg<0>(&sent_text), SaveArg<1>(&sent_range))); + const std::string kExpectedSentText(base::UTF16ToUTF8(text)); + constexpr gfx::Range kExpectedSentRange(60, 90); + + PostToServerAndWait([kExpectedSentText, kExpectedSentRange]( + wl::TestWaylandServerThread* server) { + // The text and range sent as wayland protocol must be same to the original + // text and range where the original text is shorter than 4000 byte. + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(kExpectedSentText, kExpectedSentRange)) + .Times(1); + }); + input_method_context_->SetSurroundingText(text, range); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // The text and range sent as wayland protocol must be same to the original - // text and range where the original text is shorter than 4000 byte. - EXPECT_EQ(sent_text, base::UTF16ToUTF8(text)); - EXPECT_EQ(sent_range, gfx::Range(60, 90)); - // Test OnDeleteSurroundingText with this input. - zwp_text_input_v1_send_delete_surrounding_text( - zwp_text_input_->resource(), sent_range.start(), sent_range.length()); - Sync(); + PostToServerAndWait( + [kExpectedSentRange](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + // Test OnDeleteSurroundingText with this input. + zwp_text_input_v1_send_delete_surrounding_text( + text_input->resource(), kExpectedSentRange.start(), + kExpectedSentRange.length()); + }); + EXPECT_EQ( input_method_context_delegate_->last_on_delete_surrounding_text_args(), (std::pair<size_t, size_t>(0, 0))); @@ -396,27 +460,36 @@ TEST_P(WaylandInputMethodContextTest, SetSurroundingTextForLongText) { const std::u16string text(5000, u'あ'); - const gfx::Range range(2800, 3200); + constexpr gfx::Range range(2800, 3200); - std::string sent_text; - gfx::Range sent_range; - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)) - .WillOnce(DoAll(SaveArg<0>(&sent_text), SaveArg<1>(&sent_range))); - input_method_context_->SetSurroundingText(text, range); - connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); // The text sent as wayland protocol must be at most 4000 byte and long // enough in the limitation. - EXPECT_EQ(sent_text.size(), 3996UL); - EXPECT_EQ(sent_text, base::UTF16ToUTF8(std::u16string(1332, u'あ'))); + const std::string kExpectedSentText( + base::UTF16ToUTF8(std::u16string(1332, u'あ'))); // The selection range must be relocated accordingly to the sent text. - EXPECT_EQ(sent_range, gfx::Range(1398, 2598)); + constexpr gfx::Range kExpectedSentRange(1398, 2598); - // Test OnDeleteSurroundingText with this input. - zwp_text_input_v1_send_delete_surrounding_text( - zwp_text_input_->resource(), sent_range.start(), sent_range.length()); - Sync(); + PostToServerAndWait([kExpectedSentText, kExpectedSentRange]( + wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(kExpectedSentText, kExpectedSentRange)) + .Times(1); + }); + + input_method_context_->SetSurroundingText(text, range); + connection_->Flush(); + + PostToServerAndWait( + [kExpectedSentRange](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + // Test OnDeleteSurroundingText with this input. + zwp_text_input_v1_send_delete_surrounding_text( + text_input->resource(), kExpectedSentRange.start(), + kExpectedSentRange.length()); + }); + EXPECT_EQ( input_method_context_delegate_->last_on_delete_surrounding_text_args(), (std::pair<size_t, size_t>(0, 0))); @@ -424,27 +497,36 @@ TEST_P(WaylandInputMethodContextTest, SetSurroundingTextForLongTextInLeftEdge) { const std::u16string text(5000, u'あ'); - const gfx::Range range(0, 500); + constexpr gfx::Range range(0, 500); - std::string sent_text; - gfx::Range sent_range; - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)) - .WillOnce(DoAll(SaveArg<0>(&sent_text), SaveArg<1>(&sent_range))); - input_method_context_->SetSurroundingText(text, range); - connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); // The text sent as wayland protocol must be at most 4000 byte and large // enough in the limitation. - EXPECT_EQ(sent_text.size(), 3999UL); - EXPECT_EQ(sent_text, base::UTF16ToUTF8(std::u16string(1333, u'あ'))); + const std::string kExpectedSentText( + base::UTF16ToUTF8(std::u16string(1333, u'あ'))); // The selection range must be relocated accordingly to the sent text. - EXPECT_EQ(sent_range, gfx::Range(0, 1500)); + constexpr gfx::Range kExpectedSentRange(0, 1500); - // Test OnDeleteSurroundingText with this input. - zwp_text_input_v1_send_delete_surrounding_text( - zwp_text_input_->resource(), sent_range.start(), sent_range.length()); - Sync(); + PostToServerAndWait([kExpectedSentText, kExpectedSentRange]( + wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(kExpectedSentText, kExpectedSentRange)) + .Times(1); + }); + + input_method_context_->SetSurroundingText(text, range); + connection_->Flush(); + + PostToServerAndWait( + [kExpectedSentRange](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + // Test OnDeleteSurroundingText with this input. + zwp_text_input_v1_send_delete_surrounding_text( + text_input->resource(), kExpectedSentRange.start(), + kExpectedSentRange.length()); + }); + EXPECT_EQ( input_method_context_delegate_->last_on_delete_surrounding_text_args(), (std::pair<size_t, size_t>(0, 0))); @@ -453,27 +535,36 @@ TEST_P(WaylandInputMethodContextTest, SetSurroundingTextForLongTextInRightEdge) { const std::u16string text(5000, u'あ'); - const gfx::Range range(4500, 5000); + constexpr gfx::Range range(4500, 5000); - std::string sent_text; - gfx::Range sent_range; - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)) - .WillOnce(DoAll(SaveArg<0>(&sent_text), SaveArg<1>(&sent_range))); - input_method_context_->SetSurroundingText(text, range); - connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); // The text sent as wayland protocol must be at most 4000 byte and large // enough in the limitation. - EXPECT_EQ(sent_text.size(), 3999UL); - EXPECT_EQ(sent_text, base::UTF16ToUTF8(std::u16string(1333, u'あ'))); + const std::string kExpectedSentText( + base::UTF16ToUTF8(std::u16string(1333, u'あ'))); // The selection range must be relocated accordingly to the sent text. - EXPECT_EQ(sent_range, gfx::Range(2499, 3999)); + constexpr gfx::Range kExpectedSentRange(2499, 3999); - // Test OnDeleteSurroundingText with this input. - zwp_text_input_v1_send_delete_surrounding_text( - zwp_text_input_->resource(), sent_range.start(), sent_range.length()); - Sync(); + PostToServerAndWait([kExpectedSentText, kExpectedSentRange]( + wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(kExpectedSentText, kExpectedSentRange)) + .Times(1); + }); + + input_method_context_->SetSurroundingText(text, range); + connection_->Flush(); + + PostToServerAndWait( + [kExpectedSentRange](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + // Test OnDeleteSurroundingText with this input. + zwp_text_input_v1_send_delete_surrounding_text( + text_input->resource(), kExpectedSentRange.start(), + kExpectedSentRange.length()); + }); + EXPECT_EQ( input_method_context_delegate_->last_on_delete_surrounding_text_args(), (std::pair<size_t, size_t>(0, 0))); @@ -481,86 +572,119 @@ TEST_P(WaylandInputMethodContextTest, SetSurroundingTextForLongRange) { const std::u16string text(5000, u'あ'); - const gfx::Range range(1000, 4000); + constexpr gfx::Range range(1000, 4000); // set_surrounding_text request should be skipped when the selection range in // UTF8 form is longer than 4000 byte. - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)).Times(0); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(_, _)) + .Times(0); + }); + input_method_context_->SetSurroundingText(text, range); connection_->Flush(); - Sync(); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + }); } TEST_P(WaylandInputMethodContextTest, DeleteSurroundingTextWithExtendedRange) { const std::u16string text(50, u'あ'); const gfx::Range range(20, 30); - std::string sent_text; - gfx::Range sent_range; - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(_, _)) - .WillOnce(DoAll(SaveArg<0>(&sent_text), SaveArg<1>(&sent_range))); - input_method_context_->SetSurroundingText(text, range); - connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); // The text and range sent as wayland protocol must be same to the original // text and range where the original text is shorter than 4000 byte. - EXPECT_EQ(sent_text, base::UTF16ToUTF8(text)); - EXPECT_EQ(sent_range, gfx::Range(60, 90)); + const std::string kExpectedSentText(base::UTF16ToUTF8(text)); + // The selection range must be relocated accordingly to the sent text. + constexpr gfx::Range kExpectedSentRange(60, 90); - // Test OnDeleteSurroundingText with this input. - // One char more deletion for each before and after the selection. - zwp_text_input_v1_send_delete_surrounding_text(zwp_text_input_->resource(), - 57, 36); - Sync(); + PostToServerAndWait([kExpectedSentText, kExpectedSentRange]( + wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(kExpectedSentText, kExpectedSentRange)) + .Times(1); + }); + + input_method_context_->SetSurroundingText(text, range); + connection_->Flush(); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + // Test OnDeleteSurroundingText with this input. + // One char more deletion for each before and after the selection. + zwp_text_input_v1_send_delete_surrounding_text(text_input->resource(), 57, + 36); + }); + EXPECT_EQ( input_method_context_delegate_->last_on_delete_surrounding_text_args(), (std::pair<size_t, size_t>(1, 1))); } TEST_P(WaylandInputMethodContextTest, SetContentType) { - EXPECT_CALL( - *zcr_extended_text_input_, - SetInputType(ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_TYPE_URL, - ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_MODE_DEFAULT, - ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_FLAGS_AUTOCOMPLETE_ON, - ZCR_EXTENDED_TEXT_INPUT_V1_LEARNING_MODE_ENABLED)) - .Times(1); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL( + *server->text_input_extension_v1()->extended_text_input(), + SetInputType(ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_TYPE_URL, + ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_MODE_DEFAULT, + ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_FLAGS_AUTOCOMPLETE_ON, + ZCR_EXTENDED_TEXT_INPUT_V1_LEARNING_MODE_ENABLED)) + .Times(1); + }); input_method_context_->SetContentType(TEXT_INPUT_TYPE_URL, TEXT_INPUT_MODE_DEFAULT, TEXT_INPUT_FLAG_AUTOCOMPLETE_ON, /*should_do_learning=*/true); connection_->Flush(); - Sync(); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_extension_v1()->extended_text_input()); + }); } TEST_P(WaylandInputMethodContextTest, SetContentTypeWithoutLearning) { - EXPECT_CALL( - *zcr_extended_text_input_, - SetInputType(ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_TYPE_URL, - ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_MODE_DEFAULT, - ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_FLAGS_AUTOCOMPLETE_ON, - ZCR_EXTENDED_TEXT_INPUT_V1_LEARNING_MODE_DISABLED)) - .Times(1); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL( + *server->text_input_extension_v1()->extended_text_input(), + SetInputType(ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_TYPE_URL, + ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_MODE_DEFAULT, + ZCR_EXTENDED_TEXT_INPUT_V1_INPUT_FLAGS_AUTOCOMPLETE_ON, + ZCR_EXTENDED_TEXT_INPUT_V1_LEARNING_MODE_DISABLED)) + .Times(1); + }); input_method_context_->SetContentType(TEXT_INPUT_TYPE_URL, TEXT_INPUT_MODE_DEFAULT, TEXT_INPUT_FLAG_AUTOCOMPLETE_ON, /*should_do_learning=*/false); connection_->Flush(); - Sync(); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_extension_v1()->extended_text_input()); + }); } TEST_P(WaylandInputMethodContextTest, OnPreeditChanged) { - zwp_text_input_v1_send_preedit_string(zwp_text_input_->resource(), 0, - "PreeditString", ""); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + zwp_text_input_v1_send_preedit_string( + server->text_input_manager_v1()->text_input()->resource(), + server->GetNextSerial(), "PreeditString", ""); + }); EXPECT_TRUE(input_method_context_delegate_->was_on_preedit_changed_called()); } TEST_P(WaylandInputMethodContextTest, OnCommit) { - zwp_text_input_v1_send_commit_string(zwp_text_input_->resource(), 0, - "CommitString"); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + zwp_text_input_v1_send_commit_string( + server->text_input_manager_v1()->text_input()->resource(), + server->GetNextSerial(), "CommitString"); + }); EXPECT_TRUE(input_method_context_delegate_->was_on_commit_called()); } @@ -575,20 +699,25 @@ TEST_P(WaylandInputMethodContextTest, MAYBE(OnConfirmCompositionText)) { constexpr char16_t text[] = u"ab😀cあdef"; - const gfx::Range range(5, 6); // あ is selected. + constexpr gfx::Range range(5, 6); // あ is selected. // SetSurroundingText should be called in UTF-8. - EXPECT_CALL(*zwp_text_input_, - SetSurroundingText("ab😀cあdef", gfx::Range(7, 10))); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText("ab😀cあdef", gfx::Range(7, 10))); + }); input_method_context_->SetSurroundingText(text, range); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - zwp_text_input_v1_send_cursor_position(zwp_text_input_->resource(), 7, 10); - zwp_text_input_v1_send_commit_string(zwp_text_input_->resource(), 0, - "ab😀cあdef"); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(text_input); + + zwp_text_input_v1_send_cursor_position(text_input->resource(), 7, 10); + zwp_text_input_v1_send_commit_string(text_input->resource(), 0, + "ab😀cあdef"); + }); + EXPECT_TRUE( input_method_context_delegate_->was_on_confirm_composition_text_called()); } @@ -598,26 +727,35 @@ const gfx::Range range(3, 4); // あ is selected. // SetSurroundingText should be called in UTF-8. - EXPECT_CALL(*zwp_text_input_, - SetSurroundingText("abcあdef", gfx::Range(3, 6))); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText("abcあdef", gfx::Range(3, 6))); + }); + input_method_context_->SetSurroundingText(text, range); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // Specify "cあd" as a new preedit region. - zcr_extended_text_input_v1_send_set_preedit_region( - zcr_extended_text_input_->resource(), -4, 5); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + + // Specify "cあd" as a new preedit region. + zcr_extended_text_input_v1_send_set_preedit_region( + server->text_input_extension_v1()->extended_text_input()->resource(), + -4, 5); + }); + EXPECT_TRUE( input_method_context_delegate_->was_on_set_preedit_region_called()); } TEST_P(WaylandInputMethodContextTest, OnSetPreeditRegion_NoSurroundingText) { // If no surrounding text is set yet, set_preedit_region would fail. - zcr_extended_text_input_v1_send_set_preedit_region( - zcr_extended_text_input_->resource(), -1, 3); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + zcr_extended_text_input_v1_send_set_preedit_region( + server->text_input_extension_v1()->extended_text_input()->resource(), + -1, 3); + }); EXPECT_FALSE( input_method_context_delegate_->was_on_set_preedit_region_called()); } @@ -630,24 +768,31 @@ constexpr char16_t u16_text[] = u"\u00E9"; constexpr char u8_text[] = "\xC3\xA9"; // In UTF-8 encode. - const gfx::Range u16_range(0, 1); - const gfx::Range u8_range(0, 2); + constexpr gfx::Range u16_range(0, 1); + constexpr gfx::Range u8_range(0, 2); // Double check the text has one grapheme cluster. ASSERT_EQ(1u, CountGraphemeCluster(u16_text)); // SetSurroundingText should be called in UTF-8. - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(u8_text, u8_range)); + PostToServerAndWait([u8_range, u8_text](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(u8_text, u8_range)); + }); + input_method_context_->SetSurroundingText(u16_text, u16_range); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // Specify the whole range as a new preedit region. - zcr_extended_text_input_v1_send_set_preedit_region( - zcr_extended_text_input_->resource(), - -static_cast<int32_t>(u8_range.length()), u8_range.length()); - Sync(); + PostToServerAndWait([u8_range](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + + // Specify the whole range as a new preedit region. + zcr_extended_text_input_v1_send_set_preedit_region( + server->text_input_extension_v1()->extended_text_input()->resource(), + -static_cast<int32_t>(u8_range.length()), u8_range.length()); + }); + EXPECT_TRUE( input_method_context_delegate_->was_on_set_preedit_region_called()); } @@ -658,31 +803,38 @@ constexpr char16_t u16_text[] = u"\u0065\u0301"; constexpr char u8_text[] = "\x65\xCC\x81"; // In UTF-8 encode. - const gfx::Range u16_range(0, 2); - const gfx::Range u8_range(0, 3); + constexpr gfx::Range u16_range(0, 2); + constexpr gfx::Range u8_range(0, 3); // Double check the text has one grapheme cluster. ASSERT_EQ(1u, CountGraphemeCluster(u16_text)); // SetSurroundingText should be called in UTF-8. - EXPECT_CALL(*zwp_text_input_, SetSurroundingText(u8_text, u8_range)); + PostToServerAndWait([u8_range, u8_text](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + SetSurroundingText(u8_text, u8_range)); + }); + input_method_context_->SetSurroundingText(u16_text, u16_range); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // Specify the whole range as a new preedit region. - zcr_extended_text_input_v1_send_set_preedit_region( - zcr_extended_text_input_->resource(), - -static_cast<int32_t>(u8_range.length()), u8_range.length()); - Sync(); + PostToServerAndWait([u8_range](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + + // Specify the whole range as a new preedit region. + zcr_extended_text_input_v1_send_set_preedit_region( + server->text_input_extension_v1()->extended_text_input()->resource(), + -static_cast<int32_t>(u8_range.length()), u8_range.length()); + }); + EXPECT_TRUE( input_method_context_delegate_->was_on_set_preedit_region_called()); } TEST_P(WaylandInputMethodContextTest, OnClearGrammarFragments) { input_method_context_->OnClearGrammarFragments(gfx::Range(1, 5)); - Sync(); + SyncDisplay(); EXPECT_TRUE( input_method_context_delegate_->was_on_clear_grammar_fragments_called()); } @@ -690,22 +842,22 @@ TEST_P(WaylandInputMethodContextTest, OnAddGrammarFragments) { input_method_context_->OnAddGrammarFragment( ui::GrammarFragment(gfx::Range(1, 5), "test")); - Sync(); + SyncDisplay(); EXPECT_TRUE( input_method_context_delegate_->was_on_add_grammar_fragment_called()); } TEST_P(WaylandInputMethodContextTest, OnSetAutocorrectRange) { input_method_context_->OnSetAutocorrectRange(gfx::Range(1, 5)); - Sync(); + SyncDisplay(); EXPECT_TRUE( input_method_context_delegate_->was_on_set_autocorrect_range_called()); } TEST_P(WaylandInputMethodContextTest, OnSetVirtualKeyboardOccludedBounds) { - const gfx::Rect kBounds(10, 20, 300, 400); + constexpr gfx::Rect kBounds(10, 20, 300, 400); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBounds); - Sync(); + SyncDisplay(); EXPECT_EQ(input_method_context_delegate_->virtual_keyboard_bounds(), kBounds); } @@ -722,11 +874,11 @@ ui::TEXT_INPUT_TYPE_NONE); // Clients should get further bounds updates. - const gfx::Rect kBounds(10, 20, 300, 400); + constexpr gfx::Rect kBounds(10, 20, 300, 400); EXPECT_CALL(*client1, EnsureCaretNotInRect(kBounds)); EXPECT_CALL(*client2, EnsureCaretNotInRect(kBounds)); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBounds); - Sync(); + SyncDisplay(); Mock::VerifyAndClearExpectations(client1.get()); Mock::VerifyAndClearExpectations(client2.get()); @@ -735,7 +887,7 @@ EXPECT_CALL(*client1, EnsureCaretNotInRect(kBoundsEmpty)); EXPECT_CALL(*client2, EnsureCaretNotInRect(kBoundsEmpty)); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBoundsEmpty); - Sync(); + SyncDisplay(); Mock::VerifyAndClearExpectations(client1.get()); Mock::VerifyAndClearExpectations(client2.get()); @@ -744,7 +896,7 @@ EXPECT_CALL(*client1, EnsureCaretNotInRect).Times(0); EXPECT_CALL(*client2, EnsureCaretNotInRect).Times(0); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBounds2); - Sync(); + SyncDisplay(); Mock::VerifyAndClearExpectations(client1.get()); Mock::VerifyAndClearExpectations(client2.get()); } @@ -760,40 +912,48 @@ const gfx::Rect kBounds(10, 20, 300, 400); EXPECT_CALL(*client, EnsureCaretNotInRect(kBounds)); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBounds); - Sync(); + SyncDisplay(); Mock::VerifyAndClearExpectations(client.get()); client.reset(); input_method_context_->OnSetVirtualKeyboardOccludedBounds(kBounds); - Sync(); + SyncDisplay(); } TEST_P(WaylandInputMethodContextTest, DisplayVirtualKeyboard) { - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + ShowInputPanel()) + .Times(1); + }); EXPECT_TRUE(input_method_context_->DisplayVirtualKeyboard()); connection_->Flush(); - Sync(); + SyncDisplay(); } TEST_P(WaylandInputMethodContextTest, DismissVirtualKeyboard) { - EXPECT_CALL(*zwp_text_input_, HideInputPanel()); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + EXPECT_CALL(*server->text_input_manager_v1()->text_input(), + HideInputPanel()); + }); input_method_context_->DismissVirtualKeyboard(); connection_->Flush(); - Sync(); + SyncDisplay(); } TEST_P(WaylandInputMethodContextTest, UpdateVirtualKeyboardState) { EXPECT_FALSE(input_method_context_->IsKeyboardVisible()); - - zwp_text_input_v1_send_input_panel_state(zwp_text_input_->resource(), 1); - connection_->Flush(); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + zwp_text_input_v1_send_input_panel_state( + server->text_input_manager_v1()->text_input()->resource(), 1); + }); EXPECT_TRUE(input_method_context_->IsKeyboardVisible()); - zwp_text_input_v1_send_input_panel_state(zwp_text_input_->resource(), 0); - connection_->Flush(); - Sync(); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + zwp_text_input_v1_send_input_panel_state( + server->text_input_manager_v1()->text_input()->resource(), 0); + }); EXPECT_FALSE(input_method_context_->IsKeyboardVisible()); } @@ -811,50 +971,78 @@ }; TEST_P(WaylandInputMethodContextNoKeyboardTest, ActivateDeactivate) { + const uint32_t surface_id = window_->root_surface()->get_surface_id(); + // Because there is no keyboard, Activate is called as soon as InputMethod's // TextInputClient focus is met. InSequence s; - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()); + PostToServerAndWait([id = surface_id](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_NONE, ui::TEXT_INPUT_TYPE_TEXT); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); - EXPECT_CALL(*zwp_text_input_, HideInputPanel()); - EXPECT_CALL(*zwp_text_input_, Deactivate()); + EXPECT_CALL(*zwp_text_input, HideInputPanel()); + EXPECT_CALL(*zwp_text_input, Deactivate()); + }); + input_method_context_->UpdateFocus(false, ui::TEXT_INPUT_TYPE_TEXT, ui::TEXT_INPUT_TYPE_NONE); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + }); } TEST_P(WaylandInputMethodContextNoKeyboardTest, UpdateFocusBetweenTextFields) { + const uint32_t surface_id = window_->root_surface()->get_surface_id(); + // Because there is no keyboard, Activate is called as soon as InputMethod's // TextInputClient focus is met. InSequence s; - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()); + PostToServerAndWait([id = surface_id](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()); + }); + input_method_context_->UpdateFocus(true, ui::TEXT_INPUT_TYPE_NONE, ui::TEXT_INPUT_TYPE_TEXT); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); - // Make sure virtual keyboard is not unnecessarily hidden. - EXPECT_CALL(*zwp_text_input_, HideInputPanel()).Times(0); - EXPECT_CALL(*zwp_text_input_, Deactivate()); - EXPECT_CALL(*zwp_text_input_, Activate(surface_->resource())); - EXPECT_CALL(*zwp_text_input_, ShowInputPanel()).Times(0); + PostToServerAndWait([id = surface_id](wl::TestWaylandServerThread* server) { + auto* zwp_text_input = server->text_input_manager_v1()->text_input(); + Mock::VerifyAndClearExpectations(zwp_text_input); + + // Make sure virtual keyboard is not unnecessarily hidden. + EXPECT_CALL(*zwp_text_input, HideInputPanel()).Times(0); + EXPECT_CALL(*zwp_text_input, Deactivate()); + EXPECT_CALL(*zwp_text_input, + Activate(server->GetObject<wl::MockSurface>(id)->resource())); + EXPECT_CALL(*zwp_text_input, ShowInputPanel()).Times(0); + }); + input_method_context_->UpdateFocus(false, ui::TEXT_INPUT_TYPE_TEXT, ui::TEXT_INPUT_TYPE_TEXT); connection_->Flush(); - Sync(); - Mock::VerifyAndClearExpectations(zwp_text_input_); + + PostToServerAndWait([](wl::TestWaylandServerThread* server) { + Mock::VerifyAndClearExpectations( + server->text_input_manager_v1()->text_input()); + }); } INSTANTIATE_TEST_SUITE_P(XdgVersionStableTest,
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn index 40bbf71..a60f19d 100644 --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn
@@ -606,10 +606,6 @@ "browser/android/permission_request_utils.h", "browser/android/resource_mapper.cc", "browser/android/resource_mapper.h", - "browser/autofill_assistant/weblayer_assistant_field_trial_util.cc", - "browser/autofill_assistant/weblayer_assistant_field_trial_util.h", - "browser/autofill_assistant/weblayer_dependencies.cc", - "browser/autofill_assistant/weblayer_dependencies.h", "browser/bluetooth/weblayer_bluetooth_chooser_android_delegate.cc", "browser/bluetooth/weblayer_bluetooth_chooser_android_delegate.h", "browser/bluetooth/weblayer_bluetooth_scanning_prompt_android_delegate.cc", @@ -724,9 +720,6 @@ "//components/android_autofill/browser", "//components/android_autofill/browser:android", "//components/android_system_error_page", - "//components/autofill_assistant/browser", - "//components/autofill_assistant/browser/android:dependencies_android", - "//components/autofill_assistant/content/browser", "//components/browser_ui/accessibility/android", "//components/browser_ui/client_certificate/android", "//components/browser_ui/contacts_picker/android",
diff --git a/weblayer/browser/autofill_assistant/DEPS b/weblayer/browser/autofill_assistant/DEPS deleted file mode 100644 index 6b656ee..0000000 --- a/weblayer/browser/autofill_assistant/DEPS +++ /dev/null
@@ -1,5 +0,0 @@ -include_rules = [ - "+components/autofill_assistant", - "+components/password_manager/core/browser", -] -
diff --git a/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.cc b/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.cc deleted file mode 100644 index a197a89..0000000 --- a/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.cc +++ /dev/null
@@ -1,24 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.h" - -#include "components/variations/synthetic_trials.h" -#include "weblayer/browser/android/metrics/weblayer_metrics_service_client.h" -#include "weblayer/browser/weblayer_metrics_service_accessor.h" - -using ::base::StringPiece; - -namespace weblayer { - -bool WebLayerAssistantFieldTrialUtil::RegisterSyntheticFieldTrial( - StringPiece trial_name, - StringPiece group_name) const { - return WebLayerMetricsServiceAccessor::RegisterSyntheticFieldTrial( - WebLayerMetricsServiceClient::GetInstance()->GetMetricsService(), - trial_name, group_name, - variations::SyntheticTrialAnnotationMode::kNextLog); -} - -} // namespace weblayer
diff --git a/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.h b/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.h deleted file mode 100644 index 7f62b6e..0000000 --- a/weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.h +++ /dev/null
@@ -1,22 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_ASSISTANT_FIELD_TRIAL_UTIL_H_ -#define WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_ASSISTANT_FIELD_TRIAL_UTIL_H_ - -#include "base/strings/string_piece.h" -#include "components/autofill_assistant/browser/assistant_field_trial_util.h" - -namespace weblayer { - -// Provides field trial utils for WebLayer. -class WebLayerAssistantFieldTrialUtil - : public ::autofill_assistant::AssistantFieldTrialUtil { - bool RegisterSyntheticFieldTrial(base::StringPiece trial_name, - base::StringPiece group_name) const override; -}; - -} // namespace weblayer - -#endif // WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_ASSISTANT_FIELD_TRIAL_UTIL_H_
diff --git a/weblayer/browser/autofill_assistant/weblayer_dependencies.cc b/weblayer/browser/autofill_assistant/weblayer_dependencies.cc deleted file mode 100644 index c33e9293..0000000 --- a/weblayer/browser/autofill_assistant/weblayer_dependencies.cc +++ /dev/null
@@ -1,161 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "weblayer/browser/autofill_assistant/weblayer_dependencies.h" - -#include "base/android/jni_string.h" -#include "base/android/locale_utils.h" -#include "components/autofill_assistant/browser/android/dependencies_android.h" -#include "components/autofill_assistant/browser/common_dependencies.h" -#include "components/autofill_assistant/browser/dependencies_util.h" -#include "components/autofill_assistant/browser/platform_dependencies.h" -#include "components/keyed_service/core/simple_factory_key.h" -#include "components/security_state/core/security_state.h" -#include "components/version_info/android/channel_getter.h" -#include "weblayer/browser/autofill_assistant/weblayer_assistant_field_trial_util.h" -#include "weblayer/browser/browser_context_impl.h" -#include "weblayer/browser/feature_list_creator.h" -#include "weblayer/browser/java/jni/WebLayerAssistantStaticDependencies_jni.h" -#include "weblayer/browser/profile_impl.h" - -using ::autofill_assistant::CommonDependencies; -using ::autofill_assistant::DependenciesAndroid; -using ::autofill_assistant::PlatformDependencies; -using ::base::android::AttachCurrentThread; -using ::base::android::ConvertJavaStringToUTF8; -using ::base::android::JavaParamRef; -using ::base::android::ScopedJavaLocalRef; - -namespace weblayer { - -static jlong JNI_WebLayerAssistantStaticDependencies_Init( - JNIEnv* env, - const JavaParamRef<jobject>& jstatic_dependencies) { - // The dynamic_cast is necessary here to safely cast the resulting intptr back - // to DependenciesAndroid using reinterpret_cast. - return reinterpret_cast<intptr_t>(dynamic_cast<DependenciesAndroid*>( - new WebLayerDependencies(env, jstatic_dependencies))); -} - -static ScopedJavaLocalRef<jobject> -JNI_WebLayerAssistantStaticDependencies_GetJavaProfile( - JNIEnv* env, - const JavaParamRef<jobject>& java_web_contents) { - content::WebContents* web_contents = - content::WebContents::FromJavaWebContents(java_web_contents); - if (!web_contents) { - return nullptr; - } - return ScopedJavaLocalRef<jobject>( - ProfileImpl::FromBrowserContext(web_contents->GetBrowserContext()) - ->GetJavaProfile()); -} - -static jlong JNI_WebLayerAssistantStaticDependencies_GetSimpleFactoryKey( - JNIEnv* env, - jlong browser_context_ptr) { - content::BrowserContext* browser_context = - reinterpret_cast<content::BrowserContext*>(browser_context_ptr); - if (!browser_context) { - return 0; - } - SimpleFactoryKey* key = - static_cast<BrowserContextImpl*>(browser_context)->simple_factory_key(); - return reinterpret_cast<intptr_t>(key); -} - -WebLayerDependencies::WebLayerDependencies( - JNIEnv* env, - const JavaParamRef<jobject>& jstatic_dependencies) - : DependenciesAndroid(env, jstatic_dependencies) {} - -const CommonDependencies* WebLayerDependencies::GetCommonDependencies() const { - return this; -} - -const PlatformDependencies* WebLayerDependencies::GetPlatformDependencies() - const { - return this; -} - -std::unique_ptr<::autofill_assistant::AssistantFieldTrialUtil> -WebLayerDependencies::CreateFieldTrialUtil() const { - return std::make_unique<WebLayerAssistantFieldTrialUtil>(); -} - -autofill::PersonalDataManager* WebLayerDependencies::GetPersonalDataManager() - const { - // TODO(b/222671580): Add NOTREACHED? - return nullptr; -} - -password_manager::PasswordManagerClient* -WebLayerDependencies::GetPasswordManagerClient( - content::WebContents* web_contents) const { - // TODO(b/222671580): Add NOTREACHED? - return nullptr; -} - -PrefService* WebLayerDependencies::GetPrefs() const { - return nullptr; -} - -std::string WebLayerDependencies::GetSignedInEmail() const { - return std::string(); -} - -bool WebLayerDependencies::IsSupervisedUser() const { - // WebLayer does not support supervised users. - return false; -} - -security_state::SecurityLevel WebLayerDependencies::GetSecurityLevel( - content::WebContents* web_contents) const { - return security_state::SecurityLevel::NONE; -} - -std::string WebLayerDependencies::GetLocale() const { - return base::android::GetDefaultLocaleString(); -} - -std::string WebLayerDependencies::GetLatestCountryCode() const { - return autofill_assistant::dependencies_util::GetLatestCountryCode( - FeatureListCreator::GetInstance()->variations_service()); -} - -std::string WebLayerDependencies::GetStoredPermanentCountryCode() const { - return autofill_assistant::dependencies_util::GetStoredPermanentCountryCode( - FeatureListCreator::GetInstance()->variations_service()); -} - -::autofill_assistant::AnnotateDomModelService* -WebLayerDependencies::GetOrCreateAnnotateDomModelService() const { - // TODO(b/222671580): Add NOTREACHED? - return nullptr; -} - -bool WebLayerDependencies::IsCustomTab( - const content::WebContents& web_contents) const { - return false; -} - -bool WebLayerDependencies::IsWebLayer() const { - return true; -} - -signin::IdentityManager* WebLayerDependencies::GetIdentityManager() const { - // TODO(b/222671580): implement. - return nullptr; -} - -consent_auditor::ConsentAuditor* WebLayerDependencies::GetConsentAuditor() - const { - return nullptr; -} - -version_info::Channel WebLayerDependencies::GetChannel() const { - return version_info::android::GetChannel(); -} - -} // namespace weblayer
diff --git a/weblayer/browser/autofill_assistant/weblayer_dependencies.h b/weblayer/browser/autofill_assistant/weblayer_dependencies.h deleted file mode 100644 index 9b17264..0000000 --- a/weblayer/browser/autofill_assistant/weblayer_dependencies.h +++ /dev/null
@@ -1,73 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_DEPENDENCIES_H_ -#define WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_DEPENDENCIES_H_ - -#include "base/android/scoped_java_ref.h" -#include "base/strings/string_piece.h" -#include "components/autofill_assistant/browser/android/dependencies_android.h" -#include "components/autofill_assistant/browser/assistant_field_trial_util.h" -#include "components/autofill_assistant/browser/common_dependencies.h" -#include "components/autofill_assistant/browser/platform_dependencies.h" -#include "components/autofill_assistant/content/browser/annotate_dom_model_service.h" -#include "components/metrics/metrics_service_accessor.h" -#include "components/password_manager/core/browser/password_manager_client.h" -#include "components/security_state/core/security_state.h" -#include "components/variations/service/variations_service.h" -#include "content/public/browser/browser_context.h" -#include "content/public/browser/web_contents.h" - -namespace consent_auditor { -class ConsentAuditor; -} // namespace consent_auditor - -namespace weblayer { - -// Interface for platform delegates that provide platform-dependent features -// and dependencies to the starter. -// TODO(b/201964911): rename to make it consistent with the other dependencies -// classes. -class WebLayerDependencies : public ::autofill_assistant::DependenciesAndroid, - public ::autofill_assistant::CommonDependencies, - public ::autofill_assistant::PlatformDependencies { - public: - WebLayerDependencies( - JNIEnv* env, - const base::android::JavaParamRef<jobject>& jstatic_dependencies); - - // DependenciesAndroid: - const ::autofill_assistant::CommonDependencies* GetCommonDependencies() - const override; - const ::autofill_assistant::PlatformDependencies* GetPlatformDependencies() - const override; - - // CommonDependencies: - std::unique_ptr<::autofill_assistant::AssistantFieldTrialUtil> - CreateFieldTrialUtil() const override; - autofill::PersonalDataManager* GetPersonalDataManager() const override; - password_manager::PasswordManagerClient* GetPasswordManagerClient( - content::WebContents* web_contents) const override; - std::string GetLocale() const override; - std::string GetLatestCountryCode() const override; - std::string GetStoredPermanentCountryCode() const override; - std::string GetSignedInEmail() const override; - PrefService* GetPrefs() const override; - security_state::SecurityLevel GetSecurityLevel( - content::WebContents* web_contents) const override; - bool IsSupervisedUser() const override; - ::autofill_assistant::AnnotateDomModelService* - GetOrCreateAnnotateDomModelService() const override; - bool IsWebLayer() const override; - signin::IdentityManager* GetIdentityManager() const override; - consent_auditor::ConsentAuditor* GetConsentAuditor() const override; - version_info::Channel GetChannel() const override; - - // Overrides PlatformDependencies - bool IsCustomTab(const content::WebContents& web_contents) const override; -}; - -} // namespace weblayer - -#endif // WEBLAYER_BROWSER_AUTOFILL_ASSISTANT_WEBLAYER_DEPENDENCIES_H_
diff --git a/weblayer/browser/java/BUILD.gn b/weblayer/browser/java/BUILD.gn index bd94ccf..f42017e1 100644 --- a/weblayer/browser/java/BUILD.gn +++ b/weblayer/browser/java/BUILD.gn
@@ -178,10 +178,6 @@ "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java", "org/chromium/weblayer_private/WebShareServiceFactory.java", "org/chromium/weblayer_private/WebappsHelper.java", - "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantBrowserControls.java", - "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantDependencies.java", - "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java", - "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantTabChangeObserver.java", "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothChooserAndroidDelegate.java", "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothScanningPromptAndroidDelegate.java", "org/chromium/weblayer_private/media/MediaRouteDialogFragmentImpl.java", @@ -214,7 +210,6 @@ "//build/android:build_java", "//cc:cc_java", "//components/android_autofill/browser:java", - "//components/autofill_assistant/android:public_dependencies_java", "//components/browser_ui/accessibility/android:java", "//components/browser_ui/banners/android:java", "//components/browser_ui/bottomsheet/android:factory_java", @@ -512,7 +507,6 @@ "org/chromium/weblayer_private/WebMessageReplyProxyImpl.java", "org/chromium/weblayer_private/WebViewCompatibilityHelperImpl.java", "org/chromium/weblayer_private/WebappsHelper.java", - "org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java", "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothChooserAndroidDelegate.java", "org/chromium/weblayer_private/bluetooth/WebLayerBluetoothScanningPromptAndroidDelegate.java", "org/chromium/weblayer_private/media/MediaRouterClientImpl.java",
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java index 3c6b019e..a851229 100644 --- a/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java +++ b/weblayer/browser/java/org/chromium/weblayer_private/TabImpl.java
@@ -63,7 +63,6 @@ import org.chromium.ui.base.ViewAndroidDelegate; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; -import org.chromium.weblayer_private.autofill_assistant.WebLayerAssistantTabChangeObserver; import org.chromium.weblayer_private.interfaces.APICallException; import org.chromium.weblayer_private.interfaces.IContextMenuParams; import org.chromium.weblayer_private.interfaces.IErrorPageCallbackClient; @@ -154,9 +153,6 @@ private WebLayerAccessibilityUtil.Observer mAccessibilityObserver; - private final WebLayerAssistantTabChangeObserver mWebLayerAssistantTabChangeObserver = - new WebLayerAssistantTabChangeObserver(); - private Set<FaviconCallbackProxy> mFaviconCallbackProxies = new HashSet<>(); // Only non-null if scroll offsets have been requested. @@ -411,8 +407,6 @@ new AutofillActionModeCallback(mBrowser.getContext(), mAutofillProvider)); } } - - mWebLayerAssistantTabChangeObserver.onBrowserAttachmentChanged(mWebContents); } @VisibleForTesting @@ -1030,8 +1024,6 @@ TabImplJni.get().removeTabFromBrowserBeforeDestroying(mNativeTab); - mWebLayerAssistantTabChangeObserver.onTabDestroyed(mWebContents); - // Notify the client that this instance is being destroyed to prevent it from calling // back into this object if the embedder mistakenly tries to do so. try {
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantBrowserControls.java b/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantBrowserControls.java deleted file mode 100644 index e43c18d..0000000 --- a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantBrowserControls.java +++ /dev/null
@@ -1,54 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.weblayer_private.autofill_assistant; - -import org.chromium.components.autofill_assistant.AssistantBrowserControls; - -/** - * Implementation of {@link AssistantBrowserControls} for WebLayer. - */ -public class WebLayerAssistantBrowserControls implements AssistantBrowserControls { - private AssistantBrowserControls.Observer mObserver; - - @Override - public int getBottomControlsHeight() { - // TODO(b/222671580): Implement - return 0; - } - - @Override - public int getBottomControlOffset() { - // TODO(b/222671580): Implement - return 0; - } - - @Override - public int getContentOffset() { - // TODO(b/222671580): Implement - return 0; - } - - @Override - public float getTopVisibleContentOffset() { - // TODO(b/222671580): Implement - return 0; - } - - @Override - public void setObserver(AssistantBrowserControls.Observer browserControlsObserver) { - mObserver = browserControlsObserver; - } - - @Override - public void destroy() {} - - public void onControlsOffsetChanged() { - mObserver.onControlsOffsetChanged(); - } - - public void onBottomControlsHeightChanged() { - mObserver.onBottomControlsHeightChanged(); - } -}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantDependencies.java b/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantDependencies.java deleted file mode 100644 index 5fcd526..0000000 --- a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantDependencies.java +++ /dev/null
@@ -1,115 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.weblayer_private.autofill_assistant; - -import android.app.Activity; -import android.view.View; -import android.view.ViewGroup; - -import androidx.annotation.Nullable; - -import org.chromium.base.lifetime.Destroyable; -import org.chromium.components.autofill_assistant.AssistantBrowserControlsFactory; -import org.chromium.components.autofill_assistant.AssistantDependencies; -import org.chromium.components.autofill_assistant.AssistantSnackbarFactory; -import org.chromium.components.autofill_assistant.AssistantTabChangeObserver; -import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; -import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerProvider; -import org.chromium.content_public.browser.WebContents; -import org.chromium.ui.KeyboardVisibilityDelegate; -import org.chromium.ui.base.ApplicationViewportInsetSupplier; -import org.chromium.ui.base.WindowAndroid; - -/** - * Implementation of {@link AssistantDependencies} for WebLayer. - */ -public class WebLayerAssistantDependencies - extends WebLayerAssistantStaticDependencies implements AssistantDependencies { - public WebLayerAssistantDependencies(WebContents webContents, - WebLayerAssistantTabChangeObserver webLayerAssistantTabChangeObserver) { - super(webContents, webLayerAssistantTabChangeObserver); - maybeUpdateDependencies(webContents); - } - - /** - * Returns true if all dependencies are available. - */ - @Override - public boolean maybeUpdateDependencies(WebContents webContents) { - assert webContents == mWebContents; - return getWindowAndroid() != null && getActivity() != null; - } - - @Override - @Nullable - public WindowAndroid getWindowAndroid() { - return mWebContents.getTopLevelNativeWindow(); - } - - @Override - @Nullable - public Activity getActivity() { - WindowAndroid windowAndroid = getWindowAndroid(); - if (windowAndroid == null) return null; - - return windowAndroid.getActivity().get(); - } - - @Override - @Nullable - public BottomSheetController getBottomSheetController() { - WindowAndroid windowAndroid = getWindowAndroid(); - if (windowAndroid == null) return null; - - return BottomSheetControllerProvider.from(windowAndroid); - } - - @Override - @Nullable - public KeyboardVisibilityDelegate getKeyboardVisibilityDelegate() { - WindowAndroid windowAndroid = getWindowAndroid(); - if (windowAndroid == null) return null; - - return windowAndroid.getKeyboardDelegate(); - } - - @Override - @Nullable - public ApplicationViewportInsetSupplier getBottomInsetProvider() { - WindowAndroid windowAndroid = getWindowAndroid(); - if (windowAndroid == null) return null; - - return windowAndroid.getApplicationBottomInsetProvider(); - } - - @Override - public View getRootView() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public ViewGroup getRootViewGroup() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantSnackbarFactory getSnackbarFactory() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantBrowserControlsFactory createBrowserControlsFactory() { - return () -> new WebLayerAssistantBrowserControls(); - } - - @Override - public Destroyable observeTabChanges(AssistantTabChangeObserver tabChangeObserver) { - mWebLayerAssistantTabChangeObserver.addObserver(tabChangeObserver); - return () -> mWebLayerAssistantTabChangeObserver.removeObserver(tabChangeObserver); - } -}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java b/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java deleted file mode 100644 index 31d797ea..0000000 --- a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantStaticDependencies.java +++ /dev/null
@@ -1,174 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.weblayer_private.autofill_assistant; - -import android.app.Activity; -import android.content.Context; -import android.os.RemoteException; - -import androidx.annotation.DimenRes; -import androidx.annotation.Nullable; - -import org.chromium.base.annotations.JNINamespace; -import org.chromium.base.annotations.NativeMethods; -import org.chromium.components.autofill_assistant.AssistantAccessTokenUtil; -import org.chromium.components.autofill_assistant.AssistantDependencies; -import org.chromium.components.autofill_assistant.AssistantEditorFactory; -import org.chromium.components.autofill_assistant.AssistantFeedbackUtil; -import org.chromium.components.autofill_assistant.AssistantInfoPageUtil; -import org.chromium.components.autofill_assistant.AssistantProfileImageUtil; -import org.chromium.components.autofill_assistant.AssistantSettingsUtil; -import org.chromium.components.autofill_assistant.AssistantStaticDependencies; -import org.chromium.components.autofill_assistant.AssistantTabObscuringUtil; -import org.chromium.components.autofill_assistant.AssistantTabUtil; -import org.chromium.components.embedder_support.simple_factory_key.SimpleFactoryKeyHandle; -import org.chromium.components.favicon.LargeIconBridge; -import org.chromium.components.image_fetcher.ImageFetcher; -import org.chromium.components.image_fetcher.ImageFetcherConfig; -import org.chromium.components.image_fetcher.ImageFetcherFactory; -import org.chromium.content_public.browser.BrowserContextHandle; -import org.chromium.content_public.browser.WebContents; -import org.chromium.ui.base.WindowAndroid; -import org.chromium.ui.util.AccessibilityUtil; -import org.chromium.weblayer_private.ProfileImpl; -import org.chromium.weblayer_private.WebLayerAccessibilityUtil; -import org.chromium.weblayer_private.interfaces.IUserIdentityCallbackClient; - -/** - * Provides default implementations of {@link AssistantStaticDependencies} for WebLayer. - */ -@JNINamespace("weblayer") -public class WebLayerAssistantStaticDependencies - implements AssistantStaticDependencies, SimpleFactoryKeyHandle { - protected final WebContents mWebContents; - protected final WebLayerAssistantTabChangeObserver mWebLayerAssistantTabChangeObserver; - - // There exists one instance of this class per WebContents and per TabImpl. - WebLayerAssistantStaticDependencies(WebContents webContents, - WebLayerAssistantTabChangeObserver webLayerAssistantTabChangeObserver) { - mWebContents = webContents; - mWebLayerAssistantTabChangeObserver = webLayerAssistantTabChangeObserver; - } - - // AssistantStaticDependencies implementation: - - @Override - public long createNative() { - return WebLayerAssistantStaticDependenciesJni.get().init( - new WebLayerAssistantStaticDependencies( - mWebContents, mWebLayerAssistantTabChangeObserver)); - } - - @Override - public AssistantDependencies createDependencies(Activity activity) { - return new WebLayerAssistantDependencies(mWebContents, mWebLayerAssistantTabChangeObserver); - } - - @Override - public AccessibilityUtil getAccessibilityUtil() { - return WebLayerAccessibilityUtil.get(); - } - - @Override - @Nullable - public AssistantTabObscuringUtil getTabObscuringUtilOrNull(WindowAndroid windowAndroid) { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantInfoPageUtil createInfoPageUtil() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantFeedbackUtil createFeedbackUtil() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantTabUtil createTabUtil() { - // This method should do nothing under WebLayer as it is only used to close CCTs in Chrome. - return (activity) -> {}; - } - - @Override - public AssistantSettingsUtil createSettingsUtil() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public AssistantAccessTokenUtil createAccessTokenUtil() { - // TODO(b/222671580): Implement - return null; - } - - @Override - public BrowserContextHandle getBrowserContext() { - return WebLayerAssistantStaticDependenciesJni.get().getJavaProfile(mWebContents); - } - - @Override - public ImageFetcher createImageFetcher() { - return ImageFetcherFactory.createImageFetcher(ImageFetcherConfig.DISK_CACHE_ONLY, this); - } - - @Override - public LargeIconBridge createIconBridge() { - BrowserContextHandle browserContext = getBrowserContext(); - if (browserContext == null) return null; - - return new LargeIconBridge(getBrowserContext()); - } - - @Nullable - private String getEmailOrNull(ProfileImpl profile) throws RemoteException { - IUserIdentityCallbackClient userIdentityCallback = profile.getUserIdentityCallbackClient(); - if (userIdentityCallback == null) return null; - - return userIdentityCallback.getEmail(); - } - - @Override - @Nullable - public AssistantProfileImageUtil createProfileImageUtilOrNull( - Context context, @DimenRes int imageSizeRedId) { - // TODO(b/222671580): Implement - return null; - } - - @Override - @Nullable - public AssistantEditorFactory createEditorFactory() { - // This factory should not be used in a WebLayer context. All code paths leading to the - // use of this factory point to a misconfiguration. For WebLayer, the external editors - // should be used. - return null; - } - - // SimpleFactoryKeyHandle implementation: - - @Override - public long getNativeSimpleFactoryKeyPointer() { - BrowserContextHandle browserContext = getBrowserContext(); - if (browserContext == null) return 0; - long nativeBrowserContextPointer = browserContext.getNativeBrowserContextPointer(); - if (nativeBrowserContextPointer == 0) return 0; - return WebLayerAssistantStaticDependenciesJni.get().getSimpleFactoryKey( - nativeBrowserContextPointer); - } - - @NativeMethods - interface Natives { - long init(AssistantStaticDependencies staticDependencies); - - ProfileImpl getJavaProfile(WebContents webContents); - - long getSimpleFactoryKey(long browserContext); - } -}
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantTabChangeObserver.java b/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantTabChangeObserver.java deleted file mode 100644 index a692904..0000000 --- a/weblayer/browser/java/org/chromium/weblayer_private/autofill_assistant/WebLayerAssistantTabChangeObserver.java +++ /dev/null
@@ -1,43 +0,0 @@ -// Copyright 2022 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.weblayer_private.autofill_assistant; - -import org.chromium.base.ObserverList; -import org.chromium.components.autofill_assistant.AssistantTabChangeObserver; -import org.chromium.content_public.browser.WebContents; - -/** - * Notifies of changes to a WebLayer tab. - * The functions onContentChanged and onWebContentsSwapped are never called on WebLayer since the - * tab never changes WebContents. - */ -public class WebLayerAssistantTabChangeObserver { - private final ObserverList<AssistantTabChangeObserver> mTabChangeObservers = - new ObserverList<AssistantTabChangeObserver>(); - - // TODO(b/222671580): onObservingDifferentTab - // TODO(b/222671580): onInteractabilityChanged - - public void addObserver(AssistantTabChangeObserver tabChangeObserver) { - mTabChangeObservers.addObserver(tabChangeObserver); - } - - public void removeObserver(AssistantTabChangeObserver tabChangeObserver) { - mTabChangeObservers.removeObserver(tabChangeObserver); - } - - public void onBrowserAttachmentChanged(WebContents webContents) { - for (AssistantTabChangeObserver tabChangeObserver : mTabChangeObservers) { - tabChangeObserver.onActivityAttachmentChanged( - webContents, webContents.getTopLevelNativeWindow()); - } - } - - public void onTabDestroyed(WebContents webContents) { - for (AssistantTabChangeObserver tabChangeObserver : mTabChangeObservers) { - tabChangeObserver.onDestroyed(webContents); - } - } -}