diff --git a/DEPS b/DEPS index 4fe8fae..4b288ab 100644 --- a/DEPS +++ b/DEPS
@@ -181,11 +181,11 @@ # 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': '8d3c0c7a1a60c78866f1f8b5ceea89c92e822c96', + 'skia_revision': 'f72e48dd2ff0ca9ecea2655eaa45e29c8ac587dd', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'bd2510d9d872670cf7295ade5fbda6f617dff0ba', + 'v8_revision': 'c83d5e246faef119952f4ad645062d380b79781c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -193,15 +193,15 @@ # 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': '27db24581e9ef6a309ac43d9a5e89f1d9bf161c4', + 'angle_revision': 'dcc57015f8922c93e9680f15c300d7c353082e00', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': 'a7e42ba7f855d8adcbca8482a803dc2b0f06fc6f', + 'swiftshader_revision': '110236f3ce70c292658b1b7372903dc55f43ad35', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '9346b7c0ed1a2adbb1c25095822cdfc08dbfa0c0', + 'pdfium_revision': '77141ccf844b5c5ab1deb5c03d873b03ae13b03f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. @@ -244,7 +244,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'ce9e11f02436651b9336bee1b70f09dd75d015a0', + 'catapult_revision': '9dbcda838560ceb6eb6ce90e92152a60ed95dcb3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -252,7 +252,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': 'fe5c3f7d1da4602870f3751cabfa2b30ff1c781b', + 'devtools_frontend_revision': '5a8f4d89e1e624ade403ee72cb4c0de70262a397', # 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. @@ -296,7 +296,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. - 'spv_tools_revision': 'e70b009b0f1e47278d89ed7c9f418010d563eb5a', + 'spv_tools_revision': 'fb2e819819ef0a23b552326240822b8d657e4d76', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -304,7 +304,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. - 'spirv_cross_revision': 'd253f41e17e27285756d031d8ba43bf370264e1f', + 'spirv_cross_revision': '172e39f0398b920cfc221b7826c92105d44ad647', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -312,7 +312,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': '1dbb5286297995f5d7ab9fb921caa4cd359934a1', + 'dawn_revision': 'e6441b604f58bf01a17ee991fa82f864fc6fc087', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -904,7 +904,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '12f8d69f1288fe1d9ba6c169279d0ac5f652e8b4', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '13928b7e7f1a37e5e70cae53aba089f88bbbccfc', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -1498,7 +1498,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '88d715c9115a5ce65c0bf660209dfeee9131ccd0', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '3b19b2734385359704c193df054041599e30e9f2', + Var('webrtc_git') + '/src.git' + '@' + '9b289b2c2973a35d5da3929b6dabf1d26ca49cba', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1568,7 +1568,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@d9ef631c223af00b0554afbca7c7a86098ba3a8d', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@079a14224dd125991756d2d512944d9fcd1a46c7', 'condition': 'checkout_src_internal', },
diff --git a/android_webview/support_library/boundary_interfaces/build.gradle b/android_webview/support_library/boundary_interfaces/build.gradle deleted file mode 100644 index 4fbc108..0000000 --- a/android_webview/support_library/boundary_interfaces/build.gradle +++ /dev/null
@@ -1,25 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This file is to build WebView boundary interfaces as part of the AndroidX webkit library. -// It is not meant to be used or build any targets in chromium project. - -import androidx.build.SdkHelperKt -import androidx.build.SupportConfig - -plugins { - id('java-library') -} - -dependencies { - api("androidx.annotation:annotation:1.1.0") - implementation fileTree(dir: "${SdkHelperKt.getSdkPath(project.rootDir)}/platforms/$SupportConfig.COMPILE_SDK_VERSION/", - include: "android.jar") -} - -sourceSets { - main { - java.srcDirs = ['src'] - } -}
diff --git a/ash/assistant/ui/assistant_web_container_view.cc b/ash/assistant/ui/assistant_web_container_view.cc index 780ff50d..567c3cd4 100644 --- a/ash/assistant/ui/assistant_web_container_view.cc +++ b/ash/assistant/ui/assistant_web_container_view.cc
@@ -6,6 +6,7 @@ #include <algorithm> #include <memory> +#include <utility> #include "ash/assistant/model/assistant_ui_model.h" #include "ash/assistant/ui/assistant_ui_constants.h" @@ -84,6 +85,12 @@ views::Widget* widget = new views::Widget; widget->Init(std::move(params)); + // TODO(b/146351046): Temporary workaround for an a11y bug b/144765770. + // Should be removed once we have moved off of the Content Service + // (tracked in b/146351046). + widget->client_view()->SetFocusBehavior(FocusBehavior::ALWAYS); + widget->client_view()->RequestFocus(); + SetLayoutManager(std::make_unique<views::FillLayout>()); SetBackground(views::CreateSolidBackground(SK_ColorWHITE));
diff --git a/ash/shelf/shelf_widget.cc b/ash/shelf/shelf_widget.cc index 6eca31e3..8458e96 100644 --- a/ash/shelf/shelf_widget.cc +++ b/ash/shelf/shelf_widget.cc
@@ -781,14 +781,8 @@ } void ShelfWidget::OnAccessibilityStatusChanged() { - // Only handles when the spoken feedback is disabled. - if (Shell::Get()->accessibility_controller()->spoken_feedback_enabled()) - return; - - if (!is_hotseat_forced_to_show_) - return; - - is_hotseat_forced_to_show_ = false; + is_hotseat_forced_to_show_ = + Shell::Get()->accessibility_controller()->spoken_feedback_enabled(); shelf_layout_manager_->UpdateVisibilityState(); }
diff --git a/ash/strings/ash_strings_af.xtb b/ash/strings/ash_strings_af.xtb index 511f5820..83bb5299 100644 --- a/ash/strings/ash_strings_af.xtb +++ b/ash/strings/ash_strings_af.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Volume is gedemp.</translation> <translation id="1467432559032391204">Links</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Aan</translation> <translation id="1516740043221086139">Moenie Steur Nie is aan.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Wys kennisgewinginstellings. Kennisgewings is af vir 'n program}other{Wys kennisgewinginstellings. Kennisgewings is af vir # programme}}</translation> <translation id="1525508553941733066">MAAK TOE</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistent (laai tans …)</translation> <translation id="1838895407229022812">Aandbeligting is af.</translation> <translation id="1850504506766569011">Wi-Fi is afgeskakel.</translation> +<translation id="1859889070386344428">Af</translation> <translation id="1864454756846565995">USB C-toestel (poort aan agterkant)</translation> <translation id="1882897271359938046">Weerspieëling na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Ontsluit met vingerafdruk</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Taaisleutels</translation> <translation id="2509468283778169019">HOOFLETTERSLOT is aan</translation> <translation id="2517825809102302935">Skakel af vir vanaand</translation> +<translation id="2519465031217098801">Aan</translation> <translation id="2542089167727451762">Tik op jou profielprent</translation> <translation id="255671100581129685">Die Google Assistent is nie in 'n publieke sessie beskikbaar nie.</translation> <translation id="256712445991462162">die gedokte vergrootglas</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Koppel tans aan <ph name="NAME" /></translation> <translation id="394485226368336402">Oudio-instellings</translation> <translation id="3962859241508114581">Vorige snit</translation> +<translation id="3965097803111112935">Af</translation> <translation id="397105322502079400">Bereken tans …</translation> <translation id="3977512764614765090">Battery op <ph name="PERCENTAGE" />% en laai tans.</translation> <translation id="3995138139523574647">USB C-toestel (agterste poort aan regterkant)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Lig tekskaret uit</translation> <translation id="5222676887888702881">Meld af</translation> <translation id="523505283826916779">Toeganklikheidsinstellings</translation> +<translation id="5250225880026334010">Af</translation> <translation id="5260676007519551770">Lessenaar 4</translation> <translation id="5283198616748585639">Voeg 1 min. by</translation> <translation id="5286194356314741248">Skandeer tans</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">Bluetooth-toestel "<ph name="DEVICE_NAME" />" soek toestemming om saam te bind. Voer asseblief hierdie wagsleutel op daardie toestel in: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Wagwoord</translation> <translation id="6665545700722362599">Gee webwerwe, programme en uitbreidings toestemming om liggingdienste, die toestel se mikrofoon, kamera of ander kenmerke te gebruik</translation> +<translation id="6669268301501499730">Aan</translation> <translation id="6670153871843998651">Lessenaar 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Jou ontkoppelbare sleutelbord moet dringend opgedateer word</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 91694b1..687dfa52 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">የድምፅ መጠን ድምፀ ከል ተደርጓል።</translation> <translation id="1467432559032391204">ግራ</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">አብራ</translation> <translation id="1516740043221086139">አትረብሽ በርቷል።</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለአንድ መተግበሪያ ጠፍተዋል}one{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለ# መተግበሪያዎች ጠፍተዋል}other{የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ለ# መተግበሪያዎች ጠፍተዋል}}</translation> <translation id="1525508553941733066">አሰናብት</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">ረዳት (በመጫን ላይ...)</translation> <translation id="1838895407229022812">የምሽት ብርሃን ጠፍቷል።</translation> <translation id="1850504506766569011">Wi-Fi ጠፍቷል።</translation> +<translation id="1859889070386344428">አጥፋ</translation> <translation id="1864454756846565995">USB-C መሣሪያ (የኋላ ወደብ)</translation> <translation id="1882897271359938046">ወደ <ph name="DISPLAY_NAME" /> በማንጸባረቅ ላይ</translation> <translation id="1885785240814121742">በጣት አሻራ ይክፈቱ</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">ተጣባቂ ቁልፎች</translation> <translation id="2509468283778169019">CAPS LOCK በርቷል</translation> <translation id="2517825809102302935">ለዛሬ ማታ አጥፋ</translation> +<translation id="2519465031217098801">አብራ</translation> <translation id="2542089167727451762">የመገለጫ ምስልዎን መታ ያድርጉ</translation> <translation id="255671100581129685">የGoogle ረዳቱ በይፋዊ ክፍለ-ጊዜ ውስጥ አይገኝም።</translation> <translation id="256712445991462162">የተተከለው ማጉያ</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">ከ<ph name="NAME" /> ጋር በመገናኘት ላይ</translation> <translation id="394485226368336402">የድምጽ ቅንብሮች</translation> <translation id="3962859241508114581">ቀዳሚ ትራክ</translation> +<translation id="3965097803111112935">አጥፋ</translation> <translation id="397105322502079400">በማስላት ላይ...</translation> <translation id="3977512764614765090">በ <ph name="PERCENTAGE" />% ላይ ባትሪ እና ኃይል እየሞላ ነው።</translation> <translation id="3995138139523574647">የUSB-C መሣሪያ (የቀኝ ጎን የኋላ ወደብ)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">የጽሑፍ ድፋቱን አድምቅ</translation> <translation id="5222676887888702881">ዘግተህ ውጣ</translation> <translation id="523505283826916779">የተደራሽነት ቅንብሮች</translation> +<translation id="5250225880026334010">አጥፋ</translation> <translation id="5260676007519551770">ዴስክ 4</translation> <translation id="5283198616748585639">1 ደቂቃ ያክሉ</translation> <translation id="5286194356314741248">በመቃኘት ላይ</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል። እባክዎ ይህን የይለፍ ቁልፍ በዚህ መሣሪያ ላይ ያስገቡ፦ <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">የይለፍ ቃል፦</translation> <translation id="6665545700722362599">ድር ጣቢያዎች፣ መተግበሪያዎች እና ቅጥያዎች የአካባቢ አገልግሎቶችን፣ የመሣሪያውን ማይክሮፎን፣ ካሜራ እና ሌሎች ባህሪያትን የመጠቀም ፈቃድ ይስጧቸው</translation> +<translation id="6669268301501499730">አብራ</translation> <translation id="6670153871843998651">ዴስክ 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">የእርስዎ ተነቃይ የቁልፍ ሰሌዳ ወሳኝ የሆነ ዝማኔ ያስፈልገዋል</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index e2400067..5fa0814e 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Звукът е спрян.</translation> <translation id="1467432559032391204">Наляво</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Вкл.</translation> <translation id="1516740043221086139">Режимът „Не безпокойте“ е включен.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Показване на настройките за известия. Известията са изключени за едно приложение}other{Показване на настройките за известия. Известията са изключени за # приложения}}</translation> <translation id="1525508553941733066">ОТХВЪРЛЯНЕ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Асистент (зарежда се...)</translation> <translation id="1838895407229022812">Функцията за нощно осветление е изключена.</translation> <translation id="1850504506766569011">Wi-Fi е изключен.</translation> +<translation id="1859889070386344428">Изкл.</translation> <translation id="1864454756846565995">USB-C устройство (задният порт)</translation> <translation id="1882897271359938046">Дублира се на „<ph name="DISPLAY_NAME" />“</translation> <translation id="1885785240814121742">Отключване с отпечатък</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Оставащи клавиши</translation> <translation id="2509468283778169019">„CAPS LOCK“ е включен</translation> <translation id="2517825809102302935">Изключване за тази вечер</translation> +<translation id="2519465031217098801">Вкл.</translation> <translation id="2542089167727451762">Докоснете изображението на потребителския си профил</translation> <translation id="255671100581129685">Google Асистент не е налице по време на публична сесия.</translation> <translation id="256712445991462162">лупата в прикрепен режим</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Установява се връзка със: <ph name="NAME" /></translation> <translation id="394485226368336402">Настройки за звука</translation> <translation id="3962859241508114581">Предишен запис</translation> +<translation id="3965097803111112935">Изкл.</translation> <translation id="397105322502079400">Изчислява се...</translation> <translation id="3977512764614765090">Батерията е на <ph name="PERCENTAGE" />% и се зарежда.</translation> <translation id="3995138139523574647">устройство с USB-C (задният десен порт)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Открояване на точката на вмъкване в текста</translation> <translation id="5222676887888702881">Изход</translation> <translation id="523505283826916779">Настройки за достъпност</translation> +<translation id="5250225880026334010">Изкл.</translation> <translation id="5260676007519551770">Работен кът 4</translation> <translation id="5283198616748585639">Добавяне на 1 мин</translation> <translation id="5286194356314741248">Сканира се</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване. Моля, въведете на него следния ключ за достъп: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Парола</translation> <translation id="6665545700722362599">да разрешава на уебсайтове, приложения и разширения да използват услугите за местоположение и микрофона, камерата или други функции на устройството;</translation> +<translation id="6669268301501499730">Вкл.</translation> <translation id="6670153871843998651">Работен кът 3</translation> <translation id="6691659475504239918">Клавиш „Търсене“ + Shift + H</translation> <translation id="6696025732084565524">Вашата отделяща се клавиатура се нуждае от критична актуализация</translation>
diff --git a/ash/strings/ash_strings_bs.xtb b/ash/strings/ash_strings_bs.xtb index f39c40d..c8c17c3 100644 --- a/ash/strings/ash_strings_bs.xtb +++ b/ash/strings/ash_strings_bs.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Zvuk je isključen.</translation> <translation id="1467432559032391204">Lijevo</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Uključeno</translation> <translation id="1516740043221086139">Uključen je način rada Ne ometaj.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Prikaži postavke obavještenja. Obavještenja aplikacije su isključena.}one{Prikaži postavke obavještenja. Obavještenja za # aplikaciju su isključena.}few{Prikaži postavke obavještenja. Obavještenja za # aplikacije su isključena.}other{Prikaži postavke obavještenja. Obavještenja za # aplikacija su isključena.}}</translation> <translation id="1525508553941733066">ODBACI</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Asistent (učitavanje...)</translation> <translation id="1838895407229022812">Noćno svjetlo je isključeno.</translation> <translation id="1850504506766569011">WiFi je isključen</translation> +<translation id="1859889070386344428">Isključeno</translation> <translation id="1864454756846565995">USB-C uređaj (stražnji priključak)</translation> <translation id="1882897271359938046">Preslikava se na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Otključavanje otiskom prsta</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Ljepljive tipke</translation> <translation id="2509468283778169019">Uključena su velika slova</translation> <translation id="2517825809102302935">Isključi za večeras</translation> +<translation id="2519465031217098801">Uključeno</translation> <translation id="2542089167727451762">Dodirnite sliku profila</translation> <translation id="255671100581129685">Google Asistent nije dostupan u javnoj sesiji.</translation> <translation id="256712445991462162">fiksirano povećalo</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Povezivanje na mrežu <ph name="NAME" /></translation> <translation id="394485226368336402">Postavke zvuka</translation> <translation id="3962859241508114581">Prethodna numera</translation> +<translation id="3965097803111112935">Isključeno</translation> <translation id="397105322502079400">Računanje…</translation> <translation id="3977512764614765090">Baterija je na <ph name="PERCENTAGE" />% i puni se.</translation> <translation id="3995138139523574647">USB-C uređaj (stražnji desni priključak)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Istakni kursor u tekstu</translation> <translation id="5222676887888702881">Odjava</translation> <translation id="523505283826916779">Postavke pristupačnosti</translation> +<translation id="5250225880026334010">Isključeno</translation> <translation id="5260676007519551770">Radna površina 4</translation> <translation id="5283198616748585639">Dodaj 1 min</translation> <translation id="5286194356314741248">Skeniranje</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži odobrenje za uparivanje. Unesite ovaj pristupni kôd na tom uređaju: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Lozinka</translation> <translation id="6665545700722362599">Dodijeliti web lokacijama, aplikacijama i ekstenzijama odobrenja za korištenje usluge lokacije, mikrofona i kamere uređaja ili drugih funkcija</translation> +<translation id="6669268301501499730">Uključeno</translation> <translation id="6670153871843998651">Radna površina 3</translation> <translation id="6691659475504239918">Tipka za pretraživanje + Shift + H</translation> <translation id="6696025732084565524">Vašoj odvojivoj tastaturi je potrebno važno ažuriranje</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index 625a3e1..61ac57c 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">El volum està silenciat.</translation> <translation id="1467432559032391204">Esquerra</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Activat</translation> <translation id="1516740043221086139">El mode No molestis està activat.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostra la configuració de les notificacions. Les notificacions estan desactivades per a una aplicació.}other{Mostra la configuració de les notificacions. Les notificacions estan desactivades per a # aplicacions.}}</translation> <translation id="1525508553941733066">IGNORA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistent (s'està carregant...)</translation> <translation id="1838895407229022812">La funció Llum nocturna està desactivada.</translation> <translation id="1850504506766569011">La Wi-Fi està desactivada.</translation> +<translation id="1859889070386344428">Desactivat</translation> <translation id="1864454756846565995">Dispositiu USB-C (port posterior)</translation> <translation id="1882897271359938046">S'està replicant <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloqueja amb l'empremta digital</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Tecles permanents</translation> <translation id="2509468283778169019">BLOQ MAJ està activat.</translation> <translation id="2517825809102302935">Desactiva aquesta nit</translation> +<translation id="2519465031217098801">Activat</translation> <translation id="2542089167727451762">Toca la teva imatge de perfil</translation> <translation id="255671100581129685">L'Assistent de Google no està disponible a les sessions públiques.</translation> <translation id="256712445991462162">la lupa acoblada</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">S'està connectant amb <ph name="NAME" /></translation> <translation id="394485226368336402">Configuració d'àudio</translation> <translation id="3962859241508114581">Pista anterior</translation> +<translation id="3965097803111112935">Desactivat</translation> <translation id="397105322502079400">S’està calculant...</translation> <translation id="3977512764614765090">La bateria s'està carregant i està a un <ph name="PERCENTAGE" />%.</translation> <translation id="3995138139523574647">Dispositiu USB-C (port posterior dret)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Ressalta la marca d'inserció de text</translation> <translation id="5222676887888702881">Tanca la sessió</translation> <translation id="523505283826916779">Configuració d'accessibilitat</translation> +<translation id="5250225880026334010">Desactivat</translation> <translation id="5260676007519551770">Escriptori 4</translation> <translation id="5283198616748585639">Afegeix 1 minut</translation> <translation id="5286194356314741248">S'està cercant</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">El dispositiu Bluetooth "<ph name="DEVICE_NAME" />" sol·licita permís per emparellar-se. Introduïu-hi aquesta contrasenya: <ph name="PASSKEY" />.</translation> <translation id="6657585470893396449">Contrasenya</translation> <translation id="6665545700722362599">Concedir permís als llocs web, a les aplicacions i a les extensions per utilitzar els serveis d'ubicació o el micròfon, la càmera o altres funcions del dispositiu.</translation> +<translation id="6669268301501499730">Activat</translation> <translation id="6670153871843998651">Escriptori 3</translation> <translation id="6691659475504239918">Cerca+Maj+H</translation> <translation id="6696025732084565524">El teclat extraïble necessita una actualització molt important</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 81960e0..d0d8b11 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Ton ist aus.</translation> <translation id="1467432559032391204">Links</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">An</translation> <translation id="1516740043221086139">"Bitte nicht stören" ist aktiviert.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Benachrichtigungseinstellungen anzeigen. Benachrichtigungen sind für eine App deaktiviert.}other{Benachrichtigungseinstellungen anzeigen. Benachrichtigungen sind für # Apps deaktiviert.}}</translation> <translation id="1525508553941733066">SCHLIESSEN</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistant (wird geladen…)</translation> <translation id="1838895407229022812">Nachtlicht ist ausgeschaltet.</translation> <translation id="1850504506766569011">WLAN ist deaktiviert.</translation> +<translation id="1859889070386344428">Aus</translation> <translation id="1864454756846565995">USB-C-Gerät (Port hinten)</translation> <translation id="1882897271359938046">Wird auf <ph name="DISPLAY_NAME" /> gespiegelt...</translation> <translation id="1885785240814121742">Mit Fingerabdruck entsperren</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Sticky Keys</translation> <translation id="2509468283778169019">Feststelltaste An</translation> <translation id="2517825809102302935">Für heute Abend deaktiveren</translation> +<translation id="2519465031217098801">An</translation> <translation id="2542089167727451762">Tippen Sie auf Ihr Profilbild</translation> <translation id="255671100581129685">In öffentlichen Sitzungen ist Google Assistant nicht verfügbar.</translation> <translation id="256712445991462162">die angedockte Lupe</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Verbindung mit <ph name="NAME" /> wird hergestellt.</translation> <translation id="394485226368336402">Audioeinstellungen</translation> <translation id="3962859241508114581">Vorheriger Titel</translation> +<translation id="3965097803111112935">Aus</translation> <translation id="397105322502079400">Wird berechnet...</translation> <translation id="3977512764614765090">Der Akkustand ist <ph name="PERCENTAGE" /> %. Der Akku wird aufgeladen.</translation> <translation id="3995138139523574647">USB-C-Gerät (Port hinten rechts)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Textcursor hervorheben</translation> <translation id="5222676887888702881">Abmelden</translation> <translation id="523505283826916779">Einstellungen für Bedienungshilfen</translation> +<translation id="5250225880026334010">Aus</translation> <translation id="5260676007519551770">Desktop 4</translation> <translation id="5283198616748585639">1 Min. hinzufügen</translation> <translation id="5286194356314741248">Durchsuchen</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Das Bluetooth-Gerät "<ph name="DEVICE_NAME" />" bittet um Erlaubnis für Kopplung. Geben Sie auf dem Gerät folgenden Zugangscode ein: <ph name="PASSKEY" />.</translation> <translation id="6657585470893396449">Passwort</translation> <translation id="6665545700722362599">Websites, Apps und Erweiterungen die Berechtigung zur Verwendung von Standortdiensten, des Mikrofons, der Kamera oder anderer Funktionen des Geräts gewähren</translation> +<translation id="6669268301501499730">An</translation> <translation id="6670153871843998651">Desktop 3</translation> <translation id="6691659475504239918">Suche + Umschalttaste + H</translation> <translation id="6696025732084565524">Wichtiges Update für Ihre abnehmbare Tastatur</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index b7c74cd..f5876b9e 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Η ένταση ήχου είναι σε σίγαση.</translation> <translation id="1467432559032391204">Αριστερά</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Ενεργό</translation> <translation id="1516740043221086139">Η λειτουργία Μην ενοχλείτε είναι ενεργή.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Εμφάνιση ρυθμίσεων ειδοποιήσεων. Έχουν απενεργοποιηθεί οι ειδοποιήσεις για κάποια εφαρμογή.}other{Εμφάνιση ρυθμίσεων ειδοποιήσεων. Έχουν απενεργοποιηθεί οι ειδοποιήσεις για # εφαρμογές.}}</translation> <translation id="1525508553941733066">ΑΠΟΡΡΙΨΗ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Βοηθός (φόρτωση…)</translation> <translation id="1838895407229022812">Ο Νυχτερινός φωτισμός είναι ανενεργός.</translation> <translation id="1850504506766569011">Το Wi-Fi έχει απενεργοποιηθεί.</translation> +<translation id="1859889070386344428">Ανενεργό</translation> <translation id="1864454756846565995">Συσκευή USB-C (πίσω θύρα)</translation> <translation id="1882897271359938046">Κατοπτρισμός σε <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Ξεκλείδωμα με δακτυλικό αποτύπωμα</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Σταθερά πλήκτρα</translation> <translation id="2509468283778169019">Το CAPS LOCK είναι ενεργοποιημένο</translation> <translation id="2517825809102302935">Απενεργοποίηση για απόψε</translation> +<translation id="2519465031217098801">Ενεργό</translation> <translation id="2542089167727451762">Πατήστε την εικόνα προφίλ σας</translation> <translation id="255671100581129685">Ο Βοηθός Google δεν διατίθεται σε δημόσιες περιόδους λειτουργίας.</translation> <translation id="256712445991462162">ο μεγεθυντικός φακός σε παράθυρο</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Σύνδεση με <ph name="NAME" /></translation> <translation id="394485226368336402">Ρυθμίσεις ήχου</translation> <translation id="3962859241508114581">Προηγούμενο κομμάτι</translation> +<translation id="3965097803111112935">Ανενεργό</translation> <translation id="397105322502079400">Υπολογισμός…</translation> <translation id="3977512764614765090">Η μπαταρία είναι στο <ph name="PERCENTAGE" />% και φορτίζει.</translation> <translation id="3995138139523574647">Συσκευή USB-C (πίσω δεξιά θύρα)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Επισήμανση δρομέα κειμένου</translation> <translation id="5222676887888702881">Έξοδος</translation> <translation id="523505283826916779">Ρυθμίσεις προσβασιμότητας</translation> +<translation id="5250225880026334010">Ανενεργό</translation> <translation id="5260676007519551770">Γραφείο 4</translation> <translation id="5283198616748585639">Προσθήκη 1 λεπτού</translation> <translation id="5286194356314741248">Σάρωση</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Η συσκευή Bluetooth "<ph name="DEVICE_NAME" />" ζητά δικαιώματα σύζευξης. Καταχωρίστε αυτό το κλειδί πρόσβασης στη συγκεκριμένη συσκευή: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Κωδικός πρόσβασης</translation> <translation id="6665545700722362599">Εκχωρήσει άδειες σε ιστοτόπους, εφαρμογές και επεκτάσεις για τη χρήση υπηρεσιών τοποθεσίας, του μικροφώνου ή της κάμερας της συσκευής ή άλλων λειτουργιών</translation> +<translation id="6669268301501499730">Ενεργό</translation> <translation id="6670153871843998651">Γραφείο 3</translation> <translation id="6691659475504239918">Πλήκτρο αναζήτησης+Shift+H</translation> <translation id="6696025732084565524">Απαιτείται σημαντική ενημέρωση του αποσπώμενου πληκτρολογίου σας</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 15cdbb5..7c12ee3a 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Volume is muted.</translation> <translation id="1467432559032391204">Left</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">On</translation> <translation id="1516740043221086139">Do Not Disturb is on.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Show notification settings. Notifications are off for an app}other{Show notification settings. Notifications are off for # apps}}</translation> <translation id="1525508553941733066">DISMISS</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistant (loading...)</translation> <translation id="1838895407229022812">Night Light is off.</translation> <translation id="1850504506766569011">Wi-Fi is turned off.</translation> +<translation id="1859889070386344428">Off</translation> <translation id="1864454756846565995">USB-C device (rear port)</translation> <translation id="1882897271359938046">Mirroring to <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Unlock with fingerprint</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Sticky keys</translation> <translation id="2509468283778169019">CAPS LOCK is on</translation> <translation id="2517825809102302935">Turn off for tonight</translation> +<translation id="2519465031217098801">On</translation> <translation id="2542089167727451762">Tap your profile image</translation> <translation id="255671100581129685">The Google Assistant is not available in a public session.</translation> <translation id="256712445991462162">the docked magnifier</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Connecting to <ph name="NAME" /></translation> <translation id="394485226368336402">Audio settings</translation> <translation id="3962859241508114581">Previous track</translation> +<translation id="3965097803111112935">Off</translation> <translation id="397105322502079400">Calculating...</translation> <translation id="3977512764614765090">Battery at <ph name="PERCENTAGE" />% and charging.</translation> <translation id="3995138139523574647">USB-C device (right-hand-side back port)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Highlight text caret</translation> <translation id="5222676887888702881">Sign out</translation> <translation id="523505283826916779">Accessibility settings</translation> +<translation id="5250225880026334010">Off</translation> <translation id="5260676007519551770">Desk 4</translation> <translation id="5283198616748585639">Add 1 min</translation> <translation id="5286194356314741248">Scanning</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth device "<ph name="DEVICE_NAME" />" would like permission to pair. Please enter this passkey on that device: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Password</translation> <translation id="6665545700722362599">Grant websites, apps and extensions permission to use location services, the device’s microphone, camera or other features</translation> +<translation id="6669268301501499730">On</translation> <translation id="6670153871843998651">Desk 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Your detachable keyboard needs a critical update</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 99cbe87..7aa049c 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">El volumen está silenciado.</translation> <translation id="1467432559032391204">Izquierda</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Activada</translation> <translation id="1516740043221086139">El modo No molestar está activado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Muestra la configuración de notificaciones. Las notificaciones están desactivadas para una aplicación.}other{Muestra la configuración de notificaciones. Las notificaciones están desactivadas para # aplicaciones.}}</translation> <translation id="1525508553941733066">CERRAR</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Asistente (cargando...)</translation> <translation id="1838895407229022812">Luz nocturna desactivada.</translation> <translation id="1850504506766569011">La conexión Wi-Fi está desactivada.</translation> +<translation id="1859889070386344428">Desactivado</translation> <translation id="1864454756846565995">Dispositivo USB-C (puerto trasero)</translation> <translation id="1882897271359938046">Proyectando en <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloquear con huella digital</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Teclas persistentes</translation> <translation id="2509468283778169019">Bloqueo de mayúsculas activado</translation> <translation id="2517825809102302935">Desactivar esta noche</translation> +<translation id="2519465031217098801">Activado</translation> <translation id="2542089167727451762">Toca tu imagen de perfil</translation> <translation id="255671100581129685">El Asistente de Google no está disponible en las sesiones públicas.</translation> <translation id="256712445991462162">la lupa fijada</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Conectando con: <ph name="NAME" /></translation> <translation id="394485226368336402">Configuración de audio</translation> <translation id="3962859241508114581">Pista anterior</translation> +<translation id="3965097803111112935">Desactivada</translation> <translation id="397105322502079400">Calculando...</translation> <translation id="3977512764614765090">La batería se está cargando y está al <ph name="PERCENTAGE" /> %.</translation> <translation id="3995138139523574647">Dispositivo USB tipo C (puerto trasero derecho)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Resaltar el símbolo de intercalación del texto</translation> <translation id="5222676887888702881">Cerrar sesión</translation> <translation id="523505283826916779">Configuración de accesibilidad</translation> +<translation id="5250225880026334010">Desactivada</translation> <translation id="5260676007519551770">Escritorio 4</translation> <translation id="5283198616748585639">Añadir 1 minuto</translation> <translation id="5286194356314741248">Buscando</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para vincularse. Introduce la clave de contraseña <ph name="PASSKEY" /> en el dispositivo</translation> <translation id="6657585470893396449">Contraseña</translation> <translation id="6665545700722362599">Dar permiso a los sitios web, las aplicaciones y las extensiones para usar los servicios de ubicación, el micrófono del dispositivo, la cámara y otras funciones.</translation> +<translation id="6669268301501499730">Activada</translation> <translation id="6670153871843998651">Escritorio 3</translation> <translation id="6691659475504239918">Tecla de búsqueda + Mayús + H</translation> <translation id="6696025732084565524">Tu teclado independiente necesita una actualización crítica</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 1abdf648..38e56a82 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Helitugevus on vaigistatud.</translation> <translation id="1467432559032391204">Vasakule</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Sees</translation> <translation id="1516740043221086139">Režiim Mitte segada on sees.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Kuvab märguandeseaded. Märguanded on rakenduse jaoks välja lülitatud}other{Kuvab märguandeseaded. Märguanded on # rakenduse jaoks välja lülitatud}}</translation> <translation id="1525508553941733066">LOOBU</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistent (laadimine …)</translation> <translation id="1838895407229022812">Öövalgus on väljas.</translation> <translation id="1850504506766569011">WiFi on välja lülitatud.</translation> +<translation id="1859889070386344428">Väljas</translation> <translation id="1864454756846565995">C-tüüpi USB-seade (tagumine port)</translation> <translation id="1882897271359938046">Peegeldamine asukohta <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Sõrmejäljega avamine</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Nakkeklahvid</translation> <translation id="2509468283778169019">SUURTÄHELUKK on sisse lülitatud</translation> <translation id="2517825809102302935">Lülita tänaseks õhtuks välja</translation> +<translation id="2519465031217098801">Sees</translation> <translation id="2542089167727451762">Puudutage oma profiilipilti</translation> <translation id="255671100581129685">Google'i assistent ei ole avalikus seansis saadaval.</translation> <translation id="256712445991462162">dokitud luup</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Võrguga <ph name="NAME" /> ühenduse loomine</translation> <translation id="394485226368336402">Heliseaded</translation> <translation id="3962859241508114581">Eelmine lugu</translation> +<translation id="3965097803111112935">Väljas</translation> <translation id="397105322502079400">Arvutamine ...</translation> <translation id="3977512764614765090">Aku laetuse tase on <ph name="PERCENTAGE" />% ja seda laetakse.</translation> <translation id="3995138139523574647">C-tüüpi USB-seade (tagumine parempoolne port)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Tekstisisestusmärgi esiletõstmine</translation> <translation id="5222676887888702881">Logi välja</translation> <translation id="523505283826916779">Juurdepääsuseaded</translation> +<translation id="5250225880026334010">Väljas</translation> <translation id="5260676007519551770">Töölaud 4</translation> <translation id="5283198616748585639">Lisa 1 min</translation> <translation id="5286194356314741248">Skaneering</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">Bluetoothi seade „<ph name="DEVICE_NAME" />” küsib luba sidumiseks. Sisestage seadmesse see parool: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Parool</translation> <translation id="6665545700722362599">Andke veebisaitidele, rakendustele ja laiendustele luba kasutada asukohateenuseid, seadme mikrofoni, kaamerat ning teisi funktsioone</translation> +<translation id="6669268301501499730">Sees</translation> <translation id="6670153871843998651">Töölaud 3</translation> <translation id="6691659475504239918">Otsinguklahv + tõstuklahv + H</translation> <translation id="6696025732084565524">Eemaldatav klaviatuur vajab kriitilist värskendust</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index fd02c0d5a..30cad52 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Äänet on mykistetty.</translation> <translation id="1467432559032391204">Vasemmalla</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Päällä</translation> <translation id="1516740043221086139">Älä häiritse ‑tila on päällä.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Näytä ilmoitusasetukset. Ilmoitukset on poistettu 1 sovelluksen käytöstä.}other{Näytä ilmoitusasetukset. Ilmoitukset on poistettu # sovelluksen käytöstä.}}</translation> <translation id="1525508553941733066">HYLKÄÄ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistant (ladataan…)</translation> <translation id="1838895407229022812">Yövalo on pois päältä.</translation> <translation id="1850504506766569011">Wi-Fi on pois päältä</translation> +<translation id="1859889070386344428">Pois päältä</translation> <translation id="1864454756846565995">C-tyypin USB-laite (takaportti)</translation> <translation id="1882897271359938046">Peilataan näyttöön: <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Avaa sormenjäljellä</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Päälle jäävät näppäimet</translation> <translation id="2509468283778169019">CAPS LOCK on päällä</translation> <translation id="2517825809102302935">Poista päältä täksi yöksi</translation> +<translation id="2519465031217098801">Päällä</translation> <translation id="2542089167727451762">Napauta profiilikuvaasi</translation> <translation id="255671100581129685">Google Assistantia ei voi käyttää julkisella käyttökerralla.</translation> <translation id="256712445991462162">kiinnitetty näytön suurentaja</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Yhdistetään verkkoon <ph name="NAME" /></translation> <translation id="394485226368336402">Ääniasetukset</translation> <translation id="3962859241508114581">Edellinen kappale</translation> +<translation id="3965097803111112935">Pois päältä</translation> <translation id="397105322502079400">Lasketaan...</translation> <translation id="3977512764614765090">Akkua ladataan, varaus nyt <ph name="PERCENTAGE" /> %</translation> <translation id="3995138139523574647">C-tyypin USB-laite (oikean sivun taaimmainen portti)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Korosta tekstikursori</translation> <translation id="5222676887888702881">Kirjaudu ulos</translation> <translation id="523505283826916779">Esteettömyysasetukset</translation> +<translation id="5250225880026334010">Pois päältä</translation> <translation id="5260676007519551770">Pöytä 4</translation> <translation id="5283198616748585639">Lisää 1 min</translation> <translation id="5286194356314741248">Etsitään</translation> @@ -410,6 +415,7 @@ <translation id="6650933572246256093">Bluetooth-laite <ph name="DEVICE_NAME" /> pyytää lupaa laiteparin muodostamiseen. Anna tämä avain kyseisellä laitteella: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Salasana</translation> <translation id="6665545700722362599">Anna verkkosivustoille, sovelluksille ja laajennuksille oikeus käyttää sijaintipalveluita, laitteen mikrofonia, kameraa ja muita ominaisuuksia</translation> +<translation id="6669268301501499730">Päällä</translation> <translation id="6670153871843998651">Pöytä 3</translation> <translation id="6691659475504239918">Haku + vaihto + H</translation> <translation id="6696025732084565524">Irrotettavaan näppäimistöösi täytyy asentaa kriittinen päivitys</translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index 2b917b69..8ef7507 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">O volume está silenciado.</translation> <translation id="1467432559032391204">Esquerda</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Opción activada</translation> <translation id="1516740043221086139">Está activado o modo Non molestar.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar a configuración de notificacións. Están desactivadas para unha aplicación}other{Mostrar a configuración de notificacións. Están desactivadas para # aplicacións}}</translation> <translation id="1525508553941733066">IGNORAR</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Asistente (cargando...)</translation> <translation id="1838895407229022812">A función Luz nocturna está desactivada.</translation> <translation id="1850504506766569011">A wifi está desactivada.</translation> +<translation id="1859889070386344428">Opción desactivada</translation> <translation id="1864454756846565995">Dispositivo USB-C (porto posterior)</translation> <translation id="1882897271359938046">Proxectando en <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloquear coa impresión dixital</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Teclas presas</translation> <translation id="2509468283778169019">Bloqueo de maiúsculas activado</translation> <translation id="2517825809102302935">Desactivar esta noite</translation> +<translation id="2519465031217098801">Opción activada</translation> <translation id="2542089167727451762">Toca a imaxe do teu perfil</translation> <translation id="255671100581129685">O Asistente de Google non está dispoñible cando se utiliza unha sesión pública.</translation> <translation id="256712445991462162">a lupa ancorada</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Conectando con <ph name="NAME" /></translation> <translation id="394485226368336402">Configuración do audio</translation> <translation id="3962859241508114581">Pista anterior</translation> +<translation id="3965097803111112935">Opción desactivada</translation> <translation id="397105322502079400">Calculando...</translation> <translation id="3977512764614765090">Nivel de batería: <ph name="PERCENTAGE" /> % (cargando).</translation> <translation id="3995138139523574647">Dispositivo USB-C (porto dereito posterior)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Destacar o cursor de texto</translation> <translation id="5222676887888702881">Pechar sesión</translation> <translation id="523505283826916779">Configuración de accesibilidade</translation> +<translation id="5250225880026334010">Opción desactivada</translation> <translation id="5260676007519551770">Escritorio 4</translation> <translation id="5283198616748585639">Engadir 1 min</translation> <translation id="5286194356314741248">Buscando</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para sincronizarse. Introduce esta clave de acceso nese dispositivo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Contrasinal</translation> <translation id="6665545700722362599">Conceder permiso aos sitios web, as aplicacións e as extensións para utilizar funcións como os servizos de localización, o micrófono do dispositivo ou a cámara.</translation> +<translation id="6669268301501499730">Opción activada</translation> <translation id="6670153871843998651">Escritorio 3</translation> <translation id="6691659475504239918">Buscar+Maiúsculas+H</translation> <translation id="6696025732084565524">É necesario instalar unha actualización esencial do teclado extraíble</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index a7e063b..660113d 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Isključen je zvuk.</translation> <translation id="1467432559032391204">Ulijevo</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Uključeno</translation> <translation id="1516740043221086139">Način Ne uznemiravaj je uključen.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Prikaz postavki obavijesti. Obavijesti su isključene za jednu aplikaciju}one{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikaciju}few{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikacije}other{Prikaz postavki obavijesti. Obavijesti su isključene za # aplikacija}}</translation> <translation id="1525508553941733066">ODBACI</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Asistent (učitavanje...)</translation> <translation id="1838895407229022812">Noćno je svjetlo isključeno.</translation> <translation id="1850504506766569011">Wi-Fi je isključen.</translation> +<translation id="1859889070386344428">Isključeno</translation> <translation id="1864454756846565995">USB-C uređaj (stražnji priključak)</translation> <translation id="1882897271359938046">Zrcaljenje na zaslon <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Otključavanje otiskom prsta</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Ljepljive tipke</translation> <translation id="2509468283778169019">Opcija CAPS LOCK uključena</translation> <translation id="2517825809102302935">Isključi za noćas</translation> +<translation id="2519465031217098801">Uključeno</translation> <translation id="2542089167727451762">Dodirnite svoju profilnu sliku</translation> <translation id="255671100581129685">Google asistent nije dostupan u javnoj sesiji.</translation> <translation id="256712445991462162">usidreno povećalo</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Povezivanje s mrežom <ph name="NAME" /></translation> <translation id="394485226368336402">Postavke zvuka</translation> <translation id="3962859241508114581">Prethodna pjesma</translation> +<translation id="3965097803111112935">Isključeno</translation> <translation id="397105322502079400">Izračun u tijeku…</translation> <translation id="3977512764614765090">Baterija je na <ph name="PERCENTAGE" />% i puni se.</translation> <translation id="3995138139523574647">USB-C uređaj (stražnji desni priključak)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Istakni znak za umetanje teksta</translation> <translation id="5222676887888702881">Odjava</translation> <translation id="523505283826916779">Postavke pristupačnosti</translation> +<translation id="5250225880026334010">Isključeno</translation> <translation id="5260676007519551770">Radna površina 4</translation> <translation id="5283198616748585639">Dodaj 1 min</translation> <translation id="5286194356314741248">Skeniranje</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži dopuštenje za uparivanje. Unesite ovaj pristupni ključ na tom uređaju: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Zaporka</translation> <translation id="6665545700722362599">Dopustite web-lokacijama, aplikacijama i proširenjima da upotrebljavaju usluge lokacije, mikrofon i kameru uređaja ili druge značajke</translation> +<translation id="6669268301501499730">Uključeno</translation> <translation id="6670153871843998651">Radna površina 3</translation> <translation id="6691659475504239918">Search + Shift + H</translation> <translation id="6696025732084565524">Potrebno je preuzeti važno ažuriranje za vašu odvojivu tipkovnicu</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index dfaa513..d79122e 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Hang némítva.</translation> <translation id="1467432559032391204">Balra</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Be</translation> <translation id="1516740043221086139">A Ne zavarjanak funkció be van kapcsolva.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Értesítési beállítások megjelenítése. Az értesítések egyetlen alkalmazásnál vannak kikapcsolva}other{Értesítési beállítások megjelenítése. Az értesítések # alkalmazásnál ki vannak kapcsolva}}</translation> <translation id="1525508553941733066">ELVETÉS</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Segéd (betöltés…)</translation> <translation id="1838895407229022812">Az Éjszakai fény ki van kapcsolva.</translation> <translation id="1850504506766569011">Wi-Fi kikapcsolva.</translation> +<translation id="1859889070386344428">Ki</translation> <translation id="1864454756846565995">C típusú USB-vel kompatibilis eszköz (hátsó port)</translation> <translation id="1882897271359938046">Tükrözés: <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Feloldás ujjlenyomattal</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Beragadó billentyűk</translation> <translation id="2509468283778169019">A CAPS LOCK be van kapcsolva</translation> <translation id="2517825809102302935">Kikapcsolás ma estére</translation> +<translation id="2519465031217098801">Be</translation> <translation id="2542089167727451762">Koppintson a profilképre</translation> <translation id="255671100581129685">A Google Segéd nem áll rendelkezésre nyilvános munkamenetben.</translation> <translation id="256712445991462162">dokkolt nagyító</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Csatlakozás a következőhöz: <ph name="NAME" /></translation> <translation id="394485226368336402">Hangbeállítások</translation> <translation id="3962859241508114581">Előző szám</translation> +<translation id="3965097803111112935">Ki</translation> <translation id="397105322502079400">Számítás…</translation> <translation id="3977512764614765090">Az akkumulátor töltöttsége <ph name="PERCENTAGE" />%, és a töltés jelenleg is folyamatban van.</translation> <translation id="3995138139523574647">C típusú USB-vel kompatibilis eszköz (jobb hátsó port)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Szövegbeszúrási pont kiemelése</translation> <translation id="5222676887888702881">Kijelentkezés</translation> <translation id="523505283826916779">Kisegítő beállítások</translation> +<translation id="5250225880026334010">Ki</translation> <translation id="5260676007519551770">4. asztal</translation> <translation id="5283198616748585639">1 perc hozzáadása</translation> <translation id="5286194356314741248">Keresés</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">A(z) „<ph name="DEVICE_NAME" />” Bluetooth-eszköz engedélyt kér a párosításra. Kérjük, adja meg ezt a biztonsági kódot azon az eszközön: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Jelszó</translation> <translation id="6665545700722362599">Engedélyadás webhelyek, alkalmazások és bővítmények számára a helyszolgáltatásoknak, illetve az eszköz mikrofonjának, kamerájának vagy más funkcióinak használatára</translation> +<translation id="6669268301501499730">Be</translation> <translation id="6670153871843998651">3. asztal</translation> <translation id="6691659475504239918">Keresés+Shift+H</translation> <translation id="6696025732084565524">Szükség van a leválasztható billentyűzet kritikus frissítésének telepítésére</translation>
diff --git a/ash/strings/ash_strings_is.xtb b/ash/strings/ash_strings_is.xtb index 3a91c83..8f43ba0 100644 --- a/ash/strings/ash_strings_is.xtb +++ b/ash/strings/ash_strings_is.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Slökkt er á hljóði.</translation> <translation id="1467432559032391204">Rangsælis</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Kveikt</translation> <translation id="1516740043221086139">Kveikt er á „Ónáðið ekki“.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir forrit}one{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir # forrit}other{Sýna tilkynningastillingar. Slökkt er á tilkynningum fyrir # forrit}}</translation> <translation id="1525508553941733066">LOKA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Aðstoðarmaður (hleður...)</translation> <translation id="1838895407229022812">Slökkt er á næturljósi.</translation> <translation id="1850504506766569011">Slökkt er á Wi-Fi.</translation> +<translation id="1859889070386344428">Slökkt</translation> <translation id="1864454756846565995">USB-C-tæki (tengi að aftan)</translation> <translation id="1882897271359938046">Speglar á <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Opna með fingrafari</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Festilyklar</translation> <translation id="2509468283778169019">Hástafalás er á</translation> <translation id="2517825809102302935">Slökkva á þessu í kvöld</translation> +<translation id="2519465031217098801">Kveikt</translation> <translation id="2542089167727451762">Ýttu á prófílmyndina þína</translation> <translation id="255671100581129685">Google hjálparinn er ekki í boði í opinberri lotu.</translation> <translation id="256712445991462162">stækkunargler í föstum glugga</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Tengist <ph name="NAME" /></translation> <translation id="394485226368336402">Hljóðstillingar</translation> <translation id="3962859241508114581">Fyrra lag</translation> +<translation id="3965097803111112935">Slökkt</translation> <translation id="397105322502079400">Reiknar...</translation> <translation id="3977512764614765090">Rafhlaða í <ph name="PERCENTAGE" />% og í hleðslu.</translation> <translation id="3995138139523574647">USB-C tæki (tengi hægra megin að aftan)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Auðkenna textainnskotsmerki</translation> <translation id="5222676887888702881">Skrá út</translation> <translation id="523505283826916779">Aðgengisstillingar</translation> +<translation id="5250225880026334010">Slökkt</translation> <translation id="5260676007519551770">Skrifborð 4</translation> <translation id="5283198616748585639">Bæta 1 mín. við</translation> <translation id="5286194356314741248">Leit</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth-tækið „<ph name="DEVICE_NAME" />“ óskar eftir heimild til pörunar. Sláðu þennan aðgangslykil inn í því tæki: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Aðgangsorð</translation> <translation id="6665545700722362599">Veitt vefsvæðum, forritum og viðbótum heimild til að nota staðsetningarþjónustu, hljóðnema, myndavél eða aðra eiginleika tækisins</translation> +<translation id="6669268301501499730">Kveikt</translation> <translation id="6670153871843998651">Skrifborð 3</translation> <translation id="6691659475504239918">Leitarhnappur+Shift+H</translation> <translation id="6696025732084565524">Lausa lyklaborðið þarf að fá áríðandi uppfærslu</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 676f342..7105df97 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Il volume è disattivato.</translation> <translation id="1467432559032391204">Sinistra</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">On</translation> <translation id="1516740043221086139">La modalità Non disturbare è attiva.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostra impostazioni di notifica. Le notifiche sono disattivate per un'app}other{Mostra impostazioni di notifica. Le notifiche sono disattivate per # app}}</translation> <translation id="1525508553941733066">IGNORA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistente (caricamento…)</translation> <translation id="1838895407229022812">Luminosità notturna non attiva.</translation> <translation id="1850504506766569011">Wi-Fi non attivo.</translation> +<translation id="1859889070386344428">Off</translation> <translation id="1864454756846565995">Dispositivo USB-C (porta posteriore)</translation> <translation id="1882897271359938046">Mirroring su <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Sblocca con l'impronta digitale</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Tasti permanenti</translation> <translation id="2509468283778169019">BLOC MAIUSC è attivo</translation> <translation id="2517825809102302935">Disattiva per stanotte</translation> +<translation id="2519465031217098801">On</translation> <translation id="2542089167727451762">Tocca la tua immagine del profilo</translation> <translation id="255671100581129685">L'Assistente Google non è disponibile in una sessione pubblica.</translation> <translation id="256712445991462162">la lente d'ingrandimento ancorata</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Connessione a: <ph name="NAME" /></translation> <translation id="394485226368336402">Impostazioni audio</translation> <translation id="3962859241508114581">Traccia precedente</translation> +<translation id="3965097803111112935">Off</translation> <translation id="397105322502079400">Calcolo in corso...</translation> <translation id="3977512764614765090">Percentuale di carica della batteria: <ph name="PERCENTAGE" />%. La batteria è in carica.</translation> <translation id="3995138139523574647">Dispositivo USB-C (porta posteriore destra)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Evidenzia il cursore di testo</translation> <translation id="5222676887888702881">Esci</translation> <translation id="523505283826916779">Impostazioni di accessibilità</translation> +<translation id="5250225880026334010">Off</translation> <translation id="5260676007519551770">Scrivania 4</translation> <translation id="5283198616748585639">Aggiungi 1 min</translation> <translation id="5286194356314741248">Ricerca</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">Il dispositivo Bluetooth "<ph name="DEVICE_NAME" />" chiede l'autorizzazione per essere accoppiato. Inserisci questa passkey sul dispositivo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Password</translation> <translation id="6665545700722362599">Concedere a siti web, app ed estensioni l'autorizzazione a utilizzare i servizi di geolocalizzazione, il microfono del dispositivo, la fotocamera o altre funzioni.</translation> +<translation id="6669268301501499730">On</translation> <translation id="6670153871843998651">Scrivania 3</translation> <translation id="6691659475504239918">Tasto per la ricerca + MAIUSC + H</translation> <translation id="6696025732084565524">La tastiera rimovibile richiede un aggiornamento critico</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index fc75e62..64e2e71 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">צלילים מושתקים.</translation> <translation id="1467432559032391204">שמאלה</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">מופעל</translation> <translation id="1516740043221086139">מצב 'נא לא להפריע' מופעל.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{צפייה בהגדרות של הודעות. ההודעות מושבתות באפליקציה אחת}two{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}many{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}other{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}}</translation> <translation id="1525508553941733066">סגור</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistant (בטעינה...)</translation> <translation id="1838895407229022812">תאורת הלילה כבויה.</translation> <translation id="1850504506766569011">Wi-Fi כבוי.</translation> +<translation id="1859889070386344428">כבוי</translation> <translation id="1864454756846565995">מכשיר עם יציאת USB-C (יציאה אחורית)</translation> <translation id="1882897271359938046">משקף אל <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">ביטול נעילה עם טביעת אצבע</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">מקשים דביקים</translation> <translation id="2509468283778169019">CAPS LOCK מופעל</translation> <translation id="2517825809102302935">כיבוי תאורת הלילה ללילה זה</translation> +<translation id="2519465031217098801">מופעל</translation> <translation id="2542089167727451762">יש להקיש על תמונת הפרופיל</translation> <translation id="255671100581129685">Google Assistant אינו זמין בסשן ציבורי.</translation> <translation id="256712445991462162">הזכוכית המגדלת שהוצמדה</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">מתחבר אל: <ph name="NAME" /></translation> <translation id="394485226368336402">הגדרות אודיו</translation> <translation id="3962859241508114581">הטראק הקודם</translation> +<translation id="3965097803111112935">כבוי</translation> <translation id="397105322502079400">מחשב...</translation> <translation id="3977512764614765090">שיעור הטעינה של הסוללה הוא <ph name="PERCENTAGE" />% והטעינה נמשכת.</translation> <translation id="3995138139523574647">מכשיר עם יציאת USB-C (יציאה ימנית-אחורית)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">הדגשה של סמן הטקסט</translation> <translation id="5222676887888702881">יציאה</translation> <translation id="523505283826916779">הגדרות נגישות</translation> +<translation id="5250225880026334010">כבוי</translation> <translation id="5260676007519551770">שולחן עבודה 4</translation> <translation id="5283198616748585639">הוספת דקה</translation> <translation id="5286194356314741248">סורק</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">מכשיר ה-Bluetooth "<ph name="DEVICE_NAME" />" מבקש הרשאה לביצוע התאמה. הזן את מפתח הסיסמה הבא במכשיר הזה: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">סיסמה</translation> <translation id="6665545700722362599">הענקת הרשאה לאתרים, לאפליקציות ולתוספים להשתמש בשירותי המיקום, במיקרופון של המכשיר, במצלמה או בתכונות אחרות.</translation> +<translation id="6669268301501499730">מופעל</translation> <translation id="6670153871843998651">שולחן עבודה 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">המקלדת הניתנת לניתוק זקוקה לעדכון קריטי</translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index 933cc46..5f3c48e2 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">ხმა დადუმებულია.</translation> <translation id="1467432559032391204">მარცხენა</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">ჩართული</translation> <translation id="1516740043221086139">„არ შემაწუხოთ“ ჩართულია.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{შეტყობინების პარამეტრების ჩვენება. შეტყობინებები გამორთულია აპისთვის}other{შეტყობინების პარამეტრების ჩვენება. შეტყობინებები გამორთულია # აპისთვის}}</translation> <translation id="1525508553941733066">დახურვა</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">ასისტენტი (იტვირთება...)</translation> <translation id="1838895407229022812">ღამის განათება გამორთულია.</translation> <translation id="1850504506766569011">Wi-Fi გამორთულია.</translation> +<translation id="1859889070386344428">გამორთული</translation> <translation id="1864454756846565995">USB-C მოწყობილობა (უკანა პორტი)</translation> <translation id="1882897271359938046">გამოსახვა <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">თითის ანაბეჭდით განბლოკვა</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">კლავიშების ფიქსაცია</translation> <translation id="2509468283778169019">CAPS LOCK ჩართულია</translation> <translation id="2517825809102302935">ამაღამ გამორთვა</translation> +<translation id="2519465031217098801">ჩართული</translation> <translation id="2542089167727451762">შეეხეთ თქვენს პროფილის სურათს</translation> <translation id="255671100581129685">Google ასისტენტი მიუწვდომელია საჯარო სესიაში.</translation> <translation id="256712445991462162">ჩამაგრებული ლუპა</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627"><ph name="NAME" />-თან დაკავშირება</translation> <translation id="394485226368336402">აუდიოს პარამეტრები</translation> <translation id="3962859241508114581">წინა ჩანაწერი</translation> +<translation id="3965097803111112935">გამორთული</translation> <translation id="397105322502079400">ანგარიშობს…</translation> <translation id="3977512764614765090">ბატარეის დონეა <ph name="PERCENTAGE" />% და იტენება.</translation> <translation id="3995138139523574647">USB-C მოწყობილობა (მარჯვენა უკანა პორტი)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">ტექსტის კურსორის გამოყოფა</translation> <translation id="5222676887888702881">გამოსვლა</translation> <translation id="523505283826916779">მარტივი წვდომის პარამეტრები</translation> +<translation id="5250225880026334010">გამორთული</translation> <translation id="5260676007519551770">დესკტოპი 4</translation> <translation id="5283198616748585639">1 წუთის დამატება</translation> <translation id="5286194356314741248">მიმდინარეობს სკანირება</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth მოწყობილობა „<ph name="DEVICE_NAME" />“ მოითხოვს დაწყვილების ნებართვას. შეიყვანეთ ეს საიდუმლო ფრაზა მოწყობილობაში: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">პაროლი</translation> <translation id="6665545700722362599">ვებსაიტებისთვის, აპებისთვის და გაფართოებებისთვის მდებარეობის სერვისების, მოწყობილობის მიკროფონის, კამერისა თუ სხვა ფუნქციების გამოყენების დაშვება</translation> +<translation id="6669268301501499730">ჩართული</translation> <translation id="6670153871843998651">დესკტოპი 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">თქვენი განცალკევებადი კლავიატურა საჭიროებს კრიტიკულ განახლებას</translation>
diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb index 36aa867..08289f9 100644 --- a/ash/strings/ash_strings_ky.xtb +++ b/ash/strings/ash_strings_ky.xtb
@@ -86,7 +86,7 @@ <translation id="1993072747612765854"><ph name="SYSTEM_APP_NAME" /> колдонмосундагы жаңыртуу жөнүндө кененирээк маалымат алуу</translation> <translation id="1995660704900986789">Өчүрүү</translation> <translation id="2012624427112548395">Ctrl+Search+H</translation> -<translation id="2016340657076538683">Билдирүүнү териңиз</translation> +<translation id="2016340657076538683">Бир нерсе деп жазыңыз</translation> <translation id="2050339315714019657">Тигинен</translation> <translation id="2067602449040652523">Баскычтоптун жарыктыгы</translation> <translation id="209965399369889474">Тармакка туташпай турат</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 60945bd..8832a83 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Garsumas nutildytas.</translation> <translation id="1467432559032391204">Kairė</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI / DP)</translation> +<translation id="1508507608940204251">Įjungta</translation> <translation id="1516740043221086139">Netrukdymo režimas įjungtas.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Rodyti pranešimų nustatymus. Programos pranešimai išjungti}one{Rodyti pranešimų nustatymus. # programos pranešimai išjungti}few{Rodyti pranešimų nustatymus. # programų pranešimai išjungti}many{Rodyti pranešimų nustatymus. # programos pranešimai išjungti}other{Rodyti pranešimų nustatymus. # programų pranešimai išjungti}}</translation> <translation id="1525508553941733066">ATSISAKYTI</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Padėjėjas (įkeliama...)</translation> <translation id="1838895407229022812">Nakties šviesa išjungta.</translation> <translation id="1850504506766569011">„Wi-Fi“ ryšys išjungtas.</translation> +<translation id="1859889070386344428">Išjungta</translation> <translation id="1864454756846565995">USB-C įrenginys (prievadas gale)</translation> <translation id="1882897271359938046">Dubliuojama <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Atrakinimas piršto antspaudu</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Fiksuotos pozicijos klavišai</translation> <translation id="2509468283778169019">DIDŽIŲJŲ RAIDŽIŲ RAŠYMAS įjungtas</translation> <translation id="2517825809102302935">Išjungti šiandien</translation> +<translation id="2519465031217098801">Įjungta</translation> <translation id="2542089167727451762">Palieskite profilio vaizdą</translation> <translation id="255671100581129685">„Google“ padėjėjas nepasiekiamas viešoje sesijoje.</translation> <translation id="256712445991462162">prie doko prijungtas didintuvas</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Jungiamasi prie „<ph name="NAME" />“</translation> <translation id="394485226368336402">Garso nustatymai</translation> <translation id="3962859241508114581">Ankstesnis takelis</translation> +<translation id="3965097803111112935">Išjungta</translation> <translation id="397105322502079400">Skaičiuojama...</translation> <translation id="3977512764614765090">Aumuliatoriaus įkrova <ph name="PERCENTAGE" /> % ir jis įkraunamas.</translation> <translation id="3995138139523574647">USB-C įrenginys (prievadas dešinėje, užpakalinėje dalyje)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Paryškinti teksto žymeklį</translation> <translation id="5222676887888702881">Atsijungti</translation> <translation id="523505283826916779">Pasiekiamumo nustatymai</translation> +<translation id="5250225880026334010">Išjungta</translation> <translation id="5260676007519551770">4 pultas</translation> <translation id="5283198616748585639">Pridėti 1 min.</translation> <translation id="5286194356314741248">Nuskaitoma</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">„Bluetooth“ įrenginys „<ph name="DEVICE_NAME" />“ prašo leidimo susieti. Šiame įrenginyje įveskite šį slaptąjį raktą: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Slaptažodis</translation> <translation id="6665545700722362599">Suteikti svetainėms, programoms ir plėtiniams leidimą naudoti Vietovės paslaugas, įrenginio mikrofoną, fotoaparatą ir kitas funkcijas</translation> +<translation id="6669268301501499730">Įjungta</translation> <translation id="6670153871843998651">3 pultas</translation> <translation id="6691659475504239918">Paieškos klavišas + „Shift“ + H</translation> <translation id="6696025732084565524">Atjungiamai klaviatūrai reikia pritaikyti kritinį naujinį</translation>
diff --git a/ash/strings/ash_strings_mk.xtb b/ash/strings/ash_strings_mk.xtb index 31c0a47a..5bad4fb 100644 --- a/ash/strings/ash_strings_mk.xtb +++ b/ash/strings/ash_strings_mk.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Звукот е исклучен.</translation> <translation id="1467432559032391204">Лево</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Вклучено</translation> <translation id="1516740043221086139">„Не вознемирувај“ е вклучено.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Прикажи ги поставките за известувања. Известувањата се исклучени за една апликација}one{Прикажи ги поставките за известувања. Известувањата се исклучени за # апликација}other{Прикажи ги поставките за известувања. Известувањата се исклучени за # апликации}}</translation> <translation id="1525508553941733066">ОТФРЛИ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">„Помошник“ (се вчитува…)</translation> <translation id="1838895407229022812">„Ноќното светло“ е исклучено.</translation> <translation id="1850504506766569011">Wi-Fi е исклучено.</translation> +<translation id="1859889070386344428">Исклучено</translation> <translation id="1864454756846565995">USB-Ц уред (задна порта)</translation> <translation id="1882897271359938046">Отсликување во <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Отклучи со отпечаток</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Лепливи копчиња</translation> <translation id="2509468283778169019">Вклучено е CAPS LOCK</translation> <translation id="2517825809102302935">Исклучи за вечерва</translation> +<translation id="2519465031217098801">Вклучено</translation> <translation id="2542089167727451762">Допрете ја сликата на профилот</translation> <translation id="255671100581129685">„Помошникот на Google“ не е достапен во јавна сесија.</translation> <translation id="256712445991462162">закотвена лупа</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Се поврзува со <ph name="NAME" /></translation> <translation id="394485226368336402">Поставки за аудио</translation> <translation id="3962859241508114581">Претходна песна</translation> +<translation id="3965097803111112935">Исклучено</translation> <translation id="397105322502079400">Се пресметува…</translation> <translation id="3977512764614765090">Батеријата е на <ph name="PERCENTAGE" /> % и се полни.</translation> <translation id="3995138139523574647">USB-Ц уред (задна порта од десна страна)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Нагласи го каретот за текст</translation> <translation id="5222676887888702881">Одјави се</translation> <translation id="523505283826916779">Поставки за пристапност</translation> +<translation id="5250225880026334010">Исклучено</translation> <translation id="5260676007519551770">Биро 4</translation> <translation id="5283198616748585639">Додај 1 мин.</translation> <translation id="5286194356314741248">Скенирање</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">Уредот со Bluetooth „<ph name="DEVICE_NAME" />“ бара дозвола за спарување. Внесете ја пристапната шифра на уредот: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Лозинка</translation> <translation id="6665545700722362599">Им доделува дозволи на веб-сајтовите, апликациите и екстензиите да ги користат услугите според локација или микрофонот, камерата или другите функции на уредот</translation> +<translation id="6669268301501499730">Вклучено</translation> <translation id="6670153871843998651">Биро 3</translation> <translation id="6691659475504239918">„Пребарување“+Shift+H</translation> <translation id="6696025732084565524">Отстранливата тастатура има потреба од важно ажурирање</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 50442cd..99524ae 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Kelantangan diredamkan.</translation> <translation id="1467432559032391204">Kiri</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Hidupkan</translation> <translation id="1516740043221086139">Jangan ganggu dihidupkan.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan untuk satu apl}other{Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan untuk # apl}}</translation> <translation id="1525508553941733066">KETEPIKAN</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Pembantu (memuat...)</translation> <translation id="1838895407229022812">Cahaya Malam dimatikan.</translation> <translation id="1850504506766569011">Wi-Fi dimatikan.</translation> +<translation id="1859889070386344428">Mati</translation> <translation id="1864454756846565995">Peranti USB-C (port belakang)</translation> <translation id="1882897271359938046">Mencerminkan <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Buka kunci dengan cap jari</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Kekunci lekit</translation> <translation id="2509468283778169019">Kekunci CAPS LOCK dihidupkan</translation> <translation id="2517825809102302935">Matikan untuk malam ini</translation> +<translation id="2519465031217098801">Hidupkan</translation> <translation id="2542089167727451762">Ketik imej profil anda</translation> <translation id="255671100581129685">Google Assistant tidak tersedia dalam sesi awam.</translation> <translation id="256712445991462162">penggadang yang didokkan</translation> @@ -226,6 +229,7 @@ <translation id="3901991538546252627">Menyambung ke <ph name="NAME" /></translation> <translation id="394485226368336402">Tetapan audio</translation> <translation id="3962859241508114581">Lagu Sebelumnya</translation> +<translation id="3965097803111112935">Mati</translation> <translation id="397105322502079400">Mengira...</translation> <translation id="3977512764614765090">Kuasa bateri pada tahap <ph name="PERCENTAGE" />% dan sedang dicas.</translation> <translation id="3995138139523574647">Peranti USB-C (port belakang sebelah kanan)</translation> @@ -308,6 +312,7 @@ <translation id="5207949376430453814">Serlahkan karet teks</translation> <translation id="5222676887888702881">Log keluar</translation> <translation id="523505283826916779">Tetapan kebolehcapaian</translation> +<translation id="5250225880026334010">Mati</translation> <translation id="5260676007519551770">Meja 4</translation> <translation id="5283198616748585639">Tambah 1 min</translation> <translation id="5286194356314741248">Mengimbas</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan. Sila masukkan kekunci laluan ini pada peranti tersebut: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Kata laluan</translation> <translation id="6665545700722362599">Berikan kebenaran kepada tapak web, apl dan sambungan untuk menggunakan perkhidmatan lokasi, mikrofon dan kamera peranti atau ciri lain</translation> +<translation id="6669268301501499730">Hidupkan</translation> <translation id="6670153871843998651">Meja 3</translation> <translation id="6691659475504239918">Cari+Shift+H</translation> <translation id="6696025732084565524">Papan kekunci anda yang boleh dicabut memerlukan kemas kini kritikal</translation>
diff --git a/ash/strings/ash_strings_my.xtb b/ash/strings/ash_strings_my.xtb index 0f1bc9a6..b6f2043 100644 --- a/ash/strings/ash_strings_my.xtb +++ b/ash/strings/ash_strings_my.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">အသံ တိတ်ထားသည်။</translation> <translation id="1467432559032391204">ဘယ်</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">ဖွင့်ရန်</translation> <translation id="1516740043221086139">'မနှောင့်ယှက်ရ' ဖွင့်ထားသည်။</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{အကြောင်းကြားချက်ဆက်တင်များကို ပြရန်။ အက်ပ်တစ်ခုအတွက် အကြောင်းကြားချက်များကို ပိတ်ထားသည်}other{အကြောင်းကြားချက်ဆက်တင်များကို ပြရန်။ အက်ပ် # ခုအတွက် အကြောင်းကြားချက်များကို ပိတ်ထားသည်}}</translation> <translation id="1525508553941733066">ပယ်ရန်</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistant (ဖွင့်နေပါသည်...)</translation> <translation id="1838895407229022812">'ညအလင်းရောင်' ပိတ်ထားသည်။</translation> <translation id="1850504506766569011">ကြိုးမဲ့ ပိတ်ထားသည်။</translation> +<translation id="1859889070386344428">ပိတ်ရန်</translation> <translation id="1864454756846565995">USB-C ကိရိယာ (နောက်ဘက် ပို့တ်)</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> သို့ ပုံတူပွားနေ</translation> <translation id="1885785240814121742">လက်ဗွေရာသုံး၍ လော့ခ်ဖွင့်ခြင်း</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Sticky keys</translation> <translation id="2509468283778169019">စာလုံးကြီးရန် သော့ခလုတ် ပွင့်နေ</translation> <translation id="2517825809102302935">ယနေ့ညအတွက် ပိတ်ရန်</translation> +<translation id="2519465031217098801">ဖွင့်ရန်</translation> <translation id="2542089167727451762">သင့်ပရိုဖိုင်ပုံကို တို့ရန်</translation> <translation id="255671100581129685">အများသုံးစက်ရှင်တွင် Google Assistant အသုံးပြု၍ မရပါ။</translation> <translation id="256712445991462162">နေရာချထားသည့် မှန်ဘီလူး</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627"><ph name="NAME" />သို့ ချိတ်ဆက်ေနေ</translation> <translation id="394485226368336402">အသံဆက်တင်များ</translation> <translation id="3962859241508114581">ယခင်တစ်ပုဒ်</translation> +<translation id="3965097803111112935">ပိတ်ရန်</translation> <translation id="397105322502079400">တွက်ချက်နေ...</translation> <translation id="3977512764614765090">ဘက်ထရီသည် <ph name="PERCENTAGE" />% ရှိပြီး အားသွင်းနေပါသည်။</translation> <translation id="3995138139523574647">USB-C ကိရိယာ (ညာဘက် နောက်ပိုင်း ပို့တ်)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">စာရိုက်ထည့်ရန်အကွက်ကို မြင်သာထင်သာဖြစ်အောင်ပြုလုပ်ရန်</translation> <translation id="5222676887888702881">ထွက်ခွာရန်</translation> <translation id="523505283826916779">ရယူသုံးနိုင်မှု ဆက်တင်များ</translation> +<translation id="5250225880026334010">ပိတ်ရန်</translation> <translation id="5260676007519551770">စာရေးခုံ ၄</translation> <translation id="5283198616748585639">၁ မိနစ် တိုးရန်</translation> <translation id="5286194356314741248">ရှာဖွေနေသည်</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">ဘလူးတုသ် ကိရိယာ"<ph name="DEVICE_NAME" />"က ချိတ်တွဲရန် ခွင့်ပြုချက် ရယူလိုသည်။ ကျေးဇူးပြုပြီး ထိုကိရိယာ ထဲသို့ ဒီခွင့်ပြုသော့ ကို ထည့်ပေးပါ: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">စကားဝှက်</translation> <translation id="6665545700722362599">တည်နေရာ ဝန်ဆောင်မှုများ၊ စက်ပစ္စည်း၏ မိုက်ခရိုဖုန်း၊ ကင်မရာ သို့မဟုတ် အခြားဝန်ဆောင်မှုများကို အသုံးပြုရန် ဝဘ်ဆိုက်၊ အက်ပ်နှင့် နောက်ဆက်တွဲများကို ခွင့်ပြုချက်ပေးနိုင်သည်</translation> +<translation id="6669268301501499730">ဖွင့်ရန်</translation> <translation id="6670153871843998651">စာရေးခုံ ၃</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">သင်၏ ဖြုတ်လွယ်တပ်လွယ်ကီးဘုတ်အတွက် အရေးကြီးသည့်အပ်ဒိတ် လိုအပ်နေသည်</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index d025195..282e38a 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Volume is gedempt.</translation> <translation id="1467432559032391204">Links</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Aan</translation> <translation id="1516740043221086139">'Niet storen' is ingeschakeld.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Instellingen voor meldingen weergeven. Meldingen zijn uitgeschakeld voor een app}other{Instellingen voor meldingen weergeven. Meldingen zijn uitgeschakeld voor # apps}}</translation> <translation id="1525508553941733066">SLUITEN</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistent (laden...)</translation> <translation id="1838895407229022812">Nachtverlichting is uitgeschakeld.</translation> <translation id="1850504506766569011">Wifi is uitgeschakeld.</translation> +<translation id="1859889070386344428">Uit</translation> <translation id="1864454756846565995">USB-C-apparaat (poort aan achterkant)</translation> <translation id="1882897271359938046">Spiegelen naar <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Ontgrendelen met vingerafdruk</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Plaktoetsen</translation> <translation id="2509468283778169019">CAPS LOCK is ingeschakeld</translation> <translation id="2517825809102302935">Uitschakelen voor vanavond</translation> +<translation id="2519465031217098801">Aan</translation> <translation id="2542089167727451762">Tik op je profielafbeelding</translation> <translation id="255671100581129685">De Google Assistent is niet beschikbaar in een openbare sessie.</translation> <translation id="256712445991462162">het gedockte vergrootglas</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Verbinding maken met <ph name="NAME" /></translation> <translation id="394485226368336402">Audio-instellingen</translation> <translation id="3962859241508114581">Vorig nummer</translation> +<translation id="3965097803111112935">Uit</translation> <translation id="397105322502079400">Berekenen...</translation> <translation id="3977512764614765090">Batterij op <ph name="PERCENTAGE" />% en wordt opgeladen.</translation> <translation id="3995138139523574647">USB-C-apparaat (poort rechts aan de achterkant)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Tekstcursor markeren</translation> <translation id="5222676887888702881">Uitloggen</translation> <translation id="523505283826916779">Toegankelijkheidsinstellingen</translation> +<translation id="5250225880026334010">Uit</translation> <translation id="5260676007519551770">Bureau 4</translation> <translation id="5283198616748585639">1 min toevoegen</translation> <translation id="5286194356314741248">Scannen</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth-apparaat '<ph name="DEVICE_NAME" />' wil toestemming om te koppelen. Voer de volgende toegangscode in op dat apparaat: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Wachtwoord</translation> <translation id="6665545700722362599">Kies of websites, apps en extensies mogen gebruikmaken van locatieservices of de microfoon, de camera of andere functies van het apparaat</translation> +<translation id="6669268301501499730">Aan</translation> <translation id="6670153871843998651">Bureau 3</translation> <translation id="6691659475504239918">Zoeken+Shift+H</translation> <translation id="6696025732084565524">Je afneembare toetsenbord heeft een essentiële update nodig</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 66188e76..9701447 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Dźwięk jest wyciszony.</translation> <translation id="1467432559032391204">W lewo</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Włączono</translation> <translation id="1516740043221086139">Tryb Nie przeszkadzać jest włączony.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Pokaż ustawienia powiadomień. Jedna aplikacja ma wyłączone powiadomienia.}few{Pokaż ustawienia powiadomień. # aplikacje mają wyłączone powiadomienia.}many{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}other{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}}</translation> <translation id="1525508553941733066">ZAMKNIJ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Asystent (ładuję…)</translation> <translation id="1838895407229022812">Podświetlenie nocne jest wyłączone.</translation> <translation id="1850504506766569011">Wi-Fi wyłączone.</translation> +<translation id="1859889070386344428">Wyłączono</translation> <translation id="1864454756846565995">Urządzenie USB-C (tylny port)</translation> <translation id="1882897271359938046">Kopia na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Odblokuj odciskiem palca</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Klawisze trwałe</translation> <translation id="2509468283778169019">CAPS LOCK jest włączony.</translation> <translation id="2517825809102302935">Dzisiaj wyłącz</translation> +<translation id="2519465031217098801">Włączono</translation> <translation id="2542089167727451762">Kliknij swoje zdjęcie profilowe</translation> <translation id="255671100581129685">Asystent Google jest niedostępny w sesji publicznej.</translation> <translation id="256712445991462162">Lupa zadokowana</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Łączę z: <ph name="NAME" /></translation> <translation id="394485226368336402">Ustawienia dźwięku</translation> <translation id="3962859241508114581">Poprzedni utwór</translation> +<translation id="3965097803111112935">Wyłączono</translation> <translation id="397105322502079400">Obliczanie...</translation> <translation id="3977512764614765090">Naładowanie baterii: <ph name="PERCENTAGE" />%. Trwa ładowanie.</translation> <translation id="3995138139523574647">Urządzenie USB-C (tylny port na prawym boku)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Podświetlaj kursor tekstu</translation> <translation id="5222676887888702881">Wyloguj się</translation> <translation id="523505283826916779">Ustawienia ułatwień dostępu</translation> +<translation id="5250225880026334010">Wyłączono</translation> <translation id="5260676007519551770">Biurko 4</translation> <translation id="5283198616748585639">Dodaj 1 min</translation> <translation id="5286194356314741248">Skanowanie</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Urządzenie Bluetooth „<ph name="DEVICE_NAME" />” chce się sparować. Wpisz na nim ten klucz: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Hasło</translation> <translation id="6665545700722362599">przyznawać stronom internetowym, aplikacjom i rozszerzeniom dostęp do usług lokalizacyjnych, mikrofonu bądź aparatu na urządzeniu lub do innych funkcji;</translation> +<translation id="6669268301501499730">Włączono</translation> <translation id="6670153871843998651">Biurko 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Odłączana klawiatura wymaga krytycznej aktualizacji</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index aabb936..6f031574 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">O som está desativado.</translation> <translation id="1467432559032391204">À esquerda</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Ativado</translation> <translation id="1516740043221086139">O "Não perturbe" está ativado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar configurações de notificação. As notificações estão desativadas para um app}one{Mostrar configurações de notificação. As notificações estão desativadas para # app}other{Mostrar configurações de notificação. As notificações estão desativadas para # apps}}</translation> <translation id="1525508553941733066">DISPENSAR</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistente (carregando…)</translation> <translation id="1838895407229022812">O Modo noturno está desativado.</translation> <translation id="1850504506766569011">O Wi-Fi está desligado.</translation> +<translation id="1859889070386344428">Desativado</translation> <translation id="1864454756846565995">Dispositivo USB-C (porta traseira)</translation> <translation id="1882897271359938046">Espelhamento de <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloqueio com impressão digital</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Teclas aderentes</translation> <translation id="2509468283778169019">CAPS LOCK está ativado</translation> <translation id="2517825809102302935">Desativar esta noite</translation> +<translation id="2519465031217098801">Ativado</translation> <translation id="2542089167727451762">Toque na imagem do seu perfil</translation> <translation id="255671100581129685">O Google Assistente não está disponível para uma sessão pública.</translation> <translation id="256712445991462162">a lupa em área fixa</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Conectando-se a <ph name="NAME" /></translation> <translation id="394485226368336402">Configurações de áudio</translation> <translation id="3962859241508114581">Faixa anterior</translation> +<translation id="3965097803111112935">Desativado</translation> <translation id="397105322502079400">Calculando...</translation> <translation id="3977512764614765090">Bateria em <ph name="PERCENTAGE" />% e carregando.</translation> <translation id="3995138139523574647">Dispositivo USB-C (porta traseira da direita)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Destacar cursor de texto</translation> <translation id="5222676887888702881">Sair</translation> <translation id="523505283826916779">Configurações de acessibilidade</translation> +<translation id="5250225880026334010">Desativado</translation> <translation id="5260676007519551770">Área de trabalho 4</translation> <translation id="5283198616748585639">Adicionar 1 min</translation> <translation id="5286194356314741248">Verificando</translation> @@ -409,6 +414,7 @@ <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" deseja permissão para realizar o pareamento. Digite esta senha no dispositivo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Senha</translation> <translation id="6665545700722362599">conceder aos sites, apps e extensões permissão para usar serviços de localização, microfone, câmera ou outros recursos do dispositivo;</translation> +<translation id="6669268301501499730">Ativado</translation> <translation id="6670153871843998651">Área de trabalho 3</translation> <translation id="6691659475504239918">Pesquisa+Shift+H</translation> <translation id="6696025732084565524">Seu teclado removível precisa de uma atualização crítica</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 952a5f9..d0ad30a 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">O volume está desativado.</translation> <translation id="1467432559032391204">Esquerda</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Ativado</translation> <translation id="1516740043221086139">O modo Não incomodar está ativado.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Mostrar definições de notificação. As notificações estão desativadas para uma aplicação}other{Mostrar definições de notificação. As notificações estão desativadas para # aplicações}}</translation> <translation id="1525508553941733066">IGNORAR</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistente (a carregar...)</translation> <translation id="1838895407229022812">A Luz noturna está desativada.</translation> <translation id="1850504506766569011">A ligação Wi-Fi está desativada.</translation> +<translation id="1859889070386344428">Desativado</translation> <translation id="1864454756846565995">Dispositivo USB-C (porta traseira)</translation> <translation id="1882897271359938046">A espelhar para <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloquear com impressão digital</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Teclas aderentes</translation> <translation id="2509468283778169019">CAPS LOCK está ativado</translation> <translation id="2517825809102302935">Desativar para hoje à noite</translation> +<translation id="2519465031217098801">Ativado</translation> <translation id="2542089167727451762">Toque na imagem do perfil.</translation> <translation id="255671100581129685">O Assistente Google não está disponível para sessões públicas.</translation> <translation id="256712445991462162">a lupa ancorada</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">A ligar a <ph name="NAME" /></translation> <translation id="394485226368336402">Definições de áudio</translation> <translation id="3962859241508114581">Faixa anterior</translation> +<translation id="3965097803111112935">Desativado</translation> <translation id="397105322502079400">A calcular...</translation> <translation id="3977512764614765090">A bateria está <ph name="PERCENTAGE" />% cheia e a carregar.</translation> <translation id="3995138139523574647">Dispositivo USB-C (porta traseira do lado direito)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Realçar cursor do texto</translation> <translation id="5222676887888702881">Terminar sessão</translation> <translation id="523505283826916779">Definições de acessibilidade</translation> +<translation id="5250225880026334010">Desativado</translation> <translation id="5260676007519551770">Secretária 4</translation> <translation id="5283198616748585639">Adicionar 1 min</translation> <translation id="5286194356314741248">A procurar</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" necessita de autorização para sincronizar. Introduza esta chave nesse dispositivo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Palavra-passe</translation> <translation id="6665545700722362599">Conceda aos Websites, às aplicações e às extensões autorização para utilizar os Serviços de localização, o microfone, a câmara ou outras funcionalidades do dispositivo.</translation> +<translation id="6669268301501499730">Ativado</translation> <translation id="6670153871843998651">Secretária 3</translation> <translation id="6691659475504239918">Pesquisa + Shift + H</translation> <translation id="6696025732084565524">O teclado amovível necessita de uma atualização crítica</translation>
diff --git a/ash/strings/ash_strings_si.xtb b/ash/strings/ash_strings_si.xtb index c72c9981..ea3f1e09 100644 --- a/ash/strings/ash_strings_si.xtb +++ b/ash/strings/ash_strings_si.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">හඬ නිහඬයි.</translation> <translation id="1467432559032391204">වම</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">සක්රීය</translation> <translation id="1516740043221086139">'බාධා නොකරන්න' සක්රීයයි.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{දැනුම් දීම් සැකසීම් පෙන්වන්න. යෙදුමක් සඳහා දැනුම්දීම් ක්රියාවිරහිතයි}one{දැනුම් දීම් සැකසීම් පෙන්වන්න. යෙදුම් # ක් සඳහා දැනුම්දීම් ක්රියාවිරහිතයි}other{දැනුම් දීම් සැකසීම් පෙන්වන්න. යෙදුම් # ක් සඳහා දැනුම්දීම් ක්රියාවිරහිතයි}}</translation> <translation id="1525508553941733066">ඉවත් කරන්න</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">සහායක (පූරණය වේ...)</translation> <translation id="1838895407229022812">රාත්රී ආලෝකය අක්රියයි.</translation> <translation id="1850504506766569011">Wi-Fi අක්රීය කර ඇත.</translation> +<translation id="1859889070386344428">අක්රිය</translation> <translation id="1864454756846565995">USB-C උපාංගය (පසුපස තොට)</translation> <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> වෙත කැඩපත් කරයි</translation> <translation id="1885785240814121742">ඇඟිලි සලකුණින් අගුළු හරින්න</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">ඇලෙන යතුරු</translation> <translation id="2509468283778169019">කැප්ස් ලොක් සක්රීයයි</translation> <translation id="2517825809102302935">අද රෑ සඳහා ක්රියාවිරහිත කරන්න</translation> +<translation id="2519465031217098801">සක්රීය</translation> <translation id="2542089167727451762">ඔබේ පැතිකඩ රූපයට තට්ටු කරන්න</translation> <translation id="255671100581129685">ප්රසිද්ධ සැසියකදී Google සහකරු නොලැබේ.</translation> <translation id="256712445991462162">ඩොක් කළ විශාලකය</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627"><ph name="NAME" /> වෙත සබඳ වෙමින්</translation> <translation id="394485226368336402">ශ්රව්ය සැකසීම්</translation> <translation id="3962859241508114581">පෙර ඛණ්ඩය</translation> +<translation id="3965097803111112935">අක්රිය</translation> <translation id="397105322502079400">ගණනය කරමින්...</translation> <translation id="3977512764614765090">බැටරිය <ph name="PERCENTAGE" />% කි, ආරෝපණ කෙරේ.</translation> <translation id="3995138139523574647">USB-C උපාංගය (දකුණුපස පසු තොට)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">පෙළ කාකපාදය උද්දීපනය කරන්න</translation> <translation id="5222676887888702881">පිටවීම</translation> <translation id="523505283826916779">ප්රවේශ්යතා පසුතල</translation> +<translation id="5250225880026334010">අක්රිය</translation> <translation id="5260676007519551770">4 වෙනි මේසය</translation> <translation id="5283198616748585639">1 විනාඩියක් එක් කරන්න</translation> <translation id="5286194356314741248">ස්කෑන් කිරීම</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">යුගලගත වීමට "<ph name="DEVICE_NAME" />" අවසර ඉල්ලා සිටිනු ඇත. උපකරණයේ මෙම රහස් යතුර ඇතුළු කරන්න: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">මුරපදය</translation> <translation id="6665545700722362599">වෙබ් අඩවිවලට, යෙදුම්වලට සහ දිගුවලට ස්ථාන සේවා, උපාංගයේ මයික්රොෆෝනය, කැමරාව හෝ වෙනත් විශේෂාංග භාවිතා කිරීමට අවසරය දෙන්න</translation> +<translation id="6669268301501499730">සක්රීය</translation> <translation id="6670153871843998651">3 වෙනි මේසය</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">ඔබේ ගැලවීමට හැකි යතුරු පුවරුවට අවදානම් යාවත්කාලීනයක් අවශ්යයි</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index d053304..b884263 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Звук је искључен.</translation> <translation id="1467432559032391204">Улево</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Укључено</translation> <translation id="1516740043221086139">Режим Не узнемиравај је укључен.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Прегледајте подешавања обавештења. Обавештења су искључена за једну апликацију}one{Прегледајте подешавања обавештења. Обавештења су искључена за # апликацију}few{Прегледајте подешавања обавештења. Обавештења су искључена за # апликације}other{Прегледајте подешавања обавештења. Обавештења су искључена за # апликација}}</translation> <translation id="1525508553941733066">ОДБАЦИ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Помоћник (учитава се...)</translation> <translation id="1838895407229022812">Ноћно светло је искључено.</translation> <translation id="1850504506766569011">Wi-Fi је искључен.</translation> +<translation id="1859889070386344428">Искључено</translation> <translation id="1864454756846565995">Уређај са USB прикључком типа C (задњи порт)</translation> <translation id="1882897271359938046">Пресликавање у <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Откључајте отиском прста</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Лепљиви тастери</translation> <translation id="2509468283778169019">CAPS LOCK је укључен</translation> <translation id="2517825809102302935">Искључи вечерас</translation> +<translation id="2519465031217098801">Укључено</translation> <translation id="2542089167727451762">Додирните слику профила</translation> <translation id="255671100581129685">Google помоћник није доступан у јавној сесији.</translation> <translation id="256712445991462162">монтирана лупа екрана</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Повезивање са мрежом <ph name="NAME" /></translation> <translation id="394485226368336402">Подешавања звука</translation> <translation id="3962859241508114581">Претходна песма</translation> +<translation id="3965097803111112935">Искључено</translation> <translation id="397105322502079400">Израчунавање...</translation> <translation id="3977512764614765090">Батерија је на <ph name="PERCENTAGE" />% и пуни се.</translation> <translation id="3995138139523574647">Уређај са USB прикључком типа C (десни задњи порт)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Истакни курсор за текст</translation> <translation id="5222676887888702881">Одјави ме</translation> <translation id="523505283826916779">Подешавања приступачности</translation> +<translation id="5250225880026334010">Искључено</translation> <translation id="5260676007519551770">Радна површина 4</translation> <translation id="5283198616748585639">Додај 1 мин</translation> <translation id="5286194356314741248">Скенирање</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth уређај „<ph name="DEVICE_NAME" />“ жели дозволу за упаривање. Унесите ову шифру на том уређају: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Лозинка</translation> <translation id="6665545700722362599">Дозволите веб-сајтовима, апликацијама и додацима да користе услуге локације или микрофон, камеру или друге функције уређаја</translation> +<translation id="6669268301501499730">Укључено</translation> <translation id="6670153871843998651">Радна површина 3</translation> <translation id="6691659475504239918">Тастер за претрагу + Shift + H</translation> <translation id="6696025732084565524">Треба да инсталирате важно ажурирање за одвојиву тастатуру</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index 83f8fd2..ff10d46 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Ljudet är av.</translation> <translation id="1467432559032391204">Vänster</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">På</translation> <translation id="1516740043221086139">Stör ej har aktiverats.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Visa aviseringsinställningar. Aviseringar har inaktiverats för 1 app}other{Visa aviseringsinställningar. Aviseringar har inaktiverats för # appar}}</translation> <translation id="1525508553941733066">IGNORERA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Assistent (läses in …)</translation> <translation id="1838895407229022812">Nattljus är inaktiverat.</translation> <translation id="1850504506766569011">Wi-Fi är inaktiverat.</translation> +<translation id="1859889070386344428">Av</translation> <translation id="1864454756846565995">USB-C-enhet (bakre port)</translation> <translation id="1882897271359938046">Spegling av <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Lås upp med fingeravtryck</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Tröga tangenter</translation> <translation id="2509468283778169019">CAPS LOCK är på</translation> <translation id="2517825809102302935">Stäng av för i kväll</translation> +<translation id="2519465031217098801">På</translation> <translation id="2542089167727451762">Tryck på profilbilden</translation> <translation id="255671100581129685">Google-assistenten är inte tillgänglig i en offentlig session.</translation> <translation id="256712445991462162">den dockade skärmförstoraren</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Ansluter till <ph name="NAME" /></translation> <translation id="394485226368336402">Ljudinställningar</translation> <translation id="3962859241508114581">Föregående spår</translation> +<translation id="3965097803111112935">Av</translation> <translation id="397105322502079400">Beräknar ...</translation> <translation id="3977512764614765090">Batterinivån är på <ph name="PERCENTAGE" /> % och batteriet laddas.</translation> <translation id="3995138139523574647">USB-C-enhet (bakre porten på högra sidan)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Markera textmarkören</translation> <translation id="5222676887888702881">Logga ut</translation> <translation id="523505283826916779">Inställningar för tillgänglighet</translation> +<translation id="5250225880026334010">Av</translation> <translation id="5260676007519551770">Skrivbord 4</translation> <translation id="5283198616748585639">Lägg till en min</translation> <translation id="5286194356314741248">Skannar</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Bluetooth-enheten <ph name="DEVICE_NAME" /> har begärt tillstånd för koppling. Ange denna lösenordsnyckel på den enheten: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Lösenord</translation> <translation id="6665545700722362599">Ge webbplatser, appar och tillägg behörighet att använda platstjänster, enhetens mikrofon, kamera eller andra funktioner</translation> +<translation id="6669268301501499730">På</translation> <translation id="6670153871843998651">Skrivbord 3</translation> <translation id="6691659475504239918">Sök+Skift+H</translation> <translation id="6696025732084565524">Det behövs en viktig uppdatering till ditt frånkopplingsbara tangentbord</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 8b32d9b9..048acbb7 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Umezima sauti.</translation> <translation id="1467432559032391204">Kushoto</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Imewashwa</translation> <translation id="1516740043221086139">Hali ya 'Usinisumbue' imewashwa</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Onyesha mipangilio ya arifa. Umezima arifa katika programu moja}other{Onyesha mipangilio ya arifa. Umezima arifa katika programu #}}</translation> <translation id="1525508553941733066">ONDOA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Mratibu (inapakia...)</translation> <translation id="1838895407229022812">Umezima Mwanga wa Usiku.</translation> <translation id="1850504506766569011">Wi-Fi imezimwa.</translation> +<translation id="1859889070386344428">Imezimwa</translation> <translation id="1864454756846565995">Kifaa cha USB-C (mlango wa nyuma)</translation> <translation id="1882897271359938046">Inaakisi kwenye <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Tumia alama ya kidole kufungua</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Vitufe vya kusalia kwa muda</translation> <translation id="2509468283778169019">Caps Lock imewashwa.</translation> <translation id="2517825809102302935">Zima leo usiku</translation> +<translation id="2519465031217098801">Imewashwa</translation> <translation id="2542089167727451762">Gusa picha yako ya wasifu</translation> <translation id="255671100581129685">Programu ya Mratibu wa Google haipatikani katika kipindi cha umma.</translation> <translation id="256712445991462162">kikuzaji kilichoambatishwa</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Inaunganisha kwenye <ph name="NAME" /></translation> <translation id="394485226368336402">Mipangilio ya sauti</translation> <translation id="3962859241508114581">Wimbo Uliotangulia</translation> +<translation id="3965097803111112935">Imezimwa</translation> <translation id="397105322502079400">Inakokotoa...</translation> <translation id="3977512764614765090">Chaji ya betri ni <ph name="PERCENTAGE" />% na inaendelea kuchaji.</translation> <translation id="3995138139523574647">Kifaa cha USB-C (mlango wa upande wa kulia nyuma)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Angazia kareti ya maandishi</translation> <translation id="5222676887888702881">Ondoka</translation> <translation id="523505283826916779">Mipangilio ya ufikiaji</translation> +<translation id="5250225880026334010">Imezimwa</translation> <translation id="5260676007519551770">Eneokazi la 4</translation> <translation id="5283198616748585639">Ongeza dakika 1</translation> <translation id="5286194356314741248">Inachanganua</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Kifaa cha Bluetooth cha "<ph name="DEVICE_NAME" />" kinaomba idhini ya kuoanisha. Tafadhali weka nenosiri hili kwenye kifaa hicho: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Nenosiri</translation> <translation id="6665545700722362599">Zipe tovuti, programu na viendelezi ruhusa za kutumia huduma za mahali, maikrofoni, kamera na vipengele vingine vya kifaa</translation> +<translation id="6669268301501499730">Imewashwa</translation> <translation id="6670153871843998651">Eneokazi la 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Kibodi unayoweza kutenganisha inahitaji sasisho muhimu</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index c71a033..8cc2b39 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Гучність вимкнено.</translation> <translation id="1467432559032391204">Ліворуч</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Увімкнено</translation> <translation id="1516740043221086139">Режим "Не турбувати" ввімкнено.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Показати налаштування сповіщень. Сповіщення вимкнено для додатка}one{Показати налаштування сповіщень. Сповіщення вимкнено для # додатка}few{Показати налаштування сповіщень. Сповіщення вимкнено для # додатків}many{Показати налаштування сповіщень. Сповіщення вимкнено для # додатків}other{Показати налаштування сповіщень. Сповіщення вимкнено для # додатка}}</translation> <translation id="1525508553941733066">ЗАКРИТИ</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Асистент (завантаження…)</translation> <translation id="1838895407229022812">Нічний режим вимкнено.</translation> <translation id="1850504506766569011">Wi-Fi вимкнено.</translation> +<translation id="1859889070386344428">Вимкнено</translation> <translation id="1864454756846565995">Пристрій із портом USB типу C (на задній панелі)</translation> <translation id="1882897271359938046">Дзеркалювання на <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Розблоковуйте відбитком пальця</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Залипання клавіш</translation> <translation id="2509468283778169019">Режим CAPS LOCK увімкнено</translation> <translation id="2517825809102302935">Вимкнути на сьогодні</translation> +<translation id="2519465031217098801">Увімкнено</translation> <translation id="2542089167727451762">Натисніть зображення профілю</translation> <translation id="255671100581129685">Google Асистент недоступний у сеансі для всіх.</translation> <translation id="256712445991462162">закріплену лупу</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Під’єднання до <ph name="NAME" /></translation> <translation id="394485226368336402">Налаштування звуку</translation> <translation id="3962859241508114581">Попередня композиція</translation> +<translation id="3965097803111112935">Вимкнено</translation> <translation id="397105322502079400">Обчислення...</translation> <translation id="3977512764614765090">Акумулятор заряджений на <ph name="PERCENTAGE" />% і продовжує заряджатися.</translation> <translation id="3995138139523574647">пристрій, під’єднаний до порту USB-C (праворуч на задній панелі)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Підсвічувати місце введення тексту</translation> <translation id="5222676887888702881">Вийти</translation> <translation id="523505283826916779">Налаштування доступності</translation> +<translation id="5250225880026334010">Вимкнено</translation> <translation id="5260676007519551770">Робочий стіл 4</translation> <translation id="5283198616748585639">Додати 1 хв</translation> <translation id="5286194356314741248">Сканування</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Пристрою Bluetooth "<ph name="DEVICE_NAME" />" потрібен дозвіл на підключення. Введіть на пристрої цей ключ доступу: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Пароль</translation> <translation id="6665545700722362599">надавати веб-сайтам, додаткам і розширенням дозвіл використовувати служби локації, мікрофон, камеру й інші функції пристрою;</translation> +<translation id="6669268301501499730">Увімкнено</translation> <translation id="6670153871843998651">Робочий стіл 3</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Змінну клавіатуру потрібно оновити</translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 7f4714e..4e11a64 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">音量校咗靜音。</translation> <translation id="1467432559032391204">向左</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">開啟</translation> <translation id="1516740043221086139">「請勿騷擾」模式已開啟。</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{顯示通知設定。已關閉 1 個應用程式的通知}other{顯示通知設定。已關閉 # 個應用程式的通知}}</translation> <translation id="1525508553941733066">關閉</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">小幫手 (正在載入…)</translation> <translation id="1838895407229022812">「夜燈模式」已關閉。</translation> <translation id="1850504506766569011">Wi-Fi 已關閉。</translation> +<translation id="1859889070386344428">關閉</translation> <translation id="1864454756846565995">USB-C 裝置 (後方連接埠)</translation> <translation id="1882897271359938046">正在建立<ph name="DISPLAY_NAME" />鏡像</translation> <translation id="1885785240814121742">使用指紋解鎖</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">相黏鍵</translation> <translation id="2509468283778169019">大寫鍵已啟用</translation> <translation id="2517825809102302935">今晚關閉</translation> +<translation id="2519465031217098801">開啟</translation> <translation id="2542089167727451762">輕按您的個人檔案圖片</translation> <translation id="255671100581129685">「Google 助理」不適用於公開工作階段。</translation> <translation id="256712445991462162">固定的放大鏡</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">正在連線至 <ph name="NAME" /></translation> <translation id="394485226368336402">音訊設定</translation> <translation id="3962859241508114581">上一首曲目</translation> +<translation id="3965097803111112935">關閉</translation> <translation id="397105322502079400">計算中…</translation> <translation id="3977512764614765090">電量有 <ph name="PERCENTAGE" />%,宜家差緊電。</translation> <translation id="3995138139523574647">USB-C 裝置 (右側後方連接埠)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">突顯文字插入符號</translation> <translation id="5222676887888702881">登出</translation> <translation id="523505283826916779">協助工具設定</translation> +<translation id="5250225880026334010">關閉</translation> <translation id="5260676007519551770">桌面 4</translation> <translation id="5283198616748585639">增加 1 分鐘</translation> <translation id="5286194356314741248">掃描中</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限,請在裝置上輸入這個密碼金鑰:<ph name="PASSKEY" /></translation> <translation id="6657585470893396449">密碼</translation> <translation id="6665545700722362599">授予網站、應用程式和擴充程式使用定位服務,或裝置的麥克風、相機或其他功能的權限</translation> +<translation id="6669268301501499730">開啟</translation> <translation id="6670153871843998651">桌面 3</translation> <translation id="6691659475504239918">Search+Shift+H 鍵</translation> <translation id="6696025732084565524">您的拆除式鍵盤需執行重要更新</translation>
diff --git a/ash/strings/ash_strings_zu.xtb b/ash/strings/ash_strings_zu.xtb index b2877984..bc0397d 100644 --- a/ash/strings/ash_strings_zu.xtb +++ b/ash/strings/ash_strings_zu.xtb
@@ -46,6 +46,7 @@ <translation id="1460620680449458626">Ivolumu ithulisiwe.</translation> <translation id="1467432559032391204">Kwesobunxele</translation> <translation id="1484102317210609525">I-<ph name="DEVICE_NAME" /> (HDMI/DP)</translation> +<translation id="1508507608940204251">Vuliwe</translation> <translation id="1516740043221086139">Ukungaphazamisi kuvuliwe.</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Bonisa izilungiselelo zesaziso. Izaziso zivalekile kuhlelo lokusebenza}one{Bonisa izilungiselelo zesaziso. Izaziso zivaliwe kuzinhlelo zokusebenza ezingu-#}other{Bonisa izilungiselelo zesaziso. Izaziso zivaliwe kuzinhlelo zokusebenza ezingu-#}}</translation> <translation id="1525508553941733066">CASHISA</translation> @@ -70,6 +71,7 @@ <translation id="1836215606488044471">Umsizi (uyalayisha...)</translation> <translation id="1838895407229022812">Isibani sasebusuku sivaliwe.</translation> <translation id="1850504506766569011">I-Wi-Fi ivaliwe.</translation> +<translation id="1859889070386344428">Valiwe</translation> <translation id="1864454756846565995">Idivayisi ye-USB-C (imbobo esemuva)</translation> <translation id="1882897271359938046">Yenza isibuko ku-<ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Vula ngezigxivizo zeminwe</translation> @@ -122,6 +124,7 @@ <translation id="2501920221385095727">Okhiye abanamathelayo</translation> <translation id="2509468283778169019">I-CAPS LOCK ivuliwe</translation> <translation id="2517825809102302935">Vala okwasebusuku</translation> +<translation id="2519465031217098801">Vuliwe</translation> <translation id="2542089167727451762">Thepha isithombe sakho sephrofayela</translation> <translation id="255671100581129685">Umsizi we-Google akatholakali kuseshini esesidlangalaleni.</translation> <translation id="256712445991462162">isikhulisi esidokhiwe</translation> @@ -225,6 +228,7 @@ <translation id="3901991538546252627">Ixhumeka ku-<ph name="NAME" /></translation> <translation id="394485226368336402">Izilungiselelo zomsindo</translation> <translation id="3962859241508114581">Ithrekhi yangaphambilini</translation> +<translation id="3965097803111112935">Valiwe</translation> <translation id="397105322502079400">Iyabala...</translation> <translation id="3977512764614765090">Ibhethri ku-<ph name="PERCENTAGE" />% futhi liyashaja.</translation> <translation id="3995138139523574647">Idivayisi ye-USB-C (imbobo yasemuva yohlangothi lwesinxele)</translation> @@ -307,6 +311,7 @@ <translation id="5207949376430453814">Gqamisa ikharethi yombhalo</translation> <translation id="5222676887888702881">Phuma ngemvume</translation> <translation id="523505283826916779">Izulungiselelo zokufinyelela</translation> +<translation id="5250225880026334010">Valiwe</translation> <translation id="5260676007519551770">Ifafula 4</translation> <translation id="5283198616748585639">Engeza iminithi elingu-1</translation> <translation id="5286194356314741248">Iyaskena</translation> @@ -408,6 +413,7 @@ <translation id="6650933572246256093">Idivayisi ye-Bluethooth ye-"<ph name="DEVICE_NAME" />" ingathanda imvume yokubhanqa. Sicela ufake ukhiye wokundlula kuleyo divayisi: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Igama lokungena</translation> <translation id="6665545700722362599">Nikeza amawebhusayithi, izinhlelo zokusebenza nezandiso imvume yokusebenzisa amasevisi endawo, imakrofoni yedivayisi, ikhamera, noma ezinye izici</translation> +<translation id="6669268301501499730">Vuliwe</translation> <translation id="6670153871843998651">Itafula 3</translation> <translation id="6691659475504239918">U-Search+Shift+H</translation> <translation id="6696025732084565524">Ikhibhodi yakho enqamukayo idinga isibuyekezo esibalulekile</translation>
diff --git a/ash/system/message_center/ash_message_popup_collection.cc b/ash/system/message_center/ash_message_popup_collection.cc index e950894..9b7575d6 100644 --- a/ash/system/message_center/ash_message_popup_collection.cc +++ b/ash/system/message_center/ash_message_popup_collection.cc
@@ -12,6 +12,7 @@ #include "ash/shelf/shelf.h" #include "ash/shell.h" #include "ash/system/tray/tray_constants.h" +#include "ash/system/tray/tray_utils.h" #include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/work_area_insets.h" #include "base/i18n/rtl.h" @@ -91,21 +92,9 @@ } int AshMessagePopupCollection::GetBaseline() const { - int baseline = - work_area_.bottom() - kUnifiedMenuPadding - tray_bubble_height_; - - // The work area in tablet mode always uses the in-app shelf height, which - // ignores the height of the hotseat. We need to add additional height to the - // baseline to compensate. - bool in_tablet_mode = Shell::Get()->tablet_mode_controller() && - Shell::Get()->tablet_mode_controller()->InTabletMode(); - bool is_bottom_alignment = shelf_->alignment() == ShelfAlignment::kBottom; - if (chromeos::switches::ShouldShowShelfHotseat() && in_tablet_mode && - !ShelfConfig::Get()->is_in_app() && is_bottom_alignment) { - baseline -= kPopupCollectionHotseatHeightCompensation; - } - - return baseline; + gfx::Insets tray_bubble_insets = GetTrayBubbleInsets(); + return work_area_.bottom() - tray_bubble_insets.bottom() - + tray_bubble_height_; } gfx::Rect AshMessagePopupCollection::GetWorkArea() const {
diff --git a/ash/system/message_center/stacked_notification_bar.cc b/ash/system/message_center/stacked_notification_bar.cc index 4899e0f..e3a2f0cb 100644 --- a/ash/system/message_center/stacked_notification_bar.cc +++ b/ash/system/message_center/stacked_notification_bar.cc
@@ -98,22 +98,6 @@ TrayPopupInkDropStyle::FILL_BOUNDS, this, background_color_); } - std::unique_ptr<views::InkDropMask> CreateInkDropMask() const override { - SkScalar top_radius = SkIntToScalar(kUnifiedTrayCornerRadius); - SkRect bounds = gfx::RectToSkRect(GetContentsBounds()); - SkPath path; - - if (base::i18n::IsRTL()) { - SkScalar radii[8] = {top_radius, top_radius, 0, 0, 0, 0, 0, 0}; - path.addRoundRect(bounds, radii); - } else { - SkScalar radii[8] = {0, 0, top_radius, top_radius, 0, 0, 0, 0}; - path.addRoundRect(bounds, radii); - } - - return std::make_unique<views::PathInkDropMask>(size(), path); - } - private: SkColor background_color_ = gfx::kPlaceholderColor; UnifiedMessageCenterView* message_center_view_; @@ -483,14 +467,8 @@ flags.setStyle(cc::PaintFlags::kFill_Style); flags.setAntiAlias(true); - SkPath background_path; - SkScalar top_radius = SkIntToScalar(kUnifiedTrayCornerRadius); - SkScalar radii[8] = {top_radius, top_radius, top_radius, top_radius, - 0, 0, 0, 0}; - gfx::Rect bounds = GetLocalBounds(); - background_path.addRoundRect(gfx::RectToSkRect(bounds), radii); - canvas->DrawPath(background_path, flags); + canvas->DrawRect(bounds, flags); // We draw a border here than use a views::Border so the ink drop highlight // of the clear all button overlays the border.
diff --git a/ash/system/message_center/unified_message_center_bubble.cc b/ash/system/message_center/unified_message_center_bubble.cc index 3892c49..cf2b1b6d 100644 --- a/ash/system/message_center/unified_message_center_bubble.cc +++ b/ash/system/message_center/unified_message_center_bubble.cc
@@ -8,13 +8,14 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/shelf/shelf.h" -#include "ash/strings/grit/ash_strings.h" #include "ash/shell.h" +#include "ash/strings/grit/ash_strings.h" #include "ash/style/ash_color_provider.h" #include "ash/style/default_color_constants.h" #include "ash/system/message_center/unified_message_center_view.h" #include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_event_filter.h" +#include "ash/system/tray/tray_utils.h" #include "ash/system/unified/unified_system_tray.h" #include "ash/system/unified/unified_system_tray_bubble.h" #include "ash/system/unified/unified_system_tray_view.h" @@ -75,7 +76,6 @@ init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.min_width = kTrayMenuWidth; init_params.max_width = kTrayMenuWidth; - init_params.corner_radius = kUnifiedTrayCornerRadius; init_params.has_shadow = false; init_params.close_on_deactivate = false; @@ -85,10 +85,17 @@ bubble_view_->AddChildView(std::make_unique<UnifiedMessageCenterView>( nullptr /* parent */, tray->model(), this)); - // Check if the message center bubble should be collapsed when it is initially - // opened. - if (CalculateAvailableHeight() < kMessageCenterCollapseThreshold) - message_center_view_->SetCollapsed(false /*animate*/); + // Check if the message center bubble should be collapsed or expanded + // when it is initially opened. + if (CalculateAvailableHeight() < kMessageCenterCollapseThreshold && + message_center_view_->GetPreferredSize().height()) { + if (tray_->IsQuickSettingsExplicitlyExpanded()) { + message_center_view_->SetCollapsed(false /*animate*/); + } else { + message_center_view_->SetExpanded(); + tray_->EnsureQuickSettingsCollapsed(false /*animate*/); + } + } message_center_view_->AddObserver(this); } @@ -144,7 +151,7 @@ message_center_view_->SetExpanded(); UpdatePosition(); - tray_->EnsureQuickSettingsCollapsed(); + tray_->EnsureQuickSettingsCollapsed(true /*animate*/); } void UnifiedMessageCenterBubble::UpdatePosition() { @@ -159,13 +166,15 @@ // position of the layer. gfx::Rect anchor_rect = tray_->shelf()->GetSystemTrayAnchorRect(); - int left_offset = - tray_->shelf()->alignment() == ShelfAlignment::kLeft - ? kUnifiedMenuPadding - : -(kUnifiedMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); + gfx::Insets tray_bubble_insets = GetTrayBubbleInsets(); + int left_offset = tray_->shelf()->alignment() == ShelfAlignment::kLeft + ? tray_bubble_insets.left() + : -tray_bubble_insets.right(); + anchor_rect.set_x(anchor_rect.x() + left_offset); anchor_rect.set_y(anchor_rect.y() - tray_->bubble()->GetCurrentTrayHeight() - - kUnifiedMenuPadding - kUnifiedMessageCenterBubbleSpacing); + tray_bubble_insets.bottom() - + kUnifiedMessageCenterBubbleSpacing); bubble_view_->ChangeAnchorRect(anchor_rect); bubble_widget_->GetLayer()->StackAtTop(border_->layer());
diff --git a/ash/system/message_center/unified_message_center_view.cc b/ash/system/message_center/unified_message_center_view.cc index 52a43728..276d2de5 100644 --- a/ash/system/message_center/unified_message_center_view.cc +++ b/ash/system/message_center/unified_message_center_view.cc
@@ -122,7 +122,7 @@ } void UnifiedMessageCenterView::SetExpanded() { - if (!GetVisible() || !collapsed_) + if (!collapsed_) return; collapsed_ = false;
diff --git a/ash/system/message_center/unified_message_list_view.cc b/ash/system/message_center/unified_message_list_view.cc index bd4ea9e..4da1bec 100644 --- a/ash/system/message_center/unified_message_list_view.cc +++ b/ash/system/message_center/unified_message_list_view.cc
@@ -52,32 +52,6 @@ } // namespace -// The background of the UnifiedMessageListView, which has a strait top and a -// rounded bottom. -class UnifiedMessageListView::Background : public views::Background { - public: - Background() = default; - ~Background() override = default; - - // views::Background: - void Paint(gfx::Canvas* canvas, View* view) const override { - gfx::Rect bounds = view->GetLocalBounds(); - SkPath background_path; - SkScalar radius = SkIntToScalar(kUnifiedTrayCornerRadius); - SkScalar radii[8] = {0, 0, 0, 0, radius, radius, radius, radius}; - background_path.addRoundRect(gfx::RectToSkRect(bounds), radii); - - cc::PaintFlags flags; - flags.setColor(message_center_style::kSwipeControlBackgroundColor); - flags.setStyle(cc::PaintFlags::kFill_Style); - flags.setAntiAlias(true); - canvas->DrawPath(background_path, flags); - } - - private: - DISALLOW_COPY_AND_ASSIGN(Background); -}; - // Container view of notification and swipe control. // All children of UnifiedMessageListView should be MessageViewContainer. class UnifiedMessageListView::MessageViewContainer @@ -235,8 +209,8 @@ animation_(std::make_unique<gfx::LinearAnimation>(this)) { MessageCenter::Get()->AddObserver(this); animation_->SetCurrentValue(1.0); - SetBackground(std::unique_ptr<views::Background>( - new UnifiedMessageListView::Background())); + SetBackground(views::CreateSolidBackground( + message_center_style::kSwipeControlBackgroundColor)); } UnifiedMessageListView::~UnifiedMessageListView() {
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h index 8f560f4e..cec6dde 100644 --- a/ash/system/tray/tray_constants.h +++ b/ash/system/tray/tray_constants.h
@@ -106,7 +106,6 @@ constexpr int kUnifiedMenuPadding = 8; constexpr int kUnifiedMessageCenterBubbleSpacing = 8; constexpr int kUnifiedNotificationCenterSpacing = 16; -constexpr int kUnifiedNonInAppBubblePadding = 8; constexpr int kUnifiedTrayIconSize = 20; constexpr int kUnifiedTraySpacingBetweenIcons = 6; constexpr int kUnifiedTrayBatteryWidth = 10; @@ -200,7 +199,9 @@ constexpr int kStatusAreaForceCollapseAvailableWidth = 200; constexpr int kStatusAreaOverflowGradientSize = 24; -constexpr int kPopupCollectionHotseatHeightCompensation = 16; +// Height compensations in tablet mode based on whether the hotseat is shown. +constexpr int kTrayBubbleInsetTabletModeCompensation = 8; +constexpr int kTrayBubbleInsetHotseatCompensation = 16; } // namespace ash
diff --git a/ash/system/tray/tray_utils.cc b/ash/system/tray/tray_utils.cc index 19eeb015..7a9583188 100644 --- a/ash/system/tray/tray_utils.cc +++ b/ash/system/tray/tray_utils.cc
@@ -4,8 +4,13 @@ #include "ash/system/tray/tray_utils.h" +#include "ash/public/cpp/shelf_config.h" +#include "ash/shelf/shelf.h" +#include "ash/shell.h" #include "ash/style/ash_color_provider.h" #include "ash/system/tray/tray_constants.h" +#include "ash/wm/tablet_mode/tablet_mode_controller.h" +#include "chromeos/constants/chromeos_switches.h" #include "ui/gfx/font_list.h" #include "ui/views/controls/label.h" @@ -27,4 +32,49 @@ : AshColorProvider::AshColorMode::kDark); } +gfx::Insets GetTrayBubbleInsets() { + // Decrease bottom and right insets to compensate for the adjustment of + // the respective edges in Shelf::GetSystemTrayAnchorRect(). + gfx::Insets insets = gfx::Insets( + kUnifiedMenuPadding, kUnifiedMenuPadding, kUnifiedMenuPadding - 1, + kUnifiedMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); + + // The work area in tablet mode always uses the in-app shelf height, which is + // shorter than the standard shelf height. In this state, we need to add back + // the difference to compensate (see crbug.com/1033302). + bool in_tablet_mode = Shell::Get()->tablet_mode_controller() && + Shell::Get()->tablet_mode_controller()->InTabletMode(); + if (!in_tablet_mode) + return insets; + + Shelf* shelf = Shelf::ForWindow(Shell::GetPrimaryRootWindow()); + bool is_bottom_alignment = + shelf->alignment() == ShelfAlignment::kBottom || + shelf->alignment() == ShelfAlignment::kBottomLocked; + + if (!is_bottom_alignment) + return insets; + + if (!chromeos::switches::ShouldShowShelfHotseat()) + return insets; + + int height_compensation = kTrayBubbleInsetHotseatCompensation; + switch (shelf->GetBackgroundType()) { + case ShelfBackgroundType::kInApp: + // In-app mode does not require a height compensation. + height_compensation = 0; + break; + case ShelfBackgroundType::kLogin: + // The hotseat is not visible on the lock screen, so we need a smaller + // height compensation. + height_compensation = kTrayBubbleInsetTabletModeCompensation; + break; + default: + break; + } + + insets.set_bottom(insets.bottom() + height_compensation); + return insets; +} + } // namespace ash
diff --git a/ash/system/tray/tray_utils.h b/ash/system/tray/tray_utils.h index e99f6ee..4ae1e891 100644 --- a/ash/system/tray/tray_utils.h +++ b/ash/system/tray/tray_utils.h
@@ -7,6 +7,7 @@ #include "components/session_manager/session_manager_types.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/geometry/insets.h" namespace views { class Label; @@ -20,6 +21,9 @@ // Gets the current tray icon color for the given session state. SkColor TrayIconColor(session_manager::SessionState session_state); +// Returns the insets above the shelf for positioning the tray bubble. +gfx::Insets GetTrayBubbleInsets(); + } // namespace ash #endif // ASH_SYSTEM_TRAY_TRAY_UTILS_H_
diff --git a/ash/system/unified/unified_slider_bubble_controller.cc b/ash/system/unified/unified_slider_bubble_controller.cc index 963cafdc..be0593b 100644 --- a/ash/system/unified/unified_slider_bubble_controller.cc +++ b/ash/system/unified/unified_slider_bubble_controller.cc
@@ -12,11 +12,10 @@ #include "ash/system/keyboard_brightness/unified_keyboard_brightness_slider_controller.h" #include "ash/system/status_area_widget.h" #include "ash/system/tray/tray_constants.h" +#include "ash/system/tray/tray_utils.h" #include "ash/system/unified/unified_system_tray.h" #include "ash/system/unified/unified_system_tray_bubble.h" #include "ash/system/unified/unified_system_tray_view.h" -#include "ash/wm/tablet_mode/tablet_mode_controller.h" -#include "chromeos/constants/chromeos_switches.h" #include "ui/accessibility/ax_enums.mojom.h" using chromeos::CrasAudioHandler; @@ -167,7 +166,7 @@ init_params.anchor_rect = tray_->shelf()->GetSystemTrayAnchorRect(); // Decrease bottom and right insets to compensate for the adjustment of // the respective edges in Shelf::GetSystemTrayAnchorRect(). - init_params.insets = GetInsets(); + init_params.insets = GetTrayBubbleInsets(); init_params.corner_radius = kUnifiedTrayCornerRadius; init_params.has_shadow = false; init_params.translucent = true; @@ -220,27 +219,4 @@ &UnifiedSliderBubbleController::CloseBubble); } -gfx::Insets UnifiedSliderBubbleController::GetInsets() { - // Decrease bottom and right insets to compensate for the adjustment of - // the respective edges in Shelf::GetSystemTrayAnchorRect(). - gfx::Insets insets = gfx::Insets( - kUnifiedMenuPadding, kUnifiedMenuPadding, kUnifiedMenuPadding - 1, - kUnifiedMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); - - // The work area in tablet mode always uses the in-app shelf height, which - // ignores the height of the hotseat. We need to add additional height to the - // baseline to compensate. - bool in_tablet_mode = Shell::Get()->tablet_mode_controller() && - Shell::Get()->tablet_mode_controller()->InTabletMode(); - bool is_bottom_alignment = - tray_->shelf()->alignment() == ShelfAlignment::kBottom; - if (chromeos::switches::ShouldShowShelfHotseat() && in_tablet_mode && - !ShelfConfig::Get()->is_in_app() && is_bottom_alignment) { - insets.set_bottom(insets.bottom() + - kPopupCollectionHotseatHeightCompensation); - } - - return insets; -} - } // namespace ash
diff --git a/ash/system/unified/unified_slider_bubble_controller.h b/ash/system/unified/unified_slider_bubble_controller.h index cd0105a..834bce6 100644 --- a/ash/system/unified/unified_slider_bubble_controller.h +++ b/ash/system/unified/unified_slider_bubble_controller.h
@@ -68,9 +68,6 @@ // Start auto close timer. void StartAutoCloseTimer(); - // Returns the insets for the bubble. - gfx::Insets GetInsets(); - // Unowned. UnifiedSystemTray* const tray_;
diff --git a/ash/system/unified/unified_system_tray.cc b/ash/system/unified/unified_system_tray.cc index d9df033..d598432 100644 --- a/ash/system/unified/unified_system_tray.cc +++ b/ash/system/unified/unified_system_tray.cc
@@ -202,9 +202,14 @@ message_center_bubble_->ExpandMessageCenter(); } -void UnifiedSystemTray::EnsureQuickSettingsCollapsed() { - if (bubble_) +void UnifiedSystemTray::EnsureQuickSettingsCollapsed(bool animate) { + if (!bubble_) + return; + + if (animate) bubble_->EnsureCollapsed(); + else + bubble_->CollapseWithoutAnimating(); } void UnifiedSystemTray::EnsureBubbleExpanded() { @@ -277,6 +282,10 @@ return true; } +bool UnifiedSystemTray::IsQuickSettingsExplicitlyExpanded() const { + return model_->IsExplicitlyExpanded(); +} + gfx::Rect UnifiedSystemTray::GetBubbleBoundsInScreen() const { return bubble_ ? bubble_->GetBoundsInScreen() : gfx::Rect(); }
diff --git a/ash/system/unified/unified_system_tray.h b/ash/system/unified/unified_system_tray.h index 8a18046..14d631b0 100644 --- a/ash/system/unified/unified_system_tray.h +++ b/ash/system/unified/unified_system_tray.h
@@ -75,7 +75,7 @@ void ExpandMessageCenter(); // Ensure the quick settings bubble is collapsed. - void EnsureQuickSettingsCollapsed(); + void EnsureQuickSettingsCollapsed(bool animate); // Ensure the system tray bubble is expanded. void EnsureBubbleExpanded(); @@ -109,10 +109,15 @@ // Focus the first notification in the message center. void FocusFirstNotification(); + // Transfer focus to the message center bubble. bool FocusMessageCenter(bool reverse); + // Transfer focus to the quick settings bubble. bool FocusQuickSettings(bool reverse); + // Returns true if the user manually expanded the quick settings. + bool IsQuickSettingsExplicitlyExpanded() const; + // TrayBackgroundView: bool PerformAction(const ui::Event& event) override; void ShowBubble(bool show_by_click) override;
diff --git a/ash/system/unified/unified_system_tray_bubble.cc b/ash/system/unified/unified_system_tray_bubble.cc index cdc10bcb..eedcf5bc 100644 --- a/ash/system/unified/unified_system_tray_bubble.cc +++ b/ash/system/unified/unified_system_tray_bubble.cc
@@ -5,13 +5,13 @@ #include "ash/system/unified/unified_system_tray_bubble.h" #include "ash/public/cpp/ash_features.h" -#include "ash/public/cpp/shelf_config.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" #include "ash/system/message_center/unified_message_center_bubble.h" #include "ash/system/status_area_widget.h" #include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_event_filter.h" +#include "ash/system/tray/tray_utils.h" #include "ash/system/unified/unified_system_tray.h" #include "ash/system/unified/unified_system_tray_controller.h" #include "ash/system/unified/unified_system_tray_view.h" @@ -19,7 +19,6 @@ #include "ash/wm/tablet_mode/tablet_mode_controller.h" #include "ash/wm/work_area_insets.h" #include "base/metrics/histogram_macros.h" -#include "chromeos/constants/chromeos_switches.h" #include "ui/aura/window.h" #include "ui/native_theme/native_theme_dark_aura.h" #include "ui/wm/core/window_util.h" @@ -88,7 +87,7 @@ init_params.anchor_view = nullptr; init_params.anchor_mode = TrayBubbleView::AnchorMode::kRect; init_params.anchor_rect = tray->shelf()->GetSystemTrayAnchorRect(); - init_params.insets = GetInsets(); + init_params.insets = GetTrayBubbleInsets(); init_params.corner_radius = kUnifiedTrayCornerRadius; init_params.has_shadow = false; init_params.show_by_click = show_by_click; @@ -176,6 +175,16 @@ controller_->EnsureExpanded(); } +void UnifiedSystemTrayBubble::CollapseWithoutAnimating() { + if (!bubble_widget_) + return; + + DCHECK(unified_view_); + DCHECK(controller_); + + controller_->CollapseWithoutAnimating(); +} + void UnifiedSystemTrayBubble::CollapseMessageCenter() { tray_->CollapseMessageCenter(); } @@ -361,26 +370,4 @@ bubble_widget_->non_client_view()->frame_view()->SetVisible(visible); } -gfx::Insets UnifiedSystemTrayBubble::GetInsets() { - // Decrease bottom and right insets to compensate for the adjustment of - // the respective edges in Shelf::GetSystemTrayAnchorRect(). - gfx::Insets insets = gfx::Insets( - kUnifiedMenuPadding, kUnifiedMenuPadding, kUnifiedMenuPadding - 1, - kUnifiedMenuPadding - (base::i18n::IsRTL() ? 0 : 1)); - - // The work area in tablet mode always uses the in-app shelf height, which is - // shorter than the standard shelf height. In this state, we need to add back - // the difference to compensate (see crbug.com/1033302). - bool in_tablet_mode = Shell::Get()->tablet_mode_controller() && - Shell::Get()->tablet_mode_controller()->InTabletMode(); - bool is_bottom_alignment = - tray_->shelf()->alignment() == ShelfAlignment::kBottom; - if (chromeos::switches::ShouldShowShelfHotseat() && in_tablet_mode && - !ShelfConfig::Get()->is_in_app() && is_bottom_alignment) { - insets.set_bottom(insets.bottom() + kUnifiedNonInAppBubblePadding); - } - - return insets; -} - } // namespace ash
diff --git a/ash/system/unified/unified_system_tray_bubble.h b/ash/system/unified/unified_system_tray_bubble.h index eed509e..571b3499 100644 --- a/ash/system/unified/unified_system_tray_bubble.h +++ b/ash/system/unified/unified_system_tray_bubble.h
@@ -70,6 +70,9 @@ // Ensure the bubble is expanded. void EnsureExpanded(); + // Set the state to collapsed without animation. + void CollapseWithoutAnimating(); + // Show audio settings detailed view. void ShowAudioDetailedView(); @@ -143,9 +146,6 @@ // animation. void SetFrameVisible(bool visible); - // Returns the insets for the bubble. - gfx::Insets GetInsets(); - // Controller of UnifiedSystemTrayView. As the view is owned by views // hierarchy, we have to own the controller here. std::unique_ptr<UnifiedSystemTrayController> controller_;
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index 1144837d..ae2439a 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -449,15 +449,18 @@ if (model_->IsExplicitlyExpanded()) return; - if (features::IsUnifiedMessageCenterRefactorEnabled()) { - if (unified_view_->feature_pods_container()->row_count() == - kUnifiedFeaturePodMinRows) { - unified_view_->SetExpandedAmount(0.0); - animation_->Reset(0); - } + if (features::IsUnifiedMessageCenterRefactorEnabled() && + unified_view_->feature_pods_container()->row_count() == + kUnifiedFeaturePodMinRows) { + CollapseWithoutAnimating(); } } +void UnifiedSystemTrayController::CollapseWithoutAnimating() { + unified_view_->SetExpandedAmount(0.0); + animation_->Reset(0); +} + double UnifiedSystemTrayController::GetDragExpandedAmount( const gfx::Point& location) const { double y_diff = (location - drag_init_point_).y();
diff --git a/ash/system/unified/unified_system_tray_controller.h b/ash/system/unified/unified_system_tray_controller.h index d6d4bf3..711486189 100644 --- a/ash/system/unified/unified_system_tray_controller.h +++ b/ash/system/unified/unified_system_tray_controller.h
@@ -117,6 +117,9 @@ // notifications area. void ResetToCollapsedIfRequired(); + // Collapse the tray without animating. + void CollapseWithoutAnimating(); + // views::AnimationDelegateViews: void AnimationEnded(const gfx::Animation* animation) override; void AnimationProgressed(const gfx::Animation* animation) override;
diff --git a/ash/wm/desks/desk.cc b/ash/wm/desks/desk.cc index 58af514..140efc2 100644 --- a/ash/wm/desks/desk.cc +++ b/ash/wm/desks/desk.cc
@@ -183,8 +183,9 @@ windows_.push_back(window); // No need to refresh the mini_views if the destroyed window doesn't show up // there in the first place. + // The WorkspaceLayoutManager updates the backdrop for us. if (!window->GetProperty(kHideInDeskMiniViewKey)) - NotifyContentChanged(); + NotifyContentChanged(/*update_backdrops=*/false); } void Desk::RemoveWindowFromDesk(aura::Window* window) { @@ -192,8 +193,9 @@ base::Erase(windows_, window); // No need to refresh the mini_views if the destroyed window doesn't show up // there in the first place. + // The WorkspaceLayoutManager updates the backdrop for us. if (!window->GetProperty(kHideInDeskMiniViewKey)) - NotifyContentChanged(); + NotifyContentChanged(/*update_backdrops=*/false); } base::AutoReset<bool> Desk::GetScopedNotifyContentChangedDisabler() { @@ -278,8 +280,8 @@ } } - NotifyContentChanged(); - target_desk->NotifyContentChanged(); + NotifyContentChanged(/*update_backdrops=*/true); + target_desk->NotifyContentChanged(/*update_backdrops=*/true); } void Desk::MoveWindowToDesk(aura::Window* window, Desk* target_desk) { @@ -314,8 +316,8 @@ window_state->Unminimize(); } - NotifyContentChanged(); - target_desk->NotifyContentChanged(); + NotifyContentChanged(/*update_backdrops=*/true); + target_desk->NotifyContentChanged(/*update_backdrops=*/true); } aura::Window* Desk::GetDeskContainerForRoot(aura::Window* root) const { @@ -324,13 +326,15 @@ return root->GetChildById(container_id_); } -void Desk::NotifyContentChanged() { +void Desk::NotifyContentChanged(bool update_backdrops) { if (!should_notify_content_changed_) return; - // Update the backdrop availability and visibility first before notifying - // observers. - UpdateDeskBackdrops(); + // If requested, update the backdrop availability and visibility first before + // notifying observers, so that the mini_views update *after* the backdrops + // do. + if (update_backdrops) + UpdateDeskBackdrops(); for (auto& observer : observers_) observer.OnContentChanged();
diff --git a/ash/wm/desks/desk.h b/ash/wm/desks/desk.h index 507b1be..5203219 100644 --- a/ash/wm/desks/desk.h +++ b/ash/wm/desks/desk.h
@@ -88,10 +88,18 @@ aura::Window* GetDeskContainerForRoot(aura::Window* root) const; - void NotifyContentChanged(); + // Notifies observers that the desk's contents (list of application windows on + // the desk) have changed. + // If |update_backdrops| is true, the backdrops of all containers associated + // with this desk will be updated (even if overview is active). + // This is *only* needed if the WorkspaceLayoutManager won't take care of this + // for us in desk-modifying operations that happen within overview, such as + // removing desks (and move its windows out) or dragging a window and dropping + // in another desk. + void NotifyContentChanged(bool update_backdrops); - // Updates the backdrop availability and visibility on the containers (on all - // roots) associated with this desk. + // Update (even if overview is active) the backdrop availability and + // visibility on the containers (on all roots) associated with this desk. void UpdateDeskBackdrops(); private:
diff --git a/ash/wm/desks/desks_controller.cc b/ash/wm/desks/desks_controller.cc index 2614a09d..e646e426 100644 --- a/ash/wm/desks/desks_controller.cc +++ b/ash/wm/desks/desks_controller.cc
@@ -803,7 +803,7 @@ // if windows from the removed desk moved to it. DCHECK(active_desk_->should_notify_content_changed()); if (!removed_desk_windows.empty()) - active_desk_->NotifyContentChanged(); + active_desk_->NotifyContentChanged(/*force_update_backdrops=*/true); for (auto& observer : observers_) observer.OnDeskRemoved(removed_desk.get());
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc index e97c31b..3fa61f9 100644 --- a/ash/wm/overview/overview_item.cc +++ b/ash/wm/overview/overview_item.cc
@@ -251,9 +251,6 @@ void OverviewItem::PrepareForOverview() { transform_window_.PrepareForOverview(); - aura::Window* widget_window = item_widget_->GetNativeWindow(); - widget_window->parent()->StackChildBelow(widget_window, GetWindow()); - prepared_for_overview_ = true; }
diff --git a/ash/wm/overview/overview_session.h b/ash/wm/overview/overview_session.h index ed997a10..3e3e259f 100644 --- a/ash/wm/overview/overview_session.h +++ b/ash/wm/overview/overview_session.h
@@ -82,7 +82,10 @@ kSwipeFromShelf, // Used only when it's desired to enter overview mode immediately without // animations. It's used when entering overview by dragging a window from - // from the top of the screen. + // the top of the screen or from the shelf. It's also used when entering + // overview to avoid the blatantly broken behaviors shown in the videos + // linked in https://crbug.com/1027179. This should not be used for exiting + // overview mode. kImmediateEnter, // Used only when it's desired to exit overview mode immediately without // animations. This is used when performing the desk switch animation when
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc index 83e307d..ee6c8fd7 100644 --- a/ash/wm/splitview/split_view_controller.cc +++ b/ash/wm/splitview/split_view_controller.cc
@@ -1124,6 +1124,21 @@ ShowAppCannotSnapToast(); } +void SplitViewController::OnDisplayRemoved( + const display::Display& old_display) { + // Display removal always triggers a window activation which ends overview, + // and therefore ends clamshell split view, before |OnDisplayRemoved| is + // called. In clamshell mode, |OverviewController::CanEndOverview| always + // returns true, meaning that overview is guaranteed to end successfully. + DCHECK(!InClamshellSplitViewMode()); + // If we are in tablet split view with only one snapped window, make sure we + // are in overview (see https://crbug.com/1027179). + if (state_ == State::kLeftSnapped || state_ == State::kRightSnapped) { + Shell::Get()->overview_controller()->StartOverview( + OverviewSession::EnterExitOverviewType::kImmediateEnter); + } +} + void SplitViewController::OnDisplayMetricsChanged( const display::Display& display, uint32_t metrics) {
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h index dd1b87e..c9c0644 100644 --- a/ash/wm/splitview/split_view_controller.h +++ b/ash/wm/splitview/split_view_controller.h
@@ -236,6 +236,7 @@ void OnOverviewModeEnding(OverviewSession* overview_session) override; // display::DisplayObserver: + void OnDisplayRemoved(const display::Display& old_display) override; void OnDisplayMetricsChanged(const display::Display& display, uint32_t metrics) override;
diff --git a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc index 4067f2af..c3047fe 100644 --- a/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc +++ b/ash/wm/tablet_mode/tablet_mode_controller_unittest.cc
@@ -1451,6 +1451,25 @@ base::RunLoop().RunUntilIdle(); } +TEST_P(TabletModeControllerTest, + StartTabletActiveLeftSnapOnPrimaryDisplayPreviousOnSecondaryDisplay) { + UpdateDisplay("800x600,800x600"); + std::unique_ptr<aura::Window> window1 = + CreateDesktopWindowSnappedLeft(gfx::Rect(0, 0, 400, 400)); + EXPECT_EQ(Shell::GetPrimaryRootWindow(), window1->GetRootWindow()); + std::unique_ptr<aura::Window> window2 = + CreateTestWindow(gfx::Rect(800, 0, 400, 400)); + EXPECT_NE(Shell::GetPrimaryRootWindow(), window2->GetRootWindow()); + wm::ActivateWindow(window1.get()); + tablet_mode_controller()->SetEnabledForTest(true); + // After display mirroring triggers, as the split view state will still be + // |SplitViewController::State::kLeftSnapped|, check for overview mode. + base::RunLoop().RunUntilIdle(); + EXPECT_EQ(SplitViewController::State::kLeftSnapped, + split_view_controller()->state()); + EXPECT_TRUE(Shell::Get()->overview_controller()->InOverviewSession()); +} + // Test that tablet mode controller does not respond to the input device changes // during its suspend. TEST_P(TabletModeControllerTest, DoNotObserverInputDeviceChangeDuringSuspend) {
diff --git a/ash/wm/workspace/backdrop_controller.cc b/ash/wm/workspace/backdrop_controller.cc index f03ea08..2f9d332 100644 --- a/ash/wm/workspace/backdrop_controller.cc +++ b/ash/wm/workspace/backdrop_controller.cc
@@ -9,6 +9,7 @@ #include "ash/accessibility/accessibility_controller_impl.h" #include "ash/accessibility/accessibility_delegate.h" +#include "ash/animation/animation_change_type.h" #include "ash/public/cpp/app_types.h" #include "ash/public/cpp/shell_window_ids.h" #include "ash/public/cpp/window_animation_types.h" @@ -23,9 +24,12 @@ #include "ash/wm/window_state.h" #include "ash/wm/window_util.h" #include "base/auto_reset.h" +#include "base/memory/weak_ptr.h" #include "chromeos/audio/chromeos_sounds.h" #include "ui/aura/client/aura_constants.h" #include "ui/compositor/layer.h" +#include "ui/compositor/layer_animation_element.h" +#include "ui/compositor/layer_animation_observer.h" #include "ui/compositor/scoped_layer_animation_settings.h" #include "ui/views/widget/widget.h" #include "ui/wm/core/window_util.h" @@ -46,6 +50,9 @@ return SK_ColorBLACK; } +// ----------------------------------------------------------------------------- +// BackdropEventHandler: + class BackdropEventHandler : public ui::EventHandler { public: BackdropEventHandler() = default; @@ -79,6 +86,45 @@ DISALLOW_COPY_AND_ASSIGN(BackdropEventHandler); }; +// ----------------------------------------------------------------------------- +// ScopedWindowVisibilityAnimationTypeResetter: + +// Sets |window|'s visibility animation type to |new_type| and resets it back to +// WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT when it goes out of scope. +class ScopedWindowVisibilityAnimationTypeResetter { + public: + ScopedWindowVisibilityAnimationTypeResetter(aura::Window* window, + int new_type) + : window_(window) { + DCHECK(window); + + if (::wm::GetWindowVisibilityAnimationType(window) == new_type) { + // Clear so as not to do anything when we go out of scope. + window_ = nullptr; + return; + } + + ::wm::SetWindowVisibilityAnimationType(window_, new_type); + } + + ~ScopedWindowVisibilityAnimationTypeResetter() { + if (window_) { + ::wm::SetWindowVisibilityAnimationType( + window_, ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT); + } + } + + ScopedWindowVisibilityAnimationTypeResetter( + const ScopedWindowVisibilityAnimationTypeResetter&) = delete; + ScopedWindowVisibilityAnimationTypeResetter& operator=( + const ScopedWindowVisibilityAnimationTypeResetter&) = delete; + + private: + aura::Window* window_; +}; + +// ----------------------------------------------------------------------------- + bool InOverviewSession() { OverviewController* overview_controller = Shell::Get()->overview_controller(); return overview_controller && overview_controller->InOverviewSession(); @@ -121,6 +167,51 @@ } // namespace +// ----------------------------------------------------------------------------- +// BackdropController::WindowAnimationWaiter: + +// Observers an ongoing animation of |animating_window| and updates the backdrop +// once that animation completes. +class BackdropController::WindowAnimationWaiter + : public ui::ImplicitAnimationObserver { + public: + WindowAnimationWaiter(BackdropController* owner, + aura::Window* animating_window) + : owner_(owner), animating_window_(animating_window) { + auto* animator = animating_window_->layer()->GetAnimator(); + DCHECK(animator->is_animating()); + const auto original_transition_duration = animator->GetTransitionDuration(); + // Don't let |settings| overwrite the existing animation's duration. + ui::ScopedLayerAnimationSettings settings{animator}; + settings.SetTransitionDuration(original_transition_duration); + settings.AddObserver(this); + } + + ~WindowAnimationWaiter() override { StopObservingImplicitAnimations(); } + + WindowAnimationWaiter(const WindowAnimationWaiter&) = delete; + WindowAnimationWaiter& operator=(const WindowAnimationWaiter&) = delete; + + aura::Window* animating_window() { return animating_window_; } + + // ui::ImplicitAnimationObserver: + void OnImplicitAnimationsCompleted() override { + // We keep this object alive until we update the backdrop, since we use the + // member `owner_` below. This is not necessary, since we can cache it as + // a local before we reset `window_animation_waiter_`, but this way things + // are more deterministic, just in case. + auto to_destroy = std::move(owner_->window_animation_waiter_); + DCHECK_EQ(this, to_destroy.get()); + owner_->UpdateBackdrop(); + } + + private: + BackdropController* owner_; + aura::Window* animating_window_; +}; + +// ----------------------------------------------------------------------------- + BackdropController::BackdropController(aura::Window* container) : root_window_(container->GetRootWindow()), container_(container) { DCHECK(container_); @@ -147,28 +238,42 @@ Hide(/*destroy=*/true); } -void BackdropController::OnWindowAddedToLayout() { - UpdateBackdrop(); +void BackdropController::OnWindowAddedToLayout(aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); } -void BackdropController::OnWindowRemovedFromLayout() { - UpdateBackdrop(); +void BackdropController::OnWindowRemovedFromLayout(aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); } -void BackdropController::OnChildWindowVisibilityChanged() { - UpdateBackdrop(); +void BackdropController::OnChildWindowVisibilityChanged(aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); } -void BackdropController::OnWindowStackingChanged() { - UpdateBackdrop(); +void BackdropController::OnBackdropWindowModePropertyChanged( + aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); +} + +void BackdropController::OnWindowStackingChanged(aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); } void BackdropController::OnDisplayMetricsChanged() { - UpdateBackdrop(); + // Display changes such as rotation, device scale factor, ... etc. don't + // affect the visibility or availability of the backdrop. They may however + // affect its bounds. So just layout. + MaybeUpdateLayout(); } -void BackdropController::OnPostWindowStateTypeChange() { - UpdateBackdrop(); +void BackdropController::OnPostWindowStateTypeChange(aura::Window* window) { + if (DoesWindowCauseBackdropUpdates(window)) + UpdateBackdrop(); } void BackdropController::OnDeskContentChanged() { @@ -248,7 +353,7 @@ } void BackdropController::OnAccessibilityStatusChanged() { - UpdateBackdrop(); + UpdateAccessibilityMode(); } void BackdropController::OnSplitViewStateChanged( @@ -260,7 +365,7 @@ } void BackdropController::OnSplitViewDividerPositionChanged() { - UpdateBackdrop(); + MaybeUpdateLayout(); } void BackdropController::OnWallpaperPreviewStarted() { @@ -294,39 +399,36 @@ // windows which will cause recursion. base::AutoReset<bool> lock(&pause_update_, true); aura::Window* window = GetTopmostWindowWithBackdrop(); - if (!window) { + + if (window == window_having_backdrop_) { + if (window) + Show(); + return; + } + + window_having_backdrop_ = window; + + if (!window_having_backdrop_) { // Destroy the backdrop since no suitable window was found. Hide(/*destroy=*/true); return; } - EnsureBackdropWidget(window->GetProperty(kBackdropWindowMode)); - UpdateAccessibilityMode(); + DCHECK_EQ(window_having_backdrop_->GetRootWindow(), root_window_); + DCHECK_NE(window_having_backdrop_, backdrop_window_); - if (window == backdrop_window_ && backdrop_->IsVisible()) { - Layout(); - return; - } - if (window->GetRootWindow() != backdrop_window_->GetRootWindow()) - return; - - // Update the animation type of |backdrop_window_| based on current top most - // window with backdrop. - SetBackdropAnimationType(WindowState::Get(window)->CanMaximize() - ? WINDOW_VISIBILITY_ANIMATION_TYPE_STEP_END - : ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_FADE); - + EnsureBackdropWidget(); Show(); - - SetBackdropAnimationType(::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_DEFAULT); - - // Backdrop needs to be immediately behind the window. - container_->StackChildBelow(backdrop_window_, window); } -void BackdropController::EnsureBackdropWidget(BackdropWindowMode mode) { +void BackdropController::EnsureBackdropWidget() { + DCHECK(window_having_backdrop_); + + const BackdropWindowMode mode = + window_having_backdrop_->GetProperty(kBackdropWindowMode); + const SkColor backdrop_color = GetBackdropColorByMode(mode); + if (backdrop_) { - SkColor backdrop_color = GetBackdropColorByMode(mode); if (backdrop_window_->layer()->GetTargetColor() != backdrop_color) backdrop_window_->layer()->SetColor(backdrop_color); return; @@ -344,22 +446,25 @@ params.activatable = views::Widget::InitParams::ACTIVATABLE_NO; DCHECK_NE(kShellWindowId_Invalid, container_->id()); params.parent = container_; + params.init_properties_container.SetProperty(kHideInOverviewKey, true); + params.init_properties_container.SetProperty(kForceVisibleInMiniViewKey, + true); backdrop_->Init(std::move(params)); backdrop_window_ = backdrop_->GetNativeWindow(); - backdrop_window_->SetProperty(kHideInOverviewKey, true); // The backdrop window in always on top container can be reparented without // this when the window is set to fullscreen. AlwaysOnTopController::SetDisallowReparent(backdrop_window_); - backdrop_window_->layer()->SetColor(GetBackdropColorByMode(mode)); + backdrop_window_->layer()->SetColor(backdrop_color); WindowState::Get(backdrop_window_)->set_allow_set_bounds_direct(true); + UpdateAccessibilityMode(); } void BackdropController::UpdateAccessibilityMode() { if (!backdrop_) return; - bool enabled = + const bool enabled = Shell::Get()->accessibility_controller()->spoken_feedback_enabled(); if (enabled) { if (!backdrop_event_handler_) { @@ -413,12 +518,29 @@ } void BackdropController::Show() { + DCHECK(backdrop_); + DCHECK(backdrop_window_); + DCHECK(window_having_backdrop_); + + if (MaybeWaitForWindowAnimation()) + return; + Layout(); + // Update the stcking, only after we determine we can show the backdrop. The + // backdrop needs to be immediately behind the window that needs a backdrop. + container_->StackChildBelow(backdrop_window_, window_having_backdrop_); + // When overview is active, the backdrop should never be shown. However, it // must be laid out, since it should show up properly in the mini_views. - if (!InOverviewSession()) - backdrop_->Show(); + if (backdrop_->IsVisible() || InOverviewSession()) + return; + + ScopedWindowVisibilityAnimationTypeResetter resetter{ + backdrop_window_, WindowState::Get(window_having_backdrop_)->CanMaximize() + ? WINDOW_VISIBILITY_ANIMATION_TYPE_STEP_END + : ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_FADE}; + backdrop_->Show(); } void BackdropController::Hide(bool destroy, bool animate) { @@ -456,14 +578,13 @@ bool BackdropController::BackdropShouldFullscreen() { // TODO(afakhry): Define the correct behavior and revise this in a follow-up // CL. - aura::Window* window = GetTopmostWindowWithBackdrop(); SplitViewController* split_view_controller = SplitViewController::Get(root_window_); SplitViewController::State state = split_view_controller->state(); if ((state == SplitViewController::State::kLeftSnapped && - window == split_view_controller->left_window()) || + window_having_backdrop_ == split_view_controller->left_window()) || (state == SplitViewController::State::kRightSnapped && - window == split_view_controller->right_window())) { + window_having_backdrop_ == split_view_controller->right_window())) { return false; } @@ -487,6 +608,8 @@ } void BackdropController::Layout() { + DCHECK(backdrop_); + // Makes sure that the backdrop has the correct bounds if it should not be // fullscreen size. backdrop_->SetFullscreen(BackdropShouldFullscreen()); @@ -494,22 +617,54 @@ // TODO(oshima): The size of solid color layer can be smaller than texture's // layer with fractional scale (crbug.com/9000220). Use adjusted bounds so // that it can cover texture layer. Fix the bug and remove this. - auto* window = backdrop_window_; - gfx::Rect bounds = screen_util::GetDisplayBoundsInParent(window); + const gfx::Rect bounds = + screen_util::GetDisplayBoundsInParent(backdrop_window_); backdrop_window_->SetBounds( - screen_util::SnapBoundsToDisplayEdge(bounds, window)); + screen_util::SnapBoundsToDisplayEdge(bounds, backdrop_window_)); } else { backdrop_->SetBounds(GetBackdropBounds()); } } -void BackdropController::SetBackdropAnimationType(int type) { - if (!backdrop_window_ || - ::wm::GetWindowVisibilityAnimationType(backdrop_window_) == type) { - return; +bool BackdropController::MaybeWaitForWindowAnimation() { + DCHECK(window_having_backdrop_); + + auto* animator = window_having_backdrop_->layer()->GetAnimator(); + if (!animator->is_animating()) + return false; + + if (window_animation_waiter_ && + window_animation_waiter_->animating_window() == window_having_backdrop_) { + return true; } - ::wm::SetWindowVisibilityAnimationType(backdrop_window_, type); + window_animation_waiter_.reset(); + + constexpr int kCheckedAnimations = ui::LayerAnimationElement::BOUNDS | + ui::LayerAnimationElement::TRANSFORM | + ui::LayerAnimationElement::OPACITY | + ui::LayerAnimationElement::VISIBILITY; + if (!animator->IsAnimatingOnePropertyOf(kCheckedAnimations)) + return false; + + window_animation_waiter_ = + std::make_unique<WindowAnimationWaiter>(this, window_having_backdrop_); + return true; +} + +void BackdropController::MaybeUpdateLayout() { + if (backdrop_ && backdrop_->IsVisible()) + Layout(); +} + +bool BackdropController::DoesWindowCauseBackdropUpdates( + aura::Window* window) const { + // Popups should not result in any backdrop updates. We also avoid unnecessary + // recursive calls to UpdateBackdrop() from the WorkspaceLayoutManager caused + // by the backdrop itself, even though we avoid recursion here via + // |pause_update_|. + return window->type() != aura::client::WINDOW_TYPE_POPUP && + (!backdrop_ || window != backdrop_->GetNativeWindow()); } } // namespace ash
diff --git a/ash/wm/workspace/backdrop_controller.h b/ash/wm/workspace/backdrop_controller.h index bfad743..8f31cd84 100644 --- a/ash/wm/workspace/backdrop_controller.h +++ b/ash/wm/workspace/backdrop_controller.h
@@ -52,11 +52,12 @@ explicit BackdropController(aura::Window* container); ~BackdropController() override; - void OnWindowAddedToLayout(); - void OnWindowRemovedFromLayout(); - void OnChildWindowVisibilityChanged(); - void OnWindowStackingChanged(); - void OnPostWindowStateTypeChange(); + void OnWindowAddedToLayout(aura::Window* window); + void OnWindowRemovedFromLayout(aura::Window* window); + void OnChildWindowVisibilityChanged(aura::Window* window); + void OnBackdropWindowModePropertyChanged(aura::Window* window); + void OnWindowStackingChanged(aura::Window* window); + void OnPostWindowStateTypeChange(aura::Window* window); void OnDisplayMetricsChanged(); // Called when the desk content is changed in order to update the state of the @@ -96,6 +97,7 @@ void OnTabletModeEnded() override; private: + class WindowAnimationWaiter; friend class WorkspaceControllerTestApi; // Reenables updates previously pause by calling PauseUpdates(). @@ -103,7 +105,7 @@ void UpdateBackdropInternal(); - void EnsureBackdropWidget(BackdropWindowMode mode); + void EnsureBackdropWidget(); void UpdateAccessibilityMode(); @@ -111,7 +113,9 @@ bool WindowShouldHaveBackdrop(aura::Window* window); - // Show the backdrop window. + // Show the backdrop window if the |window_having_backdrop_| is not animating, + // otherwise it will wait for that animation to finish. If it can show the + // backdrop, it will update its bounds and stacking order before its shown. void Show(); // Hide the backdrop window. If |destroy| is true, the backdrop widget will be @@ -130,8 +134,17 @@ // backdrop bounds should be the bounds of the snapped window. gfx::Rect GetBackdropBounds(); - // Sets the animtion type of |backdrop_window_| to |type|. - void SetBackdropAnimationType(int type); + // If |window_having_backdrop_| is animating such that we shouldn't update the + // backdrop until that animation is complete, starts observing this animation + // (if not already done) and returns true. Returns false otherwise. + bool MaybeWaitForWindowAnimation(); + + // Updates the layout of the backdrop if one exists and is visible. + void MaybeUpdateLayout(); + + // Returns true if changes to |window| may require updating the backdrop + // visibility and availability. + bool DoesWindowCauseBackdropUpdates(aura::Window* window) const; aura::Window* root_window_; @@ -141,9 +154,16 @@ // aura::Window for |backdrop_|. aura::Window* backdrop_window_ = nullptr; + // The window for which a backdrop has been installed. + aura::Window* window_having_backdrop_ = nullptr; + // The container of the window that should have a backdrop. aura::Window* container_; + // If |window_having_backdrop_| is animating while we're trying to show the + // backdrop, we postpone showing it until the animation completes. + std::unique_ptr<WindowAnimationWaiter> window_animation_waiter_; + // Event hanlder used to implement actions for accessibility. std::unique_ptr<ui::EventHandler> backdrop_event_handler_; ui::EventHandler* original_event_handler_ = nullptr;
diff --git a/ash/wm/workspace/workspace_layout_manager.cc b/ash/wm/workspace/workspace_layout_manager.cc index 38d15bc..aa6f8e7 100644 --- a/ash/wm/workspace/workspace_layout_manager.cc +++ b/ash/wm/workspace/workspace_layout_manager.cc
@@ -148,7 +148,7 @@ UpdateShelfVisibility(); UpdateFullscreenState(); - backdrop_controller_->OnWindowAddedToLayout(); + backdrop_controller_->OnWindowAddedToLayout(child); WindowPositioner::RearrangeVisibleWindowOnShow(child); if (Shell::Get()->screen_pinning_controller()->IsPinned()) WindowState::Get(child)->DisableZOrdering(nullptr); @@ -178,7 +178,7 @@ void WorkspaceLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) { UpdateShelfVisibility(); UpdateFullscreenState(); - backdrop_controller_->OnWindowRemovedFromLayout(); + backdrop_controller_->OnWindowRemovedFromLayout(child); } void WorkspaceLayoutManager::OnChildWindowVisibilityChanged(aura::Window* child, @@ -194,7 +194,7 @@ WindowPositioner::RearrangeVisibleWindowOnHideOrRemove(child); UpdateFullscreenState(); UpdateShelfVisibility(); - backdrop_controller_->OnChildWindowVisibilityChanged(); + backdrop_controller_->OnChildWindowVisibilityChanged(child); } void WorkspaceLayoutManager::SetChildBounds(aura::Window* child, @@ -320,14 +320,14 @@ container->AddChild(window); } } else if (key == kBackdropWindowMode) { - backdrop_controller_->UpdateBackdrop(); + backdrop_controller_->OnBackdropWindowModePropertyChanged(window); } } void WorkspaceLayoutManager::OnWindowStackingChanged(aura::Window* window) { UpdateShelfVisibility(); UpdateFullscreenState(); - backdrop_controller_->OnWindowStackingChanged(); + backdrop_controller_->OnWindowStackingChanged(window); } void WorkspaceLayoutManager::OnWindowDestroying(aura::Window* window) { @@ -386,7 +386,7 @@ } UpdateShelfVisibility(); - backdrop_controller_->OnPostWindowStateTypeChange(); + backdrop_controller_->OnPostWindowStateTypeChange(window_state->window()); } //////////////////////////////////////////////////////////////////////////////
diff --git a/base/threading/scoped_thread_priority.cc b/base/threading/scoped_thread_priority.cc index 10e230b..0fdee1e 100644 --- a/base/threading/scoped_thread_priority.cc +++ b/base/threading/scoped_thread_priority.cc
@@ -37,7 +37,8 @@ ScopedMayLoadLibraryAtBackgroundPriority:: ~ScopedMayLoadLibraryAtBackgroundPriority() { - TRACE_EVENT_END0("base", "ScopedMayLoadLibraryAtBackgroundPriority"); + // Trace events must be closed in reverse order of opening so that they nest + // correctly. #if defined(OS_WIN) if (original_thread_priority_) { TRACE_EVENT_END0( @@ -46,6 +47,7 @@ PlatformThread::SetCurrentThreadPriority(original_thread_priority_.value()); } #endif // OS_WIN + TRACE_EVENT_END0("base", "ScopedMayLoadLibraryAtBackgroundPriority"); } } // namespace internal
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 2d86de2..08e3ec8a 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8891733861197872448 \ No newline at end of file +8891669784849215056 \ No newline at end of file
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 8653610..0a4e73d 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -4598,8 +4598,14 @@ ui::input_types::ScrollGranularity::kScrollByPrecisePixel); #if defined(OS_MACOSX) - // Mac does not smooth scroll wheel events (crbug.com/574283). - return type == InputHandler::SCROLLBAR ? !has_precise_scroll_deltas : false; + if (has_precise_scroll_deltas) + return false; + + // Mac does not smooth scroll wheel events (crbug.com/574283). We allow tests + // to force it on. + return type == InputHandler::SCROLLBAR + ? true + : force_smooth_wheel_scrolling_for_testing_; #else return !has_precise_scroll_deltas; #endif
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h index 437b384c..1243d52d 100644 --- a/cc/trees/layer_tree_host_impl.h +++ b/cc/trees/layer_tree_host_impl.h
@@ -258,13 +258,6 @@ LayerTreeHostImpl& operator=(const LayerTreeHostImpl&) = delete; - // TODO(bokan): Replace calls in unit tests to ScrollUpdate and make these - // private. - void ScrollAnimated(const gfx::Point& viewport_point, - const gfx::Vector2dF& scroll_delta, - base::TimeDelta delayed_by = base::TimeDelta()); - InputHandlerScrollResult ScrollBy(ScrollState* scroll_state); - // InputHandler implementation void BindToClient(InputHandlerClient* client) override; InputHandler::ScrollStatus ScrollBegin( @@ -452,6 +445,10 @@ // Resets all of the trees to an empty state. void ResetTreesForTesting(); + void set_force_smooth_wheel_scrolling_for_testing(bool enabled) { + force_smooth_wheel_scrolling_for_testing_ = enabled; + } + size_t SourceAnimationFrameNumberForTesting() const; void RegisterScrollbarAnimationController(ElementId scroll_element_id, @@ -874,6 +871,10 @@ const gfx::Vector2dF& delta, base::TimeDelta delayed_by, base::Optional<float> autoscroll_velocity); + void ScrollAnimated(const gfx::Point& viewport_point, + const gfx::Vector2dF& scroll_delta, + base::TimeDelta delayed_by = base::TimeDelta()); + InputHandlerScrollResult ScrollBy(ScrollState* scroll_state); void CleanUpTileManagerResources(); void CreateTileManagerResources(); @@ -1294,6 +1295,11 @@ // over. bool deferred_scroll_end_ = false; + // TODO(bokan): Mac doesn't yet have smooth scrolling for wheel; however, to + // allow consistency in tests we use this bit to override that decision. + // https://crbug.com/574283. + bool force_smooth_wheel_scrolling_for_testing_ = false; + // PaintWorklet painting is controlled from the LayerTreeHostImpl, dispatched // to the worklet thread via |paint_worklet_painter_|. std::unique_ptr<PaintWorkletLayerPainter> paint_worklet_painter_;
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc index 3a0655b..7cc295d4 100644 --- a/cc/trees/layer_tree_host_impl_unittest.cc +++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -152,6 +152,7 @@ LayerTreeSettings DefaultSettings() { LayerListSettings settings; settings.minimum_occlusion_tracking_size = gfx::Size(); + settings.enable_smooth_scroll = true; return settings; } @@ -165,6 +166,11 @@ void SetUp() override { CreateHostImpl(DefaultSettings(), CreateLayerTreeFrameSink()); + + // TODO(bokan): Mac wheel scrolls don't cause smooth scrolling in the real + // world. In tests, we force it on for consistency. Can be removed when + // https://crbug.com/574283 is fixed. + host_impl_->set_force_smooth_wheel_scrolling_for_testing(true); } void CreatePendingTree() { @@ -608,6 +614,15 @@ return scroll_state; } + std::unique_ptr<ScrollState> AnimatedUpdateState( + const gfx::Point& point, + const gfx::Vector2dF& delta) { + auto state = UpdateState(point, delta, InputHandler::WHEEL); + state->data()->delta_granularity = + static_cast<double>(ui::input_types::ScrollGranularity::kScrollByPixel); + return state; + } + void DrawFrame() { PrepareForUpdateDrawProperties(host_impl_->active_tree()); TestFrameData frame; @@ -829,6 +844,11 @@ public: void SetUp() override { CreateHostImpl(DefaultSettings(), CreateLayerTreeFrameSink()); + + // TODO(bokan): Mac wheel scrolls don't cause smooth scrolling in the real + // world. In tests, we force it on for consistency. Can be removed when + // https://crbug.com/574283 is fixed. + host_impl_->set_force_smooth_wheel_scrolling_for_testing(true); } }; @@ -1125,9 +1145,10 @@ status.main_thread_scrolling_reasons); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(0, 10))); host_impl_->ScrollEnd(); EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); @@ -1148,9 +1169,10 @@ status.main_thread_scrolling_reasons); EXPECT_TRUE(host_impl_->IsActivelyScrolling()); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(host_impl_->IsActivelyScrolling()); host_impl_->ScrollEnd(); EXPECT_FALSE(host_impl_->IsActivelyScrolling()); @@ -1212,10 +1234,11 @@ // We should still be scrolling, because the scrolled layer also exists in the // new tree. - host_impl_->ScrollBy(UpdateState(gfx::Point(), - gfx::ScrollOffsetToVector2dF(scroll_delta), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::ScrollOffsetToVector2dF(scroll_delta), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = host_impl_->ProcessScrollDeltas(); @@ -1233,9 +1256,10 @@ EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread); EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, status.main_thread_scrolling_reasons); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(host_impl_->active_tree()->CurrentlyScrollingNode()); EXPECT_TRUE(host_impl_->IsActivelyScrolling()); @@ -1450,9 +1474,10 @@ status.main_thread_scrolling_reasons); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(75, 75))); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(25, 25))); host_impl_->ScrollEnd(); EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(75, 75))); @@ -1466,9 +1491,10 @@ EXPECT_EQ(MainThreadScrollingReason::kNotScrollingOnMain, status.main_thread_scrolling_reasons); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(75, 75))); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(75, 75))); } @@ -1494,9 +1520,9 @@ status.main_thread_scrolling_reasons); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(40, 10))); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), gfx::Vector2d(0, 1), InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, 1), InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // This point is still inside the non-fast region. @@ -1539,7 +1565,7 @@ EXPECT_FALSE(host_impl_->scroll_affects_scroll_handler()); } -TEST_F(LayerTreeHostImplTest, ScrollByReturnsCorrectValue) { +TEST_F(LayerTreeHostImplTest, ScrollUpdateReturnsCorrectValue) { SetupViewportLayersInnerScrolls(gfx::Size(100, 100), gfx::Size(200, 200)); DrawFrame(); @@ -1552,79 +1578,102 @@ status.main_thread_scrolling_reasons); // Trying to scroll to the left/top will not succeed. - EXPECT_FALSE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_FALSE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, -10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_FALSE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, -10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_FALSE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_FALSE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_FALSE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); // Scrolling to the right/bottom will succeed. EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(10, 0), - InputHandler::TOUCHSCREEN) - .get()) + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(10, 0), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) .did_scroll); EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), - InputHandler::TOUCHSCREEN) - .get()) + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) .did_scroll); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(10, 10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(10, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); // Scrolling to left/top will now succeed. - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, -10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, -10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); // Scrolling diagonally against an edge will succeed. - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(10, -10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(-10, 10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(10, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, 0), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(-10, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); // Trying to scroll more than the available space will also succeed. EXPECT_TRUE( host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(5000, 5000), - InputHandler::TOUCHSCREEN) - .get()) + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(5000, 5000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) .did_scroll); } @@ -1646,8 +1695,9 @@ EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); @@ -1690,8 +1740,9 @@ EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); - host_impl_->ScrollBy( - UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); @@ -1734,8 +1785,9 @@ EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); - host_impl_->ScrollBy( - UpdateState(pointer_position, delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_EQ(TargetSnapAreaElementIds(), GetSnapContainerData(overflow)->GetTargetSnapAreaElementIds()); @@ -1775,7 +1827,8 @@ BeginState(pointer_position, delta, InputHandler::WHEEL).get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(pointer_position, delta); + host_impl_->ScrollUpdate(AnimatedUpdateState(pointer_position, delta).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_EQ(overflow->scroll_tree_index(), @@ -1834,8 +1887,9 @@ .thread); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_FALSE(host_impl_->IsAnimatingForSnap()); viz::BeginFrameArgs begin_frame_args = @@ -1896,8 +1950,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); // There is a snap target at 50, scroll to it directly. - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_FALSE(host_impl_->IsAnimatingForSnap()); viz::BeginFrameArgs begin_frame_args = @@ -1945,8 +2000,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); // Should be (20, 20) in the scroller's coordinate. - InputHandlerScrollResult result = host_impl_->ScrollBy( - UpdateState(pointer_position, delta, InputHandler::WHEEL).get()); + InputHandlerScrollResult result = host_impl_->ScrollUpdate( + UpdateState(pointer_position, delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), overflow->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(4, 4), result.current_visual_offset); @@ -1984,8 +2040,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); // Should be (20, 20) in the scroller's coordinate. - InputHandlerScrollResult result = host_impl_->ScrollBy( - UpdateState(pointer_position, delta, InputHandler::WHEEL).get()); + InputHandlerScrollResult result = host_impl_->ScrollUpdate( + UpdateState(pointer_position, delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), overflow->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(4, 4), result.current_visual_offset); @@ -2035,8 +2092,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(30, 30), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 30), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2059,8 +2117,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 30), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 30), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2077,8 +2136,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 30), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2095,8 +2155,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, diagonal_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, diagonal_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2120,8 +2181,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(20, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2138,8 +2200,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2156,8 +2219,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, diagonal_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, diagonal_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); @@ -2180,14 +2244,18 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get()); - host_impl_->ScrollBy( - UpdateState(pointer_position, -x_delta, InputHandler::WHEEL).get()); - host_impl_->ScrollBy( - UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get()); - host_impl_->ScrollBy( - UpdateState(pointer_position, -y_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, -x_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, y_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); + host_impl_->ScrollUpdate( + UpdateState(pointer_position, -y_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->CurrentScrollOffset()); @@ -2218,8 +2286,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->CurrentScrollOffset()); @@ -2238,8 +2307,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->CurrentScrollOffset()); @@ -2257,8 +2327,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(scroll_position, scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->CurrentScrollOffset()); @@ -2578,8 +2649,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = @@ -2685,9 +2757,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), @@ -2702,9 +2776,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(1000, 1000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(1000, 1000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(250, 250), @@ -2740,10 +2816,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(250, 250), - gfx::Vector2dF(0.125f, 0.125f), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(250, 250), gfx::Vector2dF(0.125f, 0.125f), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.125f, 0.125f), outer_scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0, 0), @@ -2758,10 +2835,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(250, 250), - gfx::Vector2dF(0.5f, 0.5f), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(250, 250), gfx::Vector2dF(0.5f, 0.5f), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.125f, 0.125f), outer_scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.25f, 0.25f), @@ -2805,9 +2883,11 @@ // Needed so that the pinch is accounted for in draw properties. DrawFrame(); - host_impl_->ScrollBy(UpdateState(gfx::Point(250, 250), gfx::Vector2dF(10, 10), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(250, 250), gfx::Vector2dF(10, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), outer_scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(130, 130), @@ -2815,10 +2895,11 @@ DrawFrame(); - host_impl_->ScrollBy(UpdateState(gfx::Point(250, 250), - gfx::Vector2dF(400, 400), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(250, 250), gfx::Vector2dF(400, 400), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(80, 80), outer_scroll_layer->CurrentScrollOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(250, 250), @@ -2937,9 +3018,10 @@ BeginState(gfx::Point(0, 0), gfx::Vector2dF(10, 20), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(0, 0), gfx::Vector2dF(10, 20), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(5, 10), @@ -2952,9 +3034,11 @@ InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), @@ -2968,9 +3052,11 @@ InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(190, 180), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(190, 180), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(100, 100), @@ -2994,9 +3080,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); host_impl_->QueueSwapPromiseForMainThreadScrollUpdate( std::move(swap_promise)); host_impl_->ScrollEnd(); @@ -3035,19 +3122,22 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), gfx::Vector2d(5, 5), - InputHandler::TOUCHSCREEN) - .get()); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), - gfx::Vector2d(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(5, 5), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); - // The child should be fully scrolled by the first ScrollBy. + // The child should be fully scrolled by the first ScrollUpdate. EXPECT_VECTOR_EQ(gfx::Vector2dF(5, 5), scroll_child->CurrentScrollOffset()); - // The scroll_parent shouldn't receive the second ScrollBy. + // The scroll_parent shouldn't receive the second ScrollUpdate. EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), scroll_parent->CurrentScrollOffset()); @@ -3063,21 +3153,29 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), gfx::Vector2d(3, 4), - InputHandler::TOUCHSCREEN) - .get()); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), - InputHandler::TOUCHSCREEN) - .get()); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), - InputHandler::TOUCHSCREEN) - .get()); - host_impl_->ScrollBy(UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(3, 4), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(21, 21), gfx::Vector2d(2, 1), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); - // The ScrollBy's should scroll the parent to its extent. + // The ScrollUpdate's should scroll the parent to its extent. EXPECT_VECTOR_EQ(gfx::Vector2dF(5, 5), scroll_parent->CurrentScrollOffset()); @@ -3225,10 +3323,11 @@ InputHandler::TOUCHSCREEN); host_impl_->PinchGestureBegin(); host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(10, 10)); - host_impl_->ScrollBy(UpdateState(gfx::Point(10, 10), - gfx::Vector2d(-10, -10), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(10, 10), gfx::Vector2d(-10, -10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(20, 20)); host_impl_->PinchGestureEnd(gfx::Point(20, 20), true); host_impl_->ScrollEnd(); @@ -3263,9 +3362,11 @@ // Needed so layer transform includes page scale. DrawFrame(); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2d(10, 10), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2d(10, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->PinchGestureUpdate(1, gfx::Point(10, 10)); host_impl_->PinchGestureEnd(gfx::Point(10, 10), true); host_impl_->ScrollEnd(); @@ -3306,10 +3407,11 @@ InputHandler::TOUCHSCREEN); host_impl_->PinchGestureBegin(); host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(10, 10)); - host_impl_->ScrollBy(UpdateState(gfx::Point(10, 10), - gfx::Vector2dF(0, -1.001f), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(10, 10), gfx::Vector2dF(0, -1.001f), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point(10, 9)); host_impl_->PinchGestureEnd(gfx::Point(10, 9), true); host_impl_->ScrollEnd(); @@ -3348,9 +3450,11 @@ BeginState(gfx::Point(10, 10), gfx::Vector2dF(0, -1), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy(UpdateState(gfx::Point(10, 10), gfx::Vector2dF(0, -1), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(10, 10), gfx::Vector2dF(0, -1), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); gfx::ScrollOffset active_base = @@ -3875,11 +3979,6 @@ // Ensures scroll gestures coming from scrollbars cause animations in the // appropriate scenarios. TEST_F(LayerTreeHostImplTest, AnimatedGranularityCausesSmoothScroll) { - // Enable animated scrolling - LayerTreeSettings settings = DefaultSettings(); - settings.enable_smooth_scroll = true; - CreateHostImpl(settings, CreateLayerTreeFrameSink()); - gfx::Size viewport_size(300, 200); gfx::Size content_size(1000, 1000); SetupViewportLayersOuterScrolls(viewport_size, content_size); @@ -4103,9 +4202,10 @@ host_impl_->ScrollBegin( BeginState(gfx::Point(), gfx::Vector2dF(), InputHandler::WHEEL).get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(0, 0), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_FALSE(did_request_next_frame_); EXPECT_FALSE(did_request_redraw_); @@ -4139,9 +4239,10 @@ BeginState(gfx::Point(), gfx::Vector2dF(0, 5), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(0, 5), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(did_request_next_frame_); EXPECT_TRUE(did_request_redraw_); did_request_redraw_ = false; @@ -4291,9 +4392,10 @@ BeginState(gfx::Point(), gfx::Vector2dF(0, 5), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(0, 5), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); CreatePendingTree(); @@ -4420,9 +4522,10 @@ BeginState(gfx::Point(20, 20), gfx::Vector2dF(0, 10), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(20, 20), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_TRUE(scrollbar_1_->Opacity()); @@ -4436,7 +4539,9 @@ InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollAnimated(gfx::Point(70, 70), gfx::Vector2d(0, 100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(70, 70), gfx::Vector2d(0, 100)).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_TRUE(scrollbar_1_->Opacity()); @@ -4700,9 +4805,10 @@ BeginState(gfx::Point(), gfx::Vector2dF(10, 10), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(10, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_FALSE(animation_task_.is_null()); animation_task_.Reset(); @@ -4787,9 +4893,10 @@ BeginState(gfx::Point(), gfx::Vector2dF(0, 100), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 100), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // Move the mouse near the thumb in the top position. @@ -4801,9 +4908,10 @@ BeginState(gfx::Point(), gfx::Vector2dF(0, -100), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -100), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // Move the mouse near the thumb in the top position. @@ -5024,9 +5132,10 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); { viz::CompositorFrameMetadata metadata = host_impl_->MakeCompositorFrameMetadata(); @@ -5771,9 +5880,10 @@ // because the outer viewport is sized based on the minimum scale, in this // case 0.5. Therefore, changes to the outer viewport need to be divided by // the minimum scale as well. - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(0, 25), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(0, 25), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VIEWPORT_GEOMETRIES(0.5f); host_impl_->ScrollEnd(); @@ -5911,9 +6021,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 50), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, 50), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); // The entire scroll delta should have been used to hide the browser controls. // The viewport layers should be resized back to their full sizes. @@ -5923,9 +6034,10 @@ EXPECT_EQ(100, outer_scroll->bounds().height()); // The inner viewport should be scrollable by 50px * page_scale. - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(50, inner_scroll->CurrentScrollOffset().y()); EXPECT_EQ(0, outer_scroll->CurrentScrollOffset().y()); EXPECT_EQ(gfx::ScrollOffset(), outer_scroll->MaxScrollOffset()); @@ -5942,9 +6054,10 @@ EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, outer_scroll->scroll_tree_index()); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, -50), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, -50), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); // The entire scroll delta should have been used to show the browser controls. // The outer viewport should be resized to accomodate and scrolled to the @@ -5957,21 +6070,24 @@ // Now when we continue scrolling, make sure the outer viewport gets scrolled // since it wasn't scrollable when the scroll began. - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, -20), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, -20), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(25, outer_scroll->CurrentScrollOffset().y()); EXPECT_EQ(15, inner_scroll->CurrentScrollOffset().y()); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, -30), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, -30), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(25, outer_scroll->CurrentScrollOffset().y()); EXPECT_EQ(0, inner_scroll->CurrentScrollOffset().y()); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0.f, -50), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0.f, -50), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_EQ(0, outer_scroll->CurrentScrollOffset().y()); @@ -6098,8 +6214,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // Browser controls should be hidden @@ -6298,8 +6415,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); // scrolling down at the max extents no longer hides the browser controls EXPECT_EQ(1, host_impl_->active_tree()->CurrentTopControlsShownRatio()); @@ -6331,8 +6449,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // The viewport offset shouldn't have changed. @@ -6364,8 +6483,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_FLOAT_EQ( @@ -6405,8 +6525,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(OuterViewportScrollLayer()->scroll_tree_index(), host_impl_->CurrentlyScrollingNode()->id); @@ -6425,8 +6546,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(0, host_impl_->browser_controls_manager()->ContentTopOffset()); EXPECT_EQ(OuterViewportScrollLayer()->scroll_tree_index(), @@ -6447,8 +6569,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(top_controls_height_, host_impl_->browser_controls_manager()->ContentTopOffset()); @@ -6561,9 +6684,10 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 2000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, 2000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); } @@ -6684,9 +6808,10 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_TRUE(did_request_redraw_); EXPECT_TRUE(did_request_commit_); @@ -6713,9 +6838,10 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_TRUE(did_request_redraw_); EXPECT_TRUE(did_request_commit_); @@ -6815,8 +6941,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // Set new page scale from main thread. @@ -6857,8 +6984,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // Set new page scale on impl thread by pinching. @@ -6955,8 +7083,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); float page_scale = 2; @@ -7012,8 +7141,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = @@ -7069,7 +7199,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, -100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, -100)).get(), + InputHandler::WHEEL); begin_frame_args.frame_time = start_time; begin_frame_args.frame_id.sequence_number++; @@ -7093,7 +7225,9 @@ host_impl_->DidFinishImplFrame(); // Second ScrollAnimated should remain latched to the grand_child_layer. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, -100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, -100)).get(), + InputHandler::WHEEL); begin_frame_args.frame_time = start_time + base::TimeDelta::FromMilliseconds(250); @@ -7151,9 +7285,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = @@ -7178,9 +7313,10 @@ .thread); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, child_layer->scroll_tree_index()); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, child_layer->scroll_tree_index()); host_impl_->ScrollEnd(); @@ -7209,9 +7345,10 @@ .thread); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, grand_child_layer->scroll_tree_index()); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, grand_child_layer->scroll_tree_index()); host_impl_->ScrollEnd(); @@ -7242,9 +7379,10 @@ .thread); EXPECT_EQ(grand_child_layer->scroll_tree_index(), host_impl_->CurrentlyScrollingNode()->id); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); scroll_info = host_impl_->ProcessScrollDeltas(); @@ -7285,10 +7423,11 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy(UpdateState(gfx::Point(), - gfx::ScrollOffsetToVector2dF(scroll_delta), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::ScrollOffsetToVector2dF(scroll_delta), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = @@ -7328,10 +7467,11 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy(UpdateState(gfx::Point(), - gfx::ScrollOffsetToVector2dF(scroll_delta), - InputHandler::WHEEL) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::ScrollOffsetToVector2dF(scroll_delta), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); std::unique_ptr<ScrollAndScaleSet> scroll_info = @@ -7390,9 +7530,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gesture_scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // The layer should have scrolled down in its local coordinates. @@ -7414,11 +7555,12 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::ScrollOffsetToVector2dF(wheel_scroll_delta), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // The layer should have scrolled down in its local coordinates. @@ -7469,9 +7611,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gesture_scroll_delta, - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gesture_scroll_delta, + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // The child layer should have scrolled down in its local coordinates an @@ -7500,9 +7643,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy(UpdateState(gfx::Point(), gesture_scroll_delta, - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gesture_scroll_delta, + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // The child layer should have scrolled down in its local coordinates an @@ -7583,11 +7727,12 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(viewport_point, gfx::ScrollOffsetToVector2dF(gesture_scroll_deltas[i]), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); viewport_point += gfx::ScrollOffsetToFlooredVector2d(gesture_scroll_deltas[i]); host_impl_->ScrollEnd(); @@ -7623,8 +7768,9 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); // The layer should have scrolled down in its local coordinates, but half the @@ -7647,11 +7793,12 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::ScrollOffsetToVector2dF(wheel_scroll_delta), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); // It should apply the scale factor to the scroll delta for the wheel event. @@ -7752,15 +7899,17 @@ .thread); host_impl_->SetSynchronousInputHandlerRootScrollOffset(current_offset); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(ScrollOffsetWithDelta(current_offset, scroll_delta), scroll_watcher.last_set_scroll_offset()); current_offset = gfx::ScrollOffset(42, 41); host_impl_->SetSynchronousInputHandlerRootScrollOffset(current_offset); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(current_offset + gfx::ScrollOffset(scroll_delta), scroll_watcher.last_set_scroll_offset()); host_impl_->ScrollEnd(); @@ -7962,18 +8111,20 @@ .get(), InputHandler::WHEEL) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(), scroll_result.unused_scroll_delta); EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll()); // Overscroll events are reflected immediately. - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 50), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 10), scroll_result.unused_scroll_delta); @@ -7982,9 +8133,10 @@ host_impl_->accumulated_root_overscroll()); // In-bounds scrolling resets accumulated overscroll for the scrolled axes. - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -50), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(), scroll_result.unused_scroll_delta); @@ -7992,9 +8144,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta); @@ -8002,9 +8155,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(10, 0), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_result.unused_scroll_delta); @@ -8012,9 +8166,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(-15, 0), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(-5, 0), scroll_result.unused_scroll_delta); @@ -8022,9 +8177,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 60), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 10), scroll_result.unused_scroll_delta); @@ -8032,9 +8188,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(10, -60), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta); @@ -8044,9 +8201,10 @@ // Overscroll accumulates within the scope of ScrollBegin/ScrollEnd as long // as no scroll occurs. - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -20), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, -20), scroll_result.unused_scroll_delta); @@ -8054,9 +8212,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -20), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, -20), scroll_result.unused_scroll_delta); @@ -8065,9 +8224,10 @@ host_impl_->accumulated_root_overscroll()); // Overscroll resets on valid scroll. - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 0), scroll_result.unused_scroll_delta); @@ -8075,9 +8235,10 @@ EXPECT_EQ(scroll_result.accumulated_root_overscroll, host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, -20), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, -10), scroll_result.unused_scroll_delta); @@ -8124,9 +8285,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, grand_child_layer->scroll_tree_index()); EXPECT_TRUE(scroll_result.did_scroll); @@ -8156,9 +8318,10 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, @@ -8178,9 +8341,10 @@ .thread); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, grand_child_layer->scroll_tree_index()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(host_impl_->CurrentlyScrollingNode()->id, @@ -8206,18 +8370,21 @@ .get(), InputHandler::WHEEL) .thread); - scroll_result = host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + scroll_result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(), host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + scroll_result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 6), host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + scroll_result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 14), host_impl_->accumulated_root_overscroll()); @@ -8245,9 +8412,10 @@ .get(), InputHandler::WHEEL) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF(0, 10), host_impl_->accumulated_root_overscroll()); @@ -8271,17 +8439,19 @@ .get(), InputHandler::WHEEL) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(0, 100), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF().ToString(), host_impl_->accumulated_root_overscroll().ToString()); - scroll_result = host_impl_->ScrollBy(UpdateState(gfx::Point(), - gfx::Vector2dF(0, -2.30f), - InputHandler::WHEEL) - .get()); + scroll_result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2dF(0, -2.30f), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF().ToString(), @@ -8297,19 +8467,21 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - scroll_result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 20), - InputHandler::TOUCHSCREEN) - .get()); + scroll_result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2dF(0, 20), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(scroll_result.did_scroll); EXPECT_TRUE(scroll_result.did_overscroll_root); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.000000f, 17.699997f), host_impl_->accumulated_root_overscroll()); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(0.02f, -0.01f), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_VECTOR2DF_EQ(gfx::Vector2dF(0.000000f, 17.699997f), @@ -8325,10 +8497,11 @@ .get(), InputHandler::WHEEL) .thread); - scroll_result = host_impl_->ScrollBy( + scroll_result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2dF(-0.12f, 0.1f), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); EXPECT_FALSE(scroll_result.did_scroll); EXPECT_FALSE(scroll_result.did_overscroll_root); EXPECT_EQ(gfx::Vector2dF().ToString(), @@ -8358,9 +8531,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(100, 100), scroll_layer->CurrentScrollOffset()); @@ -8371,10 +8546,11 @@ // Continue the scroll. Ensure that scrolling beyond the child's extent // doesn't consume the delta but it isn't counted as overscroll. { - InputHandlerScrollResult result = host_impl_->ScrollBy( + InputHandlerScrollResult result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(0, 0), gfx::Vector2dF(120, 140), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(200, 200), scroll_layer->CurrentScrollOffset()); @@ -8386,10 +8562,11 @@ // Continue the scroll. Ensure that scrolling beyond the child's extent // doesn't consume the delta but it isn't counted as overscroll. { - InputHandlerScrollResult result = host_impl_->ScrollBy( + InputHandlerScrollResult result = host_impl_->ScrollUpdate( UpdateState(gfx::Point(0, 0), gfx::Vector2dF(20, 40), InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(200, 200), scroll_layer->CurrentScrollOffset()); @@ -8474,10 +8651,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(1000, 1000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(1000, 1000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_EQ(1, host_impl_->active_tree()->CurrentTopControlsShownRatio()); @@ -8498,19 +8676,22 @@ BeginState(gfx::Point(0, 0), scroll_delta, InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(0, host_impl_->active_tree()->CurrentTopControlsShownRatio()); EXPECT_VECTOR_EQ(gfx::Vector2dF(), inner_scroll_layer->CurrentScrollOffset()); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); - host_impl_->ScrollBy( + .get(), + InputHandler::TOUCHSCREEN); + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 10), inner_scroll_layer->CurrentScrollOffset()); @@ -8557,9 +8738,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(200, 200), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(200, 200), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(200, 200), @@ -8570,9 +8753,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(200, 200), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(200, 200), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), @@ -8591,9 +8776,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(), @@ -8621,9 +8808,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(50, 50), @@ -8634,9 +8823,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 0), @@ -8688,10 +8879,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(1000, 1000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(1000, 1000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(600, 600), @@ -8706,10 +8898,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(1000, 1000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(1000, 1000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(600, 600), @@ -8746,9 +8939,9 @@ EXPECT_VECTOR_EQ(gfx::Vector2dF(anchor.x() / 2, anchor.y() / 2), inner_scroll_layer->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(anchor, viewport_size_vec, InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(anchor, viewport_size_vec, InputHandler::TOUCHSCREEN).get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(ScaleVector2d(viewport_size_vec, 1 / page_scale_factor), inner_scroll_layer->CurrentScrollOffset()); @@ -8779,10 +8972,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(2000, 2000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(2000, 2000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(600, 600), @@ -8796,10 +8990,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(2000, 2000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(2000, 2000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(ScaleVector2d(viewport_size_vec, 1 / page_scale_factor), @@ -8813,10 +9008,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), - gfx::Vector2dF(2000, 2000), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(2000, 2000), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(), @@ -10546,11 +10742,13 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); host_impl_->ScrollEnd(); EXPECT_EQ(0, set_needs_commit_count); @@ -10566,11 +10764,13 @@ .get(), InputHandler::TOUCHSCREEN) .thread); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, 10), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); host_impl_->ScrollEnd(); EXPECT_EQ(0, set_needs_commit_count); @@ -10678,10 +10878,11 @@ EXPECT_EQ(gfx::Vector2dF().ToString(), scroll_layer->CurrentScrollOffset().ToString()); - result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()); + result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_EQ(result.unused_scroll_delta, gfx::Vector2d(0, 0)); EXPECT_TRUE(result.did_scroll); EXPECT_FLOAT_EQ(-offset, @@ -10692,10 +10893,11 @@ // Scroll across the boundary const float content_scroll = 20; offset = residue + content_scroll; - result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()); + result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(result.did_scroll); EXPECT_EQ(result.unused_scroll_delta, gfx::Vector2d(0, 0)); EXPECT_EQ(-top_controls_height_, @@ -10705,10 +10907,11 @@ // Now scroll back to the top of the content offset = -content_scroll; - result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()); + result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(result.did_scroll); EXPECT_EQ(result.unused_scroll_delta, gfx::Vector2d(0, 0)); EXPECT_EQ(-top_controls_height_, @@ -10718,10 +10921,11 @@ // And scroll the browser controls completely into view offset = -top_controls_height_; - result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()); + result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(result.did_scroll); EXPECT_EQ(result.unused_scroll_delta, gfx::Vector2d(0, 0)); EXPECT_EQ(0, host_impl_->browser_controls_manager()->ControlsTopOffset()); @@ -10729,10 +10933,11 @@ scroll_layer->CurrentScrollOffset().ToString()); // And attempt to scroll past the end - result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()); + result = host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_FALSE(result.did_scroll); EXPECT_EQ(result.unused_scroll_delta, gfx::Vector2d(0, -50)); EXPECT_EQ(0, host_impl_->browser_controls_manager()->ControlsTopOffset()); @@ -10766,21 +10971,25 @@ // Wheel scrolls should not affect the browser controls, and should pass // directly through to the viewport. - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, delta), - InputHandler::WHEEL) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, delta), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL) + .did_scroll); EXPECT_FLOAT_EQ(0, host_impl_->browser_controls_manager()->ControlsTopOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, delta), viewport_layer->CurrentScrollOffset()); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, delta), - InputHandler::WHEEL) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, delta), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL) + .did_scroll); EXPECT_FLOAT_EQ(0, host_impl_->browser_controls_manager()->ControlsTopOffset()); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, delta * 2), @@ -10812,11 +11021,13 @@ scroll_layer->CurrentScrollOffset().ToString()); // Scroll the browser controls partially. - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_FLOAT_EQ(-offset, host_impl_->browser_controls_manager()->ControlsTopOffset()); EXPECT_EQ(gfx::Vector2dF().ToString(), @@ -10902,11 +11113,13 @@ scroll_layer->CurrentScrollOffset().ToString()); // Scroll the browser controls partially. - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_FLOAT_EQ(-offset, host_impl_->browser_controls_manager()->ControlsTopOffset()); EXPECT_EQ(gfx::Vector2dF(0, initial_scroll_offset).ToString(), @@ -10976,29 +11189,35 @@ .thread); EXPECT_EQ(0, host_impl_->browser_controls_manager()->ControlsTopOffset()); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_EQ(-offset, host_impl_->browser_controls_manager()->ControlsTopOffset()); EXPECT_EQ(gfx::Vector2dF().ToString(), scroll_layer->CurrentScrollOffset().ToString()); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_EQ(gfx::Vector2dF(0, offset).ToString(), scroll_layer->CurrentScrollOffset().ToString()); - EXPECT_TRUE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE( + host_impl_ + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); // Should have fully scrolled EXPECT_EQ(gfx::Vector2dF(0, scroll_layer->MaxScrollOffset().y()).ToString(), @@ -11007,23 +11226,26 @@ float overscrollamount = 10; // Overscroll the content - EXPECT_FALSE(host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), - gfx::Vector2d(0, overscrollamount), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_FALSE( + host_impl_ + ->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, overscrollamount), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_EQ(gfx::Vector2dF(0, 2 * offset).ToString(), scroll_layer->CurrentScrollOffset().ToString()); EXPECT_EQ(gfx::Vector2dF(0, overscrollamount).ToString(), host_impl_->accumulated_root_overscroll().ToString()); - EXPECT_TRUE( - host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, -2 * offset), - InputHandler::TOUCHSCREEN) - .get()) - .did_scroll); + EXPECT_TRUE(host_impl_ + ->ScrollUpdate( + UpdateState(gfx::Point(), gfx::Vector2d(0, -2 * offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) + .did_scroll); EXPECT_EQ(gfx::Vector2dF(0, 0).ToString(), scroll_layer->CurrentScrollOffset().ToString()); EXPECT_EQ(-offset, @@ -11031,9 +11253,10 @@ EXPECT_TRUE( host_impl_ - ->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2d(0, -offset), - InputHandler::TOUCHSCREEN) - .get()) + ->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2d(0, -offset), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN) .did_scroll); EXPECT_EQ(gfx::Vector2dF(0, 0).ToString(), scroll_layer->CurrentScrollOffset().ToString()); @@ -11085,9 +11308,11 @@ InputHandler::TOUCHSCREEN) .get(), InputHandler::TOUCHSCREEN); - host_impl_->ScrollBy(UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(0, 0), gfx::Vector2dF(100, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(), outer_scroll->CurrentScrollOffset()); @@ -11163,9 +11388,10 @@ EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); // Scroll near the edge of the outer viewport. - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), scroll_delta, InputHandler::TOUCHSCREEN) - .get()); + .get(), + InputHandler::TOUCHSCREEN); inner_expected += scroll_delta; EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); @@ -11175,10 +11401,11 @@ // Now diagonal scroll across the outer viewport boundary in a single event. // The entirety of the scroll should be consumed, as bubbling between inner // and outer viewport layers is perfect. - host_impl_->ScrollBy(UpdateState(gfx::Point(), - gfx::ScaleVector2d(scroll_delta, 2), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), gfx::ScaleVector2d(scroll_delta, 2), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); outer_expected += scroll_delta; inner_expected += scroll_delta; @@ -11254,9 +11481,10 @@ InputHandler::TOUCHSCREEN) .thread); scroll_result = - host_impl_->ScrollBy(UpdateState(gfx::Point(), gfx::Vector2dF(0, 100), - InputHandler::TOUCHSCREEN) - .get()); + host_impl_->ScrollUpdate(UpdateState(gfx::Point(), gfx::Vector2dF(0, 100), + InputHandler::TOUCHSCREEN) + .get(), + InputHandler::TOUCHSCREEN); EXPECT_VECTOR_EQ(gfx::Vector2dF(), inner_scroll->CurrentScrollOffset()); // When inner viewport is unscrollable, a fling gives zero overscroll. @@ -11624,6 +11852,33 @@ EXPECT_EQ(node->surface_contents_scale, gfx::Vector2dF(1, 1)); } +#if defined(OS_MACOSX) +// Ensure Mac wheel scrolling causes instant scrolling. This test can be removed +// once https://crbug.com/574283 is fixed. +TEST_F(LayerTreeHostImplTest, MacWheelIsNonAnimated) { + const gfx::Size content_size(1000, 1000); + const gfx::Size viewport_size(50, 100); + SetupViewportLayersOuterScrolls(viewport_size, content_size); + LayerImpl* scrolling_layer = OuterViewportScrollLayer(); + + host_impl_->set_force_smooth_wheel_scrolling_for_testing(false); + ASSERT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, + host_impl_ + ->ScrollBegin(BeginState(gfx::Point(), gfx::Vector2d(0, 50), + InputHandler::WHEEL) + .get(), + InputHandler::WHEEL) + .thread); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); + + // Ensure the scroll update happens immediately. + EXPECT_EQ(scrolling_layer->CurrentScrollOffset().y(), 50); + host_impl_->ScrollEnd(); +} +#endif + TEST_F(LayerTreeHostImplTest, ScrollAnimated) { const gfx::Size content_size(1000, 1000); const gfx::Size viewport_size(50, 100); @@ -11653,7 +11908,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); EXPECT_EQ(0, set_needs_commit_count); EXPECT_EQ(1, set_needs_redraw_count); @@ -11692,7 +11949,9 @@ &set_needs_commit_count, &set_needs_redraw_count)); // Update target. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_EQ(0, set_needs_commit_count); @@ -11751,7 +12010,8 @@ auto begin_state = BeginState(position, gfx::Vector2d(0, 50), InputHandler::WHEEL); host_impl_->ScrollBegin(begin_state.get(), InputHandler::WHEEL); - host_impl_->ScrollAnimated(position, gfx::Vector2d(0, 50)); + auto update_state = AnimatedUpdateState(position, gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate(update_state.get(), InputHandler::WHEEL); EXPECT_EQ(outer_scroll->scroll_tree_index(), host_impl_->CurrentlyScrollingNode()->id); @@ -11857,8 +12117,12 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(10, 10), gfx::Vector2d(0, 10)); - host_impl_->ScrollAnimated(gfx::Point(10, 10), gfx::Vector2d(0, 20)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(10, 10), gfx::Vector2d(0, 10)).get(), + InputHandler::WHEEL); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(10, 10), gfx::Vector2d(0, 20)).get(), + InputHandler::WHEEL); // Scrolling the inner viewport happens through the Viewport class which // uses the outer viewport to represent "latched to the viewport". @@ -12037,11 +12301,15 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); // This will call ScrollOffsetAnimationCurve::UpdateTarget while the animation // created above is in state ANIMATION::WAITING_FOR_TARGET_AVAILABILITY and // doesn't have a start time. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get(), + InputHandler::WHEEL); begin_frame_args.frame_time = start_time + base::TimeDelta::FromMilliseconds(250); @@ -12088,8 +12356,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 100), - base::TimeDelta::FromMilliseconds(100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get(), + InputHandler::WHEEL, base::TimeDelta::FromMilliseconds(100)); LayerImpl* scrolling_layer = OuterViewportScrollLayer(); EXPECT_EQ(scrolling_layer->scroll_tree_index(), @@ -12116,8 +12385,9 @@ host_impl_->DidFinishImplFrame(); // Update target. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 100), - base::TimeDelta::FromMilliseconds(150)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 100)).get(), + InputHandler::WHEEL, base::TimeDelta::FromMilliseconds(150)); // Third tick after 100ms, should be at the target position since update // target was called with a large value of jank. @@ -12152,7 +12422,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); LayerImpl* scrolling_layer = OuterViewportScrollLayer(); EXPECT_EQ(scrolling_layer->scroll_tree_index(), @@ -12197,7 +12469,7 @@ // Use "precise pixel" granularity to avoid animating. update_state->data()->delta_granularity = static_cast<double>( ui::input_types::ScrollGranularity::kScrollByPrecisePixel); - host_impl_->ScrollBy(update_state.get()); + host_impl_->ScrollUpdate(update_state.get(), InputHandler::WHEEL); EXPECT_TRUE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point(0, y + 50))); host_impl_->ScrollEnd(); EXPECT_FALSE(host_impl_->IsCurrentlyScrollingLayerAt(gfx::Point())); @@ -12234,7 +12506,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); LayerImpl* scrolling_layer = OuterViewportScrollLayer(); EXPECT_EQ(scrolling_layer->scroll_tree_index(), @@ -12260,7 +12534,9 @@ EXPECT_TRUE(y > 1 && y < 49); // Update target. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(0, 50)).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); host_impl_->DidFinishImplFrame(); @@ -12322,7 +12598,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(10, 20)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(10, 20)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); EXPECT_EQ(outer_scroll_layer->scroll_tree_index(), @@ -12338,7 +12616,9 @@ // Scroll by the inner viewport's max scroll extent, the remainder // should bubble up to the outer viewport. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(100, 100)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(100, 100)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); EXPECT_EQ(outer_scroll_layer->scroll_tree_index(), @@ -12354,7 +12634,9 @@ // Scroll by the outer viewport's max scroll extent, it should all go to the // outer viewport. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(190, 180)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(190, 180)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); EXPECT_EQ(outer_scroll_layer->scroll_tree_index(), @@ -12370,7 +12652,9 @@ // Scroll upwards by the max scroll extent. The inner viewport should animate // and the remainder should bubble to the outer viewport. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(-110, -120)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(-110, -120)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); EXPECT_EQ(outer_scroll_layer->scroll_tree_index(), @@ -12414,7 +12698,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(90, 90)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(90, 90)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); // When either the inner or outer node is being scrolled, the outer node is @@ -12432,7 +12718,9 @@ outer_scroll_layer->CurrentScrollOffset()); // Update target. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(50, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(50, 50)).get(), + InputHandler::WHEEL); host_impl_->Animate(); host_impl_->UpdateAnimationState(true); EXPECT_EQ(outer_scroll_layer->scroll_tree_index(), @@ -12476,7 +12764,9 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(50, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(50, 50)).get(), + InputHandler::WHEEL); EXPECT_EQ(scrolling_layer->scroll_tree_index(), host_impl_->CurrentlyScrollingNode()->id); @@ -12503,7 +12793,9 @@ EXPECT_TRUE(y > 1 && y < 49); // Update target. - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(50, 50)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(50, 50)).get(), + InputHandler::WHEEL); host_impl_->DidFinishImplFrame(); begin_frame_args.frame_time = @@ -12558,7 +12850,9 @@ BeginState(gfx::Point(), gfx::Vector2d(500, 500), InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(500, 500)); + host_impl_->ScrollUpdate( + AnimatedUpdateState(gfx::Point(), gfx::Vector2d(500, 500)).get(), + InputHandler::WHEEL); EXPECT_EQ(scrolling_layer->scroll_tree_index(), host_impl_->CurrentlyScrollingNode()->id); @@ -12691,8 +12985,9 @@ .thread); EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->CurrentScrollOffset()); - host_impl_->ScrollBy( - UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get()); + host_impl_->ScrollUpdate( + UpdateState(gfx::Point(), scroll_delta, InputHandler::WHEEL).get(), + InputHandler::WHEEL); host_impl_->ScrollEnd(); EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 2.5), scroll_layer->CurrentScrollOffset()); @@ -13736,9 +14031,10 @@ .get(), InputHandler::WHEEL) .thread); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), gfx::Vector2d(0, 10), InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); { RenderFrameMetadata metadata = StartDrawAndProduceRenderFrameMetadata(); EXPECT_EQ(gfx::Vector2dF(0, 10), metadata.root_scroll_offset); @@ -13959,9 +14255,10 @@ BeginState(gfx::Point(), test_leg.scroll_delta, InputHandler::WHEEL) .get(), InputHandler::WHEEL); - host_impl_->ScrollBy( + host_impl_->ScrollUpdate( UpdateState(gfx::Point(), test_leg.scroll_delta, InputHandler::WHEEL) - .get()); + .get(), + InputHandler::WHEEL); } // Trigger draw. @@ -13978,9 +14275,9 @@ } } -// Tests ScrollBy() to see if the method sets the scroll tree's currently +// Tests ScrollUpdate() to see if the method sets the scroll tree's currently // scrolling node. -TEST_F(LayerTreeHostImplTest, ScrollByDoesNotSetScrollingNode) { +TEST_F(LayerTreeHostImplTest, ScrollUpdateDoesNotSetScrollingNode) { SetupViewportLayersInnerScrolls(gfx::Size(50, 50), gfx::Size(100, 100)); UpdateDrawProperties(host_impl_->active_tree()); @@ -14001,7 +14298,7 @@ ScrollNode* scroll_node = scroll_tree.CurrentlyScrollingNode(); EXPECT_TRUE(scroll_node); - host_impl_->ScrollBy(scroll_state.get()); + host_impl_->ScrollUpdate(scroll_state.get(), InputHandler::TOUCHSCREEN); // Check to see the scroll tree's currently scrolling node is // still the same. @@ -14011,7 +14308,7 @@ host_impl_->active_tree()->SetCurrentlyScrollingNode(nullptr); EXPECT_FALSE(scroll_tree.CurrentlyScrollingNode()); - host_impl_->ScrollBy(scroll_state.get()); + host_impl_->ScrollUpdate(scroll_state.get(), InputHandler::TOUCHSCREEN); EXPECT_EQ(nullptr, scroll_tree.CurrentlyScrollingNode()); }
diff --git a/cc/trees/layer_tree_host_unittest_scroll.cc b/cc/trees/layer_tree_host_unittest_scroll.cc index 0d3020e2..39cfa35 100644 --- a/cc/trees/layer_tree_host_unittest_scroll.cc +++ b/cc/trees/layer_tree_host_unittest_scroll.cc
@@ -716,7 +716,8 @@ InputHandler::ScrollStatus status = impl->ScrollBegin( BeginState(scroll_point).get(), InputHandler::TOUCHSCREEN); EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread); - impl->ScrollBy(UpdateState(gfx::Point(), scroll_amount_).get()); + impl->ScrollUpdate(UpdateState(gfx::Point(), scroll_amount_).get(), + InputHandler::TOUCHSCREEN); auto* scrolling_node = impl->CurrentlyScrollingNode(); CHECK(scrolling_node); impl->ScrollEnd(); @@ -741,7 +742,8 @@ InputHandler::ScrollStatus status = impl->ScrollBegin( BeginState(scroll_point).get(), InputHandler::WHEEL); EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, status.thread); - impl->ScrollBy(UpdateState(gfx::Point(), scroll_amount_).get()); + impl->ScrollUpdate(UpdateState(gfx::Point(), scroll_amount_).get(), + InputHandler::WHEEL); impl->ScrollEnd(); // Check the scroll is applied as a delta. @@ -1135,7 +1137,7 @@ update_scroll_state_data.delta_y = offset.y(); std::unique_ptr<ScrollState> update_scroll_state( new ScrollState(update_scroll_state_data)); - host_impl->ScrollBy(update_scroll_state.get()); + host_impl->ScrollUpdate(update_scroll_state.get(), InputHandler::TOUCHSCREEN); host_impl->ScrollEnd(true /* should_snap */); }
diff --git a/chrome/VERSION b/chrome/VERSION index 9b691c3..9e1891a 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=81 MINOR=0 -BUILD=4023 +BUILD=4024 PATCH=0
diff --git a/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_header.xml b/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_header.xml index b3112fa..5e06cf15 100644 --- a/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_header.xml +++ b/chrome/android/features/autofill_assistant/java/res/layout/autofill_assistant_header.xml
@@ -7,24 +7,20 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <!-- Horizontal spacing is 24dp, on end it's 16dp from LinearLayout + 8dp - from ChromeImageView. --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="56dp" android:orientation="horizontal" android:paddingStart="@dimen/autofill_assistant_header_horizontal_spacing" - android:paddingEnd="16dp"> - <!-- Move poodle down the same space as profile icon. --> + android:paddingEnd="@dimen/autofill_assistant_header_horizontal_spacing"> <LinearLayout android:id="@+id/poodle_wrapper" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_marginTop="@dimen/autofill_assistant_profile_icon_padding"/> - <!-- 16dp on start, 24dp on end which are 16dp from the TextView + 8dp from - ChromeImageView. --> + android:orientation="horizontal"/> + <!-- 16dp on start which are 8dp from the TextView + 8dp from the poodle. --> + <!-- 24dp on end which are 16dp from the TextView + 8dp from the ChromeImageView. --> <!-- 14dp on top (as margin, to prevent overlap with toolbar) visual alignment. --> <TextView android:id="@+id/status_message" @@ -32,7 +28,7 @@ android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="center_vertical" - android:paddingStart="16dp" + android:paddingStart="8dp" android:paddingEnd="16dp" android:layout_marginTop="14dp" android:layout_marginBottom="@dimen/autofill_assistant_header_text_vertical_spacing"
diff --git a/chrome/android/features/autofill_assistant/java/res/values-v17/dimens.xml b/chrome/android/features/autofill_assistant/java/res/values-v17/dimens.xml index c5932c4c..86c8c204 100644 --- a/chrome/android/features/autofill_assistant/java/res/values-v17/dimens.xml +++ b/chrome/android/features/autofill_assistant/java/res/values-v17/dimens.xml
@@ -9,8 +9,8 @@ <dimen name="autofill_assistant_poodle_size">32dp</dimen> <dimen name="autofill_assistant_profile_size">32dp</dimen> <dimen name="autofill_assistant_info_box_spacing">16dp</dimen> - <dimen name="autofill_assistant_poodle_view_size">32dp</dimen> - <dimen name="autofill_assistant_header_horizontal_spacing">24dp</dimen> + <dimen name="autofill_assistant_poodle_view_size">48dp</dimen> + <dimen name="autofill_assistant_header_horizontal_spacing">16dp</dimen> <dimen name="autofill_assistant_header_text_vertical_spacing">8dp</dimen> <!-- The padding should match autofill_assistant_minimum_touch_target_size - autofill_assistant_profile_size * 2. -->
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_af.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_af.xtb index 920fc8ef..6d93071d 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_af.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_af.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Versteek volskermrooster</translation> <translation id="5082793167783849073">Vergelyk bladsye vinnig deur 'n groep te maak. Raak en hou 'n skakel om te begin.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> oortjies gegroepeer</translation> -<translation id="5792534911093536736">Meer oortjies</translation> <translation id="58326064309361797">Sleep oortjies om hulle te groepeer</translation> <translation id="6040143037577758943">Maak toe</translation> <translation id="6193448654517602979">Kies oortjies</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb index f14f3c2..4571dee 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_am.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">የሙሉ ማያ ፍርግርግን ደብቅ</translation> <translation id="5082793167783849073">ስብስብ በመፍጠር በፍጥነት ገጾችን ያነጻጽሩ። ለመጀመር አንድ አገናኝን ነክተው ይያዙ።</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ትሮች ተሰብስበዋል</translation> -<translation id="5792534911093536736">ተጨማሪ ትሮች</translation> <translation id="58326064309361797">ለመቦደን ትሮችን ይጎትቱ</translation> <translation id="6040143037577758943">ዝጋ</translation> <translation id="6193448654517602979">ትሮችን ምረጥ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb index 398c180..ad964182 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ar.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">إخفاء شبكة ملء الشاشة</translation> <translation id="5082793167783849073">يُرجى مقارنة الصفحات بسرعة من خلال إنشاء مجموعة. للبدء، المس رابطًا مع الاستمرار.</translation> <translation id="5580090775658607195">تم دمج <ph name="TAB_COUNT" /> علامة تبويب.</translation> -<translation id="5792534911093536736">المزيد من علامات التبويب</translation> <translation id="58326064309361797">سحب علامات التبويب لتجميعها</translation> <translation id="6040143037577758943">إغلاق</translation> <translation id="6193448654517602979">اختيار علامات التبويب</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">مراجعة الاقتراحات</translation> <translation id="7885132941432959125">نقل علامة التبويب إلى اليسار</translation> <translation id="7966321538264951561">رفض الاقتراحات</translation> +<translation id="814503310257431685">عرض الكل</translation> <translation id="8205266828577616993">نقل علامة التبويب إلى الأعلى</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{إغلاق علامة تبويب واحدة محدّدة (<ph name="TABS_COUNT_ONE" />)}zero{إغلاق <ph name="TABS_COUNT_MANY" /> علامة تبويب محدّدة}two{إغلاق علامتَي تبويب محدّدتَين (<ph name="TABS_COUNT_MANY" />)}few{إغلاق <ph name="TABS_COUNT_MANY" /> علامات تبويب محدّدة}many{إغلاق <ph name="TABS_COUNT_MANY" /> علامة تبويب محدّدة}other{إغلاق <ph name="TABS_COUNT_MANY" /> علامة تبويب محدّدة}}</translation> <translation id="9150694013019234766">يمكنك التبديل بين علامات التبويب ضمن المجموعة بالقرب من أسفل الشاشة.</translation>
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 3bc7039..91ce49c 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">সম্পূৰ্ণ স্ক্রীণৰ গ্ৰিড লুকুৱাওক</translation> <translation id="5082793167783849073">এটা গোট বনাই পৃষ্ঠাসমূহ দ্ৰুতভাৱে তুলনা কৰক। আৰম্ভ কৰিবলৈ এটা লিংকত স্পৰ্শ কৰি ধৰি ৰাখক।</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />টা টেব এক গোট কৰা হৈছে</translation> -<translation id="5792534911093536736">অধিক টেব</translation> <translation id="58326064309361797">এক গোট কৰিবলৈ টেববোৰ টানি আনি এৰক</translation> <translation id="6040143037577758943">বন্ধ কৰক</translation> <translation id="6193448654517602979">টেবসমূহ বাছনি কৰক</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb index b3ce734..7ee7248 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_az.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Tam ekran cədvəlini gizlədin</translation> <translation id="5082793167783849073">Qruplaşdırmaqla səhifələri asanlıqla müqayisə edin. Başlamaq üçün linkə toxunub saxlayın.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tab qruplaşdırıldı</translation> -<translation id="5792534911093536736">Daha çox tab</translation> <translation id="58326064309361797">Tabları qruplaşdırmaq üçün sürüşdürün</translation> <translation id="6040143037577758943">Qapat</translation> <translation id="6193448654517602979">Tablar seçin</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 b8b0235..86e25a50 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Схаваць поўнаэкранную сетку</translation> <translation id="5082793167783849073">Каб хутка параўнаць старонкі, можна стварыць групу. Для гэтага дакраніцеся да спасылкі і ўтрымлівайце яе.</translation> <translation id="5580090775658607195">Укладак згрупавана: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Іншыя ўкладкі</translation> <translation id="58326064309361797">Каб згрупаваць укладкі, перацягвайце іх</translation> <translation id="6040143037577758943">Закрыць</translation> <translation id="6193448654517602979">Выберыце ўкладкі</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 656d6e4..0e96fb1d 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Скриване на решетката на цял екран</translation> <translation id="5082793167783849073">Сравнявайте бързо страници, като създадете група. За да започнете, докоснете и задръжте дадена връзка.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> раздела са групирани</translation> -<translation id="5792534911093536736">Още раздели</translation> <translation id="58326064309361797">Преместете с плъзгане разделите, за да ги групирате</translation> <translation id="6040143037577758943">Затваряне</translation> <translation id="6193448654517602979">Избиране на раздели</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Преглед на предложенията.</translation> <translation id="7885132941432959125">Преместване на раздела надясно</translation> <translation id="7966321538264951561">Отхвърляне на предложенията.</translation> +<translation id="814503310257431685">Преглед на всички</translation> <translation id="8205266828577616993">Преместване на раздела нагоре</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Затваряне на избрания <ph name="TABS_COUNT_ONE" /> раздел}other{Затваряне на избраните <ph name="TABS_COUNT_MANY" /> раздела}}</translation> <translation id="9150694013019234766">Превключвайте между разделите в групата в долната част на екрана</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 241c457..fbd953a 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ফুলস্ক্রিন গ্রিড লুকান</translation> <translation id="5082793167783849073">একটি গ্রুপ তৈরি করে দ্রুত পৃষ্ঠাগুলির তুলনা করুন। শুরু করতে, কোনও একটি লিঙ্ক স্পর্শ করে ধরে থাকুন।</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />টি ট্যাব গ্রুপ করা হয়েছে</translation> -<translation id="5792534911093536736">আরও ট্যাব</translation> <translation id="58326064309361797">ট্যাবগুলি গ্রুপ করতে ড্র্যাগ করুন</translation> <translation id="6040143037577758943">বন্ধ</translation> <translation id="6193448654517602979">ট্যাব বেছে নিন</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb index ce8a2ea..f65c7cb 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_bs.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Sakrij mrežu cijelog ekrana</translation> <translation id="5082793167783849073">Kreirajte grupu i brzo uporedite stranice. Da započnete, dodirnite i držite link.</translation> <translation id="5580090775658607195">Grupiran je sljedeći broj kartica: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Više kartica</translation> <translation id="58326064309361797">Prevucite kartice da ih grupirate</translation> <translation id="6040143037577758943">Zatvori</translation> <translation id="6193448654517602979">Odaberite kartice</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Pregled prijedloga.</translation> <translation id="7885132941432959125">Pomjeranje kartice udesno</translation> <translation id="7966321538264951561">Odbacivanje prijedloga.</translation> +<translation id="814503310257431685">Pogledaj sve</translation> <translation id="8205266828577616993">Pomjeri karticu prema gore</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zatvaranje <ph name="TABS_COUNT_ONE" /> odabrane kartice}one{Zatvaranje <ph name="TABS_COUNT_MANY" /> odabrane kartice}few{Zatvaranje <ph name="TABS_COUNT_MANY" /> odabrane kartice}other{Zatvaranje <ph name="TABS_COUNT_MANY" /> odabranih kartica}}</translation> <translation id="9150694013019234766">Prebacivanje između kartica unutar grupe kartica pri dnu ekrana</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 ccd62f2..16eac76 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Amaga la quadrícula en pantalla completa</translation> <translation id="5082793167783849073">Crea un grup per comparar pàgines ràpidament. Per començar, mantén premut un enllaç.</translation> <translation id="5580090775658607195">S'han agrupat <ph name="TAB_COUNT" /> pestanyes</translation> -<translation id="5792534911093536736">Més pestanyes</translation> <translation id="58326064309361797">Arrossega les pestanyes per agrupar-les</translation> <translation id="6040143037577758943">Tanca</translation> <translation id="6193448654517602979">Selecciona pestanyes</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Revisa els suggeriments.</translation> <translation id="7885132941432959125">Mou la pestanya cap a la dreta</translation> <translation id="7966321538264951561">Ignora els suggeriments.</translation> +<translation id="814503310257431685">Mostra tot</translation> <translation id="8205266828577616993">Mou la pestanya cap amunt</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Tanca <ph name="TABS_COUNT_ONE" /> pestanya seleccionada}other{Tanca les <ph name="TABS_COUNT_MANY" /> pestanyes seleccionades}}</translation> <translation id="9150694013019234766">Canvia de pestanya al grup de pestanyes de la part inferior de la pantalla</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 08b99b7..05bb1ac 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Skrýt celoobrazovkovou mřížku</translation> <translation id="5082793167783849073">Rychle stránky porovnejte tím, že vytvoříte skupinu. Chcete-li začít, podržte odkaz.</translation> <translation id="5580090775658607195">Byl seskupen tento počet karet: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Další karty</translation> <translation id="58326064309361797">Přetažením můžete karty uspořádat do skupin</translation> <translation id="6040143037577758943">Zavřít</translation> <translation id="6193448654517602979">Vyberte karty</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Zkontrolovat návrhy.</translation> <translation id="7885132941432959125">Přesunout kartu doprava</translation> <translation id="7966321538264951561">Zavřít návrhy.</translation> +<translation id="814503310257431685">Zobrazit vše</translation> <translation id="8205266828577616993">Posunout kartu nahoru</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zavřít <ph name="TABS_COUNT_ONE" /> vybranou kartu}few{Zavřít <ph name="TABS_COUNT_MANY" /> vybrané karty}many{Zavřít <ph name="TABS_COUNT_MANY" /> vybrané karty}other{Zavřít <ph name="TABS_COUNT_MANY" /> vybraných karet}}</translation> <translation id="9150694013019234766">Ve skupině karet v dolní části obrazovky můžete přepínat mezi kartami</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb index ca60168..830f873 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_da.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Skjul fuldskærmsgitter</translation> <translation id="5082793167783849073">Sammenlign hurtigt sider ved at oprette en gruppe. Hold et link nede for at starte.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> faner blev grupperet</translation> -<translation id="5792534911093536736">Flere faner</translation> <translation id="58326064309361797">Træk og slip faner for at gruppere dem</translation> <translation id="6040143037577758943">Luk</translation> <translation id="6193448654517602979">Vælg faner</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Gennemgå forslagene.</translation> <translation id="7885132941432959125">Flyt fane til højre</translation> <translation id="7966321538264951561">Afvis forslagene.</translation> +<translation id="814503310257431685">Se alle</translation> <translation id="8205266828577616993">Flyt fane op</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Luk <ph name="TABS_COUNT_ONE" /> valgt fane}one{Luk <ph name="TABS_COUNT_MANY" /> valgt fane}other{Luk de <ph name="TABS_COUNT_MANY" /> valgte faner}}</translation> <translation id="9150694013019234766">Skift mellem faner i din fanegruppe nederst på skærmen</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 ac52a7c..156cdbc 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Vollbildraster ausblenden</translation> <translation id="5082793167783849073">Sie können Seiten schnell miteinander vergleichen, indem Sie eine Gruppe erstellen. Berühren und halten Sie einen Link, um den Vorgang zu starten.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> Tabs gruppiert</translation> -<translation id="5792534911093536736">Mehr Tabs</translation> <translation id="58326064309361797">Tabs zum Gruppieren ziehen</translation> <translation id="6040143037577758943">Schließen</translation> <translation id="6193448654517602979">Tabs auswählen</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Vorschläge ansehen.</translation> <translation id="7885132941432959125">Tab nach rechts verschieben</translation> <translation id="7966321538264951561">Vorschläge ablehnen.</translation> +<translation id="814503310257431685">Alle anzeigen</translation> <translation id="8205266828577616993">Tab nach oben verschieben</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ausgewählten Tab schließen}other{<ph name="TABS_COUNT_MANY" /> ausgewählte Tabs schließen}}</translation> <translation id="9150694013019234766">Am unteren Bildschirmrand können Sie zwischen den Tabs in Ihrer Tabgruppe wechseln</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb index 011275bf..229689fe 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_el.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Απόκρυψη πλέγματος πλήρους οθόνης</translation> <translation id="5082793167783849073">Συγκρίνετε γρήγορα σελίδες δημιουργώντας μια ομάδα. Για να ξεκινήσετε, αγγίξτε παρατεταμένα κάποιον σύνδεσμο.</translation> <translation id="5580090775658607195">Ομαδοποιήθηκαν <ph name="TAB_COUNT" /> καρτέλες</translation> -<translation id="5792534911093536736">Περισσότερες καρτέλες</translation> <translation id="58326064309361797">Σύρετε καρτέλες για να τις ομαδοποιήσετε.</translation> <translation id="6040143037577758943">Κλείσιμο</translation> <translation id="6193448654517602979">Επιλογή καρτελών</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Έλεγχος των προτάσεων.</translation> <translation id="7885132941432959125">Μετακίνηση καρτέλας δεξιά</translation> <translation id="7966321538264951561">Παράβλεψη των προτάσεων.</translation> +<translation id="814503310257431685">Προβολή όλων</translation> <translation id="8205266828577616993">Μετακίνηση καρτέλας επάνω</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Κλείσιμο <ph name="TABS_COUNT_ONE" /> επιλεγμένης καρτέλας}other{Κλείσιμο <ph name="TABS_COUNT_MANY" /> επιλεγμένων καρτελών}}</translation> <translation id="9150694013019234766">Κάντε εναλλαγή μεταξύ των καρτελών στην ομάδα καρτελών σας κοντά στο κάτω μέρος της οθόνης</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_en-GB.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_en-GB.xtb index 3d50da6..b594b228 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_en-GB.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_en-GB.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Hide full-screen grid</translation> <translation id="5082793167783849073">Quickly compare pages by making a group. To start, touch and hold a link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tabs grouped</translation> -<translation id="5792534911093536736">More tabs</translation> <translation id="58326064309361797">Drag tabs to group them</translation> <translation id="6040143037577758943">Close</translation> <translation id="6193448654517602979">Select tabs</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Review the suggestions.</translation> <translation id="7885132941432959125">Move tab right</translation> <translation id="7966321538264951561">Dismiss the suggestions.</translation> +<translation id="814503310257431685">View all</translation> <translation id="8205266828577616993">Move tab up</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Close <ph name="TABS_COUNT_ONE" /> selected tab}other{Close <ph name="TABS_COUNT_MANY" /> selected tabs}}</translation> <translation id="9150694013019234766">Switch between tabs in your tab group near bottom of screen</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 c285791..76b7f8e7 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Oculta la cuadrícula de pantalla completa</translation> <translation id="5082793167783849073">Forma un grupo para comparar las páginas rápidamente. Para comenzar, mantén presionado un vínculo.</translation> <translation id="5580090775658607195">Se agruparon <ph name="TAB_COUNT" /> pestañas</translation> -<translation id="5792534911093536736">Más pestañas</translation> <translation id="58326064309361797">Arrastra las pestañas para agruparlas</translation> <translation id="6040143037577758943">Cerrar</translation> <translation id="6193448654517602979">Seleccionar pestañas</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Revisa las sugerencias.</translation> <translation id="7885132941432959125">Mover la pestaña a la derecha</translation> <translation id="7966321538264951561">Descarta las sugerencias.</translation> +<translation id="814503310257431685">Ver todos</translation> <translation id="8205266828577616993">Mover la pestaña hacia arriba</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Cierra <ph name="TABS_COUNT_ONE" /> pestaña seleccionada}other{Cierra <ph name="TABS_COUNT_MANY" /> pestañas seleccionadas}}</translation> <translation id="9150694013019234766">Alterna entre las pestañas que aparecen en el grupo de pestañas cerca de la parte inferior de la pantalla</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 72efd17..4b1d9b5 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ocultar la cuadrícula en pantalla completa</translation> <translation id="5082793167783849073">Crea un grupo para comparar páginas rápidamente. Para comenzar, mantén pulsado un enlace.</translation> <translation id="5580090775658607195">Se han agrupado <ph name="TAB_COUNT" /> pestañas</translation> -<translation id="5792534911093536736">Más pestañas</translation> <translation id="58326064309361797">Arrastra las pestañas para agruparlas</translation> <translation id="6040143037577758943">Cerrar</translation> <translation id="6193448654517602979">Selecciona pestañas</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Revisar las sugerencias.</translation> <translation id="7885132941432959125">Mover pestaña a la derecha</translation> <translation id="7966321538264951561">Cerrar las sugerencias.</translation> +<translation id="814503310257431685">Ver todo</translation> <translation id="8205266828577616993">Subir pestaña</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Cerrar <ph name="TABS_COUNT_ONE" /> pestaña seleccionada}other{Cerrar <ph name="TABS_COUNT_MANY" /> pestañas seleccionadas}}</translation> <translation id="9150694013019234766">Cambia de una pestaña a otra en tu grupo de pestañas de la parte inferior de la pantalla</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 f530293..2a23ce7 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Peida täisekraani ruudustik</translation> <translation id="5082793167783849073">Looge rühm, et lehti kiiresti võrrelda. Alustamiseks puudutage pikalt linki.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> vahekaarti grupeeriti</translation> -<translation id="5792534911093536736">Rohkem vahekaarte</translation> <translation id="58326064309361797">Lohistage vahelehti, et neid rühmitata</translation> <translation id="6040143037577758943">Sulge</translation> <translation id="6193448654517602979">Valige vahelehed</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Vaadake soovitused üle.</translation> <translation id="7885132941432959125">Teisalda vaheleht paremale</translation> <translation id="7966321538264951561">Loobuge soovitustest.</translation> +<translation id="814503310257431685">Vaata kõiki</translation> <translation id="8205266828577616993">Teisalda vaheleht üles</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Sule <ph name="TABS_COUNT_ONE" /> valitud vaheleht}other{Sule <ph name="TABS_COUNT_MANY" /> valitud vahelehte}}</translation> <translation id="9150694013019234766">Ekraanikuva allosas olevas vahelehtede grupis vahelehtede vahel vahetamine</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 4df0fb5..801b501 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ezkutatu pantaila osoko sareta</translation> <translation id="5082793167783849073">Egin talde bat orriak azkar alderatzeko. Hasteko, eduki sakatuta esteka bat.</translation> <translation id="5580090775658607195">Taldekatu dira <ph name="TAB_COUNT" /> fitxa</translation> -<translation id="5792534911093536736">Fitxa gehiago</translation> <translation id="58326064309361797">Fitxak taldekatzeko, arrasta itzazu</translation> <translation id="6040143037577758943">Itxi</translation> <translation id="6193448654517602979">Hautatu fitxak</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb index 05891182..2f6ab0d 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fa.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">پنهان کردن شبکه تمامصفحه</translation> <translation id="5082793167783849073">با ایجاد گروه، صفحهها را سریع مقایسه کنید. برای شروع، پیوندی را لمس کنید و نگه دارید.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> برگه گروهبندی شد</translation> -<translation id="5792534911093536736">برگههای بیشتر</translation> <translation id="58326064309361797">برای گروهبندی برگهها، آنها را بکشید</translation> <translation id="6040143037577758943">بستن</translation> <translation id="6193448654517602979">انتخاب برگهها</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 08d96ea..0e5862ba 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Piilota koko näytön ruudukko</translation> <translation id="5082793167783849073">Luo ryhmä vertaillaksesi sivuja nopeasti. Aloita koskettamalla linkkiä pitkään.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> välilehteä ryhmiteltiin</translation> -<translation id="5792534911093536736">Lisää välilehtiä</translation> <translation id="58326064309361797">Ryhmittele välilehtiä vetämällä niitä</translation> <translation id="6040143037577758943">Sulje</translation> <translation id="6193448654517602979">Valitse välilehdet</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Tarkista ehdotukset.</translation> <translation id="7885132941432959125">Siirrä välilehti oikealle</translation> <translation id="7966321538264951561">Ohita ehdotukset.</translation> +<translation id="814503310257431685">Näytä kaikki</translation> <translation id="8205266828577616993">Siirrä välilehti ylöspäin</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Sulje <ph name="TABS_COUNT_ONE" /> valittu välilehti}other{Sulje <ph name="TABS_COUNT_MANY" /> valittua välilehteä}}</translation> <translation id="9150694013019234766">Vaihda välilehteä välilehtiryhmässä näytön alalaidassa</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb index 65b69c933..3f2c6d53 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Itago ang fullscreen grid</translation> <translation id="5082793167783849073">Mabilis na paghambing-hambingin ang mga page sa pamamagitan ng paggawa ng pangkat. Para magsimula, pindutin nang matagal ang isang link.</translation> <translation id="5580090775658607195">Naigrupo ang <ph name="TAB_COUNT" /> tab</translation> -<translation id="5792534911093536736">Higit pang tab</translation> <translation id="58326064309361797">I-drag ang mga tab para pagpangkatin ang mga ito</translation> <translation id="6040143037577758943">Isara</translation> <translation id="6193448654517602979">Pumili ng mga tab</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Suriin ang mga suhestyon.</translation> <translation id="7885132941432959125">Ilipat ang tab sa kanan</translation> <translation id="7966321538264951561">I-dismiss ang mga suhestyon.</translation> +<translation id="814503310257431685">Tingnan lahat</translation> <translation id="8205266828577616993">Ilipat ang tab sa itaas</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Isara ang <ph name="TABS_COUNT_ONE" /> napiling tab}one{Isara ang <ph name="TABS_COUNT_MANY" /> napiling tab}other{Isara ang <ph name="TABS_COUNT_MANY" /> na napiling tab}}</translation> <translation id="9150694013019234766">Magpalipat-lipat sa mga tab sa iyong grupo ng tab malapit sa ibaba ng screen</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb index 45895cd..977f9ef 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fr-CA.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Masquer la grille plein écran</translation> <translation id="5082793167783849073">Comparez rapidement des pages en créant un groupe. Pour commencer, maintenez le doigt sur un lien.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> onglets groupés</translation> -<translation id="5792534911093536736">Plus d'onglets</translation> <translation id="58326064309361797">Faites glisser les onglets pour les grouper</translation> <translation id="6040143037577758943">Fermer</translation> <translation id="6193448654517602979">Sélectionnez des onglets</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 4181109..0b89d158 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Masquer la grille en plein écran</translation> <translation id="5082793167783849073">Comparez rapidement des pages en créant un groupe. Commencez par appuyer de manière prolongée sur un lien.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> onglets regroupés</translation> -<translation id="5792534911093536736">Plus d'onglets</translation> <translation id="58326064309361797">Faire glisser les onglets pour les regrouper</translation> <translation id="6040143037577758943">Fermer</translation> <translation id="6193448654517602979">Sélectionner des onglets</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Afficher les suggestions.</translation> <translation id="7885132941432959125">Déplacer l'onglet vers la droite</translation> <translation id="7966321538264951561">Fermer les suggestions.</translation> +<translation id="814503310257431685">Tout afficher</translation> <translation id="8205266828577616993">Déplacer l'onglet vers le haut</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Fermer l'onglet sélectionné (<ph name="TABS_COUNT_ONE" />)}one{Fermer l'onglet sélectionné (<ph name="TABS_COUNT_MANY" />)}other{Fermer les onglets sélectionnés (<ph name="TABS_COUNT_MANY" />)}}</translation> <translation id="9150694013019234766">Passer d'un onglet à l'autre depuis votre groupe d'onglets dans la partie inférieure de l'écran</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 79f5451..5530270 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ocultar grade en pantalla completa</translation> <translation id="5082793167783849073">Crea un grupo para comparar rapidamente varias páxinas. Para comezar, mantén premida unha ligazón.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> pestanas agrupadas</translation> -<translation id="5792534911093536736">Máis pestanas</translation> <translation id="58326064309361797">Arrastra as pestanas para agrupalas</translation> <translation id="6040143037577758943">Pechar</translation> <translation id="6193448654517602979">Selecciona 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 f50b210..248b0773 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">પૂર્ણસ્ક્રીન ગ્રિડને છુપાવો</translation> <translation id="5082793167783849073">ગ્રૂપ બનાવીને ઝડપથી પેજની સરખામણી કરો. શરૂ કરવા માટે, લિંકને સ્પર્શ કરી રાખો.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ટૅબનું ગ્રૂપ બનાવ્યું</translation> -<translation id="5792534911093536736">વધુ ટૅબ</translation> <translation id="58326064309361797">ટૅબનું ગ્રૂપ બનાવવા માટે તેને ખેંચો</translation> <translation id="6040143037577758943">બંધ કરો</translation> <translation id="6193448654517602979">ટૅબ પસંદ કરો</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 42c4525..63d9329 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">फ़ुलस्क्रीन ग्रिड को छिपाएं</translation> <translation id="5082793167783849073">पेजों की तुलना तुरंत करने के लिए समूह बनाएं. शुरू करने के लिए, लिंक को दबाकर रखें.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> टैब समूह में लगाए गए</translation> -<translation id="5792534911093536736">और ज़्यादा टैब</translation> <translation id="58326064309361797">टैब को समूह में जोड़ने के लिए उन्हें खींचें और छोड़ें</translation> <translation id="6040143037577758943">बंद करें</translation> <translation id="6193448654517602979">टैब चुनें</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">सुझावों की समीक्षा करें.</translation> <translation id="7885132941432959125">टैब को दाईं ओर ले जाएं</translation> <translation id="7966321538264951561">सुझावों को खारिज करें.</translation> +<translation id="814503310257431685">सभी देखें</translation> <translation id="8205266828577616993">टैब ऊपर भेजें</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> चुना गया टैब बंद करें}one{<ph name="TABS_COUNT_MANY" /> चुने गए टैब बंद करें}other{<ph name="TABS_COUNT_MANY" /> चुने गए टैब बंद करें}}</translation> <translation id="9150694013019234766">स्क्रीन के सबसे नीचे दिए गए अपने टैब समूह में एक से दूसरे टैब पर जाएं</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hr.xtb index 9f37814..5612fb9 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hr.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Sakrij rešetku na cijelom zaslonu</translation> <translation id="5082793167783849073">Izradom grupe možete brzo usporediti stranice. Da biste započeli, dodirnite i držite vezu.</translation> <translation id="5580090775658607195">Kartice su grupirane (njih <ph name="TAB_COUNT" />)</translation> -<translation id="5792534911093536736">Više kartica</translation> <translation id="58326064309361797">Povucite kartice da biste ih grupirali</translation> <translation id="6040143037577758943">Zatvori</translation> <translation id="6193448654517602979">Odaberite kartice</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Pregledajte prijedloge.</translation> <translation id="7885132941432959125">Pomakni karticu udesno</translation> <translation id="7966321538264951561">Odbacite prijedloge.</translation> +<translation id="814503310257431685">Pogledaj sve</translation> <translation id="8205266828577616993">Premjestite karticu gore</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zatvori <ph name="TABS_COUNT_ONE" /> odabranu karticu}one{Zatvori <ph name="TABS_COUNT_MANY" /> odabranu karticu}few{Zatvori <ph name="TABS_COUNT_MANY" /> odabrane kartice}other{Zatvori <ph name="TABS_COUNT_MANY" /> odabranih kartica}}</translation> <translation id="9150694013019234766">Prebacujte se između kartica u grupi kartica pri dnu zaslona</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb index 6906cea7..06ff2a6 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hu.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Teljes képernyős rács elrejtése</translation> <translation id="5082793167783849073">Csoport kialakításával gyorsan összehasonlíthat oldalakat. A kezdéshez tartsa lenyomva ujját a kívánt linken.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> lap csoportosítva</translation> -<translation id="5792534911093536736">További lapok</translation> <translation id="58326064309361797">A lapokat húzással csoportosíthatja</translation> <translation id="6040143037577758943">Bezárás</translation> <translation id="6193448654517602979">Lapok kiválasztása</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Javaslatok áttekintése.</translation> <translation id="7885132941432959125">Lap mozgatása jobbra</translation> <translation id="7966321538264951561">Javaslatok elvetése.</translation> +<translation id="814503310257431685">Összes megtekintése</translation> <translation id="8205266828577616993">Lap mozgatása felfelé</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> kijelölt lap bezárása}other{<ph name="TABS_COUNT_MANY" /> kijelölt lap bezárása}}</translation> <translation id="9150694013019234766">Válthat a képernyő aljánál lévő lapcsoport lapjai között</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 4b5ad0187..21ebf48 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Թաքցնել լիաէկրան ցանցը</translation> <translation id="5082793167783849073">Արագ համեմատեք էջերը՝ խումբ կազմելով: Սկսելու համար հպեք և պահեք հղումը:</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ներդիր խմբավորվեց</translation> -<translation id="5792534911093536736">Այլ ներդիրներ</translation> <translation id="58326064309361797">Քաշեք ներդիրները՝ դրանք խմբավորելու համար</translation> <translation id="6040143037577758943">Փակել</translation> <translation id="6193448654517602979">Ընտրեք ներդիրներ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb index 3f07dbb..13f6dc4 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_id.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Sembunyikan petak layar penuh</translation> <translation id="5082793167783849073">Bandingkan halaman secara cepat dengan membuat grup. Untuk memulai, sentuh lama link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tab dikelompokkan</translation> -<translation id="5792534911093536736">Tab lainnya</translation> <translation id="58326064309361797">Tarik tab untuk mengelompokkannya</translation> <translation id="6040143037577758943">Tutup</translation> <translation id="6193448654517602979">Pilih tab</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Tinjau saran.</translation> <translation id="7885132941432959125">Pindahkan tab ke kanan</translation> <translation id="7966321538264951561">Tutup saran.</translation> +<translation id="814503310257431685">Lihat semua</translation> <translation id="8205266828577616993">Pindahkan tab ke atas</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Tutup <ph name="TABS_COUNT_ONE" /> tab yang dipilih}other{Tutup <ph name="TABS_COUNT_MANY" /> tab yang dipilih}}</translation> <translation id="9150694013019234766">Beralih ke tab lain pada grup tab Anda di dekat bagian bawah layar</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb index ff4f3a96..cc80a55 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_is.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Hætta að sýna á öllum skjánum</translation> <translation id="5082793167783849073">Berðu síður saman á fljótlegan hátt með því að búa til hóp. Haltu fingri á tengli til að byrja.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> flipar sameinaðir.</translation> -<translation id="5792534911093536736">Fleiri flipar</translation> <translation id="58326064309361797">Dragðu flipa til að sameina þá</translation> <translation id="6040143037577758943">Loka</translation> <translation id="6193448654517602979">Velja flipa</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb index 51ac0bc..db97571 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_it.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Nascondi la griglia a schermo intero</translation> <translation id="5082793167783849073">Confronta rapidamente le pagine creando un gruppo. Innanzitutto, tocca e tieni premuto un link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> schede raggruppate</translation> -<translation id="5792534911093536736">Altre schede</translation> <translation id="58326064309361797">Trascina le schede per raggrupparle</translation> <translation id="6040143037577758943">Chiudi</translation> <translation id="6193448654517602979">Seleziona schede</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Controlla i suggerimenti.</translation> <translation id="7885132941432959125">Sposta scheda a destra</translation> <translation id="7966321538264951561">Ignora i suggerimenti.</translation> +<translation id="814503310257431685">Visualizza tutti</translation> <translation id="8205266828577616993">Sposta scheda in alto</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Chiudi <ph name="TABS_COUNT_ONE" /> scheda selezionata}other{Chiudi <ph name="TABS_COUNT_MANY" /> schede selezionate}}</translation> <translation id="9150694013019234766">Passa da una scheda all'altra del gruppo di schede nella parte inferiore dello schermo</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb index d5bc8f934..5c94969 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">הסתרת רשת מסך מלא</translation> <translation id="5082793167783849073">כדי להשוות במהירות בין דפים, אפשר ליצור קבוצה. כדי להתחיל, צריך ללחוץ לחיצה ארוכה על קישור.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> כרטיסיות מקובצות</translation> -<translation id="5792534911093536736">כרטיסיות נוספות</translation> <translation id="58326064309361797">ניתן לגרור כרטיסיות כדי לקבץ אותן</translation> <translation id="6040143037577758943">סגור</translation> <translation id="6193448654517602979">בחירת כרטיסיות</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">עיון בהצעות.</translation> <translation id="7885132941432959125">העברת הכרטיסייה שמאלה</translation> <translation id="7966321538264951561">סגירת ההצעות.</translation> +<translation id="814503310257431685">הצג הכל</translation> <translation id="8205266828577616993">העברת הכרטיסיה למעלה</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{סגירה של כרטיסייה אחת (<ph name="TABS_COUNT_ONE" />) שנבחרה}two{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}many{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}other{סגירה של <ph name="TABS_COUNT_MANY" /> כרטיסיות שנבחרו}}</translation> <translation id="9150694013019234766">מעבר בין כרטיסיות בקבוצת הכרטיסיות שבחלק התחתון של המסך</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb index 9d806e2..2d9c8a0 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ja.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">全画面グリッドを非表示</translation> <translation id="5082793167783849073">グループを作成して簡単にページを比較できます。グループを作成するには、リンクを長押しします。</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> 個のタブがグループ化されました</translation> -<translation id="5792534911093536736">その他のタブ</translation> <translation id="58326064309361797">タブをグループ化するにはドラッグします</translation> <translation id="6040143037577758943">閉じる</translation> <translation id="6193448654517602979">タブを選択</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">提案を確認します。</translation> <translation id="7885132941432959125">タブを右に移動</translation> <translation id="7966321538264951561">提案を閉じます。</translation> +<translation id="814503310257431685">すべて表示</translation> <translation id="8205266828577616993">タブを上に移動</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{選択した <ph name="TABS_COUNT_ONE" /> 個のタブを閉じます}other{選択した <ph name="TABS_COUNT_MANY" /> 個のタブを閉じます}}</translation> <translation id="9150694013019234766">画面下部にあるタブグループのタブを切り替えます</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb index 6f1e534..eb1e5dd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ka.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">სრულეკრანიანი ბადის დამალვა</translation> <translation id="5082793167783849073">სწრაფად შეადარეთ გვერდები დაჯგუფების მეშვეობით. დასაწყებად ხანგრძლივად შეეხეთ ბმულს.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ჩანართი დაჯგუფდა</translation> -<translation id="5792534911093536736">სხვა ჩანართები</translation> <translation id="58326064309361797">ჩანართების დასაჯგუფებლად ჩავლებით გადაიტანეთ ისინი</translation> <translation id="6040143037577758943">დახურვა</translation> <translation id="6193448654517602979">აირჩიეთ ჩანართები</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 60f97af..ee0bb27 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Толық экрандық торды жасыру</translation> <translation id="5082793167783849073">Топ жасай отырып, беттерді жылдам салыстырыңыз. Бастау үшін сілтемені басып ұстап тұрыңыз.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> қойынды топталды.</translation> -<translation id="5792534911093536736">Тағы басқа қойындылар</translation> <translation id="58326064309361797">Қойындыларды топтастыру үшін оларды сүйреңіз.</translation> <translation id="6040143037577758943">Жабу</translation> <translation id="6193448654517602979">Қойындыларды таңдау</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb index 1391d650..99f8f24 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_km.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">លាក់ក្រឡាពេញអេក្រង់</translation> <translation id="5082793167783849073">ប្រៀបធៀបទំព័រយ៉ាងរហ័សដោយការបង្កើតក្រុម។ ដើម្បីចាប់ផ្ដើម សូមចុចតំណឱ្យជាប់។</translation> <translation id="5580090775658607195">បានដាក់ផ្ទាំង <ph name="TAB_COUNT" /> ជាក្រុម</translation> -<translation id="5792534911093536736">ផ្ទាំងច្រើនទៀត</translation> <translation id="58326064309361797">អូសផ្ទាំងនានា ដើម្បីដាក់ផ្ទាំងទាំងនោះជាក្រុម</translation> <translation id="6040143037577758943">បិទ</translation> <translation id="6193448654517602979">ជ្រើសរើសផ្ទាំង</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 e7d40bf9..ce88a68 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ಪೂರ್ಣ ಸ್ಕ್ರೀನ್ ಗ್ರಿಡ್ ಅನ್ನು ಮರೆಮಾಡಿ</translation> <translation id="5082793167783849073">ಗುಂಪನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪುಟಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಹೋಲಿಸಿ ನೋಡಿ. ಪ್ರಾರಂಭಿಸಲು, ಲಿಂಕ್ ಸ್ಪರ್ಶಿಸಿ ಹಿಡಿಯಿರಿ.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ಟ್ಯಾಬ್ಗಳನ್ನು ಗುಂಪು ಮಾಡಲಾಗಿದೆ</translation> -<translation id="5792534911093536736">ಇನ್ನಷ್ಟು ಟ್ಯಾಬ್ಗಳು</translation> <translation id="58326064309361797">ಟ್ಯಾಬ್ಗಳನ್ನು ಗುಂಪು ಮಾಡಲು ಅವುಗಳನ್ನು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ</translation> <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation> <translation id="6193448654517602979">ಟ್ಯಾಬ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb index bcd0068..69b77df 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ko.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">전체화면 그리드 숨기기</translation> <translation id="5082793167783849073">그룹을 만들어서 페이지를 빠르게 비교하세요. 시작하려면 링크를 길게 터치합니다.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />개의 탭 그룹화됨</translation> -<translation id="5792534911093536736">탭 더보기</translation> <translation id="58326064309361797">탭을 드래그하여 그룹화하세요.</translation> <translation id="6040143037577758943">닫기</translation> <translation id="6193448654517602979">탭 선택</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">추천을 검토합니다.</translation> <translation id="7885132941432959125">탭을 오른쪽으로 이동</translation> <translation id="7966321538264951561">추천을 닫습니다.</translation> +<translation id="814503310257431685">전체 보기</translation> <translation id="8205266828577616993">탭을 위로 이동</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{선택된 탭 <ph name="TABS_COUNT_ONE" />개 닫기}other{선택된 탭 <ph name="TABS_COUNT_MANY" />개 닫기}}</translation> <translation id="9150694013019234766">화면 하단의 탭 그룹에서 탭 간 전환</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 2d90ab6..15311a8 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Толук экран торчосун жашыруу</translation> <translation id="5082793167783849073">Барактарды топко бириктирип, тез салыштырып чыгыңыз. Баштоо үчүн, шилтемени коё бербей басып туруңуз.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> өтмөк топтолду</translation> -<translation id="5792534911093536736">Дагы өтмөктөр</translation> <translation id="58326064309361797">Топтоо үчүн өтмөктөрдү сүйрөп келиңиз</translation> <translation id="6040143037577758943">Жабуу</translation> <translation id="6193448654517602979">Өтмөктөрдү тандоо</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb index 24466f0..294560df 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lo.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ເຊື່ອງຕາໜ່າງແບບເຕັມຈໍ</translation> <translation id="5082793167783849073">ປຽບທຽບໜ້າຕ່າງໆໄດ້ຢ່າງວ່ອງໄວໂດຍການສ້າງກຸ່ມ. ເພື່ອເລີ່ມຕົ້ນ, ກະລຸນາແຕະລິ້ງຄ້າງໄວ້.</translation> <translation id="5580090775658607195">ຈັດກຸ່ມ <ph name="TAB_COUNT" /> ແຖບແລ້ວ</translation> -<translation id="5792534911093536736">ແຖບເພີ່ມເຕີມ</translation> <translation id="58326064309361797">ລາກແຖບເພື່ອຈັດກຸ່ມພວກມັນ</translation> <translation id="6040143037577758943">ປິດ</translation> <translation id="6193448654517602979">ເລືອກແຖບ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb index a7eb009f..32c1095e 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lt.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Slėpti viso ekrano tinklelį</translation> <translation id="5082793167783849073">Sparčiai palyginkite puslapius sukūrę grupę. Jei norite pradėti, palieskite ir palaikykite nuorodą.</translation> <translation id="5580090775658607195">Sugrupuota tiek skirtukų: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Daugiau skirtukų</translation> <translation id="58326064309361797">Vilkite skirtukus, kad juos sugrupuotumėte</translation> <translation id="6040143037577758943">Uždaryti</translation> <translation id="6193448654517602979">Pasirinkti skirtukus</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Peržiūrėkite pasiūlymus.</translation> <translation id="7885132941432959125">Perkelti skirtuką į dešinę</translation> <translation id="7966321538264951561">Atsisakyti pasiūlymo.</translation> +<translation id="814503310257431685">Rodyti visus</translation> <translation id="8205266828577616993">Perkelti skirtuką į viršų</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Uždaryti <ph name="TABS_COUNT_ONE" /> pasirinktą skirtuką}one{Uždaryti <ph name="TABS_COUNT_MANY" /> pasirinktą skirtuką}few{Uždaryti <ph name="TABS_COUNT_MANY" /> pasirinktus skirtukus}many{Uždaryti <ph name="TABS_COUNT_MANY" /> pasirinkto skirtuko}other{Uždaryti <ph name="TABS_COUNT_MANY" /> pasirinktų skirtukų}}</translation> <translation id="9150694013019234766">Skirtukus perjunkite skirtukų grupėje netoli ekrano apačios</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lv.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lv.xtb index c29840d..dd6ae26 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lv.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_lv.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Slēpt pilnekrāna režģi</translation> <translation id="5082793167783849073">Ātri salīdziniet lapas, izveidojot grupu. Lai sāktu, pieskarieties un turiet saiti.</translation> <translation id="5580090775658607195">Grupētas <ph name="TAB_COUNT" /> cilnes</translation> -<translation id="5792534911093536736">Citas cilnes</translation> <translation id="58326064309361797">Velciet cilnes, lai tās sagrupētu</translation> <translation id="6040143037577758943">Aizvērt</translation> <translation id="6193448654517602979">Atlasiet cilnes</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Pārskatīt ieteikumus.</translation> <translation id="7885132941432959125">Pārvietot cilni pa labi</translation> <translation id="7966321538264951561">Nerādīt ieteikumus.</translation> +<translation id="814503310257431685">Skatīt visu</translation> <translation id="8205266828577616993">Pārvietot cilni uz augšu</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Aizvērt atlasīto cilni (skaits: <ph name="TABS_COUNT_ONE" />)}zero{Aizvērt atlasītās cilnes (skaits: <ph name="TABS_COUNT_MANY" />)}one{Aizvērt atlasītās cilnes (skaits: <ph name="TABS_COUNT_MANY" />)}other{Aizvērt atlasītās cilnes (skaits: <ph name="TABS_COUNT_MANY" />)}}</translation> <translation id="9150694013019234766">Pārslēdziet cilnes savā ciļņu grupā ekrāna apakšdaļā.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb index 11316a4..022aa49 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mk.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Сокриј ја табелата на цел екран</translation> <translation id="5082793167783849073">Набрзина споредете ги страниците со правење група. За да започнете, допрете и задржете го линкот.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> картички се групирани</translation> -<translation id="5792534911093536736">Повеќе картички</translation> <translation id="58326064309361797">Повлечете ги картичките за ги групирате</translation> <translation id="6040143037577758943">Затвори</translation> <translation id="6193448654517602979">Изберете картички</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 f3bbdf3..a8f7b6a 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">പൂർണ്ണസ്ക്രീൻ ഗ്രിഡ് മറയ്ക്കുക</translation> <translation id="5082793167783849073">ഒരു ഗ്രൂപ്പ് സൃഷ്ടിച്ചുകൊണ്ട്, വേഗത്തിൽ പേജുകൾ താരതമ്യം ചെയ്യൂ. ആരംഭിക്കാൻ ഒരു ലിങ്ക് സ്പർശിച്ച് പിടിക്കുക.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ടാബുകൾ ഗ്രൂപ്പ് ചെയ്തു</translation> -<translation id="5792534911093536736">കൂടുതല് ടാബുകള്</translation> <translation id="58326064309361797">ടാബുകൾ ഗ്രൂപ്പ് ചെയ്യാൻ അവ വലിച്ചിടുക</translation> <translation id="6040143037577758943">അടയ്ക്കുക</translation> <translation id="6193448654517602979">ടാബുകൾ തിരഞ്ഞെടുക്കുക</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb index b6d1c03..421c877 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_mn.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Бүтэн дэлгэцийн торыг нуух</translation> <translation id="5082793167783849073">Бүлэг үүсгэх байдлаар хуудаснуудыг хурдан харьцуулаарай. Эхлүүлэхийн тулд холбоосыг удаан дарна уу.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> табыг бүлэглэсэн</translation> -<translation id="5792534911093536736">Бусад таб</translation> <translation id="58326064309361797">Бүлэглэхийн тулд табыг чирж зөөнө үү</translation> <translation id="6040143037577758943">Хаах</translation> <translation id="6193448654517602979">Таб сонгох</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 2e2c5e3..d42cbd4 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">फुलस्क्रीन ग्रिड लपवा</translation> <translation id="5082793167783849073">गट बनवून त्वरित पेजशी तुलना करा. सुरू करण्यासाठी, लिंकला स्पर्श करा आणि धरून ठेवा.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> टॅबची गटामध्ये विभागणी केली आहे</translation> -<translation id="5792534911093536736">अधिक टॅब</translation> <translation id="58326064309361797">त्यांचा गट बनवण्यासाठी टॅबना ड्रॅग करा</translation> <translation id="6040143037577758943">बंद करा</translation> <translation id="6193448654517602979">टॅब निवडा</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 c478c072..afdb244 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Sembunyikan grid skrin penuh</translation> <translation id="5082793167783849073">Bandingkan halaman dengan pantas dengan membuat kumpulan. Untuk bermula, sentuh & tahan pautan.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tab dihimpunkan</translation> -<translation id="5792534911093536736">Lagi tab</translation> <translation id="58326064309361797">Seret tab untuk menghimpunkannya</translation> <translation id="6040143037577758943">Tutup</translation> <translation id="6193448654517602979">Pilih tab</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb index dc7d97e..33f0e114 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_my.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">မျက်နှာပြင်ပြည့် ဇယားကွက်ကို ဝှက်ရန်</translation> <translation id="5082793167783849073">အဖွဲ့ဖွဲ့ခြင်းဖြင့် စာမျက်နှာများကို အမြန်နှိုင်းယှဉ်ပါ။ စတင်ရန် လင့်ခ်ကို ထိပြီး ဖိထားပါ။</translation> <translation id="5580090775658607195">တဘ် <ph name="TAB_COUNT" /> ခုကို အုပ်စုဖွဲ့ထားသည်</translation> -<translation id="5792534911093536736">နောက်ထပ် တဘ်များ</translation> <translation id="58326064309361797">တဘ်များကို အုပ်စုဖွဲ့ရန် ၎င်းတို့ကို ဖိဆွဲပါ</translation> <translation id="6040143037577758943">ပိတ်ရန်</translation> <translation id="6193448654517602979">တဘ်များ ရွေးချယ်ရန်</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 27fd41f..74461bb 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">पूर्ण स्क्रिन ग्रिड लुकाउनुहोस्</translation> <translation id="5082793167783849073">कुनै समूह बनाएर द्रुत रूपमा पृष्ठहरूको तुलना गर्नुहोस्। सुरु गर्न कुनै लिंकमा छोइराख्नुहोस्।</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ट्याबहरू समूहबद्ध गरिए</translation> -<translation id="5792534911093536736">थप ट्याबहरू</translation> <translation id="58326064309361797">ट्याबहरूलाई समूहबद्ध गर्न तिनीहरूलाई ड्र्याग गर्नुहोस्</translation> <translation id="6040143037577758943">बन्द गर्नुहोस्</translation> <translation id="6193448654517602979">ट्याबहरू चयन गर्नुहोस्</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb index 664da8b..568e59a2 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_nl.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Raster op volledig scherm verbergen</translation> <translation id="5082793167783849073">Vergelijk pagina's snel door een groep te maken. Tik op een link en houd deze vast om te beginnen.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> tabbladen gegroepeerd</translation> -<translation id="5792534911093536736">Meer tabbladen</translation> <translation id="58326064309361797">Sleep de tabbladen om ze te groeperen</translation> <translation id="6040143037577758943">Sluiten</translation> <translation id="6193448654517602979">Tabbladen selecteren</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Bekijk de suggesties.</translation> <translation id="7885132941432959125">Tabblad naar rechts verplaatsen</translation> <translation id="7966321538264951561">Sluit de suggesties.</translation> +<translation id="814503310257431685">Alles weergeven</translation> <translation id="8205266828577616993">Tabblad omhoog verplaatsen</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> geselecteerd tabblad sluiten}other{<ph name="TABS_COUNT_MANY" /> geselecteerde tabbladen sluiten}}</translation> <translation id="9150694013019234766">Je kunt onderaan het scherm schakelen tussen tabbladen in je tabbladgroep</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb index 834bf2d..9b98b70 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_no.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Skjul fullskjermrutenett</translation> <translation id="5082793167783849073">Sammenlign sider raskt ved å lage en gruppe. For å begynne, trykk og hold på en link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> faner er gruppert.</translation> -<translation id="5792534911093536736">Flere faner</translation> <translation id="58326064309361797">Dra faner for å gruppere dem</translation> <translation id="6040143037577758943">Lukk</translation> <translation id="6193448654517602979">Velg faner</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Gjennomgå forslagene.</translation> <translation id="7885132941432959125">Flytt fanen mot høyre</translation> <translation id="7966321538264951561">Avvis forslagene.</translation> +<translation id="814503310257431685">Vis alle</translation> <translation id="8205266828577616993">Flytt fanen oppover</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Lukk <ph name="TABS_COUNT_ONE" /> valgt fane}other{Lukk <ph name="TABS_COUNT_MANY" /> valgte faner}}</translation> <translation id="9150694013019234766">Bytt mellom faner i fanegruppen på nedre del av skjermen</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb index 4e8de02..1a4f7dd 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_or.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ପୂର୍ଣ୍ଣସ୍କ୍ରିନ୍ ଗ୍ରୀଡ୍କୁ ଲୁଚାନ୍ତୁ</translation> <translation id="5082793167783849073">ଗୋଟିଏ ଗୋଷ୍ଠୀ ତିଆରି କରି ପୃଷ୍ଠାଗୁଡ଼ିକୁ ତୁରନ୍ତ ତୁଳନା କରନ୍ତୁ। ଆରମ୍ଭ କରିବା ପାଇଁ, ଗୋଟିଏ ଲିଙ୍କ୍କୁ ଦାବି ଧରନ୍ତୁ।</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" />ଟି ଟାବ୍ ଏକତ୍ର କରାଯାଇଛି</translation> -<translation id="5792534911093536736">ଅଧିକ ଟାବ୍</translation> <translation id="58326064309361797">ସେଗୁଡ଼ିକର ଗୋଷ୍ଠୀ କରିବାକୁ ଟାବ୍ଗୁଡ଼ିକୁ ଟାଣନ୍ତୁ</translation> <translation id="6040143037577758943">ବନ୍ଦ</translation> <translation id="6193448654517602979">ଟାବ୍ଗୁଡ଼ିକ ବାଛନ୍ତୁ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb index 00ee1cc..ef413bb 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pa.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ਪੂਰੀ-ਸਕ੍ਰੀਨ ਗ੍ਰਿਡ ਨੂੰ ਲੁਕਾਓ</translation> <translation id="5082793167783849073">ਗਰੁੱਪ ਬਣਾ ਕੇ ਪੰਨਿਆਂ ਦੀ ਤੁਲਨਾ ਜਲਦੀ ਕਰੋ। ਸ਼ੁਰੂ ਕਰਨ ਲਈ, ਕਿਸੇ ਲਿੰਕ ਨੂੰ ਸਪੱਰਸ਼ ਕਰਕੇ ਰੱਖੋ।</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ਟੈਬਾਂ ਗਰੁੱਪਬੱਧ ਕੀਤੀਆਂ ਗਈਆਂ</translation> -<translation id="5792534911093536736">ਹੋਰ ਟੈਬਾਂ</translation> <translation id="58326064309361797">ਟੈਬਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਘਸੀਟੋ</translation> <translation id="6040143037577758943">ਬੰਦ ਕਰੋ</translation> <translation id="6193448654517602979">ਟੈਬਾਂ ਚੁਣੋ</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 28f4192..6a328d2 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ukryj siatkę pełnego ekranu</translation> <translation id="5082793167783849073">Możesz szybko porównać strony, tworząc ich grupę. Aby to zrobić, naciśnij i przytrzymaj link.</translation> <translation id="5580090775658607195">Pogrupowane karty: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Więcej kart</translation> <translation id="58326064309361797">Przeciągaj karty, by je pogrupować</translation> <translation id="6040143037577758943">Zamknij</translation> <translation id="6193448654517602979">Wybierz karty</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Sprawdź sugestie.</translation> <translation id="7885132941432959125">Przenieś kartę w prawo</translation> <translation id="7966321538264951561">Zamknij sugestie.</translation> +<translation id="814503310257431685">Wyświetl wszystko</translation> <translation id="8205266828577616993">Przesuń kartę w górę</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zamknij <ph name="TABS_COUNT_ONE" /> wybraną kartę}few{Zamknij <ph name="TABS_COUNT_MANY" /> wybrane karty}many{Zamknij <ph name="TABS_COUNT_MANY" /> wybranych kart}other{Zamknij <ph name="TABS_COUNT_MANY" /> wybranej karty}}</translation> <translation id="9150694013019234766">W grupie kart w dolnej części ekranu możesz przełączać się między kartami</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-BR.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-BR.xtb index 344dd77..6d76fa3b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-BR.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-BR.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ocultar grade de tela cheia</translation> <translation id="5082793167783849073">Compare as páginas rapidamente criando um grupo. Para começar, toque em um link e mantenha-o pressionado.</translation> <translation id="5580090775658607195">Guias agrupadas: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Mais guias</translation> <translation id="58326064309361797">Arraste as guias para agrupá-las</translation> <translation id="6040143037577758943">Fechar</translation> <translation id="6193448654517602979">Selecione as guias</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Revisar as sugestões.</translation> <translation id="7885132941432959125">Mover guia para a direita</translation> <translation id="7966321538264951561">Dispensar as sugestões.</translation> +<translation id="814503310257431685">Visualizar todos</translation> <translation id="8205266828577616993">Mover guia para cima</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Fechar <ph name="TABS_COUNT_ONE" /> guia selecionada}one{Fechar <ph name="TABS_COUNT_MANY" /> guia selecionada}other{Fechar <ph name="TABS_COUNT_MANY" /> guias selecionadas}}</translation> <translation id="9150694013019234766">Alterne entre as guias do seu grupo de guias perto da parte inferior da tela</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb index 287963ff..ace93c6 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_pt-PT.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ocultar grelha em ecrã inteiro</translation> <translation id="5082793167783849073">Compare páginas rapidamente através da criação de um grupo. Para começar, toque sem soltar num link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> separadores agrupados</translation> -<translation id="5792534911093536736">Mais separadores</translation> <translation id="58326064309361797">Arraste os separadores para os agrupar.</translation> <translation id="6040143037577758943">Fechar</translation> <translation id="6193448654517602979">Selecione os separadores</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Reveja as sugestões.</translation> <translation id="7885132941432959125">Mover separador para a direita</translation> <translation id="7966321538264951561">Ignore as sugestões.</translation> +<translation id="814503310257431685">Ver todos</translation> <translation id="8205266828577616993">Mover separador para cima</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Fechar <ph name="TABS_COUNT_ONE" /> separador selecionado}other{Fechar <ph name="TABS_COUNT_MANY" /> separadores selecionados}}</translation> <translation id="9150694013019234766">Alterne entre separadores no grupo de separadores junto à parte inferior do ecrã.</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb index efc5e68..142056c 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ro.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ascunde grila pe ecran complet</translation> <translation id="5082793167783849073">Compară rapid paginile făcând un grup. Pentru a începe, atinge lung un link.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> file au fost grupate</translation> -<translation id="5792534911093536736">Mai multe file</translation> <translation id="58326064309361797">Trage filele pentru a le grupa</translation> <translation id="6040143037577758943">Închide</translation> <translation id="6193448654517602979">Selectează file</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Examinează sugestiile.</translation> <translation id="7885132941432959125">Mută fila spre dreapta</translation> <translation id="7966321538264951561">Închide sugestiile.</translation> +<translation id="814503310257431685">Vedeți toate</translation> <translation id="8205266828577616993">Mută fila mai sus</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Închide <ph name="TABS_COUNT_ONE" /> filă selectată}few{Închide <ph name="TABS_COUNT_MANY" /> file selectate}other{Închide <ph name="TABS_COUNT_MANY" /> de file selectate}}</translation> <translation id="9150694013019234766">Comută între filele din grupul de file în partea de jos a ecranului</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ru.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ru.xtb index 4058aea1..2d05f84 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ru.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ru.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Скрыть полноэкранную сетку с вкладками</translation> <translation id="5082793167783849073">Сравнивайте страницы быстрее, объединяя их в группы. Чтобы начать, нажмите на ссылку и удерживайте ее.</translation> <translation id="5580090775658607195">Вкладки сгруппированы (всего <ph name="TAB_COUNT" />).</translation> -<translation id="5792534911093536736">Дополнительные вкладки</translation> <translation id="58326064309361797">Перетаскивайте вкладки, чтобы группировать их</translation> <translation id="6040143037577758943">Закрыть</translation> <translation id="6193448654517602979">Выберите вкладки</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Подробнее.</translation> <translation id="7885132941432959125">Переместить вкладку вправо</translation> <translation id="7966321538264951561">Скрыть подсказки.</translation> +<translation id="814503310257431685">Показать все</translation> <translation id="8205266828577616993">Переместить вкладку вверх</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Закрыть <ph name="TABS_COUNT_ONE" /> выбранную вкладку}one{Закрыть <ph name="TABS_COUNT_MANY" /> выбранную вкладку}few{Закрыть <ph name="TABS_COUNT_MANY" /> выбранные вкладки}many{Закрыть <ph name="TABS_COUNT_MANY" /> выбранных вкладок}other{Закрыть <ph name="TABS_COUNT_MANY" /> выбранной вкладки}}</translation> <translation id="9150694013019234766">В нижней части экрана можно переключаться между вкладками, объединенными в группы</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb index 38d7c2e9..938e328 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_si.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">පූර්ණ තිර ජාලකය සඟවන්න</translation> <translation id="5082793167783849073">කණ්ඩායමක් කිරීමෙන් ඉක්මනින් පිටු සංසන්දන කරන්න. පටන් ගැනීමට, සබැඳියක් ස්පර්ශ කර අල්ලා සිටින්න.</translation> <translation id="5580090775658607195">පටිති <ph name="TAB_COUNT" /> සමූහගත කළා</translation> -<translation id="5792534911093536736">තවත් පටිති</translation> <translation id="58326064309361797">පටිති කණ්ඩායම් කිරීමට ඒවා අදින්න</translation> <translation id="6040143037577758943">වසන්න</translation> <translation id="6193448654517602979">පටිති තෝරන්න</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb index d44c098..4a350dc 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sk.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Skryť mriežku na celú obrazovku</translation> <translation id="5082793167783849073">Ak chcete rýchlo porovnať stránky, vytvorte skupinu. Začnite pridržaním ľubovoľného odkazu.</translation> <translation id="5580090775658607195">Počet zoskupených kariet: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Viac kariet</translation> <translation id="58326064309361797">Karty zoskupíte presunutím</translation> <translation id="6040143037577758943">Zavrieť</translation> <translation id="6193448654517602979">Vyberte karty</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Prezrieť návrhy.</translation> <translation id="7885132941432959125">Presunúť kartu doprava</translation> <translation id="7966321538264951561">Zavrieť návrhy.</translation> +<translation id="814503310257431685">Zobraziť všetko</translation> <translation id="8205266828577616993">Presunúť kartu nahor</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zavrieť <ph name="TABS_COUNT_ONE" /> vybranú kartu}few{Zavrieť <ph name="TABS_COUNT_MANY" /> vybrané karty}many{Close <ph name="TABS_COUNT_MANY" /> selected tabs}other{Zavrieť <ph name="TABS_COUNT_MANY" /> vybraných kariet}}</translation> <translation id="9150694013019234766">Prepínajte karty v skupine kariet v dolnej časti obrazovky</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sl.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sl.xtb index e80ee7c..22c971b 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sl.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sl.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Skrij celozaslonsko mrežo</translation> <translation id="5082793167783849073">Hitro primerjate strani tako, da ustvarite skupino. Če želite začeti, se dotaknite povezave in jo pridržite.</translation> <translation id="5580090775658607195">Št. združenih zavihkov: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Več zavihkov</translation> <translation id="58326064309361797">Povlecite zavihke, če jih želite združiti v skupino</translation> <translation id="6040143037577758943">Zapri</translation> <translation id="6193448654517602979">Izberite zavihke</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Pregled predlogov.</translation> <translation id="7885132941432959125">Premakni zavihek v desno</translation> <translation id="7966321538264951561">Opustitev predlogov.</translation> +<translation id="814503310257431685">Prikaži vse</translation> <translation id="8205266828577616993">Premakni zavihek navzgor</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Zapiranje <ph name="TABS_COUNT_ONE" /> izbranega zavihka}one{Zapiranje <ph name="TABS_COUNT_MANY" /> izbranega zavihka}two{Zapiranje <ph name="TABS_COUNT_MANY" /> izbranih zavihkov}few{Zapiranje <ph name="TABS_COUNT_MANY" /> izbranih zavihkov}other{Zapiranje <ph name="TABS_COUNT_MANY" /> izbranih zavihkov}}</translation> <translation id="9150694013019234766">Preklapljanje med zavihki v skupini zavihkov pri dnu zaslona</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 067ce8b3..4bbc4b80 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Fshih rrjetën me ekran të plotë</translation> <translation id="5082793167783849073">Krahaso me shpejtësi faqet duke krijuar një grup. Për të filluar, prek dhe mbaj të shtypur një lidhje.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> skeda të grupuara</translation> -<translation id="5792534911093536736">Më shumë skeda</translation> <translation id="58326064309361797">Zvarriti skedat për t'i grupuar</translation> <translation id="6040143037577758943">Mbyll</translation> <translation id="6193448654517602979">Zgjidh skedat</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb index 7f18bbb..2694758 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sr.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Сакријте приказ мреже на целом екрану</translation> <translation id="5082793167783849073">Направите групу да бисте брзо упоређивали странице. За почетак додирните и задржите линк.</translation> <translation id="5580090775658607195">Картице су груписане (<ph name="TAB_COUNT" />)</translation> -<translation id="5792534911093536736">Још картица</translation> <translation id="58326064309361797">Превуците картице да бисте их груписали</translation> <translation id="6040143037577758943">Затвори</translation> <translation id="6193448654517602979">Изаберите картице</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Прегледајте предлоге.</translation> <translation id="7885132941432959125">Преместите картицу удесно</translation> <translation id="7966321538264951561">Одбаците предлоге.</translation> +<translation id="814503310257431685">Прикажи све</translation> <translation id="8205266828577616993">Премести картицу нагоре</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Затворите <ph name="TABS_COUNT_ONE" /> изабрану картицу}one{Затворите <ph name="TABS_COUNT_MANY" /> изабрану картицу}few{Затворите <ph name="TABS_COUNT_MANY" /> изабране картице}other{Затворите <ph name="TABS_COUNT_MANY" /> изабраних картица}}</translation> <translation id="9150694013019234766">Прелазите са једне картице на другу у групи картица у дну екрана</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 bd98fbd9..d56e0f0 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Dölj helskärmsrutnät</translation> <translation id="5082793167783849073">Jämför sidor snabbt genom att skapa en grupp. Börja med att trycka länge på en länk.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> flikar har grupperats</translation> -<translation id="5792534911093536736">Fler flikar</translation> <translation id="58326064309361797">Gruppera flikar genom att dra dem</translation> <translation id="6040143037577758943">Stäng</translation> <translation id="6193448654517602979">Välj flikar</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Granska förslagen.</translation> <translation id="7885132941432959125">Flytta fliken åt höger</translation> <translation id="7966321538264951561">Ignorera förslagen.</translation> +<translation id="814503310257431685">Visa alla</translation> <translation id="8205266828577616993">Flytta fliken uppåt</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Stäng <ph name="TABS_COUNT_ONE" /> vald flik}other{Stäng <ph name="TABS_COUNT_MANY" /> valda flikar}}</translation> <translation id="9150694013019234766">Byt mellan flikarna i flikgruppen nära sidans nederkant</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sw.xtb index 1575c8fc..224a8a68 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sw.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_sw.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ficha gridi ya skrini nzima</translation> <translation id="5082793167783849073">Linganisha kurasa kwa haraka kwa kuanzisha kikundi. Ili uanze, gusa na ushikilie kiungo.</translation> <translation id="5580090775658607195">Umeweka pamoja vichupo <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Vichupo zaidi</translation> <translation id="58326064309361797">Buruta vichupo ili uviweke katika kikundi</translation> <translation id="6040143037577758943">Funga</translation> <translation id="6193448654517602979">Chagua vichupo</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 b3f93fae..207fd3a 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">முழுத்திரை கட்டத்தை மூடு</translation> <translation id="5082793167783849073">ஒரு குழுவை உருவாக்கிப் பக்கங்களை விரைவாக ஒப்பிடலாம். தொடங்க, ஓர் இணைப்பைத் தொட்டுப் பிடிக்கவும்.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> தாவல்கள் குழுவாக்கப்பட்டுள்ளன</translation> -<translation id="5792534911093536736">கூடுதல் தாவல்கள்</translation> <translation id="58326064309361797">தாவல்களை இழுப்பதன் மூலம் அவற்றைக் குழுவாக்கலாம்</translation> <translation id="6040143037577758943">மூடு</translation> <translation id="6193448654517602979">தாவல்களைத் தேர்ந்தெடுக்கவும்</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 2d5e615..bad2a41c 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">పూర్తి స్క్రీన్ గ్రిడ్ను దాచిపెట్టు</translation> <translation id="5082793167783849073">పేజీలను సమూహంగా వర్గీకరించడం ద్వారా వేగంగా సరిపోల్చండి. ప్రారంభించడానికి, లింక్ను తాకి & అలాగే నొక్కి ఉంచండి.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ట్యాబ్లు సమూహంగా వర్గీకరించబడ్డాయి</translation> -<translation id="5792534911093536736">మరిన్ని ట్యాబ్లు</translation> <translation id="58326064309361797">సమూహంగా చేయడానికి ట్యాబ్లను లాగండి</translation> <translation id="6040143037577758943">మూసివేయి</translation> <translation id="6193448654517602979">ట్యాబ్లను ఎంచుకోండి</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb index b0dd7e4..9a4152f 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_th.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">ซ่อนตารางกริดแบบเต็มหน้าจอ</translation> <translation id="5082793167783849073">เปรียบเทียบหน้าต่างๆ อย่างรวดเร็วด้วยการสร้างกลุ่ม แตะลิงก์ค้างไว้เพื่อเริ่มต้น</translation> <translation id="5580090775658607195">จัดกลุ่มไว้ <ph name="TAB_COUNT" /> แท็บ</translation> -<translation id="5792534911093536736">แท็บเพิ่มเติม</translation> <translation id="58326064309361797">ลากแท็บเพื่อจัดกลุ่ม</translation> <translation id="6040143037577758943">ปิด</translation> <translation id="6193448654517602979">เลือกแท็บ</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">ดูคำแนะนำ</translation> <translation id="7885132941432959125">ย้ายแท็บไปทางขวา</translation> <translation id="7966321538264951561">ปิดคำแนะนำ</translation> +<translation id="814503310257431685">ดูทั้งหมด</translation> <translation id="8205266828577616993">เลื่อนแท็บขึ้น</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{ปิดแท็บที่เลือก <ph name="TABS_COUNT_ONE" /> แท็บ}other{ปิดแท็บที่เลือก <ph name="TABS_COUNT_MANY" /> แท็บ}}</translation> <translation id="9150694013019234766">สลับไปมาระหว่างแท็บในกลุ่มแท็บบริเวณด้านล่างของหน้าจอ</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 399e5e5e..8b2fece7 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Tam ekran ızgarayı gizler</translation> <translation id="5082793167783849073">Grup oluşturarak sayfaları hızlıca karşılaştırın. Başlamak için bir bağlantıya dokunup basılı tutun.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> sekme gruplandı</translation> -<translation id="5792534911093536736">Diğer sekmeler</translation> <translation id="58326064309361797">Gruplandırmak için sekmeleri sürükleyin</translation> <translation id="6040143037577758943">Kapat</translation> <translation id="6193448654517602979">Sekmeleri seçin</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Önerileri inceleyin.</translation> <translation id="7885132941432959125">Sekmeyi sağa taşı</translation> <translation id="7966321538264951561">Önerileri kapat.</translation> +<translation id="814503310257431685">Tümünü göster</translation> <translation id="8205266828577616993">Sekmeyi yukarı taşı</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Seçilen <ph name="TABS_COUNT_ONE" /> sekmeyi kapat}other{Seçilen <ph name="TABS_COUNT_MANY" /> sekmeyi kapat}}</translation> <translation id="9150694013019234766">Ekranın altına yakın bir yerde bulunan sekme grubunuzdaki sekmeler arasında geçiş yapın</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb index 29cc071..5152136 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uk.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Сховати повноекранну сітку</translation> <translation id="5082793167783849073">Швидко порівнюйте сторінки, створивши групу. Щоб почати, натисніть і втримуйте посилання.</translation> <translation id="5580090775658607195">Згруповано стільки вкладок: <ph name="TAB_COUNT" /></translation> -<translation id="5792534911093536736">Більше вкладок</translation> <translation id="58326064309361797">Перетягуйте вкладки, щоб групувати їх</translation> <translation id="6040143037577758943">Закрити</translation> <translation id="6193448654517602979">Виберіть вкладки</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Переглянути ці вкладки.</translation> <translation id="7885132941432959125">Перемістити вкладку праворуч</translation> <translation id="7966321538264951561">Закрити пропозицію.</translation> +<translation id="814503310257431685">Переглянути все</translation> <translation id="8205266828577616993">Перемістити вкладку вгору</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Закрити <ph name="TABS_COUNT_ONE" /> вибрану вкладку}one{Закрити <ph name="TABS_COUNT_MANY" /> вибрану вкладку}few{Закрити <ph name="TABS_COUNT_MANY" /> вибрані вкладки}many{Закрити <ph name="TABS_COUNT_MANY" /> вибраних вкладок}other{Закрити <ph name="TABS_COUNT_MANY" /> вибраної вкладки}}</translation> <translation id="9150694013019234766">Переходьте між вкладками в групі вкладок унизу екрана</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb index 93286b8..34738b32 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ur.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">پوری اسکرین گرڈ کو چھپائیں</translation> <translation id="5082793167783849073">ایک گروپ بنا کر صفحات کا فوری طور پر موازنہ کریں۔ شروع کرنے کیلئے، کسی لنک کو ٹچ کریں اور دبائے رکھیں۔</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ٹیبز گروپ بند</translation> -<translation id="5792534911093536736">مزید ٹیبز</translation> <translation id="58326064309361797">ان کی گروپ بندی کرنے کے لیے ٹیبز کو گھسیٹیں</translation> <translation id="6040143037577758943">بند کریں</translation> <translation id="6193448654517602979">ٹیبز منتخب کریں</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb index 4312b3be..932c2525 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_uz.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Butun ekranga chiqarilgan jadval shaklini yopish</translation> <translation id="5082793167783849073">Sahifalarni guruhlab, tezkor solishtiring. Boshlash uchun havolani uzoq bosib turing.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> ta varaq guruhlandi</translation> -<translation id="5792534911093536736">Boshqa varaqlar</translation> <translation id="58326064309361797">Guruhlash uchun varaqlarni tortib tashlang</translation> <translation id="6040143037577758943">Yopish</translation> <translation id="6193448654517602979">Varaqlarni belgilang</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb index e7634e5..5349fa6 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Ẩn lưới toàn màn hình</translation> <translation id="5082793167783849073">Tạo một nhóm để so sánh nhanh các trang. Để bắt đầu, hãy chạm và giữ một đường dẫn liên kết.</translation> <translation id="5580090775658607195">Đã nhóm <ph name="TAB_COUNT" /> tab</translation> -<translation id="5792534911093536736">Tab khác</translation> <translation id="58326064309361797">Kéo các tab để nhóm lại với nhau</translation> <translation id="6040143037577758943">Đóng</translation> <translation id="6193448654517602979">Chọn các tab</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">Xem lại các đề xuất.</translation> <translation id="7885132941432959125">Chuyển tab sang phải</translation> <translation id="7966321538264951561">Đóng nội dung đề xuất.</translation> +<translation id="814503310257431685">Xem tất cả</translation> <translation id="8205266828577616993">Chuyển tab lên trên</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{Đóng <ph name="TABS_COUNT_ONE" /> tab đã chọn}other{Đóng <ph name="TABS_COUNT_MANY" /> tab đã chọn}}</translation> <translation id="9150694013019234766">Chuyển đổi giữa các tab trong nhóm tab ở gần cuối màn hình</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 1a94cfb9..c0e506d 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
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">隐藏“全屏网格状视图”按钮</translation> <translation id="5082793167783849073">通过分组快速比较网页。为此,请先轻触并按住某个链接。</translation> <translation id="5580090775658607195">已将 <ph name="TAB_COUNT" /> 个标签页合为一组</translation> -<translation id="5792534911093536736">更多标签页</translation> <translation id="58326064309361797">拖动标签可进行分组</translation> <translation id="6040143037577758943">关闭</translation> <translation id="6193448654517602979">选择标签页</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">查看建议。</translation> <translation id="7885132941432959125">右移标签页</translation> <translation id="7966321538264951561">忽略此建议。</translation> +<translation id="814503310257431685">查看全部</translation> <translation id="8205266828577616993">上移标签页</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{关闭 <ph name="TABS_COUNT_ONE" /> 个所选标签页}other{关闭 <ph name="TABS_COUNT_MANY" /> 个所选标签页}}</translation> <translation id="9150694013019234766">在屏幕底部附近的标签页组中切换标签页</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb index 1a6ab4b..bea69125 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-HK.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">隱藏全螢幕網格</translation> <translation id="5082793167783849073">建立群組以快速比較多個頁面。輕觸並按住連結即可開始建立。</translation> <translation id="5580090775658607195">已將 <ph name="TAB_COUNT" /> 個分頁加入群組</translation> -<translation id="5792534911093536736">更多分頁</translation> <translation id="58326064309361797">拖曳分頁即可進行分組</translation> <translation id="6040143037577758943">關閉</translation> <translation id="6193448654517602979">選取分頁</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">睇下建議。</translation> <translation id="7885132941432959125">移去右邊</translation> <translation id="7966321538264951561">閂建議。</translation> +<translation id="814503310257431685">查看全部</translation> <translation id="8205266828577616993">將分頁上移</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{閂 <ph name="TABS_COUNT_ONE" /> 個揀咗嘅分頁}other{閂 <ph name="TABS_COUNT_MANY" /> 個揀咗嘅分頁}}</translation> <translation id="9150694013019234766">喺接近畫面底部附近嘅分頁群組入面切換分頁</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb index 5f3a432..9eb86ea 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">隱藏全螢幕格狀檢視</translation> <translation id="5082793167783849073">建立群組以快速比較多個頁面。如要開始建立,請輕觸並按住連結。</translation> <translation id="5580090775658607195">已將 <ph name="TAB_COUNT" /> 個分頁加入群組</translation> -<translation id="5792534911093536736">更多分頁</translation> <translation id="58326064309361797">拖曳分頁即可進行分組</translation> <translation id="6040143037577758943">關閉</translation> <translation id="6193448654517602979">選取分頁</translation> @@ -29,6 +28,7 @@ <translation id="7792771145871471484">查看建議項目。</translation> <translation id="7885132941432959125">將分頁向右移</translation> <translation id="7966321538264951561">關閉建議項目。</translation> +<translation id="814503310257431685">查看全部</translation> <translation id="8205266828577616993">將分頁上移</translation> <translation id="83556505225171773">{TABS_COUNT,plural, =1{關閉 <ph name="TABS_COUNT_ONE" /> 個所選分頁}other{關閉 <ph name="TABS_COUNT_MANY" /> 個所選分頁}}</translation> <translation id="9150694013019234766">在靠近畫面底部的分頁群組中切換分頁</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zu.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zu.xtb index da17ee8f..3686559 100644 --- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zu.xtb +++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zu.xtb
@@ -17,7 +17,6 @@ <translation id="5073204694187207510">Fihla igridi yesikrini esigcwele</translation> <translation id="5082793167783849073">Qhathanisa ngokushesha amakhasi ngokwenza iqembu. Ukuze uqale, thinta uphinde ubambe isixhumanisi.</translation> <translation id="5580090775658607195"><ph name="TAB_COUNT" /> amathebhu aqoqiwe</translation> -<translation id="5792534911093536736">Amathebhu angeziwe</translation> <translation id="58326064309361797">Hudula amathebhu ukuze uwafake eqenjini</translation> <translation id="6040143037577758943">Vala</translation> <translation id="6193448654517602979">Khetha amathebhu</translation>
diff --git a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageCardRenderTest.java b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageCardRenderTest.java index 160cb99..4e47f26 100644 --- a/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageCardRenderTest.java +++ b/chrome/android/feed/core/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageCardRenderTest.java
@@ -22,6 +22,7 @@ import org.chromium.base.ThreadUtils; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.Feature; +import org.chromium.base.test.util.IntegrationTest; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ChromeSwitches; @@ -102,6 +103,8 @@ @MediumTest @Feature({"FeedNewTabPage", "RenderTest"}) @DataFilePath(TEST_FEED_DATA_BASE_PATH + "feed_world.gcl.bin") + @IntegrationTest + // The IntegrationTest annotation skips this test on android-arm-official-tests. public void testFeedCardRenderingScenarioWorld() throws Exception { renderFeedCards("world"); }
diff --git a/chrome/android/feed/merging.md b/chrome/android/feed/merging.md index d9d62990..2e8d96f 100644 --- a/chrome/android/feed/merging.md +++ b/chrome/android/feed/merging.md
@@ -4,4 +4,4 @@ and [feed wire protos](https://cs.chromium.org/chromium/src/components/feed/core/proto/wire/) are hand-merged from https://chromium.googlesource.com/feed regularly. -Last merged Change-Id: I88bde10dbe068bec89b186097c262a89cf849689 \ No newline at end of file +Last merged Change-Id: ebe07f69fec6980ee571771edd0d7ddf0c721880
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java index 9e6c190..4a9c564 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -411,9 +411,6 @@ mTasksToRunWithNative = null; } - // TODO(crbug.com/960767): Remove this in M77. - ServiceManagerStartupUtils.cleanupSharedPreferences(); - // Needed for field trial metrics to be properly collected in ServiceManager only mode. FeatureUtilities.cacheNativeFlagsForServiceManagerOnlyMode();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java index 607d89f9..17489d0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ServiceManagerStartupUtils.java
@@ -4,27 +4,9 @@ package org.chromium.chrome.browser.init; -import android.content.SharedPreferences; - -import org.chromium.base.ContextUtils; - /** * Helper class for features that can be run in the ServiceManager only mode. */ public class ServiceManagerStartupUtils { public static final String TASK_TAG = "Servicification Startup Task"; - - // Key in the SharedPreferences for storing all features that will start ServiceManager. - private static final String SERVICE_MANAGER_FEATURES_OLD_KEY = "ServiceManagerFeatures"; - - // Remove the {@link SERVICE_MANAGER_FEATURES_OLD_KEY} from the SharedPreferences. The same - // features are now cached in the FeatureUtilities. - public static void cleanupSharedPreferences() { - SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); - if (sharedPreferences.contains(SERVICE_MANAGER_FEATURES_OLD_KEY)) { - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.remove(SERVICE_MANAGER_FEATURES_OLD_KEY); - editor.apply(); - } - } } \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java index 5f46954..708dcc88 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PaymentRequestImpl.java
@@ -763,21 +763,34 @@ // Log the various types of payment methods that were requested by the merchant. boolean requestedMethodGoogle = false; + // Not to record requestedMethodBasicCard because JourneyLogger ignore the case where the + // specified networks are unsupported. mMerchantSupportsAutofillPaymentInstruments better + // captures this group of interest than requestedMethodBasicCard. boolean requestedMethodOther = false; mURLPaymentMethodIdentifiersSupported = false; for (String methodName : mMethodData.keySet()) { - if (methodName.equals(MethodStrings.ANDROID_PAY) - || methodName.equals(MethodStrings.GOOGLE_PAY)) { - mURLPaymentMethodIdentifiersSupported = true; - requestedMethodGoogle = true; - } else if (methodName.startsWith(UrlConstants.HTTPS_URL_PREFIX)) { - mURLPaymentMethodIdentifiersSupported = true; - // Any method that starts with https and is not Android pay or Google pay is in the - // "other" category. - requestedMethodOther = true; + switch (methodName) { + case MethodStrings.ANDROID_PAY: + case MethodStrings.GOOGLE_PAY: + mURLPaymentMethodIdentifiersSupported = true; + requestedMethodGoogle = true; + break; + case MethodStrings.BASIC_CARD: + // Not to record requestedMethodBasicCard because + // mMerchantSupportsAutofillPaymentInstruments is used instead. + break; + default: + // "Other" includes https url, http url(when certifate check is bypassed) and + // the unlisted methods defined in {@link MethodStrings}. + requestedMethodOther = true; + if (methodName.startsWith(UrlConstants.HTTPS_URL_PREFIX) + || methodName.startsWith(UrlConstants.HTTP_URL_PREFIX)) { + mURLPaymentMethodIdentifiersSupported = true; + } } } - mJourneyLogger.setRequestedPaymentMethodTypes(mMerchantSupportsAutofillPaymentInstruments, + mJourneyLogger.setRequestedPaymentMethodTypes( + /*requestedBasicCard=*/mMerchantSupportsAutofillPaymentInstruments, requestedMethodGoogle, requestedMethodOther); }
diff --git a/chrome/app/resources/chromium_strings_ky.xtb b/chrome/app/resources/chromium_strings_ky.xtb index 4418205..2677873 100644 --- a/chrome/app/resources/chromium_strings_ky.xtb +++ b/chrome/app/resources/chromium_strings_ky.xtb
@@ -75,7 +75,7 @@ <translation id="4050175100176540509">Эң акыркы версияда коопсуздукту бекемдөө каражаттары менен жаңы мүмкүнчүлүктөр камтылган.</translation> <translation id="421369550622382712">Chromium үчүн укмуш колдонмолор, оюндар, кеңейтүүлөр жана темаларды таап алыңыз.</translation> <translation id="4216212958613226427">Chromium UI ушул тилде иштейт</translation> -<translation id="4230135487732243613">Chromium дайындарыңыз бул каттоо эсебине байлансынбы?</translation> +<translation id="4230135487732243613">Chromium дайын-даректериңиз бул каттоо эсебине байлансынбы?</translation> <translation id="4271805377592243930">Chromium'дан жардам алыңыз</translation> <translation id="4285930937574705105">Белгисиз катадан улам, орнотулбай калды. Учурда Chromium иштеп жаткан болсо, аны жаап туруп, дагы аракет кылып көрүңүз.</translation> <translation id="4407044323746248786">Баары бир Chromium'дан чыгасызбы?</translation> @@ -95,7 +95,7 @@ <translation id="4987820182225656817">Коноктор Chromium'ду артында эч нерсе калтырбай колдоно алышат.</translation> <translation id="4994636714258228724">Өзүңүздү Chromium'га кошуңуз</translation> <translation id="5277894862589591112">Өзгөртүүлөрдү киргизүү үчүн Chromium'ду кайра иштетиңиз</translation> -<translation id="5358375970380395591">Башкарылган каттоо эсеби менен кирип, анын администраторуна Chromiun профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chromium дайындарыңыз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз.<ph name="LEARN_MORE" /></translation> +<translation id="5358375970380395591">Башкарылган каттоо эсеби менен кирип, анын администраторуна Chromiun профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chromium дайын-даректериңиз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз.<ph name="LEARN_MORE" /></translation> <translation id="5386450000063123300">Chromium жаңыртылууда (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="538767207339317086">Chromium'га кирүүгө уруксат берүү</translation> <translation id="5398878173008909840">Chromium'дун жаңы версиясы бар.</translation> @@ -165,7 +165,7 @@ Chromium жөндөөлөрүңүздү калыбына келтире албайт.</translation> <translation id="7337881442233988129">Chromium</translation> <translation id="7339898014177206373">Жаңы терезе</translation> -<translation id="734373864078049451">Веб, кыстармаларыңыз жана Chromium'дагы жеке дайындарыңыз бул жерде жайгашкан.</translation> +<translation id="734373864078049451">Веб, кыстармаларыңыз жана Chromium'дагы жеке дайын-даректериңиз бул жерде жайгашкан.</translation> <translation id="7349591376906416160">Тутумуңуздун администратору Chromium'ду <ph name="TARGET_URL_HOSTNAME" /> доменин <ph name="ALTERNATIVE_BROWSER_NAME" /> аркылуу ачууга конфигуациялады.</translation> <translation id="7448255348454382571">Chromium OS'ту өчүрүп-күйгүзүңүз</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Иштеп чыгуучулар үчүн</translation> @@ -181,7 +181,7 @@ <translation id="7686590090926151193">Chromium сиздин демейки серепчиңиз эмес</translation> <translation id="7689606757190482937">Chromium'ду бардык түзмөктөрүңүздө шайкештирип, жекелештиресиз</translation> <translation id="7729447699958282447">Сиздин домениңизде шайкештештирүү мүмкүнчүлүгү жок болгондуктан, Chromium дайындарыңызды шайкештештире алган жок.</translation> -<translation id="7745317241717453663">Ушуну менен бул түзмөктөн серептөө дайындарыңыз жок кылынат. Дайындарыңызды кийинчерээк чыгарып алуу үчүн Chromium'га <ph name="USER_EMAIL" /> каттоо эсеби менен кириңиз.</translation> +<translation id="7745317241717453663">Ушуну менен бул түзмөктөн серептөө дайын-даректериңиз жок кылынат. Дайын-даректериңизды кийинчерээк чыгарып алуу үчүн Chromium'га <ph name="USER_EMAIL" /> каттоо эсеби менен кириңиз.</translation> <translation id="7747138024166251722">Орнотуучу убактылуу каталогду түзө алган жок. Дискте бош орун бар экендигин жана программаны орнотууга боло тургандыгын текшериңиз.</translation> <translation id="7773960292263897147">Эскертүү: Chromium кеңейтүүлөргө серептөө таржымалыңызды жазып алууга тыюу сала албайт. Бул колдонмону жашыруун режимде өчүрүү үчүн, бул параметрди тандоодон чыгарыңыз.</translation> <translation id="7790626492778995050"><ph name="PAGE_TITLE" /> – Chromium Canary</translation>
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index a28fb2a0..d4471df 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">Stop</translation> <translation id="1110155001042129815">Wag</translation> <translation id="1112420131909513020">Agtergrondoortjie gebruik tans Bluetooth</translation> +<translation id="1113042067630273625">Dit sal <ph name="TOTAL_USAGE" /> se gebergde werfdata uitvee.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">Jou rekenaar bevat 'n Vertroude Platform-module (VPM)-sekuriteitstoestel, wat gebruik word om baie belangrike sekuriteitskenmerke in die Chrome-bedryfstelsel te implementeer. Besoek die Chromebook-hulpsentrum om meer te wete te kom: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Lêerfout</translation> <translation id="1741314857973421784">Gaan voort</translation> <translation id="1743570585616704562">Nie herken nie</translation> +<translation id="1743846852744439013">Jy sal op alle werwe afgemeld word, insluitend in enige oop oortjies.</translation> <translation id="1743970419083351269">Maak Aflaaibalk toe</translation> <translation id="1744060673522309905">Kan nie die toestel aan die domein koppel nie. Maak seker dat jy nie die aantal toestelle oorskry het wat jy kan byvoeg nie.</translation> <translation id="1744108098763830590">agtergrondbladsy</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Dienste</translation> <translation id="18139523105317219">EDI-partynaam</translation> <translation id="1815083418640426271">Plak as gewone teks</translation> +<translation id="1815181278146012280">Vra wanneer 'n werf toegang tot HID-toestelle wil kry</translation> <translation id="181577467034453336">Nog <ph name="NUMBER_OF_VIEWS" /> …</translation> <translation id="1816036116994822943">Sleutelbordskandeerspoed</translation> <translation id="1817871734039893258">Microsoft-lêerherwinning</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Medium (aanbeveel)</translation> <translation id="2077129598763517140">Gebruik hardewareversnelling wanneer dit beskikbaar is</translation> <translation id="2078019350989722914">Waarsku voor jy uitgaan <ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Af</translation> <translation id="2079053412993822885">As jy een van jou eie sertifikate uitvee, kan jy dit nie meer gebruik om jouself te identifiseer nie.</translation> <translation id="2079545284768500474">Ontdoen</translation> <translation id="2080070583977670716">Nog instellings</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Vra wanneer 'n werf Bluetooth-toestelle in die omtrek wil ontdek (aanbeveel)</translation> <translation id="2292848386125228270">Begin <ph name="PRODUCT_NAME" /> as 'n normale gebruiker. Om dit vir ontwikkeling as kernprogram te gebruik, laat dit weer met die --no-sandbox-vlag loop.</translation> <translation id="2294358108254308676">Wil jy <ph name="PRODUCT_NAME" /> installeer?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultate</translation> <translation id="2297705863329999812">Soek drukkers</translation> <translation id="2299734369537008228">Glyer: <ph name="MIN_LABEL" /> tot <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Pasmaak en beheer <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Wagwoord is op hierdie toestel gestoor</translation> <translation id="2485422356828889247">Deïnstalleer</translation> <translation id="2487067538648443797">Voeg nuwe boekmerk by</translation> +<translation id="2487268545026948104">Koppel aan die internet om jou data terug te stel</translation> <translation id="2489829450872380594">'n Nuwe foon sal volgende keer hierdie <ph name="DEVICE_TYPE" /> ontsluit. Jy kan Smart Lock in Instellings afskakel.</translation> <translation id="2489918096470125693">Voeg vouer by …</translation> <translation id="2490481887078769936">"<ph name="FILE_NAME" />" is van lys verwyder</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Nuwe slaaptyd is gestel</translation> <translation id="2544853746127077729">Stawingsertifikaat deur netwerk verwerp</translation> <translation id="2546283357679194313">Webkoekies en werfdata</translation> +<translation id="2547583314137677375">Skakel sinkronisering af</translation> <translation id="2549985041256363841">Begin opname</translation> <translation id="2550212893339833758">Geruilde geheue</translation> <translation id="2550596535588364872">Laat <ph name="EXTENSION_NAME" /> toe om <ph name="FILE_NAME" /> oop te maak?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Swak crx-lêer, kon nie uitpak nie.</translation> <translation id="2673135533890720193">Lees jou blaaigeskiedenis</translation> <translation id="2673589024369449924">Skep 'n werkskermkortpad vir hierdie gebruiker</translation> +<translation id="2674764818721168631">Af</translation> <translation id="2677748264148917807">Gaan uit</translation> <translation id="2678063897982469759">Heraktiveer</translation> <translation id="268053382412112343">Geskiedenis</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> sal lêers in <ph name="FOLDERNAME" /> kan wysig totdat jy hierdie oortjie toemaak</translation> <translation id="3780827508782506612">Hierdie bladsy is vertaal</translation> <translation id="378312418865624974">Lees 'n unieke identifiseerder vir hierdie rekenaar</translation> +<translation id="3784472333786002075">Webkoekies is lêers wat deur webwerwe geskep word. Daar is twee soorte webkoekies: Eersteparty-webkoekies word geskep deur die werf wat jy besoek. Die werf word in die adresbalk gewys. Derdeparty-webkoekies word deur ander werwe geskep. Hierdie werwe besit van die inhoud, soos advertensies of prente, wat jy sien op die webwerf wat jy besoek.</translation> <translation id="3785308913036335955">Wys programkortpad</translation> <translation id="3785727820640310185">Gestoorde wagwoorde vir hierde werf</translation> <translation id="3788401245189148511">Dit kan:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Jou kaart het verval</translation> <translation id="3792890930871100565">Ontkoppel drukkers</translation> <translation id="3793395331556663376">Te veel lêerstelsels is oopgemaak.</translation> +<translation id="379509625511193653">Af</translation> <translation id="3796648294839530037">Gunstelingnetwerke:</translation> <translation id="3797739167230984533">Jou <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> word bestuur<ph name="END_LINK" /> deur jou organisasie</translation> <translation id="3797900183766075808">&Deursoek <ph name="SEARCH_ENGINE" /> vir "<ph name="SEARCH_TERMS" />"</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Besig</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Jy het geen onlangs vasgevangde WebRTC-gebeureloglêers nie.</translation> +<translation id="3955163004258753966">Kon nie opgradering begin nie</translation> <translation id="3955193568934677022">Laat werwe toe om beskermde inhoud te speel (aanbeveel)</translation> <translation id="3955896417885489542">Gaan Google Play-opsies ná opstelling na</translation> <translation id="3956702100721821638">Kon nie Google Play bereik nie</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Verlaat bladsy}other{Verlaat bladsye}}</translation> <translation id="4044612648082411741">Voer jou sertifikaatwagwoord in</translation> <translation id="404493185430269859">Versteksoekenjin</translation> +<translation id="4046013316139505482">Hierdie uitbreidings hoef nie inligting op hierdie werf te sien en te verander nie.</translation> <translation id="4046123991198612571">Volgende snit</translation> <translation id="4050225813016893843">Stawingmetode</translation> <translation id="4052120076834320548">Klein</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Moet nooit <ph name="LANGUAGE" /> vertaal nie</translation> <translation id="4332976768901252016">Stel ouerkontroles op</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 met RSA-enkripsie</translation> +<translation id="4336434711095810371">Vee alle data uit</translation> <translation id="4336979451636460645">Vir netwerkloglêers, sien: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> wil met die program "<ph name="EXTENSION_NAME" />" kommunikeer</translation> <translation id="4345587454538109430">Stel op …</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Stel tans die virtuele masjien op. Dit kan 'n paar minute neem.</translation> <translation id="4480590691557335796">Chrome kan skadelike sagteware op jou rekenaar opspoor en dit verwyder</translation> <translation id="4481530544597605423">Losgemaakte toestelle</translation> +<translation id="4488502501195719518">Vee alle data uit?</translation> <translation id="4495419450179050807">Moenie op hierdie bladsy wys nie</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> het omgeval</translation> <translation id="450099669180426158">Uitroepteken-ikoon</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adresse, foonnommer en meer</translation> <translation id="4572659312570518089">Stawing gekanselleer terwyl daar aan "<ph name="DEVICE_NAME" />" gekoppel is.</translation> <translation id="4572779512957829735">Voer die PIN vir jou sekuriteitsleutel in</translation> +<translation id="4573515936045019911">'n Netwerkverbinding word vereis om Linux op te gradeer. Koppel aan die internet en probeer weer.</translation> <translation id="457386861538956877">Nog meer …</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Kan nie <ph name="HOST_NAME" /> uitsaai nie.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Stel tans op</translation> <translation id="4996978546172906250">Deel via</translation> <translation id="4997086284911172121">Geen internetverbinding nie.</translation> +<translation id="4998430619171209993">Aan</translation> <translation id="4998873842614926205">Bevestig veranderinge</translation> <translation id="5000922062037820727">Geblokkeer (aanbeveel)</translation> <translation id="5008936837313706385">Aktiwiteitnaam</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Gaan by volskerm in</translation> <translation id="514575469079499857">Gebruik jou IP-adres om ligging te bepaal (verstek)</translation> <translation id="5146995429444047494">Kennisgewings vir <ph name="ORIGIN" /> word geblokkeer</translation> +<translation id="5147103632304200977">Vra wanneer 'n werf toegang tot HID-toestelle wil hê (aanbeveel)</translation> <translation id="5150254825601720210">Netscape-sertifikaat se SSL-bedienernaam</translation> <translation id="5151354047782775295">Maak skyfspasie beskikbaar, anders kan sekere data outomaties uitgevee word</translation> <translation id="5153234146675181447">Vergeet foon</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Voer wagwoorde van Chrome af uit</translation> <translation id="5355099869024327351">Stel die Assistent in staat om vir jou kennisgewings te wys</translation> <translation id="5355926466126177564">Die uitbreiding "<ph name="EXTENSION_NAME" />" het verander watter program gewys word wanneer jy van die omniboks af soek.</translation> +<translation id="5359910752122114278">1 resultaat</translation> <translation id="5360150013186312835">Wys in nutsbalk</translation> <translation id="5362741141255528695">Kies private sleutellêer.</translation> <translation id="5363109466694494651">Kragwas en stel terug</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">Jou administrateur het byvoeging van verbinding gedeaktiveer</translation> <translation id="5701080607174488915">Kan nie beleid van die bediener af gaan haal nie.</translation> <translation id="5701381305118179107">Sentreer</translation> +<translation id="5701441174893770082">Die opgradering van Linux kan aansienlik baie van jou batterykrag gebruik. Koppel asseblief jou toestel aan 'n batterylaaier en probeer weer.</translation> <translation id="5702898740348134351">Wysig soekenjins …</translation> <translation id="570302979952009979">Kies 'n naam vir hierdie vingerafdruk</translation> <translation id="5704875434923668958">Sinkroniseer tans met</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-toestel is gekoppel</translation> <translation id="6028117231645531007">Voeg vingerafdruk by</translation> <translation id="6029587122245504742">Stadigste</translation> +<translation id="6032715498678347852">Om aan 'n uitbreiding toegang tot hierdie werf te gee, moet jy dit klik.</translation> <translation id="6032912588568283682">Lêerstelsel</translation> <translation id="6038929619733116134">Blokkeer as werf indringerige of misleidende advertensies wys</translation> <translation id="6039651071822577588">Netwerkeiendom-woordeboek is misvorm</translation> @@ -3907,6 +3927,7 @@ <translation id="6582080224869403177">Stel <ph name="DEVICE_TYPE" /> terug om jou sekuriteit op te gradeer.</translation> <translation id="6584878029876017575">Microsoft se lewenslange gebaretolk</translation> <translation id="6586451623538375658">Ruil primêre muisknoppie</translation> +<translation id="6586604979641883411">Minstens <ph name="REQUIRED_SPACE" /> se beskikbare skyfspasie word vereis om Linux op te gradeer. Stel asseblief 'n bietjie spasie op jou toestel beskikbaar en probeer weer.</translation> <translation id="6590458744723262880">Hernoem vouer</translation> <translation id="6592267180249644460">WebRTC-loglêer vasgevang <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Jou vingerafdruk is vasgevang</translation> @@ -4017,6 +4038,7 @@ <translation id="6757101664402245801">URL is gekopieer</translation> <translation id="6758056191028427665">Sê vir ons hoe ons vaar.</translation> <translation id="6759193508432371551">Fabriekterugstelling</translation> +<translation id="6762833852331690540">Aan</translation> <translation id="6767566652486411142">Kies 'n ander taal …</translation> <translation id="6767639283522617719">Kan nie by die domein aansluit nie. Maak seker dat die instellings vir die organisatoriese eenheid korrek is.</translation> <translation id="6769712124046837540">Voeg tans drukker by …</translation> @@ -4138,6 +4160,7 @@ <translation id="6935286146439255109">'n Papierlaai ontbreek</translation> <translation id="693807610556624488">Skryftaak oorskry die maksimum lengte van die kenmerk by: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Jy het 1 gestoorde drukker.</translation> +<translation id="6938789263968032501">Mense</translation> <translation id="6941937518557314510">Meld asseblief aan by <ph name="TOKEN_NAME" /> om <ph name="HOST_NAME" /> met jou sertifikaat te staaf.</translation> <translation id="6943176775188458830">Kanselleer drukwerk</translation> <translation id="6943836128787782965">HTTP het misluk</translation> @@ -4162,6 +4185,7 @@ <translation id="6970856801391541997">Druk spesifieke bladsye uit</translation> <translation id="6972180789171089114">Oudio/Video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> kan nie lêers in hierdie vouer oopmaak nie omdat dit stelsellêers bevat</translation> +<translation id="6972629891077993081">HID-toestelle</translation> <translation id="6972754398087986839">Kom aan die gang</translation> <translation id="6973611239564315524">'n Opgradering na Debian 10 (Buster) is beskikbaar</translation> <translation id="6974609594866392343">Vanlyn demonstrasiemodus</translation> @@ -4486,8 +4510,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Agtergrondbladsy: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Oproep vanaf <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Geen HID-toestelle gekry nie</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Maak almal in &nuwe venster oop}=1{Maak in &nuwe venster oop}other{Maak almal (#) in &nuwe venster oop}}</translation> <translation id="7434509671034404296">Ontwikkelaar</translation> +<translation id="7434635829372401939">Sinkroniseer jou instellings</translation> <translation id="7436921188514130341">Ai tog! Kon nie hernoem nie.</translation> <translation id="7438976808740265764">Flash Player sal ná Desember 2020 nie meer gesteun word nie.</translation> <translation id="7441736921018636843">As jy hierdie instelling wil verander, <ph name="BEGIN_LINK" />stel sinkronisering terug<ph name="END_LINK" /> om jou sinkroniseringwagfrase te verwyder</translation> @@ -4809,6 +4835,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – saamgebind</translation> <translation id="7870730066603611552">Hersien sinkroniseeropsies ná opstelling</translation> <translation id="7870790288828963061">Geen Kioskprogramme met nuwer weergawe gevind nie. Niks om op te dateer nie. Verwyder asseblief die USB-stokkie.</translation> +<translation id="787268756490971083">Af</translation> <translation id="7874257161694977650">Chrome-agtergronde</translation> <translation id="7877451762676714207">Onbekende bedienerfout. Probeer asseblief weer, of kontak die bedieneradministrateur.</translation> <translation id="7877680364634660272">Toer</translation> @@ -4836,6 +4863,7 @@ <translation id="7908378463497120834">Jammer, minstens een deel van jou eksterne bergingtoestel kon nie gekoppel word nie.</translation> <translation id="7909969815743704077">Afgelaai in Incognito</translation> <translation id="7910768399700579500">Nuwe vouer</translation> +<translation id="7910831464510799808">Aan</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Jou wagwoord is op die bediener verander. Meld af en meld dan weer aan.</translation> <translation id="7915457674565721553">Koppel aan die internet om ouerkontroles op te stel</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Items wat nie hier gelys word nie, sal indien nodig ook verwyder word. Kom meer te wete oor <a href="<ph name="URL" />">ongewenste sagtewarebeskerming</a> in die witskrif oor Chrome-privaatheid.</translation> <translation id="935490618240037774">Jou boekmerke, geskiedenis, wagwoorde en ander instellings sal met jou Google-rekening gesinkroniseer word sodat jy hulle op al jou toestelle kan gebruik.</translation> <translation id="935854577147268200">Smart Lock-foon het verander. Voer jou wagwoord in om Smart Lock op te dateer. Jou foon sal volgende keer jou <ph name="DEVICE_TYPE" /> ontsluit. Jy kan Smart Lock in Instellings afskakel</translation> +<translation id="93610034168535821">Algehele berging gebruik deur werwe:</translation> <translation id="936801553271523408">Stelsel se diagnostiese data</translation> <translation id="93766956588638423">Herstel uitbreiding</translation> <translation id="938339467127511841">Linux-berging (beta)</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Jou IT-administrateur het Chrome Goeters vir jou toestel gedeaktiveer.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Program}other{Programme}}</translation> <translation id="965211523698323809">Stuur en ontvang SMS'e van jou <ph name="DEVICE_TYPE" /> af. <ph name="LINK_BEGIN" />Kom meer te wete<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Moenie enige werwe toegang tot HID-toestelle gee nie</translation> <translation id="967624055006145463">Data geberg</translation> <translation id="968000525894980488">Skakel Google Play Dienste aan.</translation> <translation id="968037381421390582">Plak en soek vir “<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index da2994bf..92319d9 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&አቁም</translation> <translation id="1110155001042129815">ጠብቅ</translation> <translation id="1112420131909513020">የጀርባ ትር ብሉቱዝን እየተጠቀመ ነው</translation> +<translation id="1113042067630273625">ይህ ከተከማቸ የጣቢያ ውሂብ <ph name="TOTAL_USAGE" />ን ያክል ያጸዳል።</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (ዩኤስቢ)</translation> <translation id="1114202307280046356">አልማዝ</translation> <translation id="1114335938027186412">የእርስዎ ኮምፒውተር የሚታመን የመሣሪያ ስርዓት ሞዱል (TPM) ደህንነት መሣሪያ አለው፣ ይህም በChrome OS ውስጥ ብዙ ወሳኝ የደህንነት ባህሪያትን ለመተግበር ስራ ላይ የሚውል ነው። ተጨማሪ ለማወቅ የChromebook እገዛ ማዕከሉን ይጎብኙ፦ https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">የፋይል ሳንካ</translation> <translation id="1741314857973421784">ቀጥል</translation> <translation id="1743570585616704562">አልታወቀም</translation> +<translation id="1743846852744439013">በማናቸውም ክፈት ትሮችን ጨምሮ ከሁሉም ጣቢያዎች በመለያ ዘግተው ይወጣሉ።</translation> <translation id="1743970419083351269">የውርዶች አሞሌን ዝጋ</translation> <translation id="1744060673522309905">መሣሪያውን ከጎራው ጋር ማቀላቀል አልተቻለም። ማከል ከሚችሉት የመሣሪያዎች ብዛት አለመብለጥዎን ያረጋግጡ።</translation> <translation id="1744108098763830590">የጀርባ ገጽ</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">ግልጋሎቶች</translation> <translation id="18139523105317219">EDI ፓርቲ ስም</translation> <translation id="1815083418640426271">እንደ ስነጣ አልባ ጽሑፍ ለጥፍ</translation> +<translation id="1815181278146012280">አንድ ጣቢያ የHID መሣሪያዎችን መድረስ ሲፈልግ ጠይቅ</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> ተጨማሪ...</translation> <translation id="1816036116994822943">የቁልፍ ሰሌዳ ቅኝት ፍጥነት</translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">መካከለኛ (የሚመከር)</translation> <translation id="2077129598763517140">ሲገኝ የሃርድዌር ማጣደፍን ተጠቀም</translation> <translation id="2078019350989722914">ጨርሰህ ከማቆምህ በፊት አስጠንቅቅ (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">አጥፋ</translation> <translation id="2079053412993822885">ከእውቅና ማረጋገጫዎችዎ ውስጥ አንዱን ከሰረዙ ከአሁን በኋላ ማንነትዎን ለማሳወቅ ሊጠቀሙበት አይችሉም።</translation> <translation id="2079545284768500474">ቀልብስ</translation> <translation id="2080070583977670716">ተጨማሪ ቅንብሮች</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">አንድ ጣቢያ በአቅራቢያ ያሉ ብሉቱዝ መሣሪያዎችን ፈልጎ ለማግኘት ሲፈልግ ጠይቅ (የሚመከር)</translation> <translation id="2292848386125228270"><ph name="PRODUCT_NAME" /> እባክዎ እንደ መደበኛ ተጠቃሚ ያስጀምሩት። እንደ ለግንባታ ስርወ ሆኖ ማሄድ ካስፈለግዎት፣ ከ--no-sandbox ጠቁም ጋር እንደገና ያሂዱት።</translation> <translation id="2294358108254308676"><ph name="PRODUCT_NAME" />ን መጫን ይፈልጋሉ?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> ውጤቶች</translation> <translation id="2297705863329999812">አታሚዎችን ይፈልጉ</translation> <translation id="2299734369537008228">ተንሸራታች፦ <ph name="MIN_LABEL" /> እስከ <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922"><ph name="APP_NAME" />ን ያብጁት እና ይቆጣጠሩት</translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">የይለፍ ቃል በዚህ መሣሪያ ላይ ተቀምጧል</translation> <translation id="2485422356828889247">አራግፍ</translation> <translation id="2487067538648443797">አዲስ ዕልባት ያክሉ</translation> +<translation id="2487268545026948104">የእርስዎን ውሂብ ወደነበረበት ለመመለስ፣ ወደ በይነመረብ ያገናኙ</translation> <translation id="2489829450872380594">በሚቀጥለው ጊዜ አዲስ ስልክ ይህን <ph name="DEVICE_TYPE" /> ይከፍተዋል። በቅንብሮች ውስጥ Smart Lockን ማጥፋት ይችላሉ።</translation> <translation id="2489918096470125693">&አቃፊ አክል...</translation> <translation id="2490481887078769936">«<ph name="FILE_NAME" />» ከዝርዝር ተወግዷል</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">አዲስ የመኝታ ሰዓት ተቀናብሯል</translation> <translation id="2544853746127077729">የማረጋገጫ ምስክር ወረቀት በአውታረ መረቡ ተቀባይነት አላገኘም</translation> <translation id="2546283357679194313">ኩኪዎች እና የጣቢያ ውሂብ</translation> +<translation id="2547583314137677375">ስምረትን አጥፋ</translation> <translation id="2549985041256363841">መቅረጽ ጀምር</translation> <translation id="2550212893339833758">የተተካ ማህደረ ትውስታ</translation> <translation id="2550596535588364872"><ph name="EXTENSION_NAME" /> <ph name="FILE_NAME" />ን እንዲከፍት ይፈቀድለት?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">መጥፎ የcrx ፋይል፣ ጥቅል መክፈት አልተሳካም።</translation> <translation id="2673135533890720193">የአሰሳ ታሪክዎን ያነብባል</translation> <translation id="2673589024369449924">ለዚህ ተጠቃሚ የዴስክቶፕ ላይ አቋራጭ ፍጠር</translation> +<translation id="2674764818721168631">አጥፋ</translation> <translation id="2677748264148917807">ለቅቀህ ውጣ</translation> <translation id="2678063897982469759">እንደገና አንቃ</translation> <translation id="268053382412112343">&ታሪክ</translation> @@ -1997,6 +2005,7 @@ <translation id="3780211714699334884">ይህን ትር እስኪዘጉት ድረስ <ph name="ORIGIN" /> በ<ph name="FOLDERNAME" /> ውስጥ ያሉ ፋይሎችን ማርትዕ ይችላል</translation> <translation id="3780827508782506612">ይህ ገጽ ተተርጉሟል</translation> <translation id="378312418865624974">የዚህ ኮምፒውተር ልዩ መለያውን ያነብባል</translation> +<translation id="3784472333786002075">ኩኪዎች በድርጣቢያዎች የተፈጠሩ ፋይሎች ናቸው። ሁለት ዓይነት ኩኪዎች አሉ፦ የመጀመሪያ ወገን ኩኪዎች እርስዎ በሚጎበኙት ጣቢያ የሚፈጠሩ ናቸው። ይህ ጣቢያ በአድራሻ አሞሌው ላይ ይታያል። የሦስተኛ ወገን ኩኪዎች በሌሎች ጣቢያዎች የሚፈጠሩ ናቸው። እነዚህ ጣቢያዎች እንደ ማስታወቂያዎች ወይም ምስሎች የመሳሰሉ እርስዎ በሚጎበኙት ጣቢያ ላይ ያለ ይዘትን በባለቤትነት የያዙ ናቸው።</translation> <translation id="3785308913036335955">የመተግበሪያዎች አቋራጮችን አሳይ</translation> <translation id="3785727820640310185">የተቀመጡ የዚህ ጣቢያ የይለፍ ቃላት</translation> <translation id="3788401245189148511">ይህንን ሊያደርግ ይችላል፦</translation> @@ -2004,6 +2013,7 @@ <translation id="379082410132524484">የእርስዎ ካርድ የአገልግሎት ጊዜው አብቅቷል</translation> <translation id="3792890930871100565">አታሚዎችን ግንኙነት አቋርጥ</translation> <translation id="3793395331556663376">ከልክ በላይ በርካታ የሥርዓት ፋይሎች ተከፍተዋል።</translation> +<translation id="379509625511193653">ጠፍቷል</translation> <translation id="3796648294839530037">ተወዳጅ አውታረ መረቦች፦</translation> <translation id="3797739167230984533">የእርስዎ <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> የሚተዳደረው<ph name="END_LINK" /> በእርስዎ ድርጅት ነው</translation> <translation id="3797900183766075808">«<ph name="SEARCH_TERMS" />»ን በ<ph name="SEARCH_ENGINE" /> ውስጥ &ፈልግ</translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">በሂደት ላይ</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ኸርዝ)</translation> <translation id="3954953195017194676">ምንም በቅርብ ጊዜ የተቀረጹ WebRTC ምዝግብ ማስታወሻዎች የለዎትም።</translation> +<translation id="3955163004258753966">ደረጃ ማሻሻልን በማስጀመር ላይ ስህተት</translation> <translation id="3955193568934677022">ጥበቃ የሚደረግበትን ይዘት እንዲያጫውቱ ለጣቢያዎች ፍቀድ (የሚመከር)</translation> <translation id="3955896417885489542">የGoogle Play አማራጮች የክትትል ቅንብርን ይገምግሙ</translation> <translation id="3956702100721821638">Google Playን መድረስ አልተቻለም</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{ከገጽ ውጣ}one{ከገጾች ውጣ}other{ከገጾች ውጣ}}</translation> <translation id="4044612648082411741">የእርስዎን የዕውቅና ማረጋገጫ ይለፍ ቃል ያስገቡ</translation> <translation id="404493185430269859">ነባሪ የፍለጋ ፕሮግራም</translation> +<translation id="4046013316139505482">እነዚህ ቅጥያዎች በዚህ ጣቢያ ላይ ያለውን መረጃ መመልከትና መቀየር አያስፈልጋቸውም።</translation> <translation id="4046123991198612571">ቀጣይ ትራክ</translation> <translation id="4050225813016893843">የማረጋገጫ ዘዴ</translation> <translation id="4052120076834320548">በጣም ትንሽ</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245"><ph name="LANGUAGE" />ን በጭራሽ አትተርጉም</translation> <translation id="4332976768901252016">የወላጅ መቆጣጠሪያዎችን ያዋቅሩ</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 ከRSA ምስጠራ ጋር</translation> +<translation id="4336434711095810371">ሁሉንም ውሂብ አጽዳ</translation> <translation id="4336979451636460645">የአውታረ መረብ ምዝግብ ማስታወሻዎችን ለማግኘት ይህንን ይመልከቱ፦ <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> ከ«<ph name="EXTENSION_NAME" />» መተግበሪያ ጋር መገናኘት ይፈልጋል</translation> <translation id="4345587454538109430">አዋቅር...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">ምናባዊውን ማሽን በማዋቀር ላይ። ይሄ ጥቂት ደቂቃዎችን ሊወስደ ይችላል።</translation> <translation id="4480590691557335796">Chrome በእርስዎ ኮምፒውተር ላይ ጎጂ ሶፍትዌርን ማግኘት እና ማስወገድ ይችላል</translation> <translation id="4481530544597605423">ያልተጣመሩ መሣሪያዎች</translation> +<translation id="4488502501195719518">ሁሉም ውሂብ ይጽዳ?</translation> <translation id="4495419450179050807">በዚህ ገጽ ላይ አታሳይ</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ተበላሽቷል</translation> <translation id="450099669180426158">የቃለ አጋኖ አዶ</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">አድራሻዎች፣ ስልክ ቁጥሮች እና ተጨማሪ ነገሮች</translation> <translation id="4572659312570518089">ከ«<ph name="DEVICE_NAME" />» ጋር በመገናኘት ሳለ ፈቀዳ ተሰርዟል።</translation> <translation id="4572779512957829735">ለእርስዎ የደህንነት ቁልፍ ፒን ያስገቡ</translation> +<translation id="4573515936045019911">Linuxን ደረጃን ለማሻሻል የአውታረ መረብ ግንኙነት ያስፈልጋል። እባክዎ ከበይነመረቡ ጋር ይገናኙና እንደገና ይሞክሩ።</translation> <translation id="457386861538956877">ተጨማሪ...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535"><ph name="HOST_NAME" />ን cast ማድረግ አልተቻለም።</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">በማዋቀር ላይ</translation> <translation id="4996978546172906250">ያጋሩ በ</translation> <translation id="4997086284911172121">ምንም የበይነመረብ ግንኙነት የለም።</translation> +<translation id="4998430619171209993">አብራ</translation> <translation id="4998873842614926205">ለውጦችን ያረጋግጡ</translation> <translation id="5000922062037820727">ታግዷል (የሚመከር)</translation> <translation id="5008936837313706385">የእንቅስቃሴ ስም</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">ወደ ሙሉ ገጽ ዕይታ ግባ</translation> <translation id="514575469079499857">አካባቢን ለመወሰን የአይፒ አድራሻዎን ይጠቀሙ (ነባሪ)</translation> <translation id="5146995429444047494">ለ <ph name="ORIGIN" /> ማሳወቂያዎች ታግደዋል</translation> +<translation id="5147103632304200977">አንድ ጣቢያ የHID መሣሪያዎችን መድረስ ሲፈልግ ጠይቅ (የሚመከር)</translation> <translation id="5150254825601720210">የNetscape ሰርቲፊኬት SSL አገልጋይ ስም</translation> <translation id="5151354047782775295">የዲስክ ቦታ ያስለቅቁ፣ አለበለዚያ የተመረጠ ውሂብ በራስ-ሰር ሊሰርዝ ይችላል</translation> <translation id="5153234146675181447">ስልክን እርሳ</translation> @@ -3041,6 +3058,7 @@ <translation id="5353252989841766347">የይለፍ ቃላትን ከChrome ወደ ውጭ ይላኩ</translation> <translation id="5355099869024327351">ረዳቱ ማሳውቂያዎችን ለእርስዎ እንዲያሳይ ፍቀድ</translation> <translation id="5355926466126177564">ይህ «<ph name="EXTENSION_NAME" />» ቅጥያ ከኦምኒቦክሱ ሆነው ሲፈልጉ የሚታየውን ገጽ ቀይሮታል።</translation> +<translation id="5359910752122114278">1 ውጤት</translation> <translation id="5360150013186312835">በመሣሪያ አሞሌ ላይ አሳይ</translation> <translation id="5362741141255528695">የግል ቁልፍ ፋይል ይምረጡ።</translation> <translation id="5363109466694494651">Powerwash አድርግ እና አድህር</translation> @@ -3290,6 +3308,7 @@ <translation id="5700836101007545240">ግንኙነት አክል በአስተዳዳሪዎ ተሰናክሏል</translation> <translation id="5701080607174488915">መምሪያ ከአገልጋዩ በማምጣት ላይ ሳለ ስህተት።</translation> <translation id="5701381305118179107">መሃከል</translation> +<translation id="5701441174893770082">Linuxን ደረጃ ማሻሻል የእርስዎን ባትሪ በጉልህ በሚባል ደረጃ ያንጠፈጥፈዋል። የእርስዎን መሣሪያ ወደ ኃይል መሙያ እባክዎ ያገናኙ እና እንደገና ይሞክሩ።</translation> <translation id="5702898740348134351">&የፍለጋ ፕሮግራሞችን አርትዕ...</translation> <translation id="570302979952009979">ለዚህ ጣት አሻራ ስም ይምረጡ</translation> <translation id="5704875434923668958">ከዚህ ጋር በማስመር ላይ፦</translation> @@ -3519,6 +3538,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - ዩኤስቢ መሣሪያ ተገናኝቷል</translation> <translation id="6028117231645531007">የጣት አሻራን አክል</translation> <translation id="6029587122245504742">በጣም ቀርፋፋው</translation> +<translation id="6032715498678347852">ለዚህ ጣቢያ የቅጥያ መዳረሻን ለመስጠት፣ ጠቅ ያድርጉት።</translation> <translation id="6032912588568283682">የፋይል ስርዓት</translation> <translation id="6038929619733116134">ረባሽ ወይም አሳሳች ማስታወቂያዎችን ጣቢያው የሚያሳይ ከሆነ አግድ</translation> <translation id="6039651071822577588">የአውታረ መረብ ንብረት መዝገበ ቃላት የተበላሸ ነው</translation> @@ -3903,6 +3923,7 @@ <translation id="6582080224869403177">ደህንነትዎን ለማላቅ የእርስዎን <ph name="DEVICE_TYPE" /> ዳግም ያስጀምሩት።</translation> <translation id="6584878029876017575">Microsoft Lifetime Signing</translation> <translation id="6586451623538375658">የዋና መዳፊት አዘራር ይቀይሩ</translation> +<translation id="6586604979641883411">ቢያንስ <ph name="REQUIRED_SPACE" /> ከነጻ ዲስክ ባዶ ቦታ Linuxን ደረጃ ለማሻሻል ያስፈልጋል። በእርስዎ መሣሪያ ላይ እባክዎ የተወሰነ ባዶ ቦታ ያስለቅቁ እና እንደገና ይሞክሩ።</translation> <translation id="6590458744723262880">አቃፊን ዳግም ሰይም</translation> <translation id="6592267180249644460">የWebRTC ምዝግብ ማስታወሻ <ph name="WEBRTC_LOG_CAPTURE_TIME" /> ላይ ተቀርጸዋል</translation> <translation id="6592808042417736307">የጣት አሻራዎ ተመዝግቧል</translation> @@ -4013,6 +4034,7 @@ <translation id="6757101664402245801">ዩአርኤል ተቀድቷል</translation> <translation id="6758056191028427665">እንዴት እኛ እያደርግን እንደሆነ እንድናውቅ ያድርጉን።</translation> <translation id="6759193508432371551">የፋብሪካ ዳግም ማስጀመር</translation> +<translation id="6762833852331690540">አብራ</translation> <translation id="6767566652486411142">ሌላ ቋንቋ ይምረጡ...</translation> <translation id="6767639283522617719">ጎራውን መቀላቀል አልተቻለም። ቅንብሮቹ ለድርጅታዊ አሃድ ትክክል መሆናቸውን ያረጋግጡ።</translation> <translation id="6769712124046837540">አታሚን በማከል ላይ...</translation> @@ -4134,6 +4156,7 @@ <translation id="6935286146439255109">የወረቀት ትሪ ይጎድላል</translation> <translation id="693807610556624488">የመጻፍ ክወናው ከየሚከተለው መገለጫ ባሕሪ ከሚፈቀደው ከፍተኛ ርዝመት ይበልጣል፦ «<ph name="DEVICE_NAME" />»።</translation> <translation id="6938386202199793006">እርስዎ 1 የተቀመጠ አታሚ አልዎት።</translation> +<translation id="6938789263968032501">ሰዎች</translation> <translation id="6941937518557314510">በእውቅና ማረጋገጫዎ ለ<ph name="HOST_NAME" /> ቁልፍ ለማመንጨት እባክዎ ወደ <ph name="TOKEN_NAME" /> ይግቡ።</translation> <translation id="6943176775188458830">ማትመን ሰርዝ</translation> <translation id="6943836128787782965">ኤችቲቲፒ ማግኘት አልተሳካም</translation> @@ -4158,6 +4181,7 @@ <translation id="6970856801391541997">የተወሰኑ ገጾችን አትም</translation> <translation id="6972180789171089114">ኦዲዮ/ቪዲዮ</translation> <translation id="6972553992270299730">ይህ አቃፊ የስርዓት ፋይሎችን ስለያዘ <ph name="ORIGIN" /> በአቃፊው ውስጥ ያሉ ፋይሎችን መክፈት አይችልም።</translation> +<translation id="6972629891077993081">HID መሣሪያዎች</translation> <translation id="6972754398087986839">አስጀማሪ መመሪያ</translation> <translation id="6973611239564315524">ወደ Debian 10 (Buster) ደረጃ ማሻሻያ ይገኛል</translation> <translation id="6974609594866392343">የመስመር ውጭ ማሳያ ሁነታ</translation> @@ -4482,8 +4506,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">የጀርባው ገጽ፦ <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">ጥሪ ከ<ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">ምንም HID መሣሪያዎች አልተገኙም</translation> <translation id="7433692219247014412">{COUNT,plural, =0{ሁሉንም በ&አዲስ መስኮት ውስጥ ክፈት}=1{&በአዲስ መስኮት ውስጥ ክፈት}one{ሁሉንም (#) በ&አዲስ መስኮት ውስጥ ክፈት}other{ሁሉንም (#) በ&አዲስ መስኮት ውስጥ ክፈት}}</translation> <translation id="7434509671034404296">ገንቢ</translation> +<translation id="7434635829372401939">የእርስዎ ቅንብሮችን አስምር</translation> <translation id="7436921188514130341">ኧረ ቴች! ዳግም በሚሰየምበት ጊዜ የሆነ ስህተት ነበር።</translation> <translation id="7438976808740265764">Flash Player ከዲሴምበር 2020 በኋላ አይደገፍም።</translation> <translation id="7441736921018636843">ይህን ቅንብር ለመቀየር፣ የእርስዎን የስምረት ይለፍ ሐረግ ለማስወገድ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያቀናብሩ<ph name="END_LINK" /></translation> @@ -4805,6 +4831,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - ተጣምሯል</translation> <translation id="7870730066603611552">ቅንብርን የሚከተሉትን የማስመር አማራጮች ይገምግሙ</translation> <translation id="7870790288828963061">ምንም አዲስ ስሪት ያላቸው የKiosk መተግበሪያዎች አልተገኙም። ምንም የሚዘምን ነገር የለም። እባክዎ የዩ.ኤስ.ቢ. ስቲኩን ያስወግዱ።</translation> +<translation id="787268756490971083">አጥፋ</translation> <translation id="7874257161694977650">Chrome በስተጀርባዎች</translation> <translation id="7877451762676714207">ያልታወቀ የአገልጋይ ስህተት። እባክዎ እንደገና ይሞክሩ ወይም የአገልጋይ አስተዳዳሪውን ያግኙ።</translation> <translation id="7877680364634660272">ጉብኝት</translation> @@ -4832,6 +4859,7 @@ <translation id="7908378463497120834">ይቅርታ፣ ቢያንስ አንድ በውጫዊ ማከማቻዎ ላይ ያለ ክፍልፍል ሊፈናጠጥ አልቻለም።</translation> <translation id="7909969815743704077">በIncognito ውስጥ የወረደ</translation> <translation id="7910768399700579500">&አዲስ አቃፊ</translation> +<translation id="7910831464510799808">አብራ</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">የእርስዎ የይለፍ ቃል በአገልጋዩ ላይ ተቀይሯል። እባክዎ ዘግተው ይውጡና እንደገና ይግቡ።</translation> <translation id="7915457674565721553">የወላጅ መቆጣጠሪያዎችን ለማቀናበር ወደ በይነመረብ ያገናኙ</translation> @@ -5774,6 +5802,7 @@ <translation id="934503638756687833">ካስፈለገ እንዲሁም እዚህ ያልተዘረዘሩ ንጥሎች ሊወገዱ ይችላሉ። በChrome የግላዊነት ነጭ ወረቀት ላይ ስለ<a href="<ph name="URL" />">የማይፈለግ ሶፍትዌር ጥበቃ</a> የበለጠ ይረዱ።</translation> <translation id="935490618240037774">የእርስዎን ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች በሁሉም መሣሪያዎችዎ ላይ መጠቀም እንዲችሉ ከGoogle መለያዎ ጋር ይሰምራሉ።</translation> <translation id="935854577147268200">Smart Lock ስልክ ተቀይሯል። Smart Lockን ለማዘመን የይለፍ ቃልዎን ያስገቡ። በሚቀጥለው ጊዜ ስልክዎ የእርስዎን <ph name="DEVICE_TYPE" /> ይከፍታል። በቅንብሮች ውስጥ Smart Lock ማጥፋት ይችላሉ</translation> +<translation id="93610034168535821">በጣቢያዎች ጥቅም ላይ የዋለ ድምር ማከማቻ፦</translation> <translation id="936801553271523408">የስርዓት ምርመራ ውሂብ</translation> <translation id="93766956588638423">ቅጥያ ይጠግኑ</translation> <translation id="938339467127511841">Linux (የቅድመ ይሁንታ ሙከራ) ማከማቻ</translation> @@ -5795,6 +5824,7 @@ <translation id="964286338916298286">የእርስዎ የአይቲ አስተዳዳሪ Chrome Goodiesን ለመሣሪያዎ አሰናክሏል።</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{መተግበሪያ}one{መተግበሪያዎች}other{መተግበሪያዎች}}</translation> <translation id="965211523698323809">ከእርስዎ <ph name="DEVICE_TYPE" /> ሆነው የጽሑፍ መልዕክቶችን ይላኩ እና ይቀበሉ። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት<ph name="LINK_END" /></translation> +<translation id="967398046773905967">ማናቸውም ጣቢያዎች የHID መሣሪያዎችን እንዲደርሱ አይፍቀዱ</translation> <translation id="967624055006145463">የተከማቸ ውሂብ</translation> <translation id="968000525894980488">Google Play አገልግሎቶችን ያብሩ።</translation> <translation id="968037381421390582">ይለጥፉና «<ph name="SEARCH_TERMS" />»ን ይፈልጉ</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index b4c5c74e..020af7a 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Стоп</translation> <translation id="1110155001042129815">Изчакване</translation> <translation id="1112420131909513020">Раздел на заден план използва Bluetooth</translation> +<translation id="1113042067630273625">Съхранените данни за сайтове ще бъдат изчистени, при което ще се освободят <ph name="TOTAL_USAGE" />.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MODEL" /> от <ph name="PRINTER_MANUFACTURER" /> (USB)</translation> <translation id="1114202307280046356">Ромб</translation> <translation id="1114335938027186412">Компютърът ви съдържа устройство за сигурност от типа „модул за надеждна платформа (TPM)“, което служи за реализиране на множество критични защитни функции в Chrome OS. За да научите повече, посетете Помощния център на Chromebook: https://support.google.com/chromebook/?p=tpm</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">Картотекиране на програмната грешка</translation> <translation id="1741314857973421784">Напред</translation> <translation id="1743570585616704562">Не е разпознато</translation> +<translation id="1743846852744439013">Ще излезете от профила си във всички сайтове, включително в отворените раздели.</translation> <translation id="1743970419083351269">Затваряне на лентата на изтеглянето</translation> <translation id="1744060673522309905">Устройството не може да се присъедини към домейна. Проверете дали не сте надхвърлили броя устройства, които можете да добавите.</translation> <translation id="1744108098763830590">фонова страница</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">Услуги</translation> <translation id="18139523105317219">Име на EDI страна</translation> <translation id="1815083418640426271">Поставяне като неформатиран текст</translation> +<translation id="1815181278146012280">Извеждане на запитване, когато сайт иска достъп до HID устройства</translation> <translation id="181577467034453336">Още <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">Скорост на сканиране за клавиатурата</translation> <translation id="1817871734039893258">Възстановяване на файл от Microsoft</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">Среден (по подразбиране)</translation> <translation id="2077129598763517140">Да се използва хардуерно ускорение, когато е налице</translation> <translation id="2078019350989722914">Предупреждение преди излизане (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Изключено</translation> <translation id="2079053412993822885">Ако изтриете някой от собствените си сертификати, няма да можете повече да го използвате, за да се идентифицирате.</translation> <translation id="2079545284768500474">Отмяна</translation> <translation id="2080070583977670716">Още настройки</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">Извеждане на запитване, когато сайт иска да открива устройства с Bluetooth в близост (препоръчително)</translation> <translation id="2292848386125228270">Моля, стартирайте <ph name="PRODUCT_NAME" /> като обикновен потребител. Ако имате нужда от права на потребител root, за да преминете в режим за програмиране, стартирайте отново браузъра с флага --no-sandbox.</translation> <translation id="2294358108254308676">Искате ли да инсталирате <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> резултата</translation> <translation id="2297705863329999812">Търсете принтери</translation> <translation id="2299734369537008228">Плъзгач: от <ph name="MIN_LABEL" /> до <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Персонализиране и управление на <ph name="APP_NAME" /></translation> @@ -1063,6 +1068,7 @@ <translation id="2485005079599453134">Паролата е запазена на това устройство</translation> <translation id="2485422356828889247">Деинсталиране</translation> <translation id="2487067538648443797">Добавяне на нова отметка</translation> +<translation id="2487268545026948104">За да възстановите данните си, свържете се с интернет</translation> <translation id="2489829450872380594">Следващия път нов телефон ще отключи това устройство <ph name="DEVICE_TYPE" />. Можете да изключите Smart Lock от настройките.</translation> <translation id="2489918096470125693">Добавяне на &папка...</translation> <translation id="2490481887078769936">Премахнахте „<ph name="FILE_NAME" />“ от списъка</translation> @@ -1114,6 +1120,7 @@ <translation id="2541706104884128042">Зададено е ново време за сън</translation> <translation id="2544853746127077729">Сертификатът за удостоверяване бе отхвърлен от мрежата</translation> <translation id="2546283357679194313">„Бисквитки“ и данни за сайтове</translation> +<translation id="2547583314137677375">Изключване на синхронизирането</translation> <translation id="2549985041256363841">Старт на записа</translation> <translation id="2550212893339833758">Резервна памет</translation> <translation id="2550596535588364872">Да се разреши ли на <ph name="EXTENSION_NAME" /> да отвори <ph name="FILE_NAME" />?</translation> @@ -1207,6 +1214,7 @@ <translation id="2672142220933875349">Невалиден crx файл. Разпакетирането не бе успешно.</translation> <translation id="2673135533890720193">Да чете историята на сърфирането ви</translation> <translation id="2673589024369449924">Създаване на пряк път на работния плот за този потребител</translation> +<translation id="2674764818721168631">Изключено</translation> <translation id="2677748264148917807">Излизане</translation> <translation id="2678063897982469759">Повторно активиране</translation> <translation id="268053382412112343">&Хронология</translation> @@ -1996,6 +2004,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> ще може да редактира файловете в(ъв) „<ph name="FOLDERNAME" />“, докато не затворите раздела</translation> <translation id="3780827508782506612">Тази страница е преведена</translation> <translation id="378312418865624974">Четене на уникалния идентификатор на този компютър</translation> +<translation id="3784472333786002075">„Бисквитките“ са файлове, създавани от уебсайтовете. Има два типа „бисквитки“: тези на посещавания домейн се създават от сайта, който преглеждате. Той се показва в адресната лента. „Бисквитките“ на трети страни се създават от други сайтове. Те притежават част от съдържанието, като например реклами или изображения, което виждате на посетения от вас уебсайт.</translation> <translation id="3785308913036335955">Показване на прекия път към приложенията</translation> <translation id="3785727820640310185">Запазени пароли за този сайт</translation> <translation id="3788401245189148511">То би имало възможност за:</translation> @@ -2003,6 +2012,7 @@ <translation id="379082410132524484">Картата ви е изтекла</translation> <translation id="3792890930871100565">Прекъсване на връзката с принтерите</translation> <translation id="3793395331556663376">Отворени са твърде много файлови системи.</translation> +<translation id="379509625511193653">Изключено</translation> <translation id="3796648294839530037">Любими мрежи:</translation> <translation id="3797739167230984533">Устройството ви <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> се управлява<ph name="END_LINK" /> от организацията ви</translation> <translation id="3797900183766075808">&Търсене на „<ph name="SEARCH_TERMS" />“ със: <ph name="SEARCH_ENGINE" /></translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">В ход</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> херца)</translation> <translation id="3954953195017194676">Нямате наскоро записани регистрационни файлове за събития с WebRTC.</translation> +<translation id="3955163004258753966">Грешка при стартирането на надстройването</translation> <translation id="3955193568934677022">Разрешаване на сайтовете да възпроизвеждат защитено съдържание (препоръчително)</translation> <translation id="3955896417885489542">Преглед на опциите за Google Play след настройването</translation> <translation id="3956702100721821638">Не можа да се установи връзка с Google Play</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Изход от страницата}other{Изход от страниците}}</translation> <translation id="4044612648082411741">Въведете паролата си за сертификата</translation> <translation id="404493185430269859">Основна търсеща машина</translation> +<translation id="4046013316139505482">Тези разширения нямат нужда да виждат и променят информацията на сайта.</translation> <translation id="4046123991198612571">Следващ запис</translation> <translation id="4050225813016893843">Метод за удостоверяване</translation> <translation id="4052120076834320548">Миниатюрен</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">Никога да не се превежда от <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Настройване на родителските контроли</translation> <translation id="4333854382783149454">PKCS 1 SHA-1 с RSA шифроване</translation> +<translation id="4336434711095810371">Изчистване на всички данни</translation> <translation id="4336979451636460645">За регистрационни файлове за мрежата вижте <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> иска да комуникира с приложението „<ph name="EXTENSION_NAME" />“</translation> <translation id="4345587454538109430">Конфигуриране...</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">Виртуалната машина се конфигурира. Това може да отнеме няколко минути.</translation> <translation id="4480590691557335796">Chrome може да намери опасния софтуер на компютъра ви и да го премахне</translation> <translation id="4481530544597605423">Несдвоени устройства</translation> +<translation id="4488502501195719518">Да се изчистят ли всички данни?</translation> <translation id="4495419450179050807">Да не се показва на тази страница</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> претърпя срив</translation> <translation id="450099669180426158">Икона на удивителен знак</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">Адреси, телефонни номера и др.</translation> <translation id="4572659312570518089">Удостоверяването бе анулирано при установяването на връзка с/ъс <ph name="DEVICE_NAME" />.</translation> <translation id="4572779512957829735">Въведете ПИН кода за ключа си за сигурност</translation> +<translation id="4573515936045019911">За надстройването на Linux е необходима връзка с мрежата. Моля, свържете се с интернет и опитайте отново.</translation> <translation id="457386861538956877">Още...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Предаването на <ph name="HOST_NAME" /> не е възможно.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">Настройва се</translation> <translation id="4996978546172906250">Споделяне чрез</translation> <translation id="4997086284911172121">Няма връзка с интернет.</translation> +<translation id="4998430619171209993">Включено</translation> <translation id="4998873842614926205">Потвърждаване на промените</translation> <translation id="5000922062037820727">Блокирано (препоръчително)</translation> <translation id="5008936837313706385">Име на активността</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">Вход за цял екран</translation> <translation id="514575469079499857">Определяне на местоположението посредством IP адреса ви (по подразбиране)</translation> <translation id="5146995429444047494">Известията за <ph name="ORIGIN" /> са блокирани</translation> +<translation id="5147103632304200977">Извеждане на запитване, когато сайт иска достъп до HID устройства (препоръчително)</translation> <translation id="5150254825601720210">Име на SSL сървър за сертификат на Netscape</translation> <translation id="5151354047782775295">Освободете място на диска, в противен случай е възможно автоматично да бъдат изтрити определени данни</translation> <translation id="5153234146675181447">Забравяне на телефона</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">Експортиране на пароли от Chrome</translation> <translation id="5355099869024327351">Разрешаване на Асистент да ви показва известия</translation> <translation id="5355926466126177564">Разширението „<ph name="EXTENSION_NAME" />“ промени страницата, която се показва при търсене от полето за всичко.</translation> +<translation id="5359910752122114278">1 резултат</translation> <translation id="5360150013186312835">Показване в лентата с инструменти</translation> <translation id="5362741141255528695">Изберете файла с личен ключ.</translation> <translation id="5363109466694494651">Powerwash и възстановяване</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Опцията за добавяне на връзка е деактивирана от администратора ви</translation> <translation id="5701080607174488915">Грешка при извличането на правилото от сървъра.</translation> <translation id="5701381305118179107">Центриране</translation> +<translation id="5701441174893770082">Надстройването на Linux може да изтощи батерията. Моля, включете устройството си в електрическата мрежа и опитайте отново.</translation> <translation id="5702898740348134351">&Редактиране на търсещите машини...</translation> <translation id="570302979952009979">Изберете име за този отпечатък</translation> <translation id="5704875434923668958">Синхронизира се със:</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – установена е връзка с USB устройство</translation> <translation id="6028117231645531007">Добавяне на отпечатъка</translation> <translation id="6029587122245504742">Най-бавна</translation> +<translation id="6032715498678347852">Kликнете върху дадено разширение, за да му предоставите достъп до този сайт.</translation> <translation id="6032912588568283682">Файлова система</translation> <translation id="6038929619733116134">Блокиране, ако на сайта се показват натрапчиви или подвеждащи реклами</translation> <translation id="6039651071822577588">Неправилно образуван речник на свойствата на мрежата</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Нулирайте устройството си <ph name="DEVICE_TYPE" />, за да надстроите функциите за сигурност.</translation> <translation id="6584878029876017575">Подписване на периода на валидност от Microsoft</translation> <translation id="6586451623538375658">Да се размени основният бутон на мишката</translation> +<translation id="6586604979641883411">За надстройването на Linux е необходимо свободно дисково пространство от поне <ph name="REQUIRED_SPACE" />. Моля, освободете място на устройството си и опитайте отново.</translation> <translation id="6590458744723262880">Преименуване на папка</translation> <translation id="6592267180249644460">Записан е регистрационен файл за WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Отпечатъкът ви бе записан</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL адресът е копиран</translation> <translation id="6758056191028427665">Уведомете ни как се справяме.</translation> <translation id="6759193508432371551">Възстановяване на фабричните настройки</translation> +<translation id="6762833852331690540">Включено</translation> <translation id="6767566652486411142">Избор на друг език...</translation> <translation id="6767639283522617719">Присъединяването към домейна не успя. Проверете дали настройките за организационната единица са правилни.</translation> <translation id="6769712124046837540">Добавяне на принтер...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Липсва тава за хартия</translation> <translation id="693807610556624488">Операцията за запис надвишава максималната дължина на атрибута за: <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">Имате 1 запазен принтер.</translation> +<translation id="6938789263968032501">Хора</translation> <translation id="6941937518557314510">Моля, влезте в/ъв <ph name="TOKEN_NAME" />, за да удостоверите самоличността си пред <ph name="HOST_NAME" /> със сертификата си.</translation> <translation id="6943176775188458830">Анулиране на отпечатването</translation> <translation id="6943836128787782965">Получаването на HTTP не бе успешно</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Отпечатване на конкретни страници</translation> <translation id="6972180789171089114">Аудио/видео</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> не може да отваря файловете в тази папка, защото тя съдържа системни файлове</translation> +<translation id="6972629891077993081">HID устройства</translation> <translation id="6972754398087986839">Първи стъпки</translation> <translation id="6973611239564315524">Налице е надстройка до Debian 10 (Buster)</translation> <translation id="6974609594866392343">Офлайн демонстрационен режим</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Фонова страница: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Обаждане от <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Няма намерени HID устройства</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Отваряне на всички в &нов прозорец}=1{Отваряне в &нов прозорец}other{Отваряне на всички (#) в &нов прозорец}}</translation> <translation id="7434509671034404296">Програмист</translation> +<translation id="7434635829372401939">Синхронизиране на настройките ви</translation> <translation id="7436921188514130341">Ужас! При преименуването възникна грешка.</translation> <translation id="7438976808740265764">Поддръжката на Flash Player ще бъде прекратена след декември 2020 г.</translation> <translation id="7441736921018636843">За да промените тази настройка, <ph name="BEGIN_LINK" />нулирайте синхронизирането<ph name="END_LINK" />, така че да премахнете съответния си пропуск</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – сдвоено</translation> <translation id="7870730066603611552">Преглед на опциите за синхронизиране след настройването</translation> <translation id="7870790288828963061">Няма намерени павилионни приложения с по-нова версия. Няма нищо за актуализиране. Моля, извадете USB паметта.</translation> +<translation id="787268756490971083">Изключено</translation> <translation id="7874257161694977650">Фонове за Chrome</translation> <translation id="7877451762676714207">Неизвестна грешка в сървъра. Моля, опитайте отново или се свържете с администратора му.</translation> <translation id="7877680364634660272">Обиколка</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">За съжаление поне един дял на външното ви устройство за съхранение не можа да бъде свързан.</translation> <translation id="7909969815743704077">Изтеглено в режим „инкогнито“</translation> <translation id="7910768399700579500">&Нова папка</translation> +<translation id="7910831464510799808">Включено</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Паролата ви е променена в сървъра. Моля, излезте от профила си и влезте отново в него.</translation> <translation id="7915457674565721553">Свържете се с интернет, за да настроите родителските контроли</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">При необходимост ще бъдат премахнати и елементи, които не са посочени тук. Научете повече за <a href="<ph name="URL" />">защитата от нежелан софтуер</a> в информационния бюлетин за поверителността на Chrome.</translation> <translation id="935490618240037774">Вашите отметки, история, пароли и други настройки ще се синхронизират с профила ви в Google, за да можете да ги използвате на всичките си устройства.</translation> <translation id="935854577147268200">Телефонът за Smart Lock е променен. Въведете паролата си, за да актуализирате функцията. Следващия път телефонът ви ще отключи устройството ви <ph name="DEVICE_TYPE" />. Можете да изключите Smart Lock от настройките.</translation> +<translation id="93610034168535821">Общо място за съхранение, използвано от сайтове:</translation> <translation id="936801553271523408">Диагностични данни за системата</translation> <translation id="93766956588638423">Поправяне на разширението</translation> <translation id="938339467127511841">Хранилище (бета) за Linux</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Системният ви администратор е деактивирал екстрите за Chrome за устройството ви.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Приложение}other{Приложения}}</translation> <translation id="965211523698323809">Изпращайте и получавайте SMS съобщения от своя <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Научете повече<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Забраняване на сайтовете да осъществяват достъп до HID устройства</translation> <translation id="967624055006145463">Съхранени данни</translation> <translation id="968000525894980488">Включете услугите за Google Play.</translation> <translation id="968037381421390582">Пост&авяне и търсене на „<ph name="SEARCH_TERMS" />“</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index 94d18b1..f2326d0 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Zaustavi</translation> <translation id="1110155001042129815">Sačekaj</translation> <translation id="1112420131909513020">Kartica u pozadini koristi bluetooth</translation> +<translation id="1113042067630273625">Ovim ćete izbrisati ukupno <ph name="TOTAL_USAGE" /> pohranjenih podataka web lokacije.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Dijamant</translation> <translation id="1114335938027186412">Vaš računar sadrži sigurnosni uređaj s modulom pouzdane platforme (TPM) koji se koristi za primjenu mnogih važnih sigurnosnih funkcija u Chrome OS-u. Posjetite Chromebook centar za pomoć da saznate više: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Greška na fajlu</translation> <translation id="1741314857973421784">Nastavi</translation> <translation id="1743570585616704562">Nije prepoznato</translation> +<translation id="1743846852744439013">Odjavit ćete se sa svih web lokacija, uključujući sve otvorene kartice.</translation> <translation id="1743970419083351269">Zatvori traku preuzetih fajlova</translation> <translation id="1744060673522309905">Nije moguće pridružiti uređaj domeni. Vodite računa da niste prekoračili broj uređaja koje možete dodati.</translation> <translation id="1744108098763830590">pozadinska stranica</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Usluge</translation> <translation id="18139523105317219">Naziv strane u EDI komunikaciji</translation> <translation id="1815083418640426271">Zalijepi kao neformatirani tekst</translation> +<translation id="1815181278146012280">Pitaj kada web lokacija želi pristupiti HID uređajima</translation> <translation id="181577467034453336">Još <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">Brzina skeniranja tastature</translation> <translation id="1817871734039893258">Microsoft oporavak fajlova</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Srednje (preporučeno)</translation> <translation id="2077129598763517140">Koristi hardversko ubrzavanje kada je dostupno</translation> <translation id="2078019350989722914">Upozori prije odustajanja (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Isključeno</translation> <translation id="2079053412993822885">Ako izbrišete vlastitu potvrdu, nećete je više moći koristiti za svoju identifikaciju.</translation> <translation id="2079545284768500474">Vrati</translation> <translation id="2080070583977670716">Više postavki</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Pitaj kada web lokacija želi otkriti Bluetooth uređaje u blizini (preporučeno)</translation> <translation id="2292848386125228270">Pokrenite <ph name="PRODUCT_NAME" /> kao obični korisnik. Ako ga trebate pokrenuti u rutu zbog programiranja, ponovo ga pokrenite tako da ne sadrži zastavicu zaštićenog okruženja.</translation> <translation id="2294358108254308676">Želite li instalirati aplikaciju <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385">Broj rezultata: <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">Pretražite štampače</translation> <translation id="2299734369537008228">Klizač: od <ph name="MIN_LABEL" /> do <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Prilagodite i kontrolirajte aplikaciju <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Lozinka je sačuvana na ovom uređaju</translation> <translation id="2485422356828889247">Deinstaliraj</translation> <translation id="2487067538648443797">Dodaj novu oznaku</translation> +<translation id="2487268545026948104">Da vratite podatke, povežite se na internet</translation> <translation id="2489829450872380594">Sljedeći put, novi telefon će otključati ovaj uređaj <ph name="DEVICE_TYPE" />. Pametno zaključavanje možete isključiti u Postavkama.</translation> <translation id="2489918096470125693">Dodaj &folder...</translation> <translation id="2490481887078769936">Fajl "<ph name="FILE_NAME" />" je uklonjen sa spiska</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Postavljeno je novo vrijeme spavanja</translation> <translation id="2544853746127077729">Mreža je odbacila potvrdu za autentifikaciju</translation> <translation id="2546283357679194313">Kolačići i podaci web lokacije</translation> +<translation id="2547583314137677375">Isključi sinhroniziranje</translation> <translation id="2549985041256363841">Započni snimanje</translation> <translation id="2550212893339833758">Zamijenjena memorija</translation> <translation id="2550596535588364872">Dozvoliti ekstenziji <ph name="EXTENSION_NAME" /> da otvori <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Loš crx fajl, raspakivanje nije uspjelo.</translation> <translation id="2673135533890720193">Čitati vašu historiju pregledanja</translation> <translation id="2673589024369449924">Kreiraj prečicu na radnoj površini za ovog korisnika</translation> +<translation id="2674764818721168631">Isključeno</translation> <translation id="2677748264148917807">Napusti</translation> <translation id="2678063897982469759">Ponovo omogući</translation> <translation id="268053382412112343">Historija</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> će moći uređivati fajlove u folderu <ph name="FOLDERNAME" /> sve dok ne zatvorite ovu karticu</translation> <translation id="3780827508782506612">Ova je stranica prevedena</translation> <translation id="378312418865624974">Pročitati jedinstveni identifikator za ovaj računar</translation> +<translation id="3784472333786002075">Kolačići su fajlovi koje kreiraju web lokacije. Postoje dvije vrste kolačića: Izvorne kolačiće kreira web lokacija koju posjećujete. Web lokacija je prikazana na traci za adresu. Kolačiće treće strane kreiraju druge web lokacije. Te web lokacije posjeduju dio sadržaja, kao što su oglasi ili slike, koji se prikazuje na web lokaciji koju posjećujete.</translation> <translation id="3785308913036335955">Prikaži prečice aplikacije</translation> <translation id="3785727820640310185">Sačuvane lozinke za ovu web lokaciju</translation> <translation id="3788401245189148511">Ekstenzija ili aplikacija bi mogla:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Vaša kartica je istekla</translation> <translation id="3792890930871100565">Prekini vezu s štampačima</translation> <translation id="3793395331556663376">Otvoreno je previše sistema fajlova.</translation> +<translation id="379509625511193653">Isključeno</translation> <translation id="3796648294839530037">Omiljene mreže:</translation> <translation id="3797739167230984533">Vašim uređajem <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> upravlja<ph name="END_LINK" /> vaša organizacija</translation> <translation id="3797900183766075808">&Pretraži termin “<ph name="SEARCH_TERMS" />” u pretraživaču <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">U toku</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Nemate nedavno snimljenih zapisnika događaja WebRTC.</translation> +<translation id="3955163004258753966">Greška prilikom pokretanja nadogradnje</translation> <translation id="3955193568934677022">Dozvoljava web lokacijama da reproduciraju zaštićeni sadržaj (preporučeno)</translation> <translation id="3955896417885489542">Pregledajte opcije Google Playa nakon postavljanja</translation> <translation id="3956702100721821638">Nije moguće pristupiti Google Playu</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Napusti stranicu}one{Napusti stranice}few{Napusti stranice}other{Napusti stranice}}</translation> <translation id="4044612648082411741">Unesite lozinku potvrde</translation> <translation id="404493185430269859">Zadani pretraživač</translation> +<translation id="4046013316139505482">Ove ekstenzije ne moraju pregledati i mijenjati podatke na ovoj web lokaciji.</translation> <translation id="4046123991198612571">Sljedeća pjesma</translation> <translation id="4050225813016893843">Metoda autentifikacije</translation> <translation id="4052120076834320548">Malo</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Nikada ne prevodi <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Postavite Roditeljski nadzor</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 sa RSA šifriranjem</translation> +<translation id="4336434711095810371">Obriši sve podatke</translation> <translation id="4336979451636460645">Zapisnike mreže pogledajte u: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> želi komunicirati s aplikacijom "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Konfiguracija...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Konfiguriranje virtualne mašine. Ovo može potrajati nekoliko minuta.</translation> <translation id="4480590691557335796">Chrome može pronaći štetni softver na vašem računaru i ukloniti ga.</translation> <translation id="4481530544597605423">Uređaj čije je uparivanje okončano</translation> +<translation id="4488502501195719518">Obrisati sve podatke?</translation> <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation> <translation id="4500114933761911433">Došlo je do pada dodatka <ph name="PLUGIN_NAME" /></translation> <translation id="450099669180426158">Ikona uzvičnika</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adrese, brojevi telefona i drugo</translation> <translation id="4572659312570518089">Autentifikacija je otkazana prilikom povezivanja na uređaj "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Unesite PIN za svoj sigurnosni ključ</translation> +<translation id="4573515936045019911">Za nadogradnju Linuxa je potrebna mrežna veza. Povežite se na internet i pokušajte ponovo.</translation> <translation id="457386861538956877">Više...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Nije moguće emitirati host računar <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Postavljanje</translation> <translation id="4996978546172906250">Dijeljenje koristeći</translation> <translation id="4997086284911172121">Nema internetske veze.</translation> +<translation id="4998430619171209993">Uključeno</translation> <translation id="4998873842614926205">Potvrda promjena</translation> <translation id="5000922062037820727">Blokirano (preporučeno)</translation> <translation id="5008936837313706385">Naziv aktivnosti</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Uđi u prikaz cijelog ekrana</translation> <translation id="514575469079499857">Za određivanje lokacije upotrebljava se vaša IP adresa (zadano)</translation> <translation id="5146995429444047494">Obavještenja za <ph name="ORIGIN" /> su blokirana</translation> +<translation id="5147103632304200977">Pitaj kada web lokacija želi pristupiti HID uređajima (preporučeno)</translation> <translation id="5150254825601720210">Naziv SSL servera za Netscape potvrde</translation> <translation id="5151354047782775295">Oslobodite prostor na disku ili će se određeni podaci automatski izbrisati</translation> <translation id="5153234146675181447">Zaboravi telefon</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Izvezite lozinke iz Chromea</translation> <translation id="5355099869024327351">Dozvolite Asistentu da prikaže vaša obavještenja</translation> <translation id="5355926466126177564">Proširenje "<ph name="EXTENSION_NAME" />" promijenilo stranicu koja se prikazuje prilikom pretraživanja putem višenamjenskog okvira.</translation> +<translation id="5359910752122114278">1 rezultat</translation> <translation id="5360150013186312835">Prikaži na alatnoj traci</translation> <translation id="5362741141255528695">Odaberite fajl privatnog ključa.</translation> <translation id="5363109466694494651">Powerwash i vraćanje</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Administrator je onemogućio opciju Dodaj vezu</translation> <translation id="5701080607174488915">Greška pri preuzimanju pravila sa servera.</translation> <translation id="5701381305118179107">Sredina</translation> +<translation id="5701441174893770082">Nadogradnja Linuxa može znatno brže isprazniti bateriju. Povežite uređaj na punjač i pokušajte ponovo.</translation> <translation id="5702898740348134351">U&ređivanje pretraživača...</translation> <translation id="570302979952009979">Odaberite naziv ovog otiska prsta</translation> <translation id="5704875434923668958">Sinhroniziranje s korisnikom</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB uređaj je povezan</translation> <translation id="6028117231645531007">Dodaj otisak prsta</translation> <translation id="6029587122245504742">Najsporije</translation> +<translation id="6032715498678347852">Da ekstenziji omogućite pristup ovoj web lokaciji, kliknite da nju.</translation> <translation id="6032912588568283682">Sistem fajlova</translation> <translation id="6038929619733116134">Blokirajte ako web lokacija prikazuje nametljive ili obmanjujuće oglase</translation> <translation id="6039651071822577588">Neispravan oblik rječnika mrežnih osobina</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Vratite <ph name="DEVICE_TYPE" /> na zadane postavke zbog nadogradnje sigurnosti.</translation> <translation id="6584878029876017575">Microsoft trajni potpis</translation> <translation id="6586451623538375658">Zamijeni primarno dugme miša</translation> +<translation id="6586604979641883411">Za nadogradnju Linuxa je potrebno najmanje <ph name="REQUIRED_SPACE" /> slobodnog prostora. Oslobodite prostor za pohranu na svom uređaju i pokušajte ponovo.</translation> <translation id="6590458744723262880">Promijenite naziv foldera</translation> <translation id="6592267180249644460">WebRTC zapisnik snimljen u <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Otisak vašeg prsta je snimljen</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL je kopiran</translation> <translation id="6758056191028427665">Recite nam koliko ste zadovoljni nama.</translation> <translation id="6759193508432371551">Vraćanje na fabričke postavke</translation> +<translation id="6762833852331690540">Uključeno</translation> <translation id="6767566652486411142">Odaberite drugi jezik...</translation> <translation id="6767639283522617719">Nije se moguće pridružiti domeni. Provjerite jesu li postavke tačne za organizacionu jedinicu.</translation> <translation id="6769712124046837540">Dodavanje štampača...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Nedostaje držač papira</translation> <translation id="693807610556624488">Operacija zapisivanja premašuje maksimalnu duljinu atributa za uređaj: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Imate 1 sačuvani štampač.</translation> +<translation id="6938789263968032501">Osobe</translation> <translation id="6941937518557314510">Prijavite se na <ph name="TOKEN_NAME" /> da autentificirate host računar <ph name="HOST_NAME" /> pomoću svoje potvrde.</translation> <translation id="6943176775188458830">Otkaži štampanje</translation> <translation id="6943836128787782965">HTTP get nije uspio</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Ispis određenih stranica</translation> <translation id="6972180789171089114">Zvuk/video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> ne može otvoriti fajlove u ovom folderu jer on sadrži sistemske fajlove</translation> +<translation id="6972629891077993081">HID uređaji</translation> <translation id="6972754398087986839">Započnite</translation> <translation id="6973611239564315524">Dostupna je nadogradnja na Debian 10 (Buster)</translation> <translation id="6974609594866392343">Demo način rada van mreže</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Pozadinska stranica: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Poziv s uređaja <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nije pronađen nijedan HID uređaj</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Otvori sve u &novom prozoru}=1{Otvori u &novom prozoru}one{Otvori sve (#) u &novom prozoru}few{Otvori sve (#) u &novom prozoru}other{Otvori sve (#) u &novom prozoru}}</translation> <translation id="7434509671034404296">Programer</translation> +<translation id="7434635829372401939">Sinhronizirajte postavke</translation> <translation id="7436921188514130341">O, ne! Došlo je do pogreške prilikom preimenovanja.</translation> <translation id="7438976808740265764">Flash Player neće više biti podržan nakon decembra 2020. godine.</translation> <translation id="7441736921018636843">Za promjenu ove postavke <ph name="BEGIN_LINK" />poništite sinhronizaciju<ph name="END_LINK" /> da uklonite pristupni izraz sinhronizacije</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – upareno</translation> <translation id="7870730066603611552">Pregledajte opcije sinkronizacije nakon postavljanja</translation> <translation id="7870790288828963061">Nije pronađena novija verzija aplikacije za kiosk. Nema ažuriranja. Uklonite USB disk.</translation> +<translation id="787268756490971083">Isključeno</translation> <translation id="7874257161694977650">Chrome pozadine</translation> <translation id="7877451762676714207">Nepoznata greška servera. Pokušajte ponovo ili kontaktirajte administratora servera.</translation> <translation id="7877680364634660272">Obilazak</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Nažalost, najmanje jedna particija nije aktivirana na vaš vanjski uređaj za pohranu.</translation> <translation id="7909969815743704077">Preuzeto u anonimnom načinu rada</translation> <translation id="7910768399700579500">&Novi folder</translation> +<translation id="7910831464510799808">Uključeno</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Vaša lozinka na serveru je promijenjena. Odjavite se pa se ponovo prijavite.</translation> <translation id="7915457674565721553">Povežite se na internet da postavite roditeljski nadzor</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Stavke koje ovdje nisu navedene također će se po potrebi ukloniti. Saznajte više o <a href="<ph name="URL" />">zaštiti od neželjenog softvera</a> u Chromeovoj bijeloj knjizi o privatnosti.</translation> <translation id="935490618240037774">Vaše oznake, povijest, zaporke i ostale postavke sinkronizirat će se s vašim Google računom kako biste ih mogli upotrebljavati na svim svojim uređajima.</translation> <translation id="935854577147268200">Telefon za Smart Lock je promijenjen. Unesite lozinku da ažurirate Smart Lock. Sljedeći put će vaš telefon otključati vaš uređaj <ph name="DEVICE_TYPE" />. Možete isključiti Smart Lock u Postavkama</translation> +<translation id="93610034168535821">Ukupna pohrana koju koriste web lokacije:</translation> <translation id="936801553271523408">Dijagnostički podaci sistema</translation> <translation id="93766956588638423">Popravi ekstenziju</translation> <translation id="938339467127511841">Linux (Beta) pohrana</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Vaš IT administrator je onemogućio Chrome Goodies za vaš uređaj.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplikacija}one{Aplikacija}few{Aplikacije}other{Aplikacija}}</translation> <translation id="965211523698323809">Šaljite i primajte SMS-ove s uređaja <ph name="DEVICE_TYPE" /> <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Onemogući svim web lokacijama pristup HID uređajima</translation> <translation id="967624055006145463">Pohranjeni podaci</translation> <translation id="968000525894980488">Uključite Google Play usluge.</translation> <translation id="968037381421390582">Zalije&pi i pretraži “<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 00ee220..02316c4 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Atura</translation> <translation id="1110155001042129815">Espera</translation> <translation id="1112420131909513020">Una pestanya de fons utilitza el Bluetooth</translation> +<translation id="1113042067630273625">Amb aquesta acció s'esborraran <ph name="TOTAL_USAGE" /> de dades emmagatzemades de llocs web.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">L'ordinador conté un dispositiu de seguretat amb mòdul de plataforma de confiança (TPM), que s'utilitza per implementar un gran nombre de funcions clau de seguretat a Chrome OS. Visiteu el Centre d'ajuda de Chromebook per obtenir més informació: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Arxiva l'error</translation> <translation id="1741314857973421784">Continua</translation> <translation id="1743570585616704562">No s'ha reconegut</translation> +<translation id="1743846852744439013">Se't tancarà la sessió de tots els llocs web, també de les pestanyes obertes.</translation> <translation id="1743970419083351269">Tanca la barra de baixades</translation> <translation id="1744060673522309905">No es pot connectar el dispositiu al domini. Comprova que no hagis superat el nombre de dispositius que hi pots afegir.</translation> <translation id="1744108098763830590">pàgina en segon pla</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Serveis</translation> <translation id="18139523105317219">Nom de la part EDI</translation> <translation id="1815083418640426271">Enganxa com a text sense format</translation> +<translation id="1815181278146012280">Pregunta'm quan un lloc web vulgui accedir a dispositius HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> més...</translation> <translation id="1816036116994822943">Velocitat de cerca del teclat</translation> <translation id="1817871734039893258">Recuperació de fitxers de Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Mitjana (opció recomanada)</translation> <translation id="2077129598763517140">Utilitza l'acceleració per maquinari quan estigui disponible</translation> <translation id="2078019350989722914">Avisa abans de sortir (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Desactivat</translation> <translation id="2079053412993822885">Si suprimiu un dels vostres certificats, ja no el podreu utilitzar per identificar-vos.</translation> <translation id="2079545284768500474">Desfés</translation> <translation id="2080070583977670716">Més opcions de configuració</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Pregunta'm quan un lloc web vulgui descobrir dispositius Bluetooth propers (opció recomanada)</translation> <translation id="2292848386125228270">Inicia <ph name="PRODUCT_NAME" /> com un usuari normal. Si l'has d'executar com a arrel per fer-ne desenvolupament, torna a executar-lo amb la marca que indica que no és zona de proves.</translation> <translation id="2294358108254308676">Voleu instal·lar <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultats</translation> <translation id="2297705863329999812">Cerca impressores</translation> <translation id="2299734369537008228">Control lliscant: de <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personalitza i controla <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">La contrasenya s'ha desat al dispositiu</translation> <translation id="2485422356828889247">Desinstal·la</translation> <translation id="2487067538648443797">Afegeix una adreça d'interès nova</translation> +<translation id="2487268545026948104">Per restaurar les teves dades, connecta't a Internet</translation> <translation id="2489829450872380594">La propera vegada, <ph name="DEVICE_TYPE" /> es desbloquejarà amb un altre telèfon. Pots desactivar Smart Lock des de Configuració.</translation> <translation id="2489918096470125693">Afegeix una &carpeta...</translation> <translation id="2490481887078769936">S'ha suprimit "<ph name="FILE_NAME" />" de la llista</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">S'ha establert l'hora de dormir nova</translation> <translation id="2544853746127077729">La xarxa ha rebutjat el certificat d'autenticació</translation> <translation id="2546283357679194313">Dades de llocs web i galetes</translation> +<translation id="2547583314137677375">Desactiva la sincronització</translation> <translation id="2549985041256363841">Inicia la gravació</translation> <translation id="2550212893339833758">Memòria intercanviada</translation> <translation id="2550596535588364872">Vols permetre que <ph name="EXTENSION_NAME" /> obri <ph name="FILE_NAME" />?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">El fitxer crx és incorrecte i no s'ha pogut descomprimir.</translation> <translation id="2673135533890720193">Llegir l'historial de navegació</translation> <translation id="2673589024369449924">Crea una drecera a l'escriptori per a aquest usuari</translation> +<translation id="2674764818721168631">Desactivat</translation> <translation id="2677748264148917807">Surt</translation> <translation id="2678063897982469759">Torna a activar</translation> <translation id="268053382412112343">Hi&storial</translation> @@ -1996,6 +2004,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> podrà editar els fitxers que conté la carpeta <ph name="FOLDERNAME" /> mentre no tanquis aquesta pestanya</translation> <translation id="3780827508782506612">Aquesta pàgina s'ha traduït</translation> <translation id="378312418865624974">Llegeix un identificador únic per a aquest ordinador</translation> +<translation id="3784472333786002075">Les galetes són fitxers que creen els llocs web. N'hi ha de dos tipus: les galetes pròpies són les que crea el lloc web que visites. El lloc web es mostra a la barra d'adreces. Les galetes de tercers són les que creen altres llocs web. Aquests llocs web són els propietaris de part del contingut que es mostra al lloc web que visites, com ara els anuncis o les imatges.</translation> <translation id="3785308913036335955">Mostra la drecera d'aplicacions</translation> <translation id="3785727820640310185">Contrasenyes desades per a aquest lloc web</translation> <translation id="3788401245189148511">Podria:</translation> @@ -2003,6 +2012,7 @@ <translation id="379082410132524484">La targeta ha caducat</translation> <translation id="3792890930871100565">Desconnecta impressores</translation> <translation id="3793395331556663376">Hi ha massa sistemes de fitxers oberts.</translation> +<translation id="379509625511193653">Desactivat</translation> <translation id="3796648294839530037">Xarxes preferides:</translation> <translation id="3797739167230984533">La teva organització <ph name="BEGIN_LINK" />gestiona <ph name="DEVICE_TYPE" /><ph name="END_LINK" /></translation> <translation id="3797900183766075808">&Cerca "<ph name="SEARCH_TERMS" />" a <ph name="SEARCH_ENGINE" /></translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">En curs</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertzs)</translation> <translation id="3954953195017194676">No s'ha capturat cap registre d'esdeveniments de WebRTC recentment.</translation> +<translation id="3955163004258753966">S'ha produït un error en iniciar l'actualització</translation> <translation id="3955193568934677022">Permet que els llocs web reprodueixin contingut protegit (opció recomanada)</translation> <translation id="3955896417885489542">Mostra les opcions de Google Play després de la configuració</translation> <translation id="3956702100721821638">No s'ha pogut contactar amb Google Play</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Surt de la pàgina}other{Surt de les pàgines}}</translation> <translation id="4044612648082411741">Introdueix la contrasenya del certificat</translation> <translation id="404493185430269859">Motor de cerca predeterminat</translation> +<translation id="4046013316139505482">Aquestes extensions no necessiten veure ni modificar la informació d'aquest lloc web.</translation> <translation id="4046123991198612571">Pista següent</translation> <translation id="4050225813016893843">Mètode d'autenticació</translation> <translation id="4052120076834320548">Minúscul</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245">No tradueixis mai de: <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configura els controls parentals</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 amb encriptació RSA</translation> +<translation id="4336434711095810371">Esborra totes les dades</translation> <translation id="4336979451636460645">Si voleu veure els registres de xarxa, consulteu: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> es vol comunicar amb l'aplicació "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configura...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">S'està configurant la màquina virtual. Aquest procés pot tardar uns quants minuts.</translation> <translation id="4480590691557335796">Chrome pot cercar programari nociu a l'ordinador i suprimir-lo</translation> <translation id="4481530544597605423">Dispositius desvinculats</translation> +<translation id="4488502501195719518">Vols esborrar totes les dades?</translation> <translation id="4495419450179050807">No la mostris en aquesta pàgina</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ha fallat</translation> <translation id="450099669180426158">Icona de signe d'exclamació</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">Adreces, números de telèfon i molt més</translation> <translation id="4572659312570518089">S'ha cancel·lat l'autenticació mentre es connectava a "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Introdueix el PIN de la clau de seguretat</translation> +<translation id="4573515936045019911">Cal tenir connexió a la xarxa per actualitzar Linux. Connecta't a Internet i torna-ho a provar.</translation> <translation id="457386861538956877">Més...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">No es pot emetre <ph name="HOST_NAME" />.</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">S'està configurant</translation> <translation id="4996978546172906250">Comparteix mitjançant</translation> <translation id="4997086284911172121">No hi ha connexió a Internet.</translation> +<translation id="4998430619171209993">Activat</translation> <translation id="4998873842614926205">Confirma els canvis</translation> <translation id="5000922062037820727">Bloquejat (opció recomanada)</translation> <translation id="5008936837313706385">Nom de l'activitat</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">Passa a pantalla completa</translation> <translation id="514575469079499857">Utilitza l'adreça IP per determinar la ubicació (opció predeterminada)</translation> <translation id="5146995429444047494">Les notificacions per a <ph name="ORIGIN" /> estan bloquejades</translation> +<translation id="5147103632304200977">Pregunta'm quan un lloc web vulgui accedir a dispositius HID (opció recomanada)</translation> <translation id="5150254825601720210">Nom del servidor SSL de certificats de Netscape</translation> <translation id="5151354047782775295">Si no alliberes espai de disc pot ser que algunes dades se suprimeixin automàticament</translation> <translation id="5153234146675181447">Oblida el telèfon</translation> @@ -3042,6 +3059,7 @@ <translation id="5353252989841766347">Exporteu contrasenyes de Chrome</translation> <translation id="5355099869024327351">Permet que l'Assistent et mostri notificacions</translation> <translation id="5355926466126177564">L'extensió <ph name="EXTENSION_NAME" /> ha canviat la pàgina que es mostra quan feu una cerca des de l'omnibox.</translation> +<translation id="5359910752122114278">1 resultat</translation> <translation id="5360150013186312835">Mostra a la barra d'eines</translation> <translation id="5362741141255528695">Seleccioneu el fitxer de clau privada.</translation> <translation id="5363109466694494651">Fes un Powerwash i canvia a la versió anterior</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">L'administrador ha desactivat l'opció Afegeix una connexió</translation> <translation id="5701080607174488915">S'ha produït un error en recuperar la política del servidor.</translation> <translation id="5701381305118179107">Centre</translation> +<translation id="5701441174893770082">L'actualització de Linux pot consumir considerablement la bateria. Connecta el dispositiu a un carregador i torna-ho a provar.</translation> <translation id="5702898740348134351">&Edita els motors de cerca...</translation> <translation id="570302979952009979">Tria un nom per a aquesta empremta digital</translation> <translation id="5704875434923668958">S'està sincronitzant amb</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" />: hi ha un dispositiu USB connectat</translation> <translation id="6028117231645531007">Afegeix una empremta digital</translation> <translation id="6029587122245504742">Mínima</translation> +<translation id="6032715498678347852">Per permetre que una extensió accedeixi a aquest lloc web, fes-hi clic.</translation> <translation id="6032912588568283682">Sistema de fitxers</translation> <translation id="6038929619733116134">Bloqueja els anuncis si el lloc web mostra publicitat intrusiva o enganyosa</translation> <translation id="6039651071822577588">El diccionari de propietat de xarxa no està ben format</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">Restableix el dispositiu <ph name="DEVICE_TYPE" /> per actualitzar-ne el sistema de seguretat.</translation> <translation id="6584878029876017575">Signatura de durada de Microsoft</translation> <translation id="6586451623538375658">Canvia el botó principal del ratolí</translation> +<translation id="6586604979641883411">Cal tenir <ph name="REQUIRED_SPACE" /> d'espai lliure al disc per actualitzar Linux. Allibera espai al dispositiu i torna-ho a provar.</translation> <translation id="6590458744723262880">Canvia el nom de la carpeta</translation> <translation id="6592267180249644460">Data i hora del registre de WebRTC capturat: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">S'ha capturat la teva empremta digital</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">S'ha copiat l'URL</translation> <translation id="6758056191028427665">Digue'ns si ho estem fent bé.</translation> <translation id="6759193508432371551">Restabliment de fàbrica</translation> +<translation id="6762833852331690540">Activat</translation> <translation id="6767566652486411142">Tria un altre idioma...</translation> <translation id="6767639283522617719">No es pot connectar el domini. Comprova que la configuració sigui l'adequada per a la unitat organitzativa.</translation> <translation id="6769712124046837540">S'està afegint la impressora...</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">Falta una safata de paper</translation> <translation id="693807610556624488">L'operació d'escriptura supera la longitud màxima de l'atribut a <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">Tens 1 impressora desada.</translation> +<translation id="6938789263968032501">Persones</translation> <translation id="6941937518557314510">Inicieu la sessió a <ph name="TOKEN_NAME" /> per autenticar-vos a <ph name="HOST_NAME" /> amb el vostre certificat.</translation> <translation id="6943176775188458830">Cancel·la la impressió</translation> <translation id="6943836128787782965">La sol·licitud HTTP ha fallat</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">Imprimeix pàgines específiques</translation> <translation id="6972180789171089114">Àudio/Vídeo</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> no pot obrir els fitxers que es troben en aquesta carpeta perquè conté fitxers del sistema</translation> +<translation id="6972629891077993081">Dispositius HID</translation> <translation id="6972754398087986839">Comença</translation> <translation id="6973611239564315524">Hi ha disponible una actualització a Debian 10 (Buster)</translation> <translation id="6974609594866392343">Mode de demostració sense connexió</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Pàgina en segon pla: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Truca des de: <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">No s'ha trobat cap dispositiu HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Obre-les totes en una &finestra nova}=1{Obre en una &finestra nova}other{Obre-les totes (#) en una &finestra nova}}</translation> <translation id="7434509671034404296">Desenvolupador</translation> +<translation id="7434635829372401939">Sincronitza la configuració</translation> <translation id="7436921188514130341">S'ha produït un error durant el canvi de nom.</translation> <translation id="7438976808740265764">Flash Player ja no s'admetrà a partir de desembre de 2020.</translation> <translation id="7441736921018636843">Si vols canviar aquesta opció, <ph name="BEGIN_LINK" />restableix la sincronització<ph name="END_LINK" /> perquè se suprimeixi la frase de contrasenya de sincronització</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />: vinculat</translation> <translation id="7870730066603611552">Mostra les opcions de sincronització en finalitzar la configuració</translation> <translation id="7870790288828963061">No s'ha trobat cap aplicació de Quiosc amb una versió més nova. No hi ha res per actualitzar. Extraieu la memòria USB.</translation> +<translation id="787268756490971083">Desactivat</translation> <translation id="7874257161694977650">Fons de pantalla de Chrome</translation> <translation id="7877451762676714207">Error de servidor desconegut. Torneu-ho a provar o contacteu amb l'administrador del servidor.</translation> <translation id="7877680364634660272">Visita guiada</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">Com a mínim una partició del dispositiu d'emmagatzematge extern no s'ha pogut muntar.</translation> <translation id="7909969815743704077">S'ha baixat en mode d'incògnit</translation> <translation id="7910768399700579500">Carpeta &nova</translation> +<translation id="7910831464510799808">Activat</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">La contrasenya s'ha canviat al servidor. Tanca la sessió i torna-la a iniciar.</translation> <translation id="7915457674565721553">Connecta't a Internet per configurar els controls parentals</translation> @@ -5772,6 +5800,7 @@ <translation id="934503638756687833">Si cal, també se suprimiran elements no inclosos en aquesta llista. Obtén més informació sobre la <a href="<ph name="URL" />">protecció contra programari no desitjat</a> a l'informe de privadesa de Chrome.</translation> <translation id="935490618240037774">Les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració se sincronitzaran amb el teu Compte de Google, perquè els puguis utilitzar en tots els dispositius</translation> <translation id="935854577147268200">El telèfon Smart Lock ha canviat. Introdueix la contrasenya per actualitzar Smart Lock. La propera vegada, <ph name="DEVICE_TYPE" /> es desbloquejarà amb el telèfon. Pots desactivar Smart Lock a Configuració.</translation> +<translation id="93610034168535821">Emmagatzematge total utilitzat pels llocs web:</translation> <translation id="936801553271523408">Dades de diagnòstic del sistema</translation> <translation id="93766956588638423">Repara l'extensió</translation> <translation id="938339467127511841">Emmagatzematge a Linux (beta)</translation> @@ -5793,6 +5822,7 @@ <translation id="964286338916298286">L'administrador de TI ha desactivat els productes extra de Chrome per al dispositiu.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplicació}other{Aplicacions}}</translation> <translation id="965211523698323809">Envia i rep missatges de text amb el dispositiu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Més informació<ph name="LINK_END" /></translation> +<translation id="967398046773905967">No permetis que cap lloc web accedeixi als dispositius HID</translation> <translation id="967624055006145463">Dades emmagatzemades</translation> <translation id="968000525894980488">Activa els serveis de Google Play.</translation> <translation id="968037381421390582">Engan&xa i cerca "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 4a323c41..63195cde 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Anhalten</translation> <translation id="1110155001042129815">Warten</translation> <translation id="1112420131909513020">Tab im Hintergrund verwendet Bluetooth</translation> +<translation id="1113042067630273625">Dadurch werden <ph name="TOTAL_USAGE" /> gespeicherter Websitedaten gelöscht.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Raute</translation> <translation id="1114335938027186412">Ihr Computer enthält einen TPM-Sicherheitschip (Trusted Platform Module), über den viele wichtige Sicherheitsfunktionen in Chrome OS implementiert sind. Weitere Informationen dazu finden Sie in der Chromebook-Hilfe unter https://support.google.com/chromebook/?p=tpm.</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">Fehler melden</translation> <translation id="1741314857973421784">Weiter</translation> <translation id="1743570585616704562">Nicht erkannt</translation> +<translation id="1743846852744439013">Sie werden von allen Websites abgemeldet, auch von solchen auf offenen Tabs.</translation> <translation id="1743970419083351269">Downloadleiste schließen</translation> <translation id="1744060673522309905">Das Gerät konnte der Domain nicht beitreten. Sie dürfen nicht mehr als die erlaubte Anzahl von Geräten hinzufügen.</translation> <translation id="1744108098763830590">Hintergrundseite</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">Dienste</translation> <translation id="18139523105317219">Name der EDI-Partei</translation> <translation id="1815083418640426271">Als unformatierten Text einfügen</translation> +<translation id="1815181278146012280">Nachfragen, wenn eine Website auf HID-Geräte zugreifen möchte</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> weitere...</translation> <translation id="1816036116994822943">Scangeschwindigkeit (Tastatur)</translation> <translation id="1817871734039893258">Microsoft-Dateiwiederherstellung</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">Mittel (empfohlen)</translation> <translation id="2077129598763517140">Hardwarebeschleunigung verwenden, falls verfügbar</translation> <translation id="2078019350989722914">Vor Beenden warnen (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Aus</translation> <translation id="2079053412993822885">Falls Sie eines Ihrer eigenen Zertifikate löschen, können Sie sich damit nicht mehr identifizieren.</translation> <translation id="2079545284768500474">Rückgängig machen</translation> <translation id="2080070583977670716">Weitere Einstellungen</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">Nachfragen, wenn eine Website nach Bluetooth-Geräten in der Nähe suchen möchte (empfohlen)</translation> <translation id="2292848386125228270">Starten Sie <ph name="PRODUCT_NAME" /> als normaler Nutzer. Um Chrome für Entwicklungszwecke als Root auszuführen, müssen Sie den Browser noch einmal mit dem Kennzeichen "--no-sandbox" ausführen.</translation> <translation id="2294358108254308676">Möchten Sie <ph name="PRODUCT_NAME" /> installieren?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> Ergebnisse</translation> <translation id="2297705863329999812">Drucker suchen</translation> <translation id="2299734369537008228">Schieberegler: <ph name="MIN_LABEL" /> bis <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922"><ph name="APP_NAME" /> anpassen und verwalten</translation> @@ -1062,6 +1067,7 @@ <translation id="2485005079599453134">Passwort wurde auf diesem Gerät gespeichert</translation> <translation id="2485422356828889247">Deinstallieren</translation> <translation id="2487067538648443797">Neues Lesezeichen hinzufügen</translation> +<translation id="2487268545026948104">Verbindung mit dem Internet herstellen, um Daten wiederherzustellen</translation> <translation id="2489829450872380594">Das nächste Mal wird dieses <ph name="DEVICE_TYPE" /> durch ein neues Smartphone entsperrt. Sie können Smart Lock in den Einstellungen deaktivieren.</translation> <translation id="2489918096470125693">&Ordner hinzufügen...</translation> <translation id="2490481887078769936">"<ph name="FILE_NAME" />" wurde aus der Liste entfernt</translation> @@ -1113,6 +1119,7 @@ <translation id="2541706104884128042">Neue Schlafenszeit festgelegt</translation> <translation id="2544853746127077729">Ablehnung des Authentifizierungszertifikats durch das Netzwerk</translation> <translation id="2546283357679194313">Cookies und Websitedaten</translation> +<translation id="2547583314137677375">Synchronisierung deaktivieren</translation> <translation id="2549985041256363841">Aufnahme starten</translation> <translation id="2550212893339833758">Swap-Speicher</translation> <translation id="2550596535588364872">Zulassen, dass <ph name="EXTENSION_NAME" /> <ph name="FILE_NAME" /> öffnet?</translation> @@ -1206,6 +1213,7 @@ <translation id="2672142220933875349">Fehler beim Entpacken wegen fehlerhafter CRX-Datei.</translation> <translation id="2673135533890720193">Browserverlauf lesen</translation> <translation id="2673589024369449924">Desktopverknüpfung für diesen Nutzer erstellen</translation> +<translation id="2674764818721168631">Aus</translation> <translation id="2677748264148917807">Verlassen</translation> <translation id="2678063897982469759">Wieder aktivieren</translation> <translation id="268053382412112343">Ve&rlauf</translation> @@ -1994,6 +2002,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> kann Dateien in "<ph name="FOLDERNAME" />" bearbeiten, bis dieser Tab geschlossen wird</translation> <translation id="3780827508782506612">Diese Seite wurde übersetzt</translation> <translation id="378312418865624974">Eindeutige Kennung für diesen Computer lesen</translation> +<translation id="3784472333786002075">Cookies sind Dateien, die durch Websites erstellt werden. Es gibt zwei Arten von Cookies: Eigene Cookies werden von der Website erstellt, die Sie besuchen. Die Website wird in der Adressleiste angezeigt. Drittanbieter-Cookies werden von anderen Websites erstellt. Diesen Websites gehören einige der Inhalte, wie z. B. Werbeanzeigen oder Bilder, die Sie auf der besuchten Website sehen.</translation> <translation id="3785308913036335955">Verknüpfung "Apps" anzeigen</translation> <translation id="3785727820640310185">Für diese Website gespeicherte Passwörter</translation> <translation id="3788401245189148511">Sie könnte:</translation> @@ -2001,6 +2010,7 @@ <translation id="379082410132524484">Ihre Karte ist abgelaufen.</translation> <translation id="3792890930871100565">Druckerverbindungen trennen</translation> <translation id="3793395331556663376">Es sind zu viele Dateisysteme geöffnet.</translation> +<translation id="379509625511193653">Aus</translation> <translation id="3796648294839530037">Bevorzugte Netzwerke:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" />Ihr <ph name="DEVICE_TYPE" /> wird von Ihrer Organisation verwaltet<ph name="END_LINK" /></translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> nach "<ph name="SEARCH_TERMS" />" durchsuchen</translation> @@ -2132,6 +2142,7 @@ <translation id="3954354850384043518">Wird heruntergeladen</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Es sind keine kürzlich erfassten WebRTC-Ereignisprotokolle vorhanden.</translation> +<translation id="3955163004258753966">Fehler beim Starten des Upgrades</translation> <translation id="3955193568934677022">Wiedergabe geschützter Inhalte auf Websites zulassen (empfohlen)</translation> <translation id="3955896417885489542">Nach Einrichtung Google Play-Optionen überprüfen</translation> <translation id="3956702100721821638">Keine Verbindung zu Google Play</translation> @@ -2192,6 +2203,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Seite verlassen}other{Seiten verlassen}}</translation> <translation id="4044612648082411741">Sie müssen Ihr Zertifikatspasswort eingeben</translation> <translation id="404493185430269859">Standardsuchmaschine</translation> +<translation id="4046013316139505482">Diese Erweiterungen müssen Daten dieser Website nicht aufrufen und ändern.</translation> <translation id="4046123991198612571">Nächster Titel</translation> <translation id="4050225813016893843">Authentifizierungsmethode</translation> <translation id="4052120076834320548">Winzig</translation> @@ -2371,6 +2383,7 @@ <translation id="4330387663455830245"><ph name="LANGUAGE" /> nie übersetzen</translation> <translation id="4332976768901252016">Jugendschutzeinstellungen einrichten</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 mit RSA-Verschlüsselung</translation> +<translation id="4336434711095810371">Alle Daten löschen</translation> <translation id="4336979451636460645">Netzwerkprotokolle sind hier abrufbar: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> möchte mit der App "<ph name="EXTENSION_NAME" />" kommunizieren.</translation> <translation id="4345587454538109430">Konfigurieren...</translation> @@ -2471,6 +2484,7 @@ <translation id="4479877282574735775">Die virtuelle Maschine wird konfiguriert. Dies kann einige Minuten dauern.</translation> <translation id="4480590691557335796">Chrome kann auf Ihrem Computer schädliche Software suchen und entfernen</translation> <translation id="4481530544597605423">Entkoppelte Geräte</translation> +<translation id="4488502501195719518">Alle Daten löschen?</translation> <translation id="4495419450179050807">Nicht auf dieser Seite anzeigen</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ist abgestürzt</translation> <translation id="450099669180426158">Ausrufezeichensymbol</translation> @@ -2531,6 +2545,7 @@ <translation id="4570387585180509432">Adressen, Telefonnummern…</translation> <translation id="4572659312570518089">Beim Herstellen der Verbindung zu "<ph name="DEVICE_NAME" />" wurde die Authentifizierung abgebrochen.</translation> <translation id="4572779512957829735">Geben Sie die PIN für Ihren Sicherheitsschlüssel ein</translation> +<translation id="4573515936045019911">Eine Netzwerkverbindung ist erforderlich, um das Linux-Upgrade durchzuführen. Stellen Sie eine Verbindung zum Internet her und versuchen Sie es noch einmal.</translation> <translation id="457386861538956877">Mehr...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> kann nicht gestreamt werden.</translation> @@ -2810,6 +2825,7 @@ <translation id="4994754230098574403">Wird eingerichtet</translation> <translation id="4996978546172906250">Teilen über</translation> <translation id="4997086284911172121">Keine Internetverbindung.</translation> +<translation id="4998430619171209993">An</translation> <translation id="4998873842614926205">Änderungen bestätigen</translation> <translation id="5000922062037820727">Blockiert (empfohlen)</translation> <translation id="5008936837313706385">Aktivitätsname</translation> @@ -2906,6 +2922,7 @@ <translation id="5143712164865402236">Vollbildmodus ein</translation> <translation id="514575469079499857">IP-Adresse zur Standortbestimmung verwenden (Standardeinstellung)</translation> <translation id="5146995429444047494">Benachrichtigungen von <ph name="ORIGIN" /> werden blockiert</translation> +<translation id="5147103632304200977">Nachfragen, wenn eine Website auf HID-Geräte zugreifen möchte (empfohlen)</translation> <translation id="5150254825601720210">SSL-Servername für Netscape-Zertifikat</translation> <translation id="5151354047782775295">Geben Sie Speicherplatz frei oder ausgewählte Daten werden automatisch gelöscht</translation> <translation id="5153234146675181447">Smartphone entfernen</translation> @@ -3040,6 +3057,7 @@ <translation id="5353252989841766347">Passwörter aus Chrome exportieren</translation> <translation id="5355099869024327351">Zulassen, dass Assistant Ihnen Benachrichtigungen anzeigt</translation> <translation id="5355926466126177564">Die Erweiterung <ph name="EXTENSION_NAME" /> hat die Seite geändert, die bei der Suche über die Omnibox angezeigt wird.</translation> +<translation id="5359910752122114278">1 Ergebnis</translation> <translation id="5360150013186312835">In Symbolleiste anzeigen</translation> <translation id="5362741141255528695">Private Schlüsseldatei auswählen</translation> <translation id="5363109466694494651">Powerwash durchführen und zurücksetzen</translation> @@ -3289,6 +3307,7 @@ <translation id="5700836101007545240">"Verbindung hinzufügen" wurde von Ihrem Administrator deaktiviert</translation> <translation id="5701080607174488915">Fehler beim Abrufen der Richtlinie vom Server.</translation> <translation id="5701381305118179107">Zentrieren</translation> +<translation id="5701441174893770082">Wenn Sie Linux aktualisieren, kann dies den Akku stark beanspruchen. Bitte verbinden Sie Ihr Gerät mit einem Ladegerät und versuchen Sie es noch einmal.</translation> <translation id="5702898740348134351">Suchmaschin&en bearbeiten...</translation> <translation id="570302979952009979">Wählen Sie einen Namen für diesen Fingerabdruck</translation> <translation id="5704875434923668958">Synchronisierung mit</translation> @@ -3518,6 +3537,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-Gerät verbunden</translation> <translation id="6028117231645531007">Fingerabdruck hinzufügen</translation> <translation id="6029587122245504742">Langsamste</translation> +<translation id="6032715498678347852">Wenn eine Erweiterung Zugriff auf diese Website haben soll, klicken Sie sie an.</translation> <translation id="6032912588568283682">Dateisystem</translation> <translation id="6038929619733116134">Blockieren, wenn Website aufdringliche oder irreführende Werbung anzeigt</translation> <translation id="6039651071822577588">Netzwerkeigenschaften-Wörterbuch ungültig</translation> @@ -3902,6 +3922,7 @@ <translation id="6582080224869403177">Setzen Sie Ihr <ph name="DEVICE_TYPE" /> zurück, um das Sicherheitsupdate durchzuführen.</translation> <translation id="6584878029876017575">Microsoft-Lebensdauersignatur</translation> <translation id="6586451623538375658">Primäre Maustaste tauschen</translation> +<translation id="6586604979641883411">Für das Linux-Upgrade sind mindestens <ph name="REQUIRED_SPACE" /> freier Speicherplatz erforderlich. Geben Sie etwas Speicherplatz auf Ihrem Gerät frei und versuchen Sie es noch einmal.</translation> <translation id="6590458744723262880">Ordner umbenennen</translation> <translation id="6592267180249644460">WebRTC-Protokoll erfasst am <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Ihr Fingerabdruck wurde erfasst</translation> @@ -4012,6 +4033,7 @@ <translation id="6757101664402245801">URL kopiert</translation> <translation id="6758056191028427665">Teilen Sie uns mit, wie zufrieden Sie mit uns sind.</translation> <translation id="6759193508432371551">Zurücksetzen auf Werkseinstellungen</translation> +<translation id="6762833852331690540">An</translation> <translation id="6767566652486411142">Andere Sprache auswählen…</translation> <translation id="6767639283522617719">Beitritt zur Domain nicht möglich. Achten Sie darauf, dass die Einstellungen für die Organisationseinheit richtig sind.</translation> <translation id="6769712124046837540">Drucker wird hinzugefügt...</translation> @@ -4133,6 +4155,7 @@ <translation id="6935286146439255109">Papierfach fehlt</translation> <translation id="693807610556624488">Der Schreibvorgang auf das folgende Gerät überschreitet die maximal zulässige Attributlänge: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Sie haben 1 gespeicherten Drucker.</translation> +<translation id="6938789263968032501">Personen</translation> <translation id="6941937518557314510">Melden Sie sich in <ph name="TOKEN_NAME" /> an, damit Sie mit Ihrem Zertifikat bei <ph name="HOST_NAME" /> authentifiziert werden können.</translation> <translation id="6943176775188458830">Druckvorgang abbrechen</translation> <translation id="6943836128787782965">HTTP-Abruf fehlgeschlagen</translation> @@ -4157,6 +4180,7 @@ <translation id="6970856801391541997">Bestimmte Seiten drucken</translation> <translation id="6972180789171089114">Audio/Video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> kann Dateien in diesem Ordner nicht öffnen, weil er Systemdateien enthält</translation> +<translation id="6972629891077993081">HID-Geräte</translation> <translation id="6972754398087986839">Erste Schritte</translation> <translation id="6973611239564315524">Ein Upgrade auf Debian 10 (Buster) ist verfügbar</translation> <translation id="6974609594866392343">Offline-Demomodus</translation> @@ -4481,8 +4505,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Hintergrundseite: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Anruf von <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Keine HID-Geräte gefunden</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Alle in &neuem Fenster öffnen}=1{In &neuem Fenster öffnen}other{Alle (#) in &neuem Fenster öffnen}}</translation> <translation id="7434509671034404296">Entwickler</translation> +<translation id="7434635829372401939">Einstellungen synchronisieren</translation> <translation id="7436921188514130341">Oh nein! Beim Umbenennen ist ein Fehler aufgetreten.</translation> <translation id="7438976808740265764">Flash Player wird ab Dezember 2020 nicht mehr unterstützt.</translation> <translation id="7441736921018636843">Wenn Sie diese Einstellung ändern möchten, müssen Sie die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />, um die Synchronisierungspassphrase zu entfernen</translation> @@ -4804,6 +4830,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – gekoppelt</translation> <translation id="7870730066603611552">Synchronisierungsoptionen nach der Einrichtung überprüfen</translation> <translation id="7870790288828963061">Es wurden keine Kiosk-Apps mit neuerer Version gefunden. Es sind keine Updates vorhanden. Bitte entfernen Sie den USB-Stick.</translation> +<translation id="787268756490971083">Aus</translation> <translation id="7874257161694977650">Chrome-Hintergründe</translation> <translation id="7877451762676714207">Unbekannter Serverfehler. Bitte versuchen Sie es erneut oder wenden Sie sich an den Serveradministrator.</translation> <translation id="7877680364634660272">Tour</translation> @@ -4831,6 +4858,7 @@ <translation id="7908378463497120834">Mindestens eine Partition auf Ihrem externen Speichergerät konnte nicht bereitgestellt werden.</translation> <translation id="7909969815743704077">Im Inkognitomodus heruntergeladen</translation> <translation id="7910768399700579500">&Neuer Ordner</translation> +<translation id="7910831464510799808">An</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Ihr Passwort wurde auf dem Server geändert. Bitte melden Sie sich ab und dann wieder an.</translation> <translation id="7915457674565721553">Es ist eine Internetverbindung notwendig, um Jugendschutzeinstellungen einzurichten</translation> @@ -5768,6 +5796,7 @@ <translation id="934503638756687833">Elemente, die hier nicht aufgeführt sind, werden bei Bedarf ebenfalls entfernt. Weitere Informationen zum <a href="<ph name="URL" />">Schutz vor unerwünschter Software</a> finden Sie im Whitepaper zum Datenschutz in Chrome.</translation> <translation id="935490618240037774">Lesezeichen, Verlauf, Passwörter und andere Einstellungen werden mit Ihrem Google-Konto synchronisiert, damit Sie sie auf all Ihren Geräten nutzen können.</translation> <translation id="935854577147268200">Das Smartphone für Smart Lock wurde geändert. Geben Sie Ihr Passwort ein, um Smart Lock zu aktualisieren. Das nächste Mal wird Ihr <ph name="DEVICE_TYPE" /> von Ihrem Smartphone entsperrt. Sie können Smart Lock in den Einstellungen deaktivieren.</translation> +<translation id="93610034168535821">Von Websites belegter Speicherplatz insgesamt:</translation> <translation id="936801553271523408">Diagnosedaten des Systems</translation> <translation id="93766956588638423">Erweiterung reparieren</translation> <translation id="938339467127511841">Linux-Speicher (Beta)</translation> @@ -5789,6 +5818,7 @@ <translation id="964286338916298286">Ihr IT-Administrator hat Chrome-Extras für Ihr Gerät deaktiviert.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Anwendung}other{Anwendungen}}</translation> <translation id="965211523698323809">SMS auf dem <ph name="DEVICE_TYPE" /> senden und empfangen. <ph name="LINK_BEGIN" />Weitere Informationen<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Websites nicht erlauben, auf HID-Geräte zuzugreifen</translation> <translation id="967624055006145463">Gespeicherte Daten</translation> <translation id="968000525894980488">Aktivieren Sie die Google Play-Dienste.</translation> <translation id="968037381421390582">Ei&nfügen und nach "<ph name="SEARCH_TERMS" />" suchen</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 22d5fb1a..fc4c217d 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Διακοπή</translation> <translation id="1110155001042129815">Αναμονή</translation> <translation id="1112420131909513020">Μια καρτέλα παρασκηνίου χρησιμοποιεί Bluetooth</translation> +<translation id="1113042067630273625">Αυτή η επιλογή θα διαγράψει και τα <ph name="TOTAL_USAGE" /> των αποθηκευμένων δεδομένων ιστοτόπου.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamond</translation> <translation id="1114335938027186412">Ο υπολογιστής σας περιέχει μια συσκευή ασφαλείας TPM (Μονάδα αξιόπιστης πλατφόρμας), η οποία χρησιμοποιείται για την εφαρμογή πολλών κρίσιμων λειτουργιών ασφαλείας στο Chrome OS. Επισκεφτείτε το κέντρο βοήθειας του Chromebook, για να μάθετε περισσότερα: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Σφάλμα αρχείου</translation> <translation id="1741314857973421784">Συνέχεια</translation> <translation id="1743570585616704562">Δεν αναγνωρίστηκε</translation> +<translation id="1743846852744439013">Θα αποσυνδεθείτε από όλους τους ιστοτόπους, συμπεριλαμβανομένων όσων εμφανίζονται σε ανοικτές καρτέλες.</translation> <translation id="1743970419083351269">Κλείσιμο γραμμής λήψεων</translation> <translation id="1744060673522309905">Δεν είναι δυνατή η σύνδεση της συσκευής στον τομέα. Βεβαιωθείτε ότι δεν έχετε υπερβεί τον αριθμό των συσκευών που μπορείτε να προσθέσετε.</translation> <translation id="1744108098763830590">σελίδα παρασκηνίου</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Υπηρεσίες</translation> <translation id="18139523105317219">Όνομα μέρους EDI</translation> <translation id="1815083418640426271">Επικόλληση ως απλό κείμενο</translation> +<translation id="1815181278146012280">Να γίνεται ερώτηση όταν κάποιος ιστότοπος θέλει να αποκτήσει πρόσβαση σε συσκευές HID.</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> ακόμη…</translation> <translation id="1816036116994822943">Ταχύτητα σάρωσης πληκτρολογίου</translation> <translation id="1817871734039893258">Ανάκτηση αρχείων Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Μεσαία (Συνιστάται)</translation> <translation id="2077129598763517140">Χρήση της επιτάχυνσης υλικού όταν είναι διαθέσιμη</translation> <translation id="2078019350989722914">Προειδοποίηση πριν την έξοδο (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Ανενεργό</translation> <translation id="2079053412993822885">Εάν διαγράψετε ένα από τα πιστοποιητικά σας, δεν μπορείτε πλέον να το χρησιμοποιήσετε για την ταυτοποίησή σας. </translation> <translation id="2079545284768500474">Αναίρεση</translation> <translation id="2080070583977670716">Περισσότερες ρυθμίσεις</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Να γίνεται ερώτηση όταν ένας ιστότοπος επιθυμεί να εντοπίσει κοντινές συσκευες Bluetooth (συνιστάται)</translation> <translation id="2292848386125228270">Εκκινήστε το <ph name="PRODUCT_NAME" /> ως απλός χρήστης. Εάν απαιτείται εκτέλεση ως ρίζας για ανάπτυξη, εκτελέστε το ξανά με την ετικέτα --no-sandbox.</translation> <translation id="2294358108254308676">Θέλετε να εγκαταστήσετε το <ph name="PRODUCT_NAME" />;</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> αποτελέσματα</translation> <translation id="2297705863329999812">Αναζήτηση εκτυπωτών</translation> <translation id="2299734369537008228">Ρυθμιστικό: <ph name="MIN_LABEL" /> έως <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Προσαρμογή και έλεγχος της εφαρμογής <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Ο κωδικός πρόσβασης αποθηκεύτηκε σε αυτήν τη συσκευή</translation> <translation id="2485422356828889247">Απεγκατάσταση</translation> <translation id="2487067538648443797">Προσθήκη νέου σελιδοδείκτη</translation> +<translation id="2487268545026948104">Για να επαναφέρετε τα δεδομένα σας, συνδεθείτε στο διαδίκτυο.</translation> <translation id="2489829450872380594">Την επόμενη φορά, ένα νέο τηλέφωνο θα ξεκλειδώσει αυτήν τη συσκευή <ph name="DEVICE_TYPE" />. Μπορείτε να απενεργοποιήσετε το Smart Lock στις Ρυθμίσεις.</translation> <translation id="2489918096470125693">Προσθήκη &φακέλου...</translation> <translation id="2490481887078769936">Το αρχείο '<ph name="FILE_NAME" />' καταργήθηκε από τη λίστα.</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Ορίστηκε νέα ώρα ύπνου.</translation> <translation id="2544853746127077729">Το πιστοποιητικό ελέγχου ταυτότητας απορρίφθηκε από το δίκτυο</translation> <translation id="2546283357679194313">Cookie και δεδομένα ιστότοπου</translation> +<translation id="2547583314137677375">Απενεργοποίηση συγχρονισμού</translation> <translation id="2549985041256363841">Έναρξη εγγραφής</translation> <translation id="2550212893339833758">Μνήμη ανταλλαγής</translation> <translation id="2550596535588364872">Να επιτραπεί στην επέκταση <ph name="EXTENSION_NAME" /> να ανοίξει το αρχείο <ph name="FILE_NAME" />;</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Κατεστραμμένο αρχείο crx, η αποσυσκευασία απέτυχε.</translation> <translation id="2673135533890720193">Ανάγνωση του ιστορικού περιήγησής σας</translation> <translation id="2673589024369449924">Δημιουργία συντόμευσης επιφάνειας εργασίας για αυτόν το χρήστη</translation> +<translation id="2674764818721168631">Ανενεργό</translation> <translation id="2677748264148917807">Αποχώρηση</translation> <translation id="2678063897982469759">Εκ νέου ενεργοποίηση</translation> <translation id="268053382412112343">Ιστορικό</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884">Ο ιστότοπος <ph name="ORIGIN" /> θα μπορεί να επεξεργαστεί τα αρχεία στον φάκελο <ph name="FOLDERNAME" /> μέχρι να κλείσετε αυτήν την καρτέλα</translation> <translation id="3780827508782506612">Αυτή η σελίδα έχει μεταφραστεί</translation> <translation id="378312418865624974">Ανάγνωση μοναδικού αναγνωριστικού για αυτόν τον υπολογιστή</translation> +<translation id="3784472333786002075">Τα cookie είναι αρχεία που δημιουργούνται από ιστοτόπους. Υπάρχουν δύο τύποι cookie: Τα cookie πρώτου μέρους δημιουργούνται από τον ιστότοπο που επισκέπτεστε. Ο ιστότοπος εμφανίζεται στη γραμμή διευθύνσεων. Τα cookie τρίτου μέρους δημιουργούνται από άλλους ιστοτόπους. Αυτοί οι ιστότοποι διαθέτουν κάποιο περιεχόμενο, όπως διαφημίσεις ή εικόνες, το οποίο μπορείτε να δείτε στον ιστότοπο που επισκέπτεστε.</translation> <translation id="3785308913036335955">Εμφάνιση συντόμευσης εφαρμογών</translation> <translation id="3785727820640310185">Αποθηκευμένοι κωδικοί πρόσβασης για αυτόν τον ιστότοπο</translation> <translation id="3788401245189148511">Θα μπορούσε να εκτελέσει τις εξής ενέργειες:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Η κάρτα σας έληξε</translation> <translation id="3792890930871100565">Αποσύνδεση εκτυπωτών</translation> <translation id="3793395331556663376">Ανοίξατε πάρα πολλά συστήματα αρχείων.</translation> +<translation id="379509625511193653">Ανενεργό</translation> <translation id="3796648294839530037">Αγαπημένα δίκτυα:</translation> <translation id="3797739167230984533">Η συσκευή <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> είναι διαχειριζόμενη<ph name="END_LINK" /> από τον οργανισμό σας</translation> <translation id="3797900183766075808">&Αναζήτηση <ph name="SEARCH_ENGINE" /> για "<ph name="SEARCH_TERMS" />"</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Σε εξέλιξη</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Δεν υπάρχουν αρχεία καταγραφής WebRTC που λήφθηκαν πρόσφατα.</translation> +<translation id="3955163004258753966">Σφάλμα κατά την έναρξη της αναβάθμισης</translation> <translation id="3955193568934677022">Να επιτρέπεται στους ιστοτόπους να αναπαράγουν προστατευμένο περιεχόμενο (συνιστάται)</translation> <translation id="3955896417885489542">Έλεγχος επιλογών Google Play μετά τη ρύθμιση</translation> <translation id="3956702100721821638">Δεν ήταν δυνατή η επικοινωνία με το Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Έξοδος από τη σελίδα}other{Έξοδος από τις σελίδες}}</translation> <translation id="4044612648082411741">Εισαγάγετε τον κωδικό πρόσβασης του πιστοποιητικού σας</translation> <translation id="404493185430269859">Προεπιλεγμένη μηχανή αναζήτησης</translation> +<translation id="4046013316139505482">Αυτές οι επεκτάσεις δεν χρειάζεται να προβάλλουν και να αλλάζουν τις πληροφορίες σε αυτόν τον ιστότοπο.</translation> <translation id="4046123991198612571">Επόμενο κομμάτι</translation> <translation id="4050225813016893843">Μέθοδος ελέγχου ταυτότητας</translation> <translation id="4052120076834320548">Πάρα πολύ μικρό</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Να μην γίνεται ποτέ μετάφραση από <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Ρύθμιση γονικών ελέγχων</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 με κρυπτογράφηση RSA</translation> +<translation id="4336434711095810371">Διαγραφή όλων των δεδομένων</translation> <translation id="4336979451636460645">Για τα αρχεία καταγραφής δικτύου, δείτε: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942">Το <ph name="ORIGIN" /> θέλει να επικοινωνήσει με την εφαρμογή "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Διαμόρφωση...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Διαμόρφωση της εικονικής μηχανής. Ενδέχεται να χρειαστούν μερικά λεπτά.</translation> <translation id="4480590691557335796">Το Chrome μπορεί να εντοπίσει και να καταργήσει επιβλαβές λογισμικό από τον υπολογιστή σας</translation> <translation id="4481530544597605423">Συσκευές στις οποίες διακόπηκε η σύζευξη</translation> +<translation id="4488502501195719518">Διαγραφή όλων των δεδομένων;</translation> <translation id="4495419450179050807">Να μην γίνεται εμφάνιση σε αυτήν τη σελίδα</translation> <translation id="4500114933761911433">Η προσθήκη <ph name="PLUGIN_NAME" /> παρουσίασε σφάλμα</translation> <translation id="450099669180426158">Εικονίδιο θαυμαστικού</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Διευθύνσεις, αριθμοί τηλεφώνου και πολλά άλλα</translation> <translation id="4572659312570518089">Ο έλεγχος ταυτότητας ακυρώθηκε κατά τη σύνδεση στη συσκευή "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Εισαγάγετε το PIN για το κλειδί ασφαλείας σας</translation> +<translation id="4573515936045019911">Για την αναβάθμιση των Linux απαιτείται σύνδεση δικτύου. Συνδεθείτε στο διαδίκτυο και δοκιμάστε ξανά.</translation> <translation id="457386861538956877">Περισσότερα...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Δεν είναι δυνατή η μετάδοση <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Γίνεται ρύθμιση</translation> <translation id="4996978546172906250">Μοιραστείτε μέσω</translation> <translation id="4997086284911172121">Δεν υπάρχει σύνδεση στο διαδίκτυο.</translation> +<translation id="4998430619171209993">Ενεργό</translation> <translation id="4998873842614926205">Επιβεβαίωση αλλαγών</translation> <translation id="5000922062037820727">Αποκλείεται (συνιστάται)</translation> <translation id="5008936837313706385">Όνομα δραστηριότητας</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Ενεργοποίηση πλήρους οθόνης</translation> <translation id="514575469079499857">Χρήση διεύθυνσης IP για τον καθορισμό της τοποθεσίας σας (προεπιλογή)</translation> <translation id="5146995429444047494">Οι ειδοποιήσεις για την προέλευση <ph name="ORIGIN" /> έχουν αποκλειστεί</translation> +<translation id="5147103632304200977">Να γίνεται ερώτηση όταν κάποιος ιστότοπος θέλει να αποκτήσει πρόσβαση σε συσκευές HID (συνιστάται).</translation> <translation id="5150254825601720210">Όνομα διακομιστή SSL πιστοποιητικού Netscape</translation> <translation id="5151354047782775295">Ελευθερώστε χώρο στον δίσκο, διαφορετικά τα δεδομένα επιλογής ενδέχεται να διαγραφούν αυτόματα</translation> <translation id="5153234146675181447">Θα γίνει παράβλεψη του τηλεφώνου</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Εξαγωγή κωδικών πρόσβασης από το Chrome</translation> <translation id="5355099869024327351">Επιτρέπει στον Βοηθό να εμφανίζει ειδοποιήσεις</translation> <translation id="5355926466126177564">Η επέκταση "<ph name="EXTENSION_NAME" />" άλλαξε τη σελίδα που εμφανίζεται όταν κάνετε αναζήτηση από το κύριο πλαίσιο.</translation> +<translation id="5359910752122114278">1 αποτέλεσμα</translation> <translation id="5360150013186312835">Εμφάνιση στη γραμμή εργαλείων</translation> <translation id="5362741141255528695">Επιλέξτε το αρχείο ιδιωτικού κλειδιού.</translation> <translation id="5363109466694494651">Powerwash και Επαναφορά</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">Η προσθήκη σύνδεσης είναι απενεργοποιημένη από τον διαχειριστή σας</translation> <translation id="5701080607174488915">Σφάλμα ανάκτησης πολιτικής από τον διακομιστή.</translation> <translation id="5701381305118179107">Κέντρο</translation> +<translation id="5701441174893770082">Η αναβάθμιση των Linux μπορεί να εξαντλήσει σημαντικά τη μπαταρία σας. Συνδέστε τη συσκευή σας σε έναν φορτιστή και δοκιμάστε ξανά.</translation> <translation id="5702898740348134351">&Επεξεργασία μηχανών αναζήτησης...</translation> <translation id="570302979952009979">Επιλέξτε ένα όνομα για αυτό το δακτυλικό αποτύπωμα</translation> <translation id="5704875434923668958">Συγχρονισμός με</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Συνδέθηκε συσκευή USB</translation> <translation id="6028117231645531007">Προσθήκη δακτυλικού αποτυπώματος</translation> <translation id="6029587122245504742">Πιο αργή</translation> +<translation id="6032715498678347852">Για να δώσετε σε μια επέκταση πρόσβαση σε αυτόν τον ιστότοπο, κάντε κλικ σε αυτή.</translation> <translation id="6032912588568283682">Σύστημα αρχείων</translation> <translation id="6038929619733116134">Αποκλεισμός εάν ο ιστότοπος εμφανίζει παρεμβατικές ή παραπλανητικές διαφημίσεις</translation> <translation id="6039651071822577588">Λανθασμένο λεξικό ιδιοκτησίας δικτύου</translation> @@ -3907,6 +3927,7 @@ <translation id="6582080224869403177">Επαναφέρετε τη συσκευή <ph name="DEVICE_TYPE" /> για να αναβαθμίσετε την ασφάλειά σας.</translation> <translation id="6584878029876017575">Υπογραφή για πάντα Microsoft</translation> <translation id="6586451623538375658">Εναλλαγή κύριου κουμπιού ποντικιού</translation> +<translation id="6586604979641883411">Απαιτούνται τουλάχιστον <ph name="REQUIRED_SPACE" /> ελεύθερου αποθηκευτικού χώρου για την αναβάθμιση των Linux. Ελευθερώστε χώρο στη συσκευή σας και δοκιμάστε ξανά.</translation> <translation id="6590458744723262880">Μετονομασία φακέλου</translation> <translation id="6592267180249644460">Έγινε λήψη αρχείου καταγραφής WebRTC <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Το δακτυλικό σας αποτύπωμα καταγράφηκε.</translation> @@ -4017,6 +4038,7 @@ <translation id="6757101664402245801">Το URL αντιγράφηκε</translation> <translation id="6758056191028427665">Πείτε μας πώς τα πηγαίνουμε</translation> <translation id="6759193508432371551">Επαναφορά εργοστασιακών ρυθμίσεων</translation> +<translation id="6762833852331690540">Ενεργό</translation> <translation id="6767566652486411142">Επιλογή άλλης γλώσσας…</translation> <translation id="6767639283522617719">Δεν είναι δυνατή η σύνδεση στον τομέα. Βεβαιωθείτε ότι οι ρυθμίσεις είναι σωστές για τη μονάδα οργάνωσης.</translation> <translation id="6769712124046837540">Προσθήκη εκτυπωτή…</translation> @@ -4138,6 +4160,7 @@ <translation id="6935286146439255109">Ο δίσκος χαρτιού λείπει</translation> <translation id="693807610556624488">Η λειτουργία εγγραφής υπερβαίνει το μέγιστο μέγεθος του χαρακτηριστικού στη συσκευή: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Έχετε 1 αποθηκευμένο εκτυπωτή.</translation> +<translation id="6938789263968032501">Άτομα</translation> <translation id="6941937518557314510">Συνδεθείτε στο <ph name="TOKEN_NAME" /> για έλεγχο ταυτότητας στο <ph name="HOST_NAME" /> με το πιστοποιητικό σας.</translation> <translation id="6943176775188458830">Ακύρωση εκτύπωσης</translation> <translation id="6943836128787782965">Η λήψη HTTP απέτυχε</translation> @@ -4162,6 +4185,7 @@ <translation id="6970856801391541997">Εκτύπωση συγκεκριμένων σελίδων</translation> <translation id="6972180789171089114">Ήχος/Βίντεο</translation> <translation id="6972553992270299730">Ο ιστότοπος <ph name="ORIGIN" /> δεν μπορεί να ανοίξει τα αρχεία σε αυτόν τον φάκελο επειδή περιέχει αρχεία συστήματος.</translation> +<translation id="6972629891077993081">Συσκευές HID</translation> <translation id="6972754398087986839">Έναρξη</translation> <translation id="6973611239564315524">Υπάρχει διαθέσιμη αναβάθμιση σε Debian 10 (Buster)</translation> <translation id="6974609594866392343">Λειτουργία επίδειξης εκτός σύνδεσης</translation> @@ -4486,8 +4510,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090"> σελίδα: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Κλήση από <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Δεν βρέθηκαν συσκευές HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Άνοιγμα όλων σε &νέο παράθυρο}=1{Άνοιγμα σε &νέο παράθυρο}other{Άνοιγμα όλων (#) σε &νέο παράθυρο}}</translation> <translation id="7434509671034404296">Για Προγραμματιστές</translation> +<translation id="7434635829372401939">Συγχρονισμός των ρυθμίσεών σας</translation> <translation id="7436921188514130341">Δυστυχώς, παρουσιάστηκε σφάλμα κατά τη μετονομασία.</translation> <translation id="7438976808740265764">Το Flash Player δεν θα υποστηρίζεται πλέον μετά τον Δεκέμβριο του 2020.</translation> <translation id="7441736921018636843">Για να αλλάξετε αυτήν τη ρύθμιση, <ph name="BEGIN_LINK" />κάντε επαναφορά στον συγχρονισμό<ph name="END_LINK" />, έτσι ώστε να καταργηθεί η φράση πρόσβασης συγχρονισμού</translation> @@ -4809,6 +4835,7 @@ <translation id="786957569166715433">Έγινε σύζευξη της συσκευής <ph name="DEVICE_NAME" /></translation> <translation id="7870730066603611552">Έλεγχος επιλογών συγχρονισμού μετά τη ρύθμιση</translation> <translation id="7870790288828963061">Δεν βρέθηκαν εφαρμογές kiosk με νεότερη έκδοση. Δεν υπάρχουν στοιχεία προς ενημέρωση. Αφαιρέστε τη συσκευή USB.</translation> +<translation id="787268756490971083">Ανενεργό</translation> <translation id="7874257161694977650">Φόντα Chrome</translation> <translation id="7877451762676714207">Άγνωστο σφάλμα διακομιστή. Δοκιμάστε ξανά ή επικοινωνήστε με τον διαχειριστή του διακομιστή.</translation> <translation id="7877680364634660272">Περιήγηση</translation> @@ -4836,6 +4863,7 @@ <translation id="7908378463497120834">Λυπούμαστε, δεν ήταν δυνατή η προσάρτηση τουλάχιστον ενός διαμερίσματος της εξωτερικής συσκευής αποθήκευσης.</translation> <translation id="7909969815743704077">Έγινε λήψη στην ανώνυμη περιήγηση</translation> <translation id="7910768399700579500">Νέος &φάκελος</translation> +<translation id="7910831464510799808">Ενεργό</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Ο κωδικός πρόσβασής σας έχει αλλάξει στον διακομιστή. Αποσυνδεθείτε και συνδεθείτε ξανά.</translation> <translation id="7915457674565721553">Συνδεθείτε στο διαδίκτυο για να ρυθμίσετε τους γονικούς ελέγχους</translation> @@ -5772,6 +5800,7 @@ <translation id="934503638756687833">Θα διαγραφούν και όσα στοιχεία δεν αναφέρονται εδώ, αν χρειαστεί. Μάθετε περισσότερα σχετικά με <a href="<ph name="URL" />">την προστασία από ανεπιθύμητο λογισμικό</a> στη λευκή βίβλο απορρήτου του Chrome.</translation> <translation id="935490618240037774">Οι σελιδοδείκτες, το ιστορικό, οι κωδικοί πρόσβασης και άλλες ρυθμίσεις σας θα συγχρονιστούν στον Λογαριασμό σας Google, ώστε η χρήση τους να είναι δυνατή σε όλες τις συσκευές σας.</translation> <translation id="935854577147268200">Το τηλέφωνο στο οποίο χρησιμοποιείται το Smart Lock άλλαξε. Καταχωρίστε τον κωδικό πρόσβασης, για να ενημερώσετε το Smart Lock. Την επόμενη φορά, το τηλέφωνό σας θα ξεκλειδώσει τη συσκευή <ph name="DEVICE_TYPE" />. Μπορείτε να απενεργοποιήσετε το Smart Lock στις Ρυθμίσεις.</translation> +<translation id="93610034168535821">Συνολικός αποθηκευτικός χώρος που χρησιμοποιείται από ιστοτόπους:</translation> <translation id="936801553271523408">Διαγνωστικά δεδομένα συστήματος</translation> <translation id="93766956588638423">Επιδιόρθωση επέκτασης</translation> <translation id="938339467127511841">Αποθηκευτικός χώρος Linux (Beta)</translation> @@ -5793,6 +5822,7 @@ <translation id="964286338916298286">Ο διαχειριστής τεχνολογιών πληροφορικής της συσκευής σας απενεργοποίησε τα Καλούδια Chrome για τη συσκευή σας.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Εφαρμογή}other{Εφαρμογές}}</translation> <translation id="965211523698323809">Στείλτε και λάβετε μηνύματα κειμένου μέσω της συσκευής <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Μάθετε περισσότερα<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Να μην επιτρέπεται η πρόσβαση των ιστοτόπων στις συσκευές HID.</translation> <translation id="967624055006145463">Αποθηκευμένα δεδομένα</translation> <translation id="968000525894980488">Ενεργοποίηση των Υπηρεσιών Google Play.</translation> <translation id="968037381421390582">Επικόλληση και αναζήτηση για "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 0cd3d94..338d474 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stop</translation> <translation id="1110155001042129815">Wait</translation> <translation id="1112420131909513020">Background tab is using Bluetooth</translation> +<translation id="1113042067630273625">This will clear <ph name="TOTAL_USAGE" /> of stored site data.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamond</translation> <translation id="1114335938027186412">Your computer contains a Trusted Platform Module (TPM) security device, which is used to implement many critical security features in Chrome OS. Visit the Chromebook Help Centre to find out more: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">File bug</translation> <translation id="1741314857973421784">Continue</translation> <translation id="1743570585616704562">Not recognised</translation> +<translation id="1743846852744439013">You'll be signed out of all sites, including in any open tabs.</translation> <translation id="1743970419083351269">Close Downloads Bar</translation> <translation id="1744060673522309905">Can't join the device to the domain. Make sure that you haven’t exceeded the number of devices that you can add.</translation> <translation id="1744108098763830590">background page</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Services</translation> <translation id="18139523105317219">EDI Party Name</translation> <translation id="1815083418640426271">Paste as Plain Text</translation> +<translation id="1815181278146012280">Ask when a site wants to access HID devices</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> more...</translation> <translation id="1816036116994822943">Keyboard scanning speed</translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Medium (Recommended)</translation> <translation id="2077129598763517140">Use hardware acceleration when available</translation> <translation id="2078019350989722914">Warn Before Quitting (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Off</translation> <translation id="2079053412993822885">If you delete one of your own certificates, you can no longer use it to identify yourself.</translation> <translation id="2079545284768500474">Undo</translation> <translation id="2080070583977670716">More settings</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Ask when a site wants to discover nearby Bluetooth devices (recommended)</translation> <translation id="2292848386125228270">Please start <ph name="PRODUCT_NAME" /> as a normal user. If you need to run as root for development, re-run with the – no-sandbox flag.</translation> <translation id="2294358108254308676">Do you want to install <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> results</translation> <translation id="2297705863329999812">Search printers</translation> <translation id="2299734369537008228">Slider: <ph name="MIN_LABEL" /> to <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Customise and control <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Password saved on this device</translation> <translation id="2485422356828889247">Uninstall</translation> <translation id="2487067538648443797">Add new bookmark</translation> +<translation id="2487268545026948104">To restore your data, connect to the Internet</translation> <translation id="2489829450872380594">Next time, a new phone will unlock this <ph name="DEVICE_TYPE" />. You can turn off Smart Lock in Settings.</translation> <translation id="2489918096470125693">Add &Folder...</translation> <translation id="2490481887078769936">Removed '<ph name="FILE_NAME" />' from list</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">New bedtime set</translation> <translation id="2544853746127077729">Authentication certificate rejected by network</translation> <translation id="2546283357679194313">Cookies and site data</translation> +<translation id="2547583314137677375">Turn off Sync</translation> <translation id="2549985041256363841">Start recording</translation> <translation id="2550212893339833758">Swapped memory</translation> <translation id="2550596535588364872">Allow <ph name="EXTENSION_NAME" /> to open <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Bad crx file, unpacking failed.</translation> <translation id="2673135533890720193">Read your browsing history</translation> <translation id="2673589024369449924">Create a desktop shortcut for this profile</translation> +<translation id="2674764818721168631">Off</translation> <translation id="2677748264148917807">Leave</translation> <translation id="2678063897982469759">Re-enable</translation> <translation id="268053382412112343">Hi&story</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> will be able to edit files in <ph name="FOLDERNAME" /> until you close this tab</translation> <translation id="3780827508782506612">This Page has been Translated</translation> <translation id="378312418865624974">Read a unique identifier for this computer</translation> +<translation id="3784472333786002075">Cookies are files created by websites. There are two types of cookies: first-party cookies are created by the site that you visit. The site is shown on the address bar. Third-party cookies are created by other sites. These sites own some of the content, like ads or images, that you see on the website that you visit.</translation> <translation id="3785308913036335955">Show Apps Shortcut</translation> <translation id="3785727820640310185">Saved passwords for this site</translation> <translation id="3788401245189148511">It could:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Your card has expired</translation> <translation id="3792890930871100565">Disconnect printers</translation> <translation id="3793395331556663376">Too many file systems opened.</translation> +<translation id="379509625511193653">Off</translation> <translation id="3796648294839530037">Favourite Networks:</translation> <translation id="3797739167230984533">Your <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> is managed<ph name="END_LINK" /> by your organisation</translation> <translation id="3797900183766075808">&Search <ph name="SEARCH_ENGINE" /> for “<ph name="SEARCH_TERMS" />”</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">In progress</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">You have no recently captured WebRTC event logs.</translation> +<translation id="3955163004258753966">Error starting upgrade</translation> <translation id="3955193568934677022">Allow sites to play protected content (recommended)</translation> <translation id="3955896417885489542">Review Google Play options following setup</translation> <translation id="3956702100721821638">Couldn't reach Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Exit Page}other{Exit Pages}}</translation> <translation id="4044612648082411741">Enter your certificate password</translation> <translation id="404493185430269859">Default search engine</translation> +<translation id="4046013316139505482">These extensions don't need to see and change information on this site.</translation> <translation id="4046123991198612571">Next track</translation> <translation id="4050225813016893843">Authentication method</translation> <translation id="4052120076834320548">Tiny</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Never Translate <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Set Up Parental Controls</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 With RSA Encryption</translation> +<translation id="4336434711095810371">Clear all data</translation> <translation id="4336979451636460645">For network logs, see: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> wants to communicate with the app "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configure...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Configuring the virtual machine. This may take a few minutes.</translation> <translation id="4480590691557335796">Chrome can find harmful software on your computer and remove it</translation> <translation id="4481530544597605423">Unpaired devices</translation> +<translation id="4488502501195719518">Clear all data?</translation> <translation id="4495419450179050807">Don't show on this page</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> has crashed</translation> <translation id="450099669180426158">Exclamation mark icon</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Addresses, phone numbers and more</translation> <translation id="4572659312570518089">Authentication cancelled while connecting to "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Enter the PIN for your security key</translation> +<translation id="4573515936045019911">A network connection is required to upgrade Linux. Please connect to the Internet and try again.</translation> <translation id="457386861538956877">More...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Unable to cast <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Setting up</translation> <translation id="4996978546172906250">Share via</translation> <translation id="4997086284911172121">No Internet connection.</translation> +<translation id="4998430619171209993">On</translation> <translation id="4998873842614926205">Confirm Changes</translation> <translation id="5000922062037820727">Blocked (recommended)</translation> <translation id="5008936837313706385">Activity Name</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Enter Full Screen</translation> <translation id="514575469079499857">Use your IP address to determine location (default)</translation> <translation id="5146995429444047494">Notifications for <ph name="ORIGIN" /> are blocked</translation> +<translation id="5147103632304200977">Ask when a site wants to access HID devices (recommended)</translation> <translation id="5150254825601720210">Netscape Certificate SSL Server Name</translation> <translation id="5151354047782775295">Free up disk space or select data may be automatically deleted</translation> <translation id="5153234146675181447">Forget phone</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Export Passwords From Chrome</translation> <translation id="5355099869024327351">Allow the Assistant to show you notifications</translation> <translation id="5355926466126177564">The extension "<ph name="EXTENSION_NAME" />" has changed the page that is shown when you search from the Omnibox.</translation> +<translation id="5359910752122114278">1 result</translation> <translation id="5360150013186312835">Show in Toolbar</translation> <translation id="5362741141255528695">Select private key file.</translation> <translation id="5363109466694494651">Powerwash and Revert</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Add connection is disabled by your administrator</translation> <translation id="5701080607174488915">Error when fetching policy from the server.</translation> <translation id="5701381305118179107">Centre</translation> +<translation id="5701441174893770082">Upgrading Linux can drain your battery significantly. Please connect your device to a charger and try again.</translation> <translation id="5702898740348134351">&Edit Search Engines...</translation> <translation id="570302979952009979">Choose a name for this fingerprint</translation> <translation id="5704875434923668958">Syncing to</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB device connected</translation> <translation id="6028117231645531007">Add fingerprint</translation> <translation id="6029587122245504742">Slowest</translation> +<translation id="6032715498678347852">To give an extension access to this site, click it.</translation> <translation id="6032912588568283682">File system</translation> <translation id="6038929619733116134">Block if site shows intrusive or misleading ads</translation> <translation id="6039651071822577588">Network property dictionary malformed</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Reset your <ph name="DEVICE_TYPE" /> to upgrade your security.</translation> <translation id="6584878029876017575">Microsoft Lifetime Signing</translation> <translation id="6586451623538375658">Swap the primary mouse button</translation> +<translation id="6586604979641883411">At least <ph name="REQUIRED_SPACE" /> of free disk space is required to upgrade Linux. Please free some space on your device and try again.</translation> <translation id="6590458744723262880">Rename folder</translation> <translation id="6592267180249644460">WebRTC log captured <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Your fingerprint was captured</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL copied</translation> <translation id="6758056191028427665">Let us know how we’re doing.</translation> <translation id="6759193508432371551">Factory reset</translation> +<translation id="6762833852331690540">On</translation> <translation id="6767566652486411142">Choose another language…</translation> <translation id="6767639283522617719">Can’t join the domain. Make sure that the settings are correct for the organisational unit.</translation> <translation id="6769712124046837540">Adding printer...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">A paper tray is missing</translation> <translation id="693807610556624488">Write operation exceeds the maximum length of the attribute to: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">You have 1 saved printer.</translation> +<translation id="6938789263968032501">People</translation> <translation id="6941937518557314510">Please sign in to <ph name="TOKEN_NAME" /> to authenticate to <ph name="HOST_NAME" /> with your certificate.</translation> <translation id="6943176775188458830">Cancel printing</translation> <translation id="6943836128787782965">HTTP get failed</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Print Specific Pages</translation> <translation id="6972180789171089114">Audio/Video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> can’t open files in this folder because it contains system files</translation> +<translation id="6972629891077993081">HID devices</translation> <translation id="6972754398087986839">Get Started</translation> <translation id="6973611239564315524">An upgrade to Debian 10 (Buster) is available</translation> <translation id="6974609594866392343">Offline demo mode</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Background Page: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Call from <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">No HID devices found</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Open All in &New Window}=1{Open in &New Window}other{Open All (#) in &New Window}}</translation> <translation id="7434509671034404296">Developer</translation> +<translation id="7434635829372401939">Sync your settings</translation> <translation id="7436921188514130341">Oh no! There was an error during renaming.</translation> <translation id="7438976808740265764">Flash Player will no longer be supported after December 2020.</translation> <translation id="7441736921018636843">To change this setting, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" /> to remove your sync passphrase</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – Paired</translation> <translation id="7870730066603611552">Review sync options following setup</translation> <translation id="7870790288828963061">No Kiosk apps with newer version found. Nothing to update. Please remove the USB stick.</translation> +<translation id="787268756490971083">Off</translation> <translation id="7874257161694977650">Chrome backgrounds</translation> <translation id="7877451762676714207">Unknown server error. Please try again, or contact the server administrator.</translation> <translation id="7877680364634660272">Tour</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Sorry, at least one partition on your external storage device could not be mounted.</translation> <translation id="7909969815743704077">Downloaded in Incognito</translation> <translation id="7910768399700579500">&New folder</translation> +<translation id="7910831464510799808">On</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Your password has been changed on the server. Please sign out then sign in again.</translation> <translation id="7915457674565721553">Connect to the Internet to set up parental controls</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Items not listed here will also be removed, if needed. Learn more about <a href="<ph name="URL" />">unwanted software protection</a> in the Chrome privacy white paper.</translation> <translation id="935490618240037774">Your bookmarks, history, passwords and other settings will be synced to your Google Account so that you can use them on all of your devices.</translation> <translation id="935854577147268200">Smart Lock phone changed. Enter your password to update Smart Lock. Next time, your phone will unlock your <ph name="DEVICE_TYPE" />. You can turn off Smart Lock in Settings</translation> +<translation id="93610034168535821">Total storage used by sites:</translation> <translation id="936801553271523408">System diagnostic data</translation> <translation id="93766956588638423">Repair extension</translation> <translation id="938339467127511841">Linux (Beta) storage</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Your IT administrator has disabled Chrome Goodies for your device.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Application}other{Applications}}</translation> <translation id="965211523698323809">Send and receive text messages from your <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Do not allow any sites to access HID devices</translation> <translation id="967624055006145463">Data stored</translation> <translation id="968000525894980488">Turn on Google Play services.</translation> <translation id="968037381421390582">Paste and Search for '<ph name="SEARCH_TERMS" />'</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index 443a910..43415a5 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -3119,7 +3119,7 @@ <translation id="5464660706533281090">Un niño no puede cambiar esta configuración.</translation> <translation id="5466374726908360271">&Pegar y buscar "<ph name="SEARCH_TERMS" />"</translation> <translation id="5468173180030470402">Buscando archivos compartidos</translation> -<translation id="5470735824776589490">Es necesario que reinicies tu dispositivo para poder restablecerlo con Powerwash. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> +<translation id="5470735824776589490">Debes reiniciar tu dispositivo para poder restablecerlo con Powerwash. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> <translation id="5471768120198416576">Hola, soy la voz que leerá tus textos.</translation> <translation id="5472133193607270166">Si se activa esta opción, los sitios web no podrán usar tu actividad de navegación en diferentes sitios para personalizar anuncios. Es posible que algunos sitios no funcionen correctamente.</translation> <translation id="5473333559083690127">Vuelve a ingresar el PIN nuevo</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 577258e..a333a3b7 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Detener</translation> <translation id="1110155001042129815">Esperar</translation> <translation id="1112420131909513020">La pestaña en segundo plano está usando el Bluetooth</translation> +<translation id="1113042067630273625">Se borrarán <ph name="TOTAL_USAGE" /> de datos de sitios web almacenados.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Rombo</translation> <translation id="1114335938027186412">Tu ordenador contiene un dispositivo de seguridad del módulo de plataforma de confianza (TPM), que se utiliza para implementar un gran número de funciones clave de seguridad en Chrome OS. Puedes consultar más información en el Centro de ayuda de los Chromebook (https://support.google.com/chromebook/?p=tpm).</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Incluir error</translation> <translation id="1741314857973421784">Continuar</translation> <translation id="1743570585616704562">No se ha reconocido</translation> +<translation id="1743846852744439013">Se cerrarán tus sesiones en todos los sitios web, incluidas las que están en pestañas abiertas.</translation> <translation id="1743970419083351269">Cerrar barra de descargas</translation> <translation id="1744060673522309905">No se puede vincular el dispositivo con el dominio. Comprueba que no hayas superado el número de dispositivos que puedes añadir.</translation> <translation id="1744108098763830590">página en segundo plano</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Servicios</translation> <translation id="18139523105317219">Nombre de parte EDI</translation> <translation id="1815083418640426271">Pegar como texto sin formato</translation> +<translation id="1815181278146012280">Preguntar cuando un sitio web quiera acceder a los dispositivos HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> más...</translation> <translation id="1816036116994822943">Velocidad de búsqueda del teclado</translation> <translation id="1817871734039893258">Recuperación de archivos de Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Mediano (recomendado)</translation> <translation id="2077129598763517140">Utilizar aceleración por hardware cuando esté disponible</translation> <translation id="2078019350989722914">Avisar antes de salir (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Desactivado</translation> <translation id="2079053412993822885">Si eliminas uno de tus propios certificados, ya no podrás utilizarlo para identificarte.</translation> <translation id="2079545284768500474">Deshacer</translation> <translation id="2080070583977670716">Más ajustes</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Preguntar cuando un sitio web quiera buscar dispositivos Bluetooth cercanos (recomendado)</translation> <translation id="2292848386125228270">Inicia <ph name="PRODUCT_NAME" /> como un usuario normal. Si debes ejecutarlo como root para el desarrollo, vuelve a iniciarlo con el indicador "--no-sandbox".</translation> <translation id="2294358108254308676">¿Quieres instalar <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultados</translation> <translation id="2297705863329999812">Buscar impresoras</translation> <translation id="2299734369537008228">Control deslizante: de <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personalizar y controlar <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Contraseña guardada en este dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> <translation id="2487067538648443797">Añadir nuevo marcador</translation> +<translation id="2487268545026948104">Para restaurar tus datos, conéctate a Internet</translation> <translation id="2489829450872380594">La próxima vez, un teléfono nuevo desbloqueará este <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation> <translation id="2489918096470125693">Añadir &carpeta...</translation> <translation id="2490481887078769936">Se ha quitado "<ph name="FILE_NAME" />" de la lista</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Se ha definido una nueva hora de dormir</translation> <translation id="2544853746127077729">Certificado de autenticación rechazado por la red</translation> <translation id="2546283357679194313">Cookies y datos de sitios</translation> +<translation id="2547583314137677375">Desactivar Sincronización</translation> <translation id="2549985041256363841">Iniciar grabación</translation> <translation id="2550212893339833758">Memoria trasladada al espacio de reserva</translation> <translation id="2550596535588364872">¿Quieres permitir que <ph name="EXTENSION_NAME" /> abra <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">El archivo crx no es válido y no se ha podido descomprimir.</translation> <translation id="2673135533890720193">Leer tu historial de navegación</translation> <translation id="2673589024369449924">Crear un acceso directo en el escritorio para este usuario</translation> +<translation id="2674764818721168631">Desactivado</translation> <translation id="2677748264148917807">Salir</translation> <translation id="2678063897982469759">Volver a habilitar</translation> <translation id="268053382412112343">Hi&storial</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> podrá editar los archivos que haya en <ph name="FOLDERNAME" /> hasta que cierres esta pestaña</translation> <translation id="3780827508782506612">Esta página se ha traducido</translation> <translation id="378312418865624974">Leer un identificador único para este ordenador</translation> +<translation id="3784472333786002075">Las cookies son archivos que crean los sitios web. Existen dos tipos de cookies: las cookies propias las crea el sitio web al que accedes. El sitio web se muestra en la barra de direcciones. Las cookies de terceros las crean otros sitios web. Parte del contenido que ves en el sitio web que visitas, como anuncios o imágenes, pertenece a esos otros sitios web.</translation> <translation id="3785308913036335955">Mostrar acceso directo de aplicaciones</translation> <translation id="3785727820640310185">Contraseñas guardadas de este sitio web</translation> <translation id="3788401245189148511">Podría:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Tu tarjeta ha caducado</translation> <translation id="3792890930871100565">Desconectar impresoras</translation> <translation id="3793395331556663376">Hay demasiados sistemas de archivos abiertos.</translation> +<translation id="379509625511193653">Desactivado</translation> <translation id="3796648294839530037">Redes favoritas:</translation> <translation id="3797739167230984533">Tu organización <ph name="BEGIN_LINK" />administra este <ph name="DEVICE_TYPE" /><ph name="END_LINK" />.</translation> <translation id="3797900183766075808">&Buscar <ph name="SEARCH_TERMS" /> en <ph name="SEARCH_ENGINE" /></translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">En curso</translation> <translation id="3954469006674843813"><ph name="WIDTH" />x<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">No has capturado ningún registro de eventos de WebRTC recientemente.</translation> +<translation id="3955163004258753966">No se ha podido iniciar la actualización</translation> <translation id="3955193568934677022">Permitir que los sitios web reproduzcan contenido protegido (recomendado)</translation> <translation id="3955896417885489542">Revisar las opciones de Google Play tras la configuración</translation> <translation id="3956702100721821638">No se ha podido acceder a Google Play</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Salir de la página}other{Salir de las páginas}}</translation> <translation id="4044612648082411741">Introduce la contraseña del certificado</translation> <translation id="404493185430269859">Motor de búsqueda predeterminado</translation> +<translation id="4046013316139505482">Estas extensiones no necesitan ver ni cambiar información en este sitio web.</translation> <translation id="4046123991198612571">Pista siguiente</translation> <translation id="4050225813016893843">Método de autenticación</translation> <translation id="4052120076834320548">Diminuto</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">No traducir nunca del <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configurar el control parental</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 con cifrado RSA</translation> +<translation id="4336434711095810371">Borrar todos los datos</translation> <translation id="4336979451636460645">Puedes consultar los registros de red en la página <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> quiere comunicarse con la aplicación <ph name="EXTENSION_NAME" /></translation> <translation id="4345587454538109430">Configurar...</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">Se está configurando la máquina virtual. Este proceso puede tardar unos minutos.</translation> <translation id="4480590691557335796">Chrome puede encontrar software dañino en tu ordenador y eliminarlo</translation> <translation id="4481530544597605423">Dispositivos desvinculados</translation> +<translation id="4488502501195719518">¿Quieres borrar todos los datos?</translation> <translation id="4495419450179050807">No mostrar en esta página</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ha fallado</translation> <translation id="450099669180426158">Icono de signo de exclamación</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">Direcciones, números de teléfono y más</translation> <translation id="4572659312570518089">Se canceló la autenticación mientras se establecía conexión con <ph name="DEVICE_NAME" />.</translation> <translation id="4572779512957829735">Introduce el PIN de la llave de seguridad</translation> +<translation id="4573515936045019911">Se necesita una conexión de red para actualizar Linux. Conéctate a Internet y vuelve a intentarlo.</translation> <translation id="457386861538956877">Más...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">No se puede enviar <ph name="HOST_NAME" />.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">Se está configurando</translation> <translation id="4996978546172906250">Compartir a través de</translation> <translation id="4997086284911172121">Sin conexión a Internet.</translation> +<translation id="4998430619171209993">Activado</translation> <translation id="4998873842614926205">Confirmar cambios</translation> <translation id="5000922062037820727">Bloqueado (recomendado)</translation> <translation id="5008936837313706385">Nombre de la actividad</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">Activar pantalla completa</translation> <translation id="514575469079499857">Usar dirección IP para determinar ubicación (predeterminado)</translation> <translation id="5146995429444047494">Las notificaciones de <ph name="ORIGIN" /> están bloqueadas</translation> +<translation id="5147103632304200977">Preguntar cuando un sitio web quiera acceder a los dispositivos HID (recomendado)</translation> <translation id="5150254825601720210">Nombre de servidor SSL de certificado de Netscape</translation> <translation id="5151354047782775295">Libera espacio en el disco o puede que se eliminen automáticamente ciertos datos</translation> <translation id="5153234146675181447">Olvidar teléfono</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">Exportar contraseñas de Chrome</translation> <translation id="5355099869024327351">Permitir que el Asistente te muestre notificaciones</translation> <translation id="5355926466126177564">La extensión <ph name="EXTENSION_NAME" /> ha cambiado la página que se muestra al buscar en el omnibox.</translation> +<translation id="5359910752122114278">1 resultado</translation> <translation id="5360150013186312835">Mostrar en la barra de herramientas</translation> <translation id="5362741141255528695">Selecciona un archivo de clave privada.</translation> <translation id="5363109466694494651">Powerwash y cambio a versión anterior</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">El administrador ha inhabilitado la opción Añadir conexión</translation> <translation id="5701080607174488915">No se ha podido recuperar la política del servidor.</translation> <translation id="5701381305118179107">Centrar</translation> +<translation id="5701441174893770082">Actualizar Linux puede consumir gran parte de la batería. Conecta el dispositivo a un cargador y vuelve a intentarlo.</translation> <translation id="5702898740348134351">&Editar motores de búsqueda...</translation> <translation id="570302979952009979">Elige un nombre para esta huella digital</translation> <translation id="5704875434923668958">Sincronizando con</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" />: dispositivo USB conectado</translation> <translation id="6028117231645531007">Añadir huella digital</translation> <translation id="6029587122245504742">Velocidad mínima</translation> +<translation id="6032715498678347852">Para permitir que una extensión acceda a este sitio web, haz clic en él.</translation> <translation id="6032912588568283682">Sistema de archivos</translation> <translation id="6038929619733116134">Bloquear si el sitio web muestra anuncios invasivos o engañosos</translation> <translation id="6039651071822577588">El formato del diccionario de propiedades de la red es incorrecto.</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">Restablece tu <ph name="DEVICE_TYPE" /> para actualizar la seguridad.</translation> <translation id="6584878029876017575">Firma de vigencia de Microsoft</translation> <translation id="6586451623538375658">Cambiar botón principal del ratón</translation> +<translation id="6586604979641883411">Se necesitan al menos <ph name="REQUIRED_SPACE" /> de espacio libre en el disco para actualizar Linux. Libera espacio en el dispositivo y vuelve a intentarlo.</translation> <translation id="6590458744723262880">Cambiar el nombre de la carpeta</translation> <translation id="6592267180249644460">Captura de registro de ReWebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Se ha registrado tu huella digital</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">URL copiada</translation> <translation id="6758056191028427665">Envíanos tu opinión sobre nuestro servicio.</translation> <translation id="6759193508432371551">Restablecer estado de fábrica</translation> +<translation id="6762833852331690540">Activado</translation> <translation id="6767566652486411142">Elegir otro idioma...</translation> <translation id="6767639283522617719">No se puede vincular el dominio. Comprueba que la configuración de la unidad organizativa sea correcta.</translation> <translation id="6769712124046837540">Añadiendo impresora...</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">Falta una bandeja de papel</translation> <translation id="693807610556624488">La operación de escritura supera la longitud máxima permitida del atributo para "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Tienes 1 impresora guardada.</translation> +<translation id="6938789263968032501">Usuarios</translation> <translation id="6941937518557314510">Inicia sesión en <ph name="TOKEN_NAME" /> para identificarte en <ph name="HOST_NAME" /> con tu certificado.</translation> <translation id="6943176775188458830">Cancelar impresión</translation> <translation id="6943836128787782965">Error al obtener HTTP</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">Imprimir páginas específicas</translation> <translation id="6972180789171089114">Audio/Vídeo</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> no puede abrir los archivos de esta carpeta porque son archivos del sistema</translation> +<translation id="6972629891077993081">Dispositivos HID</translation> <translation id="6972754398087986839">Empezar</translation> <translation id="6973611239564315524">Actualización a Debian 10 (Buster) disponible</translation> <translation id="6974609594866392343">Modo de demostración sin conexión</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Página en segundo plano: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Llamar desde <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">No se ha encontrado ningún dispositivo HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Abrir todas en una &nueva ventana}=1{Abrir en una &nueva ventana}other{Abrir (#) en una &nueva ventana}}</translation> <translation id="7434509671034404296">Opciones para desarrolladores</translation> +<translation id="7434635829372401939">Sincronizar tus ajustes</translation> <translation id="7436921188514130341">¡Vaya! No se ha podido cambiar el nombre.</translation> <translation id="7438976808740265764">Flash Player dejará de ser compatible a partir de diciembre del 2020.</translation> <translation id="7441736921018636843">Para cambiar este ajuste, <ph name="BEGIN_LINK" />restablece la sincronización<ph name="END_LINK" /> para eliminar tu frase de contraseña de sincronización</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />: vinculado</translation> <translation id="7870730066603611552">Revisar opciones de sincronización después de la configuración</translation> <translation id="7870790288828963061">No se ha encontrado ninguna aplicación de kiosco con una versión más reciente. No hay nada que actualizar. Extrae el dispositivo USB.</translation> +<translation id="787268756490971083">Desactivado</translation> <translation id="7874257161694977650">Fondos de Chrome</translation> <translation id="7877451762676714207">Se ha producido un error desconocido en el servidor. Vuelve a intentarlo o ponte en contacto con el administrador del servidor.</translation> <translation id="7877680364634660272">Recorrido</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">Lo sentimos, pero al menos una partición del dispositivo de almacenamiento externo no se ha podido montar.</translation> <translation id="7909969815743704077">Se ha descargado en modo de incógnito</translation> <translation id="7910768399700579500">&Nueva carpeta</translation> +<translation id="7910831464510799808">Activado</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Tu contraseña se ha cambiado en el servidor. Cierra la sesión y vuelve a iniciarla.</translation> <translation id="7915457674565721553">Conéctate a Internet para configurar el control parental</translation> @@ -5772,6 +5800,7 @@ <translation id="934503638756687833">Si es necesario, también se eliminarán elementos que no se incluyan aquí. Consulta más información sobre la <a href="<ph name="URL" />">protección contra software no deseado</a> en el informe de privacidad de Chrome.</translation> <translation id="935490618240037774">Tus marcadores, historial, contraseñas y otros ajustes se sincronizarán con tu cuenta de Google para que puedas utilizarlos en todos tus dispositivos.</translation> <translation id="935854577147268200">El teléfono de Smart Lock ha cambiado. Introduce tu contraseña para actualizar Smart Lock. La próxima vez, el teléfono desbloqueará tu <ph name="DEVICE_TYPE" />. Puedes desactivar Smart Lock en la configuración.</translation> +<translation id="93610034168535821">Almacenamiento total usado por sitios web:</translation> <translation id="936801553271523408">Datos de diagnóstico del sistema</translation> <translation id="93766956588638423">Reparar extensión</translation> <translation id="938339467127511841">Almacenamiento de Linux (beta)</translation> @@ -5793,6 +5822,7 @@ <translation id="964286338916298286">Tu administrador de TI ha inhabilitado el contenido adicional de Chrome para tu dispositivo.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplicación}other{Aplicaciones}}</translation> <translation id="965211523698323809">Envía y recibe mensajes de texto con tu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Más información<ph name="LINK_END" /></translation> +<translation id="967398046773905967">No permitir que ningún sitio web acceda a los dispositivos HID</translation> <translation id="967624055006145463">Datos almacenados</translation> <translation id="968000525894980488">Activa los Servicios de Google Play.</translation> <translation id="968037381421390582">Pe&gar y buscar "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 8cdfb92..155cf3c 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Peata</translation> <translation id="1110155001042129815">Oota</translation> <translation id="1112420131909513020">Taustal töötav rakendus kasutab Bluetoothi</translation> +<translation id="1113042067630273625">See kustutab <ph name="TOTAL_USAGE" /> salvestatud saidiandmetest.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Teemant</translation> <translation id="1114335938027186412">Teie arvuti sisaldab turvaseadet Trusted Platform Module (TPM), mida kasutatakse paljude väga tähtsate turvafunktsioonide rakendamiseks Chrome OS-is. Lisateavet leiate Chromebooki abikeskusest aadressil https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Faili viga</translation> <translation id="1741314857973421784">Jätka</translation> <translation id="1743570585616704562">Ei tuvastatud</translation> +<translation id="1743846852744439013">Teid logitakse kõikidelt saitidelt (sh avatud vahelehtedel) välja.</translation> <translation id="1743970419083351269">Sule allalaadimiste riba</translation> <translation id="1744060673522309905">Seadet ei saa domeeniga liita. Veenduge, et lisatavate seadmete maksimumarv ei oleks ületatud.</translation> <translation id="1744108098763830590">taustleht</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Teenused</translation> <translation id="18139523105317219">EDI-osapoole nimi</translation> <translation id="1815083418640426271">Kleebi lihttekstina</translation> +<translation id="1815181278146012280">Küsi, kui sait soovib juurdepääsu HID-seadmetele</translation> <translation id="181577467034453336">Veel <ph name="NUMBER_OF_VIEWS" /> …</translation> <translation id="1816036116994822943">Klaviatuuri skannimiskiirus</translation> <translation id="1817871734039893258">Microsofti failitaaste</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Keskmine (soovitatud)</translation> <translation id="2077129598763517140">Kasuta võimaluse korral riistvaralist kiirendust</translation> <translation id="2078019350989722914">Hoiata enne väljumist (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Väljas</translation> <translation id="2079053412993822885">Kui kustutate ühe enda sertifikaatidest, ei saa te enam seda enda tuvastamiseks kasutada.</translation> <translation id="2079545284768500474">Võta tagasi</translation> <translation id="2080070583977670716">Rohkem seadeid</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Küsi, kui sait soovib läheduses asuvaid Bluetoothi seadmeid tuvastada (soovitatav)</translation> <translation id="2292848386125228270">Käivitage teenus <ph name="PRODUCT_NAME" /> tavakasutajana. Kui soovite arendamiseks käivitada juurversiooni, käivitage uuesti märgistusega --no-sandbox.</translation> <translation id="2294358108254308676">Kas soovite installida <ph name="PRODUCT_NAME" />'i?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> tulemust</translation> <translation id="2297705863329999812">Printerite otsimine</translation> <translation id="2299734369537008228">Liugur: <ph name="MIN_LABEL" /> kuni <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Rakenduse <ph name="APP_NAME" /> kohandamine ja juhtimine</translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Parool salvestati sellesse seadmesse</translation> <translation id="2485422356828889247">Desinstalli</translation> <translation id="2487067538648443797">Uue järjehoidja lisamine</translation> +<translation id="2487268545026948104">Andmete taastamiseks looge ühendus internetiga</translation> <translation id="2489829450872380594">Järgmisel korral avab seadme <ph name="DEVICE_TYPE" /> uus telefon. Funktsiooni Smart Lock saab välja lülitada menüüs Seaded.</translation> <translation id="2489918096470125693">Lisa &kaust ...</translation> <translation id="2490481887078769936">Fail „<ph name="FILE_NAME" />” eemaldati loendist</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Määrati uus uneaeg</translation> <translation id="2544853746127077729">Võrk lükkas autentimissertifikaadi tagasi</translation> <translation id="2546283357679194313">Küpsised ja saidiandmed</translation> +<translation id="2547583314137677375">Lülita sünkroonimine välja</translation> <translation id="2549985041256363841">Alusta salvestamist</translation> <translation id="2550212893339833758">Saalitud mälu</translation> <translation id="2550596535588364872">Kas soovite lubada laiendusel <ph name="EXTENSION_NAME" /> avada faili <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Vigane crx-fail, lahtipakkimine nurjus.</translation> <translation id="2673135533890720193">Sirvimisajaloo lugemine</translation> <translation id="2673589024369449924">Loo selle kasutaja jaoks töölaua otsetee</translation> +<translation id="2674764818721168631">Väljas</translation> <translation id="2677748264148917807">Lahku</translation> <translation id="2678063897982469759">Luba uuesti</translation> <translation id="268053382412112343">&Ajalugu</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> saab kaustas <ph name="FOLDERNAME" /> olevaid faile muuta, kuni vahelehe sulgete</translation> <translation id="3780827508782506612">See leht on tõlgitud</translation> <translation id="378312418865624974">Arvuti ainuidentifikaatori lugemine</translation> +<translation id="3784472333786002075">Küpsisefailid on veebisaitide loodud failid. Küpsisefaile on kahte tüüpi: esimese osapoole küpsisefailid loob sait, mida külastate. Saidi aadress kuvatakse aadressiribal. Kolmanda osapoole küpsisefailid loovad teised saidid. Need saidid omavad külastatud veebisaidil kuvatud sisu, nt reklaame või pilte.</translation> <translation id="3785308913036335955">Kuva teenuse Apps otsetee</translation> <translation id="3785727820640310185">Selle saidi jaoks salvestatud paroolid</translation> <translation id="3788401245189148511">See võiks:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Teie kaart on aegunud</translation> <translation id="3792890930871100565">Eemalda printereid</translation> <translation id="3793395331556663376">Liiga palju süsteemifaile on avatud.</translation> +<translation id="379509625511193653">Väljas</translation> <translation id="3796648294839530037">Lemmikvõrgud:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" />Seadet <ph name="DEVICE_TYPE" /> haldab<ph name="END_LINK" /> teie organisatsioon</translation> <translation id="3797900183766075808">&Otsi otsingumootoriga <ph name="SEARCH_ENGINE" /> terminit „<ph name="SEARCH_TERMS" />”</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Pooleli</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertsi)</translation> <translation id="3954953195017194676">Teil pole ühtegi hiljuti jäädvustatud WebRTC sündmuselogi.</translation> +<translation id="3955163004258753966">Viga versiooni uuendamise alustamisel</translation> <translation id="3955193568934677022">Luba saitidel esitada kaitstud sisu (soovitatav)</translation> <translation id="3955896417885489542">Kuva pärast seadistamist Google Play valikud</translation> <translation id="3956702100721821638">Google Playga ei õnnestunud ühendada</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Välju lehelt}other{Välju lehtedelt}}</translation> <translation id="4044612648082411741">Sisestage oma sertifikaadi parool</translation> <translation id="404493185430269859">Vaikeotsingumootor</translation> +<translation id="4046013316139505482">Need laiendused ei pea sellel saidil olevat teavet nägema ega saama seda muuta.</translation> <translation id="4046123991198612571">Järgmine lugu</translation> <translation id="4050225813016893843">Autentimismeetod</translation> <translation id="4052120076834320548">Tilluke</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Ära kunagi tõlgi <ph name="LANGUAGE" /> keelt</translation> <translation id="4332976768901252016">Vanemliku järelevalve seadistamine</translation> <translation id="4333854382783149454">PKCS 1 SHA-1 koos RSA krüpteerimisega</translation> +<translation id="4336434711095810371">Kustuta kõik andmed</translation> <translation id="4336979451636460645">Võrgulogisid vaadake: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> tahab suhelda rakendusega „<ph name="EXTENSION_NAME" />”</translation> <translation id="4345587454538109430">Konfigureeri...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Virtuaalseadme seadistamine. See võib võtta mitu minutit.</translation> <translation id="4480590691557335796">Chrome võib teie arvutist otsida kahjulikku tarkvara ja selle eemaldada</translation> <translation id="4481530544597605423">Sidumata seadmed</translation> +<translation id="4488502501195719518">Kas kustutada kõik andmed?</translation> <translation id="4495419450179050807">Ära sellel lehel kuva</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> jooksis kokku</translation> <translation id="450099669180426158">Hüüumärgi ikoon</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Aadressid, telefoninumbrid ja muu</translation> <translation id="4572659312570518089">Autentimine tühistati seadmega „<ph name="DEVICE_NAME" />” ühenduse loomisel.</translation> <translation id="4572779512957829735">Sisestage turvavõtme PIN-kood</translation> +<translation id="4573515936045019911">Linuxi versiooni uuendamiseks on vajalik internetiühendus. Ühendage internetiga ja proovige uuesti.</translation> <translation id="457386861538956877">Rohkem ...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Hosti <ph name="HOST_NAME" /> ei saa üle kanda.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Seadistamine</translation> <translation id="4996978546172906250">Jagamine:</translation> <translation id="4997086284911172121">Interneti-ühendus puudub.</translation> +<translation id="4998430619171209993">Sees</translation> <translation id="4998873842614926205">Muudatuste kinnitamine</translation> <translation id="5000922062037820727">Blokeeritud (soovitatav)</translation> <translation id="5008936837313706385">Tegevuse nimi</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Kuvamine täisekraanil</translation> <translation id="514575469079499857">Asukoha määramiseks IP-aadressi kasutamine (vaikimisi)</translation> <translation id="5146995429444047494">Saidi <ph name="ORIGIN" /> märguanded on blokeeritud</translation> +<translation id="5147103632304200977">Küsi, kui sait soovib juurdepääsu HID-seadmetele (soovitatav)</translation> <translation id="5150254825601720210">Netscape'i sertifikaadi SSL-serveri nimi</translation> <translation id="5151354047782775295">Vabastage kettaruumi, muidu võidakse valitud andmed automaatselt kustutada</translation> <translation id="5153234146675181447">Telefoni unustamine</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Paroolide eksportimine Chrome'ist</translation> <translation id="5355099869024327351">Luba assistendil märguandeid esitada</translation> <translation id="5355926466126177564">Laiendus „<ph name="EXTENSION_NAME" />” muutis seda, milline leht kuvatakse omnikastikeses otsingu tegemisel.</translation> +<translation id="5359910752122114278">1 tulemus</translation> <translation id="5360150013186312835">Tööriistaribal kuvamine</translation> <translation id="5362741141255528695">Privaatvõtme faili valimine.</translation> <translation id="5363109466694494651">Powerwash ja ennistamine</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Administraator on ühenduse lisamise keelanud</translation> <translation id="5701080607174488915">Serverist reegli seadete toomisel ilmnes viga.</translation> <translation id="5701381305118179107">Keskel</translation> +<translation id="5701441174893770082">Linuxi versiooni uuendamine võib oluliselt akut kulutada. Ühendage seade laadijaga ja proovige uuesti.</translation> <translation id="5702898740348134351">&Muuda otsingumootoreid...</translation> <translation id="570302979952009979">Valige sellele sõrmejäljele nimi</translation> <translation id="5704875434923668958">Sünkroonimine kontoga</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-seade on ühendatud</translation> <translation id="6028117231645531007">Lisa sõrmejälg</translation> <translation id="6029587122245504742">Kõige aeglasem</translation> +<translation id="6032715498678347852">Selleks et anda laiendusele juurdepääs sellele saidile, klõpsake laiendusel.</translation> <translation id="6032912588568283682">Failisüsteem</translation> <translation id="6038929619733116134">Blokeeri, kui sait kuvab sekkuvaid või eksitavaid reklaame</translation> <translation id="6039651071822577588">Võrguatribuudi sõnastiku vorming on vale</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Turvafunktsioonide värskendamiseks lähtestage <ph name="DEVICE_TYPE" />.</translation> <translation id="6584878029876017575">Microsofti pikaajaline signeerimine</translation> <translation id="6586451623538375658">Vaheta esmast hiirenuppu</translation> +<translation id="6586604979641883411">Linuxi versiooni uuendamiseks on vaja vähemalt <ph name="REQUIRED_SPACE" /> vaba kettaruumi. Vabastage seadmes ruumi ja proovige uuesti.</translation> <translation id="6590458744723262880">Kausta ümbernimetamine</translation> <translation id="6592267180249644460">WebRTC logi on jäädvustatud: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Teie sõrmejälg jäädvustati</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL on kopeeritud</translation> <translation id="6758056191028427665">Andke teada, kuidas meil läheb.</translation> <translation id="6759193508432371551">Tehaseseadete lähtestamine</translation> +<translation id="6762833852331690540">Sees</translation> <translation id="6767566652486411142">Valige teine keel …</translation> <translation id="6767639283522617719">Domeeniga ei saa liituda. Veenduge, et organisatsiooniüksuse seaded oleksid õiged.</translation> <translation id="6769712124046837540">Printeri lisamine ...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Paberisalv puudub</translation> <translation id="693807610556624488">Kirjutamistoiming ületab atribuudi maksimumpikkust: „<ph name="DEVICE_NAME" />”.</translation> <translation id="6938386202199793006">Teil on 1 salvestatud printer.</translation> +<translation id="6938789263968032501">Inimesed</translation> <translation id="6941937518557314510">Logige rakendusse <ph name="TOKEN_NAME" /> oma hosti <ph name="HOST_NAME" /> sertifikaadi autentimiseks.</translation> <translation id="6943176775188458830">Tühista printimine</translation> <translation id="6943836128787782965">HTTP hankimine nurjus</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Prindi valitud leheküljed</translation> <translation id="6972180789171089114">Heli/video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> ei saa selles kaustas olevaid faile avada, kuna see sisaldab süsteemifaile</translation> +<translation id="6972629891077993081">HID-seadmed</translation> <translation id="6972754398087986839">Alustamine</translation> <translation id="6973611239564315524">Uuendamine versioonile Debian 10 (Buster) on saadaval</translation> <translation id="6974609594866392343">Võrguühenduseta demorežiim</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Taustleht: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Kõne seadmest <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">HID-seadmeid ei leitud</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Ava kõik &uues aknas}=1{Ava &uues aknas}other{Ava kõik (#) &uues aknas}}</translation> <translation id="7434509671034404296">Arendaja</translation> +<translation id="7434635829372401939">Seadete sünkroonimine</translation> <translation id="7436921188514130341">Ups, ebaõnn! Ümbernimetamisel ilmnes viga.</translation> <translation id="7438976808740265764">Flash Playerit pärast 2020. aasta detsembrit enam ei toetata.</translation> <translation id="7441736921018636843">Seade muutmiseks <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" />, et sünkroonimisparool eemaldada</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – seotud</translation> <translation id="7870730066603611552">Vaata sünkroonimisvalikud pärast seadistust üle</translation> <translation id="7870790288828963061">Ühtegi uuema versiooniga kioski rakendust ei leitud. Midagi pole värskendada. Eemaldage USB-mälupulk.</translation> +<translation id="787268756490971083">Väljas</translation> <translation id="7874257161694977650">Chrome'i taustad</translation> <translation id="7877451762676714207">Tundmatu serveriviga. Proovige uuesti või võtke ühendust serveri administraatoriga.</translation> <translation id="7877680364634660272">Tutvustus</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Kahjuks ei õnnestunud teie välisel mäluseadmel vähemalt ühe kettapartitsiooni ühendamine.</translation> <translation id="7909969815743704077">Alla laaditud inkognito režiimis</translation> <translation id="7910768399700579500">&Uus kaust</translation> +<translation id="7910831464510799808">Sees</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Teie parool serveris on muutunud. Logige välja ja seejärel uuesti sisse.</translation> <translation id="7915457674565721553">Vanemliku järelevalve seadistamiseks looge Interneti-ühendus</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Siinsest loendist puuduvad üksused võib vajaduse korral ka eemaldada. Vaadake lisateavet <a href="<ph name="URL" />">soovimatu tarkvara vastase kaitse</a> kohta Chrome'i privaatsusjuhendist.</translation> <translation id="935490618240037774">Teie järjehoidjad, ajalugu, paroolid ja muud seaded sünkroonitakse teie Google'i kontoga, et saaksite neid kasutada kõigis oma seadmetes.</translation> <translation id="935854577147268200">Smart Locki telefoni muudeti. Funktsiooni Smart Lock värskendamiseks sisestage oma parool. Järgmisel korral avab seadme <ph name="DEVICE_TYPE" /> teie telefon. Funktsiooni Smart Lock saab välja lülitada menüüs Seaded.</translation> +<translation id="93610034168535821">Saitide kasutatav salvestusruum kokku:</translation> <translation id="936801553271523408">Süsteemidiagnostika andmed</translation> <translation id="93766956588638423">Laiendi parandamine</translation> <translation id="938339467127511841">Linuxi (beeta) salvestusruum</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">IT-administraator on keelanud teie seadmes Chrome'i lisad.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Rakendus}other{Rakendused}}</translation> <translation id="965211523698323809">Saatke ja võtke seadmes <ph name="DEVICE_TYPE" /> vastu tekstsõnumeid. <ph name="LINK_BEGIN" />Lisateave<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Ära luba ühelgi saidil HID-seadmetele juurde pääseda</translation> <translation id="967624055006145463">Salvestatud andmete maht</translation> <translation id="968000525894980488">Lülitage sisse Google Play teenused.</translation> <translation id="968037381421390582">Kleebi ja otsi üksust „<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 2f2572d..7ccc4c90 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">Py&säytä</translation> <translation id="1110155001042129815">Odota</translation> <translation id="1112420131909513020">Taustavälilehti käyttää Bluetoothia.</translation> +<translation id="1113042067630273625">Tämä poistaa <ph name="TOTAL_USAGE" /> tallennettua sivustodataa.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Vinoneliö</translation> <translation id="1114335938027186412">Tietokoneesi sisältää Trusted Platform Module (TPM) -turvalaitteen, jonka avulla otetaan käyttöön monia tärkeitä turvallisuusominaisuuksia Chrome-käyttöjärjestelmässä. Lisätietoja on Chromebook-ohjekeskuksessa: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Tiedostovirhe</translation> <translation id="1741314857973421784">Jatka</translation> <translation id="1743570585616704562">Ei tunnistettu</translation> +<translation id="1743846852744439013">Sinut kirjataan ulos kaikilta sivustoilta, myös avoimilta välilehdiltä.</translation> <translation id="1743970419083351269">Sulje latauspalkki</translation> <translation id="1744060673522309905">Laitetta ei voi liittää verkkotunnukseen. Varmista, ettei lisättävien laitteiden kiintiösi ole ylittynyt,</translation> <translation id="1744108098763830590">taustasivu:</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Palvelut</translation> <translation id="18139523105317219">EDI-osapuolen nimi</translation> <translation id="1815083418640426271">Liitä tekstinä</translation> +<translation id="1815181278146012280">Kysy aina, kun sivusto pyytää HID-laitteen käyttölupaa</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> lisää…</translation> <translation id="1816036116994822943">Näppäimistöskannauksen nopeus</translation> <translation id="1817871734039893258">Microsoftin tiedoston palautus</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Keskitaso (suositus)</translation> <translation id="2077129598763517140">Käytä laitteistokiihdytystä, jos mahdollista</translation> <translation id="2078019350989722914">Varoita ennen sulkemista (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Pois päältä</translation> <translation id="2079053412993822885">Jos poistat jonkin omista varmenteistasi, et enää pysty tunnistautumaan.</translation> <translation id="2079545284768500474">Kumoa</translation> <translation id="2080070583977670716">Lisää asetuksia</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Kysy aina, kun sivusto pyytää lupaa löytää lähellä olevat Bluetooth-laitteet (suositus)</translation> <translation id="2292848386125228270">Käynnistä <ph name="PRODUCT_NAME" /> tavallisena käyttäjänä. Jos sinun on käytettävä sitä pääkäyttäjänä, käynnistä se uudelleen --no-sandbox-merkinnän kanssa.</translation> <translation id="2294358108254308676">Haluatko asentaa tuotteen <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> tulosta</translation> <translation id="2297705863329999812">Hae tulostimia</translation> <translation id="2299734369537008228">Liukusäädin: <ph name="MIN_LABEL" />–<ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Muokkaus ja hallinta: <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Salasana tallennettu tälle laitteelle</translation> <translation id="2485422356828889247">Poista</translation> <translation id="2487067538648443797">Lisää kirjanmerkki</translation> +<translation id="2487268545026948104">Muodosta internetyhteys datan palauttamiseksi</translation> <translation id="2489829450872380594">Ensi kerralla tämä <ph name="DEVICE_TYPE" /> avataan lukituksesta uudella puhelimella. Voit poistaa Smart Lockin käytöstä asetuksissa.</translation> <translation id="2489918096470125693">Lisää kansio...</translation> <translation id="2490481887078769936"><ph name="FILE_NAME" /> poistettiin luettelosta</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Uusi yölukitusaika asetettu</translation> <translation id="2544853746127077729">Verkko on hylännyt todennusvarmenteen</translation> <translation id="2546283357679194313">Evästeet ja sivustotiedot</translation> +<translation id="2547583314137677375">Poista synkronointi käytöstä</translation> <translation id="2549985041256363841">Aloita tallennus</translation> <translation id="2550212893339833758">Vaihdettu muisti</translation> <translation id="2550596535588364872">Saako <ph name="EXTENSION_NAME" /> avata tiedoston <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Virheellinen crx-tiedosto, purkaminen epäonnistui.</translation> <translation id="2673135533890720193">Tarkastella selaushistoriaasi</translation> <translation id="2673589024369449924">Luo tälle käyttäjälle työpöydän pikakuvake</translation> +<translation id="2674764818721168631">Pois päältä</translation> <translation id="2677748264148917807">Poistu</translation> <translation id="2678063897982469759">Ota uudelleen käyttöön</translation> <translation id="268053382412112343">Hi&storia</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> voi muokata kansion <ph name="FOLDERNAME" /> tiedostoja, kunnes suljet välilehden</translation> <translation id="3780827508782506612">Käännetty sivu</translation> <translation id="378312418865624974">Käyttää tämän tietokoneen yksilöllistä tunnusta</translation> +<translation id="3784472333786002075">Evästeet ovat verkkosivustojen luomia tiedostoja. Evästeitä on kahdentyyppisiä: ensimmäisen osapuolen evästeet luodaan sivustolla, jolla käyt. Sivusto näkyy osoitepalkissa. Kolmannen osapuolen evästeet luodaan muilla sivustoilla. Nämä sivustot omistavat mainoksia, kuvia tai muita sisältöjä, joita näytetään avaamallasi sivulla.</translation> <translation id="3785308913036335955">Näytä Apps-oikopolku</translation> <translation id="3785727820640310185">Tämän sivuston tallennetut salasanat</translation> <translation id="3788401245189148511">Se voisi:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Korttisi on vanhentunut.</translation> <translation id="3792890930871100565">Irrota tulostimet</translation> <translation id="3793395331556663376">Liian monta tiedostojärjestelmää auki</translation> +<translation id="379509625511193653">Pois päältä</translation> <translation id="3796648294839530037">Suosikkiverkot:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> on organisaatiosi ylläpitämä<ph name="END_LINK" /></translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />-haku termillä <ph name="SEARCH_TERMS" /></translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">Käynnissä</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertsiä)</translation> <translation id="3954953195017194676">Sinulla ei ole äskettäin tallennettuja WebRTC-lokeja.</translation> +<translation id="3955163004258753966">Päivityksen aloitusvirhe</translation> <translation id="3955193568934677022">Salli sivustojen toistaa suojattua sisältöä (suositus)</translation> <translation id="3955896417885489542">Tutustu Google Play ‑valintoihin määrityksen jälkeen</translation> <translation id="3956702100721821638">Google Playhin ei saatu yhteyttä.</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Sulje sivu}other{Sulje sivut}}</translation> <translation id="4044612648082411741">Anna varmenteen salasana.</translation> <translation id="404493185430269859">Oletushakukone</translation> +<translation id="4046013316139505482">Näiden laajennusten ei tarvitse nähdä tai muokata sivuston tietoja.</translation> <translation id="4046123991198612571">Seuraava kappale</translation> <translation id="4050225813016893843">Todennustapa</translation> <translation id="4052120076834320548">Pikkuruinen</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245">Älä koskaan käännä kieltä <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Lapsilukon määritys</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 ja RSA-salaus</translation> +<translation id="4336434711095810371">Poista kaikki data</translation> <translation id="4336979451636460645">Verkkolokit ovat täällä: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> haluaa viestiä sovelluksen <ph name="EXTENSION_NAME" /> kanssa.</translation> <translation id="4345587454538109430">Määritä...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">Määritetään virtuaalikonetta. Tämä voi kestää muutaman minuutin.</translation> <translation id="4480590691557335796">Chrome etsii haitallisia ohjelmia tietokoneestasi ja voi poistaa ne</translation> <translation id="4481530544597605423">Laitteet ilman paria</translation> +<translation id="4488502501195719518">Poistetaanko kaikki data?</translation> <translation id="4495419450179050807">Älä näytä tällä sivulla</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> on kaatunut.</translation> <translation id="450099669180426158">Huutomerkkikuvake</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">Osoitteet, puhelinnumerot ja muut</translation> <translation id="4572659312570518089">Todennus peruutettiin yhdistettäessä laitteeseen <ph name="DEVICE_NAME" />.</translation> <translation id="4572779512957829735">Anna suojausavaimen PIN-koodi</translation> +<translation id="4573515936045019911">Linuxin päivittämiseen tarvitaan verkkoyhteys. Muodosta internetyhteys ja yritä uudelleen.</translation> <translation id="457386861538956877">Lisää...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Osoitteen <ph name="HOST_NAME" /> suoratoisto ei onnistu.</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">Määritetään</translation> <translation id="4996978546172906250">Jaa palvelussa:</translation> <translation id="4997086284911172121">Ei internetyhteyttä.</translation> +<translation id="4998430619171209993">Päällä</translation> <translation id="4998873842614926205">Vahvista muutokset</translation> <translation id="5000922062037820727">Estetty (suositus)</translation> <translation id="5008936837313706385">Toiminnon nimi</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">Siirry koko näytön tilaan</translation> <translation id="514575469079499857">Määritä sijainti IP-osoitteesi avulla (oletus)</translation> <translation id="5146995429444047494">Ilmoitukset on estetty: <ph name="ORIGIN" /></translation> +<translation id="5147103632304200977">Kysy aina, kun sivusto pyytää HID-laitteen käyttölupaa (suositus)</translation> <translation id="5150254825601720210">Netscape-varmenteen SSL-palvelimen nimi</translation> <translation id="5151354047782775295">Vapauta levytilaa, tai tiettyjä tietoja voidaan poistaa automaattisesti.</translation> <translation id="5153234146675181447">Unohda puhelin</translation> @@ -3041,6 +3058,7 @@ <translation id="5353252989841766347">Vie salasanat Chromesta</translation> <translation id="5355099869024327351">Anna Assistantin näyttää ilmoituksia</translation> <translation id="5355926466126177564">Laajennus <ph name="EXTENSION_NAME" /> on vaihtanut omnibox-hakujen aloitussivun.</translation> +<translation id="5359910752122114278">1 tulos</translation> <translation id="5360150013186312835">Näytä yläpalkissa</translation> <translation id="5362741141255528695">Valitse yksityinen avaintiedosto.</translation> <translation id="5363109466694494651">Suorita Powerwash ja palauta</translation> @@ -3290,6 +3308,7 @@ <translation id="5700836101007545240">Järjestelmänvalvoja on poistanut yhteyden lisäämisen käytöstä.</translation> <translation id="5701080607174488915">Virhe noudettaessa käytäntöä palvelimelta</translation> <translation id="5701381305118179107">Keskitä</translation> +<translation id="5701441174893770082">Linuxin päivittäminen voi kuluttaa paljon akkuvirtaa. Liitä laite laturiin ja yritä uudelleen.</translation> <translation id="5702898740348134351">Muokkaa hakukon&eita...</translation> <translation id="570302979952009979">Valitse sormenjäljelle nimi</translation> <translation id="5704875434923668958">Synkronoidaan kohteeseen</translation> @@ -3519,6 +3538,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-laite yhdistetty</translation> <translation id="6028117231645531007">Lisää sormenjälki</translation> <translation id="6029587122245504742">Hitain</translation> +<translation id="6032715498678347852">Anna laajennukselle pääsy sivustolle klikkaamalla laajennusta.</translation> <translation id="6032912588568283682">Tiedostojärjestelmä</translation> <translation id="6038929619733116134">Estä, jos sivustolla on häiritseviä tai harhaanjohtavia mainoksia</translation> <translation id="6039651071822577588">Verkko-omaisuuden sanakirja on virheellinen</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">Nollaa <ph name="DEVICE_TYPE" /> päivittääksesi tietoturvasi</translation> <translation id="6584878029876017575">Microsoftin elinikäinen allekirjoitus</translation> <translation id="6586451623538375658">Vaihda hiiren ykköspainiketta</translation> +<translation id="6586604979641883411">Linuxin päivittämiseen tarvitaan vähintään <ph name="REQUIRED_SPACE" /> vapaata levytilaa. Vapauta laitteelta tilaa ja yritä uudelleen.</translation> <translation id="6590458744723262880">Nimeä kansio uudelleen</translation> <translation id="6592267180249644460">WebRTC-loki kaapattiin <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Sormenjälkesi tallennettiin</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">URL-osoite kopioitu</translation> <translation id="6758056191028427665">Kerro mielipiteesi</translation> <translation id="6759193508432371551">Tehdasasetusten palauttaminen</translation> +<translation id="6762833852331690540">Päällä</translation> <translation id="6767566652486411142">Valitse toinen kieli…</translation> <translation id="6767639283522617719">Verkkotunnukseen liittyminen ei onnistu. Varmista, että organisaatioyksikön asetukset on määritetty oikein.</translation> <translation id="6769712124046837540">Tulostinta lisätään…</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">Paperilokero puuttuu</translation> <translation id="693807610556624488">Kirjoitustoiminto ylittää attribuutin enimmäispituuden laitteella <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">Olet tallentanut yhden tulostimen.</translation> +<translation id="6938789263968032501">Ihmiset</translation> <translation id="6941937518557314510">Kirjaudu sisään laitteeseen <ph name="TOKEN_NAME" /> ja todenna <ph name="HOST_NAME" /> varmenteellasi.</translation> <translation id="6943176775188458830">Peruuta tulostus</translation> <translation id="6943836128787782965">HTTP get -toiminto epäonnistui</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">Tulosta tietyt sivut</translation> <translation id="6972180789171089114">Ääni- ja videotiedostot</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> ei saa avata tämän kansion tiedostoja, koska se sisältää järjestelmätiedostoja</translation> +<translation id="6972629891077993081">HID-laitteet</translation> <translation id="6972754398087986839">Aloitusopas</translation> <translation id="6973611239564315524">Päivitys Debian 10:een (Buster) saatavilla</translation> <translation id="6974609594866392343">Offline-esittelytila</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Taustasivu: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Puhelu laitteesta <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">HID-laitteita ei löytynyt</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Avaa kaikki uudessa ikkunassa}=1{Avaa kaikki uudessa ikkunassa}other{Avaa kaikki # uudessa ikkunassa}}</translation> <translation id="7434509671034404296">Kehittäjille</translation> +<translation id="7434635829372401939">Synkronoi asetuksesi</translation> <translation id="7436921188514130341">Harmin paikka! Uudelleennimeämisen aikana tapahtui virhe.</translation> <translation id="7438976808740265764">Flash Playeria ei enää tueta joulukuun 2020 jälkeen.</translation> <translation id="7441736921018636843">Jos haluat muuttaa tätä, <ph name="BEGIN_LINK" />nollaa synkronointi<ph name="END_LINK" /> poistaaksesi synkronoinnin tunnuslauseen</translation> @@ -4806,6 +4832,7 @@ <translation id="786957569166715433">Laitepari muodostettu laitteen <ph name="DEVICE_NAME" /> kanssa</translation> <translation id="7870730066603611552">Tarkista synkronointiasetukset määrityksen jälkeen</translation> <translation id="7870790288828963061">Ei löytynyt kioskisovelluksia, joiden versio on uudempi. Ei päivitettävää. Irrota USB-tikku.</translation> +<translation id="787268756490971083">Pois päältä</translation> <translation id="7874257161694977650">Chrome-taustat</translation> <translation id="7877451762676714207">Tuntematon palvelinvirhe. Yritä uudelleen tai ota yhteyttä palvelimen järjestelmänvalvojaan.</translation> <translation id="7877680364634660272">Esittely</translation> @@ -4833,6 +4860,7 @@ <translation id="7908378463497120834">Ainakaan yhtä ulkoisen tallennustilan osioista ei voitu ottaa käyttöön.</translation> <translation id="7909969815743704077">Ladattiin incognito-tilassa</translation> <translation id="7910768399700579500">&Uusi kansio</translation> +<translation id="7910831464510799808">Päällä</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Salasana vaihdettiin palvelimella. Kirjaudu ulos ja sitten uudelleen sisään.</translation> <translation id="7915457674565721553">Muodosta yhteys internetiin, niin voit määrittää lapsilukon</translation> @@ -5771,6 +5799,7 @@ <translation id="934503638756687833">Myös tämän luettelon ulkopuolisia kohteita voidaan poistaa tarvittaessa. Lue lisää <a href="<ph name="URL" />">ei-toivotuilta ohjelmilta suojautumisesta</a> Chromen tietosuojailmoituksesta.</translation> <translation id="935490618240037774">Kirjanmerkkisi, historiasi, salasanasi ja muut asetuksesi synkronoidaan Google-tilillesi, jotta voit käyttää niitä kaikilla laitteillasi.</translation> <translation id="935854577147268200">Smart Lock ‑puhelin on vaihtunut. Kirjoita salasana, jotta Smart Lock voidaan päivittää. Seuraavalla kerralla puhelimesi avaa laitteen <ph name="DEVICE_TYPE" /> lukituksen. Voit poistaa Smart Lockin käytöstä asetuksissa.</translation> +<translation id="93610034168535821">Sivustojen yhteensä käyttämä tallennustila:</translation> <translation id="936801553271523408">Järjestelmän diagnostiikkatiedot</translation> <translation id="93766956588638423">Korjaa laajennus</translation> <translation id="938339467127511841">Linux-tallennustila (beta)</translation> @@ -5792,6 +5821,7 @@ <translation id="964286338916298286">IT-järjestelmänvalvojasi on poistanut Chrome Goodies ‑tarjoukset käytöstä laitteellasi.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Sovellus}other{Sovellukset}}</translation> <translation id="965211523698323809"><ph name="DEVICE_TYPE" /> voi lähettää ja vastaanottaa tekstiviestejä. <ph name="LINK_BEGIN" />Lue lisää<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Älä anna HID-laitteiden käyttölupaa millekään sivustolle</translation> <translation id="967624055006145463">Tallennettu data</translation> <translation id="968000525894980488">Ota Google Play Palvelut käyttöön.</translation> <translation id="968037381421390582">Liitä ja tee haku <ph name="SEARCH_TERMS" /></translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index a2f8695d..c27debb8 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -3777,7 +3777,7 @@ <translation id="6386099547750337629">S'il s'agit d'une erreur, veuillez contacter le service d'assistance.</translation> <translation id="6387674443318562538">Séparation verticale</translation> <translation id="6388429472088318283">Rechercher des langues</translation> -<translation id="6390020764191254941">Déplacer l'onglet dans une nouvelle fenêtre</translation> +<translation id="6390020764191254941">Déplacer l'onglet vers une nouvelle fenêtre</translation> <translation id="6390799748543157332">Les pages que vous consultez dans cette fenêtre ne sont pas consignées dans l'historique du navigateur et ne laissent aucune autre trace sur votre ordinateur (des cookies, par exemple), une fois que vous avez fermé toutes les fenêtres Invité ouvertes. Tous les fichiers téléchargés sont toutefois conservés.</translation> <translation id="6393156038355142111">Suggérer un mot de passe sécurisé</translation> <translation id="6395423953133416962">Envoyer les <ph name="BEGIN_LINK1" />informations système<ph name="END_LINK1" /> et les <ph name="BEGIN_LINK2" />statistiques<ph name="END_LINK2" /></translation> @@ -4799,7 +4799,7 @@ <translation id="7851720427268294554">Analyseur IPP</translation> <translation id="78526636422538552">La fonctionnalité d'ajout d'autres comptes Google est désactivée</translation> <translation id="7853747251428735">Plus d'outi&ls</translation> -<translation id="7855678561139483478">Déplacer l'onglet dans une nouvelle fenêtre</translation> +<translation id="7855678561139483478">Déplacer l'onglet vers une nouvelle fenêtre</translation> <translation id="7857117644404132472">Ajouter une exception</translation> <translation id="7857949311770343000">Est-ce la page Nouvel onglet que vous attendiez ?</translation> <translation id="7859938049767853383">Le fichier "<ph name="FILE_NAME" />" étant trop volumineux pour être analysé dans le cloud, son ouverture a été bloquée.</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 42b9f22..cbe9a18 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Deter</translation> <translation id="1110155001042129815">Esperar</translation> <translation id="1112420131909513020">Hai unha pestana en segundo plano que está utilizando o Bluetooth</translation> +<translation id="1113042067630273625">Con esta acción borrarase o almacenamento de <ph name="TOTAL_USAGE" /> dos datos almacenados polos sitios.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MODEL" /> de <ph name="PRINTER_MANUFACTURER" /> (USB)</translation> <translation id="1114202307280046356">Diamante</translation> <translation id="1114335938027186412">O ordenador contén un dispositivo de seguranza Trusted Platform Module (TPM) que se utiliza para implementar moitas funcións de seguranza esenciais en SO Chrome. Consulta o Centro de Axuda de Chromebook para obter máis información: https://support.google.com/chromebook/?p=tpm</translation> @@ -537,6 +538,7 @@ <translation id="1737968601308870607">Arquivar erro</translation> <translation id="1741314857973421784">Continuar</translation> <translation id="1743570585616704562">Non se recoñece</translation> +<translation id="1743846852744439013">Pecharase sesión en todos os sitios, mesmo nas pestanas abertas.</translation> <translation id="1743970419083351269">Pechar barra de descargas</translation> <translation id="1744060673522309905">O dispositivo non se puido vincular ao dominio. Asegúrate de que non superaches o número de dispositivos que se poden engadir.</translation> <translation id="1744108098763830590">páxina en segundo plano</translation> @@ -595,6 +597,7 @@ <translation id="1813278315230285598">Servizos</translation> <translation id="18139523105317219">Nome da parte EDI</translation> <translation id="1815083418640426271">Pegar como texto sen formato</translation> +<translation id="1815181278146012280">Preguntar cando un sitio queira acceder aos dispositivos de interface humana</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> máis...</translation> <translation id="1816036116994822943">Velocidade de busca do teclado</translation> <translation id="1817871734039893258">Recuperación de ficheiros de Microsoft</translation> @@ -766,6 +769,7 @@ <translation id="2076672359661571384">Tamaño medio (recomendado)</translation> <translation id="2077129598763517140">Utilizar a aceleración de hardware cando estea dispoñible</translation> <translation id="2078019350989722914">Avisar antes de pechar (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Opción desactivada</translation> <translation id="2079053412993822885">Se eliminas un dos teus propios certificados, non poderás volver utilizalo para identificarte.</translation> <translation id="2079545284768500474">Desfacer</translation> <translation id="2080070583977670716">Máis configuracións</translation> @@ -932,6 +936,7 @@ <translation id="2289270750774289114">Preguntar cando un sitio web queira detectar dispositivos Bluetooth próximos (recomendado)</translation> <translation id="2292848386125228270">Inicia <ph name="PRODUCT_NAME" /> como usuario normal. Se precisas executalo como raíz para o desenvolvemento, volve executalo coa función experimental --no-sandbox.</translation> <translation id="2294358108254308676">Queres instalar <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultados</translation> <translation id="2297705863329999812">Buscar impresoras</translation> <translation id="2299734369537008228">Control desprazable: de <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personaliza e controla <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">O contrasinal gardouse neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> <translation id="2487067538648443797">Engadir un marcador novo</translation> +<translation id="2487268545026948104">Para restaurar os teus datos, conéctate a Internet</translation> <translation id="2489829450872380594">A próxima vez, o novo teléfono desbloqueará este <ph name="DEVICE_TYPE" />. Podes desactivar Smart Lock en Configuración.</translation> <translation id="2489918096470125693">Engadir &cartafol...</translation> <translation id="2490481887078769936">Quitouse "<ph name="FILE_NAME" />" da lista</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">Novo límite de hora de durmir</translation> <translation id="2544853746127077729">A rede rexeitou o certificado de autenticación</translation> <translation id="2546283357679194313">Cookies e datos dos sitios</translation> +<translation id="2547583314137677375">Desactivar sincronización</translation> <translation id="2549985041256363841">Iniciar gravación</translation> <translation id="2550212893339833758">Memoria cambiada</translation> <translation id="2550596535588364872">Queres permitirlle á extensión <ph name="EXTENSION_NAME" /> abrir <ph name="FILE_NAME" />?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">Ficheiro crx incorrecto, fallo na descompresión.</translation> <translation id="2673135533890720193">Ler o teu historial de navegación</translation> <translation id="2673589024369449924">Crear un atallo no escritorio para este usuario</translation> +<translation id="2674764818721168631">Opción desactivada</translation> <translation id="2677748264148917807">Saír</translation> <translation id="2678063897982469759">Reactivar</translation> <translation id="268053382412112343">Hi&storial</translation> @@ -1997,6 +2005,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> poderá editar os ficheiros de <ph name="FOLDERNAME" /> ata que peches esta pestana</translation> <translation id="3780827508782506612">Traduciuse esta páxina</translation> <translation id="378312418865624974">Ler un identificador único para este ordenador</translation> +<translation id="3784472333786002075">As cookies son ficheiros creados polos sitios web e poden ser de dous tipos: propias ou de terceiros. As propias son as que crean os sitios que visitas. Neste caso, o sitio en cuestión aparece na barra de enderezos. As de terceiros son as que crean outros sitios. Parte do contido que ves nos sitios que visitas, como anuncios ou imaxes, pertence a esoutros sitios.</translation> <translation id="3785308913036335955">Mostrar o atallo das aplicacións</translation> <translation id="3785727820640310185">Gardáronse os contrasinais para este sitio</translation> <translation id="3788401245189148511">Podería:</translation> @@ -2004,6 +2013,7 @@ <translation id="379082410132524484">A tarxeta caducou</translation> <translation id="3792890930871100565">Desconectar impresoras</translation> <translation id="3793395331556663376">Abríronse demasiados sistemas de ficheiros.</translation> +<translation id="379509625511193653">Opción desactivada</translation> <translation id="3796648294839530037">Redes favoritas:</translation> <translation id="3797739167230984533">A túa organización <ph name="BEGIN_LINK" />xestiona o teu <ph name="DEVICE_TYPE" /><ph name="END_LINK" /></translation> <translation id="3797900183766075808">&Buscar "<ph name="SEARCH_TERMS" />" en <ph name="SEARCH_ENGINE" /></translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">En curso</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Non se capturou ningún rexistro de eventos WebRTC recentemente.</translation> +<translation id="3955163004258753966">Produciuse un erro ao iniciar a actualización</translation> <translation id="3955193568934677022">Permitir que os sitios reproduzan contido protexido (recomendado)</translation> <translation id="3955896417885489542">Revisar opcións de Google Play despois da configuración</translation> <translation id="3956702100721821638">Non se puido acceder a Google Play</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Páxina de saída}other{Páxinas de saída}}</translation> <translation id="4044612648082411741">Introduce o contrasinal do certificado</translation> <translation id="404493185430269859">Motor de busca predeterminado</translation> +<translation id="4046013316139505482">Estas extensións non necesitan ver nin cambiar a información deste sitio.</translation> <translation id="4046123991198612571">Pista seguinte</translation> <translation id="4050225813016893843">Método de autenticación</translation> <translation id="4052120076834320548">Minúsculo</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">Non traducir nunca do <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configurar os controis parentais</translation> <translation id="4333854382783149454">PKCS n.º 1 SHA-1 con cifrado RSA</translation> +<translation id="4336434711095810371">Borrar todos os datos</translation> <translation id="4336979451636460645">Para observar rexistros de rede, consulta: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> quere comunicarse coa aplicación "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configurar...</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">Configurando a máquina virtual. Esta acción pode tardar uns minutos.</translation> <translation id="4480590691557335796">Chrome pode buscar software daniño no ordenador e eliminalo</translation> <translation id="4481530544597605423">Dispositivos desincronizados</translation> +<translation id="4488502501195719518">Queres borrar todos os datos?</translation> <translation id="4495419450179050807">Non mostrar nesta páxina</translation> <translation id="4500114933761911433">Produciuse un fallo co complemento <ph name="PLUGIN_NAME" /></translation> <translation id="450099669180426158">Icona de signo de exclamación</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">Enderezos, número de teléfono, etc.</translation> <translation id="4572659312570518089">Autenticación cancelada durante a conexión con "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Introduce o PIN da túa chave de seguranza</translation> +<translation id="4573515936045019911">Necesítase conexión de rede para actualizar Linux. Conéctate a Internet e téntao de novo.</translation> <translation id="457386861538956877">Máis...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Non se puido emitir <ph name="HOST_NAME" />.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">Configurando</translation> <translation id="4996978546172906250">Compartir a través de</translation> <translation id="4997086284911172121">Non hai conexión a Internet.</translation> +<translation id="4998430619171209993">Opción activada</translation> <translation id="4998873842614926205">Confirmar cambios</translation> <translation id="5000922062037820727">Bloqueado (recomendado)</translation> <translation id="5008936837313706385">Nome da actividade</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">Acceder á pantalla completa</translation> <translation id="514575469079499857">Utilizar o enderezo IP para determinar a localización (predeterminado)</translation> <translation id="5146995429444047494">As notificacións de <ph name="ORIGIN" /> están bloqueadas</translation> +<translation id="5147103632304200977">Preguntar cando un sitio queira acceder aos dispositivos de interface humana (recomendado)</translation> <translation id="5150254825601720210">Nome do servidor SSL de certificados Netscape</translation> <translation id="5151354047782775295">Libera espazo en disco para que non se eliminen automaticamente datos seleccionados</translation> <translation id="5153234146675181447">Esquecer o teléfono</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">Exportar contrasinais de Chrome</translation> <translation id="5355099869024327351">Permite que o Asistente che mostre notificacións</translation> <translation id="5355926466126177564">A extensión "<ph name="EXTENSION_NAME" />" cambiou a páxina que se mostra ao buscar desde Omnibox.</translation> +<translation id="5359910752122114278">1 resultado</translation> <translation id="5360150013186312835">Mostrar na barra de ferramentas</translation> <translation id="5362741141255528695">Seleccionar ficheiro de clave privada.</translation> <translation id="5363109466694494651">Levar a cabo un Powerwash e reverter</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">O administrador desactivou a opción Engadir conexión</translation> <translation id="5701080607174488915">Produciuse un erro ao obter a política do servidor.</translation> <translation id="5701381305118179107">Centrar</translation> +<translation id="5701441174893770082">A actualización de Linux pode consumir moita batería. Conecta o dispositivo a un cargador e téntao de novo.</translation> <translation id="5702898740348134351">&Editar motores de busca...</translation> <translation id="570302979952009979">Escolle un nome para esta impresión dixital</translation> <translation id="5704875434923668958">Sincronizando con</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" />: conectouse a un dispositivo USB</translation> <translation id="6028117231645531007">Engadir impresión dixital</translation> <translation id="6029587122245504742">A máis lenta</translation> +<translation id="6032715498678347852">Para permitir o acceso dunha extensión a este sitio, fai clic nela.</translation> <translation id="6032912588568283682">Sistema de ficheiros</translation> <translation id="6038929619733116134">Bloquear se o sitio mostra anuncios enganosos ou intrusivos</translation> <translation id="6039651071822577588">Dicionario de propiedades da rede incorrecto</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">Restablece o dispositivo <ph name="DEVICE_TYPE" /> para actualizar a seguranza.</translation> <translation id="6584878029876017575">Sinatura de vixencia de Microsoft</translation> <translation id="6586451623538375658">Cambiar botón principal do rato</translation> +<translation id="6586604979641883411">É necesario ter polo menos <ph name="REQUIRED_SPACE" /> de espazo libre no disco para poder actualizar Linux. Libera espazo no dispositivo e téntao de novo.</translation> <translation id="6590458744723262880">Cambiar o nome do cartafol</translation> <translation id="6592267180249644460">Rexistro WebRTC capturado <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Capturouse a túa impresión dixital</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">Copiouse o URL</translation> <translation id="6758056191028427665">Indícanos o teu grao de satisfacción.</translation> <translation id="6759193508432371551">Restablecemento de fábrica</translation> +<translation id="6762833852331690540">Opción activada</translation> <translation id="6767566652486411142">Escoller outro idioma…</translation> <translation id="6767639283522617719">O dispositivo non se puido vincular ao dominio. Asegúrate de que a configuración sexa correcta para a unidade organizativa.</translation> <translation id="6769712124046837540">Engadindo impresora...</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">Falta unha bandexa de papel</translation> <translation id="693807610556624488">A operación de escritura supera a lonxitude máxima do atributo para o dispositivo "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Tes 1 impresora gardada.</translation> +<translation id="6938789263968032501">Persoas</translation> <translation id="6941937518557314510">Inicia sesión en <ph name="TOKEN_NAME" /> para autenticarte en <ph name="HOST_NAME" /> co teu certificado.</translation> <translation id="6943176775188458830">Cancelar impresión</translation> <translation id="6943836128787782965">Erro ao obter HTTP</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">Imprimir páxinas específicas</translation> <translation id="6972180789171089114">Audio/Vídeo</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> non pode abrir os ficheiros deste cartafol porque contén ficheiros do sistema</translation> +<translation id="6972629891077993081">Dispositivos de interface humana</translation> <translation id="6972754398087986839">Introdución</translation> <translation id="6973611239564315524">Está dispoñible unha actualización a Debian 10 (Buster)</translation> <translation id="6974609594866392343">Modo de demostración sen conexión</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Páxina en segundo plano: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Chamada de <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Non se encontraron dispositivos de interface humana</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Abrir todos os marcadores nunha ventá &nova}=1{Abrir nunha ventá &nova}other{Abrir todos os marcadores (#) nunha ventá &nova}}</translation> <translation id="7434509671034404296">Programador</translation> +<translation id="7434635829372401939">Sincronizar a túa configuración</translation> <translation id="7436921188514130341">Que pena! Produciuse un erro durante o cambio de nome.</translation> <translation id="7438976808740265764">A partir de decembro de 2020, Flash Player deixará de ser compatible.</translation> <translation id="7441736921018636843">Se queres cambiar esta opción de configuración, <ph name="BEGIN_LINK" />restablece a sincronización<ph name="END_LINK" /> para quitar a frase de acceso da sincronización</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />: sincronizado</translation> <translation id="7870730066603611552">Revisar opcións de sincronización despois da configuración</translation> <translation id="7870790288828963061">Non se atopou ningunha aplicación de quiosco cunha versión máis recente. Non hai nada para actualizar. Retira a memoria USB.</translation> +<translation id="787268756490971083">Opción desactivada</translation> <translation id="7874257161694977650">Fondos de Chrome</translation> <translation id="7877451762676714207">Erro do servidor descoñecido. Téntao de novo ou ponte en contacto co administrador do servidor.</translation> <translation id="7877680364634660272">Visita guiada</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">Polo menos unha partición do dispositivo de almacenamento externo non se puido activar.</translation> <translation id="7909969815743704077">Descargouse no modo de incógnito</translation> <translation id="7910768399700579500">&Novo cartafol</translation> +<translation id="7910831464510799808">Opción activada</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">O teu contrasinal cambiouse no servidor. Pecha sesión e volve iniciala.</translation> <translation id="7915457674565721553">Conéctate a Internet para configurar a función Controis parentais</translation> @@ -5771,6 +5799,7 @@ <translation id="934503638756687833">Se é necesario, tamén se quitarán elementos que non se indican aquí. Consulta máis información acerca da <a href="<ph name="URL" />">protección contra software non desexado</a> no libro branco de privacidade de Chrome.</translation> <translation id="935490618240037774">Os marcadores, o historial, os contrasinais e outras opcións de configuración sincronizaranse coa túa conta de Google para que poidas utilizalos en todos os teus dispositivos. </translation> <translation id="935854577147268200">Modificouse o teléfono que ten activada a función Smart Lock. Introduce o teu contrasinal para actualizar a función. A próxima vez, o teléfono desbloqueará o dispositivo <ph name="DEVICE_TYPE" />. Podes desactivar Smart Lock en Configuración</translation> +<translation id="93610034168535821">Almacenamento total usado polos sitios:</translation> <translation id="936801553271523408">Datos de diagnóstico do sistema</translation> <translation id="93766956588638423">Reparar extensión</translation> <translation id="938339467127511841">Almacenamento de Linux (beta)</translation> @@ -5792,6 +5821,7 @@ <translation id="964286338916298286">O teu administrador de TI desactivou os extras de Chrome para o teu dispositivo.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplicación}other{Aplicacións}}</translation> <translation id="965211523698323809">Envía e recibe mensaxes de texto desde o <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Máis información<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Non permitir que ningún sitio acceda aos dispositivos de interface humana</translation> <translation id="967624055006145463">Datos almacenados</translation> <translation id="968000525894980488">Activa os servizos de Google Play.</translation> <translation id="968037381421390582">Pegar e bu&scar "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index cc339b8..07310f7 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stop (Zaustavi)</translation> <translation id="1110155001042129815">Čekaj</translation> <translation id="1112420131909513020">Pozadinska kartica upotrebljava Bluetooth</translation> +<translation id="1113042067630273625">Izbrisat će se <ph name="TOTAL_USAGE" /> pohranjenih podataka na web-lokaciji.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Dijamant</translation> <translation id="1114335938027186412">Vaše računalo sadrži sigurnosni uređaj Trusted Platform Module (TPM) koji se upotrebljava za primjenu mnogih važnih sigurnosnih značajki u OS-u Chrome. Posjetite Chromebookov centar za pomoć da biste saznali više: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Bug datoteke</translation> <translation id="1741314857973421784">Nastavi</translation> <translation id="1743570585616704562">Nije prepoznat</translation> +<translation id="1743846852744439013">Odjavit ćete se sa svih web-lokacija, uključujući sve otvorene kartice.</translation> <translation id="1743970419083351269">Zatvori traku preuzimanja</translation> <translation id="1744060673522309905">Uređaj nije moguće pridružiti domeni. Provjerite jeste li premašili broj uređaja koji možete dodati.</translation> <translation id="1744108098763830590">pozadinska stranica</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Usluge</translation> <translation id="18139523105317219">Naziv EDI strane</translation> <translation id="1815083418640426271">Zalijepi kao običan tekst</translation> +<translation id="1815181278146012280">Kada web-lokacija želi pristupiti HID uređajima, prikaži upit</translation> <translation id="181577467034453336">Još <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">Brzina traženja tipkovnice</translation> <translation id="1817871734039893258">Microsoftovo obnavljanje datoteke</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Srednja (zadano)</translation> <translation id="2077129598763517140">Upotrijebi hardversko ubrzanje kada je dostupno</translation> <translation id="2078019350989722914">Upozori prije izlaska (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Isključeno</translation> <translation id="2079053412993822885">Ako izbrišete jedan od svojih certifikata, više ga ne možete koristiti za identifikaciju.</translation> <translation id="2079545284768500474">Poništi</translation> <translation id="2080070583977670716">Više postavki</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Prikaži upit kad web-lokacija želi tražiti Bluetooth uređaje u blizini (preporučeno)</translation> <translation id="2292848386125228270">Pokrenite <ph name="PRODUCT_NAME" /> kao običan korisnik. Ako ga trebate pokrenuti kao korijenski direktorij radi razvoja, pokrenite ga ponovo s oznakom --no-sandbox.</translation> <translation id="2294358108254308676">Želite li instalirati program <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> rezultata</translation> <translation id="2297705863329999812">Pretražite pisače</translation> <translation id="2299734369537008228">Klizač: od <ph name="MIN_LABEL" /> do <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Prilagodite i kontrolirajte aplikaciju <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Zaporka je spremljena na ovom uređaju</translation> <translation id="2485422356828889247">Deinstaliraj</translation> <translation id="2487067538648443797">Dodaj novu oznaku</translation> +<translation id="2487268545026948104">Da biste vratili svoje podatke, povežite se s internetom</translation> <translation id="2489829450872380594">Sljedeći će put novi telefon otključati ovaj uređaj <ph name="DEVICE_TYPE" />. Smart Lock možete isključiti u Postavkama.</translation> <translation id="2489918096470125693">Dodavanje &mape...</translation> <translation id="2490481887078769936">Datoteka "<ph name="FILE_NAME" />" uklonjena je s popisa</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Postavljeno novo vrijeme spavanja</translation> <translation id="2544853746127077729">Mreža je odbila certifikat za autentifikaciju</translation> <translation id="2546283357679194313">Kolačići i podaci o web-lokacijama</translation> +<translation id="2547583314137677375">Isključivanje sinkronizacije</translation> <translation id="2549985041256363841">Početak snimanja</translation> <translation id="2550212893339833758">Zamijenjena memorija</translation> <translation id="2550596535588364872">Omogućiti proširenju <ph name="EXTENSION_NAME" /> da otvori <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Neispravna crx datoteka. Raspakiravanje nije uspjelo.</translation> <translation id="2673135533890720193">čitati vašu povijest pregledavanja</translation> <translation id="2673589024369449924">Stvori prečac na radnoj površini za ovog korisnika</translation> +<translation id="2674764818721168631">Isključeno</translation> <translation id="2677748264148917807">Napusti</translation> <translation id="2678063897982469759">Ponovo omogući</translation> <translation id="268053382412112343">Hi&story (Povijest)</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884">Web-lokacija <ph name="ORIGIN" /> moći će uređivati datoteke u mapi <ph name="FOLDERNAME" /> dok ne zatvorite ovu karticu</translation> <translation id="3780827508782506612">Ova je stranica prevedena</translation> <translation id="378312418865624974">pročitati jedinstveni identifikator ovog računala</translation> +<translation id="3784472333786002075">Kolačići su datoteke web-lokacija. Postoje dvije vrste kolačića: kolačiće prve strane izrađuje web-lokacija koju posjetite. Ta je web-lokacija navedena u adresnoj traci. Kolačiće trećih strana izrađuju ostale web-lokacije. Te web-lokacije posjeduju dio sadržaja prikazanog na web-lokaciji koju ste posjetili, primjerice oglase ili slike.</translation> <translation id="3785308913036335955">Prikaži prečac za Aplikacije</translation> <translation id="3785727820640310185">Spremljene zaporke za tu web-lokaciju</translation> <translation id="3788401245189148511">Proširenje ili aplikacija mogli bi:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Vaša je kartica istekla</translation> <translation id="3792890930871100565">Isključi pisače</translation> <translation id="3793395331556663376">Otvoreno je previše datotečnih sustava.</translation> +<translation id="379509625511193653">Isključeno</translation> <translation id="3796648294839530037">Omiljene mreže:</translation> <translation id="3797739167230984533">Vašim <ph name="BEGIN_LINK" />uređajem <ph name="DEVICE_TYPE" /> upravlja<ph name="END_LINK" /> vaša organizacija</translation> <translation id="3797900183766075808">&Traži pojam "<ph name="SEARCH_TERMS" />" na tražilici <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">U tijeku</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herca)</translation> <translation id="3954953195017194676">Nemate nedavno snimljenih WebRTC zapisnika događaja.</translation> +<translation id="3955163004258753966">Pogreška pri pokretanju nadogradnje</translation> <translation id="3955193568934677022">Web-lokacije mogu reproducirati zaštićeni sadržaj (preporučeno)</translation> <translation id="3955896417885489542">Pregledajte opcije Google Playa nakon postavljanja</translation> <translation id="3956702100721821638">Nije moguće pristupiti Google Playu</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Zatvori stranicu}one{Zatvori stranicu}few{Zatvori stranice}other{Zatvori stranica}}</translation> <translation id="4044612648082411741">Unesite zaporku za certifikat</translation> <translation id="404493185430269859">Zadana tražilica</translation> +<translation id="4046013316139505482">Proširenja ne trebaju vidjeti i promijeniti podatke na ovoj web-lokaciji.</translation> <translation id="4046123991198612571">Sljedeća pjesma</translation> <translation id="4050225813016893843">Način autentifikacije</translation> <translation id="4052120076834320548">Jako mali</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Nikad ne prevodi <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Postavljanje roditeljskog nadzora</translation> <translation id="4333854382783149454">PKCS br. 1 SHA-1 s RSA enkripcijom</translation> +<translation id="4336434711095810371">Izbriši sve podatke</translation> <translation id="4336979451636460645">Za mrežne zapisnike pogledajte: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> želi komunicirati s aplikacijom "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Konfiguracija...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Konfigurira se virtualno računalo. To može potrajati nekoliko minuta.</translation> <translation id="4480590691557335796">Chrome može pronaći i ukloniti štetni softver na vašem računalu</translation> <translation id="4481530544597605423">Neupareni uređaji</translation> +<translation id="4488502501195719518">Želite li izbrisati sve podatke?</translation> <translation id="4495419450179050807">Ne prikazuj na ovoj stranici</translation> <translation id="4500114933761911433">Srušio se dodatak <ph name="PLUGIN_NAME" /></translation> <translation id="450099669180426158">Ikona uskličnika</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adrese, telefonski brojevi i ostalo</translation> <translation id="4572659312570518089">Autentifikacija je otkazana prilikom povezivanja s uređajem "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Unesite PIN za sigurnosni ključ</translation> +<translation id="4573515936045019911">Za nadogradnju Linuxa potrebna je mrežna veza. Povežite se s internetom i pokušajte ponovno.</translation> <translation id="457386861538956877">Više...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Ne može se emitirati <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Postavljanje</translation> <translation id="4996978546172906250">Dijeli putem</translation> <translation id="4997086284911172121">Nema internetske veze.</translation> +<translation id="4998430619171209993">Uključeno</translation> <translation id="4998873842614926205">Potvrda promjene</translation> <translation id="5000922062037820727">Blokirano (preporučeno)</translation> <translation id="5008936837313706385">Naziv aktivnosti</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Otvori na cijelom zaslonu</translation> <translation id="514575469079499857">Za određivanje lokacije upotrebljava se vaša IP adresa (zadano)</translation> <translation id="5146995429444047494">Blokirane su obavijesti za <ph name="ORIGIN" /></translation> +<translation id="5147103632304200977">Kada web-lokacija želi pristupiti HID uređajima, prikaži upit (preporučeno)</translation> <translation id="5150254825601720210">Naziv certifikata SSL poslužitelja za Netscape</translation> <translation id="5151354047782775295">Oslobodite prostor na disku ili će se određeni podaci automatski izbrisati.</translation> <translation id="5153234146675181447">Zaboravljanje telefona</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Izvoz zaporki iz Chromea</translation> <translation id="5355099869024327351">Dopustite Asistentu da vam prikazuje obavijesti</translation> <translation id="5355926466126177564">Proširenje "<ph name="EXTENSION_NAME" />" promijenilo stranicu koja se prikazuje prilikom pretraživanja putem višenamjenskog okvira.</translation> +<translation id="5359910752122114278">Jedan rezultat</translation> <translation id="5360150013186312835">Prikaži na alatnoj traci</translation> <translation id="5362741141255528695">Odaberite datoteku s osobnim ključem.</translation> <translation id="5363109466694494651">Powerwash i vraćanje u prethodno stanje</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Dodavanje veze onemogućio je administrator</translation> <translation id="5701080607174488915">Pogreška pri dohvaćanju pravila s poslužitelja.</translation> <translation id="5701381305118179107">Centriraj</translation> +<translation id="5701441174893770082">Nadogradnja Linuxa može značajno isprazniti bateriju. Povežite uređaj na punjač i pokušajte ponovno.</translation> <translation id="5702898740348134351">&Uredi tražilice...</translation> <translation id="570302979952009979">Odaberite naziv za ovaj otisak prsta</translation> <translation id="5704875434923668958">Sinkronizacija s</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB uređaj povezan</translation> <translation id="6028117231645531007">Dodaj otisak prsta</translation> <translation id="6029587122245504742">Najsporije</translation> +<translation id="6032715498678347852">Da biste proširenju omogućili pristup web-lokaciji, kliknite na njega.</translation> <translation id="6032912588568283682">Datotečni sustav</translation> <translation id="6038929619733116134">Blokiraj ako web-lokacija prikazuje ometajuće ili obmanjujuće oglase</translation> <translation id="6039651071822577588">Rječnik mrežnih postavki oštećen je</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Vratite uređaj <ph name="DEVICE_TYPE" /> na zadano radi sigurnosne nadogradnje.</translation> <translation id="6584878029876017575">Microsoftovo cjeloživotno potpisivanje</translation> <translation id="6586451623538375658">Zamijeni primarnu tipku miša</translation> +<translation id="6586604979641883411">Za nadogradnju Linuxa potrebno je najmanje <ph name="REQUIRED_SPACE" /> slobodnog prostora na disku. Oslobodite nešto prostora na svojem uređaju i pokušajte ponovno.</translation> <translation id="6590458744723262880">Preimenovanje mape</translation> <translation id="6592267180249644460">WebRTC zapisnik snimljen je u <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Otisak prsta je spremljen</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL kopiran</translation> <translation id="6758056191028427665">Recite nam koliko ste zadovoljni nama.</translation> <translation id="6759193508432371551">Vraćanje na tvorničke postavke</translation> +<translation id="6762833852331690540">Uključeno</translation> <translation id="6767566652486411142">Odabir drugog jezika…</translation> <translation id="6767639283522617719">Nije uspjelo pridruživanje domeni. Provjerite jesu li postavke ispravne za organizacijsku jedinicu.</translation> <translation id="6769712124046837540">Dodavanje pisača...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Nema ladice za papir</translation> <translation id="693807610556624488">Operacija zapisivanja premašuje maksimalnu duljinu atributa za uređaj: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Imate jedan spremljeni pisač.</translation> +<translation id="6938789263968032501">Osobe</translation> <translation id="6941937518557314510">Prijavite se na <ph name="TOKEN_NAME" /> kako biste se prijavili na <ph name="HOST_NAME" /> sa svojim certifikatom.</translation> <translation id="6943176775188458830">Otkaži ispis</translation> <translation id="6943836128787782965">HTTP GET neuspješan</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Ispis određenih stranica</translation> <translation id="6972180789171089114">Audiozapisi/videozapisi</translation> <translation id="6972553992270299730">Web-lokacija <ph name="ORIGIN" /> ne može otvoriti datoteke u ovoj mapi jer sadrži datoteke sustava</translation> +<translation id="6972629891077993081">HID uređaji</translation> <translation id="6972754398087986839">Početak upotrebe</translation> <translation id="6973611239564315524">Dostupna je nadogradnja na Debian 10 (Buster)</translation> <translation id="6974609594866392343">Izvanmrežni demo način</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Pozadinska stranica: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Nazovite s uređaja <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nije pronađen nijedan HID uređaj</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Otvori sve u &novom prozoru}=1{Otvori u &novom prozoru}one{Otvori sve (#) u &novom prozoru}few{Otvori sve (#) u &novom prozoru}other{Otvori sve (#) u &novom prozoru}}</translation> <translation id="7434509671034404296">Razvojni programer</translation> +<translation id="7434635829372401939">Sinkronizirajte svoje postavke</translation> <translation id="7436921188514130341">O, ne! Došlo je do pogreške prilikom preimenovanja.</translation> <translation id="7438976808740265764">Flash Player više neće biti podržan nakon prosinca 2020.</translation> <translation id="7441736921018636843">Da biste promijenili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – uparen</translation> <translation id="7870730066603611552">Pregledajte opcije sinkronizacije nakon postavljanja</translation> <translation id="7870790288828963061">Nisu pronađene aplikacije kioska s novijom verzijom. Nema ažuriranja. Uklonite USB privjesak.</translation> +<translation id="787268756490971083">Isključeno</translation> <translation id="7874257161694977650">Pozadine za Chrome</translation> <translation id="7877451762676714207">Nepoznata pogreška poslužitelja. Pokušajte ponovo ili se obratite administratoru poslužitelja.</translation> <translation id="7877680364634660272">Obilazak</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Žao nam je, nije bilo moguće postaviti najmanje jednu particiju na vanjskom uređaju za pohranu.</translation> <translation id="7909969815743704077">Preuzeto u anonimnom načinu</translation> <translation id="7910768399700579500">&Nova mapa</translation> +<translation id="7910831464510799808">Uključeno</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Zaporka se promijenila na poslužitelju. Odjavite se pa se ponovo prijavite.</translation> <translation id="7915457674565721553">Povežite se s internetom da biste postavili Roditeljski nadzor</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Stavke koje nisu ovdje navedene također će se po potrebi ukloniti. Više o <a href="<ph name="URL" />">zaštiti od neželjenog softvera</a> potražite u Chromeovoj bijeloj knjizi o privatnosti.</translation> <translation id="935490618240037774">Vaše oznake, povijest, zaporke i ostale postavke sinkronizirat će se s vašim Google računom kako biste ih mogli upotrebljavati na svim svojim uređajima.</translation> <translation id="935854577147268200">Promijenjen je telefon Smart Locka. Unesite zaporku da biste ažurirali Smart Lock. Sljedeći će put vaš telefon otključati vaš uređaj <ph name="DEVICE_TYPE" />. Smart Lock možete isključiti u Postavkama.</translation> +<translation id="93610034168535821">Ukupna pohrana koju upotrebljavaju web-lokacije:</translation> <translation id="936801553271523408">Podaci o dijagnozi sustava</translation> <translation id="93766956588638423">Popravi proširenje</translation> <translation id="938339467127511841">Linux (Beta) pohrana</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Vaš IT administrator onemogućio je Chrome pogodnosti za vaš uređaj.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplikacija}one{Aplikacije}few{Aplikacije}other{Aplikacija}}</translation> <translation id="965211523698323809">Šaljite i primajte tekstne poruke na uređaju <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saznajte više<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Onemogući svim web-lokacijama pristup HID uređajima</translation> <translation id="967624055006145463">Pohranjeni podaci</translation> <translation id="968000525894980488">Uključite Google Play usluge.</translation> <translation id="968037381421390582">Za&lijepi i traži pojam "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 275d0e7..4c3798c 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Leállítás</translation> <translation id="1110155001042129815">Várakozás</translation> <translation id="1112420131909513020">A háttérben futó lap Bluetooth-t használ</translation> +<translation id="1113042067630273625">Ezzel <ph name="TOTAL_USAGE" /> tárolt webhelyadatot töröl.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Gyémánt</translation> <translation id="1114335938027186412">Számítógépe tartalmaz egy platformmegbízhatósági modul (Trusted Platform Module, TPM) nevű biztonsági eszközt, amely számos kritikus biztonsági funkció megvalósítására szolgál Chrome OS-en. További információért keresse fel a Chromebook Súgót: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Programhiba bejegyzése</translation> <translation id="1741314857973421784">Tovább</translation> <translation id="1743570585616704562">Nem sikerült felismerni</translation> +<translation id="1743846852744439013">A rendszer kijelentkezteti az összes webhelyről (a megnyitott lapok esetében is).</translation> <translation id="1743970419083351269">A letöltéssáv bezárása</translation> <translation id="1744060673522309905">Nem sikerült csatlakoztatni az eszközt a domainhez. Győződjön meg róla, hogy nem lépte túl a hozzáadható eszközök számát.</translation> <translation id="1744108098763830590">háttéroldal</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Szolgáltatások</translation> <translation id="18139523105317219">EDI fél neve</translation> <translation id="1815083418640426271">Beillesztés egyszerű szövegként</translation> +<translation id="1815181278146012280">Kérdezzen rá, ha valamelyik webhely hozzá szeretne férni a HID-eszközökhöz</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> további…</translation> <translation id="1816036116994822943">Keresési sebesség a billentyűzeten</translation> <translation id="1817871734039893258">Microsoft - fájlhelyreállítás</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Közepes (ajánlott)</translation> <translation id="2077129598763517140">Hardveres gyorsítás alkalmazása lehetőség szerint</translation> <translation id="2078019350989722914">Figyelmeztetés kilépés előtt (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Ki</translation> <translation id="2079053412993822885">Ha saját tanúsítványainak egyikét törli, azt többé nem használhatja önmaga azonosítására.</translation> <translation id="2079545284768500474">Visszavonás</translation> <translation id="2080070583977670716">További beállítások</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Kérdezzen rá, ha valamelyik webhely szeretné felfedezni a közeli Bluetooth-eszközöket (ajánlott)</translation> <translation id="2292848386125228270">Indítsa el a <ph name="PRODUCT_NAME" /> alkalmazást normál felhasználóként. Ha a fejlesztéshez rootként kell futtatnia, futtassa a --no-sandbox jelző használatával.</translation> <translation id="2294358108254308676">Biztosan telepíti a <ph name="PRODUCT_NAME" />-ot?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> találat</translation> <translation id="2297705863329999812">Nyomtatók keresése</translation> <translation id="2299734369537008228">Csúszka: <ph name="MIN_LABEL" /> és <ph name="MAX_LABEL" /> között</translation> <translation id="2300383962156589922">A(z) <ph name="APP_NAME" /> személyre szabása és beállításai</translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Jelszó mentve az eszközre</translation> <translation id="2485422356828889247">Eltávolítás</translation> <translation id="2487067538648443797">Új könyvjelző hozzáadása</translation> +<translation id="2487268545026948104">Az adatok helyreállításához csatlakozzon az internethez</translation> <translation id="2489829450872380594">Legközelebb új telefonnal oldhatja fel <ph name="DEVICE_TYPE" /> eszköze lezárását. A Smart Lock funkciót a Beállításokban kapcsolhatja ki.</translation> <translation id="2489918096470125693">Mappa &hozzáadása...</translation> <translation id="2490481887078769936">„<ph name="FILE_NAME" />” eltávolítva a listából</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Új alvásidő lett beállítva</translation> <translation id="2544853746127077729">A hálózat elutasította a hitelesítési tanúsítványt</translation> <translation id="2546283357679194313">Cookie-k és webhelyadatok</translation> +<translation id="2547583314137677375">A szinkronizálás kikapcsolása</translation> <translation id="2549985041256363841">Felvétel megkezdése</translation> <translation id="2550212893339833758">Swap memória</translation> <translation id="2550596535588364872">Engedélyezi <ph name="EXTENSION_NAME" /> számára a(z) <ph name="FILE_NAME" /> megnyitását?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Hibás crx-fájl, a kicsomagolás sikertelen.</translation> <translation id="2673135533890720193">A böngészési előzmények olvasása</translation> <translation id="2673589024369449924">Asztali parancsikon létrehozása ehhez a felhasználóhoz</translation> +<translation id="2674764818721168631">Ki</translation> <translation id="2677748264148917807">Lap elhagyása</translation> <translation id="2678063897982469759">Újraengedélyezés</translation> <translation id="268053382412112343">Elő&zmények</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884">A(z) <ph name="ORIGIN" /> csak addig tudja szerkeszteni a(z) <ph name="FOLDERNAME" /> mappa fájljait, amíg Ön be nem zárja ezt a lapot</translation> <translation id="3780827508782506612">Az oldal fordítása megtörtént</translation> <translation id="378312418865624974">Egyedi azonosító olvasása ennél a számítógépnél</translation> +<translation id="3784472333786002075">A cookie-k webhelyek által létrehozott fájlok. Kétféle cookie-t különböztetünk meg: A belső cookie-kat a meglátogatott webhelyek hozzák létre. Az adott webhely a címsávban látható. A harmadik féltől származó cookie-kat más webhelyek hozzák létre. Ezek a webhelyek birtokolják a meglátogatott webhelyeken látható tartalom bizonyos részét (például hirdetéseket vagy képeket).</translation> <translation id="3785308913036335955">Alkalmazások gyorsparancs megjelenítése</translation> <translation id="3785727820640310185">A webhelyhez mentett jelszavak</translation> <translation id="3788401245189148511">A következőkre lehet képes:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">A kártya lejárt</translation> <translation id="3792890930871100565">Nyomtatók leválasztása</translation> <translation id="3793395331556663376">Túl sok fájlrendszer van megnyitva.</translation> +<translation id="379509625511193653">Ki</translation> <translation id="3796648294839530037">Kedvenc hálózatok:</translation> <translation id="3797739167230984533">A(z) <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> kezelését<ph name="END_LINK" /> az Ön szervezete végzi</translation> <translation id="3797900183766075808">&Keresés a(z) <ph name="SEARCH_ENGINE" /> keresőmotorral a következőre: <ph name="SEARCH_TERMS" /></translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">Folyamatban</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Nincsenek mostanában rögzített WebRTC-eseménynaplói.</translation> +<translation id="3955163004258753966">Hiba történt a frissítés megkezdésekor</translation> <translation id="3955193568934677022">Engedélyezi a webhelyek számára a védett tartalmak lejátszását (ajánlott)</translation> <translation id="3955896417885489542">A Google Play beállításainak áttekintése a beállítás után</translation> <translation id="3956702100721821638">Nem sikerült a Google Play elérése</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Oldal elhagyása}other{Oldalak elhagyása}}</translation> <translation id="4044612648082411741">A tanúsítvány jelszavának megadása</translation> <translation id="404493185430269859">Alapértelmezett keresőmotor</translation> +<translation id="4046013316139505482">Ezeknek a bővítményeknek nincs szükségük az ezen a webhelyen található információk megtekintésére és módosítására.</translation> <translation id="4046123991198612571">Következő szám</translation> <translation id="4050225813016893843">Hitelesítési mód</translation> <translation id="4052120076834320548">Legkisebb</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">Soha ne fordítsa le a(z) <ph name="LANGUAGE" /> nyelvű szöveget</translation> <translation id="4332976768901252016">Szülői felügyelet beállítása</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 RSA titkosítással</translation> +<translation id="4336434711095810371">Az összes adat törlése</translation> <translation id="4336979451636460645">A hálózati naplók a következő helyen találhatók: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> kommunikálni szeretne a(z) „<ph name="EXTENSION_NAME" />” alkalmazással.</translation> <translation id="4345587454538109430">Konfigurálás...</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">A virtuális gép konfigurálása folyamatban van. Ez eltarthat néhány percig.</translation> <translation id="4480590691557335796">A Chrome képes a számítógépen lévő kártékony szoftverek megkeresésére és eltávolítására</translation> <translation id="4481530544597605423">Párosítatlan eszközök</translation> +<translation id="4488502501195719518">Törli az összes adatot?</translation> <translation id="4495419450179050807">Ne jelenjen meg ezen az oldalon</translation> <translation id="4500114933761911433">A(z) <ph name="PLUGIN_NAME" /> összeomlott</translation> <translation id="450099669180426158">Felkiáltójel ikon</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">Címek, telefonszámok stb.</translation> <translation id="4572659312570518089">Hitelesítés visszavonva a következőhöz való csatlakozáskor: „<ph name="DEVICE_NAME" />”.</translation> <translation id="4572779512957829735">Adja meg a biztonsági hardverkulcs PIN-kódját</translation> +<translation id="4573515936045019911">A Linux frissítéséhez hálózati kapcsolat szükséges. Csatlakozzon az internethez, majd próbálja újra.</translation> <translation id="457386861538956877">Továbbiak...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Nem lehet átküldeni a következőt: <ph name="HOST_NAME" />.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">Beállítás</translation> <translation id="4996978546172906250">Megosztás itt:</translation> <translation id="4997086284911172121">Nincs internetkapcsolat.</translation> +<translation id="4998430619171209993">Be</translation> <translation id="4998873842614926205">Módosítások jóváhagyása</translation> <translation id="5000922062037820727">Letiltva (ajánlott)</translation> <translation id="5008936837313706385">Tevékenység neve</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">Teljes képernyő</translation> <translation id="514575469079499857">IP-cím használata a tartózkodási hely megállapítására (alapértelmezett)</translation> <translation id="5146995429444047494">A(z) <ph name="ORIGIN" /> értesítései le vannak tiltva</translation> +<translation id="5147103632304200977">Kérdezzen rá, ha valamelyik webhely hozzá szeretne férni a HID-eszközökhöz (ajánlott)</translation> <translation id="5150254825601720210">Netscape tanúsítvány - SSL-szerver neve</translation> <translation id="5151354047782775295">Szabadítson fel tárhelyet, vagy bizonyos adatok automatikusan törlődhetnek</translation> <translation id="5153234146675181447">Telefon elfelejtése</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Jelszavak exportálása a Chrome-ból</translation> <translation id="5355099869024327351">Engedély a Segédnek értesítések megjelenítésére</translation> <translation id="5355926466126177564">A(z) <ph name="EXTENSION_NAME" /> bővítmény módosította, hogy melyik oldal jelenjen meg a cím- és keresősávban indított kereséskor.</translation> +<translation id="5359910752122114278">1 találat</translation> <translation id="5360150013186312835">Megjelenítés az eszköztáron</translation> <translation id="5362741141255528695">Válasszon ki privátkulcs-fájlt.</translation> <translation id="5363109466694494651">Powerwash művelet és visszaállítás</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">A Kapcsolat hozzáadása funkciót letiltotta a rendszergazda</translation> <translation id="5701080607174488915">Hiba a kiszolgálóról származó irányelv fogadásakor.</translation> <translation id="5701381305118179107">Középre</translation> +<translation id="5701441174893770082">A Linux frissítése jelentősen igénybe veheti az akkumulátort. Csatlakoztassa töltőre az eszközét, és próbálja újra.</translation> <translation id="5702898740348134351">&Keresők szerkesztése...</translation> <translation id="570302979952009979">Válassza ki az ujjlenyomat nevét</translation> <translation id="5704875434923668958">Szinkronizálás a következővel:</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-eszköz csatlakoztatva</translation> <translation id="6028117231645531007">Ujjlenyomat hozzáadása</translation> <translation id="6029587122245504742">Leglassabb</translation> +<translation id="6032715498678347852">Ha hozzáférést szeretne adni a kívánt bővítménynek ehhez a webhelyhez, kattintson rá.</translation> <translation id="6032912588568283682">Fájlrendszer</translation> <translation id="6038929619733116134">Letiltás, ha a webhely tolakodó vagy félrevezető hirdetéseket jelenít meg</translation> <translation id="6039651071822577588">A hálózatitulajdonság-szótár formátuma hibás</translation> @@ -3907,6 +3927,7 @@ <translation id="6582080224869403177">A biztonsági frissítés alkalmazásához állítsa vissza <ph name="DEVICE_TYPE" /> eszközét.</translation> <translation id="6584878029876017575">Microsoft élethosszig tartó aláírás</translation> <translation id="6586451623538375658">Az elsődleges egérgomb cseréje</translation> +<translation id="6586604979641883411">A Linux frissítéséhez legalább <ph name="REQUIRED_SPACE" /> szabad lemezterületre van szükség. Szabadítson fel tárhelyet az eszközén, és próbálja újra.</translation> <translation id="6590458744723262880">Mappa átnevezése</translation> <translation id="6592267180249644460">WebRTC napló rögzítésének ideje: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Sikerült az ujjlenyomat rögzítése</translation> @@ -4017,6 +4038,7 @@ <translation id="6757101664402245801">Az URL kimásolva</translation> <translation id="6758056191028427665">Ossza meg velünk, mennyire van megelégedve munkánkkal.</translation> <translation id="6759193508432371551">Gyári beállítások visszaállítása</translation> +<translation id="6762833852331690540">Be</translation> <translation id="6767566652486411142">Másik nyelv választása…</translation> <translation id="6767639283522617719">Nem sikerült csatlakozni a domainhez. Győződjön meg róla, hogy a beállítások megfelelnek a helyi szervezeti egységnek.</translation> <translation id="6769712124046837540">Nyomtató hozzáadása...</translation> @@ -4138,6 +4160,7 @@ <translation id="6935286146439255109">Hiányzik a papírtálca</translation> <translation id="693807610556624488">Az írási művelet meghaladja a következő attribútumának maximális hosszát: „<ph name="DEVICE_NAME" />”.</translation> <translation id="6938386202199793006">1 mentett nyomtató található.</translation> +<translation id="6938789263968032501">Személyek</translation> <translation id="6941937518557314510">Tanúsítvánnyal történő azonosításhoz jelentkezzen be a(z) <ph name="TOKEN_NAME" /> szolgáltatásba a <ph name="HOST_NAME" /> webhelyen.</translation> <translation id="6943176775188458830">A nyomtatás megszakítása</translation> <translation id="6943836128787782965">A HTTP-lekérés nem sikerült</translation> @@ -4162,6 +4185,7 @@ <translation id="6970856801391541997">Adott oldalak nyomtatása</translation> <translation id="6972180789171089114">Hanganyag/videó</translation> <translation id="6972553992270299730">A(z) <ph name="ORIGIN" /> nem nyithatja meg az ebben a mappában lévő fájlokat, mert rendszerfájlok találhatók benne</translation> +<translation id="6972629891077993081">HID-eszközök</translation> <translation id="6972754398087986839">Első lépések</translation> <translation id="6973611239564315524">Frissíthet a következőre: Debian 10 (Buster)</translation> <translation id="6974609594866392343">Offline demó mód</translation> @@ -4486,8 +4510,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Háttéroldal: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Hívás a következőtől: <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nem találhatók HID-eszközök</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Összes meg&nyitása új ablakban}=1{Meg&nyitás új ablakban}other{Összes (#) meg&nyitása új ablakban}}</translation> <translation id="7434509671034404296">Fejlesztőknek</translation> +<translation id="7434635829372401939">Beállítások szinkronizálása</translation> <translation id="7436921188514130341">Ajjaj! Hiba történt az átnevezés közben.</translation> <translation id="7438976808740265764">A böngésző 2020 decembere után már nem támogatja a Flash Player használatát.</translation> <translation id="7441736921018636843">A beállítás módosításához <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />, hogy eltávolíthassa összetett szinkronizálási jelszavát.</translation> @@ -4809,6 +4835,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – párosítva</translation> <translation id="7870730066603611552">Szinkronizálási beállítások ellenőrzése a beállítást követően</translation> <translation id="7870790288828963061">Nem található újabb verziójú kioszkalkalmazás, ezért nincs mit frissíteni. Kérjük, távolítsa el az USB-meghajtót.</translation> +<translation id="787268756490971083">Ki</translation> <translation id="7874257161694977650">Chrome-hátterek</translation> <translation id="7877451762676714207">Ismeretlen szerverhiba. Kérjük, próbálja újra, vagy lépjen kapcsolatba a szerver rendszergazdájával.</translation> <translation id="7877680364634660272">Bemutató</translation> @@ -4836,6 +4863,7 @@ <translation id="7908378463497120834">Sajnos a külső eszközön legalább egy partíció nem csatlakoztatható.</translation> <translation id="7909969815743704077">Letöltve inkognitó módban</translation> <translation id="7910768399700579500">&Új mappa</translation> +<translation id="7910831464510799808">Be</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">A jelszó megváltozott a szerveren. Jelentkezzen ki, majd jelentkezzen be újra.</translation> <translation id="7915457674565721553">A Szülői felügyelet beállításához csatlakozzon az internethez</translation> @@ -5774,6 +5802,7 @@ <translation id="934503638756687833">A listán nem szereplő elemeket szükség szerint el is lehet távolítani. A <a href="<ph name="URL" />">nem kívánt szoftverek elleni védelemről</a> a Chrome adatvédelemmel foglalkozó útmutatójában talál további információt.</translation> <translation id="935490618240037774">A böngésző szinkronizálni fogja a könyvjelzőket, az előzményeket, a jelszavakat és az egyéb beállításokat Google-fiókjával, hogy bármelyik eszközén hozzájuk férjen.</translation> <translation id="935854577147268200">A Smart Lock funkcióval használt telefon megváltozott. Adja meg jelszavát a Smart Lock frissítéséhez. Legközelebb a telefonjával oldhatja fel <ph name="DEVICE_TYPE" /> eszköze lezárását. A Smart Lock funkciót a Beállításokban kapcsolhatja ki.</translation> +<translation id="93610034168535821">Webhelyek által használt teljes tárhely:</translation> <translation id="936801553271523408">Rendszerdiagnosztikai adatok</translation> <translation id="93766956588638423">Bővítmény javítása</translation> <translation id="938339467127511841">Linux (béta)-tárhely</translation> @@ -5795,6 +5824,7 @@ <translation id="964286338916298286">Rendszergazdája letiltotta a Chrome-ajánlatokat az Ön eszközén.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Alkalmazás}other{Alkalmazások}}</translation> <translation id="965211523698323809">SMS-t küldhet és fogadhat <ph name="DEVICE_TYPE" /> eszközével. <ph name="LINK_BEGIN" />További információ.<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Egyetlen webhely sem férhet hozzá a HID-eszközökhöz</translation> <translation id="967624055006145463">Tárolt adatok</translation> <translation id="968000525894980488">Kapcsolja be a Google Play-szolgáltatásokat.</translation> <translation id="968037381421390582">„<ph name="SEARCH_TERMS" />” be&illesztése és keresése</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index a197d65..69c452a9 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stöðva</translation> <translation id="1110155001042129815">Bíða</translation> <translation id="1112420131909513020">Bakgrunnsflipi er að nota Bluetooth</translation> +<translation id="1113042067630273625">Þetta mun hreinsa <ph name="TOTAL_USAGE" /> af vistuðum vefsvæðisgögnum.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Tígull</translation> <translation id="1114335938027186412">Tölvan inniheldur TPM-öryggistæki (Trusted Platform Module) sem notað er til að innleiða fjölda mikilvægra öryggiseiginleika í Chrome OS. Farðu í hjálparmiðstöð Chromebook til að fá frekari upplýsingar: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Skrá villu</translation> <translation id="1741314857973421784">Áfram</translation> <translation id="1743570585616704562">Þekktist ekki</translation> +<translation id="1743846852744439013">Þú verður skráð(ur) út af öllum vefsvæðum, þar á meðal opnum flipum</translation> <translation id="1743970419083351269">Loka niðurhalsstiku</translation> <translation id="1744060673522309905">Ekki tókst að tengja tækið við lénið. Gakktu úr skugga um að þú hafir ekki farið yfir fjölda tækja sem þú getur bætt við.</translation> <translation id="1744108098763830590">bakgrunnssíða</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Þjónusta</translation> <translation id="18139523105317219">Heiti EDI-aðila</translation> <translation id="1815083418640426271">Líma sem ósniðinn texta</translation> +<translation id="1815181278146012280">Spyrja þegar vefsvæði vill fá aðgang að HID-tæki</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> í viðbót...</translation> <translation id="1816036116994822943">Skönnunarhraði lyklaborðs</translation> <translation id="1817871734039893258">Skráaendurheimt Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Miðlungs (ráðlagt)</translation> <translation id="2077129598763517140">Nota vélbúnaðarhröðun þegar hún er í boði</translation> <translation id="2078019350989722914">Viðvörun fyrir lokun (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Slökkt</translation> <translation id="2079053412993822885">Ef þú eyðir einu af þínu eigin vottorðum geturðu ekki notað það lengur til auðkenningar.</translation> <translation id="2079545284768500474">Afturkalla</translation> <translation id="2080070583977670716">Fleiri stillingar</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Spyrja þegar vefsvæði vill finna nálæg Bluetooth-tæki (ráðlagt)</translation> <translation id="2292848386125228270">Ræstu <ph name="PRODUCT_NAME" /> sem venjulegur notandi. Til að keyra sem rótarnotandi í þróunarskyni þarftu að endurkeyra með flagginu --no-sandbox.</translation> <translation id="2294358108254308676">Viltu setja upp <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> niðurstöður</translation> <translation id="2297705863329999812">Leita að prenturum</translation> <translation id="2299734369537008228">Sleði: <ph name="MIN_LABEL" /> til <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Sérsníða og stjórna <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Aðgangsorð vistað í þessu tæki</translation> <translation id="2485422356828889247">Fjarlægja</translation> <translation id="2487067538648443797">Bæta nýju bókamerki við</translation> +<translation id="2487268545026948104">Tengstu internetinu til að endurheimta gögnin þín.</translation> <translation id="2489829450872380594">Næst mun nýr sími taka <ph name="DEVICE_TYPE" /> úr lás. Þú getur slökkt á Smart Lock í stillingunum.</translation> <translation id="2489918096470125693">Bæta við möppu</translation> <translation id="2490481887078769936">Skráin „<ph name="FILE_NAME" />“ var fjarlægð af lista</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Nýr háttatími valinn</translation> <translation id="2544853746127077729">Auðkenningarvottorði hafnað af neti</translation> <translation id="2546283357679194313">Fótspor og gögn vefsvæða</translation> +<translation id="2547583314137677375">Slökkva á samstillingu</translation> <translation id="2549985041256363841">Hefja upptöku</translation> <translation id="2550212893339833758">Skiptiminni</translation> <translation id="2550596535588364872">Viltu leyfa <ph name="EXTENSION_NAME" /> að opna <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Skemmd crx-skrá. Mistókst að afpakka.</translation> <translation id="2673135533890720193">Lesa vafraferilinn þinn</translation> <translation id="2673589024369449924">Búa til skjáborðsfótspor fyrir þennan notanda</translation> +<translation id="2674764818721168631">Slökkt</translation> <translation id="2677748264148917807">Yfirgefa</translation> <translation id="2678063897982469759">Virkja aftur</translation> <translation id="268053382412112343">Ferill</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> getur breytt skrám í <ph name="FOLDERNAME" /> þar til þú lokar þessum flipa</translation> <translation id="3780827508782506612">Þessi síða hefur verið þýdd</translation> <translation id="378312418865624974">Lesa einkvæmt auðkenni fyrir þessa tölvu</translation> +<translation id="3784472333786002075">Fótspor eru skrár sem vefsvæði búa til. Það eru tvær tegundir af fótsporum: Fótspor frá fyrsta aðila eru búin til af vefsvæðinu sem þú heimsækir. Vefsvæðið kemur fram á veffangastikunni. Fótspor frá þriðja aðila eru búin til af öðrum vefsvæðum. Þessi vefsvæði eiga eitthvað af efninu, eins og auglýsingar eða myndir, sem þú sérð á vefsvæðinu sem þú heimsækir.</translation> <translation id="3785308913036335955">Sýna flýtileiðir í forrit</translation> <translation id="3785727820640310185">Vistuð aðgangsorð fyrir þetta vefsvæði</translation> <translation id="3788401245189148511">Þetta kann að:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Kortið þitt er útrunnið</translation> <translation id="3792890930871100565">Aftengja prentara</translation> <translation id="3793395331556663376">Of margar kerfisskrár hafa verið opnaðar.</translation> +<translation id="379509625511193653">Slökkt</translation> <translation id="3796648294839530037">Uppáhaldsnet:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> er stjórnað<ph name="END_LINK" /> af fyrirtækinu þínu</translation> <translation id="3797900183766075808">Leita á <ph name="SEARCH_ENGINE" /> að „<ph name="SEARCH_TERMS" />“</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Stendur yfir</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> <translation id="3954953195017194676">Þú ert ekki með neina nýlega WebRTC-atburðaannála.</translation> +<translation id="3955163004258753966">Villa við að hefja uppfærslu</translation> <translation id="3955193568934677022">Leyfa vefsvæðum að spila varið efni (ráðlagt)</translation> <translation id="3955896417885489542">Fara yfir valkosti Google Play eftir uppsetningu</translation> <translation id="3956702100721821638">Ekki náðist í Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Loka síðu}one{Loka síðum}other{Loka síðum}}</translation> <translation id="4044612648082411741">Sláðu inn aðgangsorð vottorðs</translation> <translation id="404493185430269859">Sjálfgefin leitarvél</translation> +<translation id="4046013316139505482">Þessar viðbætur þurfa ekki að sjá og skiptast á upplýsingum á þessu vefsvæði.</translation> <translation id="4046123991198612571">Næsta lag</translation> <translation id="4050225813016893843">Auðkenningaraðferð</translation> <translation id="4052120076834320548">Örsmátt</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Þýða aldrei <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Setja upp barnalæsingu</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 með RSA-dulkóðun</translation> +<translation id="4336434711095810371">Hreinsa öll gögn</translation> <translation id="4336979451636460645">Netannálar eru á: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> vill eiga samskipti við forritið „<ph name="EXTENSION_NAME" />“</translation> <translation id="4345587454538109430">Stilla...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Stillir sýndarvélina. Þetta getur tekið nokkrar mínútur.</translation> <translation id="4480590691557335796">Chrome getur leitað að skaðlegum hugbúnaði á tölvunni og fjarlægt hann</translation> <translation id="4481530544597605423">Aftengd tæki</translation> +<translation id="4488502501195719518">Hreinsa öll gögn?</translation> <translation id="4495419450179050807">Ekki sýna á þessari síðu</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> hrundi</translation> <translation id="450099669180426158">Upphrópunarmerki</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Heimilisföng, símanúmer og fleira</translation> <translation id="4572659312570518089">Hætt var við auðkenningu á meðan tengst var við „<ph name="DEVICE_NAME" />“.</translation> <translation id="4572779512957829735">Sláðu inn PIN-númer fyrir öryggislykilinn</translation> +<translation id="4573515936045019911">Nettenging er nauðsynleg til að uppfæra Linux. Tengstu internetinu og reyndu aftur.</translation> <translation id="457386861538956877">Meira...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Ekki var hægt að senda <ph name="HOST_NAME" /> út.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Setur upp</translation> <translation id="4996978546172906250">Deila með</translation> <translation id="4997086284911172121">Engin tenging við internetið.</translation> +<translation id="4998430619171209993">Kveikt</translation> <translation id="4998873842614926205">Staðfesta breytingar</translation> <translation id="5000922062037820727">Útilokað (ráðlagt)</translation> <translation id="5008936837313706385">Heiti aðgerðar</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Nota allan skjáinn</translation> <translation id="514575469079499857">Nota IP-töluna þína til að ákvarða staðsetningu (sjálfgefið)</translation> <translation id="5146995429444047494">Lokað er fyrir tilkynningar fyrir <ph name="ORIGIN" /></translation> +<translation id="5147103632304200977">Spyrja þegar vefsvæði vill fá aðgang að HID-tækjum (ráðlagt)</translation> <translation id="5150254825601720210">SSL-þjónsheiti Netscape-vottorðs</translation> <translation id="5151354047782775295">Losaðu um geymslupláss eða veldu gögn sem má eyða sjálfkrafa</translation> <translation id="5153234146675181447">Gleyma síma</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Flytja út aðgangsorð úr Chrome</translation> <translation id="5355099869024327351">Heimila hjálparanum að sýna þér tilkynningar</translation> <translation id="5355926466126177564">Viðbótin „<ph name="EXTENSION_NAME" />“ hefur breytt því hvaða síða birtist þegar þú leitar með veffangastikunni.</translation> +<translation id="5359910752122114278">1 niðurstaða</translation> <translation id="5360150013186312835">Sýna á stiku</translation> <translation id="5362741141255528695">Veldu einkalykilsskrá.</translation> <translation id="5363109466694494651">Djúphreinsa og færa í fyrra horf</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Kerfisstjóri hefur slökkt á möguleikanum á að bæta við tengingu</translation> <translation id="5701080607174488915">Villa við að sækja reglu frá þjóninum.</translation> <translation id="5701381305118179107">Miðjujafna</translation> +<translation id="5701441174893770082">Ef Linux er uppfært kann það að ganga hratt á rafhlöðuna. Tengdu tækið við hleðslutæki og reyndu aftur.</translation> <translation id="5702898740348134351">Br&eyta leitarvélum...</translation> <translation id="570302979952009979">Veldu heiti fyrir þetta fingrafar</translation> <translation id="5704875434923668958">Samstillir við</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-tæki er tengt</translation> <translation id="6028117231645531007">Bæta fingrafari við</translation> <translation id="6029587122245504742">Hægast</translation> +<translation id="6032715498678347852">Smelltu á viðbót til að veita henni aðgang að þessu vefsvæði.</translation> <translation id="6032912588568283682">Skráakerfi</translation> <translation id="6038929619733116134">Loka fyrir ef vefsvæði sýnir ágengar eða villandi auglýsingar</translation> <translation id="6039651071822577588">Villa í eiginleikasafni netkerfis</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Endurstilltu <ph name="DEVICE_TYPE" /> til að auka öryggið.</translation> <translation id="6584878029876017575">Microsoft-lífstíðarundirritun</translation> <translation id="6586451623538375658">Víxla aðalmúsarhnappi</translation> +<translation id="6586604979641883411">Að lágmarki <ph name="REQUIRED_SPACE" /> af geymsluplássi þarf til að uppfæra Linux. Losaðu pláss á tækinu og reyndu aftur.</translation> <translation id="6590458744723262880">Endurnefna möppu</translation> <translation id="6592267180249644460">WebRTC-annáll skráður <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Fingrafarið þitt greindist</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">Vefslóð afrituð</translation> <translation id="6758056191028427665">Láttu okkur vita hvernig við stöndum okkur.</translation> <translation id="6759193508432371551">Núllstilling</translation> +<translation id="6762833852331690540">Kveikt</translation> <translation id="6767566652486411142">Velja annað tungumál...</translation> <translation id="6767639283522617719">Ekki tókst að tengjast léninu. Gakktu úr skugga um að stillingarnar séu réttar fyrir skipulagseininguna.</translation> <translation id="6769712124046837540">Bætir prentara við...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Pappírsbakka vantar</translation> <translation id="693807610556624488">Skrifaðgerð fer fram yfir hámarkslengd eigindarinnar í: „<ph name="DEVICE_NAME" />“.</translation> <translation id="6938386202199793006">Þú ert með 1 vistaðan prentara.</translation> +<translation id="6938789263968032501">Fólk</translation> <translation id="6941937518557314510">Skráðu þig inn á <ph name="TOKEN_NAME" /> til að nota vottorðið þitt til að auðkenna þig fyrir <ph name="HOST_NAME" />.</translation> <translation id="6943176775188458830">Hætta við prentun</translation> <translation id="6943836128787782965">HTTP GET-skipun mistókst</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Prenta tilteknar síður</translation> <translation id="6972180789171089114">Hljóð/myndskeið</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> getur ekki opnað skrár í þessari möppu vegna þess að hún inniheldur kerfisskrár</translation> +<translation id="6972629891077993081">HID-tæki</translation> <translation id="6972754398087986839">Byrja</translation> <translation id="6973611239564315524">Uppfærsla í Debian 10 (Buster) er í boði</translation> <translation id="6974609594866392343">Ónettengd prufustilling</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Bakgrunnssíða: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Símtal frá <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Engin HID-tæki fundust</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Opna allt í &nýjum glugga}=1{Opna í &nýjum glugga}one{Opna allt (#) í &nýjum glugga}other{Opna allt (#) í &nýjum glugga}}</translation> <translation id="7434509671034404296">Forritarar</translation> +<translation id="7434635829372401939">Samstilla stillingar</translation> <translation id="7436921188514130341">Úbbs! Villa kom upp við að breyta heiti.</translation> <translation id="7438976808740265764">Flash Player verður ekki stutt eftir desember 2020.</translation> <translation id="7441736921018636843">Til að breyta þessari stillingu skaltu <ph name="BEGIN_LINK" />endurstilla samstillingu<ph name="END_LINK" /> til að fjarlægja aðgangsorð samstillingar</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – parað</translation> <translation id="7870730066603611552">Fara yfir samstillingarkosti eftir uppsetningu</translation> <translation id="7870790288828963061">Engin sjálfsalaforrit í nýrri útgáfu fundust. Ekkert til að uppfæra. Fjarlægðu USB-lykilinn.</translation> +<translation id="787268756490971083">Slökkt</translation> <translation id="7874257161694977650">Bakgrunnar Chrome</translation> <translation id="7877451762676714207">Óþekkt villa á þjóni. Reyndu aftur eða hafðu samband við stjórnanda netþjónsins.</translation> <translation id="7877680364634660272">Kynning</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Því miður tókst ekki að setja upp að minnsta kosti eina disksneið á ytra geymslutækinu.</translation> <translation id="7909969815743704077">Sótt í huliðsstillingu</translation> <translation id="7910768399700579500">&Ný mappa</translation> +<translation id="7910831464510799808">Kveikt</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Aðgangsorðinu þínu hefur verið breytt á netþjóni. Skráðu þig út og aftur inn.</translation> <translation id="7915457674565721553">Tengstu við internetið til að setja upp barnalæsingu</translation> @@ -5772,6 +5800,7 @@ <translation id="934503638756687833">Atriði sem eru ekki talin upp hér verða einnig fjarlægð ef þörf krefur. Frekari upplýsingar um <a href="<ph name="URL" />">vernd gegn óæskilegum hugbúnaði</a> má finna í skýrslu um persónuvernd í Chrome.</translation> <translation id="935490618240037774">Bókamerkin þín, ferillinn, aðgangsorðin og aðrar stillingar verða samstillt við Google reikninginn þinn svo að þú getir notað þau í öllum tækjum.</translation> <translation id="935854577147268200">Smart Lock síma var breytt. Færðu inn aðgangsorðið þitt til að uppfæra Smart Lock. Næst tekur síminn þinn <ph name="DEVICE_TYPE" /> úr lás. Þú getur slökkt á Smart Lock í stillingunum</translation> +<translation id="93610034168535821">Heildargeymslurými sem vefsvæði nota:</translation> <translation id="936801553271523408">Greiningargögn kerfis</translation> <translation id="93766956588638423">Gera við viðbót</translation> <translation id="938339467127511841">Geymslurými Linux (tilraunaútgáfa)</translation> @@ -5793,6 +5822,7 @@ <translation id="964286338916298286">Kerfisstjórinn þinn hefur gert Chrome Goodies glaðning óvirkan fyrir tækið þitt.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Forrit}one{Forrit}other{Forrit}}</translation> <translation id="965211523698323809">Sendu og taktu á móti SMS-skilaboðum úr <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Frekari upplýsingar<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Ekki veita neinum vefsvæðum aðgang að HID-tækjum</translation> <translation id="967624055006145463">Vistuð gögn</translation> <translation id="968000525894980488">Kveiktu á þjónustu Google Play.</translation> <translation id="968037381421390582">Lí&ma og leita að „<ph name="SEARCH_TERMS" />“</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 9502e597..8cb0de8d 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Interrompi</translation> <translation id="1110155001042129815">Attendi</translation> <translation id="1112420131909513020">Una scheda in secondo piano sta usando il Bluetooth</translation> +<translation id="1113042067630273625">Verranno cancellati <ph name="TOTAL_USAGE" /> di dati dei siti memorizzati.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamante</translation> <translation id="1114335938027186412">Il computer contiene un dispositivo di sicurezza TPM (Trusted Platform Module) che viene utilizzato per implementare in Chrome OS molte funzionalità di sicurezza fondamentali. Per ulteriori informazioni, visita il Centro assistenza Chromebook all'indirizzo: https://support.google.com/chromebook/?p=tpm.</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Segnala bug</translation> <translation id="1741314857973421784">Continua</translation> <translation id="1743570585616704562">Non riconosciuta</translation> +<translation id="1743846852744439013">Uscirai da tutti i siti (schede aperte incluse)</translation> <translation id="1743970419083351269">Chiudi la barra dei download</translation> <translation id="1744060673522309905">Impossibile aggiungere il dispositivo al dominio. Assicurati di non avere superato il numero di dispositivi che puoi aggiungere.</translation> <translation id="1744108098763830590">pagina di sfondo</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Servizi</translation> <translation id="18139523105317219">EDI Party Name</translation> <translation id="1815083418640426271">Incolla come solo testo</translation> +<translation id="1815181278146012280">Chiedi conferma quando un sito vuole accedere ai dispositivi HID</translation> <translation id="181577467034453336">Altre <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">Velocità della scansione della tastiera</translation> <translation id="1817871734039893258">Ripristino file Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Medie (consigliate)</translation> <translation id="2077129598763517140">Usa accelerazione hardware quando disponibile</translation> <translation id="2078019350989722914">Avvisa prima di uscire (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Off</translation> <translation id="2079053412993822885">Se elimini uno dei tuoi certificati, non potrai più utilizzarlo per identificarti.</translation> <translation id="2079545284768500474">Annulla</translation> <translation id="2080070583977670716">Altre impostazioni</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Chiedi conferma quando un sito vuole rilevare i dispositivi Bluetooth nelle vicinanze (opzione consigliata)</translation> <translation id="2292848386125228270">Avvia <ph name="PRODUCT_NAME" /> come utente normale. Per eseguirlo come root a fini di sviluppo, esegui di nuovo il flag --no-sandbox.</translation> <translation id="2294358108254308676">Installare <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> risultati</translation> <translation id="2297705863329999812">Cerca stampanti</translation> <translation id="2299734369537008228">Dispositivo di scorrimento: da <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personalizza e controlla <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">Password salvata su questo dispositivo</translation> <translation id="2485422356828889247">Disinstalla</translation> <translation id="2487067538648443797">Aggiungi nuovo preferito</translation> +<translation id="2487268545026948104">Connettiti a Internet per ripristinare i dati</translation> <translation id="2489829450872380594">La prossima volta potrai usare il tuo telefono per sbloccare il dispositivo <ph name="DEVICE_TYPE" />. Puoi disattivare Smart Lock nelle Impostazioni.</translation> <translation id="2489918096470125693">Aggiungi &cartella...</translation> <translation id="2490481887078769936">"<ph name="FILE_NAME" />" rimosso dall'elenco</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">Nuova ora di dormire impostata</translation> <translation id="2544853746127077729">Certificato di autenticazione rifiutato dalla rete</translation> <translation id="2546283357679194313">Cookie e dati dei siti</translation> +<translation id="2547583314137677375">Disattiva sincronizzazione</translation> <translation id="2549985041256363841">Avvia registrazione</translation> <translation id="2550212893339833758">Memoria sostituita</translation> <translation id="2550596535588364872">Vuoi consentire a <ph name="EXTENSION_NAME" /> di aprire <ph name="FILE_NAME" />?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">File crx non valido, decompressione non riuscita.</translation> <translation id="2673135533890720193">Leggere la cronologia di navigazione</translation> <translation id="2673589024369449924">Crea un collegamento sul desktop per questo utente</translation> +<translation id="2674764818721168631">Off</translation> <translation id="2677748264148917807">Esci</translation> <translation id="2678063897982469759">Riattiva</translation> <translation id="268053382412112343">Cr&onologia</translation> @@ -1997,6 +2005,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> potrà modificare i file nella cartella <ph name="FOLDERNAME" /> fino alla chiusura di questa scheda</translation> <translation id="3780827508782506612">Questa pagina è stata tradotta</translation> <translation id="378312418865624974">Leggere un identificatore univoco di questo computer</translation> +<translation id="3784472333786002075">I cookie sono file creati dai siti web. Esistono due tipi di cookie: i cookie originali, che vengono creati dal sito visitato. Il sito è visualizzato nella barra degli indirizzi. I cookie di terze parti, che vengono creati da altri siti. Questi siti sono proprietari di alcuni dei contenuti, ad esempio annunci o immagini, che vengono visualizzati sul sito web che visiti.</translation> <translation id="3785308913036335955">Mostra scorciatoia app</translation> <translation id="3785727820640310185">Password salvate per questo sito</translation> <translation id="3788401245189148511">Potrebbe:</translation> @@ -2004,6 +2013,7 @@ <translation id="379082410132524484">La tua carta è scaduta</translation> <translation id="3792890930871100565">Scollega stampanti</translation> <translation id="3793395331556663376">Troppi file system aperti.</translation> +<translation id="379509625511193653">Off</translation> <translation id="3796648294839530037">Reti preferite:</translation> <translation id="3797739167230984533">Il tuo <ph name="BEGIN_LINK" />dispositivo <ph name="DEVICE_TYPE" /> è gestito<ph name="END_LINK" /> dalla tua organizzazione</translation> <translation id="3797900183766075808">&Cerca "<ph name="SEARCH_TERMS" />" su <ph name="SEARCH_ENGINE" /></translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">In corso</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> <translation id="3954953195017194676">Nessun log eventi WebRTC acquisito di recente.</translation> +<translation id="3955163004258753966">Errore durante l'avvio dell'upgrade</translation> <translation id="3955193568934677022">Consenti ai siti di riprodurre i contenuti protetti (opzione consigliata)</translation> <translation id="3955896417885489542">Esamina le opzioni di Google Play in seguito alla configurazione</translation> <translation id="3956702100721821638">Impossibile raggiungere Google Play</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Esci dalla pagina}other{Esci dalle pagine}}</translation> <translation id="4044612648082411741">Inserisci la password del certificato</translation> <translation id="404493185430269859">Motore di ricerca predefinito</translation> +<translation id="4046013316139505482">Queste estensioni non devono vedere e modificare le informazioni su questo sito.</translation> <translation id="4046123991198612571">Traccia successiva</translation> <translation id="4050225813016893843">Metodo di autenticazione</translation> <translation id="4052120076834320548">Minuscolo</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">Non tradurre mai <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configura il Controllo genitori</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 con crittografia RSA</translation> +<translation id="4336434711095810371">Cancella tutti i dati</translation> <translation id="4336979451636460645">Per i log di rete, vedi: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> vuole comunicare con l'app "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configura...</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">Configurazione della macchina virtuale. Questa operazione potrebbe richiedere alcuni minuti.</translation> <translation id="4480590691557335796">Chrome può trovare software dannoso sul computer e rimuoverlo</translation> <translation id="4481530544597605423">Dispositivi disaccoppiati</translation> +<translation id="4488502501195719518">Vuoi cancellare tutti i dati?</translation> <translation id="4495419450179050807">Non visualizzare in questa pagina</translation> <translation id="4500114933761911433">Arresto anomalo di <ph name="PLUGIN_NAME" /></translation> <translation id="450099669180426158">Icona punto esclamativo</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">Indirizzi, numeri di telefono e non solo</translation> <translation id="4572659312570518089">Autenticazione annullata durante la connessione a "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Inserisci il codice PIN per il token di sicurezza</translation> +<translation id="4573515936045019911">Per eseguire l'upgrade di Linux è necessaria una connessione di rete. Connettiti a Internet e riprova.</translation> <translation id="457386861538956877">Altro...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Impossibile trasmettere <ph name="HOST_NAME" />.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">Configurazione in corso</translation> <translation id="4996978546172906250">Condividi tramite</translation> <translation id="4997086284911172121">Nessuna connessione Internet.</translation> +<translation id="4998430619171209993">On</translation> <translation id="4998873842614926205">Conferma modifiche</translation> <translation id="5000922062037820727">Bloccata (opzione consigliata)</translation> <translation id="5008936837313706385">Nome attività</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">Passa a schermo intero</translation> <translation id="514575469079499857">Usa l'indirizzo IP per stabilire la posizione (impostazione predefinita)</translation> <translation id="5146995429444047494">Le notifiche per il sito <ph name="ORIGIN" /> sono bloccate</translation> +<translation id="5147103632304200977">Chiedi conferma quando un sito vuole accedere ai dispositivi HID (consigliata)</translation> <translation id="5150254825601720210">Nome server SSL certificato Netscape</translation> <translation id="5151354047782775295">Libera spazio sul disco, altrimenti alcuni dati potrebbero essere eliminati automaticamente</translation> <translation id="5153234146675181447">Elimina telefono</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">Esporta le password da Chrome</translation> <translation id="5355099869024327351">Consenti all'assistente di mostrarti le notifiche</translation> <translation id="5355926466126177564">L'estensione "<ph name="EXTENSION_NAME" />" ha cambiato la pagina mostrata quando esegui ricerche dalla omnibox.</translation> +<translation id="5359910752122114278">1 risultato</translation> <translation id="5360150013186312835">Mostra in barra degli strumenti</translation> <translation id="5362741141255528695">Seleziona il file della chiave privata.</translation> <translation id="5363109466694494651">Esegui Powerwash e ripristina</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">L'opzione "Aggiungi connessione" è stata disabilitata dal tuo amministratore</translation> <translation id="5701080607174488915">Errore durante il recupero delle norme dal server.</translation> <translation id="5701381305118179107">Centra</translation> +<translation id="5701441174893770082">L'upgrade di Linux potrebbe comportare un notevole consumo della batteria. Collega il dispositivo a un caricabatterie e riprova.</translation> <translation id="5702898740348134351">Modifica motori di ric&erca...</translation> <translation id="570302979952009979">Scegli un nome per questa impronta</translation> <translation id="5704875434923668958">Sincronizzazione con</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Dispositivo USB collegato</translation> <translation id="6028117231645531007">Aggiungi impronta</translation> <translation id="6029587122245504742">Minima</translation> +<translation id="6032715498678347852">Per consentire a un'estensione di accedere a questo sito, fai clic sull'estensione.</translation> <translation id="6032912588568283682">File system</translation> <translation id="6038929619733116134">Blocca se il sito mostra annunci invasivi o fuorvianti</translation> <translation id="6039651071822577588">Formato del dizionario delle proprietà di rete non corretto</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">Ripristina il tuo dispositivo <ph name="DEVICE_TYPE" /> per eseguire l'upgrade della sicurezza.</translation> <translation id="6584878029876017575">Firma definitiva Microsoft</translation> <translation id="6586451623538375658">Inverti pulsante principale del mouse</translation> +<translation id="6586604979641883411">Per eseguire l'upgrade di Linux devi avere almeno <ph name="REQUIRED_SPACE" /> di spazio libero su disco. Libera spazio sul dispositivo e riprova.</translation> <translation id="6590458744723262880">Rinomina cartella</translation> <translation id="6592267180249644460">Data/ora acquisizione log WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">La tua impronta è stata acquisita</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">URL copiato</translation> <translation id="6758056191028427665">Comunicaci la tua opinione sul nostro lavoro.</translation> <translation id="6759193508432371551">Ripristino dati di fabbrica</translation> +<translation id="6762833852331690540">On</translation> <translation id="6767566652486411142">Seleziona un'altra lingua…</translation> <translation id="6767639283522617719">Impossibile aggiungere al dominio. Assicurati che le impostazioni dell'unità organizzativa siano corrette.</translation> <translation id="6769712124046837540">Aggiunta della stampante...</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">Vassoio carta mancante</translation> <translation id="693807610556624488">La scrittura supera la lunghezza massima dell'attributo per: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Hai una stampante salvata.</translation> +<translation id="6938789263968032501">Persone</translation> <translation id="6941937518557314510">Accedi a <ph name="TOKEN_NAME" /> per autenticarti su <ph name="HOST_NAME" /> con il tuo certificato.</translation> <translation id="6943176775188458830">Annulla la stampa</translation> <translation id="6943836128787782965">Recupero HTTP non riuscito</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">Stampa pagine specifiche</translation> <translation id="6972180789171089114">Audio/video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> non può aprire i file in questa cartella poiché contiene file di sistema</translation> +<translation id="6972629891077993081">Dispositivi HID</translation> <translation id="6972754398087986839">Inizia</translation> <translation id="6973611239564315524">È disponibile un upgrade a Debian 10 (Buster)</translation> <translation id="6974609594866392343">Modalità demo offline</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Pagina di sfondo: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Chiamata da <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nessun dispositivo HID trovato</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Apri tutti in &un'altra finestra}=1{Apri in &un'altra finestra}other{Apri tutti (#) in &un'altra finestra}}</translation> <translation id="7434509671034404296">Opzioni per sviluppatori</translation> +<translation id="7434635829372401939">Sincronizza le impostazioni</translation> <translation id="7436921188514130341">Uffa! Si è verificato un errore durante la ridenominazione.</translation> <translation id="7438976808740265764">Flash Player non sarà più supportato dopo dicembre 2020.</translation> <translation id="7441736921018636843">Per modificare questa impostazione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /> per rimuovere la passphrase di sincronizzazione.</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />, accoppiato</translation> <translation id="7870730066603611552">Controlla le opzioni di sincronizzazione dopo la configurazione</translation> <translation id="7870790288828963061">Nessuna app kiosk con versione più recente trovata. Non c'è nulla da aggiornare. Rimuovi la chiavetta USB.</translation> +<translation id="787268756490971083">Off</translation> <translation id="7874257161694977650">Sfondi di Chrome</translation> <translation id="7877451762676714207">Errore del server sconosciuto. Riprova o contatta l'amministratore del server.</translation> <translation id="7877680364634660272">Tour</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">Spiacenti, impossibile montare almeno una partizione del dispositivo di archiviazione esterno.</translation> <translation id="7909969815743704077">Scaricato in modalità in incognito</translation> <translation id="7910768399700579500">&Nuova cartella</translation> +<translation id="7910831464510799808">On</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">La password è stata modificata sul server. Esci e accedi nuovamente.</translation> <translation id="7915457674565721553">Connettiti a Internet per configurare il Controllo genitori</translation> @@ -5771,6 +5799,7 @@ <translation id="934503638756687833">Se necessario verranno rimossi anche elementi non elencati qui. Leggi ulteriori informazioni sulla <a href="<ph name="URL" />">protezione da software indesiderato</a> nel whitepaper sulla privacy di Chrome.</translation> <translation id="935490618240037774">I tuoi preferiti, la cronologia, le password e altre impostazioni verranno sincronizzati con il tuo Account Google per consentirti di utilizzarli su tutti i tuoi dispositivi.</translation> <translation id="935854577147268200">Telefono con Smart Lock cambiato. Inserisci la password per aggiornare Smart Lock. La prossima volta potrai usare il tuo telefono per sbloccare il dispositivo <ph name="DEVICE_TYPE" />. Puoi disattivare Smart Lock nelle Impostazioni</translation> +<translation id="93610034168535821">Spazio di archiviazione totale usato dai siti:</translation> <translation id="936801553271523408">Dati diagnostica di sistema</translation> <translation id="93766956588638423">Ripara estensione</translation> <translation id="938339467127511841">Spazio di archiviazione di Linux (beta)</translation> @@ -5792,6 +5821,7 @@ <translation id="964286338916298286">Il tuo amministratore IT ha disattivato i vantaggi offerti da Chrome per il tuo dispositivo.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Applicazione}other{Applicazioni}}</translation> <translation id="965211523698323809">Invia e ricevi SMS da <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Non consentire ai siti di accedere ai dispositivi HID</translation> <translation id="967624055006145463">Dati memorizzati</translation> <translation id="968000525894980488">Attiva Google Play Services.</translation> <translation id="968037381421390582">I&ncolla e cerca "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 897d01e..0501bb4 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&הפסק</translation> <translation id="1110155001042129815">המתן</translation> <translation id="1112420131909513020">כרטיסיית הרקע משתמשת ב-Bluetooth</translation> +<translation id="1113042067630273625">הפעולה הזו תגרום למחיקת נתוני אתר שאוחסנו בנפח של <ph name="TOTAL_USAGE" />.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">יהלום</translation> <translation id="1114335938027186412">המחשב שלך מכיל התקן אבטחה מסוג Trusted Platform Module (TPM), המשמש ליישם תכונות אבטחה קריטיות רבות במערכת ההפעלה של Chrome. היכנס למרכז העזרה של Chromebook כדי לקבל מידע נוסף: https://support.google.com/chromebook/?p=tpm</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">דיווח על באג</translation> <translation id="1741314857973421784">המשך</translation> <translation id="1743570585616704562">לא מזוהה</translation> +<translation id="1743846852744439013">המערכת תוציא אותך מכל האתרים, כולל בכל הכרטיסיות הפתוחות.</translation> <translation id="1743970419083351269">סגירת סרגל ההורדות</translation> <translation id="1744060673522309905">אי אפשר לצרף את המכשיר אל הדומיין. יש לוודא שלא חרגת ממספר המכשירים שניתן להוסיף.</translation> <translation id="1744108098763830590">דף רקע</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">שירותים</translation> <translation id="18139523105317219">שם צד EDI</translation> <translation id="1815083418640426271">הדבק כטקסט רגיל</translation> +<translation id="1815181278146012280">צריך לבקש ממני אישור כשאתר רוצה לגשת להתקני HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> נוספות...</translation> <translation id="1816036116994822943">מהירות הסריקה של המקלדת</translation> <translation id="1817871734039893258">שחזור קבצים של Microsoft</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">בינוני (מומלץ)</translation> <translation id="2077129598763517140">השתמש בהאצת חומרה כשניתן</translation> <translation id="2078019350989722914">הזהר לפני היציאה (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">כבוי</translation> <translation id="2079053412993822885">אם תמחק את אחד מהאישורים שלך, לא תוכל להמשיך ולהשתמש בו כדי לזהות את עצמך.</translation> <translation id="2079545284768500474">ביטול הפעולה</translation> <translation id="2080070583977670716">הגדרות נוספות</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">המערכת מבקשת אישור כשאתר רוצה לאתר התקני Bluetooth קרובים (מומלץ)</translation> <translation id="2292848386125228270">הפעל את <ph name="PRODUCT_NAME" /> כמשתמש רגיל. אם תצטרך להפעיל כבסיס לצורך פיתוח, הפעל מחדש עם הסימון --no-sandbox.</translation> <translation id="2294358108254308676">האם ברצונך להתקין את <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> תוצאות</translation> <translation id="2297705863329999812">חפש מדפסות</translation> <translation id="2299734369537008228">מחוון: <ph name="MIN_LABEL" /> עד <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">התאמה אישית ושליטה ב-<ph name="APP_NAME" /></translation> @@ -1063,6 +1068,7 @@ <translation id="2485005079599453134">הסיסמה נשמרה במכשיר הזה</translation> <translation id="2485422356828889247">הסר התקנה</translation> <translation id="2487067538648443797">הוספת סימניה חדשה</translation> +<translation id="2487268545026948104">כדי לשחזר את הנתונים שלך, יש להתחבר לאינטרנט</translation> <translation id="2489829450872380594">בפעם הבאה, טלפון חדש יבטל את הנעילה של ה-<ph name="DEVICE_TYPE" /> הזה. אפשר להשבית את Smart Lock דרך ההגדרות.</translation> <translation id="2489918096470125693">הוסף &תיקיה...</translation> <translation id="2490481887078769936">'<ph name="FILE_NAME" />' הוסר מהרשימה</translation> @@ -1114,6 +1120,7 @@ <translation id="2541706104884128042">הוגדרה שעת שינה חדשה</translation> <translation id="2544853746127077729">אישור האימות נדחה על ידי הרשת</translation> <translation id="2546283357679194313">נתוני אתר וקובצי Cookie</translation> +<translation id="2547583314137677375">כיבוי הסנכרון</translation> <translation id="2549985041256363841">התחלת צילום סרטון</translation> <translation id="2550212893339833758">זיכרון מוחלף</translation> <translation id="2550596535588364872">האם להתיר ל-<ph name="EXTENSION_NAME" /> לפתוח את <ph name="FILE_NAME" />?</translation> @@ -1207,6 +1214,7 @@ <translation id="2672142220933875349">קובץ crx פגום, פירוק האריזה נכשל.</translation> <translation id="2673135533890720193">לקרוא את היסטוריית הגלישה שלך</translation> <translation id="2673589024369449924">צור קיצור דרך בשולחן העבודה למשתמש זה.</translation> +<translation id="2674764818721168631">כבוי</translation> <translation id="2677748264148917807">יציאה</translation> <translation id="2678063897982469759">הפוך מחדש לפעיל</translation> <translation id="268053382412112343">הי&סטוריה</translation> @@ -1995,6 +2003,7 @@ <translation id="3780211714699334884">ל-<ph name="ORIGIN" /> תהיה הרשאה לערוך קבצים בתיקייה <ph name="FOLDERNAME" /> עד לסגירת הכרטיסייה הזו</translation> <translation id="3780827508782506612">הדף הזה תורגם</translation> <translation id="378312418865624974">קריאה של מזהה ייחודי עבור מחשב זה</translation> +<translation id="3784472333786002075">קובצי cookie הם קבצים שנוצרים על ידי אתרים. יש שני סוגים של קובצי cookie: קובצי cookie של צד ראשון נוצרים על ידי האתר שנכנסת אליו. האתר מופיע בסרגל הכתובות. קובצי cookie של צד שלישי נוצרים על-ידי אתרים אחרים. האתרים האלה הם הבעלים של חלק מהתוכן בדף האינטרנט שנכנסת אליו, כמו מודעות או תמונות.</translation> <translation id="3785308913036335955">הצג קיצור דרך אל יישומים</translation> <translation id="3785727820640310185">סיסמאות שמורות לאתר הזה</translation> <translation id="3788401245189148511">מעוניינים:</translation> @@ -2002,6 +2011,7 @@ <translation id="379082410132524484">תוקף הכרטיס שלך פג</translation> <translation id="3792890930871100565">נתק מדפסות</translation> <translation id="3793395331556663376">נפתחו יותר מדי מערכות קבצים.</translation> +<translation id="379509625511193653">כבוי</translation> <translation id="3796648294839530037">רשתות מועדפות:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> זה מנוהל<ph name="END_LINK" /> על ידי הארגון שלך</translation> <translation id="3797900183766075808">&חפש ב-<ph name="SEARCH_ENGINE" /> אחר '<ph name="SEARCH_TERMS" />'</translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">מתבצע</translation> <translation id="3954469006674843813"><ph name="HEIGHT" />x<ph name="WIDTH" /> (<ph name="REFRESH_RATE" /> הרץ)</translation> <translation id="3954953195017194676">אין לך יומנים של אירועי WebRTC שתועדו לאחרונה.</translation> +<translation id="3955163004258753966">שגיאה בשלבי התחלת השדרוג</translation> <translation id="3955193568934677022">אתרים יוכלו להפעיל תוכן מוגן (מומלץ)</translation> <translation id="3955896417885489542">סקירת האפשרויות של Google Play אחרי ההגדרה</translation> <translation id="3956702100721821638">לא ניתן היה להתחבר אל Google Play</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{יציאה מהדף}two{יציאה מהדפים}many{יציאה מהדפים}other{יציאה מהדפים}}</translation> <translation id="4044612648082411741">הזן את סיסמת האישור</translation> <translation id="404493185430269859">מנוע החיפוש המוגדר כברירת מחדל</translation> +<translation id="4046013316139505482">לתוספים האלה לא דרושה יכולת לראות את המידע באתר הזה ולשנות אותו.</translation> <translation id="4046123991198612571">הרצועה הבאה</translation> <translation id="4050225813016893843">שיטת אימות</translation> <translation id="4052120076834320548">זעיר</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245">איני רוצה לקבל תרגום מ<ph name="LANGUAGE" /> בכלל</translation> <translation id="4332976768901252016">הגדרה של בקרת הורים</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 עם הצפנת RSA</translation> +<translation id="4336434711095810371">ניקוי כל הנתונים</translation> <translation id="4336979451636460645">ליומני רשת, ראה: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> רוצה לתקשר עם האפליקציה "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">הגדר...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">המערכת מגדירה את המכונה הוירטואלית. הפעולה עשויה להימשך כמה דקות.</translation> <translation id="4480590691557335796">Chrome יכול לאתר תוכנות מזיקות במחשב ולהסיר אותן</translation> <translation id="4481530544597605423">מכשירים לא מותאמים</translation> +<translation id="4488502501195719518">לנקות את כל הנתונים?</translation> <translation id="4495419450179050807">אל תציג בדף זה</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> קרס</translation> <translation id="450099669180426158">סמל של סימן קריאה</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">כתובות, מספרי טלפון ועוד</translation> <translation id="4572659312570518089">האימות בוטל בעת ההתחברות ל-"<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">יש להזין את קוד האימות של מפתח האבטחה</translation> +<translation id="4573515936045019911">נדרש חיבור לרשת כדי לשדרג את Linux. יש להתחבר לאינטרנט ולאחר מכן לנסות שוב.</translation> <translation id="457386861538956877">עוד...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">לא ניתן להעביר את <ph name="HOST_NAME" />.</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">בתהליך הגדרה</translation> <translation id="4996978546172906250">שיתוף באמצעות</translation> <translation id="4997086284911172121">אין חיבור לאינטרנט.</translation> +<translation id="4998430619171209993">מופעל</translation> <translation id="4998873842614926205">אשר שינויים</translation> <translation id="5000922062037820727">חסומה (מומלץ)</translation> <translation id="5008936837313706385">שם הפעילות</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">עבור למסך מלא</translation> <translation id="514575469079499857">קביעת המיקום באמצעות כתובת ה-IP (ברירת מחדל)</translation> <translation id="5146995429444047494">התראות של <ph name="ORIGIN" /> נחסמו</translation> +<translation id="5147103632304200977">צריך לבקש ממני אישור כשאתר רוצה לגשת להתקני HID (מומלץ)</translation> <translation id="5150254825601720210">שם שרת SSL של אישור Netscape</translation> <translation id="5151354047782775295">אם לא תפנה שטח אחסון, ייבחרו נתונים למחיקה אוטומטית</translation> <translation id="5153234146675181447">מחיקת הטלפון</translation> @@ -3041,6 +3058,7 @@ <translation id="5353252989841766347">ייצוא סיסמאות מ-Chrome</translation> <translation id="5355099869024327351">מתן הרשאה ל-Assistant להציג הודעות</translation> <translation id="5355926466126177564">התוסף "<ph name="EXTENSION_NAME" />" שינה את הדף שמוצג כשאתה מבצע חיפוש מסרגל הכתובות.</translation> +<translation id="5359910752122114278">תוצאה אחת</translation> <translation id="5360150013186312835">הצג בסרגל הכלים</translation> <translation id="5362741141255528695">בחר קובץ מפתח פרטי.</translation> <translation id="5363109466694494651">בצע Powerwash וחזור לגרסה הקודמת</translation> @@ -3290,6 +3308,7 @@ <translation id="5700836101007545240">מנהל המערכת שלך השבית את היכולת להוסיף חיבור</translation> <translation id="5701080607174488915">שגיאה במהלך אחזור מדיניות מהשרת.</translation> <translation id="5701381305118179107">מרכז</translation> +<translation id="5701441174893770082">השדרוג של Linux עשוי לרוקן את הסוללה בצורה משמעותית. יש לחבר את המכשיר למטען ולנסות שוב.</translation> <translation id="5702898740348134351">&ערוך מנועי חיפוש...</translation> <translation id="570302979952009979">יש לבחור שם בשביל טביעת האצבע הזו</translation> <translation id="5704875434923668958">מסנכרן עם</translation> @@ -3519,6 +3538,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - USB מחובר</translation> <translation id="6028117231645531007">הוספת טביעת אצבע</translation> <translation id="6029587122245504742">הכי איטי</translation> +<translation id="6032715498678347852">כדי להעניק לתוסף גישה לאתר הזה, יש ללחוץ על התוסף.</translation> <translation id="6032912588568283682">מערכת קבצים</translation> <translation id="6038929619733116134">חסימה אם באתר מוצגות מודעות מפריעות או מטעות</translation> <translation id="6039651071822577588">מילון מאפייני הרשת פגום</translation> @@ -3903,6 +3923,7 @@ <translation id="6582080224869403177">יש לאתחל את <ph name="DEVICE_TYPE" /> כדי לשדרג את האבטחה.</translation> <translation id="6584878029876017575">חתימה לכל החיים של Microsoft</translation> <translation id="6586451623538375658">החלף את לחצן העכבר העיקרי</translation> +<translation id="6586604979641883411">כדי לשדרג את Linux, נדרש מקום פנוי בכונן בנפח של לפחות <ph name="REQUIRED_SPACE" />. יש לפנות מקום במכשיר ולאחר מכן לנסות שוב.</translation> <translation id="6590458744723262880">שינוי שם התיקייה</translation> <translation id="6592267180249644460">יומני WebRTC תועדו בתאריך <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">טביעת האצבע שלך תועדה</translation> @@ -4013,6 +4034,7 @@ <translation id="6757101664402245801">כתובת האתר הועתקה</translation> <translation id="6758056191028427665">נשמח לקבל ממך משוב.</translation> <translation id="6759193508432371551">איפוס להגדרות היצרן</translation> +<translation id="6762833852331690540">מופעל</translation> <translation id="6767566652486411142">בחירת שפה אחרת...</translation> <translation id="6767639283522617719">לא ניתן להצטרף לדומיין. יש לוודא שההגדרות של היחידה הארגונית נכונות.</translation> <translation id="6769712124046837540">הוספת מדפסת...</translation> @@ -4134,6 +4156,7 @@ <translation id="6935286146439255109">חסר מגש נייר</translation> <translation id="693807610556624488">פעולת הכתיבה חורגת מהאורך המרבי של התכונה במכשיר: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">שמרת מדפסת אחת.</translation> +<translation id="6938789263968032501">אנשים</translation> <translation id="6941937518557314510">יש להיכנס אל <ph name="TOKEN_NAME" /> כדי לבצע אימות בפני <ph name="HOST_NAME" /> באמצעות האישור שלך.</translation> <translation id="6943176775188458830">בטל הדפסה</translation> <translation id="6943836128787782965">פעולת get של HTTP נכשלה</translation> @@ -4158,6 +4181,7 @@ <translation id="6970856801391541997">הדפסת דפים ספציפיים</translation> <translation id="6972180789171089114">אודיו/וידאו</translation> <translation id="6972553992270299730">ל-<ph name="ORIGIN" /> אין הרשאה לפתוח קבצים בתיקייה הזו כי היא מכילה קובצי מערכת</translation> +<translation id="6972629891077993081">התקני HID</translation> <translation id="6972754398087986839">תחילת העבודה</translation> <translation id="6973611239564315524">קיים עדכון זמין ל-Debian 10 (Buster)</translation> <translation id="6974609594866392343">מצב הדגמה לא מקוון</translation> @@ -4482,8 +4506,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">דף רקע: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">שיחה מ-<ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">לא נמצאו התקני HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{פתח הכל ב&חלון חדש}=1{פתח ב&חלון חדש}two{פתח הכל (2) ב&חלון חדש}many{פתח הכל (#) ב&חלון חדש}other{פתח הכל (#) ב&חלון חדש}}</translation> <translation id="7434509671034404296">למפתחים</translation> +<translation id="7434635829372401939">סנכרון ההגדרות שלך</translation> <translation id="7436921188514130341">אופס: הייתה שגיאה במהלך שינוי השם.</translation> <translation id="7438976808740265764">התמיכה ב-Flash Player תופסק אחרי דצמבר 2020.</translation> <translation id="7441736921018636843">כדי לשנות את ההגדרה הזאת, צריך להסיר את ביטוי הסיסמה של הסנכרון על ידי <ph name="BEGIN_LINK" />איפוס הסנכרון<ph name="END_LINK" /></translation> @@ -4804,6 +4830,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - מותאם</translation> <translation id="7870730066603611552">בדיקת אפשרויות הסינכרון אחרי ההגדרה</translation> <translation id="7870790288828963061">לא נמצאו אפליקציות קיוסק בגרסה חדשה יותר. אין צורך בעדכון. הסר את הדיסק און קי.</translation> +<translation id="787268756490971083">כבוי</translation> <translation id="7874257161694977650">רקעים של Chrome</translation> <translation id="7877451762676714207">שגיאת שרת לא ידועה. נסה שוב או פנה למנהל השרת.</translation> <translation id="7877680364634660272">סיור</translation> @@ -4831,6 +4858,7 @@ <translation id="7908378463497120834">מצטערים, לא ניתן להעלות לפחות מחיצה אחת במכשיר האחסון החיצוני שלך.</translation> <translation id="7909969815743704077">ההורדה בוצעה במצב גלישה בסתר</translation> <translation id="7910768399700579500">&תיקייה חדשה</translation> +<translation id="7910831464510799808">מופעל</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">הסיסמה שלך שונתה בשרת. צא ולאחר מכן היכנס מחדש.</translation> <translation id="7915457674565721553">יש להתחבר לאינטרנט כדי להגדיר בקרת הורים</translation> @@ -5771,6 +5799,7 @@ <translation id="934503638756687833">במקרה הצורך ייתכן שיוסרו גם פריטים שלא מופיעים כאן. מידע נוסף על <a href="<ph name="URL" />">הגנה מפני תוכנות לא רצויות</a> זמין בסקירה הטכנית לגבי פרטיות ב-Chrome.</translation> <translation id="935490618240037774">הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות יסונכרנו עם חשבון Google, כך שתוכל להשתמש בהן בכל המכשירים שלך.</translation> <translation id="935854577147268200">הטלפון שהוגדר ב-Smart Lock השתנה. עליך להזין את הסיסמה כדי לעדכן את Smart Lock. בפעם הבאה, הטלפון יבטל את הנעילה של <ph name="DEVICE_TYPE" />. אפשר להשבית את Smart Lock בהגדרות.</translation> +<translation id="93610034168535821">נפח האחסון הכולל שמנוצל על ידי אתרים:</translation> <translation id="936801553271523408">נתוני אבחון של מערכת</translation> <translation id="93766956588638423">תיקון התוסף</translation> <translation id="938339467127511841">אחסון Linux (בטא)</translation> @@ -5792,6 +5821,7 @@ <translation id="964286338916298286">מנהל המערכת שלך השבית את ההטבות של Chrome בשביל המכשיר שלך.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{אפליקציה}two{אפליקציות}many{אפליקציות}other{אפליקציות}}</translation> <translation id="965211523698323809">אפשר לשלוח ולקבל הודעות טקסט דרך ה-<ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />מידע נוסף<ph name="LINK_END" /></translation> +<translation id="967398046773905967">לאף אתר אין גישה להתקני HID</translation> <translation id="967624055006145463">נפח הנתונים</translation> <translation id="968000525894980488">מפעילים את שירותי Google Play.</translation> <translation id="968037381421390582">הד&בקה וחיפוש של "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index a1fbc7d..e2380055 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -4108,7 +4108,7 @@ <translation id="6892812721183419409"><ph name="USER" /> としてリンクを開く</translation> <translation id="6895032998810961280">このクリーンアップ中にパソコン上で見つかった有害なソフトウェア、システム設定、プロセスについて詳細なレポートを Google に送信する</translation> <translation id="6896758677409633944">コピー</translation> -<translation id="6897363604023044284">データを削除するサイトを選択</translation> +<translation id="6897363604023044284">削除するサイトを選択</translation> <translation id="6898440773573063262">このデバイスでキオスク アプリケーションが自動起動するように設定できるようになりました。</translation> <translation id="6898699227549475383">組織(O)</translation> <translation id="6900284862687837908">バックグラウンド アプリ: <ph name="BACKGROUND_APP_URL" /></translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index 428bcb9..ec320551 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">შ&ეწყვეტა</translation> <translation id="1110155001042129815">დაელოდეთ</translation> <translation id="1112420131909513020">ფონური ჩანართი იყენებს Bluetooth-კავშირს</translation> +<translation id="1113042067630273625">ამ მოქმედებით გასუფთავდება საიტის შენახული მონაცემების <ph name="TOTAL_USAGE" />.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">ბრილიანტი</translation> <translation id="1114335938027186412">თქვენი კომპიუტერი შეიცავს სანდო პლატფორმის მოდულის (TPM) უსაფრთხოების მოწყობილობას, რომელიც Chrome OS-ში უსაფრთხოებასთან დაკავშირებული მრავალი კრიტიკული ფუნქციის შესასრულებლად გამოიყენება. მეტის გასაგებად, მოინახულეთ Chromebook-ის დახმარების ცენტრი: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">ფაილის შეცდომა</translation> <translation id="1741314857973421784">გაგრძელება</translation> <translation id="1743570585616704562">არ არის ამოცნობილი</translation> +<translation id="1743846852744439013">თქვენ გამოხვალთ ყველა საიტებიდან, მათ შორის, გახსნილ ჩანართებზეც.</translation> <translation id="1743970419083351269">ჩამოტვირთვების ზოლის დახურვა</translation> <translation id="1744060673522309905">მოწყობილობის გაწევრიანება დომენში ვერ მოხერხდა. შეამოწმეთ, ხომ არ გადააჭარბეთ დასამატებელი მოწყობილობების ლიმიტს.</translation> <translation id="1744108098763830590">ფონური გვერდი</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">სერვისები</translation> <translation id="18139523105317219">EDI მხარის სახელი</translation> <translation id="1815083418640426271">ჩასმა ჩვეულებრივი ტექსტის სახით</translation> +<translation id="1815181278146012280">საიტების მიერ HID მოწყობილობებზე წვდომის მოთხოვნა</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> სხვა…</translation> <translation id="1816036116994822943">კლავიატურის სკანირების სიჩქარე</translation> <translation id="1817871734039893258">Microsoft ფაილის აღდგენა</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">საშუალო (რეკომენდებული)</translation> <translation id="2077129598763517140">აპარატურის დაჩქარების გამოყენება, როცა შესაძლებელია</translation> <translation id="2078019350989722914">გამაფრთხილე გამოსვლამდე (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">გამორთული</translation> <translation id="2079053412993822885">თუ წაშლით რომელიმე საკუთარ სერტიფიკატს, ვეღარ შეძლებთ მის გამოყენებას საკუთარი თავის იდენტიფიცირებისთვის.</translation> <translation id="2079545284768500474">მოქმედების გაუქმება</translation> <translation id="2080070583977670716">დამატებითი პარამეტრები</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">საიტების მიერ ახლომდებარე Bluetooth მოწყობილობების აღმოჩენის მოთხოვნა (რეკომენდებული)</translation> <translation id="2292848386125228270">გთხოვთ, გაუშვათ <ph name="PRODUCT_NAME" /> ჩვეულებრივი მომხმარებლის სახელით. თუ დეველოპერული მიზნებისთვის მისი გაშვება root-ის სახელით გსურთ, ხელახლა გაშვებისას გამოიყენეთ ალამი --no-sandbox.</translation> <translation id="2294358108254308676">გსურთ დააინსტალიროთ <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> შედეგი</translation> <translation id="2297705863329999812">პრინტერების ძიება</translation> <translation id="2299734369537008228">სლაიდერი: <ph name="MIN_LABEL" />-დან <ph name="MAX_LABEL" />-მდე</translation> <translation id="2300383962156589922">მოირგეთ და გააკონტროლეთ <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">პაროლი შენახულია ამ მოწყობილობაზე</translation> <translation id="2485422356828889247">დეინსტალაცია</translation> <translation id="2487067538648443797">ახალი სანიშნის დამატება</translation> +<translation id="2487268545026948104">მონაცემების აღსადგენად დაუკავშირდით ინტერნეტს</translation> <translation id="2489829450872380594">შემდეგში ეს <ph name="DEVICE_TYPE" /> განიბლოკება ახალი ტელეფონის მეშვეობით. Smart Lock-ის გამორთვა შესაძლებელია პარამეტრებიდან.</translation> <translation id="2489918096470125693">&საქაღალდის დამატება...</translation> <translation id="2490481887078769936">„<ph name="FILE_NAME" />“ ამოიშალა სიიდან</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">დაყენებულია ძილის ახალი დრო</translation> <translation id="2544853746127077729">ავტორიზაციის სერთიფიკატი უარყოფილი იყო ქსელის მიერ</translation> <translation id="2546283357679194313">ქუქი-ფაილები და საიტის მონაცემები</translation> +<translation id="2547583314137677375">სინქრონიზაციის გამორთვა</translation> <translation id="2549985041256363841">ჩაწერის დაწყება</translation> <translation id="2550212893339833758">გადატუმბული მეხსიერება</translation> <translation id="2550596535588364872">გსურთ <ph name="EXTENSION_NAME" />-ისთვის <ph name="FILE_NAME" />-ის გახსნის დაშვება?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">crx ფაილი დაზიანებულია, ამოღება ვერ მოხერხდა.</translation> <translation id="2673135533890720193">დათვალიერების ისტორიის წაკითხვა</translation> <translation id="2673589024369449924">მომხმარებლისთვის სამუშაო მაგიდის მალსახმობის შექმნა</translation> +<translation id="2674764818721168631">გამორთული</translation> <translation id="2677748264148917807">დატოვება</translation> <translation id="2678063897982469759">ხელახლა ჩართვა</translation> <translation id="268053382412112343">ი&სტორია</translation> @@ -1997,6 +2005,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> შეძლებს „<ph name="FOLDERNAME" />“-ში ფაილების რედაქტირებას ამ ჩანართის დახურვამდე</translation> <translation id="3780827508782506612">ეს გვერდი ითარგმნა</translation> <translation id="378312418865624974">ამ კომპიუტერის უნიკალური იდენტიფიკატორის წაკითხვა</translation> +<translation id="3784472333786002075">ქუქი-ჩანაწერები ვებსაიტების მიერ შექმნილი ფაილებია. არსებობს ქუქი-ჩანაწერების ორი ტიპი: პირველი მხარის ქუქი-ჩანაწერები იქმნება თქვენ მიერ მონახულებული საიტის მიერ. საიტი ნაჩვენებია მისამართთა ზოლში. მესამე მხარის ქუქი-ჩანაწერები იქმნება სხვა საიტების მიერ. აღნიშნულ საიტებს ეკუთვნის თქვენ მიერ მონახულებულ ვებსაიტზე თქვენთვის ხილული გარკვეული კონტენტი (როგორიცაა რეკლამა ან სურათები).</translation> <translation id="3785308913036335955">პროგრამების მალსახმობის ჩვენება</translation> <translation id="3785727820640310185">ამ საიტისთვის შენახული პაროლები</translation> <translation id="3788401245189148511">შესაძლებლობები:</translation> @@ -2004,6 +2013,7 @@ <translation id="379082410132524484">თქვენი ბარათი ვადაგასულია</translation> <translation id="3792890930871100565">გამორთეთ პრინტერები</translation> <translation id="3793395331556663376">გახსნილია ფაილების ზედმეტად ბევრი სისტემა.</translation> +<translation id="379509625511193653">გამორთული</translation> <translation id="3796648294839530037">რჩეული ქსელები:</translation> <translation id="3797739167230984533">თქვენი <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> იმართება<ph name="END_LINK" /> თქვენი ორგანიზაციის მიერ</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />-ში „<ph name="SEARCH_TERMS" />“-ის &მოძიება</translation> @@ -2135,6 +2145,7 @@ <translation id="3954354850384043518">მიმდინარეობს</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ჰერცი)</translation> <translation id="3954953195017194676">ახლახან აღბეჭდილი WebRTC მოვლენათა ჟურნალები არ არის.</translation> +<translation id="3955163004258753966">შეცდომა ახალ ვერსიაზე გადასვლისას</translation> <translation id="3955193568934677022">ვებსაიტებისთვის დაცული კონტენტის დაკვრის დაშვება (რეკომენდებული)</translation> <translation id="3955896417885489542">დაყენების შემდეგ Google Play ვარიანტების გადახედვა</translation> <translation id="3956702100721821638">Google Play-თან დაკავშირება ვერ მოხერხდა</translation> @@ -2195,6 +2206,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{გვერდიდან გასვლა}other{გვერდებიდან გასვლა}}</translation> <translation id="4044612648082411741">შეიყვანეთ თქვენი სერტიფიკატის პაროლი</translation> <translation id="404493185430269859">ნაგულისხმევი საძიებო სისტემა</translation> +<translation id="4046013316139505482">ამ გაფართოებებს არ სჭირდება ამ საიტზე ინფორმაციის ნახვა და შეცვლა.</translation> <translation id="4046123991198612571">შემდეგი ჩანაწერი</translation> <translation id="4050225813016893843">ავტორიზაციის მეთოდი</translation> <translation id="4052120076834320548">ძალიან პატარა</translation> @@ -2374,6 +2386,7 @@ <translation id="4330387663455830245">არასოდეს ითარგმნოს <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">მშობლის მიერ კონტროლის დაყენება</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 ერთად RSA დაშიფვრით</translation> +<translation id="4336434711095810371">ყველა მონაცემის გასუფთავება</translation> <translation id="4336979451636460645">ქსელის ჟურნალებისათვის, იხილეთ: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> სურს კომუნიკაცია აპლიკაციასთან „<ph name="EXTENSION_NAME" />“</translation> <translation id="4345587454538109430">კონფიგურაცია…</translation> @@ -2474,6 +2487,7 @@ <translation id="4479877282574735775">მიმდინარეობს ვირტუალური მოწყობილობის კონფიგურაცია. ამას შეიძლება რამდენიმე წუთი დასჭირდეს.</translation> <translation id="4480590691557335796">Chrome-ს შეუძლია თქვენს კომპიუტერზე საზიანო პროგრამული უზრუნველყოფის პოვნა და ამოშლა</translation> <translation id="4481530544597605423">დაწყვილებაგაუქმებული მოწყობილობები</translation> +<translation id="4488502501195719518">გასუფთავდეს ყველა მონაცემი?</translation> <translation id="4495419450179050807">არ აჩვენო ამ გვერდზე</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ავარიულად გაითიშა</translation> <translation id="450099669180426158">ძახილის ნიშნის ხატულა</translation> @@ -2534,6 +2548,7 @@ <translation id="4570387585180509432">მისამართები, ტელეფონის ნომრები და სხვა</translation> <translation id="4572659312570518089">ავთენტიფიკაცია გაუქმდა „<ph name="DEVICE_NAME" />“-თან დაკავშირების დროს.</translation> <translation id="4572779512957829735">შეიყვანეთ PIN-კოდი თქვენი უსაფრთხოების გასაღებისთვის</translation> +<translation id="4573515936045019911">Linux-ის ახალ ვერსიაზე გადასვლისთვის საჭიროა კავშირი ქსელთან. დაუკავშირდით ინტერნეტს და ცადეთ ხელახლა.</translation> <translation id="457386861538956877">მეტი…</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> ვერ ტრანსლირდება.</translation> @@ -2813,6 +2828,7 @@ <translation id="4994754230098574403">მიმდინარეობს დაყენება</translation> <translation id="4996978546172906250">გაზიარების პროგრამა</translation> <translation id="4997086284911172121">ინტერნეტთან კავშირი არ არის.</translation> +<translation id="4998430619171209993">ჩართული</translation> <translation id="4998873842614926205">დაადასტურეთ ცვლილებები</translation> <translation id="5000922062037820727">დაბლოკილი (რეკომენდებულია)</translation> <translation id="5008936837313706385">აქტივობის სახელი</translation> @@ -2909,6 +2925,7 @@ <translation id="5143712164865402236">სრულეკრანიან რეჟიმში შესვლა</translation> <translation id="514575469079499857">მდებარეობის დასადგენად თქვენი IP მისამართის გამოყენება</translation> <translation id="5146995429444047494">შეტყობინებები დაბლოკილია <ph name="ORIGIN" />-ისთვის</translation> +<translation id="5147103632304200977">საიტების მიერ HID მოწყობილობებზე წვდომის მოთხოვნა (რეკომენდებულია)</translation> <translation id="5150254825601720210">Netscape სერტიფიკატი SSL სერვერის სახელი</translation> <translation id="5151354047782775295">გამოათავისუფლეთ მეხსიერება დისკზე. წინააღმდეგ შემთხვევაში, ზოგიერთი მონაცემი ავტომატურად წაიშლება</translation> <translation id="5153234146675181447">ტელეფონის დავიწყება</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">პაროლების ექსპორტი Chrome-იდან</translation> <translation id="5355099869024327351">ასისტენტისთვის შეტყობინებების ჩვენების დაშვება</translation> <translation id="5355926466126177564">გაფართოებამ „<ph name="EXTENSION_NAME" />“ თქვენ მიერ Omnibox-ში ძიებისას ნაჩვენები გვერდი შეცვალა.</translation> +<translation id="5359910752122114278">1 შედეგი</translation> <translation id="5360150013186312835">ხელსაწყოთა ზოლში ჩვენება</translation> <translation id="5362741141255528695">აირჩიეთ პირადი გასაღების ფაილი.</translation> <translation id="5363109466694494651">Powerwash-ის განხორციელება და წინა ვერსიის დაბრუნება</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">კავშირის დამატება გათიშულია თქვენი ადმინისტრატორის მიერ</translation> <translation id="5701080607174488915">სერვერიდან წესების მიღებისას წარმოიშვა შეცდომა.</translation> <translation id="5701381305118179107">ცენტრირება</translation> +<translation id="5701441174893770082">Linux-ის ახალ ვერსიაზე გადასვლისას ბატარეა შეიძლება საგრძნობლად დაიცალოს. მიაერთეთ მოწყობილობა დამტენს და ცადეთ ხელახლა.</translation> <translation id="5702898740348134351">ძიების სისტემების რ&ედაქტირება…</translation> <translation id="570302979952009979">აირჩიეთ სახელი თითის ამ ანაბეჭდისთვის</translation> <translation id="5704875434923668958">სინქრონიზებულია შემდეგთან:</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> — დაკავშირებულია USB მოწყობილობა</translation> <translation id="6028117231645531007">თითის ანაბეჭდის დამატება</translation> <translation id="6029587122245504742">ყველაზე ნელი</translation> +<translation id="6032715498678347852">გაფართოებისთვის ამ საიტზე წვდომის მისანიჭებლად დააწკაპუნეთ მასზე.</translation> <translation id="6032912588568283682">ფაილური სისტემა</translation> <translation id="6038929619733116134">დაბლოკვა, თუ საიტი აჩვენებს მომაბეზრებელ ან შეცდომაში შემყვან რეკლამას</translation> <translation id="6039651071822577588">ქსელის თვისების ლექსიკონი დეფორმირებულია</translation> @@ -3905,6 +3925,7 @@ <translation id="6582080224869403177">უსაფრთხოების განახლებისთვის საჭიროა, გადააყენოთ თქვენი <ph name="DEVICE_TYPE" />.</translation> <translation id="6584878029876017575">Microsoft სამუდამო ხელმოწერა</translation> <translation id="6586451623538375658">ძირითადი მაუსის ღილაკის შეცვლა</translation> +<translation id="6586604979641883411">Linux-ის ახალ ვერსიაზე გადასვლისთვის დისკზე საჭიროა მინიმუმ <ph name="REQUIRED_SPACE" /> თავისუფალი მეხსიერება. გაათავისუფლეთ მეხსიერება თქვენს მოწყობილობაზე და ცადეთ ხელახლა.</translation> <translation id="6590458744723262880">საქაღალდის გადარქმევა</translation> <translation id="6592267180249644460">WebRTC ჟურნალი გადაღებულია <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">თქვენი თითის ანაბეჭდი აღბეჭდილია</translation> @@ -4015,6 +4036,7 @@ <translation id="6757101664402245801">URL დაკოპირდა</translation> <translation id="6758056191028427665">შეგვატყობინეთ, როგორ ვმუშაობთ.</translation> <translation id="6759193508432371551">ქარხნული პარამეტრების დაბრუნება</translation> +<translation id="6762833852331690540">ჩართული</translation> <translation id="6767566652486411142">სხვა ენის არჩევა...</translation> <translation id="6767639283522617719">დომენში გაწევრიანება ვერ ხერხდება. დარწმუნდით, რომ ორგანიზაციული ერთეულის პარამეტრები სწორია.</translation> <translation id="6769712124046837540">პრინტერის დამატება…</translation> @@ -4136,6 +4158,7 @@ <translation id="6935286146439255109">აკლია თაბახი</translation> <translation id="693807610556624488">„<ph name="DEVICE_NAME" />“-ზე ჩაწერის ოპერაცია აღემატება ატრიბუტის მაქსიმალურ სიგრძეს.</translation> <translation id="6938386202199793006">თქვენ გაქვთ 1 შენახული პრინტერი.</translation> +<translation id="6938789263968032501">ადამიანები</translation> <translation id="6941937518557314510">გთხოვთ შეხვიდეთ <ph name="TOKEN_NAME" /> ავთენტიფიკაციისთვის <ph name="HOST_NAME" /> თქვენი სერთიფიკატით.</translation> <translation id="6943176775188458830">ბეჭდვის გაუქმება</translation> <translation id="6943836128787782965">HTTP-ს შეცდომა</translation> @@ -4160,6 +4183,7 @@ <translation id="6970856801391541997">კონკრეტული გვერდების ბეჭდვა</translation> <translation id="6972180789171089114">აუდიო/ვიდეო</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> ვერ გახსნის ფაილებს ამ საქაღალდეში, რადგან ის შეიცავს სისტემის ფაილებს</translation> +<translation id="6972629891077993081">HID მოწყობილობები</translation> <translation id="6972754398087986839">დაწყება</translation> <translation id="6973611239564315524">ხელმისაწვდომია Debian 10-ზე (Buster) განახლება</translation> <translation id="6974609594866392343">ხაზგარეშე დემო-რეჟიმი</translation> @@ -4484,8 +4508,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">ფონის გვერდი: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">ზარი <ph name="DEVICE_NAME" />-ისგან</translation> +<translation id="7431719494109538750">HID მოწყობილობები ვერ მოიძებნა</translation> <translation id="7433692219247014412">{COUNT,plural, =0{ყველას ა&ხალ ფანჯარაში გახსნა}=1{ა&ხალ ფანჯარაში გახსნა}other{#-ვეს ა&ხალ ფანჯარაში გახსნა}}</translation> <translation id="7434509671034404296">შემმუშავებელი</translation> +<translation id="7434635829372401939">თქვენი პარამეტრების სინქრონიზაცია</translation> <translation id="7436921188514130341">სამწუხაროდ, გადარქმევა ვერ მოხერხდა შეცდომის გამო.</translation> <translation id="7438976808740265764">Flash Player აღარ იქნება მხარდაჭერილი 2020 წლის დეკემბრის შემდეგ.</translation> <translation id="7441736921018636843">ამ პარამეტრის შესაცვლელად <ph name="BEGIN_LINK" />გადააყენეთ სინქრონიზაცია<ph name="END_LINK" />, რომ ამოშალოთ სინქრონიზაციის საიდუმლო ფრაზა</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> — დაწყვილებული</translation> <translation id="7870730066603611552">დაყენების შემდეგ სინქრონიზაციის ვარიანტების გადახედვა</translation> <translation id="7870790288828963061">Kiosk აპები უფრო ახალი ვერსიით ვერ მოიძებნა. განსაახლებელი არაფერია. ამოიღეთ USB დისკი.</translation> +<translation id="787268756490971083">გამორთული</translation> <translation id="7874257161694977650">Chrome-ის ფონები</translation> <translation id="7877451762676714207">სერვერის უცნობი შეცდომა. გთხოვთ სცადოთ ისევ ან დაუკავშირდით სერვერის ადმინისტრატორს.</translation> <translation id="7877680364634660272">ტური</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">უკაცრავად, მინიმუმ ერთი დანაყოფი გარე საცავის მოწყობილობაზე ვერ მიმაგრდა.</translation> <translation id="7909969815743704077">ჩამოიტვირთა ინკოგნიტო რეჟიმში</translation> <translation id="7910768399700579500">&ახალი საქაღალდე</translation> +<translation id="7910831464510799808">ჩართული</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">თქვენი პაროლი შეიცვალა სერვერზე. გთხოვთ, გახვიდეთ და ხელახლა შეხვიდეთ სისტემაში.</translation> <translation id="7915457674565721553">მშობლის მიერ კონტროლის დასაყენებლად დაუკავშირდით ინტერნეტს</translation> @@ -5770,6 +5798,7 @@ <translation id="934503638756687833">საჭიროების შემთხვევაში, შეიძლება ამოიშალოს ის ერთეულებიც, რომელიც აქ ჩამოთვლილი არ არის. შეიტყვეთ მეტი <a href="<ph name="URL" />">არასასურველი პროგრამული უზრუნველყოფისგან დაცვის</a> შესახებ Chrome-ის კონფიდენციალურობასთან დაკავშირებულ დოკუმენტში.</translation> <translation id="935490618240037774">მოხდება თქვენი სანიშნეების, ისტორიის, პაროლების და სხვა პარამეტრების სინქრონიზაცია თქვენს Google ანგარიშთან, რათა მათი გამოყენება ყველა თქვენს მოწყობილობაში შეძლოთ.</translation> <translation id="935854577147268200">Smart Lock-ისთვის გამოყენებული ტელეფონი შეიცვალა. შეიყვანეთ თქვენი პაროლი Smart Lock-ის გასაახლებლად. შემდეგში <ph name="DEVICE_TYPE" /> განიბლოკება თქვენი ტელეფონის მეშვეობით. Smart Lock-ის გამორთვა შესაძლებელია პარამეტრებიდან.</translation> +<translation id="93610034168535821">საიტების მიერ გამოყენებული მეხსიერების საერთო მოცულობა:</translation> <translation id="936801553271523408">სისტემის დიაგნოსტიკის მონაცემები</translation> <translation id="93766956588638423">გაფართოების აღდგენა</translation> <translation id="938339467127511841">Linux-ის (ბეტა) მეხსიერება</translation> @@ -5791,6 +5820,7 @@ <translation id="964286338916298286">თქვენმა საინფორმაციო ტექნოლოგიების ადმინისტრატორმა გათიშა Chrome-ის ბონუსები თქვენი მოწყობილობისთვის.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{აპლიკაცია}other{აპლიკაციები}}</translation> <translation id="965211523698323809">გაგზავნეთ და მიიღეთ ტექსტური შეტყობინებები თქვენს <ph name="DEVICE_TYPE" />-ზე. <ph name="LINK_BEGIN" />შეიტყვეთ მეტი<ph name="LINK_END" /></translation> +<translation id="967398046773905967">საიტებისთვის HID მოწყობილობებზე წვდომის აკრძალვა</translation> <translation id="967624055006145463">შენახული მონაცემები</translation> <translation id="968000525894980488">ჩართეთ Google Play services.</translation> <translation id="968037381421390582">ჩა&სმა და „<ph name="SEARCH_TERMS" />“-ის ძიება</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index f985739..9f592bc 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -1496,7 +1496,7 @@ <translation id="3071624960923923138">Жаңы өтмөк ачуу үчүн бул жерди чыкылдатып коюңуз</translation> <translation id="3075874217500066906">Жууп салуу процессин баштоо үчүн өчүрүп күйгүзүү аракети талап кылынат. Өчүрүлүп күйгүзүлгөндөн кийин, уланта турганыңызды ырасташыңыз керек.</translation> <translation id="3076909148546628648"><ph name="DOWNLOAD_RECEIVED" />/<ph name="DOWNLOAD_TOTAL" /></translation> -<translation id="3076977359333237641">Кирүү дайындарыңыз өчүрүлдү</translation> +<translation id="3076977359333237641">Кирүү дайын-даректериңиз өчүрүлдү</translation> <translation id="3082374807674020857"><ph name="PAGE_TITLE" /> – <ph name="PAGE_URL" /></translation> <translation id="308268297242056490">URI</translation> <translation id="3082780749197361769">Бул өтмөк камераңызды же микрофонуңузду колдонуп жатат.</translation> @@ -1781,7 +1781,7 @@ <translation id="3505030558724226696">Түзмөктү колдонуу мүмкүнчүлүгүн жоюу</translation> <translation id="3507421388498836150">"<ph name="EXTENSION_NAME" />" кеңейтүүсүнүн учурдагы уруксаттары</translation> <translation id="3507888235492474624">Bluetooth түзмөктөрүн кайра издөө</translation> -<translation id="3508492320654304609">Кирүү дайындарыңыз өчүрүлгөн жок</translation> +<translation id="3508492320654304609">Кирүү дайын-даректериңиз өчүрүлгөн жок</translation> <translation id="3508920295779105875">Башка куржун тандаңыз…</translation> <translation id="3509680540198371098"><ph name="NETWORK_COUNT" /> ичинен <ph name="NETWORK_INDEX" />-тармак, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, Сигналдын күчү <ph name="SIGNAL_STRENGTH" />%, Чоо-жайы</translation> <translation id="3511200754045804813">Кайра скандоо</translation> @@ -2740,7 +2740,7 @@ <translation id="4890773143211625964">Принтердин өркүндөтүлгөн параметрлери көрсөтүлсүн</translation> <translation id="4891089016822695758">Бета форуму</translation> <translation id="4892229439761351791">Сайт Bluetooth'ду колдоно алат</translation> -<translation id="4893336867552636863">Ушуну менен бул түзмөктөн серептөө дайындарыңыз биротоло жок кылынат.</translation> +<translation id="4893336867552636863">Ушуну менен бул түзмөктөн серептөө дайын-даректериңиз биротоло жок кылынат.</translation> <translation id="4893522937062257019">Кулпуланган экранда</translation> <translation id="489454699928748701">Сайттарда кыймыл сенсорлорун колдонууга уруксат берилсин</translation> <translation id="4898011734382862273">"<ph name="CERTIFICATE_NAME" />" тастыктамасы Тастыктоочу борбордон алынган</translation> @@ -2752,7 +2752,7 @@ <translation id="4907161631261076876">Бул файл негизинен жүктөлүп алынбайт, ошондуктан коркунучтуу болушу мүмкүн.</translation> <translation id="4907306957610201395">Уруксат категориясы</translation> <translation id="4908811072292128752">Бир убакта эки сайтта серептөө үчүн жаңы өтмөк ачыңыз</translation> -<translation id="4909038193460299775">Бул каттоо эсеби <ph name="DOMAIN" /> тарабынан башкарылгандыктан, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр бул түзмөктөн тазаланат. Ал эми дайындарыңыз Google каттоо эсебиңизде сакталып кала берет жана аларды <ph name="BEGIN_LINK" />Google Жеке кеңсесинен<ph name="END_LINK" /> башкарса болот.</translation> +<translation id="4909038193460299775">Бул каттоо эсеби <ph name="DOMAIN" /> тарабынан башкарылгандыктан, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр бул түзмөктөн тазаланат. Ал эми дайын-даректериңиз Google каттоо эсебиңизде сакталып кала берет жана аларды <ph name="BEGIN_LINK" />Google Жеке кеңсесинен<ph name="END_LINK" /> башкарса болот.</translation> <translation id="4909359680501173791">Ийгиликтүү катталдыңыз</translation> <translation id="4912643508233590958">Сенек мезгилинде ойготуу</translation> <translation id="491691592645955587">Коопсуз серепчиге которулуу</translation> @@ -4011,7 +4011,7 @@ <translation id="6746124502594467657">Төмөн жылдыруу</translation> <translation id="674632704103926902">Таптап сүйрөөнү иштетүү</translation> <translation id="6748217015615267851">Видеону иштеп чыгуу: <ph name="RENDERER_URL" /></translation> -<translation id="6748465660675848252">Уланта берсеңиз болот, бирок шайкештирилген гана дайындарыңыз менен жөндөөлөрүңүз калыбына келтирилет. Жергиликтүү дайындардын баары жоготулат.</translation> +<translation id="6748465660675848252">Уланта берсеңиз болот, бирок шайкештирилген гана дайын-даректериңиз менен жөндөөлөрүңүз калыбына келтирилет. Жергиликтүү дайындардын баары жоготулат.</translation> <translation id="6751344591405861699"><ph name="WINDOW_TITLE" /> (Жашыруун)</translation> <translation id="6757101664402245801">URL көчүрүлдү</translation> <translation id="6758056191028427665">Биздин ишибиз тууралуу билдирип коюңуз.</translation> @@ -5562,7 +5562,7 @@ <translation id="890616557918890486">Булагын өзгөртүү</translation> <translation id="8909833622202089127">Сайт кайда жүргөнүңүзгө көз салууда</translation> <translation id="8910146161325739742">Экраныңызды бөлүшүңүз</translation> -<translation id="8910222113987937043">Кыстармаларыңызга, таржымалыңызга, сырсөздөрүңүзгө жана башка жөндөөлөргө киргизилген өзгөртүүлөр Google Каттоо эсебиңиз менен шайкештирилбейт. Ал эми учурдагы дайындарыңыз Google Каттоо эсебиңизде сакталып кала берет жана аларды <ph name="BEGIN_LINK" />Google Жеке кеңсесинен<ph name="END_LINK" /> башкарса болот.</translation> +<translation id="8910222113987937043">Кыстармаларыңызга, таржымалыңызга, сырсөздөрүңүзгө жана башка жөндөөлөргө киргизилген өзгөртүүлөр Google Каттоо эсебиңиз менен шайкештирилбейт. Ал эми учурдагы дайын-даректериңиз Google Каттоо эсебиңизде сакталып кала берет жана аларды <ph name="BEGIN_LINK" />Google Жеке кеңсесинен<ph name="END_LINK" /> башкарса болот.</translation> <translation id="8912362522468806198">Google каттоо эсеби</translation> <translation id="8912793549644936705">Чоюу</translation> <translation id="8912810933860534797">Авто-скандоону иштетүү</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 5838069..18d2de5 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Sustabdyti</translation> <translation id="1110155001042129815">Palaukti</translation> <translation id="1112420131909513020">Fone veikiančiame skirtuke naudojamas „Bluetooth“</translation> +<translation id="1113042067630273625">Atlikus šį veiksmą bus išvalyta <ph name="TOTAL_USAGE" /> saugomų svetainės duomenų.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Deimantas</translation> <translation id="1114335938027186412">Jūsų kompiuteryje yra patikimos platformos modulio (TPM) saugos įrenginys, kuris naudojamas „Chrome“ OS įdiegiant daug svarbių saugos funkcijų. Jei reikia daugiau informacijos, apsilankykite „Chromebook“ pagalbos centre adresu https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Failo riktas</translation> <translation id="1741314857973421784">Tęsti</translation> <translation id="1743570585616704562">Neatpažinta</translation> +<translation id="1743846852744439013">Būsite atjungti nuo visų svetainių, įskaitant atidarytus skirtukus.</translation> <translation id="1743970419083351269">Uždaryti atsisiuntimų juostą</translation> <translation id="1744060673522309905">Nepavyko prijungti įrenginio prie domeno. Įsitikinkite, kad neviršijote įrenginių, kuriuos galite pridėti, skaičiaus.</translation> <translation id="1744108098763830590">foninis puslapis</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Paslaugos</translation> <translation id="18139523105317219">EDI šalies pavadinimas</translation> <translation id="1815083418640426271">Įklijuoti kaip grynąjį tekstą</translation> +<translation id="1815181278146012280">Klausti, kai svetainė nori pasiekti HID įrenginius</translation> <translation id="181577467034453336">Dar <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">Klaviatūros nuskaitymo sparta</translation> <translation id="1817871734039893258">„Microsoft“ failų atkūrimas</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Vidutinis (rekomenduojamas)</translation> <translation id="2077129598763517140">Kai galima, naudoti aparatinės įrangos paspartinimą</translation> <translation id="2078019350989722914">Įspėti prieš baigiant (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Išjungta</translation> <translation id="2079053412993822885">Jei ištrinsite vieną iš savo sertifikatų, nebegalėsite jo naudoti savo tapatybei nustatyti.</translation> <translation id="2079545284768500474">Anuliuoti</translation> <translation id="2080070583977670716">Daugiau nustatymų</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Paklausti, kai svetainė nori atrasti netoliese esančius „Bluetooth“ įrenginius (rekomenduojama)</translation> <translation id="2292848386125228270">Paleiskite „<ph name="PRODUCT_NAME" />“ kaip įprastas naudotojas. Jei norite paleisti kaip pagrindinis naudotojas, kad galėtumėte kurti, iš naujo paleiskite naudodami žymą „--no-sandbox“.</translation> <translation id="2294358108254308676">Ar norite įdiegti „<ph name="PRODUCT_NAME" />“?</translation> +<translation id="2295864384543949385">Rezultatų: <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">Ieškoti spausdintuvų</translation> <translation id="2299734369537008228">Šliaužiklis: nuo <ph name="MIN_LABEL" /> iki <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">„<ph name="APP_NAME" />“ tinkinimas ir valdymas</translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Slaptažodis išsaugotas šiame įrenginyje</translation> <translation id="2485422356828889247">Pašalinti</translation> <translation id="2487067538648443797">Pridėti naują žymą</translation> +<translation id="2487268545026948104">Norėdami atkurti duomenis, prisijunkite prie interneto</translation> <translation id="2489829450872380594">Kitą kartą nauju telefonu bus galima atrakinti šį „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation> <translation id="2489918096470125693">Pridėti &aplanką...</translation> <translation id="2490481887078769936">„<ph name="FILE_NAME" />“ pašalintas iš sąrašo</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Nustatytas naujas laikas eiti miegoti</translation> <translation id="2544853746127077729">Autentifikavimo sertifikatą atmetė tinklas</translation> <translation id="2546283357679194313">Slapukai ir svetainės duomenys</translation> +<translation id="2547583314137677375">Išjungti sinchronizavimą</translation> <translation id="2549985041256363841">Pradėti įrašymą</translation> <translation id="2550212893339833758">Sukeista atmintis</translation> <translation id="2550596535588364872">Leisti „<ph name="EXTENSION_NAME" />“ atidaryti <ph name="FILE_NAME" /> failą?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Netinkamas CRX failas, išpakuojant įvyko klaida.</translation> <translation id="2673135533890720193">Skaityti naršymo istoriją</translation> <translation id="2673589024369449924">Kurti šio naudotojo darbalaukio šaukinį</translation> +<translation id="2674764818721168631">Išjungta</translation> <translation id="2677748264148917807">Išeiti</translation> <translation id="2678063897982469759">Iš naujo įgalinti</translation> <translation id="268053382412112343">Is&torija</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> galės redaguoti aplanko „<ph name="FOLDERNAME" />“ failus, kol neuždarysite šio skirtuko</translation> <translation id="3780827508782506612">Šis puslapis išverstas</translation> <translation id="378312418865624974">Skaityti unikalų šio kompiuterio identifikatorių</translation> +<translation id="3784472333786002075">Slapukai yra svetainių sukurti failai. Yra dviejų tipų slapukai: pirmųjų šalių slapukus kuria svetainė, kurioje lankotės. Svetainė rodoma adreso juostoje. Trečiųjų šalių slapukus kuria kitos svetainės. Šioms svetainėms priklauso tam tikras svetainės, kurioje lankotės, rodomas turinys, pvz., skelbimai ar vaizdai.</translation> <translation id="3785308913036335955">Rodyti spartųjį programų klavišą</translation> <translation id="3785727820640310185">Išsaugoti šios svetainės slaptažodžiai</translation> <translation id="3788401245189148511">Prašoma leidimo:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Kortelės galiojimo laikas baigėsi</translation> <translation id="3792890930871100565">Atjungti spausdintuvus</translation> <translation id="3793395331556663376">Atidaryta per daug failų sistemų.</translation> +<translation id="379509625511193653">Išjungta</translation> <translation id="3796648294839530037">Mėgstamiausi tinklai:</translation> <translation id="3797739167230984533">Jūsų <ph name="BEGIN_LINK" />„<ph name="DEVICE_TYPE" />“ tvarko<ph name="END_LINK" /> jūsų organizacija</translation> <translation id="3797900183766075808">&Ieškoti pagal užklausą „<ph name="SEARCH_TERMS" />“ naudojant „<ph name="SEARCH_ENGINE" />“</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Vykdoma</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Neturite neseniai užfiksuotų „WebRTC“ įvykių žurnalų.</translation> +<translation id="3955163004258753966">Pradedant naujovinimą įvyko klaida</translation> <translation id="3955193568934677022">Leisti svetainėms paleisti apsaugotą turinį (rekomenduojama)</translation> <translation id="3955896417885489542">Nustačius peržiūrėti „Google Play“ parinktis</translation> <translation id="3956702100721821638">Nepavyko pasiekti „Google Play“</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Išeiti iš puslapio}one{Išeiti iš puslapių}few{Išeiti iš puslapių}many{Išeiti iš puslapių}other{Išeiti iš puslapių}}</translation> <translation id="4044612648082411741">Įveskite sertifikato slaptažodį</translation> <translation id="404493185430269859">Numatytasis paieškos variklis</translation> +<translation id="4046013316139505482">Šiems plėtiniams nereikia peržiūrėti ir keisti informacijos šioje svetainėje.</translation> <translation id="4046123991198612571">Kitas takelis</translation> <translation id="4050225813016893843">Autentifikavimo metodas</translation> <translation id="4052120076834320548">Mažytis</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Niekada neversti <ph name="LANGUAGE" /> k.</translation> <translation id="4332976768901252016">Tėvų kontrolės nustatymas</translation> <translation id="4333854382783149454">PKCS Nr. 1 SHA-1 su RSA šifruote</translation> +<translation id="4336434711095810371">Išvalyti visus duomenis</translation> <translation id="4336979451636460645">Tinklo žurnalus rasite adresu <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> nori užmegzti ryšį su programa „<ph name="EXTENSION_NAME" />“</translation> <translation id="4345587454538109430">Konfigūruoti...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Konfigūruojamas virtualus įrenginys. Tai gali užtrukti kelias minutes.</translation> <translation id="4480590691557335796">„Chrome“ gali rasti kenkėjišką programinę įrangą jūsų kompiuteryje ir ją pašalinti</translation> <translation id="4481530544597605423">Atsieti įrenginiai</translation> +<translation id="4488502501195719518">Išvalyti visus duomenis?</translation> <translation id="4495419450179050807">Nerodyti šiame puslapyje</translation> <translation id="4500114933761911433">Papildinys „<ph name="PLUGIN_NAME" />“ užstrigo</translation> <translation id="450099669180426158">Šauktuko piktograma</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adresai, telefono numeriai ir daugiau</translation> <translation id="4572659312570518089">Autentifikavimas atšauktas prisijungiant prie „<ph name="DEVICE_NAME" />“.</translation> <translation id="4572779512957829735">Įveskite saugos rakto PIN kodą</translation> +<translation id="4573515936045019911">Būtinas interneto ryšys, kad galėtumėte naujovinti „Linux“. Prisijunkite prie interneto ir bandykite dar kartą.</translation> <translation id="457386861538956877">Daugiau...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Nepavyko perduoti <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Nustatoma</translation> <translation id="4996978546172906250">Bendrinti per</translation> <translation id="4997086284911172121">Nėra interneto ryšio.</translation> +<translation id="4998430619171209993">Įjungta</translation> <translation id="4998873842614926205">Patvirtinti pakeitimus</translation> <translation id="5000922062037820727">Užblokuota (rekomenduojama)</translation> <translation id="5008936837313706385">Veiklos pavadinimas</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Įvesti viso ekrano režimu</translation> <translation id="514575469079499857">Naudoti IP adresą vietovei nustatyti (numatytasis nustatymas)</translation> <translation id="5146995429444047494"><ph name="ORIGIN" /> pranešimai užblokuoti</translation> +<translation id="5147103632304200977">Klausti, kai svetainė nori pasiekti HID įrenginius (rekomenduojama)</translation> <translation id="5150254825601720210">„Netscape“ sertifikato SSL serverio pavadinimas</translation> <translation id="5151354047782775295">Atlaisvinkite vietos diske arba pasirinkite duomenis, kuriuos galima automatiškai ištrinti</translation> <translation id="5153234146675181447">Pamiršti telefoną</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Slaptažodžių eksportavimas iš „Chrome“</translation> <translation id="5355099869024327351">Padėjėjui leidžiama rodyti pranešimus</translation> <translation id="5355926466126177564">Plėtinys „<ph name="EXTENSION_NAME" />“ pakeitė, kuris puslapis rodomas ieškant „Omnibox“.</translation> +<translation id="5359910752122114278">Rezultatų: 1</translation> <translation id="5360150013186312835">Rodyti įrankių juostoje</translation> <translation id="5362741141255528695">Pasirinkti asmeninio rakto failą.</translation> <translation id="5363109466694494651">Įvykdyti „Powerwash“ ir versijos grąžinimo funkcijas</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">Ryšio pridėjimo funkciją išjungė administratorius</translation> <translation id="5701080607174488915">Iš serverio gaunant politiką įvyko klaida.</translation> <translation id="5701381305118179107">Centre</translation> +<translation id="5701441174893770082">Naujovinant „Linux“ gali būti smarkiai eikvojama akumuliatoriaus energija. Prijunkite įrenginį prie kroviklio ir bandykite dar kartą.</translation> <translation id="5702898740348134351">&Redaguoti paieškos variklius...</translation> <translation id="570302979952009979">Pavadinkite šį kontrolinį kodą</translation> <translation id="5704875434923668958">Sinchronizuojama su</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875">„<ph name="WINDOW_TITLE" />“ – USB įrenginys prijungtas</translation> <translation id="6028117231645531007">Pridėti piršto antspaudą</translation> <translation id="6029587122245504742">Lėčiausias</translation> +<translation id="6032715498678347852">Norėdami suteikti plėtiniui prieigą prie šios svetainės, spustelėkite jį.</translation> <translation id="6032912588568283682">Failų sistema</translation> <translation id="6038929619733116134">Blokuoti, jei svetainėje rodomi nepageidaujami arba klaidinantys skelbimai</translation> <translation id="6039651071822577588">Tinklo ypatybių žodynas netinkamai suformatuotas</translation> @@ -3907,6 +3927,7 @@ <translation id="6582080224869403177">Nustatykite „<ph name="DEVICE_TYPE" />“ įrenginį iš naujo, kad būtų galima naujovinti saugos sistemą.</translation> <translation id="6584878029876017575">„Microsoft“ pasirašymas visam laikui</translation> <translation id="6586451623538375658">Sukeisti pagrindinį pelės klavišą</translation> +<translation id="6586604979641883411">Reikia bent <ph name="REQUIRED_SPACE" /> laisvos vietos diske, kad galėtumėte naujovinti „Linux“. Atlaisvinkite vietos įrenginyje ir bandykite dar kartą.</translation> <translation id="6590458744723262880">Pervardyti aplanką</translation> <translation id="6592267180249644460">„WebRTC“ žurnalas užfiksuotas <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Kontrolinis kodas užfiksuotas</translation> @@ -4017,6 +4038,7 @@ <translation id="6757101664402245801">URL nukopijuotas</translation> <translation id="6758056191028427665">Pateikite atsiliepimų.</translation> <translation id="6759193508432371551">Gamykliniai nustatymai</translation> +<translation id="6762833852331690540">Įjungta</translation> <translation id="6767566652486411142">Pasirinkti kitą kalbą...</translation> <translation id="6767639283522617719">Nepavyko prisijungti prie domeno. Įsitikinkite, kad organizacinio vieneto nustatymai yra teisingi.</translation> <translation id="6769712124046837540">Pridedamas spausdintuvas...</translation> @@ -4138,6 +4160,7 @@ <translation id="6935286146439255109">Nėra popieriaus dėklo</translation> <translation id="693807610556624488">Rašymo operacija viršija didžiausią įrenginiui „<ph name="DEVICE_NAME" />“ leistiną atributo simbolių skaičių.</translation> <translation id="6938386202199793006">Esate išsaugoję 1 spausdintuvą.</translation> +<translation id="6938789263968032501">Žmonės</translation> <translation id="6941937518557314510">Kad „<ph name="HOST_NAME" />“ patvirtintumėte tapatybę, naudodami sertifikatą, prisijunkite prie „<ph name="TOKEN_NAME" />“.</translation> <translation id="6943176775188458830">Atšaukti spausdinimą</translation> <translation id="6943836128787782965">Įvyko HTTP klaida</translation> @@ -4162,6 +4185,7 @@ <translation id="6970856801391541997">Spausdinti konkrečius puslapius</translation> <translation id="6972180789171089114">Garso / vaizdo įrašai</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> negali atidaryti šiame aplanke esančių failų, nes aplanke yra sistemos failų</translation> +<translation id="6972629891077993081">HID įrenginiai</translation> <translation id="6972754398087986839">Darbo pradžia</translation> <translation id="6973611239564315524">Galima naujovinti į „Debian 10 (Buster)“</translation> <translation id="6974609594866392343">Demonstracinis režimas neprisijungus</translation> @@ -4486,8 +4510,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Foninis puslapis: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Skambina <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nerasta jokių HID įrenginių</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Atidaryti viską &naujame lange}=1{Atidaryti &naujame lange}one{Atidaryti viską (#) &naujame lange}few{Atidaryti viską (#) &naujame lange}many{Atidaryti viską (#) &naujame lange}other{Atidaryti viską (#) &naujame lange}}</translation> <translation id="7434509671034404296">Vykdymo programa</translation> +<translation id="7434635829372401939">Nustatymų sinchronizavimas</translation> <translation id="7436921188514130341">Oi, pervardijant įvyko klaida.</translation> <translation id="7438976808740265764">Nuo 2020 m. gruodžio „Flash Player“ nebebus palaikoma.</translation> <translation id="7441736921018636843">Jei norite pakeisti šį nustatymą, <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation> @@ -4809,6 +4835,7 @@ <translation id="786957569166715433">„<ph name="DEVICE_NAME" />“ – susietas</translation> <translation id="7870730066603611552">Nustačius peržiūrėti sinchronizavimo parinktis</translation> <translation id="7870790288828963061">Nerasta jokių naujesnių versijų viešojo terminalo programų. Naujinių nėra. Atjunkite USB atmintuką.</translation> +<translation id="787268756490971083">Išjungta</translation> <translation id="7874257161694977650">„Chrome“ fonai</translation> <translation id="7877451762676714207">Nežinoma serverio klaida. Bandykite dar kartą arba susisiekite su serverio administratoriumi.</translation> <translation id="7877680364634660272">Apžvalga</translation> @@ -4836,6 +4863,7 @@ <translation id="7908378463497120834">Apgailestaujame, tačiau neįmanoma įrengti mažiausiai vieno išorinio atmintinės įrenginio disko skaidinio.</translation> <translation id="7909969815743704077">Atsisiųsta inkognito režimu</translation> <translation id="7910768399700579500">&Naujas aplankas</translation> +<translation id="7910831464510799808">Įjungta</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Slaptažodis pakeistas serveryje. Atsijunkite, tada vėl prisijunkite.</translation> <translation id="7915457674565721553">Prisijunkite prie interneto, kad galėtumėte nustatyti tėvų kontrolę</translation> @@ -5774,6 +5802,7 @@ <translation id="934503638756687833">Jei reikės, bus pašalinti ir elementai, kurie čia nenurodyti. Sužinokite daugiau apie <a href="<ph name="URL" />">apsaugą nuo nepageidaujamos programinės įrangos</a> „Chrome“ privatumo baltojoje knygoje.</translation> <translation id="935490618240037774">Žymės, istorija, slaptažodžiai ir kiti nustatymai bus sinchronizuojami su „Google“ paskyra, kad galėtumėte juos naudoti visuose įrenginiuose.</translation> <translation id="935854577147268200">„Smart Lock“ telefonas pakeistas. Įveskite slaptažodį, kad atnaujintumėte „Smart Lock“. Kitą kartą telefonu bus galima atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation> +<translation id="93610034168535821">Iš viso svetainių naudojamos vietos saugykloje:</translation> <translation id="936801553271523408">Sistemos diagnostikos duomenys</translation> <translation id="93766956588638423">Pataisyti plėtinį</translation> <translation id="938339467127511841">„Linux“ (beta versijos) saugykla</translation> @@ -5795,6 +5824,7 @@ <translation id="964286338916298286">IT administratorius jūsų įrenginyje išjungė naudingas „Chrome“ funkcijas.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Programa}one{Programos}few{Programos}many{Programos}other{Programos}}</translation> <translation id="965211523698323809">Siųskite ir gaukite teksto pranešimus naudodami „<ph name="DEVICE_TYPE" />“. <ph name="LINK_BEGIN" />Sužinokite daugiau<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Neleisti svetainėms pasiekti HID įrenginių</translation> <translation id="967624055006145463">Saugomi duomenys</translation> <translation id="968000525894980488">Įjunkite „Google Play“ paslaugas.</translation> <translation id="968037381421390582">Įk&klijuoti ir ieškoti „<ph name="SEARCH_TERMS" />“</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index 3ee9460..da1af36 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Запри</translation> <translation id="1110155001042129815">Чекај</translation> <translation id="1112420131909513020">Картичка во заднина користи Bluetooth</translation> +<translation id="1113042067630273625">Ова ќе избрише <ph name="TOTAL_USAGE" /> од складираните податоци од сајтовите.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamond</translation> <translation id="1114335938027186412">Вашиот компјутер содржи безбедносен уред Trusted Platform Module (TPM) кој се користи за имплементирање на многу критични безбедносни функции во Chrome OS. Посетете го Центарот за помош на Chromebook за да дознаете повеќе: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Грешка во датотеката</translation> <translation id="1741314857973421784">Продолжи</translation> <translation id="1743570585616704562">Не е препознаен</translation> +<translation id="1743846852744439013">Ќе ве одјавиме од сите сајтови, вклучително и од отворените картички.</translation> <translation id="1743970419083351269">Затвори ја лентата за преземања</translation> <translation id="1744060673522309905">Уредот не може да се приклучи на доменот. Уверете се дека не сте го надминале максималниот број уреди што може да се додадат.</translation> <translation id="1744108098763830590">страница на заднина</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Услуги</translation> <translation id="18139523105317219">Име на партијата EDI</translation> <translation id="1815083418640426271">Залепи како обичен текст</translation> +<translation id="1815181278146012280">Прашувај кога некој сајт ќе сака да пристапи до HID-уредите</translation> <translation id="181577467034453336">Уште <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Брзина на скенирање на тастатурата</translation> <translation id="1817871734039893258">Обнова на датотека на Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Среден (препорачано)</translation> <translation id="2077129598763517140">Употребете забрзување на хардвер кога е достапно</translation> <translation id="2078019350989722914">Предупреди пред напуштање (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Исклучено</translation> <translation id="2079053412993822885">Доколку избришете еден од сопствените сертификати, веќе нема да може да го користите за да се идентификувате.</translation> <translation id="2079545284768500474">Врати</translation> <translation id="2080070583977670716">Повеќе поставки</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Прашај кога некој сајт сака да открива уреди со Bluetooth во близина (се препорачува)</translation> <translation id="2292848386125228270">Стартувајте го <ph name="PRODUCT_NAME" /> како нормален корисник. Ако треба да го активирате како администратор за развој, повторно стартувајте го со знамето --no-sandbox.</translation> <translation id="2294358108254308676">Дали сакате да инсталирате <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> резултати</translation> <translation id="2297705863329999812">Барај печатачи</translation> <translation id="2299734369537008228">Лизгач: <ph name="MIN_LABEL" /> до <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Приспособете ја и контролирајте ја апликацијата <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Лозинката е зачувана на уредов</translation> <translation id="2485422356828889247">Деинсталирај</translation> <translation id="2487067538648443797">Додај нов обележувач</translation> +<translation id="2487268545026948104">За да ги вратите податоците, поврзете се на интернет</translation> <translation id="2489829450872380594">Следниот пат, нов телефон ќе го отклучи <ph name="DEVICE_TYPE" />. Smart Lock може да се исклучи во „Поставки“.</translation> <translation id="2489918096470125693">Додај &Папка</translation> <translation id="2490481887078769936">Датотеката „<ph name="FILE_NAME" />“ е отстранета од списокот</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Поставено е ново време за спиење</translation> <translation id="2544853746127077729">Мрежата го отфрли сертификатот за автентикација</translation> <translation id="2546283357679194313">Колачиња и податоци од сајтот</translation> +<translation id="2547583314137677375">Исклучи ја „Синхронизацијата“</translation> <translation id="2549985041256363841">Започни со снимање</translation> <translation id="2550212893339833758">Заменета меморија</translation> <translation id="2550596535588364872">Да се дозволи <ph name="EXTENSION_NAME" /> да ја отвори датотеката „<ph name="FILE_NAME" />“?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Лоша crx датотека, отпакувањето не успеа.</translation> <translation id="2673135533890720193">Прочитајте ја историјата на прелистувачот</translation> <translation id="2673589024369449924">Направи кратенка за овој корисник на работната површина</translation> +<translation id="2674764818721168631">Исклучено</translation> <translation id="2677748264148917807">Напушти</translation> <translation id="2678063897982469759">Овозможи повторно</translation> <translation id="268053382412112343">И&сторија</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> ќе може да изменува датотеки во <ph name="FOLDERNAME" /> сѐ додека не ја затворите картичкава</translation> <translation id="3780827508782506612">Страницава е преведена</translation> <translation id="378312418865624974">Прочитајте го уникатниот идентификатор за овој компјутер</translation> +<translation id="3784472333786002075">Колачињата се датотеки што ги создаваат веб-сајтовите. Има два типа колачиња: првиот тип колачиња ги создава сајтот што го посетувате. Сајтот се прикажува во лентата за адреси. Вториот тип колачиња ги создаваат други сајтови. Овие сајтови се сопственици на дел од содржините, како рекламите или сликите што ги гледате на веб-сајтот што го посетувате.</translation> <translation id="3785308913036335955">Покажи кратенка за Апликации</translation> <translation id="3785727820640310185">Зачувани лозинки за сајтов</translation> <translation id="3788401245189148511">Може да:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Картичката ви е истечена</translation> <translation id="3792890930871100565">Исклучи печатачи</translation> <translation id="3793395331556663376">Отворени се премногу датотечни системи.</translation> +<translation id="379509625511193653">Исклучено</translation> <translation id="3796648294839530037">Омилени мрежи:</translation> <translation id="3797739167230984533">Вашиот <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> е управуван<ph name="END_LINK" /> од организацијата</translation> <translation id="3797900183766075808">&Пребарај „<ph name="SEARCH_TERMS" />“ на <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Во тек</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Немате неодамна снимени листи на настани на WebRTC.</translation> +<translation id="3955163004258753966">Грешка при започнувањето со надградба</translation> <translation id="3955193568934677022">Дозволете сајтовите да пуштаат заштитени содржини (се препорачува)</translation> <translation id="3955896417885489542">Прегледајте ги опциите за Google Play по поставувањето</translation> <translation id="3956702100721821638">Не можеше да се поврзе со Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Излези од страницата}one{Излези од страниците}other{Излези од страниците}}</translation> <translation id="4044612648082411741">Внесете ја лозинката за сертификатот</translation> <translation id="404493185430269859">Стандарден пребарувач</translation> +<translation id="4046013316139505482">Екстензииве не треба да гледаат и менуваат податоци на сајтов.</translation> <translation id="4046123991198612571">Следна песна</translation> <translation id="4050225813016893843">Метод на проверка</translation> <translation id="4052120076834320548">Ситен</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Никогаш не преведувај <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Поставете родителски контроли</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 со RSA енкрипција</translation> +<translation id="4336434711095810371">Исчисти ги сите податоци</translation> <translation id="4336979451636460645">За дневници на мрежата, погледнете: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> сака да комуницира со апликацијата „<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Конфигурирај…</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Се конфигурира виртуелната машина. Ова може да потрае неколку минути.</translation> <translation id="4480590691557335796">Chrome може да најде штетен софтвер на вашиот компјутер и да го отстрани</translation> <translation id="4481530544597605423">Неспарени уреди</translation> +<translation id="4488502501195719518">Да се исчистат сите податоци?</translation> <translation id="4495419450179050807">Да не се покажува на оваа страница</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> падна</translation> <translation id="450099669180426158">Икона извичник</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Адреси, телефонски броеви и друго</translation> <translation id="4572659312570518089">Автентикацијата се откажа при поврзување со „<ph name="DEVICE_NAME" />“.</translation> <translation id="4572779512957829735">Внесете го PIN-кодот за вашиот безбедносен клуч</translation> +<translation id="4573515936045019911">Потребно е мрежно поврзување за надградба на Linux. Поврзете се на интернет и обидете се повторно.</translation> <translation id="457386861538956877">Повеќе…</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Не може да се емитува <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Се поставува</translation> <translation id="4996978546172906250">Сподели преку</translation> <translation id="4997086284911172121">Нема интернет-врска.</translation> +<translation id="4998430619171209993">Вклучено</translation> <translation id="4998873842614926205">Потврди промени</translation> <translation id="5000922062037820727">Блокирано (препорачано)</translation> <translation id="5008936837313706385">Име на активноста</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Влези во цел екран</translation> <translation id="514575469079499857">Користете ја IP-адресата за утврдување на локацијата (стандардно)</translation> <translation id="5146995429444047494">Известувањата за <ph name="ORIGIN" /> се блокирани</translation> +<translation id="5147103632304200977">Прашувај кога некој сајт ќе сака да пристапи до HID-уредите (препорачано)</translation> <translation id="5150254825601720210">Име на Netscape-сертификат за SSL-сервер</translation> <translation id="5151354047782775295">Ослободете простор на дискот или избрани податоци може автоматски да се избришат</translation> <translation id="5153234146675181447">Заборави го телефонот</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Извоз на лозинки од Chrome</translation> <translation id="5355099869024327351">Овозможува „Помошникот“ да ви прикажува известувања</translation> <translation id="5355926466126177564">Екстензијата „<ph name="EXTENSION_NAME" />“ ја смени страницата што се прикажува кога пребарувате од Omnibox.</translation> +<translation id="5359910752122114278">1 резултат</translation> <translation id="5360150013186312835">Прикажи во алатник</translation> <translation id="5362741141255528695">Избери датотека со приватен клуч.</translation> <translation id="5363109466694494651">Фабрички ресетирај и врати</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Администраторот ја оневозможил функцијата „Додај врска“</translation> <translation id="5701080607174488915">Грешка при земање на правилото од серверот.</translation> <translation id="5701381305118179107">Центар</translation> +<translation id="5701441174893770082">Надградувањето на Linux може значително да ви ја потроши батеријата. Поврзете го уредот на полнач и обидете се повторно.</translation> <translation id="5702898740348134351">&Уреди пребарувачи…</translation> <translation id="570302979952009979">Изберете име за отпечатоков</translation> <translation id="5704875434923668958">Се синхронизира со</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - поврзан е USB-уред</translation> <translation id="6028117231645531007">Додај отпечаток</translation> <translation id="6029587122245504742">Најбавно</translation> +<translation id="6032715498678347852">Кликнете на екстензијата за да ѝ дадете пристап до сајтов.</translation> <translation id="6032912588568283682">Датотечен систем</translation> <translation id="6038929619733116134">Блокирај ако сајтот прикажува нападни или лажни реклами</translation> <translation id="6039651071822577588">Деформиран мрежен речник на својства</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Ресетирајте го <ph name="DEVICE_TYPE" /> за да ја надградите безбедноста.</translation> <translation id="6584878029876017575">Пријавување на Microsoft Lifetime</translation> <translation id="6586451623538375658">Замени го примарното копче на глушецот</translation> +<translation id="6586604979641883411">Потребен е слободен простор на дискот од најмалку <ph name="REQUIRED_SPACE" /> за надградба на Linux. Ослободете простор на уредот и обидете се повторно.</translation> <translation id="6590458744723262880">Преименувај папка</translation> <translation id="6592267180249644460">Дневникот WebRTC е зачуван во <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Вашиот отпечаток е снимен</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">Линкот е копиран</translation> <translation id="6758056191028427665">Оценете ја нашата работа.</translation> <translation id="6759193508432371551">Ресетирање до фабрички вредности</translation> +<translation id="6762833852331690540">Вклучено</translation> <translation id="6767566652486411142">Изберете друг јазик…</translation> <translation id="6767639283522617719">Не може да се приклучи на доменот. Проверете дали поставките се точни за организациската единица.</translation> <translation id="6769712124046837540">Се додава печатач…</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Недостасува фиока за хартија</translation> <translation id="693807610556624488">Операцијата за пишување ја надминува максималната должина на атрибутот на: „<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Имате 1 зачуван печатач.</translation> +<translation id="6938789263968032501">Луѓе</translation> <translation id="6941937518557314510">Најавете се со <ph name="TOKEN_NAME" /> за автентикација на <ph name="HOST_NAME" /> со вашиот сертификат.</translation> <translation id="6943176775188458830">Откажи печатење</translation> <translation id="6943836128787782965">HTTP не успеа</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Печати специфични страници</translation> <translation id="6972180789171089114">Аудио/видео</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> не може да отвора датотеки во папкава бидејќи таа содржи системски датотеки</translation> +<translation id="6972629891077993081">HID-уреди</translation> <translation id="6972754398087986839">Започни</translation> <translation id="6973611239564315524">Достапна е надградба на Debian 10 (Buster)</translation> <translation id="6974609594866392343">Офлајн демо-режим</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Страница во заднина: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Јавете се од <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Не се најдени HID-уреди</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Отвори ги сите во &нов прозорец}=1{Отвори во &нов прозорец}one{Отвори ги сите (#) во &нов прозорец}other{Отвори ги сите (#) во &нов прозорец}}</translation> <translation id="7434509671034404296">Програмер</translation> +<translation id="7434635829372401939">Синхронизирајте ги поставките</translation> <translation id="7436921188514130341">Да му се сневиди! Настана грешка за време на форматирањето.</translation> <translation id="7438976808740265764">Flash Player веќе нема да се поддржува по декември, 2020 година.</translation> <translation id="7441736921018636843">За да ја измените поставкава, <ph name="BEGIN_LINK" />ресетирајте ја синхронизацијата<ph name="END_LINK" /> и отстранете ја лозинката за синхронизација</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - спарено</translation> <translation id="7870730066603611552">Прегледајте ги опциите за синхронизација по поставувањето</translation> <translation id="7870790288828963061">Не се пронајдени апликации на Киоск со понова верзија. Нема што да се ажурира. Отстранете ја USB-меморијата.</translation> +<translation id="787268756490971083">Исклучено</translation> <translation id="7874257161694977650">Заднини на Chrome</translation> <translation id="7877451762676714207">Непозната грешка на серверот. Обидете се повторно или контактирајте со администраторот на серверот.</translation> <translation id="7877680364634660272">Разгледајте</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Извинете, најмалку една партиција на надворешниот уред не можеше да се постави.</translation> <translation id="7909969815743704077">Преземено во Инкогнито</translation> <translation id="7910768399700579500">&Нова папка</translation> +<translation id="7910831464510799808">Вклучено</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Вашата лозинка е променета на серверот. Одјавете се и повторно најавете се.</translation> <translation id="7915457674565721553">Поврзете се на интернет за да поставите „Родителски контроли“</translation> @@ -5775,6 +5803,7 @@ <translation id="934503638756687833">Ставките што не се наведени тука исто така ќе се отстранат ако е потребно. Дознајте повеќе за <a href="<ph name="URL" />">заштита од несакан софтвер</a> во белата книга за приватност на Chrome.</translation> <translation id="935490618240037774">Обележувачите, историјата, лозинките и другите поставки ќе се синхронизираат со сметката на Google за да може да ги користите на сите уреди.</translation> <translation id="935854577147268200">Телефонот за Smart Lock е сменет. Внесете ја вашата лозинка за да се ажурира Smart Lock. Следниот пат, телефонот ќе го отклучи вашиот <ph name="DEVICE_TYPE" />. Smart Lock може да се исклучи во „Поставки“.</translation> +<translation id="93610034168535821">Вкупна меморија искористена од сајтовите:</translation> <translation id="936801553271523408">Дијагностички податоци на системот</translation> <translation id="93766956588638423">Поправи ја екстензијата</translation> <translation id="938339467127511841">Меморија на Linux (бета)</translation> @@ -5796,6 +5825,7 @@ <translation id="964286338916298286">Администраторот за информатичка технологија оневозможил Chrome Goodies за вашиот уред.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Апликација}one{Апликации}other{Апликации}}</translation> <translation id="965211523698323809">Испраќајте и примајте SMS-пораки од вашиот <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Дознајте повеќе<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Не дозволувај ниту еден сајт да пристапува до HID-уредите</translation> <translation id="967624055006145463">Складирани податоци</translation> <translation id="968000525894980488">Вклучете ги услугите на Google Play.</translation> <translation id="968037381421390582">&Залепи и пребарај „<ph name="SEARCH_TERMS" />“</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index c372221..44ae5327b 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Berhenti</translation> <translation id="1110155001042129815">Tunggu</translation> <translation id="1112420131909513020">Tab latar belakang menggunakan Bluetooth</translation> +<translation id="1113042067630273625">Tindakan ini akan menghapuskan <ph name="TOTAL_USAGE" /> data tapak yang disimpan.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Berlian</translation> <translation id="1114335938027186412">Komputer anda mengandungi peranti keselamatan Modul Platform Dipercayai (TPM), yang digunakan untuk melaksanakan banyak ciri keselamatan kritikal dalam OS Chrome. Lawati Pusat Bantuan Chromebook untuk mengetahui lebih lanjut: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Failkan pepijat</translation> <translation id="1741314857973421784">Teruskan</translation> <translation id="1743570585616704562">Tidak dikenali</translation> +<translation id="1743846852744439013">Anda akan dilog keluar daripada semua tapak, termasuk dalam sebarang tab yang terbuka</translation> <translation id="1743970419083351269">Tutup Bar Muat Turun</translation> <translation id="1744060673522309905">Tidak dapat menghubungkan peranti ke domain. Pastikan anda belum melebihi jumlah peranti yang boleh ditambahkan.</translation> <translation id="1744108098763830590">halaman latar belakang</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Perkhidmatan</translation> <translation id="18139523105317219">Nama Pihak EDI</translation> <translation id="1815083418640426271">Tampalkan Sebagai Teks Biasa</translation> +<translation id="1815181278146012280">Tanya apabila tapak mahu mengakses peranti HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> lagi...</translation> <translation id="1816036116994822943">Kelajuan pengimbasan papan kekunci</translation> <translation id="1817871734039893258">Pemulihan Fail Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Sederhana (Disyorkan)</translation> <translation id="2077129598763517140">Gunakan pecutan perkakasan apabila tersedia</translation> <translation id="2078019350989722914">Beri Amaran Sebelum Berhenti (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Mati</translation> <translation id="2079053412993822885">Jika anda memadamkan salah satu sijil milik anda, anda tidak lagi boleh menggunakannya untuk mengenal pasti diri anda.</translation> <translation id="2079545284768500474">Buat asal</translation> <translation id="2080070583977670716">Lagi tetapan</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Tanya apabila tapak mahu mencari peranti Bluetooth berdekatan (disyorkan)</translation> <translation id="2292848386125228270">Sila mulakan <ph name="PRODUCT_NAME" /> sebagai pengguna biasa. Jika anda perlu menjalankan apl sebagai akar untuk pembangunan, jalankan semula dengan --bendera tanpa kotak pasir.</translation> <translation id="2294358108254308676">Adakah anda mahu memasang <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> hasil carian</translation> <translation id="2297705863329999812">Cari pencetak</translation> <translation id="2299734369537008228">Peluncur: <ph name="MIN_LABEL" /> hingga <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Sesuaikan dan kawal <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Kata laluan yang disimpan pada peranti ini</translation> <translation id="2485422356828889247">Nyahpasang</translation> <translation id="2487067538648443797">Tambahkan penanda halaman baharu</translation> +<translation id="2487268545026948104">Untuk memulihkan data anda, sambung ke internet</translation> <translation id="2489829450872380594">Selepas ini, telefon baharu akan membuka kunci <ph name="DEVICE_TYPE" /> ini. Anda boleh mematikan Smart Lock dalam Tetapan.</translation> <translation id="2489918096470125693">Tambah &Folder...</translation> <translation id="2490481887078769936">'<ph name="FILE_NAME" />' telah dialih keluar daripada senarai</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Waktu tidur baharu ditetapkan</translation> <translation id="2544853746127077729">Sijil pengesahan ditolak oleh rangkaian</translation> <translation id="2546283357679194313">Kuki dan data tapak</translation> +<translation id="2547583314137677375">Matikan Penyegerakan</translation> <translation id="2549985041256363841">Mulakan rakaman</translation> <translation id="2550212893339833758">Memori ditukar</translation> <translation id="2550596535588364872">Benarkan <ph name="EXTENSION_NAME" /> membuka <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Fail crx rosak, pemunggahan gagal.</translation> <translation id="2673135533890720193">Baca sejarah penyemakan anda</translation> <translation id="2673589024369449924">Buat pintasan desktop untuk pengguna ini</translation> +<translation id="2674764818721168631">Mati</translation> <translation id="2677748264148917807">Tinggalkan</translation> <translation id="2678063897982469759">Dayakan semula</translation> <translation id="268053382412112343">Se&jarah</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> akan dapat mengedit fail dalam <ph name="FOLDERNAME" /> sehingga anda menutup tab ini</translation> <translation id="3780827508782506612">Halaman Ini Telah Diterjemahkan</translation> <translation id="378312418865624974">Baca pengecam unik untuk komputer ini</translation> +<translation id="3784472333786002075">Kuki ialah fail yang dibuat oleh tapak web. Terdapat dua jenis kuki: Kuki pihak pertama dibuat oleh tapak yang anda lawati. Tapak ini ditunjukkan pada bar alamat. Kuki pihak ketiga dibuat oleh tapak lain. Tapak ini memiliki sebahagian daripada kandungan seperti iklan atau imej yang anda lihat pada tapak web yang anda lawati.</translation> <translation id="3785308913036335955">Paparkan Pintasan Apl</translation> <translation id="3785727820640310185">Kata laluan disimpan untuk tapak ini</translation> <translation id="3788401245189148511">Item boleh:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Kad anda telah tamat tempoh</translation> <translation id="3792890930871100565">Putuskan sambungan pencetak</translation> <translation id="3793395331556663376">Terlalu banyak sistem fail dibuka.</translation> +<translation id="379509625511193653">Mati</translation> <translation id="3796648294839530037">Rangkaian Kegemaran:</translation> <translation id="3797739167230984533"><ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> anda diurus<ph name="END_LINK" /> oleh organisasi anda</translation> <translation id="3797900183766075808">&Cari “<ph name="SEARCH_TERMS" />” di <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Sedang berlangsung</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Anda tiada log acara WebRTC yang dirakam baru-baru ini.</translation> +<translation id="3955163004258753966">Ralat memulakan peningkatan</translation> <translation id="3955193568934677022">Benarkan tapak untuk memainkan kandungan yang dilindungi (disyorkan)</translation> <translation id="3955896417885489542">Semak pilihan Google Play selepas penyediaan</translation> <translation id="3956702100721821638">Tidak dapat menghubungi Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Keluar daripada Halaman}other{Keluar daripada Halaman}}</translation> <translation id="4044612648082411741">Masukkan kata laluan sijil anda</translation> <translation id="404493185430269859">Enjin carian lalai</translation> +<translation id="4046013316139505482">Sambungan ini tidak perlu melihat dan menukar maklumat di tapak ini.</translation> <translation id="4046123991198612571">Lagu seterusnya</translation> <translation id="4050225813016893843">Kaedah pengesahan</translation> <translation id="4052120076834320548">Sangat Kecil</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Jangan Sekali-kali Terjemahkan <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Sediakan Kawalan Ibu Bapa</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 Dengan Penyulitan RSA</translation> +<translation id="4336434711095810371">Kosongkan semua data</translation> <translation id="4336979451636460645">Untuk log rangkaian, lihat: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> ingin berkomunikasi dengan apl "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Konfigurasi...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Mengkonfigurasikan mesin maya. Proses ini mungkin mengambil masa beberapa minit.</translation> <translation id="4480590691557335796">Chrome boleh mencari perisian yang berbahaya pada komputer anda dan mengalih keluar perisian tersebut</translation> <translation id="4481530544597605423">Peranti dinyahganding</translation> +<translation id="4488502501195719518">Kosongkan semua data?</translation> <translation id="4495419450179050807">Jangan paparkan pada halaman ini</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> telah ranap</translation> <translation id="450099669180426158">Ikon tanda seru</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Alamat, nombor telefon dan pelbagai lagi</translation> <translation id="4572659312570518089">Pengesahan dibatalkan semasa menyambung ke "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Masukkan PIN untuk kunci keselamatan anda</translation> +<translation id="4573515936045019911">Sambungan rangkaian diperlukan untuk meningkatkan Linux. Sila sambung ke Internet dan cuba lagi.</translation> <translation id="457386861538956877">Lagi...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Tidak dapat menghantar <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Menyediakan</translation> <translation id="4996978546172906250">Kongsi melalui</translation> <translation id="4997086284911172121">Tiada sambungan Internet.</translation> +<translation id="4998430619171209993">Hidupkan</translation> <translation id="4998873842614926205">Sahkan Perubahan</translation> <translation id="5000922062037820727">Disekat (disyorkan)</translation> <translation id="5008936837313706385">Nama Aktiviti</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Memasuki Skrin Penuh</translation> <translation id="514575469079499857">Gunakan alamat IP anda untuk menentukan lokasi (lalai)</translation> <translation id="5146995429444047494">Pemberitahuan untuk <ph name="ORIGIN" /> disekat</translation> +<translation id="5147103632304200977">Tanya apabila tapak mahu mengakses peranti HID (disyorkan)</translation> <translation id="5150254825601720210">Nama Pelayan SSL Sijil Netscape</translation> <translation id="5151354047782775295">Kosongkan ruang cakera, jika tidak data terpilih akan dipadamkan secara automatik.</translation> <translation id="5153234146675181447">Lupakan telefon</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Eksport Kata Laluan Daripada Chrome</translation> <translation id="5355099869024327351">Benarkan Assistant untuk menunjukkan pemberitahuan kepada anda</translation> <translation id="5355926466126177564">Sambungan "<ph name="EXTENSION_NAME" />" telah menukar halaman yang ditunjukkan apabila anda membuat carian daripada Kotak Omni.</translation> +<translation id="5359910752122114278">1 hasil</translation> <translation id="5360150013186312835">Tunjukkan dalam Bar Alat</translation> <translation id="5362741141255528695">Pilih fail kunci persendirian.</translation> <translation id="5363109466694494651">Powerwash dan Berbalik</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Penambahan sambungan dilumpuhkan oleh pentadbir anda</translation> <translation id="5701080607174488915">Ralat telah berlaku semasa mengambil dasar daripada pelayan.</translation> <translation id="5701381305118179107">Tengah</translation> +<translation id="5701441174893770082">Bateri anda akan habis dengan ketara jika anda meningkatkan Linux. Sila sambungkan peranti anda ke pengecas dan cuba lagi.</translation> <translation id="5702898740348134351">&Edit Enjin Carian...</translation> <translation id="570302979952009979">Pilih nama untuk cap jari ini</translation> <translation id="5704875434923668958">Menyegerak ke</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Peranti USB disambungkan</translation> <translation id="6028117231645531007">Tambahkan cap jari</translation> <translation id="6029587122245504742">Paling perlahan</translation> +<translation id="6032715498678347852">Untuk memberikan sambungan akses ke tapak ini, klik sambungan itu.</translation> <translation id="6032912588568283682">Sistem fail</translation> <translation id="6038929619733116134">Sekat jika tapak menyiarkan iklan yang mengganggu atau mengelirukan</translation> <translation id="6039651071822577588">Kamus ciri rangkaian tidak sempurna</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Tetapkan semula <ph name="DEVICE_TYPE" /> anda untuk meningkatkan keselamatan anda.</translation> <translation id="6584878029876017575">Menandatangani Microsoft Sepanjang Hayat</translation> <translation id="6586451623538375658">Tukar butang tetikus utama</translation> +<translation id="6586604979641883411">Sekurang-kurangnya <ph name="REQUIRED_SPACE" /> ruang cakera kosong diperlukan untuk meningkatkan Linux. Sila kosongkan sedikit ruang pada peranti anda dan cuba lagi.</translation> <translation id="6590458744723262880">Namakan semula folder</translation> <translation id="6592267180249644460">Log WebRTC dirakam <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Cap jari anda telah disimpan</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL disalin</translation> <translation id="6758056191028427665">Beritahu kami tentang prestasi kami.</translation> <translation id="6759193508432371551">Tetapan semula kilang</translation> +<translation id="6762833852331690540">Hidupkan</translation> <translation id="6767566652486411142">Pilih Bahasa Lain...</translation> <translation id="6767639283522617719">Tidak dapat menghubungkan domain. Pastikan tetapan untuk unit organisasi adalah betul.</translation> <translation id="6769712124046837540">Menambah pencetak...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Dulang kertas tiada</translation> <translation id="693807610556624488">Pengendalian tulis melebihi panjang maksimum atribut pada: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Anda mempunyai 1 pencetak yang disimpan.</translation> +<translation id="6938789263968032501">Orang</translation> <translation id="6941937518557314510">Sila log masuk ke <ph name="TOKEN_NAME" /> untuk mengesahkan <ph name="HOST_NAME" /> dengan sijil anda.</translation> <translation id="6943176775188458830">Batalkan pencetakan</translation> <translation id="6943836128787782965">HTTP gagal</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Cetak Halaman Tertentu</translation> <translation id="6972180789171089114">Audio/Video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> tidak dapat membuka fail dalam folder ini kerana folder ini mengandungi fail sistem</translation> +<translation id="6972629891077993081">Peranti HID</translation> <translation id="6972754398087986839">Bermula</translation> <translation id="6973611239564315524">Peningkatan kepada Debian 10 (Buster) tersedia</translation> <translation id="6974609594866392343">Mod tunjuk cara luar talian</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Halaman Latar Belakang: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Panggilan daripada <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Tiada peranti HID ditemui</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Buka Semua dalam Tetingkap &Baharu}=1{Buka dalam Tetingkap &Baharu}other{Buka Semua (#) dalam Tetingkap &Baharu}}</translation> <translation id="7434509671034404296">Pembangun</translation> +<translation id="7434635829372401939">Segerakkan tetapan anda</translation> <translation id="7436921188514130341">Oh, Tidak! Ralat berlaku semasa penamaan semula.</translation> <translation id="7438976808740265764">Flash Player tidak akan disokong lagi selepas bulan Disember 2020.</translation> <translation id="7441736921018636843">Untuk menukar tetapan ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /> untuk mengalih keluar ungkapan laluan penyegerakan anda</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - Digandingkan</translation> <translation id="7870730066603611552">Semak pilihan penyegerakan selepas persediaan</translation> <translation id="7870790288828963061">Tiada apl Kiosk dengan versi lebih baharu dijumpai. Tiada apa-apa untuk dikemas kini. Sila alih keluar batang USB.</translation> +<translation id="787268756490971083">Mati</translation> <translation id="7874257161694977650">Latar Chrome</translation> <translation id="7877451762676714207">Ralat pelayan tidak diketahui. Sila cuba lagi atau hubungi pentadbir pelayan.</translation> <translation id="7877680364634660272">Lawatan</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Maaf, sekurang-kurangnya satu pemetakan pada peranti storan luaran anda tidak boleh dilekapkan.</translation> <translation id="7909969815743704077">Dimuat turun dalam Inkognito</translation> <translation id="7910768399700579500">&Folder baharu</translation> +<translation id="7910831464510799808">Hidupkan</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Kata laluan anda telah ditukar pada pelayan. Sila log keluar, kemudian log masuk semula.</translation> <translation id="7915457674565721553">Sambung ke Internet untuk menyediakan kawalan ibu bapa</translation> @@ -5774,6 +5802,7 @@ <translation id="934503638756687833">Item yang tidak disenaraikan di sini turut akan dialih keluar, jika perlu. Ketahui lebih lanjut tentang <a href="<ph name="URL" />">perlindungan daripada perisian yang tidak diingini</a> dalam kertas putih privasi Chrome.</translation> <translation id="935490618240037774">Penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan disegerakkan ke Akaun Google supaya anda dapat menggunakannya pada semua peranti anda.</translation> <translation id="935854577147268200">Telefon Smart Lock ditukar. Masukkan kata laluan anda untuk mengemas kini Smart Lock. Selepas ini, telefon anda akan membuka kunci <ph name="DEVICE_TYPE" /> anda. Anda boleh mematikan Smart Lock dalam Tetapan</translation> +<translation id="93610034168535821">Jumlah storan yang digunakan oleh tapak:</translation> <translation id="936801553271523408">Data diagnostik sistem</translation> <translation id="93766956588638423">Baiki sambungan</translation> <translation id="938339467127511841">Storan Linux (Beta)</translation> @@ -5795,6 +5824,7 @@ <translation id="964286338916298286">Pentadbir IT anda telah melumpuhkan Cenderahati Chrome untuk peranti anda.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplikasi}other{Aplikasi}}</translation> <translation id="965211523698323809">Hantar dan terima mesej teks daripada <ph name="DEVICE_TYPE" /> anda. <ph name="LINK_BEGIN" />Ketahui lebih lanjut<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Jangan benarkan mana-mana tapak mengakses peranti HID</translation> <translation id="967624055006145463">Data disimpan</translation> <translation id="968000525894980488">Hidupkan perkhidmatan Google Play.</translation> <translation id="968037381421390582">Ta&mpal dan Cari “<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index 1f8fea4c..744dd3f6 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&ရပ်</translation> <translation id="1110155001042129815">စောင့်ရန်</translation> <translation id="1112420131909513020">နောက်ခံတဘ်သည် ဘလူးတုသ်ကို အသုံးပြုနေသည်</translation> +<translation id="1113042067630273625">ဤလုပ်ဆောင်ချက်က သိမ်းထားသောဝဘ်ဆိုက်ဒေတာ <ph name="TOTAL_USAGE" /> ကို ရှင်းထုတ်ပါမည်။</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">ဒိုင်မွန်</translation> <translation id="1114335938027186412">Chrome OS ရှိအရေးပါသော လုံခြုံရေးအင်္ဂါရပ်များစွာကို ဆောင်ရွက်ရာတွင် အသုံးပြုရန် ယုံကြည်ရသည့် ပလပ်ဖောင်း မော်ဂျူး (TPM) လုံခြုံရေးစက်ပစ္စည်း သင့်ကွန်ပျူတာတွင် ပါဝင်သည်။ ပိုမိုလေ့လာနိုင်ရန် Chromebook အကူအညီစင်တာသို့ သွားပါ: https://support.google.com/chromebook/?p=tpm</translation> @@ -539,6 +540,7 @@ <translation id="1737968601308870607">ဘာဂ် ဖိုင်တင်ရန်</translation> <translation id="1741314857973421784">ရှေ့ဆက်ရန်</translation> <translation id="1743570585616704562">မသိပါ</translation> +<translation id="1743846852744439013">ဖွင့်ထားသော တဘ်များအပါအဝင် ဝဘ်ဆိုက်အားလုံးမှ သင် ထွက်သွားပါမည်။</translation> <translation id="1743970419083351269">ဒေါင်းလုဒ်ဘား ပိတ်ရန်</translation> <translation id="1744060673522309905">စက်ပစ္စည်းကို ဒိုမိန်းသို့ ချိတ်ဆက်၍မရပါ။ သင်ထည့်သွင်းနိုင်သည့် စက်ပစ္စည်းအရေအတွက်ကို ကျော်သွားခြင်းရှိမရှိ သေချာစစ်ဆေးပါ။</translation> <translation id="1744108098763830590">နောက်ခံ စာမျက်နှာ</translation> @@ -597,6 +599,7 @@ <translation id="1813278315230285598">ဝန်ဆောင်မှုများ</translation> <translation id="18139523105317219">EDI ပါတီ အမည်</translation> <translation id="1815083418640426271">စာသားရိုးရိုး အဖြစ် ကူးထည့်မည်</translation> +<translation id="1815181278146012280">ဝဘ်ဆိုက်က HID စက်များကို အသုံးပြုလိုသည့်အခါ ခွင့်တောင်းရန်</translation> <translation id="181577467034453336">နောက်ထပ် <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">လက်ကွက်ရှာဖွေမှု မြန်နှုန်း</translation> <translation id="1817871734039893258">Microsoft ဖိုင်ပြန်လည်ရှာဖွေမှု</translation> @@ -768,6 +771,7 @@ <translation id="2076672359661571384">အလယ်အလတ် (အကြံပြုပါသည်)</translation> <translation id="2077129598763517140">ရရှိနိုင်သည့် အခါမှာ ဟာ့ဒ်ဝဲ အရှိန်မြှင့်မှုကို အသုံးပြုရန်</translation> <translation id="2078019350989722914">မထွက်ခင် သတိပေး (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">ပိတ်ရန်</translation> <translation id="2079053412993822885">သင်သည် သင်၏ လက်မှတ်များထဲက တစ်ခုကို ဖျက်လိုက်လျှင် သင်ကိုယ်တိုင် အတွက် အထောက်မအထား အဖြစ် ၎င်းကို ဆက်သုံးနိုင်တော့မည် မဟုတ်ပါ။</translation> <translation id="2079545284768500474">ပြန်ဖျက်ရန်</translation> <translation id="2080070583977670716">ဆက်တင်များ ပိုမိုပြရန်</translation> @@ -934,6 +938,7 @@ <translation id="2289270750774289114">ဝဘ်ဆိုက်က အနီးအနားရှိ ဘလူးတုသ်ကိရိယာများ ရှာဖွေလိုသည့်အခါ ခွင့်တောင်းရန် (အကြံပြုထားသည်)</translation> <translation id="2292848386125228270"><ph name="PRODUCT_NAME" /> ကို သာမန်အသုံးပြုသူတစ်ယောက်အနေဖြင့် စတင်ပါ။ ပြင်ဆင်တည်းဖြတ်ရန်အတွက် စီမံခန့်ခွဲသူအနေဖြင့် ဖွင့်လိုလျှင် --no-sandbox အလံဖြင့် ပြန်ဖွင့်ပါ။</translation> <translation id="2294358108254308676"><ph name="PRODUCT_NAME" />ကို သင် တပ်ဆင် သင်သည် လိုပါသလား?</translation> +<translation id="2295864384543949385">ရလဒ် <ph name="NUM_RESULTS" /> ခု</translation> <translation id="2297705863329999812">ပုံနှိပ်စက်များကို ရှာဖွေရန်</translation> <translation id="2299734369537008228">ရွှေ့တုံး- <ph name="MIN_LABEL" /> မှ <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922"><ph name="APP_NAME" /> ကို စိတ်ကြိုက်ပြင်ဆင်ပြီး ထိန်းချုပ်ပါ</translation> @@ -1067,6 +1072,7 @@ <translation id="2485005079599453134">စကားဝှက်ကို ဤစက်တွင် သိမ်းလိုက်သည်</translation> <translation id="2485422356828889247">ဖြုတ်ရန်</translation> <translation id="2487067538648443797">လိပ်စာအသစ် ထည့်ရန်</translation> +<translation id="2487268545026948104">သင့်ဒေတာပြန်ယူရန် အင်တာနက်ချိတ်ပါ</translation> <translation id="2489829450872380594">နောက်တစ်ကြိမ်တွင် ဤ <ph name="DEVICE_TYPE" /> ကို ဖုန်းအသစ်က လော့ခ်ဖွင့်ပေးပါမည်။ Smart Lock ကို 'ဆက်တင်များ' တွင် ပိတ်နိုင်သည်။</translation> <translation id="2489918096470125693">ဖိုလ်ဒါ &ထည့်ရန်...</translation> <translation id="2490481887078769936">'<ph name="FILE_NAME" />' ကို စာရင်းမှ ဖယ်ရှားပြီးပါပြီ</translation> @@ -1118,6 +1124,7 @@ <translation id="2541706104884128042">အိပ်ချိန်သစ် သတ်မှတ်ရန်</translation> <translation id="2544853746127077729">ကွန်ရက်မှ စစ်မှန်ကြောင်းသက်သေပြချက်လက်မှတ်ကို ငြင်းပယ်ခဲ့သည်</translation> <translation id="2546283357679194313">ကူကီးများ နှင့် ဆိုက် ဒေတာ</translation> +<translation id="2547583314137677375">စင့်ခ်လုပ်ခြင်း ပိတ်ရန်</translation> <translation id="2549985041256363841">စတင်ရိုက်ကူးရန်</translation> <translation id="2550212893339833758">ဖလှယ်ထားသည့် မှတ်ဉာဏ်</translation> <translation id="2550596535588364872"><ph name="FILE_NAME" /> ကို <ph name="EXTENSION_NAME" /> အား ဖွင့်ခွင့်ပြုလိုပါသလား။</translation> @@ -1211,6 +1218,7 @@ <translation id="2672142220933875349">ဆိုးရွားသော crx ဖိုင်၊ ရှင်းလင်းခြင်း မအောင်မြင်ပါ။</translation> <translation id="2673135533890720193">သင်၏ ဘရောင်ဇာ မှတ်တမ်းကို ဖတ်ကြည့်ရန်</translation> <translation id="2673589024369449924">ဤအသုံးပြုသူအတွက် ဒက်စတော့ ဖြတ်လမ်း တစ်ခု ဖန်တီးမည်</translation> +<translation id="2674764818721168631">ပိတ်ရန်</translation> <translation id="2677748264148917807">ထွက်ခွာရန်</translation> <translation id="2678063897982469759">ပြန်ဖွင့်ထားရန်</translation> <translation id="268053382412112343">မှတ်&တမ်း</translation> @@ -1999,6 +2007,7 @@ <translation id="3780211714699334884">ဤတဘ်ကို မပိတ်မချင်း <ph name="ORIGIN" /> က <ph name="FOLDERNAME" /> ရှိ ဖိုင်များကို တည်းဖြတ်နိုင်ပါမည်</translation> <translation id="3780827508782506612">ဤစာမျက်နှာကို ဘာသာပြန်ပြီးပါပြီ</translation> <translation id="378312418865624974">ဒီကွန်ပျူတာ အတွက် ပင်ကိုယ် နံပါတ်စဉ်</translation> +<translation id="3784472333786002075">ကွတ်ကီးများဟူသည်မှာ ဝဘ်ဆိုက်များက ပြုလုပ်ထားသော ဖိုင်များဖြစ်သည်။ ကွက်ကီးနှစ်မျိုး ရှိပါသည်− ပင်မကွတ်ကီးများကို သင်ဝင်ကြည့်သော ဝဘ်ဆိုက်က ပြုလုပ်ခြင်းဖြစ်သည်။ ဝဘ်ဆိုက်ကို လိပ်စာဘားတွင် ပြထားသည်။ ပြင်ပကွတ်ကီးများကို အခြားဝဘ်ဆိုက်များက ပြုလုပ်ခြင်းဖြစ်သည်။ ဤဝဘ်ဆိုက်များတွင် သင်ဝင်ကြည့်သည့်ဝဘ်ဆိုက်ပေါ်တွင် တွေ့ရသည့်ကြော်ငြာ သို့မဟုတ် ပုံများကဲ့သို့ အကြောင်းအရာအချို့ ပါဝင်သည်။</translation> <translation id="3785308913036335955">အက်ပ်များ ဖြတ်လမ်းကို ပြပေးရန်</translation> <translation id="3785727820640310185">ဤဝဘ်ဆိုက်အတွက် သိမ်းဆည်းထားသည့် စကားဝှက်များ</translation> <translation id="3788401245189148511">ဖြစ်နိုင်ခဲ့သည်မှာ:</translation> @@ -2006,6 +2015,7 @@ <translation id="379082410132524484">သင်၏ကတ်သည် သက်တမ်းကုန်ဆုံးသွားပါပြီ</translation> <translation id="3792890930871100565">ပရင်တာများ ချိတ်ဆက်မှုဖြုတ်</translation> <translation id="3793395331556663376">ဖိုင်စနစ်များစွာကို ဖွင့်ထားသည်။</translation> +<translation id="379509625511193653">ပိတ်ထားသည်</translation> <translation id="3796648294839530037">စိတ်ကြိုက်ကွန်ယက်များ</translation> <translation id="3797739167230984533">သင့်အဖွဲ့အစည်းက သင်၏ <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> ကို စီမံခန့်ခွဲထားပါသည်<ph name="END_LINK" /></translation> <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />”အတွက် <ph name="SEARCH_ENGINE" /> ကို ရှာဖွေပါ</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">ဆောင်ရွက်နေဆဲ</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">သင့်ထံတွင် မကြာသေးခင်က မှတ်သားထားသည့် WebRTC ဖြစ်စဉ်မှတ်တမ်းများ မရှိပါ။</translation> +<translation id="3955163004258753966">အဆင့်မြှင့်ခြင်း စတင်ရာတွင် အမှားရှိနေသည်</translation> <translation id="3955193568934677022">ကာကွယ်ထားသည့် အကြောင်းအရာများကို ဆိုက်များအား ဖွင့်ခွင့်ပြုပါ (အကြံပြုထားသည်)</translation> <translation id="3955896417885489542">စနစ်ထည့်သွင်းမှုပြီးနောက် Google Play ရွေးချယ်စရာများကို ပြန်စစ်ရန်</translation> <translation id="3956702100721821638">Google Play သို့ ချိတ်ဆက်၍မရပါ။</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{စာမျက်နှာကို ပိတ်ရန်}other{စာမျက်နှာများကို ပိတ်ရန်}}</translation> <translation id="4044612648082411741">သင်၏ အသိအမှတ်ပြုလက်မှတ် စကားဝှက်ကို ထည့်ပါ</translation> <translation id="404493185430269859">ပုံသေ ရှာဖွေရေး အင်ဂျင်</translation> +<translation id="4046013316139505482">ဤနောက်ဆက်တွဲများက ယခုဝဘ်ဆိုက်ပေါ်ရှိ အချက်အလက်များကို ကြည့်ရှုပြီး ပြောင်းလဲရန်မလိုအပ်ပါ။</translation> <translation id="4046123991198612571">နောက်တစ်ပုဒ်</translation> <translation id="4050225813016893843">အထောက်အထားစိစစ်ခြင်း နည်းလမ်း</translation> <translation id="4052120076834320548">သေး</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245"><ph name="LANGUAGE" /> ကို ဘယ်တော့မှ ဘာသာမပြန်ပါနှင့်</translation> <translation id="4332976768901252016">'မိဘ အထိန်းအချုပ်များ' ကို စနစ်ထည့်သွင်းခြင်း</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 RSA လျှို့ဝှက်ကုဒ်သွင်းမှု နှင့်အတူ</translation> +<translation id="4336434711095810371">ဒေတာအားလုံး ရှင်းထုတ်ရန်</translation> <translation id="4336979451636460645">ကွန်ယက်မှတ်စုစာရင်းများအတွက် <ph name="DEVICE_LOG_LINK" /> ကိုကြည့်ပါ</translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> သည် "<ph name="EXTENSION_NAME" />" အက်ပ် နှင့် ဆက်သွယ် လိုသည်</translation> <translation id="4345587454538109430">ပြုပြင်...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">ပကတိအသွင် စက်စနစ်ကို စီစဉ်သတ်မှတ်နေသည်။ မိနစ်အနည်းငယ် ကြာနိုင်ပါသည်။</translation> <translation id="4480590691557335796">Chrome သည် သင့်ကွန်ပျူတာပေါ်ရှိ အန္တရာယ်ရှိသော ဆော့ဖ်ဝဲများကို ရှာဖွေဖယ်ရှားပေးနိုင်သည်</translation> <translation id="4481530544597605423">ချိတ်ဆက်မှု ဖြုတ်ထားသည့် စက်ပစ္စည်းများ</translation> +<translation id="4488502501195719518">ဒေတာအားလုံး ရှင်းထုတ်မလား။</translation> <translation id="4495419450179050807">ဤစာမျက်နှာတွင် မပြပါနှင့်</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> ရပ်တန့်သွားသည်</translation> <translation id="450099669180426158">အာမေဍိတ်သံ သင်္ကေတ အိုင်ကွန်</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">လိပ်စာ၊ ဖုန်းနံပါတ်နှင့် အခြားအရာများ</translation> <translation id="4572659312570518089">"<ph name="DEVICE_NAME" />" သို့ချိတ်ဆက်နေစဉ် အတည်ပြုခြင်းပယ်ဖျက်လိုက်သည်။</translation> <translation id="4572779512957829735">သင့်လုံခြုံရေးကီးအတွက် ပင်နံပါတ် ထည့်ပါ</translation> +<translation id="4573515936045019911">Linux အဆင့်မြှင့်ရန် ကွန်ရက်ချိတ်ဆက်မှု လိုအပ်သည်။ အင်တာနက်ချိတ်ပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="457386861538956877">နောက်ထပ်...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535"><ph name="HOST_NAME" />ကို ကာစ်တ်မလုပ်နိုင်ပါ။</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">စနစ်ထည့်သွင်းနေပါသည်</translation> <translation id="4996978546172906250">မှတစ်ဆင့် မျှဝေရန်</translation> <translation id="4997086284911172121">အင်တာနက် ချိတ်ဆက်မှု မရှိပါ။</translation> +<translation id="4998430619171209993">ဖွင့်ထားသည်</translation> <translation id="4998873842614926205">အပြောင်းအလဲများကို အတည်ပြုရန်</translation> <translation id="5000922062037820727">ပိတ်ဆို့ထား၏ (အကြံပြုထား)</translation> <translation id="5008936837313706385">လုပ်ဆောင်ချက်အမည်</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">မျက်နှာပြင် အပြည့်ကို ဝင်ရန်</translation> <translation id="514575469079499857">သင့်တည်နေရာကို သိရှိနိုင်ရန် သင်၏ IP လိပ်စာကို အသုံးပြုပါ (မူရင်း)</translation> <translation id="5146995429444047494"><ph name="ORIGIN" /> အတွက် အကြောင်းကြားချက်များ ပိတ်ထားသည်</translation> +<translation id="5147103632304200977">ဝဘ်ဆိုက်က HID စက်များကို အသုံးပြုလိုသည့်အခါ ခွင့်တောင်းရန် (အကြံပြုထားသည်)</translation> <translation id="5150254825601720210">Netscape အသိမှတ်ပြုလက်မှတ် SSL ဆာဗာအမည်</translation> <translation id="5151354047782775295">နေရာလွတ်ပြုလုပ်ပါ။ သို့မဟုတ်လျှင် ဒေတာရွေးချယ်ခြင်းကို အလိုအလျောက်ဖျက်သွားပါမည်</translation> <translation id="5153234146675181447">ဖုန်းကို မေ့ပစ်ပါ</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Chrome မှစကားဝှက်များကို ထုတ်ယူပါ</translation> <translation id="5355099869024327351">သင့်အား အကြောင်းကြားချက်များ ပြနိုင်ရန် Assistant ကို ခွင့်ပြုပါ</translation> <translation id="5355926466126177564">Omnibox မှ သင်ရှာဖွေသောအခါ စာမျက်နှာမှ ပြသသည်များကို တိုးချဲလိုင်း "<ph name="EXTENSION_NAME" />" မှ ပြောင်းလဲခဲ့၏။</translation> +<translation id="5359910752122114278">ရလဒ် ၁ ခု</translation> <translation id="5360150013186312835">ကိရိယာဘားတွင် ပြရန်</translation> <translation id="5362741141255528695">ကိုယ်ပိုင် သော့ ဖိုင် ရွေးရန်</translation> <translation id="5363109466694494651">Powerwash နှင့် ယခင်အခြေအနေပြန်သွားရန်</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">ချိတ်ဆက်မှုထည့်ခြင်းကို သင်၏ စီမံခန့်ခွဲသူက ပိတ်ထားပါသည်</translation> <translation id="5701080607174488915">ဆာဗာမှနေ၍ မူဝါဒကို ရယူရတွင် အမှားအယွင်းရှိနေသည်။</translation> <translation id="5701381305118179107">အလယ်</translation> +<translation id="5701441174893770082">Linux အဆင့်မြှင့်ခြင်းက ဘက်ထရီ သိသာစွာကုန်စေသည်။ သင့်စက်ကို အားသွင်းကိရိယာနှင့် ချိတ်ဆက်ပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="5702898740348134351">&ရှာဖွေရေးစက်ကို တည်းဖြတ်ရန်...</translation> <translation id="570302979952009979">ဤလက်ဗွေအတွက် အမည်တစ်ခုရွေးပါ</translation> <translation id="5704875434923668958">စင့်ခ်လုပ်နေသည့်အကောင့်</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - USB စက်ပစ္စည်း ချိတ်ဆက်ထားသည်</translation> <translation id="6028117231645531007">လက်ဗွေထည့်ရန်</translation> <translation id="6029587122245504742">အနှေးဆုံး</translation> +<translation id="6032715498678347852">ဤဝဘ်ဆိုက်သို့ ဝင်ကြည့်ခွင့်ပြုရန် နောက်ဆက်တွဲကို ကလစ်နှိပ်ပါ။</translation> <translation id="6032912588568283682">ဖိုင်စနစ်များ</translation> <translation id="6038929619733116134">စိတ်အနှောင့်အယှက်ဖြစ်စေသော (သို့) အထင်အမြင်မှားစေသော ကြော်ငြာများ ပြလျှင် ဝဘ်ဆိုက်ကို ပိတ်သည်</translation> <translation id="6039651071822577588">ကွန်ရက် ပိုင်ဆိုင်မှု အဘိဓာန် ပုံပျက်သွားပြီ</translation> @@ -3904,6 +3924,7 @@ <translation id="6582080224869403177">သင့်လုံခြုံရေးကို အဆင့်မြှင့်ရန် <ph name="DEVICE_TYPE" /> ကို ပြင်ဆင်သတ်မှတ်ပါ။</translation> <translation id="6584878029876017575">Microsoft တစ်ဘဝစာ လက်မှတ်ထိုးခြင်း</translation> <translation id="6586451623538375658">အခြေခံ မောက်စ် ခလုတ် ဖလှယ်ရန်</translation> +<translation id="6586604979641883411">Linux အဆင့်မြှင့်ရန် အနည်းဆုံး သိုလှောင်ခန်းနေရာ <ph name="REQUIRED_SPACE" /> လိုအပ်သည်။ သင့်စက်တွင် နေရာလွတ်ပြုလုပ်ပြီး ထပ်စမ်းကြည့်ပါ။</translation> <translation id="6590458744723262880">ဖိုင်တွဲအမည်ကို ပြောင်းခြင်း</translation> <translation id="6592267180249644460">WebRTC ရိုက်ထားသည့် လော့<ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">သင်၏လက်ဗွေကို ထည့်လိုက်ပါပြီ</translation> @@ -4014,6 +4035,7 @@ <translation id="6757101664402245801">URL ကို မိတ္တူကူးပြီးပါပြီ</translation> <translation id="6758056191028427665">ကျွန်ုပ်တို့၏ ဝန်ဆောင်မှုများအတွက် စိတ်ကျေနပ်မှုမည်မျှရှိကြောင်း ပြောပြပေးပါ။</translation> <translation id="6759193508432371551">စက်ရုံဆက်တင် ပြန်လည်သပ်မှတ်</translation> +<translation id="6762833852331690540">ဖွင့်ထားသည်</translation> <translation id="6767566652486411142">အခြားဘာသာစကားတစ်ခု ရွေးရန်...</translation> <translation id="6767639283522617719">ဒိုမိန်းသို့ ချိတ်ဆက်၍မရပါ။ အဖွဲ့အစည်းဌာနအတွက် ဆက်တင်များ မှန်ကန်ခြင်းရှိမရှိ သေချာစစ်ဆေးပါ။</translation> <translation id="6769712124046837540">ပရင်တာ ထည့်နေ…</translation> @@ -4135,6 +4157,7 @@ <translation id="6935286146439255109">စာရွက်ဗန်း မရှိပါ</translation> <translation id="693807610556624488">"<ph name="DEVICE_NAME" />" သို့တည်းဖြတ်ခြင်းလုပ်ဆောင်ချက် ရည်ညွှန်းချက်၏ ရှည်လျားမှုအများဆုံးကို ကျော်လွန်သွားပါပြီ။</translation> <translation id="6938386202199793006">သင်သိမ်းထားသည့် ပုံနှိပ်စက် ၁ ခုရှိသည်။</translation> +<translation id="6938789263968032501">လူများ</translation> <translation id="6941937518557314510">ကျေးဇူးပြုပြီး သင်၏ လက်မှတ်ဖြင့် <ph name="HOST_NAME" /> ထံသို့ စိစစ်ခံရန် <ph name="TOKEN_NAME" />သို့ လက်မှတ်ထိုး ဝင်ပါ။</translation> <translation id="6943176775188458830">ပုံနှိပ်ခြင်းကို ဖယ်ဖျက်ရန်</translation> <translation id="6943836128787782965">HTTP မှာ မအောင်မြင်ခဲ့</translation> @@ -4159,6 +4182,7 @@ <translation id="6970856801391541997">တိကျသည့် စာမျက်နှာများ ပရင့်ထုတ်မည်</translation> <translation id="6972180789171089114">အသံ/ဗီဒီယို</translation> <translation id="6972553992270299730">ဤဖိုင်တွဲတွင် စနစ်ဖိုင်များ ပါဝင်သည့်အတွက် <ph name="ORIGIN" /> က ၎င်းထဲရှိ ဖိုင်များကို ဖွင့်၍မရပါ</translation> +<translation id="6972629891077993081">HID စက်များ</translation> <translation id="6972754398087986839">စကြရအောင်</translation> <translation id="6973611239564315524">Debian 10 (Buster) သို့ အဆင့်မြှင့်တင်နိုင်ပါပြီ</translation> <translation id="6974609594866392343">အော့ဖ်လိုင်း သရုပ်ပြမုဒ်</translation> @@ -4483,8 +4507,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">နောက်ခံ စာမျက်နှာ: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129"><ph name="DEVICE_NAME" /> ထံမှ ဖုန်းခေါ်ဆိုမှု</translation> +<translation id="7431719494109538750">HID စက်များ မရှိပါ</translation> <translation id="7433692219247014412">{COUNT,plural, =0{အားလုံးကို ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}=1{ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}other{(#) ခုလုံးကို ဝင်းဒိုးအသစ်တွင် ဖွင့်ရန်}}</translation> <translation id="7434509671034404296">ပြုစုသူ</translation> +<translation id="7434635829372401939">သင့်ဆက်တင်များ စင့်ခ်လုပ်ခြင်း</translation> <translation id="7436921188514130341">စိတ်မကောင်းပါ။ အမည်ပြောင်းနေစဉ် မှားယွင်းမှုတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။</translation> <translation id="7438976808740265764">Flash Player ကို ၂၀၂၀ ဒီဇင်ဘာ နောက်ပိုင်းတွင် ပံ့ပိုးတော့မည်မဟုတ်ပါ။</translation> <translation id="7441736921018636843">ဤဆက်တင်ကို ပြောင်းရန်အတွက် <ph name="BEGIN_LINK" />စင့်ခ်ကို ပြင်ဆင်သတ်မှတ်<ph name="END_LINK" /> ပြီး သင်၏ စင့်ခ်လုပ်ထားသည့် စကားဝှက်စာကို ဖယ်ရှားပါ</translation> @@ -4806,6 +4832,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - တွဲချိတ်ပြီးပါပြီ</translation> <translation id="7870730066603611552">စနစ်ထည့်သွင်းပြီးနောက် စင့်ခ်လုပ်ခြင်းနည်းလမ်းများကို သုံးသပ်ရန်</translation> <translation id="7870790288828963061">ပိုသစ်သည့် ဗားရှင်းဖြင့် Kiosk အက်ပ် တစ်ခုကိုမှ မတွေ့ခဲ့ပါ။ ကျေးဇူးပြုပြီး USB အချောင်းကို ဖယ်ရှားလိုက်ပါ။</translation> +<translation id="787268756490971083">ပိတ်ထားသည်</translation> <translation id="7874257161694977650">Chrome နောက်ခံပုံများ</translation> <translation id="7877451762676714207">မသိရ ဆာဗာ အမှား။ ကျေးဇူးပြုပြီး ထပ်စမ်းပါ၊ သို့မဟုတ် ဆာဗာ စီမံအု်ပချုပ်သူကို ဆက်သွယ်ပါ။</translation> <translation id="7877680364634660272">လှည့်လည်ကြည့်ရှုရန်</translation> @@ -4833,6 +4860,7 @@ <translation id="7908378463497120834">ဆော်ရီး၊ အနည်းဆုံးအားဖြင့် သင့်ပြင်ပ သိုလှောင်မှု စက်ပစ္စည်းပေါ်က အကန့် တစ်ခုကို တပ်ဆင်မထားရန် လိုသည်။</translation> <translation id="7909969815743704077">ရုပ်ဖျက်လက် ဒေါင်းလုဒ် လုပ်ခဲ့သည်</translation> <translation id="7910768399700579500">ဖိုလ်ဒါ အသစ်</translation> +<translation id="7910831464510799808">ဖွင့်ရန်</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">ဆာဗာတွင် သင်၏စကားဝှက်ကို ပြောင်းထားပါသည်။ ထွက်လိုက်ပြီး လက်မှတ်ထိုးပြန်ဝင်ကြည့်ပါ။</translation> <translation id="7915457674565721553">မိဘ အထိန်းအချုပ်များ ထည့်သွင်းရန် အင်တာနက်သို့ ချိတ်ဆက်ပါ</translation> @@ -5770,6 +5798,7 @@ <translation id="934503638756687833">လိုအပ်လျှင် ဤနေရာတွင် ဖော်ပြမထားသော အရာများကို ဖယ်ရှားလိုက်ပါမည်။ <a href="<ph name="URL" />">မလိုလားအပ်သည့် ဆော့ဖ်ဝဲမှ ကာကွယ်မှု</a> အကြောင်း ပိုမိုလေ့လာရန် Chrome ပုဂ္ဂိုလ်ရေးဆိုင်ရာ စက္ကူဖြူမူဝါဒတွင် ကြည့်ပါ။</translation> <translation id="935490618240037774">သင့်ဝဘ်လိပ်စာများ၊ မှတ်တမ်း၊ စကားဝှက်များနှင့် အခြားဆက်တင်များကို သင့် Google အကောင့်သို့ စင့်ခ်လုပ်ထားမည် ဖြစ်သောကြောင့် သင့်စက်ပစ္စည်းများအားလုံးတွင် ၎င်းတို့ကို အသုံးပြုနိုင်ပါသည်။</translation> <translation id="935854577147268200">Smart Lock ဖုန်း ပြောင်းသွားပါပြီ။ Smart Lock ကို အပ်ဒိတ်လုပ်ရန် စကားဝှက်ထည့်ပါ။ နောက်တစ်ကြိမ်တွင် သင့်ဖုန်းသည် <ph name="DEVICE_TYPE" /> ကို လော့ခ်ဖွင့်ပေးပါမည်။ Smart Lock ကို 'ဆက်တင်များ' တွင် ပိတ်နိုင်သည်</translation> +<translation id="93610034168535821">ဝဘ်ဆိုက်များက အသုံးပြုထားသည့် စုစုပေါင်းသိုလှောင်ခန်း-</translation> <translation id="936801553271523408">စနစ် ချွတ်ယွင်းချက် စူးစမ်းမှု ဒေတာ</translation> <translation id="93766956588638423">ပရိုဂရမ်အဆက်အား ပြင်ဆင်ရန်</translation> <translation id="938339467127511841">Linux (စမ်းသပ်ဆော့ဖ်ဝဲ) သိုလှောင်ခန်း</translation> @@ -5791,6 +5820,7 @@ <translation id="964286338916298286">သင်၏ IT စီမံခန့်ခွဲသူက သင့်ကိရိယာ အတွက် Chrome Goodies ကို ပိတ်ထားသည်။</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{အပလီကေးရှင်း}other{အပလီကေးရှင်းများ}}</translation> <translation id="965211523698323809">သင်၏ <ph name="DEVICE_TYPE" /> မှနေ၍ မိုဘိုင်းမက်ဆေ့ဂျ်များ ပို့ခြင်း၊ လက်ခံခြင်းတို့ ပြုလုပ်နိုင်သည်။ <ph name="LINK_BEGIN" />ပိုမိုလေ့လာရန်<ph name="LINK_END" /></translation> +<translation id="967398046773905967">HID စက်များ အသုံးပြုရန် မည်သည့်ဝဘ်ဆိုက်ကိုမျှ ခွင့်မပြုပါနှင့်</translation> <translation id="967624055006145463">သိမ်းဆည်းထားသည့် ဒေတာ</translation> <translation id="968000525894980488">Google Play ဝန်ဆောင်မှုများကို ဖွင့်ပါ။</translation> <translation id="968037381421390582">“<ph name="SEARCH_TERMS" />” ကို ကူးထည့်ပြီး ရှာဖွေပါ</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index a0cbee6..4a86bfe2 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stop</translation> <translation id="1110155001042129815">Wachten</translation> <translation id="1112420131909513020">Achtergrondtabblad gebruikt Bluetooth</translation> +<translation id="1113042067630273625">Hiermee wordt <ph name="TOTAL_USAGE" /> aan opgeslagen sitegegevens gewist.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">Je computer bevat een TPM-beveiligingsapparaat (Trusted Platform Module) dat wordt gebruikt om veel van de belangrijke beveiligingsfuncties in Chrome OS te implementeren. Ga voor meer informatie naar het Helpcentrum voor Chromebooks: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Bug indienen</translation> <translation id="1741314857973421784">Doorgaan</translation> <translation id="1743570585616704562">Niet herkend</translation> +<translation id="1743846852744439013">Je wordt uitgelogd bij alle sites, ook in geopende tabbladen</translation> <translation id="1743970419083351269">Downloadbalk sluiten</translation> <translation id="1744060673522309905">Kan het apparaat niet aan het domein koppelen. Zorg ervoor dat je het aantal apparaten dat je kunt toevoegen niet overschrijdt.</translation> <translation id="1744108098763830590">achtergrondpagina</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Services</translation> <translation id="18139523105317219">EDI Partynaam</translation> <translation id="1815083418640426271">Plakken als tekst zonder opmaak</translation> +<translation id="1815181278146012280">Vragen als een site toegang wil hebben tot HID-apparaten</translation> <translation id="181577467034453336">Nog <ph name="NUMBER_OF_VIEWS" /> meer...</translation> <translation id="1816036116994822943">Scansnelheid van toetsenbord</translation> <translation id="1817871734039893258">Microsoft-bestandsherstel</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Gemiddeld (aanbevolen)</translation> <translation id="2077129598763517140">Hardwareversnelling gebruiken indien beschikbaar</translation> <translation id="2078019350989722914">Melding voor sluiten (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Uit</translation> <translation id="2079053412993822885">Als je een van je eigen certificaten verwijdert, kun je deze niet langer gebruiken om jezelf te identificeren.</translation> <translation id="2079545284768500474">Ongedaan maken</translation> <translation id="2080070583977670716">Meer instellingen</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Vragen wanneer een site Bluetooth-apparaten in de buurt wilt detecteren (aanbevolen)</translation> <translation id="2292848386125228270">Start <ph name="PRODUCT_NAME" /> als een normale gebruiker. Als je voor ontwikkelingsdoeleinden moet uitvoeren als root, voer je opnieuw uit met de markering '--no-sandbox'.</translation> <translation id="2294358108254308676">Wil je <ph name="PRODUCT_NAME" /> installeren?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultaten</translation> <translation id="2297705863329999812">Printers zoeken</translation> <translation id="2299734369537008228">Schuifregelaar: <ph name="MIN_LABEL" /> - <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922"><ph name="APP_NAME" /> aanpassen en beheren</translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Wachtwoord opgeslagen op dit apparaat</translation> <translation id="2485422356828889247">Installatie ongedaan maken</translation> <translation id="2487067538648443797">Nieuwe bladwijzer toevoegen</translation> +<translation id="2487268545026948104">Maak verbinding met internet om je gegevens te herstellen</translation> <translation id="2489829450872380594">De volgende keer wordt deze <ph name="DEVICE_TYPE" /> ontgrendeld met een nieuwe telefoon. Je kunt Smart Lock uitschakelen in Instellingen.</translation> <translation id="2489918096470125693">&Map toevoegen...</translation> <translation id="2490481887078769936"><ph name="FILE_NAME" /> is verwijderd uit lijst</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Nieuwe bedtijd ingesteld</translation> <translation id="2544853746127077729">Verificatiecertificaat geweigerd door netwerk</translation> <translation id="2546283357679194313">Cookies en sitegegevens</translation> +<translation id="2547583314137677375">Synchronisatie uitschakelen</translation> <translation id="2549985041256363841">Opname starten</translation> <translation id="2550212893339833758">Wisselgeheugen</translation> <translation id="2550596535588364872">Toestaan dat <ph name="EXTENSION_NAME" /> het bestand <ph name="FILE_NAME" /> opent?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Beschadigd crx-bestand, uitpakken mislukt.</translation> <translation id="2673135533890720193">Je browsegeschiedenis lezen</translation> <translation id="2673589024369449924">Een snelkoppeling voor deze gebruiker maken</translation> +<translation id="2674764818721168631">Uit</translation> <translation id="2677748264148917807">Verlaten</translation> <translation id="2678063897982469759">Opnieuw inschakelen</translation> <translation id="268053382412112343">Geschi&edenis</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> kan bestanden bewerken in <ph name="FOLDERNAME" /> totdat je dit tabblad sluit</translation> <translation id="3780827508782506612">Deze pagina is vertaald</translation> <translation id="378312418865624974">Een unieke ID voor deze computer lezen</translation> +<translation id="3784472333786002075">Cookies zijn bestanden die worden gemaakt door websites. Er zijn twee typen cookies: first-party cookies worden gemaakt door de site die je bezoekt. Je vindt de site in de adresbalk. Cookies van derden (third-party cookies) worden gemaakt door andere sites. Deze sites zijn eigenaar van een deel van de content (zoals advertenties of afbeeldingen) die je ziet op de website die je bezoekt.</translation> <translation id="3785308913036335955">Snelle link voor apps weergeven</translation> <translation id="3785727820640310185">Opgeslagen wachtwoorden voor deze site</translation> <translation id="3788401245189148511">De apps/extensies zouden nu het volgende kunnen doen:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Je pas is verlopen</translation> <translation id="3792890930871100565">Printers ontkoppelen</translation> <translation id="3793395331556663376">Te veel bestandssystemen geopend.</translation> +<translation id="379509625511193653">Uit</translation> <translation id="3796648294839530037">Favoriete netwerken:</translation> <translation id="3797739167230984533">Je <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> wordt beheerd<ph name="END_LINK" /> door je organisatie</translation> <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> door&zoeken op '<ph name="SEARCH_TERMS" />'</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">In behandeling</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> <translation id="3954953195017194676">Je hebt geen onlangs vastgelegde WebRTC-gebeurtenislogboeken.</translation> +<translation id="3955163004258753966">Fout bij starten van upgrade</translation> <translation id="3955193568934677022">Toestaan dat sites beschermde content afspelen (aanbevolen)</translation> <translation id="3955896417885489542">Google Play-opties bekijken na instellen</translation> <translation id="3956702100721821638">Kan Google Play niet bereiken</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Pagina afsluiten}other{Pagina's afsluiten}}</translation> <translation id="4044612648082411741">Geef je certificaatwachtwoord op</translation> <translation id="404493185430269859">Standaardzoekmachine</translation> +<translation id="4046013316139505482">Deze extensies hoeven geen informatie op deze site te bekijken en te wijzigen.</translation> <translation id="4046123991198612571">Volgend nummer</translation> <translation id="4050225813016893843">Verificatiemethode</translation> <translation id="4052120076834320548">Heel klein</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245"><ph name="LANGUAGE" /> nooit vertalen</translation> <translation id="4332976768901252016">Ouderlijk toezicht instellen</translation> <translation id="4333854382783149454">PKCS nr. 1 SHA-1 met RSA-encryptie</translation> +<translation id="4336434711095810371">Alle gegevens wissen</translation> <translation id="4336979451636460645">Zie voor netwerklogboeken: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> wil communiceren met de app '<ph name="EXTENSION_NAME" />'</translation> <translation id="4345587454538109430">Configureren...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">De virtuele machine wordt geconfigureerd. Dit kan enkele minuten duren.</translation> <translation id="4480590691557335796">Chrome kan schadelijke software op je computer vinden en verwijderen</translation> <translation id="4481530544597605423">Ontkoppelde apparaten</translation> +<translation id="4488502501195719518">Alle gegevens wissen?</translation> <translation id="4495419450179050807">Niet op deze pagina weergeven</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> is gecrasht</translation> <translation id="450099669180426158">Uitroeptekenpictogram</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adressen, telefoonnummers en meer</translation> <translation id="4572659312570518089">Verificatie geannuleerd tijdens verbinden met '<ph name="DEVICE_NAME" />'.</translation> <translation id="4572779512957829735">Geef de pincode van je beveiligingssleutel op</translation> +<translation id="4573515936045019911">Er is een netwerkverbinding vereist om Linux te upgraden. Maak verbinding met internet en probeer het opnieuw.</translation> <translation id="457386861538956877">Meer...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Kan <ph name="HOST_NAME" /> niet casten.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Instellen</translation> <translation id="4996978546172906250">Delen via</translation> <translation id="4997086284911172121">Geen internetverbinding.</translation> +<translation id="4998430619171209993">Aan</translation> <translation id="4998873842614926205">Wijzigingen bevestigen</translation> <translation id="5000922062037820727">Geblokkeerd (aanbevolen)</translation> <translation id="5008936837313706385">Naam van activiteit</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Volledig scherm openen</translation> <translation id="514575469079499857">Je IP-adres gebruiken om je locatie te bepalen (standaard)</translation> <translation id="5146995429444047494">Meldingen voor <ph name="ORIGIN" /> zijn geblokkeerd</translation> +<translation id="5147103632304200977">Vragen als een site toegang wil hebben tot HID-apparaten (aanbevolen)</translation> <translation id="5150254825601720210">SSL-servernaam van Netscape-certificaat</translation> <translation id="5151354047782775295">Maak schijfruimte vrij of bepaalde gegevens kunnen automatisch worden verwijderd</translation> <translation id="5153234146675181447">Telefoon vergeten</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Wachtwoorden exporteren uit Chrome</translation> <translation id="5355099869024327351">Hiermee kan de Assistent meldingen aan jou weergeven</translation> <translation id="5355926466126177564">De extensie '<ph name="EXTENSION_NAME" />' heeft gewijzigd welke pagina wordt weergegeven wanneer je vanuit de omnibox zoekt.</translation> +<translation id="5359910752122114278">1 resultaat</translation> <translation id="5360150013186312835">In werkbalk weergeven</translation> <translation id="5362741141255528695">Selecteer een privésleutelbestand.</translation> <translation id="5363109466694494651">Powerwash en terugzetten</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">'Verbinding toevoegen' is uitgeschakeld door je beheerder</translation> <translation id="5701080607174488915">Fout bij het ophalen van beleid van de server.</translation> <translation id="5701381305118179107">Centreren</translation> +<translation id="5701441174893770082">Als je Linux upgradet, kan je batterij aanzienlijk sneller leeglopen. Sluit je apparaat aan op een oplader en probeer het opnieuw.</translation> <translation id="5702898740348134351">Zo&ekmachines bewerken...</translation> <translation id="570302979952009979">Kies een naam voor deze vingerafdruk</translation> <translation id="5704875434923668958">Synchroniseren naar</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" />: USB-apparaat verbonden</translation> <translation id="6028117231645531007">Vingerafdruk toevoegen</translation> <translation id="6029587122245504742">Langzaamst</translation> +<translation id="6032715498678347852">Klik op een extensie om de extensie toegang tot deze site te geven.</translation> <translation id="6032912588568283682">Bestandssysteem</translation> <translation id="6038929619733116134">Blokkeren als site opdringerige of misleidende advertenties weergeeft</translation> <translation id="6039651071822577588">Woordenboek van netwerkproperty is onjuist opgemaakt</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Reset je <ph name="DEVICE_TYPE" /> om je beveiliging te upgraden.</translation> <translation id="6584878029876017575">Microsoft-ondertekening van levensduur</translation> <translation id="6586451623538375658">Primaire muisknop omwisselen</translation> +<translation id="6586604979641883411">Er is ten minste <ph name="REQUIRED_SPACE" /> aan vrije schijfruimte vereist om Linux te upgraden. Maak ruimte vrij op je apparaat en probeer het opnieuw.</translation> <translation id="6590458744723262880">Naam van map wijzigen</translation> <translation id="6592267180249644460">WebRTC-logboek vastgelegd op <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Je vingerafdruk is geregistreerd</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL gekopieerd</translation> <translation id="6758056191028427665">Laat ons weten of we goed bezig zijn.</translation> <translation id="6759193508432371551">Terugzetten op fabrieksinstellingen</translation> +<translation id="6762833852331690540">Aan</translation> <translation id="6767566652486411142">Een andere taal kiezen…</translation> <translation id="6767639283522617719">Kan het domein niet koppelen. Zorg ervoor dat je de juiste instellingen gebruikt voor de organisatie-eenheid.</translation> <translation id="6769712124046837540">Printer toevoegen…</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Er ontbreekt een papierlade</translation> <translation id="693807610556624488">Schrijfbewerking overschrijdt de maximumlengte van het kenmerk voor: <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">Je hebt 1 opgeslagen printer.</translation> +<translation id="6938789263968032501">Mensen</translation> <translation id="6941937518557314510">Log in bij <ph name="TOKEN_NAME" /> om uzelf bij <ph name="HOST_NAME" /> te verifiëren met je certificaat.</translation> <translation id="6943176775188458830">Afdrukken annuleren</translation> <translation id="6943836128787782965">Ophalen van HTTP mislukt</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Specifieke pagina's afdrukken</translation> <translation id="6972180789171089114">Audio/video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> kan geen bestanden openen in deze map omdat deze systeembestanden bevat</translation> +<translation id="6972629891077993081">HID-apparaten</translation> <translation id="6972754398087986839">Aan de slag</translation> <translation id="6973611239564315524">Er is een upgrade beschikbaar voor Debian 10 (Buster)</translation> <translation id="6974609594866392343">Offline demomodus</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Achtergrondpagina: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Gesprek van <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Geen HID-apparaten gevonden</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Alles openen in &nieuw venster}=1{Openen in &nieuw venster}other{Alles (#) openen in &nieuw venster}}</translation> <translation id="7434509671034404296">Ontwikkelaar</translation> +<translation id="7434635829372401939">Je instellingen synchroniseren</translation> <translation id="7436921188514130341">Er is een fout opgetreden tijdens het wijzigen van de naam.</translation> <translation id="7438976808740265764">Flash Player wordt na december 2020 niet meer ondersteund.</translation> <translation id="7441736921018636843">Als je deze instelling wilt wijzigen, moet je de <ph name="BEGIN_LINK" />synchronisatie resetten<ph name="END_LINK" /> om de wachtwoordzin voor synchronisatie te verwijderen</translation> @@ -4807,6 +4833,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - gekoppeld</translation> <translation id="7870730066603611552">Synchronisatieopties bekijken na de installatie</translation> <translation id="7870790288828963061">Er zijn geen Kiosk-apps met een nieuwere versie gevonden. Er is niets om te updaten. Verwijder de USB-stick.</translation> +<translation id="787268756490971083">Uit</translation> <translation id="7874257161694977650">Chrome-achtergronden</translation> <translation id="7877451762676714207">Onbekende serverfout. Probeer het opnieuw of neem contact op met de serverbeheerder.</translation> <translation id="7877680364634660272">Rondleiding</translation> @@ -4834,6 +4861,7 @@ <translation id="7908378463497120834">Ten minste één partitie op je externe opslagapparaat kan niet worden gekoppeld.</translation> <translation id="7909969815743704077">Gedownload in incognitomodus</translation> <translation id="7910768399700579500">&Nieuwe map</translation> +<translation id="7910831464510799808">Aan</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Je wachtwoord is gewijzigd op de server. Log uit en weer in.</translation> <translation id="7915457674565721553">Maak verbinding met internet om ouderlijk toezicht in te stellen</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Items die hier niet worden vermeld, worden zo nodig ook verwijderd. Lees meer informatie over <a href="<ph name="URL" />">bescherming tegen ongewenste software</a> in de whitepaper over privacy in Chrome.</translation> <translation id="935490618240037774">Je bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden gesynchroniseerd met je Google-account, zodat je ze op al je apparaten kunt gebruiken.</translation> <translation id="935854577147268200">Telefoon voor Smart Lock gewijzigd. Geef je wachtwoord op om Smart Lock te updaten. De volgende keer wordt je <ph name="DEVICE_TYPE" /> ontgrendeld met je telefoon. Je kunt Smart Lock uitschakelen in Instellingen.</translation> +<translation id="93610034168535821">Totale opslagruimte gebruikt door sites:</translation> <translation id="936801553271523408">Diagnostische systeemgegevens</translation> <translation id="93766956588638423">Extensie repareren</translation> <translation id="938339467127511841">Linux-opslag (bèta)</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Je IT-beheerder heeft Chrome-extra's uitgeschakeld voor je apparaat.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{App}other{Apps}}</translation> <translation id="965211523698323809">Sms'jes verzenden en ontvangen op je <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Meer informatie<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Sites geen toegang tot HID-apparaten geven</translation> <translation id="967624055006145463">Opgeslagen gegevens</translation> <translation id="968000525894980488">Schakel Google Play-services in.</translation> <translation id="968037381421390582">Pl&akken en zoeken naar '<ph name="SEARCH_TERMS" />'</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 746d147..09ba143 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -112,6 +112,7 @@ <translation id="1150565364351027703">Solbriller</translation> <translation id="1151917987301063366">Tillat alltid <ph name="HOST" /> å bruke sensorene</translation> <translation id="1153356358378277386">Tilkoblede enheter</translation> +<translation id="1153636665119721804">Google Avansert beskyttelse-programmet</translation> <translation id="1161575384898972166">Logg på <ph name="TOKEN_NAME" /> for å eksportere klientsertifikatet.</translation> <translation id="1163931534039071049">&Vis rammekilde</translation> <translation id="1164674268730883318">Vis du slå av Smart Lock for <ph name="DEVICE_TYPE" />?</translation> @@ -222,6 +223,7 @@ <translation id="1306606229401759371">Endre innstillingene</translation> <translation id="1307165550267142340">PIN-koden er opprettet</translation> <translation id="1307559529304613120">Beklager. Systemet kunne ikke lagre noe langvarig API-tilgangstoken for denne enheten.</translation> +<translation id="1309199320876169714">Fjerner Plugin VM …</translation> <translation id="1313405956111467313">Automatisk konfigurasjon av proxy-tjener</translation> <translation id="131364520783682672">Caps Lock</translation> <translation id="1313705515580255288">Bokmerkene, loggen og andre innstillinger synkroniseres til Google-kontoen din.</translation> @@ -232,6 +234,7 @@ <translation id="1316495628809031177">Synkroniseringen er satt på pause</translation> <translation id="1317637799698924700">Dokkingstasjonen kjører i USB-C-kompatibel modus.</translation> <translation id="1322046419516468189">Se og administrer lagrede passord i <ph name="SAVED_PASSWORDS_STORE" /> din</translation> +<translation id="1324106254079708331">Verner de personlige Google-kontoene til personer som er utsatt for målrettede angrep</translation> <translation id="1326317727527857210">For å få fanene dine fra de andre enhetene du bruker, logg på Chrome.</translation> <translation id="1327074568633507428">Skriver på Google Cloud Print</translation> <translation id="1327272175893960498">Kerberos-saker</translation> @@ -719,6 +722,7 @@ <translation id="2003130567827682533">For å aktivere «<ph name="NAME" />»-dataene må du først koble til et Wi-Fi-nettverk</translation> <translation id="2006638907958895361">Åpne linken i <ph name="APP" /></translation> <translation id="2007404777272201486">Rapportér et problem</translation> +<translation id="2010501376126504057">Kompatible enheter</translation> <translation id="2016430552235416146">Tradisjonell</translation> <translation id="2017334798163366053">Deaktiver innsamling av ytelsesdata</translation> <translation id="2017836877785168846">Tømmer loggen og fjerner automatiske fullføringer fra adressefeltet.</translation> @@ -1353,6 +1357,7 @@ <translation id="2871813825302180988">Denne kontoen er allerede i bruk på denne enheten.</translation> <translation id="287286579981869940">Legg til <ph name="PROVIDER_NAME" /></translation> <translation id="2872961005593481000">Slå av</translation> +<translation id="2874478552394649323">Fjern Plugin VM</translation> <translation id="2874939134665556319">Forrige spor</translation> <translation id="2875698561019555027">(Chrome-feilsider)</translation> <translation id="2876336351874743617">Finger 2</translation> @@ -1368,6 +1373,7 @@ <translation id="2889064240420137087">Åpne link med</translation> <translation id="2889925978073739256">Fortsett blokkeringen av programtillegg uten prosessisolering</translation> <translation id="2893168226686371498">Standardnettleser</translation> +<translation id="2893208266590504003">Kunne ikke fjerne Plugin VM</translation> <translation id="2894757982205307093">Ny fane i gruppen</translation> <translation id="289644616180464099">SIM-kortet er låst</translation> <translation id="2896909745808647285"><ph name="FILE_NAME" /> er kryptert og er blokkert fra å bli åpnet.</translation> @@ -2254,6 +2260,7 @@ <translation id="413121957363593859">Komponenter</translation> <translation id="4131410914670010031">Svarthvitt</translation> <translation id="4136203100490971508">Nattlys blir slått av automatisk ved soloppgang</translation> +<translation id="41365691917097717">Hvis du fortsetter, blir ADB-feilsøking slått på for utvikling og testing av Android-apper. Merk at dette gjør det mulig å installere Android-apper som ikke er verifisert av Google, og enheten må tilbakestilles til fabrikkinnstillingene hvis du vil slå av ADB igjen.</translation> <translation id="4138267921960073861">Vis brukernavn og bilder på påloggingsskjermen</translation> <translation id="413915106327509564"><ph name="WINDOW_TITLE" /> – HID-enhet er tilkoblet</translation> <translation id="4142052906269098341">Lås opp <ph name="DEVICE_TYPE" /> med telefonen. <ph name="LINK_BEGIN" />Finn ut mer<ph name="LINK_END" /></translation> @@ -3175,6 +3182,7 @@ <translation id="5554720593229208774">Sertifiseringsinstans for e-post</translation> <translation id="5556459405103347317">Last inn på nytt</translation> <translation id="5557991081552967863">Hold Wi-Fi på under hvilemodus</translation> +<translation id="5558125320634132440">Dette nettstedet er blokkert fordi det kan ha innhold for voksne.</translation> <translation id="5558129378926964177">Zoom &inn</translation> <translation id="55601339223879446">Juster grensene for skrivebordet på skjermen</translation> <translation id="5562781907504170924">Denne fanen er koblet til en Bluetooth-enhet.</translation> @@ -3763,6 +3771,7 @@ <translation id="6386099547750337629">Hvis dette er uventet, bør du kontakte brukerstøtten.</translation> <translation id="6387674443318562538">Del vertikalt</translation> <translation id="6388429472088318283">Søk etter språk</translation> +<translation id="6390020764191254941">Flytt fanen til et nytt vindu</translation> <translation id="6390799748543157332">Sider du åpner i dette vinduet, vises ikke i nettloggen og de etterlater ingen andre spor (f.eks. informasjonskapsler) på datamaskinen etter at du har lukket alle åpne gjestevinduer. Filer du laster ned, blir imidlertid lagret.</translation> <translation id="6393156038355142111">Foreslå et sterkt passord</translation> <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />systeminformasjon<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />-målinger<ph name="END_LINK2" /></translation> @@ -4536,6 +4545,7 @@ <translation id="7530016656428373557">Utladningshastighet i watt</translation> <translation id="7531779363494549572">Gå til Innstillinger > Apper og varsler > Varsler.</translation> <translation id="7532009420053991888"><ph name="LINUX_APP_NAME" /> svarer ikke. Velg «Tving avslutning» for å lukke appen.</translation> +<translation id="7536333565791380193">Avansert sikkerhet</translation> <translation id="7539856059004947393">Bluetooth-sikkerhetsnøkkel</translation> <translation id="7540972813190816353">Det oppsto en feil under søk etter oppdateringer: <ph name="ERROR" /></translation> <translation id="7541773865713908457"><ph name="ACTION_NAME" /> med <ph name="APP_NAME" />-appen</translation> @@ -4783,6 +4793,7 @@ <translation id="7851720427268294554">IPP-parser</translation> <translation id="78526636422538552">Det er ikke mulig å legge til flere Google-kontoer</translation> <translation id="7853747251428735">Flere verktø&y</translation> +<translation id="7855678561139483478">Flytt fanen til et nytt vindu</translation> <translation id="7857117644404132472">Legg til unntak</translation> <translation id="7857949311770343000">Er dette den nye fanen du ventet på?</translation> <translation id="7859938049767853383"><ph name="FILE_NAME" /> er for stor til å skannes i nettskyen og er blokkert fra å bli åpnet.</translation> @@ -5244,6 +5255,7 @@ <translation id="850875081535031620">Fant ingen skadelig programvare</translation> <translation id="8509177919508253835">Tilbakestill sikkerhetsnøkler, og opprett PIN-koder</translation> <translation id="8509646642152301857">Nedlastingen av ordboken for stavekontroll mislyktes.</translation> +<translation id="8510617356402557055">Var dette uventet? <ph name="BEGIN_LINK" />Send tilbakemelding<ph name="END_LINK" /></translation> <translation id="8512476990829870887">Avslutt prosessen</translation> <translation id="851263357009351303">Tillat alltid <ph name="HOST" /> å vise bilder</translation> <translation id="8513108775083588393">Automatisk rotasjon</translation> @@ -5634,6 +5646,7 @@ <translation id="9030785788945687215">Gmail</translation> <translation id="9033857511263905942">&Lim inn</translation> <translation id="9037965129289936994">Vis original</translation> +<translation id="903797871439633902">Dette er den siste automatiske programvare- og sikkerhetsoppdateringen for denne <ph name="DEVICE_TYPE" />-enheten. For å få fremtidige oppdateringer må du oppgradere til en nyere modell. <a target="_blank" href="<ph name="URL" />">Finn ut mer</a></translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9040661932550800571">Vil du oppdatere passordet for <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Administratoren din har deaktivert tilgang til lokale filer på maskinen din</translation> @@ -5721,6 +5734,7 @@ <translation id="9169496697824289689">Se tastaturets hurtigtaster</translation> <translation id="916964310188958970">Hvorfor dette forslaget?</translation> <translation id="9169931577761441333">Legg til <ph name="APP_NAME" /> på startskjermen</translation> +<translation id="9170305483456271385">Plugin VM er fjernet</translation> <translation id="9170848237812810038">&Angre</translation> <translation id="9170884462774788842">Et annet program på datamaskinen la til et tema som kan endre måten Chrome fungerer på.</translation> <translation id="9173995187295789444">Skanner etter Bluetooth-enheter …</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 0a91f179..8f93aa3 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Zatrzymaj</translation> <translation id="1110155001042129815">Zaczekaj</translation> <translation id="1112420131909513020">Karta w tle używa Bluetootha</translation> +<translation id="1113042067630273625">Spowoduje to usunięcie <ph name="TOTAL_USAGE" /> zapisanych danych stron.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Romb</translation> <translation id="1114335938027186412">Twój komputer ma układ TPM (Trusted Platform Module), który umożliwia zastosowanie wielu krytycznych funkcji zabezpieczeń w Chrome OS. Więcej informacji znajdziesz w Centrum pomocy Chromebooka na stronie https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Zgłoś błąd</translation> <translation id="1741314857973421784">Dalej</translation> <translation id="1743570585616704562">Nie rozpoznano</translation> +<translation id="1743846852744439013">Wylogujemy Cię ze wszystkich stron – także na otwartych kartach.</translation> <translation id="1743970419083351269">Zamknij pasek pobranych plików</translation> <translation id="1744060673522309905">Nie można dołączyć urządzenia do domeny. Upewnij się, że nie została przekroczona dozwolona liczba urządzeń.</translation> <translation id="1744108098763830590">strona w tle</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Usługi</translation> <translation id="18139523105317219">Nazwa strony EDI</translation> <translation id="1815083418640426271">Wklej jako zwykły tekst</translation> +<translation id="1815181278146012280">Pytaj, gdy strona chce uzyskać dostęp do urządzeń HID</translation> <translation id="181577467034453336">Jeszcze <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Szybkość skanowania klawiatury</translation> <translation id="1817871734039893258">Odzyskiwanie plików firmy Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Średnia (zalecana)</translation> <translation id="2077129598763517140">Użyj akceleracji sprzętowej, gdy jest dostępna</translation> <translation id="2078019350989722914">Ostrzegaj przed zakończeniem (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Wyłączono</translation> <translation id="2079053412993822885">Jeśli usuniesz jeden ze swoich certyfikatów, nie możesz go już używać do przedstawiania się.</translation> <translation id="2079545284768500474">Cofnij</translation> <translation id="2080070583977670716">Więcej ustawień</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Pytaj, gdy strona chce wykryć urządzenia Bluetooth w pobliżu (zalecane)</translation> <translation id="2292848386125228270">Uruchom <ph name="PRODUCT_NAME" /> jako normalny użytkownik. Jeśli jesteś programistą i chcesz skorzystać z konta roota, uruchom program jeszcze raz z flagą --no-sandbox.</translation> <translation id="2294358108254308676">Czy chcesz zainstalować aplikację <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385">Wyniki: <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">Wyszukaj drukarki</translation> <translation id="2299734369537008228">Suwak: od <ph name="MIN_LABEL" /> do <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Ustawienia aplikacji <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Zapisano hasło na tym urządzeniu</translation> <translation id="2485422356828889247">Odinstaluj</translation> <translation id="2487067538648443797">Dodaj nową zakładkę</translation> +<translation id="2487268545026948104">Aby przywrócić dane, połącz się z internetem</translation> <translation id="2489829450872380594">Następnym razem nowy telefon odblokuje to urządzenie <ph name="DEVICE_TYPE" />. Smart Lock możesz wyłączyć w Ustawieniach.</translation> <translation id="2489918096470125693">Dodaj &folder</translation> <translation id="2490481887078769936">Usunięto plik „<ph name="FILE_NAME" />” z listy</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Ustawiono nową porę snu</translation> <translation id="2544853746127077729">Certyfikat uwierzytelniania został odrzucony przez sieć</translation> <translation id="2546283357679194313">Pliki cookie i dane stron</translation> +<translation id="2547583314137677375">Wyłącz synchronizację</translation> <translation id="2549985041256363841">Zacznij nagrywanie</translation> <translation id="2550212893339833758">Zamieniona pamięć</translation> <translation id="2550596535588364872">Pozwolić rozszerzeniu <ph name="EXTENSION_NAME" /> otworzyć plik <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Nieprawidłowy plik CRX. Nie udało się go rozpakować.</translation> <translation id="2673135533890720193">Odczytywanie historii przeglądania</translation> <translation id="2673589024369449924">Utwórz dla tego użytkownika skrót na pulpicie</translation> +<translation id="2674764818721168631">Wyłączono</translation> <translation id="2677748264148917807">Wyjdź</translation> <translation id="2678063897982469759">Włącz ponownie</translation> <translation id="268053382412112343">Hi&storia</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884">Strona <ph name="ORIGIN" /> będzie mogła edytować pliki w folderze <ph name="FOLDERNAME" /> do chwili zamknięcia tej karty.</translation> <translation id="3780827508782506612">Ta strona została przetłumaczona</translation> <translation id="378312418865624974">Odczyt unikalnego identyfikatora tego komputera</translation> +<translation id="3784472333786002075">Pliki cookie są tworzone przez strony internetowe. Dzielą się na dwa typy: własne pliki cookie są zapisywane przez odwiedzaną stronę. Jej adres znajdziesz w pasku adresu. Pliki cookie innych firm są tworzone przez inne strony. Na tych stronach znajdują się niektóre treści, np. reklamy i obrazy, które wyświetlają się na odwiedzanej stronie.</translation> <translation id="3785308913036335955">Pokaż skrót do aplikacji</translation> <translation id="3785727820640310185">Zapisano hasła do tej strony</translation> <translation id="3788401245189148511">Będzie mógł:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Twoja karta straciła ważność</translation> <translation id="3792890930871100565">Odłącz drukarki</translation> <translation id="3793395331556663376">Zbyt wiele otwartych systemów plików.</translation> +<translation id="379509625511193653">Wyłączono</translation> <translation id="3796648294839530037">Ulubione sieci:</translation> <translation id="3797739167230984533">Urządzenie <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> jest zarządzane<ph name="END_LINK" /> przez Twoją organizację</translation> <translation id="3797900183766075808">Wy&szukaj „<ph name="SEARCH_TERMS" />” w <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">W toku</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Nie ma zapisanych ostatnio logów zdarzeń WebRTC.</translation> +<translation id="3955163004258753966">Błąd podczas rozpoczynania uaktualniania</translation> <translation id="3955193568934677022">Zezwalaj witrynom na odtwarzanie treści chronionej (zalecane)</translation> <translation id="3955896417885489542">Pokaż opcje Google Play po zakończeniu konfiguracji</translation> <translation id="3956702100721821638">Nie udało się połączyć z Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Zamknij stronę}few{Zamknij strony}many{Zamknij strony}other{Zamknij strony}}</translation> <translation id="4044612648082411741">Podaj hasło certyfikatu</translation> <translation id="404493185430269859">Domyślna wyszukiwarka</translation> +<translation id="4046013316139505482">Te rozszerzenia nie muszą odczytywać ani zmieniać informacji na tej stronie.</translation> <translation id="4046123991198612571">Następny utwór</translation> <translation id="4050225813016893843">Metoda uwierzytelniania</translation> <translation id="4052120076834320548">Malutki</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Nigdy nie tłumacz z tego języka: <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Konfigurowanie kontroli rodzicielskiej</translation> <translation id="4333854382783149454">PKCS #1, SHA-1 z szyfrowaniem RSA</translation> +<translation id="4336434711095810371">Wyczyść wszystkie dane</translation> <translation id="4336979451636460645">Dzienniki sieciowe są dostępne tutaj: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> chce nawiązać połączenie z aplikacją „<ph name="EXTENSION_NAME" />”</translation> <translation id="4345587454538109430">Konfiguruj</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Konfiguruję maszynę wirtualną. Może to potrwać kilka minut.</translation> <translation id="4480590691557335796">Chrome może znaleźć i usunąć szkodliwe oprogramowanie na Twoim komputerze</translation> <translation id="4481530544597605423">Niesparowane urządzenia</translation> +<translation id="4488502501195719518">Wyczyścić wszystkie dane?</translation> <translation id="4495419450179050807">Nie pokazuj na tej stronie</translation> <translation id="4500114933761911433">We wtyczce <ph name="PLUGIN_NAME" /> wystąpił poważny błąd</translation> <translation id="450099669180426158">Ikona wykrzyknika</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adresy, numery telefonów i inne dane</translation> <translation id="4572659312570518089">Podczas łączenia się z urządzeniem „<ph name="DEVICE_NAME" />” zostało anulowane uwierzytelnianie.</translation> <translation id="4572779512957829735">Wpisz PIN klucza bezpieczeństwa</translation> +<translation id="4573515936045019911">Do uaktualnienia Linuksa wymagane jest połączenie sieciowe. Połącz się z internetem i spróbuj ponownie.</translation> <translation id="457386861538956877">Więcej</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Nie udało się przesłać <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Konfiguruję</translation> <translation id="4996978546172906250">Udostępnij przez</translation> <translation id="4997086284911172121">Brak połączenia z internetem.</translation> +<translation id="4998430619171209993">Włączono</translation> <translation id="4998873842614926205">Potwierdź zmiany</translation> <translation id="5000922062037820727">Zablokowane (zalecane)</translation> <translation id="5008936837313706385">Nazwa działania</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Przejdź do pełnego ekranu</translation> <translation id="514575469079499857">Użyj swojego adresu IP, by określić lokalizację (domyślnie)</translation> <translation id="5146995429444047494">Powiadomienia z <ph name="ORIGIN" /> są blokowane</translation> +<translation id="5147103632304200977">Pytaj, gdy strona chce uzyskać dostęp do urządzeń HID (zalecane)</translation> <translation id="5150254825601720210">Nazwa serwera SSL certyfikatu firmy Netscape</translation> <translation id="5151354047782775295">Zwolnij miejsce na dysku albo wybierz dane, które mogą być usuwane automatycznie</translation> <translation id="5153234146675181447">Zapomnij telefon</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Eksportowanie haseł z Chrome</translation> <translation id="5355099869024327351">Pozwól Asystentowi wyświetlać powiadomienia</translation> <translation id="5355926466126177564">Rozszerzenie „<ph name="EXTENSION_NAME" />” ustawiło inną stronę wyświetlaną po wyszukiwaniu w omniboksie.</translation> +<translation id="5359910752122114278">1 wynik</translation> <translation id="5360150013186312835">Pokaż na pasku narzędzi</translation> <translation id="5362741141255528695">Wybierz plik kluczy prywatnych.</translation> <translation id="5363109466694494651">Wykonaj Powerwash i przywróć</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Dodawanie połączenia zostało wyłączone przez administratora</translation> <translation id="5701080607174488915">Podczas pobierania zasad z serwera wystąpił błąd.</translation> <translation id="5701381305118179107">Wyśrodkuj</translation> +<translation id="5701441174893770082">Uaktualnianie Linuksa może szybko rozładować baterię. Podłącz ładowarkę i spróbuj ponownie.</translation> <translation id="5702898740348134351">&Edytuj wyszukiwarki...</translation> <translation id="570302979952009979">Wybierz nazwę tego odcisku cyfrowego</translation> <translation id="5704875434923668958">Synchronizacja z</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – połączono z urządzeniem USB</translation> <translation id="6028117231645531007">Dodaj odcisk palca</translation> <translation id="6029587122245504742">Najwolniej</translation> +<translation id="6032715498678347852">Aby przyznać rozszerzeniu dostęp do tej strony, kliknij je.</translation> <translation id="6032912588568283682">System plików</translation> <translation id="6038929619733116134">Blokuj, jeśli na stronie wyświetlają się uciążliwe lub wprowadzające w błąd reklamy</translation> <translation id="6039651071822577588">Zniekształcony słownik właściwości sieci</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Aby zwiększyć bezpieczeństwo, musisz zresetować urządzenie <ph name="DEVICE_TYPE" />.</translation> <translation id="6584878029876017575">Podpisywanie dożywotnie firmy Microsoft</translation> <translation id="6586451623538375658">Zamień główny przycisk myszy</translation> +<translation id="6586604979641883411">Aby uaktualnić Linuksa, potrzeba co najmniej <ph name="REQUIRED_SPACE" /> wolnego miejsca na dysku. Zwolnij miejsce na urządzeniu i spróbuj ponownie.</translation> <translation id="6590458744723262880">Zmień nazwę folderu</translation> <translation id="6592267180249644460">Zapisany log WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Twój odcisk został zarejestrowany</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL został skopiowany</translation> <translation id="6758056191028427665">Co sądzisz o efektach naszej pracy?</translation> <translation id="6759193508432371551">Ustawienia fabryczne</translation> +<translation id="6762833852331690540">Włączono</translation> <translation id="6767566652486411142">Wybierz inny język...</translation> <translation id="6767639283522617719">Nie można dołączyć do domeny. Upewnij się, że jednostka organizacyjna ma poprawne ustawienia.</translation> <translation id="6769712124046837540">Dodaję drukarkę...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Brakuje zasobnika na papier</translation> <translation id="693807610556624488">Przekroczenie maksymalnej długości atrybutu w operacji zapisu na: „<ph name="DEVICE_NAME" />”.</translation> <translation id="6938386202199793006">Masz jedną zapisaną drukarkę.</translation> +<translation id="6938789263968032501">Osoby</translation> <translation id="6941937518557314510">Zaloguj się do urządzenia <ph name="TOKEN_NAME" />, aby za pomocą swojego certyfikatu wykonać uwierzytelnianie w witrynie <ph name="HOST_NAME" />.</translation> <translation id="6943176775188458830">Anuluj drukowanie</translation> <translation id="6943836128787782965">Wykonanie metody GET protokołu HTTP nie powiodło się.</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Drukuj wybrane strony</translation> <translation id="6972180789171089114">Audio/wideo</translation> <translation id="6972553992270299730">Strona <ph name="ORIGIN" /> nie może otwierać plików w tym folderze, ponieważ zawiera on pliki systemowe</translation> +<translation id="6972629891077993081">Urządzenia HID</translation> <translation id="6972754398087986839">Rozpocznij</translation> <translation id="6973611239564315524">Dostępne jest uaktualnienie do Debiana 10 (Buster)</translation> <translation id="6974609594866392343">Tryb demo offline</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Strona w tle: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Zadzwoń z urządzenia <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nie znaleziono urządzeń HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Otwórz wszystkie w &nowym oknie}=1{Otwórz w &nowym oknie}few{Otwórz wszystkie (#) w &nowym oknie}many{Otwórz wszystkie (#) w &nowym oknie}other{Otwórz wszystkie (#) w &nowym oknie}}</translation> <translation id="7434509671034404296">Deweloper</translation> +<translation id="7434635829372401939">Synchronizacja ustawień</translation> <translation id="7436921188514130341">Kurza twarz! Podczas zmiany nazwy wystąpił błąd.</translation> <translation id="7438976808740265764">Z końcem grudnia 2020 roku Flash Player nie będzie już obsługiwany.</translation> <translation id="7441736921018636843">Aby zmienić to ustawienie, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" />, by usunąć hasło synchronizacji</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – sparowano</translation> <translation id="7870730066603611552">Sprawdź opcje synchronizowania po konfiguracji</translation> <translation id="7870790288828963061">Nie odnaleziono nowszej wersji aplikacji kiosku. Aktualizacja nie jest wymagana. Odłącz pamięć USB.</translation> +<translation id="787268756490971083">Wyłączono</translation> <translation id="7874257161694977650">Tła Chrome</translation> <translation id="7877451762676714207">Nieznany błąd serwera. Spróbuj ponownie lub skontaktuj się z administratorem serwera.</translation> <translation id="7877680364634660272">Prezentacja</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Nie można podłączyć co najmniej jednej partycji na urządzeniu zewnętrznej pamięci masowej.</translation> <translation id="7909969815743704077">Pobrano w trybie incognito</translation> <translation id="7910768399700579500">&Nowy folder</translation> +<translation id="7910831464510799808">Włączono</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Twoje hasło zostało zmienione na serwerze. Wyloguj się i zaloguj się ponownie.</translation> <translation id="7915457674565721553">Połącz się z internetem, by skonfigurować kontrolę rodzicielską</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">W razie potrzeby zostaną usunięte też elementy niewymienione tutaj. Więcej informacji o <a href="<ph name="URL" />">ochronie przed niechcianym oprogramowaniem</a> znajdziesz w dokumencie dotyczącym prywatności w Chrome.</translation> <translation id="935490618240037774">Zakładki, historia, hasła i inne ustawienia zostaną zsynchronizowane z kontem Google, by można było z nich korzystać na dowolnym urządzeniu.</translation> <translation id="935854577147268200">Telefon z funkcją Smart Lock został zmieniony. Wpisz hasło, by zaktualizować Smart Lock. Następnym razem Twój telefon odblokuje urządzenie <ph name="DEVICE_TYPE" />. Smart Lock możesz wyłączyć w Ustawieniach.</translation> +<translation id="93610034168535821">Całkowita pamięć używana przez strony:</translation> <translation id="936801553271523408">Systemowe dane diagnostyczne</translation> <translation id="93766956588638423">Napraw rozszerzenie</translation> <translation id="938339467127511841">Pamięć (beta) – Linux</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">Twój administrator IT wyłączył możliwość korzystania z bonusów Chrome na tym urządzeniu.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplikacja}few{Aplikacje}many{Aplikacje}other{Aplikacje}}</translation> <translation id="965211523698323809">Wysyłanie i odbieranie SMS-ów na urządzeniu <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Nie zezwalaj żadnym stronom na dostęp do urządzeń HID</translation> <translation id="967624055006145463">Zapisane dane</translation> <translation id="968000525894980488">Włącz Usługi Google Play.</translation> <translation id="968037381421390582">&Wklej i wyszukaj „<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index f78c984..4b6072a 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Parar</translation> <translation id="1110155001042129815">Aguarde</translation> <translation id="1112420131909513020">A guia em segundo plano está usando o Bluetooth</translation> +<translation id="1113042067630273625">Essa ação limpará <ph name="TOTAL_USAGE" /> de dados de armazenamento de sites.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamante</translation> <translation id="1114335938027186412">Seu computador possui um dispositivo de segurança Trusted Platform Module (TPM, na sigla em inglês), que é utilizado para implementar muitos recursos de segurança importantes no Chrome OS. Visite a Central de Ajuda do Chromebook para saber mais: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Cadastre um bug</translation> <translation id="1741314857973421784">Continuar</translation> <translation id="1743570585616704562">Não reconhecida</translation> +<translation id="1743846852744439013">Sua conta será desconectada de todos os sites, inclusive nas guias abertas.</translation> <translation id="1743970419083351269">Fechar barra de downloads</translation> <translation id="1744060673522309905">Não é possível vincular o dispositivo ao domínio. Verifique se você não excedeu o número de dispositivos que podem ser adicionados.</translation> <translation id="1744108098763830590">página de plano de fundo</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Serviços</translation> <translation id="18139523105317219">Nome da Parte EDI</translation> <translation id="1815083418640426271">Colar como texto sem formatação</translation> +<translation id="1815181278146012280">Perguntar quando um site quiser acessar dispositivos HID</translation> <translation id="181577467034453336">Mais <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Velocidade da leitura do teclado</translation> <translation id="1817871734039893258">Recuperação de arquivos da Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Médio (recomendado)</translation> <translation id="2077129598763517140">Usar aceleração de hardware quando disponível</translation> <translation id="2078019350989722914">Avisar antes de sair (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Desativado</translation> <translation id="2079053412993822885">Se você excluir um dos seus próprios certificados, não será mais possível utilizá-lo para se identificar.</translation> <translation id="2079545284768500474">Desfazer</translation> <translation id="2080070583977670716">Mais definições</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Perguntar quando um site quer descobrir dispositivos Bluetooth nas proximidades (recomendado)</translation> <translation id="2292848386125228270">Inicie o <ph name="PRODUCT_NAME" /> como um usuário normal. Se precisar executar como raiz para desenvolvimento, execute novamente com a sinalização --no-sandbox.</translation> <translation id="2294358108254308676">Quer instalar o <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultados</translation> <translation id="2297705863329999812">Pesquisar impressoras</translation> <translation id="2299734369537008228">Controle deslizante: <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personalizar e controlar o app <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Senha salva neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> <translation id="2487067538648443797">Adicionar novo favorito</translation> +<translation id="2487268545026948104">Para restaurar seus dados, conecte-se à Internet</translation> <translation id="2489829450872380594">Na próxima vez, um novo smartphone desbloqueará este <ph name="DEVICE_TYPE" />. É possível desativar o Smart Lock nas configurações.</translation> <translation id="2489918096470125693">Adicionar &pasta...</translation> <translation id="2490481887078769936">O arquivo "<ph name="FILE_NAME" />" foi removido da lista</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Nova hora de dormir definida</translation> <translation id="2544853746127077729">Certificado de autenticação rejeitado pela rede</translation> <translation id="2546283357679194313">Cookies e dados do site</translation> +<translation id="2547583314137677375">Desativar a sincronização</translation> <translation id="2549985041256363841">Iniciar gravação</translation> <translation id="2550212893339833758">Memória trocada</translation> <translation id="2550596535588364872">Permitir que <ph name="EXTENSION_NAME" /> abra <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Arquivo crx defeituoso, a descompactação falhou.</translation> <translation id="2673135533890720193">Ler seu histórico de navegação</translation> <translation id="2673589024369449924">Criar um atalho na área de trabalho para este usuário</translation> +<translation id="2674764818721168631">Desativado</translation> <translation id="2677748264148917807">Sair</translation> <translation id="2678063897982469759">Reativar</translation> <translation id="268053382412112343">Hi&stórico</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> poderá editar arquivos em <ph name="FOLDERNAME" /> até você fechar esta guia</translation> <translation id="3780827508782506612">Esta página foi traduzida</translation> <translation id="378312418865624974">Ler o identificador exclusivo deste computador</translation> +<translation id="3784472333786002075">Os cookies são arquivos criados pelos sites. Há dois tipos de cookies: os primários são criados pelo site que você visita. Esse é o site exibido na barra de endereço. Os cookies de terceiros são criados por outros sites. Esses sites possuem uma parte do conteúdo, como anúncios ou imagens, que você vê na página da Web visitada.</translation> <translation id="3785308913036335955">Mostrar atalho para aplicativos</translation> <translation id="3785727820640310185">Senhas salvas para este site</translation> <translation id="3788401245189148511">Ele poderia:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Seu cartão expirou</translation> <translation id="3792890930871100565">Desconectar impressoras</translation> <translation id="3793395331556663376">Sistemas de arquivos abertos em excesso.</translation> +<translation id="379509625511193653">Desativado</translation> <translation id="3796648294839530037">Redes favoritas:</translation> <translation id="3797739167230984533">Seu <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> é gerenciado<ph name="END_LINK" /> pela sua organização</translation> <translation id="3797900183766075808">&Pesquisar “<ph name="SEARCH_TERMS" />” no <ph name="SEARCH_ENGINE" /></translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Em andamento</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> <translation id="3954953195017194676">Você não tem nenhum log de eventos WebRTC capturado recentemente.</translation> +<translation id="3955163004258753966">Erro ao iniciar o upgrade</translation> <translation id="3955193568934677022">Permitir que os sites reproduzam conteúdo protegido (recomendado)</translation> <translation id="3955896417885489542">Revisar as opções do Google Play após a configuração</translation> <translation id="3956702100721821638">Não foi possível acessar o Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Sair da página}one{Sair da página}other{Sair das páginas}}</translation> <translation id="4044612648082411741">Digite a senha do certificado</translation> <translation id="404493185430269859">Mecanismo de pesquisa padrão</translation> +<translation id="4046013316139505482">Estas extensões não precisam ver e mudar as informações neste site.</translation> <translation id="4046123991198612571">Próxima faixa</translation> <translation id="4050225813016893843">Método de autenticação</translation> <translation id="4052120076834320548">Minúscula</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Nunca traduzir <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configurar o controle dos pais</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 com criptografia RSA</translation> +<translation id="4336434711095810371">Limpar todos os dados</translation> <translation id="4336979451636460645">Para registros de rede, consulte: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> deseja se comunicar com o aplicativo "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configurar...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Configurando a máquina virtual. Isso pode levar alguns minutos.</translation> <translation id="4480590691557335796">O Chrome pode localizar softwares nocivos no seu computador e removê-los</translation> <translation id="4481530544597605423">Dispositvos não pareados</translation> +<translation id="4488502501195719518">Limpar todos os dados?</translation> <translation id="4495419450179050807">Não mostrar esta página</translation> <translation id="4500114933761911433">O plug-in <ph name="PLUGIN_NAME" /> falhou</translation> <translation id="450099669180426158">Ícone de ponto de exclamação</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Endereços, números de telefone e muito mais</translation> <translation id="4572659312570518089">Autenticação cancelada durante a conexão com "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Insira o PIN da sua chave de segurança</translation> +<translation id="4573515936045019911">É necessária uma conexão de rede para fazer upgrade do Linux. Conecte-se à Internet e tente novamente.</translation> <translation id="457386861538956877">Mais...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Não foi possível transmitir <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Configurando</translation> <translation id="4996978546172906250">Compartilhar via</translation> <translation id="4997086284911172121">Sem conexão com a Internet.</translation> +<translation id="4998430619171209993">Ativado</translation> <translation id="4998873842614926205">Confirmar alterações</translation> <translation id="5000922062037820727">Bloqueada (recomendado)</translation> <translation id="5008936837313706385">Nome da atividade</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Tela cheia</translation> <translation id="514575469079499857">Usar seu endereço IP para determinar o local (padrão)</translation> <translation id="5146995429444047494">As notificações de <ph name="ORIGIN" /> estão bloqueadas</translation> +<translation id="5147103632304200977">Perguntar quando um site quiser acessar dispositivos HID (recomendado)</translation> <translation id="5150254825601720210">Nome do servidor SSL do certificado do Netscape</translation> <translation id="5151354047782775295">Libere espaço em disco, ou dados específicos podem ser excluídos automaticamente</translation> <translation id="5153234146675181447">Esquecer o smartphone</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Exportar senhas do Chrome</translation> <translation id="5355099869024327351">Permitir que o Assistente mostre notificações</translation> <translation id="5355926466126177564">A extensão "<ph name="EXTENSION_NAME" />" alterou a página que é exibida quando você pesquisa na Omnibox.</translation> +<translation id="5359910752122114278">1 resultado</translation> <translation id="5360150013186312835">Mostrar na barra de ferramentas</translation> <translation id="5362741141255528695">Selecionar arquivo de chave privada.</translation> <translation id="5363109466694494651">Realizar Powerwash e reverter</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">A opção "Adicionar conexão" foi desativada pelo seu administrador</translation> <translation id="5701080607174488915">Erro ao buscar as configurações da política no servidor.</translation> <translation id="5701381305118179107">Centralizar</translation> +<translation id="5701441174893770082">O upgrade do Linux pode consumir consideravelmente a carga da bateria. Conecte o dispositivo a um carregador e tente novamente.</translation> <translation id="5702898740348134351">&Editar mecanismos de pesquisa...</translation> <translation id="570302979952009979">Escolha um nome para esta impressão digital</translation> <translation id="5704875434923668958">Sincronizando com</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Dispositivo USB conectado</translation> <translation id="6028117231645531007">Adicionar impressão digital</translation> <translation id="6029587122245504742">Mais lenta</translation> +<translation id="6032715498678347852">Para conceder a uma extensão acesso a este site, clique nela.</translation> <translation id="6032912588568283682">Sistema de arquivos</translation> <translation id="6038929619733116134">Bloquear se o site mostrar anúncios invasivos ou enganosos</translation> <translation id="6039651071822577588">Dicionário de propriedade da rede incorreto</translation> @@ -3908,6 +3928,7 @@ <translation id="6582080224869403177">Redefina seu <ph name="DEVICE_TYPE" /> para aumentar a segurança.</translation> <translation id="6584878029876017575">Assinatura de tempo de vida da Microsoft</translation> <translation id="6586451623538375658">Trocar botão principal do mouse</translation> +<translation id="6586604979641883411">É necessário ter pelo menos <ph name="REQUIRED_SPACE" /> de espaço livre em disco para fazer upgrade do Linux. Libere espaço no seu dispositivo e tente novamente.</translation> <translation id="6590458744723262880">Renomear pasta</translation> <translation id="6592267180249644460">Horário da captura do registro WebRTC: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Impressão digital capturada</translation> @@ -4018,6 +4039,7 @@ <translation id="6757101664402245801">URL copiado</translation> <translation id="6758056191028427665">Diga como estamos nos saindo.</translation> <translation id="6759193508432371551">Configuração original</translation> +<translation id="6762833852331690540">Ativado</translation> <translation id="6767566652486411142">Escolher outro idioma…</translation> <translation id="6767639283522617719">Não é possível vincular ao domínio. Verifique se as configurações da unidade organizacional estão corretas.</translation> <translation id="6769712124046837540">Adicionando impressora...</translation> @@ -4139,6 +4161,7 @@ <translation id="6935286146439255109">A bandeja de papel não foi encontrada</translation> <translation id="693807610556624488">A operação de escrita excede o comprimento máximo do atributo para "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Você tem 1 impressora salva.</translation> +<translation id="6938789263968032501">Pessoas</translation> <translation id="6941937518557314510">Faça login no <ph name="TOKEN_NAME" /> para autenticar seu certificado no <ph name="HOST_NAME" />.</translation> <translation id="6943176775188458830">Cancelar impressão</translation> <translation id="6943836128787782965">HTTP falhou</translation> @@ -4163,6 +4186,7 @@ <translation id="6970856801391541997">Imprimir páginas específicas</translation> <translation id="6972180789171089114">Áudio/vídeo</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> não pode abrir arquivos nesta pasta porque ela contém arquivos do sistema</translation> +<translation id="6972629891077993081">Dispositivos HID</translation> <translation id="6972754398087986839">Primeiros passos</translation> <translation id="6973611239564315524">O upgrade para o Debian 10 (Buster) está disponível</translation> <translation id="6974609594866392343">Modo de demonstração off-line</translation> @@ -4487,8 +4511,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Página de plano de fundo: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Chamada de <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nenhum dispositivo HID encontrado</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Abrir tudo em &Nova janela}=1{Abrir em &Nova janela}one{Abrir tudo (#) em &Nova janela}other{Abrir tudo (#) em &Nova janela}}</translation> <translation id="7434509671034404296">Desenvolvedor</translation> +<translation id="7434635829372401939">Sincronizar as configurações</translation> <translation id="7436921188514130341">Ah, não! Ocorreu um erro durante a renomeação.</translation> <translation id="7438976808740265764">Não haverá mais compatibilidade com Flash Player a partir de dezembro de 2020.</translation> <translation id="7441736921018636843">Para mudar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> e remova sua senha longa de sincronização</translation> @@ -4810,6 +4836,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />: pareado</translation> <translation id="7870730066603611552">Revisar as opções de sincronização após a configuração</translation> <translation id="7870790288828963061">Nenhum aplicativo de quiosque com versão mais recente foi encontrado. Não há nada para ser atualizado. Remova o pendrive.</translation> +<translation id="787268756490971083">Desativado</translation> <translation id="7874257161694977650">Planos de fundo do Chrome</translation> <translation id="7877451762676714207">Erro de servidor desconhecido. Tente novamente ou entre em contato com o administrador do servidor.</translation> <translation id="7877680364634660272">Tour</translation> @@ -4837,6 +4864,7 @@ <translation id="7908378463497120834">Ao menos uma partição no seu dispositivo de armazenamento externo não pôde ser montada.</translation> <translation id="7909969815743704077">Download feito no modo anônimo</translation> <translation id="7910768399700579500">&Nova pasta</translation> +<translation id="7910831464510799808">Ativado</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Sua senha foi alterada no servidor. Saia e faça login novamente.</translation> <translation id="7915457674565721553">Conecte-se à Internet para configurar o controle dos pais</translation> @@ -5775,6 +5803,7 @@ <translation id="934503638756687833">Itens que não estão listados aqui também serão removidos, se necessário. Saiba mais sobre a <a href="<ph name="URL" />">proteção contra softwares indesejados</a> no artigo sobre privacidade do Chrome.</translation> <translation id="935490618240037774">Seus favoritos, histórico, senhas e outras configurações serão sincronizados com sua Conta do Google para que seja possível usá-los em todos os seus dispositivos.</translation> <translation id="935854577147268200">O smartphone do Smart Lock mudou. Digite sua senha para atualizar o Smart Lock. Na próxima vez, o smartphone desbloqueará seu <ph name="DEVICE_TYPE" />. É possível desativar o Smart Lock nas configurações</translation> +<translation id="93610034168535821">Armazenamento total usado pelos sites:</translation> <translation id="936801553271523408">Dados de diagnóstico do sistema</translation> <translation id="93766956588638423">Reparar extensão</translation> <translation id="938339467127511841">Armazenamento no Linux (Beta)</translation> @@ -5796,6 +5825,7 @@ <translation id="964286338916298286">Seu administrador de TI desativou os Goodies do Chrome para seu dispositivo.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplicativo}one{Aplicativo}other{Aplicativos}}</translation> <translation id="965211523698323809">Envie e receba mensagens de texto no <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Não permitir que nenhum site acesse dispositivos HID</translation> <translation id="967624055006145463">Dados armazenados</translation> <translation id="968000525894980488">Ative o Google Play Services.</translation> <translation id="968037381421390582">Colar e pesquisar “<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index c8db555..d479e819d 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Parar</translation> <translation id="1110155001042129815">Esperar</translation> <translation id="1112420131909513020">O separador em segundo plano está a utilizar o Bluetooth.</translation> +<translation id="1113042067630273625">Esta ação irá limpar <ph name="TOTAL_USAGE" /> de dados de sites armazenados.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamante</translation> <translation id="1114335938027186412">O seu computador contém um dispositivo de segurança com TPM (Trusted Platform Module, Módulo de plataforma fidedigna), que é utilizado para implementar várias funcionalidades de segurança essenciais no Chrome OS. Visite o Centro de Ajuda do Chromebook em https://support.google.com/chromebook/?p=tpm para saber mais.</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Erro de ficheiro</translation> <translation id="1741314857973421784">Continuar</translation> <translation id="1743570585616704562">Não reconhecida</translation> +<translation id="1743846852744439013">A sua sessão será terminada em todos os sites, incluindo quaisquer separadores abertos.</translation> <translation id="1743970419083351269">Fechar barra de transferências</translation> <translation id="1744060673522309905">Não é possível associar o dispositivo ao domínio. Certifique-se de que não excedeu o número de dispositivos que pode adicionar.</translation> <translation id="1744108098763830590">página de fundo</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Serviços</translation> <translation id="18139523105317219">Nome da parte EDI</translation> <translation id="1815083418640426271">Colar como Texto Simples</translation> +<translation id="1815181278146012280">Perguntar quando um site pretender aceder a dispositivos HID</translation> <translation id="181577467034453336">Mais <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Velocidade de análise do teclado</translation> <translation id="1817871734039893258">Recuperação de ficheiros da Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Médio (recomendado)</translation> <translation id="2077129598763517140">Utilizar aceleração de hardware sempre que estiver disponível</translation> <translation id="2078019350989722914">Avisar antes de sair (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Desativado</translation> <translation id="2079053412993822885">Se eliminar um dos seus próprios certificados, deixará de poder utilizá-lo para se identificar.</translation> <translation id="2079545284768500474">Anular</translation> <translation id="2080070583977670716">Mais definições</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Perguntar quando um site pretende detetar dispositivos Bluetooth próximos (recomendado)</translation> <translation id="2292848386125228270">Inicie o <ph name="PRODUCT_NAME" /> como um utilizador normal. Se precisar de executar com acesso máximo para programação, volte a executar com a sinalização --no-sandbox.</translation> <translation id="2294358108254308676">Pretende instalar o <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultados</translation> <translation id="2297705863329999812">Pesquisar impressoras</translation> <translation id="2299734369537008228">Controlo de deslize: de <ph name="MIN_LABEL" /> a <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Personalizar e controlar a aplicação <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">Palavra-passe guardada neste dispositivo</translation> <translation id="2485422356828889247">Desinstalar</translation> <translation id="2487067538648443797">Adicionar novo marcador</translation> +<translation id="2487268545026948104">Para restaurar os dados, estabeleça ligação à Internet.</translation> <translation id="2489829450872380594">Da próxima vez, um novo telemóvel irá desbloquear o <ph name="DEVICE_TYPE" />. Pode desativar o Smart Lock nas Definições.</translation> <translation id="2489918096470125693">Adicionar &Pasta...</translation> <translation id="2490481887078769936">"<ph name="FILE_NAME" />" foi removido da lista</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">Nova hora de dormir definida.</translation> <translation id="2544853746127077729">Certificado de autenticação rejeitado pela rede</translation> <translation id="2546283357679194313">Cookies e dados de Web sites</translation> +<translation id="2547583314137677375">Desativar sincronização</translation> <translation id="2549985041256363841">Iniciar gravação</translation> <translation id="2550212893339833758">Memória trocada</translation> <translation id="2550596535588364872">Pretende permitir que <ph name="EXTENSION_NAME" /> abra <ph name="FILE_NAME" />?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">Ficheiro crx em mau estado. Falha ao descompactar.</translation> <translation id="2673135533890720193">Ler o seu histórico de navegação</translation> <translation id="2673589024369449924">Criar atalho no ambiente de trabalho para este perfil</translation> +<translation id="2674764818721168631">Desativado</translation> <translation id="2677748264148917807">Sair</translation> <translation id="2678063897982469759">Reactivar</translation> <translation id="268053382412112343">&Histórico</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> pode editar ficheiros em <ph name="FOLDERNAME" /> até fechar este separador</translation> <translation id="3780827508782506612">Esta página foi traduzida</translation> <translation id="378312418865624974">Ler um identificador único para este computador</translation> +<translation id="3784472333786002075">Os cookies são ficheiros criados pelos Websites. Existem dois tipos de cookies: os cookies originais são criados pelo site ao qual acede. O site é apresentado na barra de endereço. Os cookies de terceiros são criados por outros sites. Estes sites possuem algum do conteúdo, tal como anúncios ou imagens, que vê no Website ao qual acede.</translation> <translation id="3785308913036335955">Mostrar Atalho das Aplicações</translation> <translation id="3785727820640310185">Palavras-passe guardadas para este site</translation> <translation id="3788401245189148511">Esta poderia:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">O seu cartão de crédito expirou</translation> <translation id="3792890930871100565">Desligar impressoras</translation> <translation id="3793395331556663376">Demasiados sistemas de ficheiros abertos.</translation> +<translation id="379509625511193653">Desativado</translation> <translation id="3796648294839530037">Redes favoritas:</translation> <translation id="3797739167230984533">O <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> é gerido<ph name="END_LINK" /> pela sua entidade.</translation> <translation id="3797900183766075808">Pe&squisar no <ph name="SEARCH_ENGINE" /> por "<ph name="SEARCH_TERMS" />"</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Em curso</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Não existem registos de eventos WebRTC capturados recentemente.</translation> +<translation id="3955163004258753966">Ocorreu um erro ao iniciar a atualização</translation> <translation id="3955193568934677022">Permitir que os sites reproduzam conteúdo protegido (recomendado)</translation> <translation id="3955896417885489542">Rever as opções do Google Play após a configuração</translation> <translation id="3956702100721821638">Não foi possível aceder ao Google Play.</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Sair da página}other{Sair das páginas}}</translation> <translation id="4044612648082411741">Introduzir a palavra-passe do certificado</translation> <translation id="404493185430269859">Motor de pesquisa predefinido</translation> +<translation id="4046013316139505482">Estas extensões não precisam de ver nem de alterar informações neste site.</translation> <translation id="4046123991198612571">Faixa seguinte</translation> <translation id="4050225813016893843">Método de autenticação</translation> <translation id="4052120076834320548">Minúsculo</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Nunca traduzir do <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Configure o controlo parental</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 Com encriptação RSA</translation> +<translation id="4336434711095810371">Limpar todos os dados</translation> <translation id="4336979451636460645">Para aceder aos registos da rede, consulte <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> pretende comunicar com a aplicação "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Configurar...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">A configurar a máquina virtual… Esta ação pode demorar alguns minutos.</translation> <translation id="4480590691557335796">O Chrome pode encontrar software prejudicial no seu computador e removê-lo.</translation> <translation id="4481530544597605423">Dispositivos dessincronizados</translation> +<translation id="4488502501195719518">Pretende limpar todos os dados?</translation> <translation id="4495419450179050807">Não mostrar nesta página</translation> <translation id="4500114933761911433">O plug-in <ph name="PLUGIN_NAME" /> falhou.</translation> <translation id="450099669180426158">Ícone de ponto de exclamação</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Endereços, números de telefone e muito mais</translation> <translation id="4572659312570518089">A autenticação foi cancelada ao ligar a "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Introduza o PIN para a sua chave de segurança.</translation> +<translation id="4573515936045019911">É necessária uma ligação de rede para atualizar o Linux. Ligue-se à Internet e tente novamente.</translation> <translation id="457386861538956877">Mais...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Não é possível transmitir <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">A configurar…</translation> <translation id="4996978546172906250">Partilhar através de</translation> <translation id="4997086284911172121">Sem ligação à Internet.</translation> +<translation id="4998430619171209993">Ativado</translation> <translation id="4998873842614926205">Confirmar Alterações</translation> <translation id="5000922062037820727">Bloqueado (recomendado)</translation> <translation id="5008936837313706385">Nome da atividade</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Entrar no modo de ecrã inteiro</translation> <translation id="514575469079499857">Utilizar o seu endereço IP para determinar a localização (predefinição)</translation> <translation id="5146995429444047494">As notificações de <ph name="ORIGIN" /> estão bloqueadas</translation> +<translation id="5147103632304200977">Perguntar quando um site pretender aceder a dispositivos HID (recomendado)</translation> <translation id="5150254825601720210">Nome do servidor SSL do certificado Netscape</translation> <translation id="5151354047782775295">Liberte espaço em disco ou determinados dados poderão ser automaticamente eliminados</translation> <translation id="5153234146675181447">Esquecer telemóvel</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Exportar palavras-passe do Chrome</translation> <translation id="5355099869024327351">Permita que o Assistente lhe mostre notificações.</translation> <translation id="5355926466126177564">A extensão "<ph name="EXTENSION_NAME" />" alterou a página apresentada quando pesquisa a partir da caixa geral.</translation> +<translation id="5359910752122114278">1 resultado</translation> <translation id="5360150013186312835">Mostrar na Barra de ferramentas</translation> <translation id="5362741141255528695">Selecionar ficheiro de chave privada.</translation> <translation id="5363109466694494651">Powerwash e reverter</translation> @@ -3294,6 +3312,7 @@ <translation id="5700836101007545240">A opção Adicionar ligação foi desativada pelo gestor</translation> <translation id="5701080607174488915">Erro ao obter a política do servidor.</translation> <translation id="5701381305118179107">Centrar</translation> +<translation id="5701441174893770082">A atualização do Linux pode consumir significativamente a bateria. Ligue o dispositivo a um carregador e tente novamente.</translation> <translation id="5702898740348134351">&Editar motores de pesquisa...</translation> <translation id="570302979952009979">Escolha um nome para esta impressão digital</translation> <translation id="5704875434923668958">A sincronizar com…</translation> @@ -3523,6 +3542,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – dispositivo USB ligado</translation> <translation id="6028117231645531007">Adicionar impressão digital</translation> <translation id="6029587122245504742">A mais lenta</translation> +<translation id="6032715498678347852">Para conceder a uma extensão o acesso a este site, clique na mesma</translation> <translation id="6032912588568283682">Sistema de ficheiros</translation> <translation id="6038929619733116134">Bloquear se o site apresentar anúncios intrusivos ou enganadores</translation> <translation id="6039651071822577588">Dicionário de propriedades de rede formatado incorretamente</translation> @@ -3907,6 +3927,7 @@ <translation id="6582080224869403177">Efetue a reposição do dispositivo <ph name="DEVICE_TYPE" /> para atualizar a sua segurança.</translation> <translation id="6584878029876017575">Assinatura vitalícia Microsoft</translation> <translation id="6586451623538375658">Trocar botão principal do rato</translation> +<translation id="6586604979641883411">É necessário, pelo menos, <ph name="REQUIRED_SPACE" /> de espaço livre no disco para atualizar o Linux. Liberte algum espaço no dispositivo e tente novamente.</translation> <translation id="6590458744723262880">Mudar o nome da pasta</translation> <translation id="6592267180249644460">Registo de WebRTC capturado <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">A sua impressão digital foi capturada.</translation> @@ -4017,6 +4038,7 @@ <translation id="6757101664402245801">URL copiado</translation> <translation id="6758056191028427665">Dê-nos a sua opinião acerca do nosso desempenho.</translation> <translation id="6759193508432371551">Reposição de dados de fábrica</translation> +<translation id="6762833852331690540">Ativado</translation> <translation id="6767566652486411142">Selecionar outro idioma…</translation> <translation id="6767639283522617719">Não é possível associar ao domínio. Certifique-se de que as definições estão corretas para a unidade organizacional.</translation> <translation id="6769712124046837540">A adicionar impressora…</translation> @@ -4138,6 +4160,7 @@ <translation id="6935286146439255109">Não existe um tabuleiro de papel</translation> <translation id="693807610556624488">A operação de escrita excede o comprimento máximo do atributo para: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Tem 1 impressora guardada.</translation> +<translation id="6938789263968032501">Pessoas</translation> <translation id="6941937518557314510">Inicie sessão no <ph name="TOKEN_NAME" /> para autenticar em <ph name="HOST_NAME" /> com o seu certificado.</translation> <translation id="6943176775188458830">Cancelar impressão</translation> <translation id="6943836128787782965">A obtenção de HTTP falhou</translation> @@ -4162,6 +4185,7 @@ <translation id="6970856801391541997">Imprimir Páginas Específicas</translation> <translation id="6972180789171089114">Áudio/Vídeo</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> não consegue abrir os ficheiros nesta pasta porque contém ficheiros de sistema</translation> +<translation id="6972629891077993081">Dispositivos HID</translation> <translation id="6972754398087986839">Começar</translation> <translation id="6973611239564315524">Está disponível uma atualização para a versão Debian 10 (Buster).</translation> <translation id="6974609594866392343">Modo de demonstração offline</translation> @@ -4486,8 +4510,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Página de fundo: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Chamada de <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Nenhum dispositivo HID encontrado.</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Abrir todos numa &nova janela}=1{Abrir numa &nova janela}other{Abrir todos (#) numa &nova janela}}</translation> <translation id="7434509671034404296">Programador</translation> +<translation id="7434635829372401939">Sincronize as suas definições</translation> <translation id="7436921188514130341">Ah, bolas! Ocorreu um erro durante a mudança de nome.</translation> <translation id="7438976808740265764">O leitor de Flash deixará de ser suportado depois de dezembro de 2020.</translation> <translation id="7441736921018636843">Para alterar esta definição, <ph name="BEGIN_LINK" />reponha a sincronização<ph name="END_LINK" /> para remover a sua frase de acesso de sincronização</translation> @@ -4809,6 +4835,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – sincronizado</translation> <translation id="7870730066603611552">Rever opções de sincronização após a configuração</translation> <translation id="7870790288828963061">Nenhuma aplicação do Quiosque encontrada com uma versão mais recente. Nada a atualizar. Remova a pen USB.</translation> +<translation id="787268756490971083">Desativado</translation> <translation id="7874257161694977650">Fundos do Chrome</translation> <translation id="7877451762676714207">Erro de servidor desconhecido. Tente novamente ou contacte o gestor do servidor.</translation> <translation id="7877680364634660272">Visita guiada</translation> @@ -4836,6 +4863,7 @@ <translation id="7908378463497120834">Lamentamos, mas não foi possível montar, pelo menos, uma partição no aparelho de armazenamento externo.</translation> <translation id="7909969815743704077">Transferido em modo de navegação anónima</translation> <translation id="7910768399700579500">&Nova pasta</translation> +<translation id="7910831464510799808">Ativado</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">A sua palavra-passe foi alterada no servidor. Termine e inicie sessão novamente.</translation> <translation id="7915457674565721553">Ligue-se à Internet para configurar o controlo parental.</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Também serão removidos itens não indicados aqui, se necessário. Saiba mais acerca da <a href="<ph name="URL" />">proteção contra software indesejado</a> no documento técnico da Privacidade do Chrome.</translation> <translation id="935490618240037774">Os marcadores, o histórico, as palavras-passe e outras definições são sincronizados com a sua Conta Google para que os possa utilizar em todos os dispositivos.</translation> <translation id="935854577147268200">O telemóvel com Smart Lock foi alterado. Introduza a palavra-passe para atualizar o Smart Lock. Da próxima vez, o telemóvel irá desbloquear o <ph name="DEVICE_TYPE" />. Desative o Smart Lock nas Definições.</translation> +<translation id="93610034168535821">Armazenamento total utilizado pelos sites:</translation> <translation id="936801553271523408">Dados de diagnóstico do sistema</translation> <translation id="93766956588638423">Reparar extensão</translation> <translation id="938339467127511841">Armazenamento do Linux (beta)</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">O gestor de TI desativou os Extras do Chrome para o dispositivo.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Aplicação}other{Aplicações}}</translation> <translation id="965211523698323809">Envie e receba mensagens de texto com o <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Saiba mais<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Não permitir o acesso de sites a dispositivos HID</translation> <translation id="967624055006145463">Dados armazenados</translation> <translation id="968000525894980488">Ative os Serviços do Google Play.</translation> <translation id="968037381421390582">Co&lar e pesquisar "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index dcf9d828..ef8dd5c 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">නවත්වන්න</translation> <translation id="1110155001042129815">රැඳී සිටින්න</translation> <translation id="1112420131909513020">පසුබිම් පටිත්ත බ්ලූටූත් භාවිතා කරයි</translation> +<translation id="1113042067630273625">මෙය ගබඩා කළ වෙබ් අඩවි දත්තවලින් <ph name="TOTAL_USAGE" /> ක් ඉවත් කරයි.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">දියමන්ති</translation> <translation id="1114335938027186412">ඔබේ පරිගණකයේ විශ්වාසවන්ත වේදිකා මොඩියුල (TPM) අාරක්ෂණ උපාංගයක් අඩංගු වන අතර, එය Chrome OS වල බාෙහෝ තීරණාත්මක අාරක්ෂණ විශේෂාංග ක්රියාත්මක කිරීමට භාවිත වේ. තව දැන ගැනීමට Chromebook උදවු මධ්යස්ථානය වෙත යන්න: https://support.google.com/chromebook/?p=tpm</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">දෝශයක් වාර්ථා කරන්න</translation> <translation id="1741314857973421784">ඉදිරියට යන්න</translation> <translation id="1743570585616704562">හඳුනා නොගන්නා ලදී</translation> +<translation id="1743846852744439013">ඔබ කිසියම් විවෘත පටිති ඇතුළුව සියලුම වෙබ් අඩවිවලින් වරනු ලැබේ.</translation> <translation id="1743970419083351269">බාගැනීම් තීරුව වසන්න</translation> <translation id="1744060673522309905">වසමට උපාංගය එකතු කළ නොහැක. ඔබට එක් කළ හැකි උපාංග සංඛ්යාව ඉක්මවා නොමැති බව සහතික කර ගන්න.</translation> <translation id="1744108098763830590">පසුබිම් පිටුව</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">සේවා</translation> <translation id="18139523105317219">EDI සාද නාමය</translation> <translation id="1815083418640426271">සාමාන්ය පෙළ ලෙස අලවන්න</translation> +<translation id="1815181278146012280">වෙබ් අඩවියකට HID උපාංග වෙත පිවිසීමට අවශ්ය විටදී අසන්න</translation> <translation id="181577467034453336">තව <ph name="NUMBER_OF_VIEWS" />...</translation> <translation id="1816036116994822943">යතුරු පුවරු ස්කෑන් කිරීමේ වේගය</translation> <translation id="1817871734039893258">Microsoft ගොනු ප්රතිසාධනය</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">මධ්යම (නිර්දේශිත)</translation> <translation id="2077129598763517140">පවතින විට දෘඩාංග ත්වරණය භාවිත කරන්න</translation> <translation id="2078019350989722914">පිටවීමට පෙර දන්වන්න (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">අක්රිය</translation> <translation id="2079053412993822885">ඔබ ඔබේම සහතිකයක් මකා දමයි නම්, ඔබට එය භාවිත කර තවදුරටත් ඔබේ අනන්යතාව තහවුරු කිරීමට නොහැක.</translation> <translation id="2079545284768500474">නැවත වෙනස් කරන්න</translation> <translation id="2080070583977670716">තවත් සැකසුම්</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">වෙබ් අඩවියකට අවට බ්ලූටූත් උපාංග සොයා ගැනීමට අවශ්ය වූ විට අසන්න (නිර්දේශිතයි)</translation> <translation id="2292848386125228270"><ph name="PRODUCT_NAME" /> සාමාන්ය පරිශීලකයෙකු සේ ආරම්භ කරන්න. සංවර්ධනය සඳහා ඔබට root ලෙස ධාවනය කිරීමට අවශ්ය නම්, --no-sandbox කොඩිය සමඟ නැවත ධාවනය කරන්න.</translation> <translation id="2294358108254308676">ඔබට <ph name="PRODUCT_NAME" /> ස්ථාපිත කිරීමට අවශ්යද?</translation> +<translation id="2295864384543949385">ප්රතිඵල <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">මුද්රණ යන්ත්ර සොයන්න</translation> <translation id="2299734369537008228">රූටනය: <ph name="MIN_LABEL" /> සිට <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922"><ph name="APP_NAME" /> අභිරුචිකරණය සහ පාලනය</translation> @@ -1063,6 +1068,7 @@ <translation id="2485005079599453134">මුරපදය මෙම උපංගය මත සුරැකිණි</translation> <translation id="2485422356828889247">අස්ථාපනය</translation> <translation id="2487067538648443797">නව පිටුසන එක් කරන්න</translation> +<translation id="2487268545026948104">ඔබේ දත්ත ප්රතිසාධන කිරීමට, අන්තර්ජාලයට සම්බන්ධ කරන්න</translation> <translation id="2489829450872380594">මීළඟ වරට, නව දුරකථනයක් මෙම <ph name="DEVICE_TYPE" /> අඟුලු අරියි. ඔබට සැකසීම් තුළ Smart Lock අක්රිය කළ හැක.</translation> <translation id="2489918096470125693">&ෆෝල්ඩරය එක් කරන්න...</translation> <translation id="2490481887078769936">ලැයිස්තුවෙන් '<ph name="FILE_NAME" />' ඉවත් කළා</translation> @@ -1114,6 +1120,7 @@ <translation id="2541706104884128042">නව නින්දට යන වේලාව සකසන ලදී</translation> <translation id="2544853746127077729">අවසරදීම් සහතිකය ජාලය වෙතින් ප්රතික්ෂේප විය</translation> <translation id="2546283357679194313">කුකීස් සහ අඩවි දත්ත</translation> +<translation id="2547583314137677375">සමමුහූර්තය අක්රිය කරන්න</translation> <translation id="2549985041256363841">පටිගත කිරීම අරඹන්න</translation> <translation id="2550212893339833758">හුවමාරු කළ මතකය</translation> <translation id="2550596535588364872"><ph name="EXTENSION_NAME" /> හට <ph name="FILE_NAME" /> විවෘත කිරීමට ඉඩ දෙන්න ද?</translation> @@ -1207,6 +1214,7 @@ <translation id="2672142220933875349">දූශිත crx ගොනුවක්, විහිදීම අසාර්ථකයි.</translation> <translation id="2673135533890720193">ඔබගේ බ්රවුස් කිරීමේ ඉතිහාසය කියවන්න</translation> <translation id="2673589024369449924">මෙම පරිශීලක සඳහා වැඩබිම් කෙටිමඟ නිර්මාණය කරන්න</translation> +<translation id="2674764818721168631">අක්රිය</translation> <translation id="2677748264148917807">හැර යන්න</translation> <translation id="2678063897982469759">යළි-සක්රීය</translation> <translation id="268053382412112343">ඉතිහාසය</translation> @@ -1995,6 +2003,7 @@ <translation id="3780211714699334884">ඔබ මෙම පටිත්ත වසන තෙක් <ph name="ORIGIN" /> ට <ph name="FOLDERNAME" /> තුළ ඇති ගොනු සංස්කරණ කිරීමට හැකි වෙයි</translation> <translation id="3780827508782506612">මෙම පිටුව පරිවර්තනය කර ඇත</translation> <translation id="378312418865624974">මෙම පරිගණකය සඳහා අනුපම අනන්යකාරකයක් කියවන්න</translation> +<translation id="3784472333786002075">කුකී යනු වෙබ් අඩවිවලින් නිර්මාණ කෙරෙන ගොනු වේ. කුකී වර්ග දෙකක් තිබේ: පළවෙනි පාර්ශ්ව කුකී ඔබ පැමිණෙන වෙබ් අඩවියෙන් නිර්මාණ කෙරේ. වෙබ් අඩවිය ලිපින තීරුවේ පෙන්වනු ලැබේ. තෙවන පාර්ශ්ව කුකී වෙනත් වෙබ් අඩවිවලින් නිර්මාණ කෙරේ. මෙම වෙබ් අඩවිවලට ඔබ පැමිණෙන වෙබ් අඩවිය මත ඔබ දකින රූප හෝ දැන්වීම් වැනි සමහර අන්තර්ගත හිමි වේ.</translation> <translation id="3785308913036335955">යෙදුම් කෙටිමං පෙන්වන්න</translation> <translation id="3785727820640310185">මෙම අඩවිය සඳහා සුරැකි මුරපද</translation> <translation id="3788401245189148511">එයට හේතුව:</translation> @@ -2002,6 +2011,7 @@ <translation id="379082410132524484">ඔබේ කාඩ්පත කල් ඉකුත් වී ඇත</translation> <translation id="3792890930871100565">මුද්රණ යන්ත්ර එක් කරන්න</translation> <translation id="3793395331556663376">ගොනු පද්ධති ඕනෑවට වඩා විවෘත කර ඇත.</translation> +<translation id="379509625511193653">අක්රිය</translation> <translation id="3796648294839530037">ප්රියතම ජාල:</translation> <translation id="3797739167230984533">ඔබේ <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> කළමනා කෙරෙන්නේ<ph name="END_LINK" /> ඔබේ ආයතනය විසිනි</translation> <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” සඳහා <ph name="SEARCH_ENGINE" /> සොයන්න</translation> @@ -2134,6 +2144,7 @@ <translation id="3954354850384043518">සිදු කෙරෙමින් පවතී</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (හර්ට්ස් <ph name="REFRESH_RATE" />)</translation> <translation id="3954953195017194676">ඔබට මෑතකදී හසුකර ගත් WebRTC සිදුවීම් ලොග් නැත.</translation> +<translation id="3955163004258753966">උත්ශ්රේණිය ආරම්භ කිරීමේ දෝෂයයි</translation> <translation id="3955193568934677022">අඩවිවලට ආරක්ෂිත අන්තර්ගතය වාදනය කිරීමට ඉඩ දෙන්න (නිර්දේශිතයි)</translation> <translation id="3955896417885489542">Google Play විකල්ප අනුගමන සැකසීම සමාලෝචන කරන්න</translation> <translation id="3956702100721821638">Google Play වෙත ළඟා විය නොහැකිය</translation> @@ -2194,6 +2205,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{පිටවීමේ පිටුව}one{පිටවීමේ පිටු}other{පිටවීමේ පිටු}}</translation> <translation id="4044612648082411741">ඔබේ සහතික මුරපදය ඇතුළු කරන්න</translation> <translation id="404493185430269859">පෙරනිමි සෙවුම් එන්ජිම</translation> +<translation id="4046013316139505482">මෙම දිගුවලට මෙම වෙබ් අඩවිය මත තොරතුරු බැලීමටත් වෙනස් කිරීමටත් අවශ්ය නැත.</translation> <translation id="4046123991198612571">ඊළඟ ඛණ්ඩය</translation> <translation id="4050225813016893843">සත්යාපන ක්රමය</translation> <translation id="4052120076834320548">කුඩා</translation> @@ -2373,6 +2385,7 @@ <translation id="4330387663455830245">කිසිවිටක <ph name="LANGUAGE" /> පරිවර්තනය නොකරන්න</translation> <translation id="4332976768901252016">මාපිය පාලන සකසන්න</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 With RSA සංකේතනය</translation> +<translation id="4336434711095810371">සියලු දත්ත හිස් කරන්න</translation> <translation id="4336979451636460645">ජාල වාර්ථා සඳහා, බලන්න: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> හට "<ph name="EXTENSION_NAME" />" යෙදුම සමඟ සන්නිවේදනය කිරීමට අවශ්යයි</translation> <translation id="4345587454538109430">වින්යාස කරන්න...</translation> @@ -2473,6 +2486,7 @@ <translation id="4479877282574735775">අතථ්ය යන්ත්රය වින්යාස කිරීම. මෙයට විනාඩි කිහිපයක් ගත විය හැක.</translation> <translation id="4480590691557335796">ඔබේ පරිගණකයේ හානිකර මෘදුකාංග සොයා ගැනීමට සහ එය ඉවත් කිරීමට Chrome හට හැකිය</translation> <translation id="4481530544597605423">යුගලනය නොවූ උපාංග</translation> +<translation id="4488502501195719518">සියලු දත්ත හිස් කරන්නද?</translation> <translation id="4495419450179050807">මෙම පිටුව මත පෙන්වන්න එපා</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> බිඳ වැටී ඇත</translation> <translation id="450099669180426158">විස්මයාර්ථ ලකුණ අයිකනය</translation> @@ -2533,6 +2547,7 @@ <translation id="4570387585180509432">ලිපිනයන්, දුරකථන අංක සහ තවත් දේ</translation> <translation id="4572659312570518089">"<ph name="DEVICE_NAME" />" ට සම්බන්ධ වන අතරතුර සත්යාපනය අවලංගු කෙරිණ.</translation> <translation id="4572779512957829735">ඔබේ ආරක්ෂක යතුර සඳහා රහස් අංකය ඇතුළත් කරන්න</translation> +<translation id="4573515936045019911">ලිනක්ස් උත්ශ්රේණි කිරීමට ජාල සම්බන්ධතාවක් අවශ්යයි. අන්තර්ජාලයට සම්බන්ධ කර නැවත උත්සාහ කරන්න.</translation> <translation id="457386861538956877">තව...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> විකාශය කිරීමට නොහැකිය.</translation> @@ -2812,6 +2827,7 @@ <translation id="4994754230098574403">පිහිටුවමින්...</translation> <translation id="4996978546172906250">හරහා බෙදාගන්න</translation> <translation id="4997086284911172121">අන්තර්ජාල සබැඳුමක් නැත.</translation> +<translation id="4998430619171209993">සක්රීය</translation> <translation id="4998873842614926205">වෙනස්කම් ස්ථිර කරන්න</translation> <translation id="5000922062037820727">අවහිරයි (නිර්දේශිතයි)</translation> <translation id="5008936837313706385">ක්රියාකාරකමේ නම</translation> @@ -2908,6 +2924,7 @@ <translation id="5143712164865402236">පුළුල් තිරයට ඇතුළු වන්න</translation> <translation id="514575469079499857">ස්ථානය තීරණය කිරීමට ඔබේ IP ලිපිනය භාවිත කරන්න (පෙරනිමිය)</translation> <translation id="5146995429444047494"><ph name="ORIGIN" /> සඳහා දැනුම්දීම් අවහිරයි</translation> +<translation id="5147103632304200977">වෙබ් අඩවියකට HID උපාංග වෙත පිවිසීමට අවශ්ය විටදී අසන්න (නිර්දේශිතයි)</translation> <translation id="5150254825601720210">නෙට්ස්කේප් සහතික SSL සේවාදායක නම</translation> <translation id="5151354047782775295">තැටි ඉඩ හිස් කරන්න නැතහොත් තෝරන දත්ත ස්වයංක්රියව මැකීමට හැකිය</translation> <translation id="5153234146675181447">දුරකථනය අමතක කරන්න</translation> @@ -3042,6 +3059,7 @@ <translation id="5353252989841766347">Chrome වෙතින් මුරපද නිර්යාත කරන්න</translation> <translation id="5355099869024327351">සහකරුට ඔබට දැනුම් දීම් පෙන්වීමට අවසර දෙන්න</translation> <translation id="5355926466126177564">"<ph name="EXTENSION_NAME" />" දිගුව ඔබ Omnibox වෙතින් සොයන විට කුමන පිටුව පෙන්වන්නේද යන්න වෙනස් කර තිබේ.</translation> +<translation id="5359910752122114278">1 ප්රතිඑලයක්</translation> <translation id="5360150013186312835">මෙවලම් තීරුවෙහි පෙන්වන්න</translation> <translation id="5362741141255528695">පුද්ගලික යතුරු ගොනුව තෝරන්න.</translation> <translation id="5363109466694494651">Powerwash හා Revert</translation> @@ -3292,6 +3310,7 @@ <translation id="5700836101007545240">සබැඳුම එක් කිරීම ඔබේ පරිපාලක විසින් අබල කර ඇත</translation> <translation id="5701080607174488915">සේවාදායකය වෙතින් ප්රතිපත්ති ලබා ගැනීමෙහි දෝෂයයි.</translation> <translation id="5701381305118179107">මධ්ය</translation> +<translation id="5701441174893770082">ලිනක්ස් උත්ශ්රේණි කිරීම ඔබේ බැටරිය සැලකිය යුතු තරම් බස්සවයි. ඔබේ උපාංගය ආරෝපකයකට සම්බන්ධ කර නැවත උත්සාහ කරන්න.</translation> <translation id="5702898740348134351">සෙවුම් එන්ජින් සකසන්න (&E)...</translation> <translation id="570302979952009979">මෙම ඇඟිලි සලකුණ සඳහා නමක් තෝරන්න</translation> <translation id="5704875434923668958">සමමුහුර්ත කරමින්</translation> @@ -3521,6 +3540,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - USB උපාංගය සම්බන්ධයි</translation> <translation id="6028117231645531007">ඇඟිලි සලකුණ එක් කරන්න</translation> <translation id="6029587122245504742">මන්දගාමීම</translation> +<translation id="6032715498678347852">මෙම වෙබ් අඩවියට දිගු ප්රවේශයක් දීමට, එය ක්ලික් කරන්න.</translation> <translation id="6032912588568283682">ගොනු පද්ධතිය</translation> <translation id="6038929619733116134">වෙබ් අඩවිය ආක්රමණශීලී හෝ නොමඟ යවන දැන්වීම් පෙන්වන්නේ නම් අවහිර කරන්න</translation> <translation id="6039651071822577588">ජාල ගුණාංග ශබ්ද විකෘති විය</translation> @@ -3903,6 +3923,7 @@ <translation id="6582080224869403177">ඔබේ ආරක්ෂාව වැඩි දියුණු කිරීමට ඔබේ <ph name="DEVICE_TYPE" /> යළි සකසන්න.</translation> <translation id="6584878029876017575">Microsoft ජීවකාලීන සන්කිරීම</translation> <translation id="6586451623538375658">ප්රාථමික මවුස බොත්තම මාරු කරන්න</translation> +<translation id="6586604979641883411">ලිනක්ස් උත්ශ්රේණි කිරීමට අවම වශයෙන් <ph name="REQUIRED_SPACE" /> ක නිදහස් ඉඩක් අවශ්යයි. ඔබේ උපාංගය මත යම් ඉඩක් නිදහස් කර නැවත උත්සාහ කරන්න.</translation> <translation id="6590458744723262880">ෆෝල්ඩරය යළි නම් කරන්න</translation> <translation id="6592267180249644460">WebRTC වාර්ථාව <ph name="WEBRTC_LOG_CAPTURE_TIME" /> ගන්නා ලදී</translation> <translation id="6592808042417736307">ඔබේ ඇඟිලි සලකුණ ග්රහණ කළා</translation> @@ -4013,6 +4034,7 @@ <translation id="6757101664402245801">URL පිටපත් කරන ලදී</translation> <translation id="6758056191028427665">අපි සිදු කරන්නේ කෙසේදැයි අපට දන්වන්න.</translation> <translation id="6759193508432371551">කර්මාන්තශාලා නැවත සැකසුම</translation> +<translation id="6762833852331690540">සක්රීය</translation> <translation id="6767566652486411142">වෙනත් භාෂාවක් තෝරන්න...</translation> <translation id="6767639283522617719">වසමට එකතු විය නොහැක. ආයතනික ඒකකය සඳහා සැකසීම් නිවැරදි බවට වග බලා ගන්න.</translation> <translation id="6769712124046837540">මුද්රකයක් එක් කරමින්...</translation> @@ -4134,6 +4156,7 @@ <translation id="6935286146439255109">කඩදාසි තැටියක් මඟ හැරී ඇත</translation> <translation id="693807610556624488">ලිවිම් මෙහෙයුම මෙය වෙත උපලක්ෂණයේ උපරිම දිග ඉක්මවයි: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">ඔබට 1 සුරැකි මුද්රකයක් ඇත.</translation> +<translation id="6938789263968032501">පුද්ගලයින්</translation> <translation id="6941937518557314510">කරුණාකර ඔබගේ සහතිකය සමගින් <ph name="TOKEN_NAME" /> වෙත සහතික කිරීමට <ph name="HOST_NAME" /> වෙත පුරන්න.</translation> <translation id="6943176775188458830">මුද්රණය කිරීම අවලංගු කරන්න</translation> <translation id="6943836128787782965">HTTP අසාර්ථක විය</translation> @@ -4158,6 +4181,7 @@ <translation id="6970856801391541997">නිශ්චිත පිටු මුද්රණය කරන්න</translation> <translation id="6972180789171089114">ශ්රව්ය/වීඩියෝ</translation> <translation id="6972553992270299730">මෙම ෆෝල්ඩරයේ පද්ධති ගොනු අඩංගු වන බැවින් <ph name="ORIGIN" /> හට මෙය තුළ ඇති ගොනු විවෘත නොකළ හැක</translation> +<translation id="6972629891077993081">HID උපාංග</translation> <translation id="6972754398087986839">අරඹන්න</translation> <translation id="6973611239564315524">Debian 10 (Buster) වෙත උත්ශ්රේණි කිරීමක් ලැබේ</translation> <translation id="6974609594866392343">නොබැඳි ආදර්ශන ප්රකාරය</translation> @@ -4482,8 +4506,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">පසුබිම් පිටුව: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129"><ph name="DEVICE_NAME" /> වෙතින් ඇමතුමක්</translation> +<translation id="7431719494109538750">HID උපාංග කිසිවක් හමු නොවිය</translation> <translation id="7433692219247014412">{COUNT,plural, =0{සියල්ල &නව කවුළුවක විවෘත කරන්න}=1{&නව කවුළුවක විවෘත කරන්න}one{සියල්ල (#) &නව කවුළුවක විවෘත කරන්න}other{සියල්ල (#) &නව කවුළුවක විවෘත කරන්න}}</translation> <translation id="7434509671034404296">සංවර්ධක</translation> +<translation id="7434635829372401939">ඔබේ සැකසීම් සමමුහූර්ත කරන්න</translation> <translation id="7436921188514130341">අනේ, අපොයි! යළි නම් කිරීමේ දී ගැටලුවක් ඇති විය.</translation> <translation id="7438976808740265764">දෙසැම්බර් 2020 ට පසුව තවදුරටත් Flash Player සඳහා සහය දක්වනු නොලැබේ.</translation> <translation id="7441736921018636843">මෙම සැකසීම වෙනස් කිරීමට, ඔබේ සමුමුහුර්ත මුර-වැකිකඩ ඉවත් කිරීමට <ph name="BEGIN_LINK" />සමමුහුර්තය යළි සකසන්න<ph name="END_LINK" /></translation> @@ -4804,6 +4830,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - යුගල විය</translation> <translation id="7870730066603611552">පිහිටුවීමෙන් පසුව සමමුහුර්ත විකල්ප සමාලෝචනය කරන්න</translation> <translation id="7870790288828963061">නව අනුවාදයක් සමග Kiosk යෙදුමක් සොයාගත නොහැකි විය. යාවත්කාලීන කිරීමට කිසිවක් නොමැත. කරුණාකර USB දණ්ඩ ඉවත් කරන්න.</translation> +<translation id="787268756490971083">අක්රිය</translation> <translation id="7874257161694977650">Chrome පසුබිම්</translation> <translation id="7877451762676714207">නොදන්නා සේවාදායක දෝශයක්, කරුණාකර නැවත උත්සහ කරන්න හෝ පද්ධති පරිපාලක සබඳ කරගන්න.</translation> <translation id="7877680364634660272">සංචාරය</translation> @@ -4831,6 +4858,7 @@ <translation id="7908378463497120834">සමාවන්න, අඩුවශයෙන් ඔබේ බාහිර ගබඩා උපාංගය මත එක් කොටසක්වත් නැංවිය නොහැක.</translation> <translation id="7909969815743704077">අප්රකටව බාගන්නා ලදී</translation> <translation id="7910768399700579500">&නව ෆෝල්ඩරය</translation> +<translation id="7910831464510799808">සක්රීය</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">ඔබගේ මුරපදය සේවාදායකය මත වෙනස් කර ඇත. වරා අනතුරුව නැවත පුරන්න.</translation> <translation id="7915457674565721553">මාපිය පාලන සැකසීමට අන්තර්ජාලයට සම්බන්ධ කරන්න</translation> @@ -5768,6 +5796,7 @@ <translation id="934503638756687833">මෙහි ලැයිස්තුගත නොකළ අයිතම අවශ්ය නම්, ඉවත් කරනු ඇත. Chrome රහස්යතා ධවල පත්රිකාව තුළ <a href="<ph name="URL" />">අනවශ්ය මෘදුකාංග ආරක්ෂණය</a> ගැන තව දැන ගන්න.</translation> <translation id="935490618240037774">ඔබගේ පිටුසන්, ඉතිහාසය, මුරපද සහ වෙනත් සැකසීම් ඔබගේ Google ගිණුම වෙත සමමුහුර්ත වනු ඇති නිසා ඔබට ඒවා ඔබගේ සියලු උපාංග මත භාවිත කළ හැකිය.</translation> <translation id="935854577147268200">Smart Lock දුරකථනය වෙනස් විය. Smart Lock යාවත්කාලීන කිරීමට ඔබේ මුරපදය ඇතුළත් කරන්න. ඊළඟ වතාවේ, ඔබේ දුරකථනය ඔබගේ <ph name="DEVICE_TYPE" /> අඟුලු අරියි. ඔබට සැකසීම් තුළ Smart Lock අක්රිය කළ හැක.</translation> +<translation id="93610034168535821">වෙබ් අඩවිවලින් භාවිත කරනු ලැබූ සම්පූර්ණ ආචයනය:</translation> <translation id="936801553271523408">පද්ධති සොයා ගැනීමේ දත්ත</translation> <translation id="93766956588638423">දිගුව අලුත්වැඩියා කරන්න</translation> <translation id="938339467127511841">Linux (බීටා) ගබඩාව</translation> @@ -5789,6 +5818,7 @@ <translation id="964286338916298286">ඔබේ තොරතුරු තාක්ෂණ කළමනාකරු ඔබේ උපාංගය සඳහා Chrome Goodies අබල කර ඇත.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{යෙදුම}one{යෙදුම්}other{යෙදුම්}}</translation> <translation id="965211523698323809">ඔබේ <ph name="DEVICE_TYPE" /> වෙතින් පාඨ පණිවුඩ යවන්න සහ ලබන්න. <ph name="LINK_BEGIN" />තවත් දැන ගන්න<ph name="LINK_END" /></translation> +<translation id="967398046773905967">කිසිඳු වෙබ් අඩවියකට HID උපාංග වෙත ප්රවේශ වීමට ඉඩ නොදෙන්න</translation> <translation id="967624055006145463">දත්ත ගබඩා කර ඇත</translation> <translation id="968000525894980488">Google Play සේවා ක්රියාත්මක කරන්න.</translation> <translation id="968037381421390582">අලවා “<ph name="SEARCH_TERMS" />” සොයන්න</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 7de22d2..44902bc 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stop (Заустави)</translation> <translation id="1110155001042129815">Сачекај</translation> <translation id="1112420131909513020">Картица у позадини користи Bluetooth</translation> +<translation id="1113042067630273625">Овим бришете <ph name="TOTAL_USAGE" /> сачуваних података сајтова.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Дијамант</translation> <translation id="1114335938027186412">Рачунар садржи безбедносни уређај са модулом поуздане платформе (TPM), који се користи за примену многих безбедносних функција од суштинске важности у Chrome ОС-у. Посетите Центар за помоћ за Chromebook да бисте сазнали више: https://support.google.com/chromebook/?p=tpm</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">Пријави грешку</translation> <translation id="1741314857973421784">Настави</translation> <translation id="1743570585616704562">Није препознат</translation> +<translation id="1743846852744439013">Одјавићете се са свих сајтова, укључујући и инстанце на свим отвореним картицама.</translation> <translation id="1743970419083351269">Затвори траку са преузимањима</translation> <translation id="1744060673522309905">Придруживање уређаја домену није успело. Уверите се да нисте премашили број уређаја које можете да додате.</translation> <translation id="1744108098763830590">страница у позадини</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">Услуге</translation> <translation id="18139523105317219">Име EDI стране</translation> <translation id="1815083418640426271">Налепи као чисти текст</translation> +<translation id="1815181278146012280">Питај када сајт жели да приступи уређајима са интерфејсом</translation> <translation id="181577467034453336">још <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Брзина скенирања тастатуре</translation> <translation id="1817871734039893258">Microsoft опоравак датотека</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">Средње (препоручено)</translation> <translation id="2077129598763517140">Користи хардверско убрзање када је доступно</translation> <translation id="2078019350989722914">Упозори пре напуштања (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Искључено</translation> <translation id="2079053412993822885">Ако избришете неки свој сертификат, више нећете моћи да га користите да се идентификујете.</translation> <translation id="2079545284768500474">Опозови</translation> <translation id="2080070583977670716">Више подешавања</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">Питај када сајт жели да открије Bluetooth уређаје у близини (препоручено)</translation> <translation id="2292848386125228270">Покрените <ph name="PRODUCT_NAME" /> као обичан корисник. Ако треба да га покренете као основни производ ради програмирања, покрените га поново помоћу ознаке --no-sandbox.</translation> <translation id="2294358108254308676">Желите ли да инсталирате <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> резултата</translation> <translation id="2297705863329999812">Претражите штампаче</translation> <translation id="2299734369537008228">Клизач: од <ph name="MIN_LABEL" /> до <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Прилагодите и контролишите апликацију <ph name="APP_NAME" /></translation> @@ -1063,6 +1068,7 @@ <translation id="2485005079599453134">Лозинка је сачувана на овом уређају</translation> <translation id="2485422356828889247">Деинсталирај</translation> <translation id="2487067538648443797">Додај нови обележивач</translation> +<translation id="2487268545026948104">Да бисте вратили податке, повежите се на интернет</translation> <translation id="2489829450872380594">Следећи пут ће нови телефон откључати овај <ph name="DEVICE_TYPE" />. Можете да искључите Smart Lock у подешавањима.</translation> <translation id="2489918096470125693">Додај &директоријум...</translation> <translation id="2490481887078769936">Датотека „<ph name="FILE_NAME" />“ је уклоњена са листе</translation> @@ -1114,6 +1120,7 @@ <translation id="2541706104884128042">Подешено је ново време за спавање</translation> <translation id="2544853746127077729">Мрежа је одбила сертификат за потврду аутентичности</translation> <translation id="2546283357679194313">Колачићи и подаци о сајтовима</translation> +<translation id="2547583314137677375">Искључи Синхронизацију</translation> <translation id="2549985041256363841">Започни снимање</translation> <translation id="2550212893339833758">Замењена меморија</translation> <translation id="2550596535588364872">Желите ли да дозволите да <ph name="EXTENSION_NAME" /> отвори <ph name="FILE_NAME" />?</translation> @@ -1207,6 +1214,7 @@ <translation id="2672142220933875349">crx датотека је оштећена. Отпакивање није успело.</translation> <translation id="2673135533890720193">Читање ваше историје прегледања</translation> <translation id="2673589024369449924">Направи пречицу на радној површини за овог корисника</translation> +<translation id="2674764818721168631">Искључено</translation> <translation id="2677748264148917807">Затвори</translation> <translation id="2678063897982469759">Поново омогући</translation> <translation id="268053382412112343">Hi&story (Историја)</translation> @@ -1995,6 +2003,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> ће моћи да мења датотеке у директоријуму <ph name="FOLDERNAME" /> док не затворите ову картицу</translation> <translation id="3780827508782506612">Ова страница је преведена</translation> <translation id="378312418865624974">Читање јединственог идентификатора за овај рачунар</translation> +<translation id="3784472333786002075">Колачићи су датотеке које праве веб-сајтови. Постоје два типа колачића: Колачиће прве стране прави сајт који посећујете. Сајт је приказан на траци за адресу. Колачиће треће стране праве други сајтови. Ти сајтови су власници делова садржаја који видите на посећеном веб-сајту, попут огласа или слика.</translation> <translation id="3785308913036335955">Прикажи пречицу за апликације</translation> <translation id="3785727820640310185">Сачуване лозинке за овај сајт</translation> <translation id="3788401245189148511">Могли би да:</translation> @@ -2002,6 +2011,7 @@ <translation id="379082410132524484">Картица је истекла</translation> <translation id="3792890930871100565">Прекини везу са штампачима</translation> <translation id="3793395331556663376">Отворено је превише система датотека.</translation> +<translation id="379509625511193653">Искључено</translation> <translation id="3796648294839530037">Омиљене мреже:</translation> <translation id="3797739167230984533">Организација <ph name="BEGIN_LINK" />управља уређајем <ph name="DEVICE_TYPE" /><ph name="END_LINK" /></translation> <translation id="3797900183766075808">&Претражи „<ph name="SEARCH_TERMS" />“ на претраживачу <ph name="SEARCH_ENGINE" /></translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">У току</translation> <translation id="3954469006674843813"><ph name="WIDTH" />×<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> херца)</translation> <translation id="3954953195017194676">Нисте недавно снимили ниједну WebRTC евиденцију догађаја.</translation> +<translation id="3955163004258753966">Грешка при покретању надоградње</translation> <translation id="3955193568934677022">Дозволи сајтовима да пуштају заштићени садржај (препоручено)</translation> <translation id="3955896417885489542">Прегледајте Google Play опције после подешавања</translation> <translation id="3956702100721821638">Google Play није доступан</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Затвори страницу}one{Затвори странице}few{Затвори странице}other{Затвори странице}}</translation> <translation id="4044612648082411741">Унесите лозинку за сертификат</translation> <translation id="404493185430269859">Подразумевани претраживач</translation> +<translation id="4046013316139505482">Ови додаци не морају да виде и мењају информације на овом сајту.</translation> <translation id="4046123991198612571">Следећа песма</translation> <translation id="4050225813016893843">Метод за потврду идентитета</translation> <translation id="4052120076834320548">Сићушна</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245">Никад не преводи <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Подесите родитељски надзор</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 са RSA шифровањем</translation> +<translation id="4336434711095810371">Обриши све податке</translation> <translation id="4336979451636460645">Евиденције мреже потражите на: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> жели да комуницира са апликацијом „<ph name="EXTENSION_NAME" />“</translation> <translation id="4345587454538109430">Конфигуриши...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">Виртуелна машина се конфигуруше. То може да потраје неколико минута.</translation> <translation id="4480590691557335796">Chrome може да пронађе штетан софтвер на рачунару и да га уклони</translation> <translation id="4481530544597605423">Уређаји чије је упаривање опозвано</translation> +<translation id="4488502501195719518">Желите да обришете све податке?</translation> <translation id="4495419450179050807">Не приказуј на овој страници</translation> <translation id="4500114933761911433">Додатна компонента <ph name="PLUGIN_NAME" /> је отказала</translation> <translation id="450099669180426158">Икона узвичника</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">Адресе, бројеви телефона и још тога</translation> <translation id="4572659312570518089">Потврда аутентичности је отказана током повезивања са „<ph name="DEVICE_NAME" />“.</translation> <translation id="4572779512957829735">Унесите PIN за безбедносни кључ</translation> +<translation id="4573515936045019911">Треба вам мрежна веза да бисте надоградили Linux. Повежите се на интернет и пробајте поново.</translation> <translation id="457386861538956877">Још...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Није успело пребацивање за <ph name="HOST_NAME" />.</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">Подешава се</translation> <translation id="4996978546172906250">Дељење преко</translation> <translation id="4997086284911172121">Нема интернет везе.</translation> +<translation id="4998430619171209993">Укључено</translation> <translation id="4998873842614926205">Потврда промена</translation> <translation id="5000922062037820727">Блокирано (препоручено)</translation> <translation id="5008936837313706385">Назив активности</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">Пређи на режим целог екрана</translation> <translation id="514575469079499857">Коришћење IP адресе за одређивање локације (подразумевано)</translation> <translation id="5146995429444047494">Обавештења за <ph name="ORIGIN" /> су блокирана</translation> +<translation id="5147103632304200977">Питај када сајт жели да приступи уређајима са интерфејсом (препоручено)</translation> <translation id="5150254825601720210">Назив SSL сервера Netscape сертификата</translation> <translation id="5151354047782775295">Ослободите простор на диску или ће одређени подаци можда аутоматски бити избрисани</translation> <translation id="5153234146675181447">Заборављање телефона</translation> @@ -3041,6 +3058,7 @@ <translation id="5353252989841766347">Извезите лозинке из Chrome-а</translation> <translation id="5355099869024327351">Омогућите Помоћнику да вам приказује обавештења</translation> <translation id="5355926466126177564">Додатак „<ph name="EXTENSION_NAME" />“ је променио страницу која се приказује када претражујете из омнибокса.</translation> +<translation id="5359910752122114278">1 резултат</translation> <translation id="5360150013186312835">Прикажи на траци с алаткама</translation> <translation id="5362741141255528695">Изаберите датотеку приватног кључа.</translation> <translation id="5363109466694494651">Обави Powerwash и врати</translation> @@ -3291,6 +3309,7 @@ <translation id="5700836101007545240">Администратор је онемогућио додавање везе</translation> <translation id="5701080607174488915">Грешка при преузимању смерница са сервера.</translation> <translation id="5701381305118179107">Центрирај</translation> +<translation id="5701441174893770082">Надоградњом Linux-а можете значајно да испразните батерију. Повежите уређај са пуњачем и пробајте поново.</translation> <translation id="5702898740348134351">&Измени претраживаче...</translation> <translation id="570302979952009979">Одаберите назив за овај отисак прста</translation> <translation id="5704875434923668958">Синхронизује се са</translation> @@ -3520,6 +3539,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB уређај је повезан</translation> <translation id="6028117231645531007">Додај отисак прста</translation> <translation id="6029587122245504742">Најспорије</translation> +<translation id="6032715498678347852">Да бисте дали додатку приступ за овај сајт, кликните на њега.</translation> <translation id="6032912588568283682">Систем датотека</translation> <translation id="6038929619733116134">Блокирај ако сајт приказује огласе који ометају активности или обмањујуће огласе</translation> <translation id="6039651071822577588">Погрешан формат речника мрежних својстава</translation> @@ -3904,6 +3924,7 @@ <translation id="6582080224869403177">Ресетујте уређај <ph name="DEVICE_TYPE" /> да бисте надоградили безбедносну функцију.</translation> <translation id="6584878029876017575">Microsoft доживотно потписивање</translation> <translation id="6586451623538375658">Замени примарни тастер миша</translation> +<translation id="6586604979641883411">Треба вам најмање <ph name="REQUIRED_SPACE" /> слободног простора на диску да бисте надоградили Linux. Ослободите простор на уређају и пробајте поново.</translation> <translation id="6590458744723262880">Промените назив директоријума</translation> <translation id="6592267180249644460">WebRTC евиденција је снимљена <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Отисак прста је снимљен</translation> @@ -4014,6 +4035,7 @@ <translation id="6757101664402245801">URL је копиран</translation> <translation id="6758056191028427665">Поделите утиске о нашем учинку.</translation> <translation id="6759193508432371551">Враћање фабричких подешавања</translation> +<translation id="6762833852331690540">Укључено</translation> <translation id="6767566652486411142">Одаберите други језик…</translation> <translation id="6767639283522617719">Придруживање домену није успело. Уверите се да су подешавања исправна за организациону јединицу.</translation> <translation id="6769712124046837540">Додавање штампача...</translation> @@ -4135,6 +4157,7 @@ <translation id="6935286146439255109">Недостаје посуда за папир</translation> <translation id="693807610556624488">Операција читања премашује максималну дужину атрибута за: „<ph name="DEVICE_NAME" />“.</translation> <translation id="6938386202199793006">Имате 1 сачувани штампач.</translation> +<translation id="6938789263968032501">Људи</translation> <translation id="6941937518557314510">Пријавите се на <ph name="TOKEN_NAME" /> да бисте потврдили идентитет хосту <ph name="HOST_NAME" /> помоћу сертификата.</translation> <translation id="6943176775188458830">Откажи штампање</translation> <translation id="6943836128787782965">HTTP get није успео</translation> @@ -4159,6 +4182,7 @@ <translation id="6970856801391541997">Штампање посебних страница</translation> <translation id="6972180789171089114">Аудио/видео</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> не може да отвори датотеке у овом директоријуму јер он садржи системске датотеке</translation> +<translation id="6972629891077993081">Уређаји са интерфејсом</translation> <translation id="6972754398087986839">Започнимо</translation> <translation id="6973611239564315524">Доступна је надоградња на Debian 10 (Buster)</translation> <translation id="6974609594866392343">Офлајн режим демонстрације</translation> @@ -4483,8 +4507,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Страница у позадини: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Позив са уређаја <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Није пронађен ниједан уређај са интерфејсом</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Отвори све у &новом прозору}=1{Отвори у &новом прозору}one{Отвори све (#) у &новом прозору}few{Отвори све (#) у &новом прозору}other{Отвори све (#) у &новом прозору}}</translation> <translation id="7434509671034404296">Програмер</translation> +<translation id="7434635829372401939">Синхронизујте подешавања</translation> <translation id="7436921188514130341">О, не! Дошло је до грешке током промене назива.</translation> <translation id="7438976808740265764">Flash Player више неће бити подржан од децембра 2020.</translation> <translation id="7441736921018636843">Да бисте променили ово подешавање, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /> да бисте уклонили приступну фразу за синхронизацију</translation> @@ -4806,6 +4832,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – Упарен је</translation> <translation id="7870730066603611552">Прегледа опције синхронизације после подешавања</translation> <translation id="7870790288828963061">Није пронађена ниједна киоск апликација са новијом верзијом. Нема шта да се ажурира. Уклоните USB меморију.</translation> +<translation id="787268756490971083">Искључено</translation> <translation id="7874257161694977650">Chrome позадине</translation> <translation id="7877451762676714207">Непозната грешка сервера. Пробајте поново или контактирајте администратора сервера.</translation> <translation id="7877680364634660272">Обилазак</translation> @@ -4833,6 +4860,7 @@ <translation id="7908378463497120834">Жао нам је, најмање једну партицију спољног меморијског уређаја није било могуће укључити.</translation> <translation id="7909969815743704077">Преузето је у режиму без архивирања</translation> <translation id="7910768399700579500">&Нови директоријум</translation> +<translation id="7910831464510799808">Укључено</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Лозинка је промењена на серверу. Одјавите се, па се поново пријавите.</translation> <translation id="7915457674565721553">Повежите се на интернет да бисте подесили родитељски надзор</translation> @@ -5771,6 +5799,7 @@ <translation id="934503638756687833">Уклониће се и ставке које нису овде наведене, ако је то потребно. Сазнајте више о <a href="<ph name="URL" />">заштити од нежељеног софтвера</a> у белој књизи о приватности у Chrome-у.</translation> <translation id="935490618240037774">Обележивачи, историја, лозинке и друга подешавања ће се синхронизовати са Google налогом да бисте могли да их користите на свим уређајима.</translation> <translation id="935854577147268200">Smart Lock телефон је промењен. Унесите лозинку да бисте ажурирали Smart Lock. Следећи пут ће телефон откључати <ph name="DEVICE_TYPE" />. Можете да искључите Smart Lock у подешавањима</translation> +<translation id="93610034168535821">Укупан меморијски простор који користе сајтови:</translation> <translation id="936801553271523408">Системски дијагностички подаци</translation> <translation id="93766956588638423">Поправи додатак</translation> <translation id="938339467127511841">Linux (бета) меморијски простор</translation> @@ -5792,6 +5821,7 @@ <translation id="964286338916298286">ИТ администратор је онемогућио Chrome забавне стварчице за уређај.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Апликација}one{Апликације}few{Апликације}other{Апликације}}</translation> <translation id="965211523698323809">Шаљите и примајте SMS-ове са уређаја <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Сазнајте више<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Не дозвољавај сајтовима да приступају уређајима са интерфејсом</translation> <translation id="967624055006145463">Сачувани подаци</translation> <translation id="968000525894980488">Укључите Google Play услуге.</translation> <translation id="968037381421390582">Налепи и претражи „<ph name="SEARCH_TERMS" />“</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index ed955939..e16d001 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Stopp</translation> <translation id="1110155001042129815">Vänta</translation> <translation id="1112420131909513020">En flik i bakgrunden använder Bluetooth</translation> +<translation id="1113042067630273625"><ph name="TOTAL_USAGE" /> av lagrad webbplatsdata rensas.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">Datorn innehåller säkerhetsenheten TPM (Trusted Platform Module), som används för att implementera flera viktiga säkerhetsfunktioner i Chrome OS. Besök hjälpcentret för Chromebook om du vill läsa mer: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Rapportera fel</translation> <translation id="1741314857973421784">Fortsätt</translation> <translation id="1743570585616704562">Identifierades inte</translation> +<translation id="1743846852744439013">Du loggas ut från alla webbplatser, även på öppna flikar.</translation> <translation id="1743970419083351269">Stäng nedladdningsfältet</translation> <translation id="1744060673522309905">Det gick inte att ansluta enheten till domänen. Kontrollera att du inte redan har lagt till det högsta tillåtna antalet enheter.</translation> <translation id="1744108098763830590">bakgrundssida</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Tjänster</translation> <translation id="18139523105317219">EDI-partsnamn</translation> <translation id="1815083418640426271">Klistra in som oformaterad text</translation> +<translation id="1815181278146012280">Fråga om en webbplats försöker få åtkomst till HID-enheter</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> till …</translation> <translation id="1816036116994822943">Genomsökningshastighet för tangentbord</translation> <translation id="1817871734039893258">Microsofts filåterställning</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Medium (rekommenderas)</translation> <translation id="2077129598763517140">Använd maskinvaruacceleration när det är tillgängligt</translation> <translation id="2078019350989722914">Varna innan du avslutar (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Av</translation> <translation id="2079053412993822885">Om du tar bort ett av dina egna certifikat kan du inte längre använda det för att identifiera dig själv.</translation> <translation id="2079545284768500474">Ångra</translation> <translation id="2080070583977670716">Fler inställningar</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Fråga när en webbplats försöker söka efter Bluetooth-enheter i närheten (rekommenderas)</translation> <translation id="2292848386125228270">Starta <ph name="PRODUCT_NAME" /> som vanlig användare. Om du behöver köra som systemadministratör startar du om med flaggan --no-sandbox.</translation> <translation id="2294358108254308676">Vill du installera <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> resultat</translation> <translation id="2297705863329999812">Sök skrivare</translation> <translation id="2299734369537008228">Skjutreglage <ph name="MIN_LABEL" /> till <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Anpassa och kontrollera <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Lösenord som har sparats på den här enheten</translation> <translation id="2485422356828889247">Avinstallera</translation> <translation id="2487067538648443797">Lägg till ett nytt bokmärke</translation> +<translation id="2487268545026948104">Anslut till internet om du vill återställa data</translation> <translation id="2489829450872380594">Nästa gång låser en ny mobil upp denna <ph name="DEVICE_TYPE" />. Du kan stänga av Smart Lock i inställningarna.</translation> <translation id="2489918096470125693">Lägg till &mapp ...</translation> <translation id="2490481887078769936"><ph name="FILE_NAME" /> har tagits bort från listan</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Ny stopptid har ställts in</translation> <translation id="2544853746127077729">Autentiseringscertifikatet godkändes inte av nätverket</translation> <translation id="2546283357679194313">Cookies och webbplatsdata</translation> +<translation id="2547583314137677375">Inaktivera synkronisering</translation> <translation id="2549985041256363841">Börja spela in</translation> <translation id="2550212893339833758">Växlingsminne</translation> <translation id="2550596535588364872">Tillåter du att <ph name="FILE_NAME" /> öppnas med <ph name="EXTENSION_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">CRX-filen fungerar inte. Det gick inte att packa upp.</translation> <translation id="2673135533890720193">Läsa webbhistoriken</translation> <translation id="2673589024369449924">Skapa en skrivbordsgenväg för den här användaren</translation> +<translation id="2674764818721168631">Av</translation> <translation id="2677748264148917807">Lämna</translation> <translation id="2678063897982469759">Aktivera igen</translation> <translation id="268053382412112343">Hi&storik</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> har redigeringsbehörighet till filer i <ph name="FOLDERNAME" /> tills du stänger den här fliken</translation> <translation id="3780827508782506612">Sidan har översatts</translation> <translation id="378312418865624974">Läsa en unik identifierare för den här datorn</translation> +<translation id="3784472333786002075">Cookies är filer som har skapats av webbplatser. Det finns två sorters cookies. Cookies från första part skapas av webbplatsen du besöker. Webbplatsen visas i adressfältet. Cookies från tredje part skapas av andra webbplatser. Dessa webbplatser äger en del av innehållet som visas på webbplatsen du besöker, till exempel annonser eller bilder.</translation> <translation id="3785308913036335955">Visa genväg för appar</translation> <translation id="3785727820640310185">Sparade lösenord för den här webbplatsen</translation> <translation id="3788401245189148511">Appen eller tillägget skulle kunna:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Kortets giltighetstid har löpt ut</translation> <translation id="3792890930871100565">Koppla från skrivare</translation> <translation id="3793395331556663376">För många filsystem har öppnats.</translation> +<translation id="379509625511193653">Av</translation> <translation id="3796648294839530037">Favoritnätverk:</translation> <translation id="3797739167230984533">Din <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> hanteras<ph name="END_LINK" /> av organisationen</translation> <translation id="3797900183766075808">&Sök på <ph name="SEARCH_ENGINE" /> efter ”<ph name="SEARCH_TERMS" />”</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Pågår</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">Du har inga nyligen registrerade WebRTC-händelseloggar.</translation> +<translation id="3955163004258753966">Ett fel uppstod när uppgraderingen skulle startas</translation> <translation id="3955193568934677022">Tillåt att skyddat innehåll spelas upp på webbplatser (rekommenderas)</translation> <translation id="3955896417885489542">Visa alternativ för Google Play efter konfigureringen</translation> <translation id="3956702100721821638">Det gick inte att nå Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Lämna sidan}other{Lämna sidorna}}</translation> <translation id="4044612648082411741">Ange certifikatlösenordet</translation> <translation id="404493185430269859">Standardsökmotor</translation> +<translation id="4046013316139505482">De här tilläggen behöver inte se och ändra information på den här webbplatsen.</translation> <translation id="4046123991198612571">Nästa spår</translation> <translation id="4050225813016893843">Autentiseringsmetod</translation> <translation id="4052120076834320548">Mycket liten</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Översätt aldrig från <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Konfigurera föräldrakontroller</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 med RSA-kryptering</translation> +<translation id="4336434711095810371">Rensa all data</translation> <translation id="4336979451636460645">Nätverksloggar finns på <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> vill kommunicera med appen <ph name="EXTENSION_NAME" /></translation> <translation id="4345587454538109430">Konfigurera...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Den virtuella maskinen konfigureras. Det kan ta några minuter.</translation> <translation id="4480590691557335796">Chrome kan hjälpa dig att upptäcka skadlig programvara på datorn och ta bort den</translation> <translation id="4481530544597605423">Frånkopplade enheter</translation> +<translation id="4488502501195719518">Vill du rensa all data?</translation> <translation id="4495419450179050807">Visa inte den här sidan</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> har kraschat</translation> <translation id="450099669180426158">Ikon med utropstecken</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Adresser, telefonnummer och annat</translation> <translation id="4572659312570518089">Autentiseringen avbröts vid anslutning till <ph name="DEVICE_NAME" />.</translation> <translation id="4572779512957829735">Ange säkerhetsnyckelns pinkod</translation> +<translation id="4573515936045019911">Det krävs en nätverksanslutning för att uppgradera Linux. Anslut till internet och försök igen.</translation> <translation id="457386861538956877">Mer...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Det gick inte att casta <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Konfigurerar</translation> <translation id="4996978546172906250">Dela via</translation> <translation id="4997086284911172121">Ingen internetanslutning</translation> +<translation id="4998430619171209993">På</translation> <translation id="4998873842614926205">Bekräfta ändringar</translation> <translation id="5000922062037820727">Blockeras (rekommenderas)</translation> <translation id="5008936837313706385">Aktivitetsnamn</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Visa i helskärm</translation> <translation id="514575469079499857">Fastställ platsen utifrån IP-adressen (standard)</translation> <translation id="5146995429444047494">Aviseringar för <ph name="ORIGIN" /> blockeras.</translation> +<translation id="5147103632304200977">Fråga när en webbplats försöker få åtkomst till HID-enheter (rekommenderas)</translation> <translation id="5150254825601720210">SSL-servernamn för Netscape-certifikat</translation> <translation id="5151354047782775295">Frigör diskutrymme, annars tas en del data bort automatiskt.</translation> <translation id="5153234146675181447">Glöm mobil</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Exportera lösenord från Chrome</translation> <translation id="5355099869024327351">Tillåt att assistenten visar aviseringar</translation> <translation id="5355926466126177564">Tillägget <ph name="EXTENSION_NAME" /> har ändrat vilken sida som visas när du söker i adressfältet.</translation> +<translation id="5359910752122114278">1 resultat</translation> <translation id="5360150013186312835">Visa i verktygsfältet</translation> <translation id="5362741141255528695">Välj privat nyckelfil.</translation> <translation id="5363109466694494651">Använd Powerwash och återställ</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Lägg till anslutning har inaktiverats av administratören</translation> <translation id="5701080607174488915">Ett fel uppstod när policyn skulle hämtas från servern.</translation> <translation id="5701381305118179107">Centrera</translation> +<translation id="5701441174893770082">En uppgradering av Linux kan göra att batteriet tar slut betydligt fortare. Anslut enheten till en laddare och försök igen.</translation> <translation id="5702898740348134351">&Redigera sökmotorer...</translation> <translation id="570302979952009979">Ge fingeravtrycket ett namn</translation> <translation id="5704875434923668958">Synkroniserar till</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – ansluten till USB-enhet</translation> <translation id="6028117231645531007">Lägg till fingeravtryck</translation> <translation id="6029587122245504742">Långsammast</translation> +<translation id="6032715498678347852">Klicka på tillägget om du vill ge det åtkomst till den här webbplatsen.</translation> <translation id="6032912588568283682">Filsystem</translation> <translation id="6038929619733116134">Blockera om påträngande eller vilseledande annonser visas på webbplatsen</translation> <translation id="6039651071822577588">Ordboken för nätverksegenskaper har felaktigt format</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Du måste återställa <ph name="DEVICE_TYPE" /> för att uppgradera säkerheten.</translation> <translation id="6584878029876017575">Microsofts Livstids signering</translation> <translation id="6586451623538375658">Byt primär musknapp</translation> +<translation id="6586604979641883411">Det krävs minst <ph name="REQUIRED_SPACE" /> ledigt hårddiskutrymme för att uppgradera Linux. Frigör utrymme på enheten och försök igen.</translation> <translation id="6590458744723262880">Byt namn på mapp</translation> <translation id="6592267180249644460">WebRTC-logg registrerades <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Ditt fingeravtryck har registrerats</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">Webbadressen har kopierats</translation> <translation id="6758056191028427665">Berätta hur vi sköter oss.</translation> <translation id="6759193508432371551">Återställ standardinställningar</translation> +<translation id="6762833852331690540">På</translation> <translation id="6767566652486411142">Välj ett annat språk …</translation> <translation id="6767639283522617719">Det gick inte att ansluta till domänen. Kontrollera inställningarna för organisationsenheten.</translation> <translation id="6769712124046837540">Lägger till skrivare ...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Pappersfacket hittades inte</translation> <translation id="693807610556624488">Skrivåtgärden överstiger maxlängden för attributet till: <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">Du har 1 sparad skrivare.</translation> +<translation id="6938789263968032501">Personer</translation> <translation id="6941937518557314510">Logga in på <ph name="TOKEN_NAME" /> om du vill autentisera till <ph name="HOST_NAME" /> med ditt certifikat.</translation> <translation id="6943176775188458830">Avbryt utskriften</translation> <translation id="6943836128787782965">HTTP GET misslyckades</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Skriv ut vissa sidor</translation> <translation id="6972180789171089114">Ljud/video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> kan inte öppna filer i den här mappen eftersom den innehåller systemfiler</translation> +<translation id="6972629891077993081">HID-enheter</translation> <translation id="6972754398087986839">Komma igång</translation> <translation id="6973611239564315524">En uppgradering till Debian 10 (Buster) är tillgänglig</translation> <translation id="6974609594866392343">Demoläge offline</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Bakgrundssida: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Ring från <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Inga HID-enheter hittades</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Öppna alla i ett &nytt fönster}=1{Öppna i ett &nytt fönster}other{Öppna alla (#) i ett &nytt fönster}}</translation> <translation id="7434509671034404296">Utvecklare</translation> +<translation id="7434635829372401939">Synkronisera inställningar</translation> <translation id="7436921188514130341">Ett fel uppstod när namnet skulle bytas.</translation> <translation id="7438976808740265764">Stödet för Flash Player upphör i slutet av december 2020.</translation> <translation id="7441736921018636843"><ph name="BEGIN_LINK" />Återställ synkroniseringen<ph name="END_LINK" /> så att lösenfrasen för synkronisering tas bort om du vill ändra den här inställningen</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> – kopplad</translation> <translation id="7870730066603611552">Granska synkroniseringsalternativen efter konfigureringen</translation> <translation id="7870790288828963061">Inga kioskappar med nyare version hittades. Det finns inget att uppdatera. Ta bort USB-minnet.</translation> +<translation id="787268756490971083">Av</translation> <translation id="7874257161694977650">Chrome-bakgrunder</translation> <translation id="7877451762676714207">Okänt serverfel. Försök igen eller kontakta serveradministratören.</translation> <translation id="7877680364634660272">Rundtur</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Minst en partition på den externa lagringsenheten kunde inte monteras.</translation> <translation id="7909969815743704077">Laddades ned i inkognitoläge</translation> <translation id="7910768399700579500">&Ny mapp</translation> +<translation id="7910831464510799808">På</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Lösenordet har ändrats på servern. Logga ut och logga sedan in igen.</translation> <translation id="7915457674565721553">Anslut till internet om du vill ställa in föräldrakontroller</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Även objekt som inte står med här tas bort om det behövs. Läs mer om <a href="<ph name="URL" />">skydd mot oönskad programvara</a> i vitboken om sekretess och Chrome.</translation> <translation id="935490618240037774">Bokmärken, historik, lösenord och andra inställningar synkroniseras med ditt Google-konto så att du kan använda dem på alla enheter.</translation> <translation id="935854577147268200">Smart Lock används med en annan mobil än tidigare. Ange lösenordet och uppdatera Smart Lock. Nästa gång låser mobilen upp denna <ph name="DEVICE_TYPE" />. Du kan inaktivera Smart Lock i inställningarna</translation> +<translation id="93610034168535821">Totalt lagringsutrymme som används av webbplatser:</translation> <translation id="936801553271523408">Systemets diagnostikresultat</translation> <translation id="93766956588638423">Reparera tillägg</translation> <translation id="938339467127511841">Lagringsutrymme för Linux (beta)</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">IT-administratören har inaktiverat Godbitar från Chrome för din enhet.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{App}other{Appar}}</translation> <translation id="965211523698323809">Skicka och ta emot sms på <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Läs mer<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Ge inga webbplatser åtkomst till HID-enheter</translation> <translation id="967624055006145463">Sparad data</translation> <translation id="968000525894980488">Aktivera Google Play-tjänster.</translation> <translation id="968037381421390582">Kli&stra in och sök efter <ph name="SEARCH_TERMS" /></translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index bb40e41..fa94c9e 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Acha</translation> <translation id="1110155001042129815">Subiri</translation> <translation id="1112420131909513020">Kichupo kinachofanya kazi chinichini kinatumia Bluetooth</translation> +<translation id="1113042067630273625">Hatua hii itafuta <ph name="TOTAL_USAGE" /> ya data ya tovuti iliyohifadhiwa.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Almasi</translation> <translation id="1114335938027186412">Kompyuta yako ina kifaa cha usalama cha Mfumo wa Uendeshaji Unaoaminika (TPM), ambacho kinatumiwa kutekeleza vipengee vingi muhimu vya usalama kwenye Chrome OS. Tembelea Kituo cha Usaidizi cha Chromebook ili upate malezo zaidi: https://support.google.com/chromebook/?p=tpm</translation> @@ -535,6 +536,7 @@ <translation id="1737968601308870607">Ripoti hitilafu</translation> <translation id="1741314857973421784">Endelea</translation> <translation id="1743570585616704562">Haikutambua alama ya kidole</translation> +<translation id="1743846852744439013">Utaondolewa kwenye akaunti za tovuti zote, ikiwa ni pamoja na vichupo vyovyote ulivyofungua.</translation> <translation id="1743970419083351269">Funga Upau wa Vipakuliwa</translation> <translation id="1744060673522309905">Imeshindwa kuunganisha kifaa kwenye kikoa. Hakikisha kuwa hujapitisha idadi ya vifaa unavyoruhusiwa kuongeza.</translation> <translation id="1744108098763830590">Ukurasa wa mandharinyuma</translation> @@ -593,6 +595,7 @@ <translation id="1813278315230285598">Huduma</translation> <translation id="18139523105317219">Jina la Sehemu ya EDI</translation> <translation id="1815083418640426271">Bandika Kama Matini Makavu</translation> +<translation id="1815181278146012280">Iulize wakati tovuti inataka kufikia vifaa vya HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> zaidi...</translation> <translation id="1816036116994822943">Kasi ya kuchanganua katika kibodi</translation> <translation id="1817871734039893258">Uopoaji wa Faili kutoka Microsoft</translation> @@ -764,6 +767,7 @@ <translation id="2076672359661571384">Wastani (Inayopendekezwa)</translation> <translation id="2077129598763517140">Tumia uongezaji kasi wa maunzi wakati unapatikana</translation> <translation id="2078019350989722914">Onya Kabla ya Kutoka ( <ph name="KEY_EQUIVALENT" /> )</translation> +<translation id="2078494137444990774">Imezimwa</translation> <translation id="2079053412993822885">Ukifuta moja wapo ya vyeti vyako, huwezi kukitumia tena kujitambulisha.</translation> <translation id="2079545284768500474">Tendua</translation> <translation id="2080070583977670716">Mipangilio zaidi</translation> @@ -930,6 +934,7 @@ <translation id="2289270750774289114">Niulize wakati tovuti inataka kugundua vifaa vya Bluetooth vilivyo karibu (inapendekezwa)</translation> <translation id="2292848386125228270">Tafadhali anzisha <ph name="PRODUCT_NAME" /> ukiwa mtumiaji wa kawaida. Ikiwa unahitaji kutumia kama chanzo cha uimarishaji, tumia tena kwa alama ya --no-sandbox.</translation> <translation id="2294358108254308676">Je, untataka kusakinisha <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385">Matokeo <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">Tafuta printa</translation> <translation id="2299734369537008228">Kitelezi: <ph name="MIN_LABEL" /> hadi <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Dhibiti na uweke mapendeleo kwenye <ph name="APP_NAME" /></translation> @@ -1063,6 +1068,7 @@ <translation id="2485005079599453134">Nenosiri limehifadhiwa kwenye kifaa hiki</translation> <translation id="2485422356828889247">Ondoa</translation> <translation id="2487067538648443797">Ongeza alamisho mpya</translation> +<translation id="2487268545026948104">Ili urejeshe data yako, unganisha kwenye intaneti</translation> <translation id="2489829450872380594">Wakati ujao, simu mpya itafungua <ph name="DEVICE_TYPE" /> hii. Unaweza kuzima Smart Lock katika Mipangilio.</translation> <translation id="2489918096470125693">Ongeza &Folda...</translation> <translation id="2490481887078769936">Imeondoa '<ph name="FILE_NAME" />' kwenye orodha</translation> @@ -1114,6 +1120,7 @@ <translation id="2541706104884128042">Imeweka wakati mpya wa kulala</translation> <translation id="2544853746127077729">Cheti cha uthibitishaji kimekataliwa na mtandao</translation> <translation id="2546283357679194313">Data ya vidakuzi na tovuti</translation> +<translation id="2547583314137677375">Zima kipengele cha Usawazishaji</translation> <translation id="2549985041256363841">Anza kurekodi</translation> <translation id="2550212893339833758">Hifadhi iliyobadilishwa</translation> <translation id="2550596535588364872">Ungependa kuruhusu <ph name="EXTENSION_NAME" /> ifungue <ph name="FILE_NAME" />?</translation> @@ -1207,6 +1214,7 @@ <translation id="2672142220933875349">Faili mbaya ya CRX, imeshindwa kutenganishwa.</translation> <translation id="2673135533890720193">Kusoma historia yako ya kuvinjari</translation> <translation id="2673589024369449924">Unda mkato wa mtumiaji huyu kwenye eneo-kazi</translation> +<translation id="2674764818721168631">Imezimwa</translation> <translation id="2677748264148917807">Ondoka</translation> <translation id="2678063897982469759">Washa tena</translation> <translation id="268053382412112343">Historia</translation> @@ -1995,6 +2003,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> iitaweza kubadilisha faili zote zilizo katika <ph name="FOLDERNAME" /> hadi utakapofunga kichupo hiki.</translation> <translation id="3780827508782506612">Ukurasa Huu Umetafsiriwa</translation> <translation id="378312418865624974">Soma kitambulisho cha kipekee cha kompyuta hii</translation> +<translation id="3784472333786002075">Vidakuzi ni faili zinazotengenezwa na tovuti. Kuna aina mbili za vidakuzi: Vidakuzi vilivyowekwa na vikoa unavyotembelea hutengenezwa na tovuti unayotembelea. Tovuti inaonyeshwa kwenye sehemu ya anwani. Vidakuzi vya tovuti nyingine hutengenezwa na tovuti nyingine. Tovuti hizi zinamiliki baadhi ya maudhui kama vile matangazo au picha ambazo unaona kwenye tovuti unazotembelea.</translation> <translation id="3785308913036335955">Onyesha Mkato wa Programu</translation> <translation id="3785727820640310185">Manenosiri ya tovuti hii yamehifadhiwa</translation> <translation id="3788401245189148511">Ingeweza:</translation> @@ -2002,6 +2011,7 @@ <translation id="379082410132524484">Muda wa matumizi wa kadi yako umekwisha</translation> <translation id="3792890930871100565">Kata muunganisho wa printa</translation> <translation id="3793395331556663376">Mifumo mingi mno ya faili imefunguliwa.</translation> +<translation id="379509625511193653">Imezimwa</translation> <translation id="3796648294839530037">Vipendeleo vya Mitandao:</translation> <translation id="3797739167230984533">Kifaa chako cha <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> kinadhibitiwa<ph name="END_LINK" /> na shirika lako</translation> <translation id="3797900183766075808">&Tafuta <ph name="SEARCH_ENGINE" /> upate “<ph name="SEARCH_TERMS" />”</translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">Unaendelea</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Hezi <ph name="REFRESH_RATE" />)</translation> <translation id="3954953195017194676">Huna kumbukumbu za matukio za WebRTC uliyorekodi hivi majuzi.</translation> +<translation id="3955163004258753966">Hitilafu imetokea wakati wa kupata toleo jipya</translation> <translation id="3955193568934677022">Ruhusu tovuti zicheze maudhui yanayolindwa (inapendekezwa)</translation> <translation id="3955896417885489542">Kagua chaguo za Google Play baada ya kuweka mipangilio</translation> <translation id="3956702100721821638">Imeshindwa kufikia Google Play</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Funga Ukurasa}other{Funga Kurasa}}</translation> <translation id="4044612648082411741">Weka nenosiri la cheti chako</translation> <translation id="404493185430269859">Injini tafuti chaguomsingi</translation> +<translation id="4046013316139505482">Viendelezi hivi havihitaji kuona na kubadilisha maelezo kwenye tovuti hii.</translation> <translation id="4046123991198612571">Wimbo unaofuata</translation> <translation id="4050225813016893843">Njia ya uthibitishaji</translation> <translation id="4052120076834320548">Ndogo sana</translation> @@ -2370,6 +2382,7 @@ <translation id="4330387663455830245">Usitafsiri <ph name="LANGUAGE" /> Kamwe</translation> <translation id="4332976768901252016">Weka mipangilio ya Vidhibiti vya Wazazi</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 Na Usimbaji wa RSA</translation> +<translation id="4336434711095810371">Futa data yote</translation> <translation id="4336979451636460645">Kwa kumbukumbu za mtandao, angalia: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> inataka kuwasiliana na programu "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Sanidi...</translation> @@ -2470,6 +2483,7 @@ <translation id="4479877282574735775">Inaweka mipangilio ya mashine dhahania. Hatua hii inaweza kuchukua dakika kadhaa.</translation> <translation id="4480590691557335796">Chrome inaweza kupata programu hatari kwenye kompyuta yako na kuiondoa</translation> <translation id="4481530544597605423">Vifaa visivyooanishwa</translation> +<translation id="4488502501195719518">Je, ungependa kufuta data yote?</translation> <translation id="4495419450179050807">Usionyeshe kwenye ukurasa huu</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> imeacha kufanya kazi</translation> <translation id="450099669180426158">Aikoni ya alama hisi</translation> @@ -2530,6 +2544,7 @@ <translation id="4570387585180509432">Anwani, nambari za simu na zaidi</translation> <translation id="4572659312570518089">Uthibitishaji ulighairiwa wakati ikiunganishwa kwa "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Weka PIN kwa ya ufunguo wako wa usalama</translation> +<translation id="4573515936045019911">Unahitaji muunganisho wa mtandao ili upate toleo jipya la Linux. Tafadhali unganisha kwenye intaneti na ujaribu tena.</translation> <translation id="457386861538956877">Zaidi...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Haijatuma <ph name="HOST_NAME" />.</translation> @@ -2809,6 +2824,7 @@ <translation id="4994754230098574403">Inaweka mipangilio</translation> <translation id="4996978546172906250">Shiriki kupitia</translation> <translation id="4997086284911172121">Hakuna muunganisho wa Intaneti.</translation> +<translation id="4998430619171209993">Imewashwa</translation> <translation id="4998873842614926205">Thibitisha Mabadiliko</translation> <translation id="5000922062037820727">Imezuiwa (imependekezwa)</translation> <translation id="5008936837313706385">Jina la Shughuli</translation> @@ -2905,6 +2921,7 @@ <translation id="5143712164865402236">Ingia Skrini Kamili</translation> <translation id="514575469079499857">Tumia anwani yako ya IP kubainisha mahali (chaguomsingi)</translation> <translation id="5146995429444047494">Arifa za <ph name="ORIGIN" /> zimezuiwa</translation> +<translation id="5147103632304200977">Iulize wakati tovuti inataka kufikia vifaa vya HID (inapendekezwa)</translation> <translation id="5150254825601720210">Jina la Seva ya SSL ya Cheti cha Netscape</translation> <translation id="5151354047782775295">Futa maudhui katika hifadhi ya diski au data iliyochaguliwa itafutwa kiotomatiki</translation> <translation id="5153234146675181447">Sahau simu</translation> @@ -3039,6 +3056,7 @@ <translation id="5353252989841766347">Hamisha Manenosiri Kutoka Chrome</translation> <translation id="5355099869024327351">Ruhusu programu ya Mratibu ikuonyeshe arifa</translation> <translation id="5355926466126177564">Kiendelezi hiki "<ph name="EXTENSION_NAME" />" kimebadilisha ukurasa unaoonyeshwa unapotafuta kutoka Sanduku Kuu.</translation> +<translation id="5359910752122114278">Tokeo moja</translation> <translation id="5360150013186312835">Onyesha katika Upau wa Vidhibiti</translation> <translation id="5362741141255528695">Chagua faili ya ufunguo binafsi.</translation> <translation id="5363109466694494651">Powerwash na Urejeshe nakala ya awali</translation> @@ -3288,6 +3306,7 @@ <translation id="5700836101007545240">Kipengele cha kuongeza muunganisho kimezimwa na msimamizi wako</translation> <translation id="5701080607174488915">Hitilafu imetokea wakati wa kuleta sera kutoka kwenye seva.</translation> <translation id="5701381305118179107">Katikati</translation> +<translation id="5701441174893770082">Hatua ya kupata toleo jipya la Linux inaweza kutumia kiasi kikubwa cha chaji ya betri yako. Tafadhali weka kifaa chako kwenye chaja na ujaribu tena.</translation> <translation id="5702898740348134351">&Badilisha Mitambo ya Kutafuta...</translation> <translation id="570302979952009979">Ichagulie alama hii ya kidole jina</translation> <translation id="5704875434923668958">Inasawazisha kwenye</translation> @@ -3517,6 +3536,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Kifaa cha USB kimeunganishwa</translation> <translation id="6028117231645531007">Ongeza alama ya kidole</translation> <translation id="6029587122245504742">Kasi ya chini zaidi</translation> +<translation id="6032715498678347852">Bofya kiendelezi ili ukipe uwezo wa kufikia tovuti hii.</translation> <translation id="6032912588568283682">Mfumo wa faili</translation> <translation id="6038929619733116134">Zuia iwapo tovuti inaonyesha matangazo yanayopotosha au yanayokatiza huduma</translation> <translation id="6039651071822577588">Kamusi ya sifa za mtandao imeharibika</translation> @@ -3901,6 +3921,7 @@ <translation id="6582080224869403177">Badilisha mipangilio ya <ph name="DEVICE_TYPE" /> yako ili usasishe usalama wako.</translation> <translation id="6584878029876017575">Uwekaji Sahihi wa Maisha kutoka Microsoft</translation> <translation id="6586451623538375658">Badilisha kitufe msingi cha kipanya</translation> +<translation id="6586604979641883411">Unahitaji angalau <ph name="REQUIRED_SPACE" /> ya nafasi ambayo haijatumika katika diski ili upate toleo jipya la Linux. Tafadhali futa ili upate nafasi kwenye kifaa chako na ujaribu tena.</translation> <translation id="6590458744723262880">Badilisha jina la folda</translation> <translation id="6592267180249644460">Kumbukumbu ya WebRTC ilipigwa picha <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Imenasa alama yako ya kidole</translation> @@ -4011,6 +4032,7 @@ <translation id="6757101664402245801">URL imenakiliwa</translation> <translation id="6758056191028427665">Tueleze jinsi huduma inavyokuridhisha.</translation> <translation id="6759193508432371551">Rejesha upya mipangilio ya kiwandani</translation> +<translation id="6762833852331690540">Imewashwa</translation> <translation id="6767566652486411142">Chagua Lugha Nyingine...</translation> <translation id="6767639283522617719">Imeshindwa kuunganisha kwenye kikoa. Hakikisha kuwa mipangilio ni sahihi katika kitengo cha shirika.</translation> <translation id="6769712124046837540">Inaongeza printa...</translation> @@ -4132,6 +4154,7 @@ <translation id="6935286146439255109">Trei ya karatasi haipo</translation> <translation id="693807610556624488">Shughuli za kuandika zinazidi ukubwa wa juu wa sifa kwenye: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Umehifadhi printa moja.</translation> +<translation id="6938789263968032501">Watu</translation> <translation id="6941937518557314510">Tafadhali ingia kwenye <ph name="TOKEN_NAME" /> ili kuthibitisha katika <ph name="HOST_NAME" /> kwa cheti chako.</translation> <translation id="6943176775188458830">Ghairi kuchapisha</translation> <translation id="6943836128787782965">HTTP imeshindikana</translation> @@ -4156,6 +4179,7 @@ <translation id="6970856801391541997">Chapisha Kurasa Mahsusi</translation> <translation id="6972180789171089114">Sauti/Video</translation> <translation id="6972553992270299730"><ph name="ORIGIN" /> haiwezi kufungua faili kwenye folda hii kwa sababu ina faili za mfumo</translation> +<translation id="6972629891077993081">Vifaa vya HID</translation> <translation id="6972754398087986839">Anza</translation> <translation id="6973611239564315524">Sasisho la Debian 10 (Buster) linapatikana</translation> <translation id="6974609594866392343">Hali ya onyesho la nje ya mtando</translation> @@ -4480,8 +4504,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Ukurasa wa Mandharinyuma: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Simu kutoka kwenye <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Hakuna vifaa vya HID vinavyopatikana</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Fungua Zote katika &Dirisha Jipya}=1{Fungua katika &Dirisha Jipya}other{Fungua Zote (#) katika Dirisha Jipya}}</translation> <translation id="7434509671034404296">Wasanidi Programu</translation> +<translation id="7434635829372401939">Sawazisha mipangilio yako</translation> <translation id="7436921188514130341">Samahani. Hitilafu imetokea wakati wa kubadilisha jina.</translation> <translation id="7438976808740265764">Tutaacha kutumia Flash Player baada ya Desemba 2020.</translation> <translation id="7441736921018636843">Ili ubadilishe mipangilio hii, <ph name="BEGIN_LINK" />weka upya kipengele cha usawazishaji<ph name="END_LINK" /> ili kuondoa kauli yako ya siri ya usawazishaji</translation> @@ -4805,6 +4831,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - Imeoanishwa</translation> <translation id="7870730066603611552">Kagua chaguo za usawazishaji baada ya kuweka mipangilio</translation> <translation id="7870790288828963061">Hamna programu za Skrini Nzima zilizo na toleo jipya zaidi zimepatikana. Hakuna cha kusasisha. Tafadhali ondoa hifadhi ya USB.</translation> +<translation id="787268756490971083">Imezimwa</translation> <translation id="7874257161694977650">Mandhari ya Chrome</translation> <translation id="7877451762676714207">Hitilafu ya seva isiyojulikana. Tafadhali jaribu tena, au uwasiliane na msimamizi wa seva.</translation> <translation id="7877680364634660272">Ziara</translation> @@ -4832,6 +4859,7 @@ <translation id="7908378463497120834">Samahani, angalau sehemu moja kwenye kifaa chako cha hifadhi ya nje haingeweza kuangikwa.</translation> <translation id="7909969815743704077">Ilipakuliwa katika Hali Fiche</translation> <translation id="7910768399700579500">&Folda jipya</translation> +<translation id="7910831464510799808">Imewashwa</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Nenosiri lako limebadilishwa kwenye seva. Tafadhali ondoka na uingie katika akaunti tena.</translation> <translation id="7915457674565721553">Unganisha kwenye intaneti ili uweke Vidhibiti vya Wazazi</translation> @@ -5770,6 +5798,7 @@ <translation id="934503638756687833">Vipengee ambavyo havijaorodheshwa hapa pia vitaondolewa, panapohitajika. Pata maelezo zaidi kuhusu <a href="<ph name="URL" />">ulinzi dhidi ya programu zisizohitajika</a> katika ripoti rasmi na ya faragha ya Chrome.</translation> <translation id="935490618240037774">Alamisho, historia, manenosiri na mipangilio yako mingine itasawazishwa kwenye Akaunti yako ya Google ili uitumie katika vifaa vyako vyote.</translation> <translation id="935854577147268200">Umebadilisha simu inayotumia Smart Lock. Weka nenosiri lako ili usasishe Smart Lock. Wakati ujao, simu yako itafungua <ph name="DEVICE_TYPE" /> yako. Unaweza kuzima Smart Lock katika Mipangilio</translation> +<translation id="93610034168535821">Jumla ya hifadhi iliyotumiwa na tovuti:</translation> <translation id="936801553271523408">Data ya uchungzi wa mfumo</translation> <translation id="93766956588638423">Karabati kiendelezi</translation> <translation id="938339467127511841">Hifadhi ya Linux (Beta)</translation> @@ -5791,6 +5820,7 @@ <translation id="964286338916298286">Msimamizi wako wa Tehama amezima Zawadi za Chrome kwa kifaa chako.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Programu}other{Programu}}</translation> <translation id="965211523698323809">Tuma na upokee SMS kupitia <ph name="DEVICE_TYPE" /> yako. <ph name="LINK_BEGIN" />Pata maelezo zaidi<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Usiruhusu tovuti zozote zifikie vifaa vya HID</translation> <translation id="967624055006145463">Data iliyohifadhiwa</translation> <translation id="968000525894980488">Washa huduma za Google Play.</translation> <translation id="968037381421390582">Ba&ndika na Utafute “<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index bdb48ac..1e8eda1 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">&Зупинити</translation> <translation id="1110155001042129815">Зачекайте</translation> <translation id="1112420131909513020">Фонова вкладка використовує Bluetooth</translation> +<translation id="1113042067630273625">Буде видалено <ph name="TOTAL_USAGE" /> збережених даних сайтів.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Ромб</translation> <translation id="1114335938027186412">Ваш комп’ютер оснащено пристроєм Trusted Platform Module (TPM), який виконує багато важливих функцій безпеки в ОС Chrome. Щоб дізнатися більше, відвідайте Довідковий центр Chromebook: https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">Помилка файлу</translation> <translation id="1741314857973421784">Продовжити</translation> <translation id="1743570585616704562">Не розпізнано</translation> +<translation id="1743846852744439013">Ви вийдете з облікового запису на всіх сайтах, зокрема у відкритих вкладках.</translation> <translation id="1743970419083351269">Закрити панель завантажень</translation> <translation id="1744060673522309905">Не вдається приєднати пристрій до домену. Переконайтеся, що ви не перевищили допустиму кількість доданих пристроїв.</translation> <translation id="1744108098763830590">фонова сторінка</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">Служби</translation> <translation id="18139523105317219">Ім'я сторони EDI</translation> <translation id="1815083418640426271">Вставити як звичайний текст</translation> +<translation id="1815181278146012280">Запитувати, коли сайт хоче отримати доступ до пристроїв HID</translation> <translation id="181577467034453336">Ще <ph name="NUMBER_OF_VIEWS" />…</translation> <translation id="1816036116994822943">Швидкість сканування клавіатури</translation> <translation id="1817871734039893258">Відновлення файлів Microsoft</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">Середній (рекомендовано)</translation> <translation id="2077129598763517140">Використовувати апаратне прискорення, якщо доступно</translation> <translation id="2078019350989722914">Попереджати перед виходом (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Вимкнено</translation> <translation id="2079053412993822885">Якщо видалити один зі своїх власних сертифікатів, ви більше не зможете використовувати його для власної ідентифікації.</translation> <translation id="2079545284768500474">Відмінити</translation> <translation id="2080070583977670716">Більше налаштувань</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">Запитувати, коли сайт хоче шукати пристрої Bluetooth поблизу (рекомендовано)</translation> <translation id="2292848386125228270">Почніть роботу з <ph name="PRODUCT_NAME" /> як звичайний користувач. Щоб запустити програму для розробки з кореневого каталогу, перезапустіть її, поставивши прапорець біля опції "--не в ізольованому програмному середовищі".</translation> <translation id="2294358108254308676">Установити <ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385">Результатів: <ph name="NUM_RESULTS" /></translation> <translation id="2297705863329999812">Пошук принтерів</translation> <translation id="2299734369537008228">Повзунок: <ph name="MIN_LABEL" /> – <ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Налаштування та керування <ph name="APP_NAME" /></translation> @@ -1066,6 +1071,7 @@ <translation id="2485005079599453134">Пароль збережено на цьому пристрої</translation> <translation id="2485422356828889247">Видалити</translation> <translation id="2487067538648443797">Додати нову закладку</translation> +<translation id="2487268545026948104">Щоб відновити дані, підключіться до Інтернету</translation> <translation id="2489829450872380594">Наступного разу цей пристрій <ph name="DEVICE_TYPE" /> можна буде розблокувати за допомогою нового телефона. Smart Lock можна вимкнути в налаштуваннях.</translation> <translation id="2489918096470125693">Додати &папку...</translation> <translation id="2490481887078769936">Файл <ph name="FILE_NAME" /> видалено зі списку</translation> @@ -1117,6 +1123,7 @@ <translation id="2541706104884128042">Налаштовано новий час сну</translation> <translation id="2544853746127077729">Сертифікат автентифікації відхилений мережею</translation> <translation id="2546283357679194313">Файли cookie та дані із сайтів</translation> +<translation id="2547583314137677375">Вимкнути синхронізацію</translation> <translation id="2549985041256363841">Почати запис</translation> <translation id="2550212893339833758">Змінна пам’ять</translation> <translation id="2550596535588364872">Дозволити розширенню <ph name="EXTENSION_NAME" /> відкрити файл <ph name="FILE_NAME" />?</translation> @@ -1210,6 +1217,7 @@ <translation id="2672142220933875349">Неправильний файл .crx. Помилка розпакування.</translation> <translation id="2673135533890720193">Переглядати історію веб-перегляду</translation> <translation id="2673589024369449924">Створити на робочому столі ярлик для цього користувача</translation> +<translation id="2674764818721168631">Вимкнено</translation> <translation id="2677748264148917807">Вийти</translation> <translation id="2678063897982469759">Знову ввімкнути</translation> <translation id="268053382412112343">Іс&торія</translation> @@ -1998,6 +2006,7 @@ <translation id="3780211714699334884">Сайт <ph name="ORIGIN" /> зможе змінювати файли в папці "<ph name="FOLDERNAME" />", доки ви не закриєте цю вкладку</translation> <translation id="3780827508782506612">Цю сторінку перекладено</translation> <translation id="378312418865624974">Читати унікальний ідентифікатор для цього комп’ютера</translation> +<translation id="3784472333786002075">Файли cookie – це файли, створені веб-сайтами. Їх є два види. Основні файли cookie створюються сайтом, який ви відвідуєте. Цей сайт указується в адресному рядку. Сторонні файли cookie створюються іншими сайтами. Ці сайти включають деякий контент, як-от оголошення чи зображення, які ви бачите на веб-сторінці, що відвідуєте.</translation> <translation id="3785308913036335955">Показувати ярлики додатків</translation> <translation id="3785727820640310185">Збережені паролі для цього сайту</translation> <translation id="3788401245189148511">Зможе:</translation> @@ -2005,6 +2014,7 @@ <translation id="379082410132524484">Ваша картка недійсна</translation> <translation id="3792890930871100565">Від’єднати принтери</translation> <translation id="3793395331556663376">Відкрито забагато файлових систем.</translation> +<translation id="379509625511193653">Вимкнено</translation> <translation id="3796648294839530037">Улюблені мережі:</translation> <translation id="3797739167230984533">Пристроєм <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> керує<ph name="END_LINK" /> адміністратор вашої організації</translation> <translation id="3797900183766075808">&Шукати "<ph name="SEARCH_TERMS" />" у <ph name="SEARCH_ENGINE" />.</translation> @@ -2136,6 +2146,7 @@ <translation id="3954354850384043518">Завантаження триває</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> герц)</translation> <translation id="3954953195017194676">Немає нещодавно створених журналів подій WebRTC.</translation> +<translation id="3955163004258753966">Помилка запуску оновлення</translation> <translation id="3955193568934677022">Дозволити сайтам відтворювати захищений вміст (рекомендується)</translation> <translation id="3955896417885489542">Перегляньте параметри Google Play після налаштування</translation> <translation id="3956702100721821638">Не вдалося з’єднатися з Google Play</translation> @@ -2196,6 +2207,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Закрити сторінку}one{Закрити сторінки}few{Закрити сторінки}many{Закрити сторінки}other{Закрити сторінки}}</translation> <translation id="4044612648082411741">Введіть пароль сертифіката</translation> <translation id="404493185430269859">Пошукова система за умовчанням</translation> +<translation id="4046013316139505482">Ці розширення не можуть переглядати та змінювати інформацію на цьому сайті.</translation> <translation id="4046123991198612571">Наступна композиція</translation> <translation id="4050225813016893843">Спосіб автентифікації</translation> <translation id="4052120076834320548">Дуже малий</translation> @@ -2375,6 +2387,7 @@ <translation id="4330387663455830245">Ніколи не перекладати з такої мови: <ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Налаштуйте батьківський контроль</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 із шифруванням RSA</translation> +<translation id="4336434711095810371">Видалити всі дані</translation> <translation id="4336979451636460645">Журнали мережі можна переглянути на сторінці <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> хоче обмінюватися даними з додатком <ph name="EXTENSION_NAME" /></translation> <translation id="4345587454538109430">Налаштувати...</translation> @@ -2475,6 +2488,7 @@ <translation id="4479877282574735775">Налаштовується віртуальна машина. Це може тривати кілька хвилин.</translation> <translation id="4480590691557335796">Chrome може знайти на вашому комп’ютері шкідливе програмне забезпечення й видалити його</translation> <translation id="4481530544597605423">Відключені пристрої</translation> +<translation id="4488502501195719518">Видалити всі дані?</translation> <translation id="4495419450179050807">Не показувати на цій сторінці</translation> <translation id="4500114933761911433">Плагін <ph name="PLUGIN_NAME" /> аварійно завершив роботу</translation> <translation id="450099669180426158">Значок знака оклику</translation> @@ -2535,6 +2549,7 @@ <translation id="4570387585180509432">Адреси, номери телефонів тощо</translation> <translation id="4572659312570518089">Автентифікацію скасовано під час під’єднання до "<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Введіть PIN-код для ключа безпеки</translation> +<translation id="4573515936045019911">Щоб оновити Linux, потрібне з'єднання з мережею. Підключіться до Інтернету та повторіть спробу.</translation> <translation id="457386861538956877">Інші...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Не вдається транслювати з <ph name="HOST_NAME" />.</translation> @@ -2814,6 +2829,7 @@ <translation id="4994754230098574403">Налаштування</translation> <translation id="4996978546172906250">Надіслати</translation> <translation id="4997086284911172121">Немає з’єднання з Інтернетом.</translation> +<translation id="4998430619171209993">Увімкнено</translation> <translation id="4998873842614926205">Підтвердьте зміни</translation> <translation id="5000922062037820727">Заблоковано (рекомендується)</translation> <translation id="5008936837313706385">Назва дії</translation> @@ -2910,6 +2926,7 @@ <translation id="5143712164865402236">Увійти в повноекранний режим</translation> <translation id="514575469079499857">Використовуйте свою IP-адресу, щоб визначати місцезнаходження (за умовчанням)</translation> <translation id="5146995429444047494">Сповіщення сайту <ph name="ORIGIN" /> заблоковано</translation> +<translation id="5147103632304200977">Запитувати, коли сайт хоче отримати доступ до пристроїв HID (рекомендовано)</translation> <translation id="5150254825601720210">Ім'я SSL-сервера сертифіката Netscape</translation> <translation id="5151354047782775295">Звільніть місце на диску, інакше деякі дані буде автоматично видалено</translation> <translation id="5153234146675181447">Забути телефон</translation> @@ -3044,6 +3061,7 @@ <translation id="5353252989841766347">Експортувати паролі з Chrome</translation> <translation id="5355099869024327351">Дозволити Асистенту показувати сповіщення</translation> <translation id="5355926466126177564">Розширення "<ph name="EXTENSION_NAME" />" змінило сторінку, яка відкривається під час пошуку в універсальному вікні пошуку.</translation> +<translation id="5359910752122114278">1 результат</translation> <translation id="5360150013186312835">Показати на панелі інструментів</translation> <translation id="5362741141255528695">Виберіть файл секретного ключа.</translation> <translation id="5363109466694494651">Виконати Powerwash і повернутися до попередньої версії</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Ваш адміністратор вимкнув опцію "Додати з’єднання"</translation> <translation id="5701080607174488915">Помилка під час отримання політики із сервера.</translation> <translation id="5701381305118179107">По центру</translation> +<translation id="5701441174893770082">Оновлення Linux може значно виснажити акумулятор. Підключіть зарядний пристрій і повторіть спробу.</translation> <translation id="5702898740348134351">&Змінити пошукові системи...</translation> <translation id="570302979952009979">Виберіть назву для цього цифрового відбитка</translation> <translation id="5704875434923668958">Синхронізовано з</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – пристрій USB підключено</translation> <translation id="6028117231645531007">Додати відбиток пальця</translation> <translation id="6029587122245504742">найповільніше</translation> +<translation id="6032715498678347852">Натисніть розширення, щоб надати йому доступ до цього сайту.</translation> <translation id="6032912588568283682">Файлова система</translation> <translation id="6038929619733116134">Блокувати, якщо сайт показує нав’язливі чи оманливі оголошення</translation> <translation id="6039651071822577588">Словник власності в мережі має невірну структуру</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Щоб оновити систему безпеки, скиньте налаштування пристрою <ph name="DEVICE_TYPE" />.</translation> <translation id="6584878029876017575">Безстроковий підпис Microsoft</translation> <translation id="6586451623538375658">Змінити основну кнопку миші</translation> +<translation id="6586604979641883411">Щоб оновити Linux, необхідно принаймні <ph name="REQUIRED_SPACE" /> вільного місця на диску. Звільніть місце на пристрої й повторіть спробу.</translation> <translation id="6590458744723262880">Перейменувати папку</translation> <translation id="6592267180249644460">Журнал WebRTC створено: <ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Відбиток пальця відскановано</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">URL-адресу скопійовано</translation> <translation id="6758056191028427665">Поділіться з нами своїми враженнями.</translation> <translation id="6759193508432371551">Відновлення заводських налаштувань</translation> +<translation id="6762833852331690540">Увімкнено</translation> <translation id="6767566652486411142">Вибрати іншу мову…</translation> <translation id="6767639283522617719">Не вдається приєднатися до домену. Переконайтеся, що налаштування для організаційного підрозділу правильні.</translation> <translation id="6769712124046837540">Додавання принтера…</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Немає лотка для паперу</translation> <translation id="693807610556624488">Операція внесення змін перевищує максимальну довжину атрибута пристрою <ph name="DEVICE_NAME" />.</translation> <translation id="6938386202199793006">У вас є 1 збережений принтер.</translation> +<translation id="6938789263968032501">Люди</translation> <translation id="6941937518557314510">Увійдіть у <ph name="TOKEN_NAME" />, щоб пройти автентифікацію на <ph name="HOST_NAME" />, використовуючи свій сертифікат.</translation> <translation id="6943176775188458830">Скасувати друк</translation> <translation id="6943836128787782965">Помилка HTTP</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Друкувати певні сторінки</translation> <translation id="6972180789171089114">Звук і відео</translation> <translation id="6972553992270299730">Сайт <ph name="ORIGIN" /> не може відкривати файли в цій папці, оскільки вона містить системні файли</translation> +<translation id="6972629891077993081">Пристрої HID</translation> <translation id="6972754398087986839">Почати</translation> <translation id="6973611239564315524">Доступне оновлення Debian 10 (Buster)</translation> <translation id="6974609594866392343">Демо-режим офлайн</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">Фонова сторінка: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Телефонувати з пристрою <ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Не знайдено пристроїв HID</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Відкрити всі у &новому вікні}=1{Відкрити в &новому вікні}one{Відкрити всі (#) у &новому вікні}few{Відкрити всі (#) у &новому вікні}many{Відкрити всі (#) у &новому вікні}other{Відкрити всі (#) у &новому вікні}}</translation> <translation id="7434509671034404296">Для розробників</translation> +<translation id="7434635829372401939">Синхронізувати налаштування</translation> <translation id="7436921188514130341">От халепа! Сталася помилка під час перейменування.</translation> <translation id="7438976808740265764">З грудня 2020 року програвач Flash Player не підтримуватиметься.</translation> <translation id="7441736921018636843">Щоб змінити це налаштування, видаліть парольну фразу для синхронізації, <ph name="BEGIN_LINK" />скинувши параметри синхронізації<ph name="END_LINK" /></translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" />: підключено</translation> <translation id="7870730066603611552">Після налаштування перевірте параметри синхронізації</translation> <translation id="7870790288828963061">Новіші версії додатків-терміналів не знайдено. Помилка оновлення. Витягніть носій USB.</translation> +<translation id="787268756490971083">Вимкнено</translation> <translation id="7874257161694977650">Фони Chrome</translation> <translation id="7877451762676714207">Невідома помилка сервера. Повторіть спробу чи зв’яжіться з адміністратором сервера.</translation> <translation id="7877680364634660272">Огляд</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">На жаль, підключити принаймні один розділ пристрою зовнішньої пам’яті неможливо.</translation> <translation id="7909969815743704077">Завантажено в режимі анонімного перегляду</translation> <translation id="7910768399700579500">&Нова папка</translation> +<translation id="7910831464510799808">Увімкнено</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">Ваш пароль змінено на сервері. Вийдіть і знову ввійдіть в обліковий запис.</translation> <translation id="7915457674565721553">Щоб налаштувати батьківський контроль, під'єднайте пристрій до Інтернету</translation> @@ -5773,6 +5801,7 @@ <translation id="934503638756687833">Якщо потрібно, можна також видалити елементи, не перелічені тут. Докладніше про <a href="<ph name="URL" />">захист від небажаних програм</a> читайте в інформаційному документі про конфіденційність Chrome.</translation> <translation id="935490618240037774">Ваші закладки, історія, паролі й інші налаштування синхронізуватимуться з обліковим записом Google, щоб ви могли користуватися ними на всіх своїх пристроях.</translation> <translation id="935854577147268200">Телефон для Smart Lock змінено. Щоб оновити Smart Lock, введіть пароль. Наступного разу ви зможете розблокувати пристрій <ph name="DEVICE_TYPE" /> за допомогою свого телефона. Smart Lock можна вимкнути в налаштуваннях</translation> +<translation id="93610034168535821">Загальний обсяг пам'яті, використаний сайтами:</translation> <translation id="936801553271523408">Дані діагностики системи</translation> <translation id="93766956588638423">Полагодити розширення</translation> <translation id="938339467127511841">Обсяг пам’яті Linux (бета-версія)</translation> @@ -5794,6 +5823,7 @@ <translation id="964286338916298286">ІТ-адміністратор вимкнув додаткові можливості Chrome для вашого пристрою.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Додаток}one{Додатки}few{Додатки}many{Додатки}other{Додатки}}</translation> <translation id="965211523698323809">Обмінюйтеся текстовими повідомленнями за допомогою <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Докладніше<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Закрити всім сайтам доступ до пристроїв HID</translation> <translation id="967624055006145463">Збережені дані</translation> <translation id="968000525894980488">Увімкніть сервіси Google Play.</translation> <translation id="968037381421390582">Вставити й шукати "<ph name="SEARCH_TERMS" />"</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 1edfd02..1d5733f 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">停止(&S)</translation> <translation id="1110155001042129815">等一下</translation> <translation id="1112420131909513020">背景分頁正在使用藍牙</translation> +<translation id="1113042067630273625">這會清除 <ph name="TOTAL_USAGE" /> 已儲存的網站資料。</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">菱形鍵</translation> <translation id="1114335938027186412">您的電腦具有可信任平台模組 (TPM) 安全性裝置,Chrome 作業系統需要透過該裝置來執行許多重要的安全防護功能。如要進一步瞭解,請瀏覽 Chromebook 說明中心:https://support.google.com/chromebook/?p=tpm</translation> @@ -538,6 +539,7 @@ <translation id="1737968601308870607">報告錯誤</translation> <translation id="1741314857973421784">繼續</translation> <translation id="1743570585616704562">無法識別</translation> +<translation id="1743846852744439013">您將會從所有網站 (包括任何已開啟的分頁) 登出。</translation> <translation id="1743970419083351269">閂下載內容列</translation> <translation id="1744060673522309905">無法將裝置加入網域。請確定您沒有超出可新增的裝置數量。</translation> <translation id="1744108098763830590">背景頁面</translation> @@ -596,6 +598,7 @@ <translation id="1813278315230285598">服務</translation> <translation id="18139523105317219">EDI 合作對象名稱</translation> <translation id="1815083418640426271">以純文字貼上</translation> +<translation id="1815181278146012280">在網站要存取 HID 裝置時詢問您</translation> <translation id="181577467034453336">還有 <ph name="NUMBER_OF_VIEWS" /> 個畫面…</translation> <translation id="1816036116994822943">鍵盤掃瞄速度</translation> <translation id="1817871734039893258">Microsoft 檔案復原</translation> @@ -767,6 +770,7 @@ <translation id="2076672359661571384">中 (建議)</translation> <translation id="2077129598763517140">在可用時使用硬件加速</translation> <translation id="2078019350989722914">結束前顯示警告訊息 (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">關閉</translation> <translation id="2079053412993822885">如果您刪除了擁有的憑證之一,您將無法透過該憑證識別身分。</translation> <translation id="2079545284768500474">復原</translation> <translation id="2080070583977670716">顯示更多設定</translation> @@ -933,6 +937,7 @@ <translation id="2289270750774289114">在網站要探索附近的藍牙裝置時詢問您 (建議)</translation> <translation id="2292848386125228270">請以一般使用者身分啟動 <ph name="PRODUCT_NAME" />。如要以 root 身份作開發用途,請使用「--no-sandbox」標籤重新執行 Chrome。</translation> <translation id="2294358108254308676">您要安裝「<ph name="PRODUCT_NAME" />」嗎?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> 項結果</translation> <translation id="2297705863329999812">搜尋打印機</translation> <translation id="2299734369537008228">滑桿:<ph name="MIN_LABEL" />至<ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">自訂和控制 <ph name="APP_NAME" /></translation> @@ -1065,6 +1070,7 @@ <translation id="2485005079599453134">已在此裝置上儲存密碼</translation> <translation id="2485422356828889247">解除安裝</translation> <translation id="2487067538648443797">新增書籤</translation> +<translation id="2487268545026948104">如要還原資料,請連線至互聯網</translation> <translation id="2489829450872380594">手機之後會解鎖呢部 <ph name="DEVICE_TYPE" />。您可以在「設定」中停用 Smart Lock。</translation> <translation id="2489918096470125693">新增資料夾(&F)…</translation> <translation id="2490481887078769936">已從清單中移除「<ph name="FILE_NAME" />」</translation> @@ -1116,6 +1122,7 @@ <translation id="2541706104884128042">已設定新的就寢時間</translation> <translation id="2544853746127077729">網絡已拒絕驗證憑證</translation> <translation id="2546283357679194313">Cookie 和網站數據</translation> +<translation id="2547583314137677375">關閉同步處理功能</translation> <translation id="2549985041256363841">開始錄影</translation> <translation id="2550212893339833758">儲存在 Swap 空間的記憶體</translation> <translation id="2550596535588364872">允許「<ph name="EXTENSION_NAME" />」開啟 <ph name="FILE_NAME" /> 嗎?</translation> @@ -1209,6 +1216,7 @@ <translation id="2672142220933875349">crx 檔案損毀,無法解除套件。</translation> <translation id="2673135533890720193">讀取您的瀏覽記錄</translation> <translation id="2673589024369449924">建立這位使用者的桌面捷徑</translation> +<translation id="2674764818721168631">關閉</translation> <translation id="2677748264148917807">離開</translation> <translation id="2678063897982469759">重新啟用</translation> <translation id="268053382412112343">記錄(&S)</translation> @@ -1996,6 +2004,7 @@ <translation id="3780211714699334884"><ph name="ORIGIN" /> 在您關閉此分頁前都能編輯「<ph name="FOLDERNAME" />」中的檔案</translation> <translation id="3780827508782506612">已翻譯此網頁的內容</translation> <translation id="378312418865624974">讀取這部電腦的專屬識別碼</translation> +<translation id="3784472333786002075">Cookie 是網站所建立的檔案,並可分為兩種:第一方 Cookie 由您瀏覽的網站建立,網址列上會顯示該網站的網址。第三方 Cookie 則由其他網站建立。這些網站擁有您所瀏覽網站的部分內容,例如廣告和圖片。</translation> <translation id="3785308913036335955">顯示應用程式捷徑</translation> <translation id="3785727820640310185">已儲存此網站的密碼</translation> <translation id="3788401245189148511">要求存取下列權限:</translation> @@ -2003,6 +2012,7 @@ <translation id="379082410132524484">您的付款卡已過期</translation> <translation id="3792890930871100565">中斷打印機連線</translation> <translation id="3793395331556663376">已開啟過多檔案系統。</translation> +<translation id="379509625511193653">關閉</translation> <translation id="3796648294839530037">常用的網絡:</translation> <translation id="3797739167230984533">您的 <ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> 由機構管理<ph name="END_LINK" /></translation> <translation id="3797900183766075808">在 <ph name="SEARCH_ENGINE" /> 上搜尋「<ph name="SEARCH_TERMS" />」(&S)</translation> @@ -2134,6 +2144,7 @@ <translation id="3954354850384043518">下載中</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> <translation id="3954953195017194676">您最近並未擷取 WebRTC 事件記錄。</translation> +<translation id="3955163004258753966">開始升級時發生錯誤</translation> <translation id="3955193568934677022">允許網站播放受保護的內容 (建議)</translation> <translation id="3955896417885489542">在設定完成後查看 Google Play 選項</translation> <translation id="3956702100721821638">無法連線至 Google Play</translation> @@ -2194,6 +2205,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{離開網頁}other{離開網頁}}</translation> <translation id="4044612648082411741">輸入您的憑證密碼</translation> <translation id="404493185430269859">預設搜尋引擎</translation> +<translation id="4046013316139505482">這些擴充程式無需查看或變更此網站的資料。</translation> <translation id="4046123991198612571">下一首曲目</translation> <translation id="4050225813016893843">驗證方法</translation> <translation id="4052120076834320548">最小</translation> @@ -2373,6 +2385,7 @@ <translation id="4330387663455830245">永不翻譯<ph name="LANGUAGE" />內容</translation> <translation id="4332976768901252016">設定家長監控設定</translation> <translation id="4333854382783149454">PKCS #1 SHA-1 (使用 RSA 加密)</translation> +<translation id="4336434711095810371">清除所有資料</translation> <translation id="4336979451636460645">如需查看網絡記錄,請前往:<ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> 想與「<ph name="EXTENSION_NAME" />」應用程式保持通訊</translation> <translation id="4345587454538109430">設定…</translation> @@ -2473,6 +2486,7 @@ <translation id="4479877282574735775">正在設定虛擬機器。這項操作可能需時數分鐘。</translation> <translation id="4480590691557335796">Chrome 能夠在您的電腦上尋找並移除有害軟件</translation> <translation id="4481530544597605423">未配對的裝置</translation> +<translation id="4488502501195719518">要清除所有資料嗎?</translation> <translation id="4495419450179050807">不要在這個網頁上顯示</translation> <translation id="4500114933761911433"><ph name="PLUGIN_NAME" /> 發生錯誤,已停止運作</translation> <translation id="450099669180426158">感嘆號圖示</translation> @@ -2533,6 +2547,7 @@ <translation id="4570387585180509432">地址、電話號碼及其他資料</translation> <translation id="4572659312570518089">驗證在連線至「<ph name="DEVICE_NAME" />」時被取消。</translation> <translation id="4572779512957829735">輸入安全密鑰的 PIN</translation> +<translation id="4573515936045019911">必須連接互聯網才能升級 Linux。請連線至互聯網,然後再試一次。</translation> <translation id="457386861538956877">更多語言…</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">無法投放 <ph name="HOST_NAME" />。</translation> @@ -2812,6 +2827,7 @@ <translation id="4994754230098574403">正在設定</translation> <translation id="4996978546172906250">共用方式</translation> <translation id="4997086284911172121">沒有互聯網連線。</translation> +<translation id="4998430619171209993">開啟</translation> <translation id="4998873842614926205">確認變更</translation> <translation id="5000922062037820727">封鎖 (建議)</translation> <translation id="5008936837313706385">活動名稱</translation> @@ -2908,6 +2924,7 @@ <translation id="5143712164865402236">進入全螢幕</translation> <translation id="514575469079499857">使用您的 IP 位址確定位置 (預設)</translation> <translation id="5146995429444047494">已封鎖 <ph name="ORIGIN" /> 的通知</translation> +<translation id="5147103632304200977">在網站要存取 HID 裝置時詢問您 (建議使用)</translation> <translation id="5150254825601720210">Netscape 憑證 SSL 伺服器名稱</translation> <translation id="5151354047782775295">請釋出磁碟儲存空間,否則系統可能會自動刪除部分資料</translation> <translation id="5153234146675181447">刪除手機</translation> @@ -3042,6 +3059,7 @@ <translation id="5353252989841766347">從 Chrome 中匯出密碼</translation> <translation id="5355099869024327351">允許「Google 助理」顯示通知</translation> <translation id="5355926466126177564">擴充功能「<ph name="EXTENSION_NAME" />」已變更您使用網址列搜尋時所顯示的頁面。</translation> +<translation id="5359910752122114278">1 項結果</translation> <translation id="5360150013186312835">在工具列上顯示</translation> <translation id="5362741141255528695">選取私密金鑰檔案。</translation> <translation id="5363109466694494651">執行 Powerwash 並還原</translation> @@ -3291,6 +3309,7 @@ <translation id="5700836101007545240">您的管理員已停用「新增連線」選項</translation> <translation id="5701080607174488915">從伺服器擷取政策時發生錯誤。</translation> <translation id="5701381305118179107">置中</translation> +<translation id="5701441174893770082">升級 Linux 可能導致電池大量耗電。請將您的裝置連接至充電器,然後再試一次。</translation> <translation id="5702898740348134351">編輯搜尋引擎(&E)…</translation> <translation id="570302979952009979">選擇此指紋的名稱</translation> <translation id="5704875434923668958">同步至</translation> @@ -3520,6 +3539,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - 已連接 USB 裝置</translation> <translation id="6028117231645531007">新增指紋</translation> <translation id="6029587122245504742">最慢</translation> +<translation id="6032715498678347852">如要向擴充程式授予此網站的存取權,請按一下擴充程式。</translation> <translation id="6032912588568283682">檔案系統</translation> <translation id="6038929619733116134">封鎖顯示滋擾性廣告網站上的廣告</translation> <translation id="6039651071822577588">網絡屬性字典格式錯誤</translation> @@ -3904,6 +3924,7 @@ <translation id="6582080224869403177">重設您的 <ph name="DEVICE_TYPE" />,以進行安全性升級。</translation> <translation id="6584878029876017575">Microsoft 永久簽署</translation> <translation id="6586451623538375658">調換滑鼠主按鈕</translation> +<translation id="6586604979641883411">升級 Linux 需要至少 <ph name="REQUIRED_SPACE" /> 的可用磁碟空間。請在裝置上釋出儲存空間,然後再試一次。</translation> <translation id="6590458744723262880">重新命名資料夾</translation> <translation id="6592267180249644460">WebRTC 記錄擷取時間:<ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">已擷取您的指紋</translation> @@ -4014,6 +4035,7 @@ <translation id="6757101664402245801">已複製網址</translation> <translation id="6758056191028427665">請讓我們瞭解您的滿意度。</translation> <translation id="6759193508432371551">恢復原廠設定</translation> +<translation id="6762833852331690540">開啟</translation> <translation id="6767566652486411142">選擇其他語言…</translation> <translation id="6767639283522617719">無法加入網域。請確定機構單位的設定正確。</translation> <translation id="6769712124046837540">新增打印機…</translation> @@ -4135,6 +4157,7 @@ <translation id="6935286146439255109">找不到紙匣</translation> <translation id="693807610556624488">寫入操作長度超過「<ph name="DEVICE_NAME" />」屬性的上限。</translation> <translation id="6938386202199793006">你有 1 部儲存咗嘅打印機。</translation> +<translation id="6938789263968032501">使用者</translation> <translation id="6941937518557314510">登入 <ph name="TOKEN_NAME" /> 即可使用您的憑證為 <ph name="HOST_NAME" /> 進行驗證。</translation> <translation id="6943176775188458830">取消列印</translation> <translation id="6943836128787782965">HTTP 擷取失敗</translation> @@ -4159,6 +4182,7 @@ <translation id="6970856801391541997">列印特定網頁</translation> <translation id="6972180789171089114">音訊/影片</translation> <translation id="6972553992270299730">由於資料夾中包含系統檔案,<ph name="ORIGIN" /> 無法開啟此資料夾中的檔案</translation> +<translation id="6972629891077993081">HID 裝置</translation> <translation id="6972754398087986839">開始使用</translation> <translation id="6973611239564315524">可以升級至 Debian 10 (Buster)</translation> <translation id="6974609594866392343">離線示範模式</translation> @@ -4483,8 +4507,10 @@ <translation id="7427315641433634153">MSCHAP</translation> <translation id="7427348830195639090">背景頁面:<ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">透過 <ph name="DEVICE_NAME" /> 撥打電話</translation> +<translation id="7431719494109538750">找不到 HID 裝置</translation> <translation id="7433692219247014412">{COUNT,plural, =0{在新視窗中開啟所有書籤(&N)}=1{在新視窗中開啟(&N)}other{在新視窗中開啟全部 # 個書籤(&N)}}</translation> <translation id="7434509671034404296">開發人員</translation> +<translation id="7434635829372401939">同步您的設定</translation> <translation id="7436921188514130341">很抱歉!重新命名過程中發生錯誤。</translation> <translation id="7438976808740265764">由 2020 年 12 月起,系統將不再支援 Flash Player。</translation> <translation id="7441736921018636843">如要變更此設定,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步密碼短語</translation> @@ -4806,6 +4832,7 @@ <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - 已配對</translation> <translation id="7870730066603611552">設定後查看同步選項</translation> <translation id="7870790288828963061">找不到較新版本的 Kiosk 應用程式,無需更新。請移除 USB 記憶體。</translation> +<translation id="787268756490971083">關閉</translation> <translation id="7874257161694977650">Chrome 背景</translation> <translation id="7877451762676714207">不明的伺服器錯誤。請再試一次,或與伺服器管理員聯絡。</translation> <translation id="7877680364634660272">導覽</translation> @@ -4833,6 +4860,7 @@ <translation id="7908378463497120834">很抱歉,您的外部儲存裝置上至少有一個分區無法掛載。</translation> <translation id="7909969815743704077">已透過無痕模式下載</translation> <translation id="7910768399700579500">新增資料夾(&N)</translation> +<translation id="7910831464510799808">開啟</translation> <translation id="7911118814695487383">Linux</translation> <translation id="7912080627461681647">您已在伺服器上變更密碼。請先登出,然後重新登入。</translation> <translation id="7915457674565721553">連線至互聯網即可設定家長監控設定</translation> @@ -5770,6 +5798,7 @@ <translation id="934503638756687833">視乎情況,在此未有列出的項目也會一併移除。有關<a href="<ph name="URL" />">垃圾軟件防護</a>的詳情,請參閱 Chrome 私隱權白皮書。</translation> <translation id="935490618240037774">您的書籤、記錄、密碼及其他設定將會同步至您的 Google 帳戶,讓您可以在所有裝置上使用。</translation> <translation id="935854577147268200">Smart Lock 手機已變更,請輸入密碼以更新 Smart Lock。下次您便可使用手機來解鎖 <ph name="DEVICE_TYPE" />。您可在「設定」中停用 Smart Lock。</translation> +<translation id="93610034168535821">網站已使用的總儲存空間:</translation> <translation id="936801553271523408">系統診斷數據</translation> <translation id="93766956588638423">修復擴充程式</translation> <translation id="938339467127511841">Linux (Beta 版本) 儲存空間</translation> @@ -5791,6 +5820,7 @@ <translation id="964286338916298286">IT 管理員已為您的裝置停用 Chrome Goodies。</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{應用程式}other{應用程式}}</translation> <translation id="965211523698323809">在 <ph name="DEVICE_TYPE" /> 上收發短訊。<ph name="LINK_BEGIN" />瞭解詳情<ph name="LINK_END" /></translation> +<translation id="967398046773905967">禁止任何網站存取 HID 裝置</translation> <translation id="967624055006145463">已儲存的資料</translation> <translation id="968000525894980488">開啟「Google Play 服務」。</translation> <translation id="968037381421390582">貼上並搜尋「<ph name="SEARCH_TERMS" />」 (&S)</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 788972a9..bf6bd90 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -78,6 +78,7 @@ <translation id="1108600514891325577">Misa</translation> <translation id="1110155001042129815">Linda</translation> <translation id="1112420131909513020">Ithebhu engemuva isebenzisa i-bluetooth</translation> +<translation id="1113042067630273625">Lokhu kuzosula u-<ph name="TOTAL_USAGE" /> wedatha yesayithi elilondoloziwe.</translation> <translation id="1114102982691049955"><ph name="PRINTER_MANUFACTURER" /> <ph name="PRINTER_MODEL" /> (USB)</translation> <translation id="1114202307280046356">Idayamondi</translation> <translation id="1114335938027186412">Ikhompyutha yakho iqukethe idivayisi yokuphepha ye-Trusted Platform Module (TPM), esetshenizelwa ukufaka izici zokuphepha eziphezulu ze-Chrome OS. Vakashela isikhungo sosizo se-Chromebook ukuze ufunde kabanzi: https://support.google.com/chromebook/?p=tpm</translation> @@ -536,6 +537,7 @@ <translation id="1737968601308870607">Iphutha lefayela</translation> <translation id="1741314857973421784">Qhubeka</translation> <translation id="1743570585616704562">Akubonwa</translation> +<translation id="1743846852744439013">Uzokhishwa kuwo wonke amasayithi, kufaka phakathi noma yimaphi amathebhu avuliwe.</translation> <translation id="1743970419083351269">Vala ibha yokulanda</translation> <translation id="1744060673522309905">Ayikwazi ukujoyina idivayisi kusizinda. Yenza isiqiniseko sokuthi aweqanga inombolo yamadivayisi ongawangeza.</translation> <translation id="1744108098763830590">ikhasi elingemuva</translation> @@ -594,6 +596,7 @@ <translation id="1813278315230285598">Amasevisi</translation> <translation id="18139523105317219">Igama lenhlangano ye-EDI</translation> <translation id="1815083418640426271">Namathisela njengombhalo ongenalutho</translation> +<translation id="1815181278146012280">Buma uma isayithi lifuna ukufinyelela amadivayisi e-HID</translation> <translation id="181577467034453336"><ph name="NUMBER_OF_VIEWS" /> okuningi...</translation> <translation id="1816036116994822943">Isivinini sokuskena kwekhibhodi</translation> <translation id="1817871734039893258">Utakulo lwefayela le-Microsoft</translation> @@ -765,6 +768,7 @@ <translation id="2076672359661571384">Okumaphakathi (Okunconyiwe)</translation> <translation id="2077129598763517140">Sebenzisa ukusheshisa kwezingxenyekazi zekhompyutha uma kutholakala</translation> <translation id="2078019350989722914">Xwayisa ngaphambi kokuyekela (<ph name="KEY_EQUIVALENT" />)</translation> +<translation id="2078494137444990774">Valiwe</translation> <translation id="2079053412993822885">Uma ususa esisodwa sezitifiketi zakho, ngeke usakzwazi ukusisebenzisa ukuze uzikhombe.</translation> <translation id="2079545284768500474">Hlehlisa</translation> <translation id="2080070583977670716">Ezinye izilungiselelo</translation> @@ -931,6 +935,7 @@ <translation id="2289270750774289114">Buza uma isayithi lifuna ukuthola amadivayisi aseduze e-Bluetooth (kunconyiwe)</translation> <translation id="2292848386125228270">Sicela uqale i-<ph name="PRODUCT_NAME" /> njengomsebenzisi ojwayelekile. Uma kumele uqalise njengempande yokuthuthukiswa, phinda uqalise ngefulegi le---no-sandbox.</translation> <translation id="2294358108254308676">Ingabe ufuna ukufaka i-<ph name="PRODUCT_NAME" />?</translation> +<translation id="2295864384543949385"><ph name="NUM_RESULTS" /> imiphumela</translation> <translation id="2297705863329999812">Sesha amaphrinta</translation> <translation id="2299734369537008228">Isilayida: <ph name="MIN_LABEL" /> ku-<ph name="MAX_LABEL" /></translation> <translation id="2300383962156589922">Enza ngendlela oyifisayo uphinde ulawule i-<ph name="APP_NAME" /></translation> @@ -1064,6 +1069,7 @@ <translation id="2485005079599453134">Iphasiwedi ilondolozwe kule divayisi</translation> <translation id="2485422356828889247">Khipha</translation> <translation id="2487067538648443797">Engeza ibhukhimakhi elisha</translation> +<translation id="2487268545026948104">Ukuze ubuyisele idatha, xhuma ku-inthanethi</translation> <translation id="2489829450872380594">Ngeiskhathi esilandelayo ifoni yakho izovula le <ph name="DEVICE_TYPE" />. Ungavala i-Smart Lock kuzilungiselelo.</translation> <translation id="2489918096470125693">Engeza &Ifolda...</translation> <translation id="2490481887078769936">Kususwe i-'<ph name="FILE_NAME" />' kusuka kuhlu</translation> @@ -1115,6 +1121,7 @@ <translation id="2541706104884128042">Isethi entsha yesikhathi sokulala</translation> <translation id="2544853746127077729">Isitifiketi sokuqinisekisa sinqatshelwe yinethiwekhi</translation> <translation id="2546283357679194313">Amakhukhi nedatha yesayithi</translation> +<translation id="2547583314137677375">Vala ukuvumelanisa</translation> <translation id="2549985041256363841">Qala ukuqopha</translation> <translation id="2550212893339833758">Imemori eswayiphiwe</translation> <translation id="2550596535588364872">Vumela i-<ph name="EXTENSION_NAME" /> ukuthi ivule i-<ph name="FILE_NAME" />?</translation> @@ -1208,6 +1215,7 @@ <translation id="2672142220933875349">Ifayela elibi le-crx, ukukhipha kuphakethe kuhlulekile.</translation> <translation id="2673135533890720193">Funda umlando wakho wokuphequlula</translation> <translation id="2673589024369449924">Dala isinqamuleli sedeskithophu salo msebenzisi</translation> +<translation id="2674764818721168631">Valiwe</translation> <translation id="2677748264148917807">Hamba</translation> <translation id="2678063897982469759">Phinda unike amandla</translation> <translation id="268053382412112343">Umlando</translation> @@ -1996,6 +2004,7 @@ <translation id="3780211714699334884">I-<ph name="ORIGIN" /> izokwazi ukuhlela amafayela ku-<ph name="FOLDERNAME" /> uze uvale leli thebhu</translation> <translation id="3780827508782506612">Leli khasi lihunyushiwe</translation> <translation id="378312418865624974">Funda isikhombi esehlukile sale khompyutha</translation> +<translation id="3784472333786002075">Amakhukhi kungamafayela adalwe iwebhusayithi. Kunezinhlobo ezimbili zamakhukhi: Amakhukhi wokuqala adalwe isayithi olivakashelayo. Isayithi liboniswa kwibha yekheli. Amakhukhi wenkampani yangaphandle adalwa ngamanye amasayithi. Lawa masayithi aphethe okunye okuqukethwe, njengezikhangiso noma izithombe, ozibona kuwebhusayithi oyivakashelayo.</translation> <translation id="3785308913036335955">Bonisa isinqamuleli sezinhlelo zokusebenza</translation> <translation id="3785727820640310185">Amaphasiwedi alondoloziwe aleli sayithi</translation> <translation id="3788401245189148511">Ingahle:</translation> @@ -2003,6 +2012,7 @@ <translation id="379082410132524484">Ikhadi lakho liphelelwe isikhathi</translation> <translation id="3792890930871100565">Nqamula amaphrinta</translation> <translation id="3793395331556663376">Amasistimu efayela amaningi kakhulu avuliwe.</translation> +<translation id="379509625511193653">Valiwe</translation> <translation id="3796648294839530037">Amanethiwekhi ayizintandokazi:</translation> <translation id="3797739167230984533">I-<ph name="BEGIN_LINK" /><ph name="DEVICE_TYPE" /> yakho iphethwe<ph name="END_LINK" /> inhlangano yakho</translation> <translation id="3797900183766075808">&Sesha i-<ph name="SEARCH_ENGINE" /> nge-'<ph name="SEARCH_TERMS" />'</translation> @@ -2133,6 +2143,7 @@ <translation id="3954354850384043518">Kuyaqhubeka</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> <translation id="3954953195017194676">Awunawo amalogi omcimbi athathwe kamuva e-WebRTC.</translation> +<translation id="3955163004258753966">Iphutha ukuqalisa ukuthuthuka</translation> <translation id="3955193568934677022">Vumela amasayithi ukudlala okuqukethwe okuvikelwe (kunconyiwe)</translation> <translation id="3955896417885489542">Buyekeza izinketho ze-Google Play kulandela isethaphu</translation> <translation id="3956702100721821638">Ayikwazanga ukufinyelela i-Google Play</translation> @@ -2193,6 +2204,7 @@ <translation id="4042863763121826131">{NUM_PAGES,plural, =1{Phuma ekhasini}one{Phuma emakhasini}other{Phuma emakhasini}}</translation> <translation id="4044612648082411741">Faka iphasiwedi yesitifiketi sakho</translation> <translation id="404493185430269859">Injini yokusesha ezenzakalelayo</translation> +<translation id="4046013316139505482">Lezi zandiso azidingi ukubona nokushintsha ulwazi kuleli sayithi.</translation> <translation id="4046123991198612571">Ithrekhi elandelayo</translation> <translation id="4050225813016893843">Indlela yokufakazela ubuqiniso</translation> <translation id="4052120076834320548">Yincane</translation> @@ -2372,6 +2384,7 @@ <translation id="4330387663455830245">Ungalokothi uhumushe isi-<ph name="LANGUAGE" /></translation> <translation id="4332976768901252016">Setha izilawuli zomzali</translation> <translation id="4333854382783149454">I-PKCS #1 SHA-1 enokubethela kwe-RSA</translation> +<translation id="4336434711095810371">Sula yonke idatha</translation> <translation id="4336979451636460645">Ngamalogi wenethiwekhi, bona i-: <ph name="DEVICE_LOG_LINK" /></translation> <translation id="4340515029017875942"><ph name="ORIGIN" /> ifuna ukuxhumana nohlelo lokusebenza "<ph name="EXTENSION_NAME" />"</translation> <translation id="4345587454538109430">Lungiselela...</translation> @@ -2472,6 +2485,7 @@ <translation id="4479877282574735775">Ilungiselela umshini obonakalayo. Lokhu kungathatha amaminithi ambalwa.</translation> <translation id="4480590691557335796">I-Chrome ingathola isofthiwe enobungozi kukhompuyutha yakho iphinde iyisuse</translation> <translation id="4481530544597605423">Amadivayisi angabhanqiwe</translation> +<translation id="4488502501195719518">Sula yonke idatha?</translation> <translation id="4495419450179050807">Ungabonisi kuleli khasi</translation> <translation id="4500114933761911433">I-<ph name="PLUGIN_NAME" /> ikhubazekile</translation> <translation id="450099669180426158">Isithonjana sophawu lesibabazo</translation> @@ -2532,6 +2546,7 @@ <translation id="4570387585180509432">Amakheli, izinombolo zefoni, nokuningi</translation> <translation id="4572659312570518089">Ukuqinisekiswa kukhanseliwe ngenkathi kuxhunywa ku-"<ph name="DEVICE_NAME" />".</translation> <translation id="4572779512957829735">Faka i-PIN yokhiye wakho wokuqinisekia ubunikazi</translation> +<translation id="4573515936045019911">Uxhumo lwenethiwekhi luyadingeka ukuthuthukisa i-Linux. Sicela uxhumeke ku-inthanethi uphinde uzame futhi.</translation> <translation id="457386861538956877">Okuningi...</translation> <translation id="4574741712540401491">• <ph name="LIST_ITEM_TEXT" /></translation> <translation id="4579581181964204535">Ayikwazi ukusakaza ku-<ph name="HOST_NAME" />.</translation> @@ -2811,6 +2826,7 @@ <translation id="4994754230098574403">Iyasetha</translation> <translation id="4996978546172906250">Yabelana nge-</translation> <translation id="4997086284911172121">Akukho ukuxhumeka kwe-inthanethi.</translation> +<translation id="4998430619171209993">Vuliwe</translation> <translation id="4998873842614926205">Qinisekisa izinguquko</translation> <translation id="5000922062037820727">Kuvinjiwe (kunconyiwe)</translation> <translation id="5008936837313706385">Igama lomsebenzisi</translation> @@ -2907,6 +2923,7 @@ <translation id="5143712164865402236">Faka isikrini esigcwele</translation> <translation id="514575469079499857">Sebenzisa ikheli lakho le-IP ukuze unqume indawo (okuzenzakalelayo)</translation> <translation id="5146995429444047494">Izaziso ze-<ph name="ORIGIN" /> zivinjelwe</translation> +<translation id="5147103632304200977">Buma uma isayithi lifuna ukufinyelela amadivayisi e-HID (kuyanconywa)</translation> <translation id="5150254825601720210">Igama leseva ye-SSL yesitifiketi se-Netscape</translation> <translation id="5151354047782775295">Ukukhulula isikhala sediski noma idatha ekhethiwe ingasuswa ngokuzenzakalela</translation> <translation id="5153234146675181447">Khohlwa ifoni</translation> @@ -3043,6 +3060,7 @@ <translation id="5353252989841766347">Thumela amaphasiwedi kusukela ku-Chrome</translation> <translation id="5355099869024327351">Vumela umsizi ukuthi akubonise izaziso</translation> <translation id="5355926466126177564">Isandiso se-"<ph name="EXTENSION_NAME" />" siguqule ukuthi yiliphi ikhasi eliboniswayo uma usesha kusukela ku-Omnibox.</translation> +<translation id="5359910752122114278">Umphumela o-1</translation> <translation id="5360150013186312835">Bonisa kubha yamathuluzi</translation> <translation id="5362741141255528695">Khetha ifayela lokhiye oyimfihlo.</translation> <translation id="5363109466694494651">Geza ngamandla uphinde Ubuyele</translation> @@ -3293,6 +3311,7 @@ <translation id="5700836101007545240">Ukungeza uxhumo kukhutshazwe umlawuli wakho</translation> <translation id="5701080607174488915">Iphutha ngenkathi kulandwa inqubomgomo kusuka kuseva.</translation> <translation id="5701381305118179107">Maphakathi</translation> +<translation id="5701441174893770082">Ukuthuthukisa i-Linux kungaqeda ibhethri lakho kakhulu. Sicela uxhume idivayisi yakho kwishaja bese uyazama futhi.</translation> <translation id="5702898740348134351">&Hlela izinjini zokusesha...</translation> <translation id="570302979952009979">Khetha igama lalezi zigxivizo zeminwe</translation> <translation id="5704875434923668958">Vumelanisa ku-</translation> @@ -3522,6 +3541,7 @@ <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Idivayisi ye-USB ixhunyiwe</translation> <translation id="6028117231645531007">Engeza izigxivizo zeminwe</translation> <translation id="6029587122245504742">Okuhamba kancane kakhulu</translation> +<translation id="6032715498678347852">Ukunika ukufinyelela kusandiso kuleli sayithi, sichofoze.</translation> <translation id="6032912588568283682">Isistimu yefayela</translation> <translation id="6038929619733116134">Vimba uma isayithi libonisa izikhangiso ezingathandeki noma ezidukisayo</translation> <translation id="6039651071822577588">Isichazamazwi somkhiqizo wenethiwekhi asilungile</translation> @@ -3906,6 +3926,7 @@ <translation id="6582080224869403177">Setha kabusha i-<ph name="DEVICE_TYPE" /> yakho ukuze uthuthukise ukuphepha kwakho.</translation> <translation id="6584878029876017575">Ukusayina kwesikhathi sempilo se-Microsoft</translation> <translation id="6586451623538375658">Swayipha inkinobho yegundane eyinhloko</translation> +<translation id="6586604979641883411">Okungenani u-<ph name="REQUIRED_SPACE" /> wesikhala sediski okhululekile uyadingeka ukuthuthukisa i-Linux. Sicela ukhulule isikhala kudivayisi yakho bese uyazama futhi.</translation> <translation id="6590458744723262880">Qamba kabusha ifolda</translation> <translation id="6592267180249644460">Ilogi ye-WebRTC ithwetshuliwe ngomhla ka-<ph name="WEBRTC_LOG_CAPTURE_TIME" /></translation> <translation id="6592808042417736307">Isigxivizo sakho somunwe sithwetshuliwe</translation> @@ -4016,6 +4037,7 @@ <translation id="6757101664402245801">I-URL ikopishiwe</translation> <translation id="6758056191028427665">Sazise ukuthi siqhuba kanjani.</translation> <translation id="6759193508432371551">Ukusetha kabusha kwasekuqaleni</translation> +<translation id="6762833852331690540">Vuliwe</translation> <translation id="6767566652486411142">Khetha olunye ulimi...</translation> <translation id="6767639283522617719">Ayikwazi ukujoyina isizinda. Yenza isiqiniseko sokuthi izilungiselelo zilungile kuyunithi yenhlangano.</translation> <translation id="6769712124046837540">Ingeza iphrinta...</translation> @@ -4137,6 +4159,7 @@ <translation id="6935286146439255109">Ithreyi lephepha alikho</translation> <translation id="693807610556624488">Umsebenzi wokubhala udlula ubude besichasiso obukhulu be-: "<ph name="DEVICE_NAME" />".</translation> <translation id="6938386202199793006">Unephrinta engu-1 elondoloziwe.</translation> +<translation id="6938789263968032501">Abantu</translation> <translation id="6941937518557314510">Sicela ungene ngemvume ku-<ph name="TOKEN_NAME" /> ukuze uqinisekisele ku-<ph name="HOST_NAME" /> ngesitifiketi sakho.</translation> <translation id="6943176775188458830">Khansela ukuphrinta</translation> <translation id="6943836128787782965">I-HTTP ithole ukuhluleka</translation> @@ -4161,6 +4184,7 @@ <translation id="6970856801391541997">Phrinta amakhasi athile</translation> <translation id="6972180789171089114">Umsindo/Ividiyo</translation> <translation id="6972553992270299730">I-<ph name="ORIGIN" /> ayikwazi ukuvula amafayela akuleli folda ngoba liqukethe amafayela esistimu</translation> +<translation id="6972629891077993081">Amadivayisi we-HID</translation> <translation id="6972754398087986839">Qala</translation> <translation id="6973611239564315524">Ukuthuthuka ku-Debian 10 (Buster) kuyatholakala</translation> <translation id="6974609594866392343">Imodi yedemo yokungaxhumekile</translation> @@ -4485,8 +4509,10 @@ <translation id="7427315641433634153">I-MSCHAP</translation> <translation id="7427348830195639090">Ikhasi elingemuva: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427798576651127129">Ikholi esuka ku-<ph name="DEVICE_NAME" /></translation> +<translation id="7431719494109538750">Awekho amadivayisi we-HID atholakele</translation> <translation id="7433692219247014412">{COUNT,plural, =0{Vula konke kuwindi &elisha}=1{Vula kuwindi eli&sha}one{Vula konke (#) kuwindi &elisha}other{Vula konke (#) kuwindi &elisha}}</translation> <translation id="7434509671034404296">Unjiniyela</translation> +<translation id="7434635829372401939">Vumelanisa izilungiselelo zakho</translation> <translation id="7436921188514130341">Hawu, iphutha! Kube nephutha ngesikhathi sokuqamba kabusha.</translation> <translation id="7438976808740265764">Isidlali se-Flash ngeke sisasekelwa ngemuva kwangomhla ka-Disemba 2020.</translation> <translation id="7441736921018636843">Ukuze ushintshe lesi silungiselelo, <ph name="BEGIN_LINK" />setha kabusha ukuvumelanisa<ph name="END_LINK" /> ukuze ususe umshwana wakho wokuvumelanisa</translation> @@ -4808,6 +4834,7 @@ <translation id="786957569166715433">I-<ph name="DEVICE_NAME" /> - ibhangqiwe</translation> <translation id="7870730066603611552">Buyekeza izinketho zokuvumelanisa ulandela ukusetha</translation> <translation id="7870790288828963061">Azikho izinhlelo zokusebenza ze-Kiosk ezinenguqulo entsha etholiwe. Akukho okuzobuyekezwa. Sicela ususe isitikhi se-USB.</translation> +<translation id="787268756490971083">Valiwe</translation> <translation id="7874257161694977650">Ingemuva le-Chrome</translation> <translation id="7877451762676714207">Iphutha elingaziwa leseva. Sicela uzame futhi, noma uxhumane nomlawuli weseva.</translation> <translation id="7877680364634660272">Uhambo</translation> @@ -4835,6 +4862,7 @@ <translation id="7908378463497120834">Uxolo, okungenani ingxenye eyodwa kudivayisi yakho yesitoreji esingaphandle ayikwazanga ukugitshezwa.</translation> <translation id="7909969815743704077">Ilandwe nge-Incognito</translation> <translation id="7910768399700579500">&Ifolda entsha</translation> +<translation id="7910831464510799808">Vuliwe</translation> <translation id="7911118814695487383">I-Linux</translation> <translation id="7912080627461681647">Iphasiwedi yakho ishintshiwe kuseva. Sicela uphume ngemvume bese uphinda ungena ngemvume futhi.</translation> <translation id="7915457674565721553">Xhumeka ku-inthanethi ukuze usethe izilawuli zomzali</translation> @@ -5772,6 +5800,7 @@ <translation id="934503638756687833">Izinto ezingafakiwe lapha nazo zizosuswa, uma kudingeka. Funda kabanzi mayelana <a href="<ph name="URL" />">ukuvikelwa kwesofthiwe okungafuneki</a> kuphepha elimhlophe lobumfihlo le-Chrome.</translation> <translation id="935490618240037774">Amabhukhimakhi akho, umlando, amaphasiwedi, nezinye izilungiselelo zizovunyelaniswa ku-Akhawunti yakho ye-Google ngakho-ke ungazisebenzisa kuwo onke amadivayisi akho.</translation> <translation id="935854577147268200">Ifoni ye-Smart Lock ishintshiwe. Faka iphasiwedi yakho ukuze ubuyekeze i-Smart Lock. Ngesikhathi esilandelayo, ifoni yakho izovula i-<ph name="DEVICE_TYPE" /> yakho. Ungavala i-Smart Lock kuzilungiselelo</translation> +<translation id="93610034168535821">Isitoreji esiphelele esisetshenziswe amasayithi:</translation> <translation id="936801553271523408">Idatha yokuxilonga yesistimu</translation> <translation id="93766956588638423">Lungisa isandiso</translation> <translation id="938339467127511841">Isitoreji se-Linux (i-Beta)</translation> @@ -5793,6 +5822,7 @@ <translation id="964286338916298286">Umlawuli wakho we-IT ukhubaze izinto ze-Chrome zedivayisi yakho.</translation> <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{Uhlelo lokusebenza}one{Izinhlelo zokusebenza}other{Izinhlelo zokusebenza}}</translation> <translation id="965211523698323809">Thumela futhi wamukele imilayezo kusuka ku-<ph name="DEVICE_TYPE" /> yakho. <ph name="LINK_BEGIN" />Funda kabanzi<ph name="LINK_END" /></translation> +<translation id="967398046773905967">Ungavumeli amanye amasayithi ukufinyelela amadivayisi e-HID</translation> <translation id="967624055006145463">Idatha ilondoloziwe</translation> <translation id="968000525894980488">Vula amasevisi e-Google Play.</translation> <translation id="968037381421390582">Nama&thisela bese useshe i-“<ph name="SEARCH_TERMS" />”</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ky.xtb b/chrome/app/resources/google_chrome_strings_ky.xtb index e8f35d1d..a0a4c79d 100644 --- a/chrome/app/resources/google_chrome_strings_ky.xtb +++ b/chrome/app/resources/google_chrome_strings_ky.xtb
@@ -59,7 +59,7 @@ <translation id="2485422356828889247">Орнотуудан чыгаруу</translation> <translation id="2534507159460261402">Google Pay (Chrome'го көчүрүлдү)</translation> <translation id="2580411288591421699">Учурда иштеп жаткан Google Chrome версиясын орнотуу мүмкүн эмес. Google Chrome'ду жаап, дагы бир жолу аракет кылып көрүңүз.</translation> -<translation id="2586406160782125153">Ушуну менен бул түзмөктөн серептөө дайындарыңыз жок кылынат. Дайындарыңызды кийинчерээк чыгарып алуу үчүн Chrome'го <ph name="USER_EMAIL" /> каттоо эсеби менен кириңиз.</translation> +<translation id="2586406160782125153">Ушуну менен бул түзмөктөн серептөө дайын-даректериңиз жок кылынат. Дайын-даректериңизды кийинчерээк чыгарып алуу үчүн Chrome'го <ph name="USER_EMAIL" /> каттоо эсеби менен кириңиз.</translation> <translation id="2588322182880276190">Chrome логотиби</translation> <translation id="2644798301485385923">Chrome OS тутуму</translation> <translation id="2652691236519827073">Шилтемени жаңы Chrome &өтмөгүндө ачуу</translation> @@ -102,11 +102,11 @@ <translation id="4050175100176540509">Эң акыркы версияда коопсуздукту бекемдөө каражаттары менен жаңы мүмкүнчүлүктөр камтылган.</translation> <translation id="4053720452172726777">Google Chrome'ду өзгөчөлөштүрүү жана көзөмөлдөө</translation> <translation id="4143243756087420366">Chrome'догу профилдин аталышы жана сүрөтү</translation> -<translation id="4147555960264124640">Башкарылган каттоо эсеби менен кирип, анын администраторуна Google Chrome профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chrome дайындарыңыз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз. <ph name="LEARN_MORE" /></translation> +<translation id="4147555960264124640">Башкарылган каттоо эсеби менен кирип, анын администраторуна Google Chrome профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chrome дайын-даректериңиз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз. <ph name="LEARN_MORE" /></translation> <translation id="4149882025268051530">Орноткуч архивди чыгара албай койду. Google Chrome'ду кайра жүктөп алыңыз.</translation> <translation id="4191857738314598978">{0,plural, =1{Chrome 1 күндүн ичинде кайра иштетилет}other{Chrome # күндүн ичинде кайра иштетилет}}</translation> <translation id="424864128008805179">Chrome каттоо эсебинен чыгасызбы?</translation> -<translation id="4251615635259297716">Chrome дайындарыңыз бул каттоо эсебине байлансынбы?</translation> +<translation id="4251615635259297716">Chrome дайын-даректериңиз бул каттоо эсебине байлансынбы?</translation> <translation id="4293420128516039005">Chrome'ду бардык түзмөктөрүңүздө шайкештирип, жекелештирүү үчүн аккаунтуңузга кириңиз</translation> <translation id="4328355335528187361">Google Chrome Dev (mDNS-In)</translation> <translation id="4331809312908958774">Chrome OS</translation> @@ -159,7 +159,7 @@ <translation id="5795887333006832406"><ph name="PAGE_TITLE" /> – Google Chrome Canary</translation> <translation id="5804318322022881572">Chrome иштетилбей койду. Кайра аракет кылыңыз.</translation> <translation id="5895138241574237353">Өчүрүп күйгүзүү</translation> -<translation id="5940385492829620908">Веб, кыстармалар жана башка Chrome жеке дайындарыңыз ушул жерде жайгашкан.</translation> +<translation id="5940385492829620908">Веб, кыстармалар жана башка Chrome жеке дайын-даректериңиз ушул жерде жайгашкан.</translation> <translation id="5941830788786076944">Google Chrome'ду демейки серепчи кылуу</translation> <translation id="6070348360322141662">Кошумча коопсуздук максатында, Google Chrome дайындарыңызды шифрлеп коёт</translation> <translation id="6113794647360055231">Chrome жаңы эле жакшыртылды</translation> @@ -186,7 +186,7 @@ <translation id="7098166902387133879">Google Chrome микрофонуңузду колдонууда.</translation> <translation id="7106741999175697885">Тапшырмаларды башкаргыч – Google Chrome</translation> <translation id="7140653346177713799">{COUNT,plural, =0{Chrome үчүн жаңыртуу бар. Түзмөгүңүз өчүрүлүп-күйгүзүлгөндөн кийин ал колдонулуп баштайт.}=1{Chrome үчүн жаңыртуу бар. Түзмөгүңүз өчүрүлүп-күйгүзүлгөндөн кийин ал колдонулуп баштайт. Жашыруун терезеңиз кайра ачылбайт.}other{Chrome үчүн жаңыртуу бар. Түзмөгүңүз өчүрүлүп-күйгүзүлгөндөн кийин ал колдонулуп баштайт. # жашыруун терезеңиз кайра ачылбайт.}}</translation> -<translation id="7242029209006116544">Башкарылган каттоо эсеби менен кирип, анын администраторуна Google Chrome профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chrome дайындарыңыз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз. Учурдагы Chrome дайындарыңызды өзүнчө кармаш үчүн кааласаңыз жаңы профиль түзүп алсаңыз болот. <ph name="LEARN_MORE" /></translation> +<translation id="7242029209006116544">Башкарылган каттоо эсеби менен кирип, анын администраторуна Google Chrome профилиңизди көзөмөлдөө мүмкүнчүлүгүн берип жатасыз. Колдонмолоруңуз, кыстармалар, таржымал, сырсөздөр жана башка жөндөөлөр сыяктуу Chrome дайын-даректериңиз эми биротоло <ph name="USER_NAME" /> менен байланып калат. Бул дайындарды Google Каттоо эсептеринин Жеке кеңсеси аркылуу жок кылсаңыз болот, бирок башка каттоо эсебине байланыштыра албайсыз. Учурдагы Chrome дайын-даректериңизды өзүнчө кармаш үчүн кааласаңыз жаңы профиль түзүп алсаңыз болот. <ph name="LEARN_MORE" /></translation> <translation id="7295052994004373688">Google Chrome UI ушул тилде иштейт</translation> <translation id="7296210096911315575">Колдонуу жана коопсуздук тууралуу маанилүү маалымат</translation> <translation id="7308322188646931570">Файлдарды жүктөп алуу үчүн Chrome сактагычка мүмкүнчүлүк алышы керек</translation>
diff --git a/chrome/browser/banners/app_banner_manager.cc b/chrome/browser/banners/app_banner_manager.cc index 30094700..b7c5d62 100644 --- a/chrome/browser/banners/app_banner_manager.cc +++ b/chrome/browser/banners/app_banner_manager.cc
@@ -294,6 +294,10 @@ switches::kBypassAppBannerEngagementChecks); } +bool AppBannerManager::IsExternallyInstalledWebApp() { + return false; +} + bool AppBannerManager::IsWebAppConsideredInstalled() { return false; }
diff --git a/chrome/browser/banners/app_banner_manager.h b/chrome/browser/banners/app_banner_manager.h index 56c1a82..2632261 100644 --- a/chrome/browser/banners/app_banner_manager.h +++ b/chrome/browser/banners/app_banner_manager.h
@@ -46,6 +46,8 @@ // whether the site is already installed (and on Android, divert the flow to a // native app banner if requested). The second call completes the checking for a // web app banner (checking manifest validity, service worker, and icon). +// +// TODO(https://crbug.com/930612): Refactor this into several simpler classes. class AppBannerManager : public content::WebContentsObserver, public blink::mojom::AppBannerService, public SiteEngagementObserver { @@ -121,14 +123,19 @@ static void SetTotalEngagementToTrigger(double engagement); // TODO(https://crbug.com/930612): Move |GetInstallableAppName| and - // |IsWebContentsInstallable| out into a more general purpose installability - // check class. + // |IsExternallyInstalledWebApp| out into a more general purpose + // installability check class. // Returns the app name if the current page is installable, otherwise returns // the empty string. static base::string16 GetInstallableWebAppName( content::WebContents* web_contents); + // Returns whether the page that would currently be installed by the + // "Install PWA" or "Create Shortcut" actions would replace an installed app + // with an External install source. Returns false if unknown. + virtual bool IsExternallyInstalledWebApp(); + // Returns whether installability checks satisfy promotion requirements // (e.g. having a service worker fetch event) or have passed previously within // the current manifest scope. @@ -216,7 +223,7 @@ virtual bool IsWebAppConsideredInstalled(); // Returns whether the installed web app at the current page can be - // reinstalled over the top of the existing installation. + // overwritten with a new app install for the current page. virtual bool ShouldAllowWebAppReplacementInstall(); // Callback invoked by the InstallableManager once it has fetched the page's
diff --git a/chrome/browser/banners/app_banner_manager_desktop.cc b/chrome/browser/banners/app_banner_manager_desktop.cc index e60c9ff..7911b31 100644 --- a/chrome/browser/banners/app_banner_manager_desktop.cc +++ b/chrome/browser/banners/app_banner_manager_desktop.cc
@@ -122,6 +122,27 @@ return provider->registrar(); } +// TODO(https://crbug.com/930612): Move out into a more general purpose +// installability check class. +bool AppBannerManagerDesktop::IsExternallyInstalledWebApp() { + // Public method, so ensure processing is finished before using manifest. + if (manifest_.start_url.is_valid()) { + // Use manifest as source of truth if available. + web_app::AppId manifest_app_id = + web_app::GenerateAppIdFromURL(manifest_.start_url); + return registrar().HasExternalApp(manifest_app_id); + } + // Check URL wouldn't collide with an external app's install URL. + const GURL& url = web_contents()->GetLastCommittedURL(); + if (registrar().LookupExternalAppId(url).has_value()) + return true; + // Check an app created for this page wouldn't collide with any external app. + web_app::AppId possible_app_id = web_app::GenerateAppIdFromURL(url); + if (registrar().HasExternalApp(possible_app_id)) + return true; + return false; +} + bool AppBannerManagerDesktop::IsWebAppConsideredInstalled() { DCHECK(!manifest_.IsEmpty()); return registrar().IsLocallyInstalled(manifest_.start_url); @@ -130,6 +151,8 @@ bool AppBannerManagerDesktop::ShouldAllowWebAppReplacementInstall() { web_app::AppId app_id = web_app::GenerateAppIdFromURL(manifest_.start_url); DCHECK(registrar().IsLocallyInstalled(app_id)); + if (IsExternallyInstalledWebApp()) + return false; auto display_mode = registrar().GetAppUserDisplayMode(app_id); return display_mode == blink::mojom::DisplayMode::kBrowser; }
diff --git a/chrome/browser/banners/app_banner_manager_desktop.h b/chrome/browser/banners/app_banner_manager_desktop.h index 80ad977..dc6f474 100644 --- a/chrome/browser/banners/app_banner_manager_desktop.h +++ b/chrome/browser/banners/app_banner_manager_desktop.h
@@ -39,6 +39,9 @@ // purposes only. static void DisableTriggeringForTesting(); + // AppBannerManager overrides. + bool IsExternallyInstalledWebApp() override; + protected: explicit AppBannerManagerDesktop(content::WebContents* web_contents);
diff --git a/chrome/browser/banners/app_banner_manager_desktop_browsertest.cc b/chrome/browser/banners/app_banner_manager_desktop_browsertest.cc index fa7a9f7a2..0c523fab 100644 --- a/chrome/browser/banners/app_banner_manager_desktop_browsertest.cc +++ b/chrome/browser/banners/app_banner_manager_desktop_browsertest.cc
@@ -24,7 +24,9 @@ #include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h" #include "chrome/browser/ui/web_applications/web_app_dialog_utils.h" +#include "chrome/browser/web_applications/components/external_install_options.h" #include "chrome/browser/web_applications/components/web_app_constants.h" #include "chrome/common/chrome_features.h" #include "chrome/test/base/ui_test_utils.h" @@ -88,7 +90,8 @@ AppBannerManager::UpdateState(state); if (state == AppBannerManager::State::PENDING_ENGAGEMENT || - state == AppBannerManager::State::PENDING_PROMPT) { + state == AppBannerManager::State::PENDING_PROMPT || + state == AppBannerManager::State::COMPLETE) { OnFinished(); } } @@ -315,3 +318,29 @@ tester.ExpectUniqueSample(banners::kInstallDisplayModeHistogram, blink::mojom::DisplayMode::kFullscreen, 1); } + +IN_PROC_BROWSER_TEST_F(AppBannerManagerDesktopBrowserTest, + PolicyAppInstalled_NoPrompt) { + FakeAppBannerManagerDesktop* manager = + FakeAppBannerManagerDesktop::CreateForWebContents( + browser()->tab_strip_model()->GetActiveWebContents()); + + web_app::ExternalInstallOptions options = + web_app::CreateInstallOptions(GetBannerURL()); + options.install_source = web_app::ExternalInstallSource::kExternalPolicy; + options.user_display_mode = web_app::DisplayMode::kBrowser; + web_app::PendingAppManagerInstall(browser()->profile(), options); + + { + base::RunLoop run_loop; + manager->PrepareDone(run_loop.QuitClosure()); + + ui_test_utils::NavigateToURL(browser(), GetBannerURL()); + run_loop.Run(); + EXPECT_EQ(State::COMPLETE, manager->state()); + } + + EXPECT_EQ(banners::AppBannerManager::InstallableWebAppCheckResult::kNo, + manager->GetInstallableWebAppCheckResultForTesting()); + EXPECT_FALSE(manager->IsPromptAvailableForTesting()); +}
diff --git a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc index ec019df..df1f630c 100644 --- a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc +++ b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.cc
@@ -22,7 +22,6 @@ #include "url/origin.h" using content::BrowserThread; -using content::IndexedDBContext; using content::StorageUsageInfo; BrowsingDataIndexedDBHelper::BrowsingDataIndexedDBHelper( @@ -43,13 +42,8 @@ void BrowsingDataIndexedDBHelper::DeleteIndexedDB(const GURL& origin) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - storage_partition_->GetIndexedDBContext()->IDBTaskRunner()->PostTask( - FROM_HERE, - base::BindOnce( - &BrowsingDataIndexedDBHelper::DeleteIndexedDBInIndexedDBThread, - base::WrapRefCounted(this), - base::WrapRefCounted(storage_partition_->GetIndexedDBContext()), - origin)); + storage_partition_->GetIndexedDBControl().DeleteForOrigin( + url::Origin::Create(origin), base::DoNothing()); } void BrowsingDataIndexedDBHelper::IndexedDBUsageInfoReceived( @@ -67,13 +61,6 @@ std::move(callback).Run(std::move(result)); } -void BrowsingDataIndexedDBHelper::DeleteIndexedDBInIndexedDBThread( - scoped_refptr<content::IndexedDBContext> context, - const GURL& origin) { - DCHECK(context->IDBTaskRunner()->RunsTasksInCurrentSequence()); - context->DeleteForOrigin(url::Origin::Create(origin)); -} - CannedBrowsingDataIndexedDBHelper::CannedBrowsingDataIndexedDBHelper( content::StoragePartition* storage_partition) : BrowsingDataIndexedDBHelper(storage_partition) {}
diff --git a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.h b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.h index 16ec4e1..c05504b 100644 --- a/chrome/browser/browsing_data/browsing_data_indexed_db_helper.h +++ b/chrome/browser/browsing_data/browsing_data_indexed_db_helper.h
@@ -15,7 +15,6 @@ #include "base/memory/ref_counted.h" #include "base/strings/string16.h" #include "components/services/storage/public/mojom/indexed_db_control.mojom-forward.h" -#include "content/public/browser/indexed_db_context.h" #include "url/gurl.h" #include "url/origin.h" @@ -59,11 +58,6 @@ FetchCallback callback, std::vector<storage::mojom::IndexedDBStorageUsageInfoPtr> origins); - // Delete a single indexed database in the IndexedDB thread. - void DeleteIndexedDBInIndexedDBThread( - scoped_refptr<content::IndexedDBContext> context, - const GURL& origin); - DISALLOW_COPY_AND_ASSIGN(BrowsingDataIndexedDBHelper); };
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index e7f9aea..9f748ed 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -121,7 +121,6 @@ #include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h" #include "chrome/browser/ui/webui/chromeos/network_ui.h" #include "chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h" -#include "chrome/browser/ui/webui/settings/settings_ui.h" #include "chromeos/components/multidevice/debug_webui/proximity_auth_ui.h" #include "chromeos/services/cellular_setup/public/mojom/cellular_setup.mojom.h" #include "chromeos/services/multidevice_setup/multidevice_setup_service.h" @@ -523,8 +522,8 @@ RegisterWebUIControllerInterfaceBinder< chromeos::network_config::mojom::CrosNetworkConfig, chromeos::InternetConfigDialogUI, chromeos::InternetDetailDialogUI, - chromeos::NetworkUI, chromeos::OobeUI, chromeos::settings::OSSettingsUI, - settings::SettingsUI>(map); + chromeos::NetworkUI, chromeos::OobeUI, chromeos::settings::OSSettingsUI>( + map); #endif #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index b3a90e17..cd23290 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -815,6 +815,8 @@ "child_accounts/time_limits/app_service_wrapper.h", "child_accounts/time_limits/app_time_controller.cc", "child_accounts/time_limits/app_time_controller.h", + "child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.cc", + "child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h", "child_accounts/time_limits/app_types.cc", "child_accounts/time_limits/app_types.h", "child_accounts/time_limits/web_time_limit_enforcer.cc",
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.cc b/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.cc index 605bd88..20c98e9 100644 --- a/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.cc +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.cc
@@ -4,14 +4,20 @@ #include "chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h" +#include "base/bind.h" #include "base/feature_list.h" +#include "base/logging.h" +#include "base/values.h" #include "chrome/browser/chromeos/child_accounts/time_limits/app_activity_registry.h" #include "chrome/browser/chromeos/child_accounts/time_limits/app_service_wrapper.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h" #include "chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" +#include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_registry_simple.h" +#include "components/prefs/pref_service.h" namespace chromeos { namespace app_time { @@ -34,10 +40,54 @@ DCHECK(profile); if (WebTimeLimitEnforcer::IsEnabled()) - web_time_enforcer_ = std::make_unique<WebTimeLimitEnforcer>(); + web_time_enforcer_ = std::make_unique<WebTimeLimitEnforcer>(this); + PrefService* pref_service = profile->GetPrefs(); + RegisterProfilePrefObservers(pref_service); } AppTimeController::~AppTimeController() = default; +bool AppTimeController::IsExtensionWhitelisted( + const std::string& extension_id) const { + NOTIMPLEMENTED(); + + return true; +} + +void AppTimeController::RegisterProfilePrefObservers( + PrefService* pref_service) { + pref_registrar_ = std::make_unique<PrefChangeRegistrar>(); + pref_registrar_->Init(pref_service); + + // Adds callbacks to observe policy pref changes. + // Using base::Unretained(this) is safe here because when |pref_registrar_| + // gets destroyed, it will remove the observers from PrefService. + pref_registrar_->Add( + prefs::kPerAppTimeLimitsPolicy, + base::BindRepeating(&AppTimeController::TimeLimitsPolicyUpdated, + base::Unretained(this))); + pref_registrar_->Add( + prefs::kPerAppTimeLimitsWhitelistPolicy, + base::BindRepeating(&AppTimeController::TimeLimitsWhitelistPolicyUpdated, + base::Unretained(this))); +} + +void AppTimeController::TimeLimitsPolicyUpdated(const std::string& pref_name) { + NOTIMPLEMENTED(); +} + +void AppTimeController::TimeLimitsWhitelistPolicyUpdated( + const std::string& pref_name) { + DCHECK_EQ(pref_name, prefs::kPerAppTimeLimitsWhitelistPolicy); + + const base::DictionaryValue* policy = pref_registrar_->prefs()->GetDictionary( + prefs::kPerAppTimeLimitsWhitelistPolicy); + + // Figure out a way to avoid cloning + AppTimeLimitsWhitelistPolicyWrapper wrapper(policy); + + web_time_enforcer_->OnTimeLimitWhitelistChanged(wrapper); +} + } // namespace app_time } // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h b/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h index 438296d..a440c25b 100644 --- a/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h
@@ -9,6 +9,9 @@ class Profile; class PrefRegistrySimple; +class PrefChangeRegistrar; +class PrefService; +class Profile; namespace chromeos { namespace app_time { @@ -30,6 +33,8 @@ AppTimeController& operator=(const AppTimeController&) = delete; ~AppTimeController(); + bool IsExtensionWhitelisted(const std::string& extension_id) const; + const WebTimeLimitEnforcer* web_time_enforcer() const { return web_time_enforcer_.get(); } @@ -37,9 +42,16 @@ WebTimeLimitEnforcer* web_time_enforcer() { return web_time_enforcer_.get(); } private: + void RegisterProfilePrefObservers(PrefService* pref_service); + void TimeLimitsPolicyUpdated(const std::string& pref_name); + void TimeLimitsWhitelistPolicyUpdated(const std::string& pref_name); + std::unique_ptr<AppServiceWrapper> app_service_wrapper_; std::unique_ptr<AppActivityRegistry> app_registry_; std::unique_ptr<WebTimeLimitEnforcer> web_time_enforcer_; + + // Used to observe when policy preferences change. + std::unique_ptr<PrefChangeRegistrar> pref_registrar_; }; } // namespace app_time
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.cc b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.cc new file mode 100644 index 0000000..3bf66fdd --- /dev/null +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.cc
@@ -0,0 +1,51 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h" + +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h" + +namespace chromeos { +namespace app_time { + +AppTimeLimitsWhitelistPolicyBuilder::AppTimeLimitsWhitelistPolicyBuilder() = + default; + +AppTimeLimitsWhitelistPolicyBuilder::~AppTimeLimitsWhitelistPolicyBuilder() = + default; + +void AppTimeLimitsWhitelistPolicyBuilder::SetUp() { + value_ = base::Value(base::Value::Type::DICTIONARY); + value_.SetKey(kUrlList, base::Value(base::Value::Type::LIST)); + value_.SetKey(kAppList, base::Value(base::Value::Type::LIST)); +} + +void AppTimeLimitsWhitelistPolicyBuilder::Clear() { + base::DictionaryValue* dict_value; + value_.GetAsDictionary(&dict_value); + dict_value->Clear(); +} + +void AppTimeLimitsWhitelistPolicyBuilder::AppendToWhitelistUrlList( + const std::string& scheme) { + AppendToList(kUrlList, base::Value(scheme)); +} + +void AppTimeLimitsWhitelistPolicyBuilder::AppendToWhitelistAppList( + const AppId& app_id) { + base::Value value_to_append(base::Value::Type::DICTIONARY); + value_to_append.SetKey(kAppId, base::Value(app_id.app_id())); + value_to_append.SetKey(kAppType, + base::Value(AppTypeToString(app_id.app_type()))); + AppendToList(kAppList, std::move(value_to_append)); +} + +void AppTimeLimitsWhitelistPolicyBuilder::AppendToList(const std::string& key, + base::Value value) { + base::Value* list = value_.FindListKey(key); + DCHECK(list); + list->Append(std::move(value)); +} + +} // namespace app_time +} // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h new file mode 100644 index 0000000..55883e00 --- /dev/null +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h
@@ -0,0 +1,42 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_TEST_UTILS_H_ +#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_TEST_UTILS_H_ + +#include <string> +#include "base/values.h" + +namespace chromeos { +namespace app_time { + +class AppId; + +class AppTimeLimitsWhitelistPolicyBuilder { + public: + AppTimeLimitsWhitelistPolicyBuilder(); + ~AppTimeLimitsWhitelistPolicyBuilder(); + + AppTimeLimitsWhitelistPolicyBuilder( + const AppTimeLimitsWhitelistPolicyBuilder&) = delete; + AppTimeLimitsWhitelistPolicyBuilder& operator=( + const AppTimeLimitsWhitelistPolicyBuilder&) = delete; + + void SetUp(); + void Clear(); + void AppendToWhitelistUrlList(const std::string& scheme); + void AppendToWhitelistAppList(const AppId& app_id); + + const base::Value& value() const { return value_; } + + private: + void AppendToList(const std::string& key, base::Value value); + + base::Value value_; +}; + +} // namespace app_time +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_TEST_UTILS_H_
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.cc b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.cc new file mode 100644 index 0000000..3d51e052 --- /dev/null +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.cc
@@ -0,0 +1,90 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h" + +namespace chromeos { +namespace app_time { + +const char kUrlList[] = "url_list"; +const char kAppList[] = "app_list"; +const char kAppId[] = "app_id"; +const char kAppType[] = "app_type"; + +std::string AppTypeToString(apps::mojom::AppType app_type) { + switch (app_type) { + case apps::mojom::AppType::kArc: + return "ARC"; + case apps::mojom::AppType::kBuiltIn: + return "BUILT-IN"; + case apps::mojom::AppType::kCrostini: + return "CROSTINI"; + case apps::mojom::AppType::kExtension: + return "EXTENSION"; + case apps::mojom::AppType::kWeb: + return "WEB"; + default: + NOTREACHED(); + return ""; + } +} + +apps::mojom::AppType StringToAppType(const std::string& app_type) { + if (app_type == "ARC") + return apps::mojom::AppType::kArc; + if (app_type == "BUILD-IN") + return apps::mojom::AppType::kBuiltIn; + if (app_type == "CROSTINI") + return apps::mojom::AppType::kCrostini; + if (app_type == "EXTENSION") + return apps::mojom::AppType::kExtension; + if (app_type == "WEB") + return apps::mojom::AppType::kWeb; + + NOTREACHED(); + return apps::mojom::AppType::kUnknown; +} + +AppTimeLimitsWhitelistPolicyWrapper::AppTimeLimitsWhitelistPolicyWrapper( + const base::Value* value) + : value_(value) {} + +AppTimeLimitsWhitelistPolicyWrapper::~AppTimeLimitsWhitelistPolicyWrapper() = + default; + +std::vector<std::string> +AppTimeLimitsWhitelistPolicyWrapper::GetWhitelistURLList() const { + const base::Value* list = value_->FindListKey(kUrlList); + DCHECK(list); + + base::Value::ConstListView list_view = list->GetList(); + std::vector<std::string> return_value; + for (const base::Value& value : list_view) { + return_value.push_back(value.GetString()); + } + return return_value; +} + +std::vector<AppId> AppTimeLimitsWhitelistPolicyWrapper::GetWhitelistAppList() + const { + const base::Value* app_list = value_->FindListKey(kAppList); + DCHECK(app_list); + + base::Value::ConstListView list_view = app_list->GetList(); + std::vector<AppId> return_value; + for (const base::Value& value : list_view) { + const std::string* app_id = value.FindStringKey(kAppId); + DCHECK(app_id); + + const std::string* app_type = value.FindStringKey(kAppType); + DCHECK(app_type); + + return_value.push_back(AppId(StringToAppType(*app_type), *app_id)); + } + + return return_value; +} + +} // namespace app_time +} // namespace chromeos
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h new file mode 100644 index 0000000..651f958 --- /dev/null +++ b/chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h
@@ -0,0 +1,48 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_WRAPPER_H_ +#define CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_WRAPPER_H_ + +#include <string> +#include <vector> +#include "base/values.h" + +#include "chrome/browser/chromeos/child_accounts/time_limits/app_types.h" + +namespace chromeos { +namespace app_time { + +class AppId; + +extern const char kUrlList[]; +extern const char kAppList[]; +extern const char kAppId[]; +extern const char kAppType[]; + +std::string AppTypeToString(apps::mojom::AppType app_type); +apps::mojom::AppType StringToAppType(const std::string& app_type); + +class AppTimeLimitsWhitelistPolicyWrapper { + public: + explicit AppTimeLimitsWhitelistPolicyWrapper(const base::Value* value); + ~AppTimeLimitsWhitelistPolicyWrapper(); + + // Delete copy constructor and copy assign operator. + AppTimeLimitsWhitelistPolicyWrapper( + const AppTimeLimitsWhitelistPolicyWrapper&) = delete; + AppTimeLimitsWhitelistPolicyWrapper& operator=( + const AppTimeLimitsWhitelistPolicyWrapper&) = delete; + + std::vector<std::string> GetWhitelistURLList() const; + std::vector<AppId> GetWhitelistAppList() const; + + private: + const base::Value* value_; +}; + +} // namespace app_time +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_CHILD_ACCOUNTS_TIME_LIMITS_APP_TIME_LIMITS_WHITELIST_POLICY_WRAPPER_H_
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.cc b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.cc index 342402b9..32c4e5c 100644 --- a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.cc +++ b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.cc
@@ -8,10 +8,16 @@ #include "base/feature_list.h" #include "base/stl_util.h" +#include "base/values.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_wrapper.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_types.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/web_applications/components/web_app_helpers.h" #include "chrome/common/chrome_features.h" +#include "components/url_matcher/url_matcher.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/reload_type.h" #include "content/public/browser/web_contents.h" @@ -19,28 +25,15 @@ namespace chromeos { namespace app_time { -namespace { - -// URL schemes not on this list: (e.g., file:// and chrome://, -// chrome-extension:// ...) will always be allowed. -const char* const kFilteredSchemes[] = {"http", "https", "ftp", "ws", "wss"}; - -bool IsSchemeFiltered(const GURL& url) { - for (const auto* i : kFilteredSchemes) { - if (i == url.scheme()) - return true; - } - return false; -} - -} // namespace - // static bool WebTimeLimitEnforcer::IsEnabled() { return base::FeatureList::IsEnabled(features::kWebTimeLimits); } -WebTimeLimitEnforcer::WebTimeLimitEnforcer() = default; +WebTimeLimitEnforcer::WebTimeLimitEnforcer( + AppTimeController* app_time_controller) + : app_time_controller_(app_time_controller) {} + WebTimeLimitEnforcer::~WebTimeLimitEnforcer() = default; void WebTimeLimitEnforcer::OnWebTimeLimitReached() { @@ -59,27 +52,44 @@ ReloadAllWebContents(); } -void WebTimeLimitEnforcer::OnWhitelistAdded(const GURL& url) { - auto result = whitelisted_urls_.insert(url); - bool inserted = result.second; - if (inserted && blocked()) - ReloadAllWebContents(); -} +void WebTimeLimitEnforcer::OnTimeLimitWhitelistChanged( + const AppTimeLimitsWhitelistPolicyWrapper& wrapper) { + std::vector<std::string> whitelisted_urls = wrapper.GetWhitelistURLList(); -void WebTimeLimitEnforcer::OnWhitelistRemoved(const GURL& url) { - if (!base::Contains(whitelisted_urls_, url)) - return; + // clean up |url_matcher_|; + url_matcher_ = std::make_unique<url_matcher::URLMatcher>(); - whitelisted_urls_.erase(url); - if (blocked()) - ReloadAllWebContents(); + url_matcher::URLMatcherConditionSet::Vector condition_set_vector; + auto* condition_factory = url_matcher_->condition_factory(); + int id = 0; + for (const auto& url : whitelisted_urls) { + url_matcher::URLMatcherCondition condition = + condition_factory->CreateURLMatchesCondition(url); + + url_matcher::URLMatcherConditionSet::Conditions conditions; + conditions.insert(condition); + condition_set_vector.push_back( + base::MakeRefCounted<url_matcher::URLMatcherConditionSet>(id++, + conditions)); + } + + url_matcher_->AddConditionSets(condition_set_vector); + + // Filters have been updated. Now reload all WebContents. + ReloadAllWebContents(); } bool WebTimeLimitEnforcer::IsURLWhitelisted(const GURL& url) const { - if (!IsSchemeFiltered(url)) - return true; + // Block everything if |scheme_filter_| and |domain_matcher_| are not + // instantiated yet. + if (!url_matcher_) + return false; - return base::Contains(whitelisted_urls_, url); + if (web_app::IsValidExtensionUrl(url)) + return app_time_controller_->IsExtensionWhitelisted(url.host()); + + auto matching_set_size = url_matcher_->MatchURL(url).size(); + return matching_set_size > 0; } void WebTimeLimitEnforcer::ReloadAllWebContents() {
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h index 9e15beb..9f54d796 100644 --- a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h +++ b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h
@@ -13,14 +13,21 @@ class GURL; +namespace url_matcher { +class URLMatcher; +} // namespace url_matcher + namespace chromeos { namespace app_time { +class AppTimeLimitsWhitelistPolicyWrapper; +class AppTimeController; + class WebTimeLimitEnforcer { public: static bool IsEnabled(); - WebTimeLimitEnforcer(); + explicit WebTimeLimitEnforcer(AppTimeController* controller); ~WebTimeLimitEnforcer(); // Delete copy constructor and copy assignment operator. @@ -32,8 +39,8 @@ // observer pattern has been set up for this. void OnWebTimeLimitReached(); void OnWebTimeLimitEnded(); - void OnWhitelistAdded(const GURL& url); - void OnWhitelistRemoved(const GURL& url); + void OnTimeLimitWhitelistChanged( + const AppTimeLimitsWhitelistPolicyWrapper& value); bool IsURLWhitelisted(const GURL& url) const; @@ -47,7 +54,10 @@ bool chrome_blocked_ = false; base::TimeDelta time_limit_; - std::set<GURL> whitelisted_urls_; + // |app_time_controller_| is owned by ChildUserService. + AppTimeController* const app_time_controller_; + + std::unique_ptr<url_matcher::URLMatcher> url_matcher_; }; } // namespace app_time
diff --git a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc index 447264f..d704cce 100644 --- a/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc +++ b/chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc
@@ -6,16 +6,26 @@ #include <set> #include "base/feature_list.h" +#include "base/json/json_writer.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/chromeos/child_accounts/child_user_service.h" #include "chrome/browser/chromeos/child_accounts/child_user_service_factory.h" #include "chrome/browser/chromeos/child_accounts/time_limits/app_time_controller.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h" +#include "chrome/browser/chromeos/child_accounts/time_limits/app_types.h" #include "chrome/browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer.h" +#include "chrome/browser/chromeos/login/test/scoped_policy_update.h" +#include "chrome/browser/chromeos/login/test/user_policy_mixin.h" +#include "chrome/browser/chromeos/policy/user_policy_test_helper.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/supervised_user/logged_in_user_mixin.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/common/chrome_features.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/mixin_based_in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/user_manager/user_manager.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/render_frame_host.h" @@ -64,23 +74,29 @@ run_loop_.Quit(); } } - } // namespace -class WebTimeLimitEnforcerThrottleTest : public InProcessBrowserTest { +class WebTimeLimitEnforcerThrottleTest : public MixinBasedInProcessBrowserTest { protected: - WebTimeLimitEnforcerThrottleTest() = default; - ~WebTimeLimitEnforcerThrottleTest() override = default; - void SetUp() override; + void TearDown() override; void SetUpOnMainThread() override; bool IsErrorPageBeingShownInWebContents(content::WebContents* tab); - void WhitelistHost(const GURL& url); + void WhitelistUrlRegx(const std::string& host); + void WhitelistApp(const chromeos::app_time::AppId& app_id); void BlockWeb(); chromeos::app_time::WebTimeLimitEnforcer* GetWebTimeLimitEnforcer(); private: + void UpdatePolicy(); + base::test::ScopedFeatureList scoped_feature_list_; + + chromeos::app_time::AppTimeLimitsWhitelistPolicyBuilder builder_; + + chromeos::LoggedInUserMixin logged_in_user_mixin_{ + &mixin_host_, chromeos::LoggedInUserMixin::LogInType::kChild, + embedded_test_server(), this}; }; void WebTimeLimitEnforcerThrottleTest::SetUp() { @@ -88,16 +104,26 @@ /* enabled_features */ {{features::kPerAppTimeLimits, features::kWebTimeLimits}}, /* disabled_features */ {{}}); - InProcessBrowserTest::SetUp(); + builder_.SetUp(); + MixinBasedInProcessBrowserTest::SetUp(); +} + +void WebTimeLimitEnforcerThrottleTest::TearDown() { + builder_.Clear(); + MixinBasedInProcessBrowserTest::TearDown(); } void WebTimeLimitEnforcerThrottleTest::SetUpOnMainThread() { - InProcessBrowserTest::SetUpOnMainThread(); + MixinBasedInProcessBrowserTest::SetUpOnMainThread(); - ASSERT_TRUE(embedded_test_server()->Start()); + ASSERT_TRUE(embedded_test_server()->Started()); // Resolve everything to localhost. host_resolver()->AddIPLiteralRule("*", "127.0.0.1", "localhost"); + + logged_in_user_mixin_.LogInUser(false /*issue_any_scope_token*/, + true /*wait_for_active_session*/, + true /*request_policy_update*/); } bool WebTimeLimitEnforcerThrottleTest::IsErrorPageBeingShownInWebContents( @@ -115,8 +141,16 @@ return value; } -void WebTimeLimitEnforcerThrottleTest::WhitelistHost(const GURL& url) { - GetWebTimeLimitEnforcer()->OnWhitelistAdded(url); +void WebTimeLimitEnforcerThrottleTest::WhitelistUrlRegx( + const std::string& url) { + builder_.AppendToWhitelistUrlList(url); + UpdatePolicy(); +} + +void WebTimeLimitEnforcerThrottleTest::WhitelistApp( + const chromeos::app_time::AppId& app_id) { + builder_.AppendToWhitelistAppList(app_id); + UpdatePolicy(); } void WebTimeLimitEnforcerThrottleTest::BlockWeb() { @@ -135,6 +169,26 @@ return child_user_service.web_time_enforcer(); } +void WebTimeLimitEnforcerThrottleTest::UpdatePolicy() { + std::string policy_value; + base::JSONWriter::Write(builder_.value(), &policy_value); + + logged_in_user_mixin_.GetUserPolicyMixin() + ->RequestPolicyUpdate() + ->policy_payload() + ->mutable_perapptimelimitswhitelist() + ->set_value(policy_value); + + const user_manager::UserManager* const user_manager = + user_manager::UserManager::Get(); + + Profile* profile = chromeos::ProfileHelper::Get()->GetProfileByUser( + user_manager->GetActiveUser()); + + logged_in_user_mixin_.GetUserPolicyTestHelper()->RefreshPolicyAndWait( + profile); +} + IN_PROC_BROWSER_TEST_F(WebTimeLimitEnforcerThrottleTest, WebBlockedBeforeBrowser) { // Alright let's block the browser. @@ -205,8 +259,7 @@ WhitelistedURLNotBlocked) { GURL url = embedded_test_server()->GetURL(kExampleHost, "/supervised_user/simple.html"); - - GetWebTimeLimitEnforcer()->OnWhitelistAdded(url); + WhitelistUrlRegx(kExampleHost); // Alright let's block the browser. GetWebTimeLimitEnforcer()->OnWebTimeLimitReached(); @@ -240,8 +293,55 @@ LoadFinishedWaiter waiter(web_contents, url); - GetWebTimeLimitEnforcer()->OnWhitelistAdded(url); + WhitelistUrlRegx(kExampleHost); waiter.Wait(); EXPECT_FALSE(IsErrorPageBeingShownInWebContents(web_contents)); } + +IN_PROC_BROWSER_TEST_F(WebTimeLimitEnforcerThrottleTest, + WhitelistedSchemesNotBlockedHttp) { + GURL url = embedded_test_server()->GetURL(kExampleHost, + "/supervised_user/simple.html"); + + GetWebTimeLimitEnforcer()->OnWebTimeLimitReached(); + NavigateParams params(browser(), url, + ui::PageTransition::PAGE_TRANSITION_LINK); + params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; + + // Navigates and waits for loading to finish. + ui_test_utils::NavigateToURL(¶ms); + auto* web_contents = params.navigated_or_inserted_contents; + EXPECT_TRUE(IsErrorPageBeingShownInWebContents(web_contents)); + + // Whitelist the http scheme and ensure that the page is not + // blocked + LoadFinishedWaiter waiter(web_contents, url); + WhitelistUrlRegx("http://*"); + waiter.Wait(); + EXPECT_FALSE(IsErrorPageBeingShownInWebContents(web_contents)); +} + +IN_PROC_BROWSER_TEST_F(WebTimeLimitEnforcerThrottleTest, + WhitelistedSchemesNotBlockedChrome) { + GURL url = GURL("chrome://version"); + + GetWebTimeLimitEnforcer()->OnWebTimeLimitReached(); + NavigateParams params(browser(), url, + ui::PageTransition::PAGE_TRANSITION_LINK); + params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB; + + // Navigates and waits for loading to finish. + ui_test_utils::NavigateToURL(¶ms); + auto* web_contents = params.navigated_or_inserted_contents; + EXPECT_TRUE(IsErrorPageBeingShownInWebContents(web_contents)); + + // Whitelist the chrome scheme and ensure that the page is not + // blocked. + LoadFinishedWaiter waiter(web_contents, url); + WhitelistUrlRegx("chrome://*"); + waiter.Wait(); + EXPECT_FALSE(IsErrorPageBeingShownInWebContents(web_contents)); +} + +// TODO(yilkal): Add WhitelistedSchemeNotBlocked test for chrome://settings
diff --git a/chrome/browser/chromeos/extensions/external_cache_impl.cc b/chrome/browser/chromeos/extensions/external_cache_impl.cc index d071f58..36e4d95 100644 --- a/chrome/browser/chromeos/extensions/external_cache_impl.cc +++ b/chrome/browser/chromeos/extensions/external_cache_impl.cc
@@ -195,9 +195,10 @@ void ExternalCacheImpl::OnExtensionDownloadFailed( const std::string& id, - extensions::ExtensionDownloaderDelegate::Error error, - const extensions::ExtensionDownloaderDelegate::PingResult& ping_result, - const std::set<int>& request_ids) { + Error error, + const PingResult& ping_result, + const std::set<int>& request_ids, + const FailureData& data) { if (error == Error::NO_UPDATE_AVAILABLE) { if (!cached_extensions_->HasKey(id)) { LOG(ERROR) << "ExternalCacheImpl extension " << id
diff --git a/chrome/browser/chromeos/extensions/external_cache_impl.h b/chrome/browser/chromeos/extensions/external_cache_impl.h index 6d0df5c5..83e902f 100644 --- a/chrome/browser/chromeos/extensions/external_cache_impl.h +++ b/chrome/browser/chromeos/extensions/external_cache_impl.h
@@ -83,7 +83,8 @@ void OnExtensionDownloadFailed(const std::string& id, Error error, const PingResult& ping_result, - const std::set<int>& request_ids) override; + const std::set<int>& request_ids, + const FailureData& data) override; void OnExtensionDownloadFinished(const extensions::CRXFileInfo& file, bool file_ownership_passed, const GURL& download_url,
diff --git a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc index 329629e5..06c3a7f 100644 --- a/chrome/browser/chromeos/input_method/input_method_manager_impl.cc +++ b/chrome/browser/chromeos/input_method/input_method_manager_impl.cc
@@ -7,6 +7,7 @@ #include <stdint.h> #include <algorithm> // std::find +#include <cstdint> #include <memory> #include <set> #include <sstream> @@ -1348,9 +1349,9 @@ // the frontend will reload. auto ts_start = overridden_ref.find("&ts="); std::string ts_tag = - base::StringPrintf("&ts=%ld", base::Time::NowFromSystemTime() - .ToDeltaSinceWindowsEpoch() - .InMicroseconds()); + base::StringPrintf("&ts=%" PRId64, base::Time::NowFromSystemTime() + .ToDeltaSinceWindowsEpoch() + .InMicroseconds()); if (ts_start == std::string::npos) { overridden_ref += ts_tag; } else {
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_drive_image_download_service.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_drive_image_download_service.cc index 332f37d..41d8b25 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_drive_image_download_service.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_drive_image_download_service.cc
@@ -102,7 +102,7 @@ NOTREACHED(); // This is only used to avoid compiler warnings, it is // not actually reachable. - return FailureReason::LOGIC_ERROR; + return FailureReason::DOWNLOAD_FAILED_UNKNOWN; } } } // namespace
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.cc index f5c1d31b..e004be9 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.cc
@@ -51,7 +51,7 @@ return State::NOT_STARTED < state_ && state_ < State::CONFIGURED; } -void PluginVmInstaller::StartDlcDownload() { +void PluginVmInstaller::Start() { if (IsProcessing()) { LOG(ERROR) << "Download of a PluginVm image couldn't be started as" << " another PluginVm image is currently being processed " @@ -69,39 +69,47 @@ return; } - State prev_state = state_; + StartDlcDownload(); +} + +void PluginVmInstaller::Cancel() { + switch (state_) { + case State::DOWNLOADING_DLC: + CancelDlcDownload(); + return; + case State::DOWNLOADING: + CancelDownload(); + return; + case State::IMPORTING: + CancelImport(); + return; + default: + LOG(ERROR) << "Tried to cancel installation from unexpected state " + << GetStateName(state_); + return; + } +} + +void PluginVmInstaller::StartDlcDownload() { state_ = State::DOWNLOADING_DLC; dlc_download_start_tick_ = base::TimeTicks::Now(); - if (prev_state != State::DOWNLOAD_DLC_CANCELLED) { - chromeos::DlcserviceClient::Get()->Install( - dlc_module_list_, - base::BindOnce(&PluginVmInstaller::OnDlcDownloadCompleted, - weak_ptr_factory_.GetWeakPtr()), - base::BindRepeating(&PluginVmInstaller::OnDlcDownloadProgressUpdated, - weak_ptr_factory_.GetWeakPtr())); - } - - if (observer_) - observer_->OnDlcDownloadStarted(); + chromeos::DlcserviceClient::Get()->Install( + dlc_module_list_, + base::BindOnce(&PluginVmInstaller::OnDlcDownloadCompleted, + weak_ptr_factory_.GetWeakPtr()), + base::BindRepeating(&PluginVmInstaller::OnDlcDownloadProgressUpdated, + weak_ptr_factory_.GetWeakPtr())); } void PluginVmInstaller::CancelDlcDownload() { state_ = State::DOWNLOAD_DLC_CANCELLED; - - if (observer_) - observer_->OnDlcDownloadCancelled(); } void PluginVmInstaller::StartDownload() { - if (state_ != State::DOWNLOADED_DLC) { - LOG(ERROR) << "Download of a PluginVm image couldn't be started as " - << "StartDlcDownload() was not called prior."; - OnDownloadFailed(FailureReason::DLC_DOWNLOAD_NOT_STARTED); - return; - } - + DCHECK_EQ(state_, State::DOWNLOADING_DLC); state_ = State::DOWNLOADING; + GURL url = GetPluginVmImageDownloadUrl(); if (url.is_empty()) { OnDownloadFailed(FailureReason::INVALID_IMAGE_URL); @@ -136,8 +144,9 @@ } void PluginVmInstaller::OnDlcDownloadProgressUpdated(double progress) { - if (state_ != State::DOWNLOADING_DLC) + if (state_ == State::DOWNLOAD_DLC_CANCELLED) return; + DCHECK_EQ(state_, State::DOWNLOADING_DLC); if (observer_) observer_->OnDlcDownloadProgressUpdated( @@ -147,27 +156,31 @@ void PluginVmInstaller::OnDlcDownloadCompleted( const std::string& err, const dlcservice::DlcModuleList& dlc_module_list) { - if (state_ != State::DOWNLOADING_DLC) + if (state_ == State::DOWNLOAD_DLC_CANCELLED) { + if (observer_) + observer_->OnDlcDownloadCancelled(); + state_ = State::NOT_STARTED; return; + } + DCHECK_EQ(state_, State::DOWNLOADING_DLC); // TODO(kimjae): Remove this check once PluginVM is converted to DLC. if (err == dlcservice::kErrorInvalidDlc) { LOG(ERROR) << "PluginVM DLC is probably not supported, skipping install."; } else if (err != dlcservice::kErrorNone) { + state_ = State::DOWNLOAD_DLC_FAILED; if (observer_) observer_->OnDownloadFailed(FailureReason::DLC_DOWNLOAD_FAILED); return; } - state_ = State::DOWNLOADED_DLC; if (observer_) observer_->OnDlcDownloadCompleted(); + StartDownload(); } void PluginVmInstaller::OnDownloadStarted() { download_start_tick_ = base::TimeTicks::Now(); - if (observer_) - observer_->OnDownloadStarted(); } void PluginVmInstaller::OnDownloadProgressUpdated(uint64_t bytes_downloaded, @@ -192,10 +205,10 @@ return; } - state_ = State::DOWNLOADED; if (observer_) observer_->OnDownloadCompleted(); RecordPluginVmImageDownloadedSizeHistogram(info.bytes_downloaded); + StartImport(); } void PluginVmInstaller::OnDownloadCancelled() { @@ -228,14 +241,7 @@ } void PluginVmInstaller::StartImport() { - if (state_ != State::DOWNLOADED) { - LOG(ERROR) << "Importing of PluginVm image couldn't proceed as current " - << "state is " << GetStateName(state_) << " not " - << GetStateName(State::DOWNLOADED); - OnImported(FailureReason::LOGIC_ERROR); - return; - } - + DCHECK_EQ(state_, State::DOWNLOADING); state_ = State::IMPORTING; VLOG(1) << "Starting PluginVm dispatcher service"; @@ -534,14 +540,10 @@ return "DOWNLOADING_DLC"; case State::DOWNLOAD_DLC_CANCELLED: return "DOWNLOAD_DLC_CANCELLED"; - case State::DOWNLOADED_DLC: - return "DOWNLOADED_DLC"; case State::DOWNLOADING: return "DOWNLOADING"; case State::DOWNLOAD_CANCELLED: return "DOWNLOAD_CANCELLED"; - case State::DOWNLOADED: - return "DOWNLOADED"; case State::IMPORTING: return "IMPORTING"; case State::IMPORT_CANCELLED:
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.h b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.h index e2c4c014..517195d 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.h +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer.h
@@ -32,14 +32,6 @@ // including downloading this image from url specified by the user policy, // and importing the downloaded image archive using concierge D-Bus services. // -// Only one PluginVm image at a time is allowed to be processed. -// Methods StartDownload() and StartImport() should be -// called in this order. Image processing might be interrupted by -// calling the corresponding cancel methods. If one of the methods mentioned is -// called not in the correct order or before the previous state is finished then -// associated fail method will be called by the installer and image processing -// will be interrupted. -// // This class uses one of two different objects for handling file downloads. If // the image is hosted on Drive, a PluginVmDriveImageDownloadService object is // used due to the need for using the Drive API. In all other cases, the @@ -50,7 +42,7 @@ // FailureReasons values can be shown to the user. Do not reorder or renumber // these values without careful consideration. enum class FailureReason { - LOGIC_ERROR = 0, + // LOGIC_ERROR = 0, SIGNAL_NOT_CONNECTED = 1, OPERATION_IN_PROGRESS = 2, NOT_ALLOWED = 3, @@ -67,19 +59,17 @@ INVALID_IMPORT_RESPONSE = 14, IMAGE_IMPORT_FAILED = 15, DLC_DOWNLOAD_FAILED = 16, - DLC_DOWNLOAD_NOT_STARTED = 17, + // DLC_DOWNLOAD_NOT_STARTED = 17, }; // Observer class for the PluginVm image related events. class Observer { public: virtual ~Observer() = default; - virtual void OnDlcDownloadStarted() = 0; virtual void OnDlcDownloadProgressUpdated(double progress, base::TimeDelta elapsed_time) = 0; virtual void OnDlcDownloadCompleted() = 0; virtual void OnDlcDownloadCancelled() = 0; - virtual void OnDownloadStarted() = 0; virtual void OnDownloadProgressUpdated(uint64_t bytes_downloaded, int64_t content_length, base::TimeDelta elapsed_time) = 0; @@ -98,26 +88,10 @@ // Returns true if installer is processing a PluginVm image at the moment. bool IsProcessing(); - // Initiates the PluginVM DLC download, should always be called before - // |StartDownload()|, which initiates the PluginVM image download. - void StartDlcDownload(); - // DLC(s) cannot be currently cancelled when initiated, so this will cause - // progress and completed install callbacks to be blocked to the observer if - // there is an install taking place. - void CancelDlcDownload(); - - void StartDownload(); - // Cancels the download of PluginVm image finishing the image processing. - // Downloaded PluginVm image archive is being deleted. - void CancelDownload(); - - // Proceed with importing (unzipping and registering) of the VM image. - // Should be called when download of PluginVm image is successfully completed. - // If called in other cases - importing is not started and - // OnImported(false /* success */) is called. - void StartImport(); - // Makes a call to concierge to cancel the import. - void CancelImport(); + // Start the installation. Progress updates will be sent to the observer. + void Start(); + // Cancel the installation. + void Cancel(); void SetObserver(Observer* observer); void RemoveObserver(); @@ -155,16 +129,30 @@ std::string GetCurrentDownloadGuidForTesting(); private: + void StartDlcDownload(); + void StartDownload(); + void StartImport(); + + // DLC(s) cannot be currently cancelled when initiated, so this will cause + // progress and completed install callbacks to be blocked to the observer if + // there is an install taking place. + void CancelDlcDownload(); + // Cancels the download of PluginVm image finishing the image processing. + // Downloaded PluginVm image archive is being deleted. + void CancelDownload(); + // Makes a call to concierge to cancel the import. + void CancelImport(); + enum class State { NOT_STARTED, DOWNLOADING_DLC, DOWNLOAD_DLC_CANCELLED, - DOWNLOADED_DLC, DOWNLOADING, DOWNLOAD_CANCELLED, - DOWNLOADED, IMPORTING, IMPORT_CANCELLED, + // TODO(timloh): We treat these all the same as NOT_STARTED. Consider + // merging these together. CONFIGURED, DOWNLOAD_DLC_FAILED, DOWNLOAD_FAILED,
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer_unittest.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer_unittest.cc index 3d17fc6..07dca57 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_installer_unittest.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_installer_unittest.cc
@@ -47,6 +47,7 @@ using ::testing::_; using ::testing::AtLeast; +using ::testing::Invoke; const char kProfileName[] = "p1"; const char kUrl[] = "http://example.com"; @@ -69,14 +70,12 @@ class MockObserver : public PluginVmInstaller::Observer { public: - MOCK_METHOD0(OnDlcDownloadStarted, void()); MOCK_METHOD2(OnDlcDownloadProgressUpdated, void(double progress, base::TimeDelta elapsed_time)); MOCK_METHOD0(OnDlcDownloadCompleted, void()); MOCK_METHOD0(OnDlcDownloadCancelled, void()); MOCK_METHOD1(OnDlcDownloadFailed, void(plugin_vm::PluginVmInstaller::FailureReason)); - MOCK_METHOD0(OnDownloadStarted, void()); MOCK_METHOD3(OnDownloadProgressUpdated, void(uint64_t bytes_downloaded, int64_t content_length, @@ -162,10 +161,20 @@ // Sets new PluginVmImage pref for this test. SetPluginVmImagePref(kUrl, kHash); + fake_downloaded_plugin_vm_image_archive_ = CreateZipFile(); installer_ = PluginVmInstallerFactory::GetForProfile(profile_.get()); observer_ = std::make_unique<MockObserver>(); installer_->SetObserver(observer_.get()); + // These actions are required to make the RunUntil* functions work, so tests + // probably shouldn't override them. + ON_CALL(*observer_, OnDlcDownloadCompleted()) + .WillByDefault( + Invoke(this, &PluginVmInstallerTestBase::OnDlcDownloadCompleted)); + ON_CALL(*observer_, OnDownloadCompleted()) + .WillByDefault( + Invoke(this, &PluginVmInstallerTestBase::OnDownloadCompleted)); + fake_concierge_client_ = static_cast<chromeos::FakeConciergeClient*>( chromeos::DBusThreadManager::Get()->GetConciergeClient()); @@ -192,20 +201,40 @@ plugin_vm_image->SetKey("hash", base::Value(hash)); } - void ProcessImageUntilImporting() { - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); - task_environment_.RunUntilIdle(); + base::FilePath CreateZipFile() { + base::FilePath zip_file_path = + profile_->GetPath().AppendASCII(kPluginVmImageFile); + base::WriteFile(zip_file_path, kContent, strlen(kContent)); + return zip_file_path; } - void ProcessImageUntilConfigured() { - ProcessImageUntilImporting(); + // Helper functions for starting and progressing the installer. - // Faking downloaded file for testing. - installer_->SetDownloadedPluginVmImageArchiveForTesting( - fake_downloaded_plugin_vm_image_archive_); - installer_->StartImport(); + void RunUntilDownloading() { + base::RunLoop run_loop; + dlc_download_completed_closure_ = run_loop.QuitClosure(); + run_loop.Run(); + } + + void StartAndRunUntilDownloading() { + installer_->Start(); + RunUntilDownloading(); + } + + void RunUntilImporting() { + base::RunLoop run_loop; + download_completed_closure_ = run_loop.QuitClosure(); + run_loop.Run(); + } + + void StartAndRunUntilImporting() { + installer_->Start(); + RunUntilImporting(); + } + + // Tests using this should EXPECT_CALL on the relevant completion callback. + void StartAndRunToCompletion() { + installer_->Start(); task_environment_.RunUntilIdle(); } @@ -213,8 +242,12 @@ std::unique_ptr<TestingProfile> profile_; std::unique_ptr<PluginVmTestHelper> plugin_vm_test_helper_; PluginVmInstaller* installer_; - std::unique_ptr<MockObserver> observer_; base::FilePath fake_downloaded_plugin_vm_image_archive_; + std::unique_ptr<MockObserver> observer_; + + base::OnceClosure dlc_download_completed_closure_; + base::OnceClosure download_completed_closure_; + // Owned by chromeos::DBusThreadManager chromeos::FakeConciergeClient* fake_concierge_client_; chromeos::FakeDlcserviceClient* fake_dlcservice_client_; @@ -231,6 +264,18 @@ profile_ = profile_builder.Build(); } + void OnDlcDownloadCompleted() { + if (dlc_download_completed_closure_) + std::move(dlc_download_completed_closure_).Run(); + } + + void OnDownloadCompleted() { + installer_->SetDownloadedPluginVmImageArchiveForTesting( + fake_downloaded_plugin_vm_image_archive_); + if (download_completed_closure_) + std::move(download_completed_closure_).Run(); + } + base::ScopedTempDir profiles_dir_; DISALLOW_COPY_AND_ASSIGN(PluginVmInstallerTestBase); @@ -252,7 +297,6 @@ download_service_->set_client(client_.get()); installer_->SetDownloadServiceForTesting(download_service_.get()); histogram_tester_ = std::make_unique<base::HistogramTester>(); - fake_downloaded_plugin_vm_image_archive_ = CreateZipFile(); } void TearDown() override { @@ -263,13 +307,6 @@ client_.reset(); } - base::FilePath CreateZipFile() { - base::FilePath zip_file_path = - profile_->GetPath().AppendASCII(kPluginVmImageFile); - base::WriteFile(zip_file_path, kContent, strlen(kContent)); - return zip_file_path; - } - std::unique_ptr<download::test::TestDownloadService> download_service_; std::unique_ptr<base::HistogramTester> histogram_tester_; @@ -338,15 +375,12 @@ TEST_F(PluginVmInstallerDownloadServiceTest, DownloadPluginVmImageParamsTest) { SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_); - EXPECT_CALL(*observer_, OnDlcDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImported()); - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); + StartAndRunUntilDownloading(); std::string guid = installer_->GetCurrentDownloadGuidForTesting(); base::Optional<download::DownloadParams> params = @@ -358,36 +392,21 @@ // Finishing image processing. task_environment_.RunUntilIdle(); - // Faking downloaded file for testing. - installer_->SetDownloadedPluginVmImageArchiveForTesting( - fake_downloaded_plugin_vm_image_archive_); - installer_->StartImport(); - task_environment_.RunUntilIdle(); } TEST_F(PluginVmInstallerDownloadServiceTest, OnlyOneImageIsProcessedTest) { SetupConciergeForSuccessfulDiskImageImport(fake_concierge_client_); - EXPECT_CALL(*observer_, OnDlcDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImported()); - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); + StartAndRunUntilDownloading(); EXPECT_TRUE(installer_->IsProcessing()); - task_environment_.RunUntilIdle(); - // Faking downloaded file for testing. - installer_->SetDownloadedPluginVmImageArchiveForTesting( - fake_downloaded_plugin_vm_image_archive_); - - EXPECT_TRUE(installer_->IsProcessing()); - - installer_->StartImport(); + RunUntilImporting(); EXPECT_TRUE(installer_->IsProcessing()); @@ -407,13 +426,13 @@ EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)).Times(2); EXPECT_CALL(*observer_, OnImported()).Times(2); - ProcessImageUntilConfigured(); + StartAndRunToCompletion(); EXPECT_FALSE(installer_->IsProcessing()); // As it is deleted after successful importing. fake_downloaded_plugin_vm_image_archive_ = CreateZipFile(); - ProcessImageUntilConfigured(); + StartAndRunToCompletion(); histogram_tester_->ExpectUniqueSample(kPluginVmImageDownloadedSizeHistogram, kDownloadedPluginVmImageSizeInMb, 2); @@ -426,22 +445,19 @@ EXPECT_CALL(*observer_, OnDownloadFailed( PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_ABORTED)); - EXPECT_CALL(*observer_, OnDlcDownloadStarted()).Times(2); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()).Times(2); EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnImportProgressUpdated(50.0, _)); EXPECT_CALL(*observer_, OnImported()); - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); + StartAndRunUntilDownloading(); std::string guid = installer_->GetCurrentDownloadGuidForTesting(); download_service_->SetFailedDownload(guid, false); task_environment_.RunUntilIdle(); EXPECT_FALSE(installer_->IsProcessing()); - ProcessImageUntilConfigured(); + StartAndRunToCompletion(); histogram_tester_->ExpectUniqueSample(kPluginVmImageDownloadedSizeHistogram, kDownloadedPluginVmImageSizeInMb, 1); @@ -449,10 +465,11 @@ TEST_F(PluginVmInstallerDownloadServiceTest, CancelledDownloadTest) { EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0); + EXPECT_CALL(*observer_, OnDownloadFailed(_)).Times(0); EXPECT_CALL(*observer_, OnDownloadCancelled()); - installer_->StartDownload(); - installer_->CancelDownload(); + StartAndRunUntilDownloading(); + installer_->Cancel(); task_environment_.RunUntilIdle(); // Finishing image processing as it should really happen. installer_->OnDownloadCancelled(); @@ -468,10 +485,8 @@ *observer_, OnImportFailed(PluginVmInstaller::FailureReason::COULD_NOT_OPEN_IMAGE)); - ProcessImageUntilImporting(); - // Should fail as fake downloaded file isn't set. - installer_->StartImport(); - task_environment_.RunUntilIdle(); + fake_downloaded_plugin_vm_image_archive_ = base::FilePath(); + StartAndRunToCompletion(); histogram_tester_->ExpectUniqueSample(kPluginVmImageDownloadedSizeHistogram, kDownloadedPluginVmImageSizeInMb, 1); @@ -483,15 +498,12 @@ true /* success */); EXPECT_CALL(*observer_, OnDownloadCompleted()); + EXPECT_CALL(*observer_, OnImported()).Times(0); + EXPECT_CALL(*observer_, OnImportFailed(_)).Times(0); EXPECT_CALL(*observer_, OnImportCancelled()); - ProcessImageUntilImporting(); - - // Faking downloaded file for testing. - installer_->SetDownloadedPluginVmImageArchiveForTesting( - fake_downloaded_plugin_vm_image_archive_); - installer_->StartImport(); - installer_->CancelImport(); + StartAndRunUntilImporting(); + installer_->Cancel(); task_environment_.RunUntilIdle(); } @@ -500,9 +512,8 @@ EXPECT_CALL( *observer_, OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL)); - EXPECT_CALL(*observer_, OnDlcDownloadStarted()); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); - ProcessImageUntilImporting(); + StartAndRunToCompletion(); histogram_tester_->ExpectTotalCount(kPluginVmImageDownloadedSizeHistogram, 0); } @@ -514,63 +525,52 @@ EXPECT_FALSE(installer_->VerifyDownload(std::string())); } -TEST_F(PluginVmInstallerDownloadServiceTest, - CannotStartDownloadIfDlcDownloadNotRun) { - EXPECT_CALL(*observer_, - OnDownloadFailed( - PluginVmInstaller::FailureReason::DLC_DOWNLOAD_NOT_STARTED)); - EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0); - installer_->StartDownload(); - task_environment_.RunUntilIdle(); -} - -TEST_F(PluginVmInstallerDownloadServiceTest, - CannotStartDlcDownloadIfPluginVmGetsDisabled) { +TEST_F(PluginVmInstallerDownloadServiceTest, CannotStartIfPluginVmIsDisabled) { profile_->ScopedCrosSettingsTestHelper()->SetBoolean( chromeos::kPluginVmAllowed, false); EXPECT_CALL(*observer_, OnDownloadFailed(PluginVmInstaller::FailureReason::NOT_ALLOWED)); EXPECT_CALL(*observer_, OnDlcDownloadCompleted()).Times(0); - installer_->StartDlcDownload(); + installer_->Start(); task_environment_.RunUntilIdle(); } TEST_F(PluginVmInstallerDriveTest, InvalidDriveUrlTest) { SetPluginVmImagePref(kDriveUrl2, kHash); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL( *observer_, OnDownloadFailed(PluginVmInstaller::FailureReason::INVALID_IMAGE_URL)); - ProcessImageUntilImporting(); + StartAndRunToCompletion(); } TEST_F(PluginVmInstallerDriveTest, NoConnectionDriveTest) { SetPluginVmImagePref(kDriveUrl, kHash); fake_drive_service_->set_offline(true); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadFailed( PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_NETWORK)); - ProcessImageUntilImporting(); + StartAndRunToCompletion(); } TEST_F(PluginVmInstallerDriveTest, WrongHashDriveTest) { SetPluginVmImagePref(kDriveUrl, kHash2); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadFailed( PluginVmInstaller::FailureReason::HASH_MISMATCH)); - ProcessImageUntilImporting(); + StartAndRunToCompletion(); } TEST_F(PluginVmInstallerDriveTest, DriveDownloadFailedAfterStartingTest) { SetPluginVmImagePref(kDriveUrl, kHash); SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService(); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _)); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(10, 100, _)); EXPECT_CALL(*observer_, @@ -578,10 +578,7 @@ PluginVmInstaller::FailureReason::DOWNLOAD_FAILED_NETWORK)); EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0); - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); - task_environment_.RunUntilIdle(); + StartAndRunToCompletion(); fake_drive_service->RunGetContentCallback( google_apis::HTTP_SUCCESS, std::make_unique<std::string>("Part1")); @@ -597,19 +594,16 @@ SetPluginVmImagePref(kDriveUrl, kHash); SimpleFakeDriveService* fake_drive_service = SetUpSimpleFakeDriveService(); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(5, 100, _)); EXPECT_CALL(*observer_, OnDownloadCompleted()).Times(0); - installer_->StartDlcDownload(); - task_environment_.RunUntilIdle(); - installer_->StartDownload(); - task_environment_.RunUntilIdle(); + StartAndRunToCompletion(); fake_drive_service->RunGetContentCallback( google_apis::HTTP_SUCCESS, std::make_unique<std::string>("Part1")); fake_drive_service->RunProgressCallback(5, 100); - installer_->CancelDownload(); + installer_->Cancel(); task_environment_.RunUntilIdle(); EXPECT_TRUE(fake_drive_service->cancel_callback_called()); } @@ -617,13 +611,13 @@ TEST_F(PluginVmInstallerDriveTest, SuccessfulDriveDownloadTest) { SetPluginVmImagePref(kDriveUrl, kHash); - EXPECT_CALL(*observer_, OnDownloadStarted()); + EXPECT_CALL(*observer_, OnDlcDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadCompleted()); EXPECT_CALL(*observer_, OnDownloadProgressUpdated(_, std::strlen(kContent), _)) .Times(AtLeast(1)); - ProcessImageUntilImporting(); + StartAndRunToCompletion(); } } // namespace plugin_vm
diff --git a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc index 369e089d..b63180157 100644 --- a/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc +++ b/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate_unittest.cc
@@ -118,7 +118,8 @@ base::Unretained(delegate), id, ExtensionDownloaderDelegate::Error::NO_UPDATE_AVAILABLE, ExtensionDownloaderDelegate::PingResult(), - fetch_data->request_ids())); + fetch_data->request_ids(), + ExtensionDownloaderDelegate::FailureData())); continue; } auto update = updates_.find(id);
diff --git a/chrome/browser/extensions/forced_extensions/installation_reporter.cc b/chrome/browser/extensions/forced_extensions/installation_reporter.cc index 19eeb8ec..d4a8145c 100644 --- a/chrome/browser/extensions/forced_extensions/installation_reporter.cc +++ b/chrome/browser/extensions/forced_extensions/installation_reporter.cc
@@ -88,15 +88,23 @@ } } +void InstallationReporter::ReportCrxFetchError( + const ExtensionId& id, + const ExtensionDownloaderDelegate::FailureData& failure_data) { + InstallationData& data = installation_data_map_[id]; + data.failure_reason = FailureReason::CRX_FETCH_FAILED; + data.network_error_code = failure_data.network_error_code; + data.response_code = failure_data.response_code; + data.fetch_tries = failure_data.fetch_tries; + NotifyObserversOfFailure(id, FailureReason::CRX_FETCH_FAILED, data); +} + void InstallationReporter::ReportFailure(const ExtensionId& id, FailureReason reason) { DCHECK_NE(reason, FailureReason::UNKNOWN); InstallationData& data = installation_data_map_[id]; data.failure_reason = reason; - for (auto& observer : observers_) { - observer.OnExtensionInstallationFailed(id, reason); - observer.OnExtensionDataChangedForTesting(id, browser_context_, data); - } + NotifyObserversOfFailure(id, reason, data); } void InstallationReporter::ReportCrxInstallError( @@ -134,4 +142,14 @@ observers_.RemoveObserver(observer); } +void InstallationReporter::NotifyObserversOfFailure( + const ExtensionId& id, + FailureReason reason, + const InstallationData& data) { + for (auto& observer : observers_) { + observer.OnExtensionInstallationFailed(id, reason); + observer.OnExtensionDataChangedForTesting(id, browser_context_, data); + } +} + } // namespace extensions
diff --git a/chrome/browser/extensions/forced_extensions/installation_reporter.h b/chrome/browser/extensions/forced_extensions/installation_reporter.h index 6c96134..653b267 100644 --- a/chrome/browser/extensions/forced_extensions/installation_reporter.h +++ b/chrome/browser/extensions/forced_extensions/installation_reporter.h
@@ -187,6 +187,11 @@ base::Optional<extensions::InstallationReporter::FailureReason> failure_reason; base::Optional<extensions::CrxInstallErrorDetail> install_error_detail; + // Network error codes when failure_reason is CRX_FETCH_FAILED. + base::Optional<int> network_error_code; + base::Optional<int> response_code; + // Number of fetch tries made when failure reason is CRX_FETCH_FAILED. + base::Optional<int> fetch_tries; }; class Observer : public base::CheckedObserver { @@ -213,6 +218,9 @@ // Remembers failure reason and in-progress stages in memory. void ReportInstallationStage(const ExtensionId& id, Stage stage); + void ReportCrxFetchError( + const ExtensionId& id, + const ExtensionDownloaderDelegate::FailureData& failure_data); void ReportFailure(const ExtensionId& id, FailureReason reason); void ReportDownloadingStage(const ExtensionId& id, ExtensionDownloaderDelegate::Stage stage); @@ -235,6 +243,11 @@ void RemoveObserver(Observer* observer); private: + // Helper function to report installation failures to the observers. + void NotifyObserversOfFailure(const ExtensionId& id, + FailureReason reason, + const InstallationData& data); + const content::BrowserContext* browser_context_; std::map<ExtensionId, InstallationReporter::InstallationData>
diff --git a/chrome/browser/extensions/forced_extensions/installation_tracker.cc b/chrome/browser/extensions/forced_extensions/installation_tracker.cc index 2852478..cc2cd4b 100644 --- a/chrome/browser/extensions/forced_extensions/installation_tracker.cc +++ b/chrome/browser/extensions/forced_extensions/installation_tracker.cc
@@ -7,6 +7,7 @@ #include <set> #include "base/bind.h" +#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/values.h" #include "chrome/browser/extensions/external_provider_impl.h" @@ -15,6 +16,7 @@ #include "components/prefs/pref_service.h" #include "extensions/browser/install/crx_install_error.h" #include "extensions/browser/pref_names.h" +#include "extensions/browser/updater/extension_downloader.h" #include "extensions/browser/updater/extension_downloader_delegate.h" #include "extensions/common/extension_urls.h" @@ -224,6 +226,23 @@ "Extensions.OffStore_ForceInstalledFailureReason2", failure_reason); } + + // In case of CRX_FETCH_FAILURE, report the network error code, HTTP + // error code and number of fetch tries made. + if (failure_reason == + InstallationReporter::FailureReason::CRX_FETCH_FAILED) { + base::UmaHistogramSparse("Extensions.ForceInstalledNetworkErrorCode", + installation.network_error_code.value()); + + if (installation.response_code) { + base::UmaHistogramSparse("Extensions.ForceInstalledHttpErrorCode", + installation.response_code.value()); + } + UMA_HISTOGRAM_EXACT_LINEAR("Extensions.ForceInstalledFetchTries", + installation.fetch_tries.value(), + ExtensionDownloader::kMaxRetries); + } + VLOG(2) << "Forced extension " << extension_id << " failed to install with data=" << InstallationReporter::GetFormattedInstallationData(
diff --git a/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc b/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc index 0d85f11..63c51fa 100644 --- a/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc +++ b/chrome/browser/extensions/forced_extensions/installation_tracker_unittest.cc
@@ -19,6 +19,7 @@ #include "extensions/common/extension.h" #include "extensions/common/extension_builder.h" #include "extensions/common/value_builder.h" +#include "net/base/net_errors.h" #include "testing/gtest/include/gtest/gtest.h" namespace { @@ -30,6 +31,10 @@ "https://clients2.google.com/service/update2/crx"; // URL of Chrome Web // Store backend. +const int kFetchTries = 5; +// HTTP_SUCCESS +const int kResponseCode = 200; + constexpr char kLoadTimeStats[] = "Extensions.ForceInstalledLoadTime"; constexpr char kTimedOutStats[] = "Extensions.ForceInstalledTimedOutCount"; constexpr char kTimedOutNotInstalledStats[] = @@ -47,7 +52,10 @@ "Extensions.ForceInstalledFailureCrxInstallError"; constexpr char kTotalCountStats[] = "Extensions.ForceInstalledTotalCandidateCount"; - +constexpr char kNetworkErrorCodeStats[] = + "Extensions.ForceInstalledNetworkErrorCode"; +constexpr char kHttpErrorCodeStats[] = "Extensions.ForceInstalledHttpErrorCode"; +constexpr char kFetchRetriesStats[] = "Extensions.ForceInstalledFetchTries"; } // namespace namespace extensions { @@ -241,6 +249,26 @@ prefs_->GetManagedPref(pref_names::kInstallForceList)->DictSize(), 1); } +// Error Codes in case of CRX_FETCH_FAILED. +TEST_F(ForcedExtensionsInstallationTrackerTest, ExtensionCrxFetchFailed) { + SetupForceList(); + ExtensionDownloaderDelegate::FailureData data1(net::Error::OK, kResponseCode, + kFetchTries); + ExtensionDownloaderDelegate::FailureData data2( + -net::Error::ERR_INVALID_ARGUMENT, kFetchTries); + installation_reporter_->ReportCrxFetchError(kExtensionId1, data1); + installation_reporter_->ReportCrxFetchError(kExtensionId2, data2); + // InstallationTracker shuts down timer because all extension are either + // loaded or failed. + EXPECT_FALSE(fake_timer_->IsRunning()); + histogram_tester_.ExpectBucketCount(kNetworkErrorCodeStats, net::Error::OK, + 1); + histogram_tester_.ExpectBucketCount(kHttpErrorCodeStats, kResponseCode, 1); + histogram_tester_.ExpectBucketCount(kNetworkErrorCodeStats, + -net::Error::ERR_INVALID_ARGUMENT, 1); + histogram_tester_.ExpectBucketCount(kFetchRetriesStats, kFetchTries, 2); +} + TEST_F(ForcedExtensionsInstallationTrackerTest, NoExtensionsConfigured) { EXPECT_TRUE(fake_timer_->IsRunning()); fake_timer_->Fire();
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc index e0e00b37..303b6a3a 100644 --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -415,7 +415,8 @@ const ExtensionId& id, Error error, const PingResult& ping, - const std::set<int>& request_ids) { + const std::set<int>& request_ids, + const FailureData& data) { DCHECK(alive_); InstallationReporter* installation_reporter = InstallationReporter::Get(profile_); @@ -426,8 +427,7 @@ "Extensions.ExtensionUpdaterUpdateResults", ExtensionUpdaterUpdateResult::UPDATE_DOWNLOAD_ERROR, ExtensionUpdaterUpdateResult::UPDATE_RESULT_COUNT); - installation_reporter->ReportFailure( - id, InstallationReporter::FailureReason::CRX_FETCH_FAILED); + installation_reporter->ReportCrxFetchError(id, data); break; case Error::CRX_FETCH_URL_EMPTY: UMA_HISTOGRAM_ENUMERATION(
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h index ca52249..94617a7 100644 --- a/chrome/browser/extensions/updater/extension_updater.h +++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -208,7 +208,8 @@ void OnExtensionDownloadFailed(const ExtensionId& id, Error error, const PingResult& ping, - const std::set<int>& request_ids) override; + const std::set<int>& request_ids, + const FailureData& data) override; void OnExtensionDownloadFinished(const CRXFileInfo& file, bool file_ownership_passed, const GURL& download_url,
diff --git a/chrome/browser/extensions/updater/extension_updater_unittest.cc b/chrome/browser/extensions/updater/extension_updater_unittest.cc index 96d5a7c..a34c3e5d 100644 --- a/chrome/browser/extensions/updater/extension_updater_unittest.cc +++ b/chrome/browser/extensions/updater/extension_updater_unittest.cc
@@ -1155,7 +1155,7 @@ delegate, OnExtensionDownloadFailed( "1111", ExtensionDownloaderDelegate::Error::MANIFEST_FETCH_FAILED, - _, _)) + _, _, _)) .WillOnce(InvokeWithoutArgs(&delegate, &MockExtensionDownloaderDelegate::Quit)); delegate.Wait(); @@ -1174,7 +1174,7 @@ delegate, OnExtensionDownloadFailed( "2222", ExtensionDownloaderDelegate::Error::MANIFEST_INVALID, _, - _)) + _, _)) .WillOnce(InvokeWithoutArgs(&delegate, &MockExtensionDownloaderDelegate::Quit)); delegate.Wait(); @@ -1205,7 +1205,7 @@ delegate, OnExtensionDownloadFailed( "3333", ExtensionDownloaderDelegate::Error::NO_UPDATE_AVAILABLE, - _, _)) + _, _, _)) .WillOnce(InvokeWithoutArgs(&delegate, &MockExtensionDownloaderDelegate::Quit)); delegate.Wait(); @@ -1269,7 +1269,7 @@ delegate, OnExtensionDownloadFailed( "1111", ExtensionDownloaderDelegate::Error::MANIFEST_FETCH_FAILED, - _, _)); + _, _, _)); helper.test_url_loader_factory().SetInterceptor(base::BindLambdaForTesting( [&](const network::ResourceRequest& request) { EXPECT_TRUE(request.load_flags == kExpectedLoadFlags); @@ -1302,7 +1302,7 @@ delegate, OnExtensionDownloadFailed( "1111", ExtensionDownloaderDelegate::Error::MANIFEST_FETCH_FAILED, - _, _)); + _, _, _)); // The first fetch will fail, and require retrying. { @@ -1393,7 +1393,7 @@ } if (fail) { - EXPECT_CALL(delegate, OnExtensionDownloadFailed(id, _, _, requests)) + EXPECT_CALL(delegate, OnExtensionDownloadFailed(id, _, _, requests, _)) .WillOnce(DoAll( InvokeWithoutArgs(&delegate, &MockExtensionDownloaderDelegate::Quit), @@ -1625,7 +1625,7 @@ EXPECT_TRUE(updater.downloader_->extension_loader_); helper.test_url_loader_factory().AddResponse( fetch.url.spec(), std::string(), net::HTTP_UNAUTHORIZED); - EXPECT_CALL(delegate, OnExtensionDownloadFailed(_, _, _, _)) + EXPECT_CALL(delegate, OnExtensionDownloadFailed(_, _, _, _, _)) .WillOnce(InvokeWithoutArgs( &delegate, &MockExtensionDownloaderDelegate::Quit)); delegate.Wait();
diff --git a/chrome/browser/media/router/BUILD.gn b/chrome/browser/media/router/BUILD.gn index b2d7b40..f3c7ced 100644 --- a/chrome/browser/media/router/BUILD.gn +++ b/chrome/browser/media/router/BUILD.gn
@@ -300,8 +300,8 @@ "providers/cast/cast_session_tracker_unittest.cc", "providers/cast/dual_media_sink_service_unittest.cc", "providers/cast/mirroring_activity_record_unittest.cc", - "providers/cast/mock_activity_record.cc", - "providers/cast/mock_activity_record.h", + "providers/cast/mock_cast_activity_record.cc", + "providers/cast/mock_cast_activity_record.h", "providers/cast/test_util.cc", "providers/cast/test_util.h", "providers/dial/dial_activity_manager_unittest.cc",
diff --git a/chrome/browser/media/router/providers/cast/activity_record.cc b/chrome/browser/media/router/providers/cast/activity_record.cc index bf03e85..4a8881fc 100644 --- a/chrome/browser/media/router/providers/cast/activity_record.cc +++ b/chrome/browser/media/router/providers/cast/activity_record.cc
@@ -50,4 +50,19 @@ } } +void ActivityRecord::SendStopSessionMessageToClients( + const std::string& hash_token) {} + +void ActivityRecord::SendMessageToClient( + const std::string& client_id, + blink::mojom::PresentationConnectionMessagePtr message) {} + +void ActivityRecord::SendMediaStatusToClients(const base::Value& media_status, + base::Optional<int> request_id) {} + +void ActivityRecord::ClosePresentationConnections( + blink::mojom::PresentationConnectionCloseReason close_reason) {} + +void ActivityRecord::TerminatePresentationConnections() {} + } // namespace media_router
diff --git a/chrome/browser/media/router/providers/cast/activity_record.h b/chrome/browser/media/router/providers/cast/activity_record.h index e9ef48da..ef07a46 100644 --- a/chrome/browser/media/router/providers/cast/activity_record.h +++ b/chrome/browser/media/router/providers/cast/activity_record.h
@@ -24,19 +24,12 @@ class CastMessageHandler; } -namespace url { -class Origin; -} - namespace media_router { class CastSessionTracker; class ActivityRecord { public: - using ClientMap = - base::flat_map<std::string, std::unique_ptr<CastSessionClient>>; - ActivityRecord(const MediaRoute& route, const std::string& app_id, cast_channel::CastMessageHandler* message_handler, @@ -62,61 +55,7 @@ const MediaSinkInternal& sink, const std::string& hash_token); - // TODO(jrw): Get rid of this accessor. - const ClientMap& connected_clients() const { return connected_clients_; } - - // Sends app message |cast_message|, which came from the SDK client, to the - // receiver hosting this session. Returns true if the message is sent - // successfully. - // - // TODO(jrw): Move this method to CastActivityRecord. - virtual cast_channel::Result SendAppMessageToReceiver( - const CastInternalMessage& cast_message) = 0; - - // Sends media command |cast_message|, which came from the SDK client, to the - // receiver hosting this session. Returns the locally-assigned request ID of - // the message sent to the receiver. - // - // TODO(jrw): Move this method to CastActivityRecord. - virtual base::Optional<int> SendMediaRequestToReceiver( - const CastInternalMessage& cast_message) = 0; - - // Sends a SET_VOLUME request to the receiver and calls |callback| when a - // response indicating whether the request succeeded is received. - // - // TODO(jrw): Move this method to CastActivityRecord. - virtual void SendSetVolumeRequestToReceiver( - const CastInternalMessage& cast_message, - cast_channel::ResultCallback callback) = 0; - - virtual void SendStopSessionMessageToReceiver( - const base::Optional<std::string>& client_id, - const std::string& hash_token, - mojom::MediaRouteProvider::TerminateRouteCallback callback) = 0; - - // Called when the client given by |client_id| requests to leave the session. - // This will also cause all clients within the session with matching origin - // and/or tab ID to leave (i.e., their presentation connections will be - // closed). - // - // TODO(jrw): Move this method to CastActivityRecord. - virtual void HandleLeaveSession(const std::string& client_id) = 0; - - // Adds a new client |client_id| to this session and returns the handles of - // the two pipes to be held by Blink It is invalid to call this method if the - // client already exists. - // - // TODO(jrw): This method is only called on CastActivityRecord instances. - // Should it be moved? - virtual mojom::RoutePresentationConnectionPtr AddClient( - const CastMediaSource& source, - const url::Origin& origin, - int tab_id) = 0; - - // TODO(jrw): This method is never called outside of unit tests. Figure out - // where it should be called. If AddClient() is moved to CastActivityRecord, - // this method probably should be, too. - virtual void RemoveClient(const std::string& client_id) = 0; + virtual void SendStopSessionMessageToClients(const std::string& hash_token); // Sends |message| to the client given by |client_id|. // @@ -124,21 +63,21 @@ // Can the methods be combined? virtual void SendMessageToClient( const std::string& client_id, - blink::mojom::PresentationConnectionMessagePtr message) = 0; + blink::mojom::PresentationConnectionMessagePtr message); virtual void SendMediaStatusToClients(const base::Value& media_status, - base::Optional<int> request_id) = 0; + base::Optional<int> request_id); // Handles a message forwarded by CastActivityManager. virtual void OnAppMessage(const cast::channel::CastMessage& message) = 0; virtual void OnInternalMessage( const cast_channel::InternalMessage& message) = 0; - // Closes / Terminates the PresentationConnections of all clients connected - // to this activity. + // Closes/terminates the PresentationConnections of all clients connected to + // this activity. virtual void ClosePresentationConnections( - blink::mojom::PresentationConnectionCloseReason close_reason) = 0; - virtual void TerminatePresentationConnections() = 0; + blink::mojom::PresentationConnectionCloseReason close_reason); + virtual void TerminatePresentationConnections(); virtual void CreateMediaController( mojo::PendingReceiver<mojom::MediaController> media_controller, @@ -150,7 +89,6 @@ MediaRoute route_; std::string app_id_; base::Optional<int> mirroring_tab_id_; - ClientMap connected_clients_; // Called when a session is initially set from SetOrUpdateSession(). base::OnceCallback<void()> on_session_set_;
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc index 229bb3d2..7b1b52b 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
@@ -176,22 +176,7 @@ DoLaunchSession(std::move(params)); } -bool CastActivityManager::CanJoinSession(const ActivityRecord& activity, - const CastMediaSource& cast_source, - bool incognito) const { - if (!cast_source.ContainsApp(activity.app_id())) - return false; - - if (base::Contains(activity.connected_clients(), cast_source.client_id())) - return false; - - if (activity.route().is_incognito() != incognito) - return false; - - return true; -} - -ActivityRecord* CastActivityManager::FindActivityForSessionJoin( +CastActivityRecord* CastActivityManager::FindActivityForSessionJoin( const CastMediaSource& cast_source, const std::string& presentation_id) { // We only allow joining by session ID. The Cast SDK uses @@ -209,14 +194,14 @@ // Find activity by session ID. Search should fail if the session ID is not // valid. - auto it = std::find_if(activities_.begin(), activities_.end(), + auto it = std::find_if(cast_activities_.begin(), cast_activities_.end(), [&session_id](const auto& entry) { return entry.second->session_id() == session_id; }); - return it == activities_.end() ? nullptr : it->second.get(); + return it == cast_activities_.end() ? nullptr : it->second; } -ActivityRecord* CastActivityManager::FindActivityForAutoJoin( +CastActivityRecord* CastActivityManager::FindActivityForAutoJoin( const CastMediaSource& cast_source, const url::Origin& origin, int tab_id) { @@ -228,24 +213,18 @@ return nullptr; } - auto it = std::find_if( - activities_.begin(), activities_.end(), - [&cast_source, &origin, tab_id](const auto& activity) { - AutoJoinPolicy policy = cast_source.auto_join_policy(); - const ActivityRecord* record = activity.second.get(); - if (!record->route().is_local()) - return false; - if (!cast_source.ContainsApp(record->app_id())) - return false; - const auto& clients = record->connected_clients(); - return std::any_of(clients.begin(), clients.end(), - [policy, &origin, tab_id](const auto& client) { - return IsAutoJoinAllowed(policy, origin, tab_id, - client.second->origin(), - client.second->tab_id()); - }); - }); - return it == activities_.end() ? nullptr : it->second.get(); + auto it = + std::find_if(cast_activities_.begin(), cast_activities_.end(), + [&cast_source, &origin, tab_id](const auto& activity) { + AutoJoinPolicy policy = cast_source.auto_join_policy(); + const CastActivityRecord* record = activity.second; + if (!record->route().is_local()) + return false; + if (!cast_source.ContainsApp(record->app_id())) + return false; + return record->HasJoinableClient(policy, origin, tab_id); + }); + return it == cast_activities_.end() ? nullptr : it->second; } void CastActivityManager::JoinSession( @@ -257,7 +236,7 @@ mojom::MediaRouteProvider::JoinRouteCallback callback) { DVLOG(2) << "JoinSession: source / presentation ID: " << cast_source.source_id() << ", " << presentation_id; - ActivityRecord* activity = nullptr; + CastActivityRecord* activity = nullptr; if (presentation_id == kAutoJoinPresentationId) { activity = FindActivityForAutoJoin(cast_source, origin, tab_id); if (!activity && cast_source.default_action_policy() != @@ -273,7 +252,7 @@ activity = FindActivityForSessionJoin(cast_source, presentation_id); } - if (!activity || !CanJoinSession(*activity, cast_source, incognito)) { + if (!activity || !activity->CanJoinSession(cast_source, incognito)) { DVLOG(2) << "No joinable activity"; std::move(callback).Run(base::nullopt, nullptr, std::string("No matching route"), @@ -348,6 +327,7 @@ DLOG(ERROR) << "Invalid state: " << state; } + cast_activities_.erase(activity_it->first); activities_.erase(activity_it); } @@ -381,9 +361,13 @@ const MediaSinkInternal* sink = media_sink_service_->GetSinkByRoute(route); CHECK(sink); - activity->SendStopSessionMessageToReceiver( - base::nullopt, // TODO(jrw): Get the real client ID. - hash_token_, std::move(callback)); + // TODO(jrw): Get the real client ID. + base::Optional<std::string> client_id = base::nullopt; + + activity->SendStopSessionMessageToClients(hash_token_); + message_handler_->StopSession( + sink->cast_channel_id(), *session_id, client_id, + MakeResultCallbackForRoute(route_id, std::move(callback))); } bool CastActivityManager::CreateMediaController( @@ -418,36 +402,33 @@ }); } -ActivityRecord* CastActivityManager::AddCastActivityRecord( +CastActivityRecord* CastActivityManager::AddCastActivityRecord( const MediaRoute& route, const std::string& app_id) { - std::unique_ptr<ActivityRecord> activity; - if (activity_record_factory_) { - activity = activity_record_factory_->MakeCastActivityRecord(route, app_id); - } else { - activity.reset(new CastActivityRecord(route, app_id, media_sink_service_, - message_handler_, session_tracker_, - this)); - } - auto* activity_ptr = activity.get(); + std::unique_ptr<CastActivityRecord> activity( + activity_record_factory_ + ? activity_record_factory_->MakeCastActivityRecord(route, app_id) + : std::make_unique<CastActivityRecord>( + route, app_id, message_handler_, session_tracker_)); + auto* const activity_ptr = activity.get(); activities_.emplace(route.media_route_id(), std::move(activity)); + cast_activities_[route.media_route_id()] = activity_ptr; return activity_ptr; } ActivityRecord* CastActivityManager::AddMirroringActivityRecord( const MediaRoute& route, const std::string& app_id, - int tab_id, + const int tab_id, const CastSinkExtraData& cast_data) { auto activity = std::make_unique<MirroringActivityRecord>( route, app_id, message_handler_, session_tracker_, tab_id, cast_data, - media_router_, media_sink_service_, this, - // We could theoretically use base::Unretained() below instead of - // GetWeakPtr(), the that seems like an unnecessary optimization here. - // --jrw + media_router_, + // NOTE(jrw): We could theoretically use base::Unretained() below instead + // of GetWeakPtr(), the that seems like an unnecessary optimization here. base::BindOnce(&CastActivityManager::RemoveActivityByRouteId, weak_ptr_factory_.GetWeakPtr(), route.media_route_id())); - auto* activity_ptr = activity.get(); + auto* const activity_ptr = activity.get(); activities_.emplace(route.media_route_id(), std::move(activity)); return activity_ptr; }
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h index 84ec7eaf..8638a76 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
@@ -135,6 +135,7 @@ friend class CastActivityManagerTest; using ActivityMap = base::flat_map<MediaRoute::Id, std::unique_ptr<ActivityRecord>>; + using CastActivityMap = base::flat_map<MediaRoute::Id, CastActivityRecord*>; // Bundle of parameters for DoLaunchSession(). struct DoLaunchSessionParams { @@ -210,13 +211,14 @@ mojom::MediaRouteProvider::TerminateRouteCallback callback, cast_channel::Result result); - ActivityRecord* FindActivityForAutoJoin(const CastMediaSource& cast_source, - const url::Origin& origin, - int tab_id); - bool CanJoinSession(const ActivityRecord& activity, + CastActivityRecord* FindActivityForAutoJoin( + const CastMediaSource& cast_source, + const url::Origin& origin, + int tab_id); + bool CanJoinSession(const CastActivityRecord& activity, const CastMediaSource& cast_source, bool incognito) const; - ActivityRecord* FindActivityForSessionJoin( + CastActivityRecord* FindActivityForSessionJoin( const CastMediaSource& cast_source, const std::string& presentation_id); @@ -232,8 +234,8 @@ ActivityMap::iterator FindActivityByChannelId(int channel_id); ActivityMap::iterator FindActivityBySink(const MediaSinkInternal& sink); - ActivityRecord* AddCastActivityRecord(const MediaRoute& route, - const std::string& app_id); + CastActivityRecord* AddCastActivityRecord(const MediaRoute& route, + const std::string& app_id); ActivityRecord* AddMirroringActivityRecord( const MediaRoute& route, const std::string& app_id, @@ -247,8 +249,15 @@ static CastActivityRecordFactoryForTest* activity_record_factory_; base::flat_set<MediaSource::Id> route_queries_; + + // This map contains all activities--both Cast app acitivties and mirroring + // activities. ActivityMap activities_; + // The values of this map are the subset of those in |activites_| where there + // is a CastActivityRecord. + CastActivityMap cast_activities_; + // The following raw pointer fields are assumed to outlive |this|. MediaSinkServiceBase* const media_sink_service_; CastSessionTracker* const session_tracker_;
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc index 37de3b75..ca13184 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_manager_unittest.cc
@@ -19,7 +19,7 @@ #include "base/test/values_test_util.h" #include "base/values.h" #include "chrome/browser/media/router/providers/cast/cast_session_client.h" -#include "chrome/browser/media/router/providers/cast/mock_activity_record.h" +#include "chrome/browser/media/router/providers/cast/mock_cast_activity_record.h" #include "chrome/browser/media/router/providers/cast/test_util.h" #include "chrome/browser/media/router/providers/common/buffered_message_sender.h" #include "chrome/browser/media/router/test/mock_mojo_media_router.h" @@ -78,8 +78,8 @@ })"); } -using MockActivityRecordCallback = - base::RepeatingCallback<void(MockActivityRecord*)>; +using MockCastActivityRecordCallback = + base::RepeatingCallback<void(MockCastActivityRecord*)>; } // namespace @@ -110,8 +110,11 @@ socket_service_.task_runner())); manager_ = std::make_unique<CastActivityManager>( &media_sink_service_, session_tracker_.get(), &message_handler_, - router_remote_.get(), - "theHashToken"); + router_remote_.get(), "theHashToken"); + + ON_CALL(message_handler_, StopSession) + .WillByDefault(WithArg<3>( + [this](auto callback) { result_callback_ = std::move(callback); })); RunUntilIdle(); @@ -128,17 +131,12 @@ CastActivityManager::SetActitivyRecordFactoryForTest(nullptr); } - std::unique_ptr<ActivityRecord> MakeCastActivityRecord( + std::unique_ptr<CastActivityRecord> MakeCastActivityRecord( const MediaRoute& route, const std::string& app_id) override { - auto activity = std::make_unique<MockActivityRecord>(route, app_id); + auto activity = std::make_unique<MockCastActivityRecord>(route, app_id); auto* activity_ptr = activity.get(); std::string route_id = route.media_route_id(); - ON_CALL(*activity, SendStopSessionMessageToReceiver) - .WillByDefault(WithArg<2>([this, route_id](auto callback) { - result_callback_ = manager_->MakeResultCallbackForRoute( - route_id, std::move(callback)); - })); ON_CALL(*activity, SetOrUpdateSession) .WillByDefault(WithArg<0>([activity_ptr](const auto& session) { activity_ptr->set_session_id(session.session_id()); @@ -181,7 +179,7 @@ ASSERT_TRUE(source); activity_record_callback_ = - base::BindLambdaForTesting([this](MockActivityRecord* activity) { + base::BindLambdaForTesting([this](MockCastActivityRecord* activity) { // TODO(jrw): Check parameters. EXPECT_CALL(*activity, AddClient); EXPECT_CALL(*activity, SendMessageToClient).RetiresOnSaturation(); @@ -230,7 +228,11 @@ } void TerminateSession(bool expect_success) { - EXPECT_CALL(*activities_[0], SendStopSessionMessageToReceiver); + EXPECT_CALL(*activities_[0], SendStopSessionMessageToClients); + + // TODO(jrw): Check parameters + EXPECT_CALL(message_handler_, StopSession(kChannelId, _, _, _)); + if (expect_success) { ExpectEmptyRouteUpdate(); } else { @@ -245,7 +247,8 @@ void TerminateNoSession() { // Stop session message not sent because session has not launched yet. - EXPECT_CALL(*activities_[0], SendStopSessionMessageToReceiver).Times(0); + EXPECT_CALL(*activities_[0], SendStopSessionMessageToClients).Times(0); + EXPECT_CALL(message_handler_, StopSession).Times(0); ExpectNoRouteUpdate(); manager_->TerminateSession(route_->media_route_id(), MakeTerminateRouteCallback(true)); @@ -314,8 +317,8 @@ MockCastAppDiscoveryService app_discovery_service_; std::unique_ptr<CastActivityManager> manager_; std::unique_ptr<CastSessionTracker> session_tracker_; - std::vector<MockActivityRecord*> activities_; - MockActivityRecordCallback activity_record_callback_ = base::DoNothing(); + std::vector<MockCastActivityRecord*> activities_; + MockCastActivityRecordCallback activity_record_callback_ = base::DoNothing(); const url::Origin origin_ = url::Origin::Create(GURL(kOrigin)); const MediaSource::Id route_query_ = "theRouteQuery"; base::Optional<MediaRoute> updated_route_; @@ -352,7 +355,7 @@ TEST_F(CastActivityManagerTest, LaunchSessionTerminatesExistingSessionOnSink) { LaunchSession(); - EXPECT_CALL(*activities_[0], SendStopSessionMessageToReceiver); + EXPECT_CALL(*activities_[0], SendStopSessionMessageToClients); { testing::InSequence dummy;
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_record.cc b/chrome/browser/media/router/providers/cast/cast_activity_record.cc index f783cc2..a5ad2af 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_record.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_record.cc
@@ -4,11 +4,13 @@ #include "chrome/browser/media/router/providers/cast/cast_activity_record.h" +#include <algorithm> #include <memory> #include <vector> #include "base/bind.h" #include "base/optional.h" +#include "base/stl_util.h" #include "chrome/browser/media/router/providers/cast/cast_activity_manager.h" #include "chrome/browser/media/router/providers/cast/cast_session_client.h" #include "url/origin.h" @@ -21,13 +23,9 @@ CastActivityRecord::CastActivityRecord( const MediaRoute& route, const std::string& app_id, - MediaSinkServiceBase* media_sink_service, cast_channel::CastMessageHandler* message_handler, - CastSessionTracker* session_tracker, - CastActivityManagerBase* owner) - : ActivityRecord(route, app_id, message_handler, session_tracker), - media_sink_service_(media_sink_service), - activity_manager_(owner) { + CastSessionTracker* session_tracker) + : ActivityRecord(route, app_id, message_handler, session_tracker) { route_.set_controller_type(RouteControllerType::kGeneric); } @@ -101,7 +99,7 @@ return cast_channel::Result::kFailed; } return message_handler_->SendAppMessage( - GetCastChannelId(), + cast_channel_id(), cast_channel::CreateCastMessage( message_namespace, cast_message.app_message_body(), cast_message.client_id(), session->transport_id())); @@ -113,7 +111,7 @@ if (!session) return base::nullopt; return message_handler_->SendMediaRequest( - GetCastChannelId(), cast_message.v2_message_body(), + cast_channel_id(), cast_message.v2_message_body(), cast_message.client_id(), session->transport_id()); } @@ -121,30 +119,17 @@ const CastInternalMessage& cast_message, cast_channel::ResultCallback callback) { message_handler_->SendSetVolumeRequest( - GetCastChannelId(), cast_message.v2_message_body(), + cast_channel_id(), cast_message.v2_message_body(), cast_message.client_id(), std::move(callback)); } -// TODO(jrw): Revise the name of this method. -void CastActivityRecord::SendStopSessionMessageToReceiver( - const base::Optional<std::string>& client_id, - const std::string& hash_token, - mojom::MediaRouteProvider::TerminateRouteCallback callback) { - const std::string& sink_id = route_.media_sink_id(); - const MediaSinkInternal* sink = media_sink_service_->GetSinkById(sink_id); - DCHECK(sink); - DCHECK(session_id_); - - // TODO(jrw): Add test for this loop. - for (const auto& client : connected_clients()) { +void CastActivityRecord::SendStopSessionMessageToClients( + const std::string& hash_token) { + // TODO(jrw): Add test for this method. + for (const auto& client : connected_clients_) { client.second->SendMessageToClient( - CreateReceiverActionStopMessage(client.first, *sink, hash_token)); + CreateReceiverActionStopMessage(client.first, sink_, hash_token)); } - - message_handler_->StopSession( - sink->cast_data().cast_channel_id, *session_id_, client_id, - activity_manager_->MakeResultCallbackForRoute(route_.media_route_id(), - std::move(callback))); } void CastActivityRecord::HandleLeaveSession(const std::string& client_id) { @@ -181,7 +166,7 @@ void CastActivityRecord::SendMediaStatusToClients( const base::Value& media_status, base::Optional<int> request_id) { - for (auto& client : connected_clients()) + for (auto& client : connected_clients_) client.second->SendMediaStatusToClient(media_status, request_id); if (media_controller_) media_controller_->SetMediaStatus(media_status); @@ -210,7 +195,7 @@ media_controller_->SetSession(*session); base::Value status_request(base::Value::Type::DICTIONARY); status_request.SetKey("type", base::Value("MEDIA_GET_STATUS")); - message_handler_->SendMediaRequest(GetCastChannelId(), status_request, + message_handler_->SendMediaRequest(cast_channel_id(), status_request, media_controller_->sender_id(), session->transport_id()); } @@ -226,7 +211,7 @@ const std::string& client_id = message.destination_id(); if (client_id == "*") { - for (const auto& client : connected_clients()) { + for (const auto& client : connected_clients_) { SendMessageToClient( client.first, CreateAppMessage(*session_id_, client.first, message)); } @@ -239,15 +224,29 @@ void CastActivityRecord::OnInternalMessage( const cast_channel::InternalMessage& message) {} -int CastActivityRecord::GetCastChannelId() { - const MediaSinkInternal* sink = media_sink_service_->GetSinkByRoute(route_); - if (!sink) { - // TODO(crbug.com/905002): Add UMA metrics for this and other error - // conditions. - DLOG(ERROR) << "Sink not found for route: " << route_; - return -1; - } - return sink->cast_data().cast_channel_id; +bool CastActivityRecord::CanJoinSession(const CastMediaSource& cast_source, + bool incognito) const { + if (!cast_source.ContainsApp(app_id())) + return false; + + if (base::Contains(connected_clients_, cast_source.client_id())) + return false; + + if (route().is_incognito() != incognito) + return false; + + return true; +} + +bool CastActivityRecord::HasJoinableClient(AutoJoinPolicy policy, + const url::Origin& origin, + int tab_id) const { + return std::any_of(connected_clients_.begin(), connected_clients_.end(), + [policy, &origin, tab_id](const auto& client) { + return IsAutoJoinAllowed(policy, origin, tab_id, + client.second->origin(), + client.second->tab_id()); + }); } CastSessionClientFactoryForTest* CastActivityRecord::client_factory_for_test_ =
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_record.h b/chrome/browser/media/router/providers/cast/cast_activity_record.h index f13df4e..900e181 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_record.h +++ b/chrome/browser/media/router/providers/cast/cast_activity_record.h
@@ -25,51 +25,35 @@ namespace media_router { -class CastActivityManagerBase; class CastActivityRecord; class CastInternalMessage; class CastSession; class CastSessionClient; class CastSessionClientFactoryForTest; class CastSessionTracker; -class MediaSinkServiceBase; class MediaRoute; class CastActivityRecordFactoryForTest { public: - virtual std::unique_ptr<ActivityRecord> MakeCastActivityRecord( + virtual std::unique_ptr<CastActivityRecord> MakeCastActivityRecord( const MediaRoute& route, const std::string& app_id) = 0; }; class CastActivityRecord : public ActivityRecord { public: + using ClientMap = + base::flat_map<std::string, std::unique_ptr<CastSessionClient>>; + // Creates a new record owned by |owner|. CastActivityRecord(const MediaRoute& route, const std::string& app_id, - MediaSinkServiceBase* media_sink_service, cast_channel::CastMessageHandler* message_handler, - CastSessionTracker* session_tracker, - CastActivityManagerBase* owner); + CastSessionTracker* session_tracker); ~CastActivityRecord() override; // ActivityRecord implementation - cast_channel::Result SendAppMessageToReceiver( - const CastInternalMessage& cast_message) override; - base::Optional<int> SendMediaRequestToReceiver( - const CastInternalMessage& cast_message) override; - void SendSetVolumeRequestToReceiver( - const CastInternalMessage& cast_message, - cast_channel::ResultCallback callback) override; - void SendStopSessionMessageToReceiver( - const base::Optional<std::string>& client_id, - const std::string& hash_token, - mojom::MediaRouteProvider::TerminateRouteCallback callback) override; - void HandleLeaveSession(const std::string& client_id) override; - mojom::RoutePresentationConnectionPtr AddClient(const CastMediaSource& source, - const url::Origin& origin, - int tab_id) override; - void RemoveClient(const std::string& client_id) override; + void SendStopSessionMessageToClients(const std::string& hash_token) override; void SetOrUpdateSession(const CastSession& session, const MediaSinkInternal& sink, const std::string& hash_token) override; @@ -87,6 +71,45 @@ mojo::PendingReceiver<mojom::MediaController> media_controller, mojo::PendingRemote<mojom::MediaStatusObserver> observer) override; + // Sends media command |cast_message|, which came from the SDK client, to the + // receiver hosting this session. Returns the locally-assigned request ID of + // the message sent to the receiver. + virtual base::Optional<int> SendMediaRequestToReceiver( + const CastInternalMessage& cast_message); + + // Sends app message |cast_message|, which came from the SDK client, to the + // receiver hosting this session. Returns true if the message is sent + // successfully. + virtual cast_channel::Result SendAppMessageToReceiver( + const CastInternalMessage& cast_message); + + // Sends a SET_VOLUME request to the receiver and calls |callback| when a + // response indicating whether the request succeeded is received. + virtual void SendSetVolumeRequestToReceiver( + const CastInternalMessage& cast_message, + cast_channel::ResultCallback callback); + + // Called when the client given by |client_id| requests to leave the session. + // This will also cause all clients within the session with matching origin + // and/or tab ID to leave (i.e., their presentation connections will be + // closed). + virtual void HandleLeaveSession(const std::string& client_id); + + // Adds a new client |client_id| to this session and returns the handles of + // the two pipes to be held by Blink It is invalid to call this method if the + // client already exists. + virtual mojom::RoutePresentationConnectionPtr AddClient( + const CastMediaSource& source, + const url::Origin& origin, + int tab_id); + + virtual void RemoveClient(const std::string& client_id); + + bool CanJoinSession(const CastMediaSource& cast_source, bool incognito) const; + bool HasJoinableClient(AutoJoinPolicy policy, + const url::Origin& origin, + int tab_id) const; + static void SetClientFactoryForTest( CastSessionClientFactoryForTest* factory) { client_factory_for_test_ = factory; @@ -97,18 +120,16 @@ friend class CastActivityManager; friend class CastActivityRecordTest; - int GetCastChannelId(); + static CastSessionClientFactoryForTest* client_factory_for_test_; + + int cast_channel_id() const { return sink_.cast_channel_id(); } CastSessionClient* GetClient(const std::string& client_id) { auto it = connected_clients_.find(client_id); return it == connected_clients_.end() ? nullptr : it->second.get(); } - static CastSessionClientFactoryForTest* client_factory_for_test_; - - MediaSinkServiceBase* const media_sink_service_; - CastActivityManagerBase* const activity_manager_; - + ClientMap connected_clients_; std::unique_ptr<CastMediaController> media_controller_; };
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_record_unittest.cc b/chrome/browser/media/router/providers/cast/cast_activity_record_unittest.cc index ce4c8a905..2379ba2 100644 --- a/chrome/browser/media/router/providers/cast/cast_activity_record_unittest.cc +++ b/chrome/browser/media/router/providers/cast/cast_activity_record_unittest.cc
@@ -52,6 +52,7 @@ constexpr char kAppId[] = "theAppId"; constexpr char kRouteId[] = "theRouteId"; constexpr char kSinkId[] = "cast:<id42>"; +constexpr char kHashToken[] = "dummyHashToken"; class MockCastSessionClientImpl : public CastSessionClient { public: @@ -112,9 +113,8 @@ MediaRoute route; route.set_media_route_id(kRouteId); route.set_media_sink_id(kSinkId); - record_.reset(new CastActivityRecord(route, kAppId, &media_sink_service_, - &message_handler_, - session_tracker_.get(), &manager_)); + record_ = std::make_unique<CastActivityRecord>( + route, kAppId, &message_handler_, session_tracker_.get()); std::unique_ptr<CastSession> session = CastSession::From(sink_, ParseJson(R"({ @@ -161,7 +161,10 @@ testing::Mock::VerifyAndClearExpectations(&manager_); } - MediaRoute& route() { return record_->route_; } + MediaRoute& route() const { return record_->route_; } + const CastActivityRecord::ClientMap& clients() const { + return record_->connected_clients_; + } MockCastSessionClientImpl* AddMockClient(const std::string& client_id) { CastMediaSource source("dummySourceId", std::vector<CastAppInfo>()); @@ -256,7 +259,6 @@ TEST_F(CastActivityRecordTest, SendSetVolumeRequestToReceiver) { // TODO(crbug.com/954797): Test case where no socket is found kChannelId. - EXPECT_CALL( message_handler_, SendSetVolumeRequest( @@ -272,6 +274,7 @@ base::MockCallback<cast_channel::ResultCallback> callback; EXPECT_CALL(callback, Run(cast_channel::Result::kOk)); + SetUpSession(); std::unique_ptr<CastInternalMessage> message = CastInternalMessage::From(ParseJson(R"({ "type": "v2_message", @@ -285,37 +288,15 @@ record_->SendSetVolumeRequestToReceiver(*message, callback.Get()); } -TEST_F(CastActivityRecordTest, SendStopSessionMessageToReceiver) { - const base::Optional<std::string> client_id("theClientId"); - - EXPECT_CALL(message_handler_, - StopSession(kChannelId, "theSessionId", client_id, _)) - .WillOnce(WithArg<3>([](cast_channel::ResultCallback callback) { - std::move(callback).Run(cast_channel::Result::kFailed); - })); - - EXPECT_CALL(manager_, MakeResultCallbackForRoute(kRouteId, _)) - .WillOnce(WithArg<1>( - [](mojom::MediaRouteProvider::TerminateRouteCallback callback) { - return base::BindOnce( - [](mojom::MediaRouteProvider::TerminateRouteCallback callback, - cast_channel::Result result) { - EXPECT_EQ(cast_channel::Result::kFailed, result); - std::move(callback).Run( - base::Optional<std::string>("theErrorText"), - RouteRequestResult::INCOGNITO_MISMATCH); - }, - std::move(callback)); - })); - - base::MockCallback<mojom::MediaRouteProvider::TerminateRouteCallback> - callback; - EXPECT_CALL(callback, Run(base::Optional<std::string>("theErrorText"), - RouteRequestResult::INCOGNITO_MISMATCH)); - +TEST_F(CastActivityRecordTest, SendStopSessionMessageToClients) { SetUpSession(); - record_->SendStopSessionMessageToReceiver(client_id, "dummyHashToken", - callback.Get()); + auto* client = AddMockClient("theClientId"); + EXPECT_CALL( + *client, + SendMessageToClient(IsPresentationConnectionMessage( + CreateReceiverActionStopMessage("theClientId", sink_, kHashToken) + ->get_message()))); + record_->SendStopSessionMessageToClients(kHashToken); } TEST_F(CastActivityRecordTest, HandleLeaveSession) { @@ -332,7 +313,7 @@ .WillRepeatedly(Return(is_leaving)); } record_->HandleLeaveSession("theClientId"); - EXPECT_THAT(record_->connected_clients(), + EXPECT_THAT(clients(), UnorderedElementsAre(Pair("theClientId", _), Pair("keeping", _))); } @@ -360,31 +341,27 @@ // TODO(crbug.com/954797): Check value returned by AddClient(). // Adding clients works as expected. - ASSERT_TRUE(record_->connected_clients().empty()); + ASSERT_TRUE(clients().empty()); ASSERT_FALSE(route().is_local()); AddMockClient("theClientId1"); // Check that adding a client causes the route to become local. EXPECT_TRUE(route().is_local()); - EXPECT_THAT(record_->connected_clients(), - UnorderedElementsAre(Pair("theClientId1", _))); + EXPECT_THAT(clients(), UnorderedElementsAre(Pair("theClientId1", _))); AddMockClient("theClientId2"); EXPECT_TRUE(route().is_local()); - EXPECT_THAT( - record_->connected_clients(), - UnorderedElementsAre(Pair("theClientId1", _), Pair("theClientId2", _))); + EXPECT_THAT(clients(), UnorderedElementsAre(Pair("theClientId1", _), + Pair("theClientId2", _))); // Removing a non-existant client is a no-op. record_->RemoveClient("noSuchClient"); - EXPECT_THAT( - record_->connected_clients(), - UnorderedElementsAre(Pair("theClientId1", _), Pair("theClientId2", _))); + EXPECT_THAT(clients(), UnorderedElementsAre(Pair("theClientId1", _), + Pair("theClientId2", _))); // Removing clients works as expected. record_->RemoveClient("theClientId1"); - EXPECT_THAT(record_->connected_clients(), - UnorderedElementsAre(Pair("theClientId2", _))); + EXPECT_THAT(clients(), UnorderedElementsAre(Pair("theClientId2", _))); record_->RemoveClient("theClientId2"); - EXPECT_TRUE(record_->connected_clients().empty()); + EXPECT_TRUE(clients().empty()); } TEST_F(CastActivityRecordTest, SetOrUpdateSession) { @@ -424,6 +401,7 @@ TEST_F(CastActivityRecordTest, TerminatePresentationConnections) { AddMockClient("theClientId1"); AddMockClient("theClientId2"); + ASSERT_FALSE(clients_.empty()); for (auto* client : clients_) { EXPECT_CALL(*client, TerminateConnection()); }
diff --git a/chrome/browser/media/router/providers/cast/cast_media_controller.cc b/chrome/browser/media/router/providers/cast/cast_media_controller.cc index 5b6eab8..2832711 100644 --- a/chrome/browser/media/router/providers/cast/cast_media_controller.cc +++ b/chrome/browser/media/router/providers/cast/cast_media_controller.cc
@@ -7,7 +7,7 @@ #include "base/rand_util.h" #include "base/strings/string_number_conversions.h" #include "base/values.h" -#include "chrome/browser/media/router/providers/cast/activity_record.h" +#include "chrome/browser/media/router/providers/cast/cast_activity_record.h" #include "chrome/browser/media/router/providers/cast/cast_internal_message_util.h" #include "components/cast_channel/enum_table.h" @@ -60,7 +60,7 @@ } // namespace CastMediaController::CastMediaController( - ActivityRecord* activity, + CastActivityRecord* activity, mojo::PendingReceiver<mojom::MediaController> receiver, mojo::PendingRemote<mojom::MediaStatusObserver> observer) : sender_id_("sender-" + base::NumberToString(base::RandUint64())),
diff --git a/chrome/browser/media/router/providers/cast/cast_media_controller.h b/chrome/browser/media/router/providers/cast/cast_media_controller.h index cd8ca7e..1d2dcd6 100644 --- a/chrome/browser/media/router/providers/cast/cast_media_controller.h +++ b/chrome/browser/media/router/providers/cast/cast_media_controller.h
@@ -20,7 +20,7 @@ namespace media_router { -class ActivityRecord; +class CastActivityRecord; class CastSession; enum SupportedMediaCommand { @@ -49,7 +49,7 @@ // notifying an observer of updates on the session's media status. class CastMediaController : public mojom::MediaController { public: - CastMediaController(ActivityRecord* activity, + CastMediaController(CastActivityRecord* activity, mojo::PendingReceiver<mojom::MediaController> receiver, mojo::PendingRemote<mojom::MediaStatusObserver> observer); ~CastMediaController() override; @@ -77,7 +77,7 @@ void UpdateMediaStatus(const base::Value& message_value); const std::string sender_id_; - ActivityRecord* const activity_; + CastActivityRecord* const activity_; mojom::MediaStatus media_status_; std::string session_id_; int media_session_id_;
diff --git a/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc b/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc index 7162425..c8a8450 100644 --- a/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc +++ b/chrome/browser/media/router/providers/cast/cast_media_controller_unittest.cc
@@ -6,7 +6,7 @@ #include "base/json/json_reader.h" #include "chrome/browser/media/router/providers/cast/cast_activity_record.h" -#include "chrome/browser/media/router/providers/cast/mock_activity_record.h" +#include "chrome/browser/media/router/providers/cast/mock_cast_activity_record.h" #include "chrome/browser/media/router/test/media_router_mojo_test.h" #include "chrome/common/media_router/media_route.h" #include "content/public/test/browser_task_environment.h" @@ -177,7 +177,7 @@ protected: content::BrowserTaskEnvironment task_environment_; - MockActivityRecord activity_; + MockCastActivityRecord activity_; std::unique_ptr<CastMediaController> controller_; mojo::Remote<mojom::MediaController> mojo_controller_; std::unique_ptr<MockMediaStatusObserver> status_observer_;
diff --git a/chrome/browser/media/router/providers/cast/cast_session_client.cc b/chrome/browser/media/router/providers/cast/cast_session_client.cc index 13928476..7fbc3f5 100644 --- a/chrome/browser/media/router/providers/cast/cast_session_client.cc +++ b/chrome/browser/media/router/providers/cast/cast_session_client.cc
@@ -40,7 +40,7 @@ const url::Origin& origin, int tab_id, AutoJoinPolicy auto_join_policy, - ActivityRecord* activity) + CastActivityRecord* activity) : CastSessionClient(client_id, origin, tab_id), auto_join_policy_(auto_join_policy), activity_(activity) {}
diff --git a/chrome/browser/media/router/providers/cast/cast_session_client.h b/chrome/browser/media/router/providers/cast/cast_session_client.h index 4e73d59..9c30a03 100644 --- a/chrome/browser/media/router/providers/cast/cast_session_client.h +++ b/chrome/browser/media/router/providers/cast/cast_session_client.h
@@ -25,7 +25,7 @@ namespace media_router { -class ActivityRecord; +class CastActivityRecord; // Represents a Cast SDK client connection to a Cast session. This class // contains PresentationConnection Mojo pipes to send and receive messages @@ -117,7 +117,7 @@ const url::Origin& origin, int tab_id, AutoJoinPolicy auto_join_policy, - ActivityRecord* activity); + CastActivityRecord* activity); ~CastSessionClientImpl() override; // CastSessionClient implementation @@ -161,7 +161,7 @@ const AutoJoinPolicy auto_join_policy_; - ActivityRecord* const activity_; + CastActivityRecord* const activity_; // The maximum number of pending media requests, used to prevent memory leaks. // Normally the number of pending requests should be fairly small, but each
diff --git a/chrome/browser/media/router/providers/cast/cast_session_client_unittest.cc b/chrome/browser/media/router/providers/cast/cast_session_client_unittest.cc index dcbeb88..067a882 100644 --- a/chrome/browser/media/router/providers/cast/cast_session_client_unittest.cc +++ b/chrome/browser/media/router/providers/cast/cast_session_client_unittest.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/media/router/providers/cast/cast_session_client.h" -// #include <iostream> #include <memory> #include <tuple> #include <utility> @@ -18,7 +17,7 @@ #include "chrome/browser/media/router/data_decoder_util.h" #include "chrome/browser/media/router/providers/cast/cast_activity_manager.h" #include "chrome/browser/media/router/providers/cast/cast_internal_message_util.h" -#include "chrome/browser/media/router/providers/cast/mock_activity_record.h" +#include "chrome/browser/media/router/providers/cast/mock_cast_activity_record.h" #include "chrome/browser/media/router/providers/cast/test_util.h" #include "chrome/browser/media/router/providers/common/buffered_message_sender.h" #include "chrome/browser/media/router/test/mock_mojo_media_router.h" @@ -96,7 +95,7 @@ cast_channel::MockCastMessageHandler message_handler_{&socket_service_}; url::Origin origin_; MediaRoute route_; - MockActivityRecord activity_{route_, "theAppId"}; + MockCastActivityRecord activity_{route_, "theAppId"}; std::unique_ptr<CastSessionClientImpl> client_ = std::make_unique<CastSessionClientImpl>("theClientId", origin_,
diff --git a/chrome/browser/media/router/providers/cast/mirroring_activity_record.cc b/chrome/browser/media/router/providers/cast/mirroring_activity_record.cc index d9d13ae..10ff6dd 100644 --- a/chrome/browser/media/router/providers/cast/mirroring_activity_record.cc +++ b/chrome/browser/media/router/providers/cast/mirroring_activity_record.cc
@@ -67,8 +67,6 @@ int target_tab_id, const CastSinkExtraData& cast_data, mojom::MediaRouter* media_router, - MediaSinkServiceBase* media_sink_service, - CastActivityManagerBase* activity_manager, OnStopCallback callback) : ActivityRecord(route, app_id, message_handler, session_tracker), channel_id_(cast_data.cast_channel_id), @@ -76,8 +74,6 @@ // once the Presentation API 1UA mode is supported. mirroring_type_(target_tab_id == -1 ? MirroringType::kDesktop : MirroringType::kTab), - media_sink_service_(media_sink_service), - activity_manager_(activity_manager), on_stop_(std::move(callback)) { // TODO(jrw): Detect and report errors. @@ -156,81 +152,6 @@ route().media_route_id())); } -Result MirroringActivityRecord::SendAppMessageToReceiver( - const CastInternalMessage& cast_message) { - // This method is only called from CastSessionClient. - NOTREACHED(); - return Result::kOk; -} - -base::Optional<int> MirroringActivityRecord::SendMediaRequestToReceiver( - const CastInternalMessage& cast_message) { - // This method is only called from CastSessionClient. - NOTREACHED(); - return base::nullopt; -} - -void MirroringActivityRecord::SendSetVolumeRequestToReceiver( - const CastInternalMessage& cast_message, - cast_channel::ResultCallback callback) { - // This method is only called from CastSessionClient. - // - // Comment from tamumif: This method may become relevant when we are adding - // global media controls support, but the current plan is to not show - // mirroring sessions in global media controls, in which case we don't need - // this. I think the implementation is shared between CastActivityRecord and - // MirroringActivityRecord, so it could be put in the ActivityRecord base - // class if we wanted to. - NOTREACHED(); -} - -void MirroringActivityRecord::SendStopSessionMessageToReceiver( - const base::Optional<std::string>& client_id, - const std::string& hash_token, - MediaRouteProvider::TerminateRouteCallback callback) { - const std::string& sink_id = route_.media_sink_id(); - const MediaSinkInternal* sink = media_sink_service_->GetSinkById(sink_id); - DCHECK(sink); - DCHECK(session_id_); - message_handler_->StopSession( - sink->cast_data().cast_channel_id, *session_id_, client_id, - activity_manager_->MakeResultCallbackForRoute(route_.media_route_id(), - std::move(callback))); -} - -void MirroringActivityRecord::HandleLeaveSession(const std::string& client_id) { - // This method is only called from CastSessionClient. - NOTREACHED(); -} - -mojom::RoutePresentationConnectionPtr MirroringActivityRecord::AddClient( - const CastMediaSource& source, - const url::Origin& origin, - int tab_id) { - // This method seems to only be called on CastActivityRecord instances. - NOTREACHED(); - return nullptr; -} - -void MirroringActivityRecord::RemoveClient(const std::string& client_id) { - // This method is never called, and it should probably only ever be called on - // CastActivityRecord instances. - NOTREACHED(); -} - -void MirroringActivityRecord::SendMessageToClient( - const std::string& client_id, - PresentationConnectionMessagePtr message) {} - -void MirroringActivityRecord::SendMediaStatusToClients( - const base::Value& media_status, - base::Optional<int> request_id) {} - -void MirroringActivityRecord::ClosePresentationConnections( - blink::mojom::PresentationConnectionCloseReason close_reason) {} - -void MirroringActivityRecord::TerminatePresentationConnections() {} - void MirroringActivityRecord::OnAppMessage( const cast::channel::CastMessage& message) { if (message.namespace_() != mirroring::mojom::kWebRtcNamespace &&
diff --git a/chrome/browser/media/router/providers/cast/mirroring_activity_record.h b/chrome/browser/media/router/providers/cast/mirroring_activity_record.h index 56f2db0..16db7455 100644 --- a/chrome/browser/media/router/providers/cast/mirroring_activity_record.h +++ b/chrome/browser/media/router/providers/cast/mirroring_activity_record.h
@@ -26,7 +26,6 @@ namespace media_router { struct CastSinkExtraData; -class CastActivityManagerBase; class MirroringActivityRecord : public ActivityRecord, public mirroring::mojom::SessionObserver, @@ -41,8 +40,6 @@ int target_tab_id, const CastSinkExtraData& cast_data, mojom::MediaRouter* media_router, - MediaSinkServiceBase* media_sink_service, - CastActivityManagerBase* activity_manager, OnStopCallback callback); ~MirroringActivityRecord() override; @@ -55,30 +52,6 @@ void Send(mirroring::mojom::CastMessagePtr message) override; // ActivityRecord implementation - cast_channel::Result SendAppMessageToReceiver( - const CastInternalMessage& cast_message) override; - base::Optional<int> SendMediaRequestToReceiver( - const CastInternalMessage& cast_message) override; - void SendSetVolumeRequestToReceiver( - const CastInternalMessage& cast_message, - cast_channel::ResultCallback callback) override; - void SendStopSessionMessageToReceiver( - const base::Optional<std::string>& client_id, - const std::string& hash_token, - mojom::MediaRouteProvider::TerminateRouteCallback callback) override; - void HandleLeaveSession(const std::string& client_id) override; - mojom::RoutePresentationConnectionPtr AddClient(const CastMediaSource& source, - const url::Origin& origin, - int tab_id) override; - void RemoveClient(const std::string& client_id) override; - void SendMessageToClient( - const std::string& client_id, - blink::mojom::PresentationConnectionMessagePtr message) override; - void SendMediaStatusToClients(const base::Value& media_status, - base::Optional<int> request_id) override; - void ClosePresentationConnections( - blink::mojom::PresentationConnectionCloseReason close_reason) override; - void TerminatePresentationConnections() override; void OnAppMessage(const cast::channel::CastMessage& message) override; void OnInternalMessage(const cast_channel::InternalMessage& message) override; @@ -113,8 +86,6 @@ const int channel_id_; const MirroringType mirroring_type_; - MediaSinkServiceBase* const media_sink_service_; - CastActivityManagerBase* const activity_manager_; OnStopCallback on_stop_; base::WeakPtrFactory<MirroringActivityRecord> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/media/router/providers/cast/mock_activity_record.cc b/chrome/browser/media/router/providers/cast/mock_activity_record.cc deleted file mode 100644 index 2d246940..0000000 --- a/chrome/browser/media/router/providers/cast/mock_activity_record.cc +++ /dev/null
@@ -1,15 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/media/router/providers/cast/mock_activity_record.h" - -namespace media_router { - -MockActivityRecord::MockActivityRecord(const MediaRoute& route, - const std::string& app_id) - : ActivityRecord(route, app_id, nullptr, nullptr) {} - -MockActivityRecord::~MockActivityRecord() = default; - -} // namespace media_router
diff --git a/chrome/browser/media/router/providers/cast/mock_cast_activity_record.cc b/chrome/browser/media/router/providers/cast/mock_cast_activity_record.cc new file mode 100644 index 0000000..4022fd2 --- /dev/null +++ b/chrome/browser/media/router/providers/cast/mock_cast_activity_record.cc
@@ -0,0 +1,15 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/media/router/providers/cast/mock_cast_activity_record.h" + +namespace media_router { + +MockCastActivityRecord::MockCastActivityRecord(const MediaRoute& route, + const std::string& app_id) + : CastActivityRecord(route, app_id, nullptr, nullptr) {} + +MockCastActivityRecord::~MockCastActivityRecord() = default; + +} // namespace media_router
diff --git a/chrome/browser/media/router/providers/cast/mock_activity_record.h b/chrome/browser/media/router/providers/cast/mock_cast_activity_record.h similarity index 78% rename from chrome/browser/media/router/providers/cast/mock_activity_record.h rename to chrome/browser/media/router/providers/cast/mock_cast_activity_record.h index ca5e15a3..7d94dc08 100644 --- a/chrome/browser/media/router/providers/cast/mock_activity_record.h +++ b/chrome/browser/media/router/providers/cast/mock_cast_activity_record.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_ACTIVITY_RECORD_H_ -#define CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_ACTIVITY_RECORD_H_ +#ifndef CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_CAST_ACTIVITY_RECORD_H_ +#define CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_CAST_ACTIVITY_RECORD_H_ #include <string> @@ -16,10 +16,10 @@ namespace media_router { -class MockActivityRecord : public ActivityRecord { +class MockCastActivityRecord : public CastActivityRecord { public: - MockActivityRecord(const MediaRoute& route, const std::string& app_id); - ~MockActivityRecord() override; + MockCastActivityRecord(const MediaRoute& route, const std::string& app_id); + ~MockCastActivityRecord() override; void set_session_id(const std::string& new_id) { if (!session_id_) @@ -27,10 +27,6 @@ ASSERT_EQ(session_id_, new_id); } - void AddFakeClient(const std::string& client_id) { - connected_clients_[client_id] = nullptr; - } - MOCK_METHOD1(SendAppMessageToReceiver, cast_channel::Result(const CastInternalMessage& cast_message)); MOCK_METHOD1(SendMediaRequestToReceiver, @@ -38,11 +34,8 @@ MOCK_METHOD2(SendSetVolumeRequestToReceiver, void(const CastInternalMessage& cast_message, cast_channel::ResultCallback callback)); - MOCK_METHOD3( - SendStopSessionMessageToReceiver, - void(const base::Optional<std::string>& client_id, - const std::string& hash_token, - mojom::MediaRouteProvider::TerminateRouteCallback callback)); + MOCK_METHOD1(SendStopSessionMessageToClients, + void(const std::string& hash_token)); MOCK_METHOD1(HandleLeaveSession, void(const std::string& client_id)); MOCK_METHOD3( AddClient, @@ -75,4 +68,4 @@ } // namespace media_router -#endif // CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_ACTIVITY_RECORD_H_ +#endif // CHROME_BROWSER_MEDIA_ROUTER_PROVIDERS_CAST_MOCK_CAST_ACTIVITY_RECORD_H_
diff --git a/chrome/browser/notifications/notification_platform_bridge_linux.cc b/chrome/browser/notifications/notification_platform_bridge_linux.cc index a1f91173..735fff5 100644 --- a/chrome/browser/notifications/notification_platform_bridge_linux.cc +++ b/chrome/browser/notifications/notification_platform_bridge_linux.cc
@@ -302,7 +302,7 @@ void Init() { product_logo_png_bytes_ = gfx::Image(*ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( - IDR_PRODUCT_LOGO_256)) + IDR_PRODUCT_LOGO_64)) .As1xPNGBytes(); task_runner_->PostTask( FROM_HERE,
diff --git a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.cc index 46b67b6..7b75886 100644 --- a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.cc
@@ -50,10 +50,6 @@ committed_host_ = navigation_handle->GetWebContents() ->GetLastCommittedURL() .HostNoBrackets(); - committed_origin_ = navigation_handle->GetWebContents() - ->GetLastCommittedURL() - .GetOrigin() - .spec(); return CONTINUE_OBSERVING; } @@ -69,7 +65,6 @@ if (data_reduction_proxy_settings && data_reduction_proxy_settings->data_reduction_proxy_service()) { DCHECK(!committed_host_.empty()); - DCHECK(!committed_origin_.empty()); int64_t received_data_length = 0; int64_t data_reduction_proxy_bytes_saved = 0; for (auto const& resource : resources) { @@ -88,14 +83,6 @@ (resource->data_reduction_proxy_compression_ratio_estimate - 1.0); } } - double origin_save_data_savings = - data_reduction_proxy_settings->data_reduction_proxy_service() - ->GetSaveDataSavingsPercentEstimate(committed_origin_); - if (origin_save_data_savings) { - data_reduction_proxy_bytes_saved += - received_data_length * origin_save_data_savings / 100; - } - data_reduction_proxy_settings->data_reduction_proxy_service() ->UpdateDataUseForHost( received_data_length,
diff --git a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.h b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.h index d675d84..b64c61c 100644 --- a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer.h
@@ -42,7 +42,6 @@ const std::string& mime_type) const override; std::string committed_host_; - std::string committed_origin_; // The browser context this navigation is operating in. content::BrowserContext* browser_context_ = nullptr;
diff --git a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc index 5fbbc50..2bb66d6 100644 --- a/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/data_saver_site_breakdown_metrics_observer_browsertest.cc
@@ -63,6 +63,18 @@ // Browser tests with Lite mode not enabled. class DataSaverSiteBreakdownMetricsObserverBrowserTestBase : public InProcessBrowserTest { + void SetUp() override { + scoped_feature_list_.InitWithFeaturesAndParameters( + {{features::kLazyImageLoading, + {{"automatic-lazy-load-images-enabled", "true"}, + {"enable-lazy-load-images-metadata-fetch", "true"}, + {"lazy_image_first_k_fully_load", "4G:0"}}}, + {features::kLazyFrameLoading, + {{"automatic-lazy-load-frames-enabled", "true"}}}}, + {}); + InProcessBrowserTest::SetUp(); + } + protected: // Gets the data usage recorded against the host the embedded server runs on. uint64_t GetDataUsage(const std::string& host) { @@ -102,6 +114,9 @@ ->PostTask(FROM_HERE, run_loop.QuitClosure()); run_loop.Run(); } + + private: + base::test::ScopedFeatureList scoped_feature_list_; }; // Browser tests with Lite mode enabled. @@ -122,39 +137,14 @@ data_reduction_proxy::switches::kEnableDataReductionProxy); command_line->AppendSwitch(previews::switches::kIgnorePreviewsBlacklist); } -}; -class LazyLoadWithoutLiteModeBrowserTest - : public DataSaverSiteBreakdownMetricsObserverBrowserTestBase { - void SetUp() override { - scoped_feature_list_.InitWithFeaturesAndParameters( - {{features::kLazyImageLoading, - {{"automatic-lazy-load-images-enabled", "true"}, - {"enable-lazy-load-images-metadata-fetch", "true"}, - {"lazy_image_first_k_fully_load", "4G:0"}}}, - {features::kLazyFrameLoading, - {{"automatic-lazy-load-frames-enabled", "true"}}}}, - {}); - DataSaverSiteBreakdownMetricsObserverBrowserTestBase::SetUp(); - } - - private: - base::test::ScopedFeatureList scoped_feature_list_; -}; - -class LazyLoadBrowserTest - : public DataSaverSiteBreakdownMetricsObserverBrowserTest { - public: - void SetUp() override { - scoped_feature_list_.InitWithFeaturesAndParameters( - {{features::kLazyImageLoading, - {{"automatic-lazy-load-images-enabled", "true"}, - {"enable-lazy-load-images-metadata-fetch", "true"}, - {"lazy_image_first_k_fully_load", "4G:0"}}}, - {features::kLazyFrameLoading, - {{"automatic-lazy-load-frames-enabled", "true"}}}}, - {}); - DataSaverSiteBreakdownMetricsObserverBrowserTest::SetUp(); + void ScrollToAndWaitForScroll(unsigned int scroll_offset) { + ASSERT_TRUE(content::ExecuteScript( + browser()->tab_strip_model()->GetActiveWebContents(), + base::StringPrintf("window.scrollTo(0, %d);", scroll_offset))); + content::RenderFrameSubmissionObserver observer( + browser()->tab_strip_model()->GetActiveWebContents()); + observer.WaitForScrollOffset(gfx::Vector2dF(0, scroll_offset)); } // Navigates to |url| waiting until |expected_resources| are received and then @@ -221,126 +211,8 @@ return GetDataSavings(test_url.HostNoBrackets()) - data_savings_before_navigation; } - - private: - void ScrollToAndWaitForScroll(unsigned int scroll_offset) { - ASSERT_TRUE(content::ExecuteScript( - browser()->tab_strip_model()->GetActiveWebContents(), - base::StringPrintf("window.scrollTo(0, %d);", scroll_offset))); - content::RenderFrameSubmissionObserver observer( - browser()->tab_strip_model()->GetActiveWebContents()); - observer.WaitForScrollOffset(gfx::Vector2dF(0, scroll_offset)); - } - - base::test::ScopedFeatureList scoped_feature_list_; }; -struct SaveDataSavingsEstimate { - std::string host; - std::string data_savings_percent; -}; - -struct SaveDataSingleTestCase { - std::string test_host; - double expected_savings_percent; -}; - -std::string ConvertSaveDataSavingsEstimateToJson( - std::vector<SaveDataSavingsEstimate> estimates, - const net::EmbeddedTestServer& embedded_test_server) { - std::string origin_savings_estimate_json; - for (const auto& estimate : estimates) { - base::StringAppendF(&origin_savings_estimate_json, "\"%s\": %s,", - embedded_test_server.GetURL(estimate.host, "/") - .GetOrigin() - .spec() - .c_str(), - estimate.data_savings_percent.c_str()); - } - origin_savings_estimate_json.pop_back(); - return "{" + origin_savings_estimate_json + "}"; -} - -struct SaveDataTestCase { - // One of the origin_savings_estimate fields will be populated. - std::string origin_savings_estimate_raw_json; - std::vector<SaveDataSavingsEstimate> origin_savings_estimate_list; - - std::vector<SaveDataSingleTestCase> tests; -} kSaveDataTestCases[] = { - // No savings recorded without field trial config. - {"", {}, {{"foo.com", 0.0}}}, - - // No savings recorded with invalid field trial parameter. - {"invalid json", {}, {{"foo.com", 0.0}}}, - - {"", - {{"saving.com", "10"}}, - {{{"saving.com", 10.0}, {"notsaving.com", 0.0}}}}, - - {"", - {{"saving.com", "20"}, {"savingfloatingpoint.edu", "15.7"}}, - {{{"saving.com", 20.0}, - {"savingfloatingpoint.edu", 15.7}, - {"notsaving.com", 0.0}}}} - -}; - -// Browser tests with Lite mode not enabled. -class SaveDataSavingsEstimateBrowserTest - : public DataSaverSiteBreakdownMetricsObserverBrowserTest, - public ::testing::WithParamInterface<SaveDataTestCase> { - public: - void SetUp() override { - ASSERT_TRUE(embedded_test_server()->Start()); - const std::string estimates_json = - !GetParam().origin_savings_estimate_raw_json.empty() - ? GetParam().origin_savings_estimate_raw_json - : (!GetParam().origin_savings_estimate_list.empty() - ? ConvertSaveDataSavingsEstimateToJson( - GetParam().origin_savings_estimate_list, - *embedded_test_server()) - : ""); - if (!estimates_json.empty()) { - scoped_feature_list_.InitWithFeaturesAndParameters( - {{data_reduction_proxy::features::kReportSaveDataSavings, - {{"origin_savings_estimate", estimates_json}}}}, - {}); - } - DataSaverSiteBreakdownMetricsObserverBrowserTest::SetUp(); - } - - private: - base::test::ScopedFeatureList scoped_feature_list_; -}; - -INSTANTIATE_TEST_SUITE_P(SaveDataSavingsEstimateBrowserTest, - SaveDataSavingsEstimateBrowserTest, - ::testing::ValuesIn(kSaveDataTestCases)); - -IN_PROC_BROWSER_TEST_P(SaveDataSavingsEstimateBrowserTest, - NavigateToSimplePage) { - WaitForDBToInitialize(); - - for (const auto& test : GetParam().tests) { - GURL test_url( - embedded_test_server()->GetURL(test.test_host, "/google/google.html")); - std::string host = test_url.HostNoBrackets(); - uint64_t data_usage_before_navigation = GetDataUsage(host); - uint64_t data_savings_before_navigation = GetDataSavings(host); - ui_test_utils::NavigateToURL(browser(), test_url); - - base::RunLoop().RunUntilIdle(); - // Navigate away to force the histogram recording. - ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); - - double data_savings_percent = - 100.0 * (GetDataSavings(host) - data_savings_before_navigation) / - (GetDataUsage(host) - data_usage_before_navigation); - EXPECT_NEAR(data_savings_percent, test.expected_savings_percent, 0.01); - } -} - IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, NavigateToSimplePage) { const struct { @@ -406,14 +278,15 @@ data_usage_before_navigation); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, LazyLoadImagesCSSBackgroundImage) { +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, + LazyLoadImagesCSSBackgroundImage) { // 2 deferred images. EXPECT_EQ(10000 * 2, NavigateAndGetDataSavings("/lazyload/css-background-image.html", 2 /* main html, favicon */)); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, LazyLoadImagesCSSBackgroundImageScrollRemovesSavings) { // Scrolling should remove the savings. EXPECT_EQ(0u, NavigateAndGetDataSavingsAfterScroll( @@ -421,7 +294,8 @@ 2 /* lazyloaded images */)); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, LazyLoadImagesImgElement) { +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, + LazyLoadImagesImgElement) { // Choose reasonable minimum, any savings is indicative of the mechanism // working. EXPECT_LE( @@ -431,7 +305,7 @@ 10 /* main html, favicon, 8 images (2 eager, 4 placeholder, 2 full)*/)); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, LazyLoadImagesImgElementScrollRemovesSavings) { // Choose reasonable minimum, any savings is indicative of the mechanism // working. @@ -440,14 +314,15 @@ 2 /* lazyloaded image */)); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, LazyLoadImagesImgWithDimension) { +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, + LazyLoadImagesImgWithDimension) { // 1 deferred image. EXPECT_EQ(10000, NavigateAndGetDataSavings("/lazyload/img-with-dimension.html", 3 /* main html, favicon, full image */)); } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, LazyLoadImagesImgWithDimensionScrollRemovesSavings) { // Scrolling should remove the savings. EXPECT_EQ(0u, NavigateAndGetDataSavingsAfterScroll( @@ -455,7 +330,7 @@ 1 /* lazyloaded image */)); } -IN_PROC_BROWSER_TEST_F(LazyLoadWithoutLiteModeBrowserTest, +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTestBase, NoSavingsRecordedWithoutLiteMode) { std::vector<std::string> test_urls = { "/google/google.html", @@ -479,7 +354,8 @@ } } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, LazyLoadImageDisabledInReload) { +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, + LazyLoadImageDisabledInReload) { ASSERT_TRUE(embedded_test_server()->Start()); WaitForDBToInitialize(); GURL test_url( @@ -520,7 +396,7 @@ } } -IN_PROC_BROWSER_TEST_F(LazyLoadBrowserTest, +IN_PROC_BROWSER_TEST_F(DataSaverSiteBreakdownMetricsObserverBrowserTest, DISABLED_LazyLoadFrameDisabledInReload) { net::EmbeddedTestServer cross_origin_server; cross_origin_server.ServeFilesFromSourceDirectory(GetChromeTestDataDir());
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java index 23f28e9..cc7e607 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -540,6 +540,7 @@ "PhysicalWeb.TotalUrls.OnRefresh", "PhysicalWeb.UrlSelected", "PrefMigrationVersion", + "ServiceManagerFeatures", "allow_low_end_device_ui", "allow_starting_service_manager_only", "bookmark_search_history",
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_af.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_af.xtb index 204cd42..3eafd921 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_af.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_af.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Spelfout</translation> <translation id="6871161210040114857">Ignoreer tans kas.</translation> <translation id="6877435256196695200">Geen volgende grafika nie.</translation> +<translation id="688976158310523235">Soekkieslys</translation> <translation id="6897341342232909480">Beweeg links</translation> <translation id="6901540140423170855">datum</translation> <translation id="6910211073230771657">Uitgevee</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+opspringer</translation> <translation id="9066023754636984703">Druk Search+A, J om na besonderhede te spring.</translation> <translation id="9067522039955793016">Bladsybreuk</translation> +<translation id="9074824103975499138">Deursoek ChromeVox-kieslyste</translation> <translation id="9077213568694924680">is uit seleksie verwyder</translation> <translation id="9077305471618729969">Ligte seegroen</translation> <translation id="9082874451376019682">Geen vorige glyer nie.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_am.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_am.xtb index 3b1c94f4..77b989f0 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_am.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_am.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">የተሳሰተ ጽሑፍ</translation> <translation id="6871161210040114857">የሆሄ አቢይ/ንዑስ ችላ በማለት ላይ።</translation> <translation id="6877435256196695200">ምንም ቀጣይ ስዕላዊ የለም።</translation> +<translation id="688976158310523235">የፍለጋ ምናሌ</translation> <translation id="6897341342232909480">ወደ ግራ ያንቀሳቅሱ</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">ተሰርዟል</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">ወደ ዝርዝሮች ለመዝለል Search+A፣ J ይጫኑ።</translation> <translation id="9067522039955793016">ገጽ ከፋይ</translation> +<translation id="9074824103975499138">የChromeVox ምናሌዎችን ፈልግ</translation> <translation id="9077213568694924680">ከምርጫ ተወግዷል</translation> <translation id="9077305471618729969">ፈዛዛ የባሕር አረንጓዴ</translation> <translation id="9082874451376019682">ምንም ቀዳሚ ተንሸራታች የለም።</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bg.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bg.xtb index 17e54c6..5a36be01 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bg.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bg.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Правописна грешка</translation> <translation id="6871161210040114857">Регистърът на буквите се пренебрегва.</translation> <translation id="6877435256196695200">Няма следваща графика.</translation> +<translation id="688976158310523235">Меню за търсене</translation> <translation id="6897341342232909480">Преместване наляво</translation> <translation id="6901540140423170855">дата</translation> <translation id="6910211073230771657">Изтрито</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+изскачащ прозорец</translation> <translation id="9066023754636984703">Натиснете клавиша „търсене“ + A, използвайте J, за да видите подробностите.</translation> <translation id="9067522039955793016">Разделител на страници</translation> +<translation id="9074824103975499138">Търсене в менютата на ChromeVox</translation> <translation id="9077213568694924680">премахнати от открояването</translation> <translation id="9077305471618729969">светло морскозелено</translation> <translation id="9082874451376019682">Няма предишен плъзгач.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bs.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bs.xtb index 2e38e6fe..14bf0f4 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bs.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_bs.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Pogrešno napisano</translation> <translation id="6871161210040114857">Ignoriranje velikih i malih slova.</translation> <translation id="6877435256196695200">Nema sljedeće grafike.</translation> +<translation id="688976158310523235">Meni za pretraživanje</translation> <translation id="6897341342232909480">Pomakni lijevo</translation> <translation id="6901540140423170855">datum</translation> <translation id="6910211073230771657">Izbrisano</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+ skočni prozor</translation> <translation id="9066023754636984703">Pritisnite dugme za pretraživanje i A, J da pređete na detalje.</translation> <translation id="9067522039955793016">Prijelom stranice</translation> +<translation id="9074824103975499138">Pretražite menije ChromeVoxa</translation> <translation id="9077213568694924680">uklonjeno iz odabira</translation> <translation id="9077305471618729969">Svijetla morska zelena</translation> <translation id="9082874451376019682">Nema prethodnog klizača.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ca.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ca.xtb index ff5873f..2e896c2a8 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ca.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ca.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Conté errors ortogràfics</translation> <translation id="6871161210040114857">No es distingeix entre majúscula i minúscula.</translation> <translation id="6877435256196695200">No hi ha cap gràfic més.</translation> +<translation id="688976158310523235">Menú de cerca</translation> <translation id="6897341342232909480">Desplaça a l'esquerra</translation> <translation id="6901540140423170855">data</translation> <translation id="6910211073230771657">Suprimit</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+element emergent</translation> <translation id="9066023754636984703">Prem Cerca+A i després J per anar als detalls.</translation> <translation id="9067522039955793016">Salt de pàgina</translation> +<translation id="9074824103975499138">Cerca als menús de ChromeVox</translation> <translation id="9077213568694924680">s'ha suprimit de la selecció.</translation> <translation id="9077305471618729969">Verd marí clar</translation> <translation id="9082874451376019682">No hi ha cap control lliscant anterior.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_de.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_de.xtb index 9ab38c5e..cef6ade6 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_de.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_de.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Rechtschreibfehler</translation> <translation id="6871161210040114857">Groß- und Kleinschreibung wird nicht beachtet.</translation> <translation id="6877435256196695200">Keine nächste Grafik</translation> +<translation id="688976158310523235">Suchmenü</translation> <translation id="6897341342232909480">Nach links</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">Gelöscht</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+ Pop-up-Fenster</translation> <translation id="9066023754636984703">Drücken Sie die Suchtaste + A und J, um Details aufzurufen.</translation> <translation id="9067522039955793016">Seitenumbruch</translation> +<translation id="9074824103975499138">In ChromeVox-Menüs suchen</translation> <translation id="9077213568694924680">aus der Auswahl entfernt</translation> <translation id="9077305471618729969">Helles Seegrün</translation> <translation id="9082874451376019682">Kein vorheriger Schieberegler</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_el.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_el.xtb index e097d94b..ca9c686 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_el.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_el.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Σφάλμα ορθογραφίας</translation> <translation id="6871161210040114857">Παράβλεψη διάκρισης πεζών-κεφαλαίων.</translation> <translation id="6877435256196695200">Δεν υπάρχει επόμενο γραφικό.</translation> +<translation id="688976158310523235">Μενού αναζήτησης</translation> <translation id="6897341342232909480">Μετακίνηση αριστερά</translation> <translation id="6901540140423170855">ημερομηνία</translation> <translation id="6910211073230771657">Διαγράφηκε</translation> @@ -1209,6 +1210,7 @@ <translation id="9065283790526219006">+αναδυόμενα παράθυρα</translation> <translation id="9066023754636984703">Πατήστε Αναζήτηση+A, J για να μεταβείτε στις λεπτομέρειες.</translation> <translation id="9067522039955793016">Αλλαγή σελίδας</translation> +<translation id="9074824103975499138">Αναζήτηση μενού ChromeVox</translation> <translation id="9077213568694924680">καταργήθηκε από την επιλογή</translation> <translation id="9077305471618729969">Ανοιχτό γαλαζοπράσινο</translation> <translation id="9082874451376019682">Δεν υπάρχει προηγούμενο ρυθμιστικό.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_en-GB.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_en-GB.xtb index 577b0753..7671158 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_en-GB.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_en-GB.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Misspelled</translation> <translation id="6871161210040114857">Ignoring case.</translation> <translation id="6877435256196695200">No next graphic.</translation> +<translation id="688976158310523235">Search menu</translation> <translation id="6897341342232909480">Move left</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">Deleted</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+pop-up</translation> <translation id="9066023754636984703">Press Search+A, J to jump to details.</translation> <translation id="9067522039955793016">Page break</translation> +<translation id="9074824103975499138">Search ChromeVox menus</translation> <translation id="9077213568694924680">removed from selection</translation> <translation id="9077305471618729969">Light Sea Green</translation> <translation id="9082874451376019682">No previous slider.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_es.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_es.xtb index 3e3629e8..083e4f4 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_es.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_es.xtb
@@ -453,7 +453,7 @@ <translation id="4158704014418536539">Se distingue entre mayúsculas y minúsculas.</translation> <translation id="4159784952369912983">Morado</translation> <translation id="4161104397932142764">{COUNT,plural, =1{segundo}other{segundos}}</translation> -<translation id="4161663686871496107">Ya puedes usar la síntesis de voz de ChromeVox</translation> +<translation id="4161663686871496107">Ya puedes usar los mensajes de voz de ChromeVox</translation> <translation id="4173994908659439270">No hay ningún campo de texto editable posterior.</translation> <translation id="4176463684765177261">Inhabilitado</translation> <translation id="4187322598335821254">Desliza el dedo hacia arriba o hacia abajo para desplazarte de una línea a otra</translation> @@ -843,6 +843,7 @@ <translation id="6865519907510167493">Error ortográfico</translation> <translation id="6871161210040114857">No se distingue entre mayúsculas y minúsculas.</translation> <translation id="6877435256196695200">No hay ningún gráfico posterior.</translation> +<translation id="688976158310523235">Menú de búsqueda</translation> <translation id="6897341342232909480">Se desplaza a la izquierda</translation> <translation id="6901540140423170855">fecha</translation> <translation id="6910211073230771657">Eliminado</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">más componente emergente</translation> <translation id="9066023754636984703">Pulsa la tecla de búsqueda + A, J para desplazarte a los detalles.</translation> <translation id="9067522039955793016">Salto de página</translation> +<translation id="9074824103975499138">Buscar en menús de ChromeVox</translation> <translation id="9077213568694924680">eliminado de la selección</translation> <translation id="9077305471618729969">Verde mar claro</translation> <translation id="9082874451376019682">No hay ningún control deslizante anterior.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_et.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_et.xtb index 9205fb1..e1b5af5f 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_et.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_et.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Kirjaviga</translation> <translation id="6871161210040114857">Tähe suurust eiratakse.</translation> <translation id="6877435256196695200">Järgmist graafikat ei ole.</translation> +<translation id="688976158310523235">Otsingumenüü</translation> <translation id="6897341342232909480">Teisalda vasakule</translation> <translation id="6901540140423170855">kuupäev</translation> <translation id="6910211073230771657">Kustutatud</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+hüpik</translation> <translation id="9066023754636984703">Üksikasjade juurde liikumiseks vajutage otsinguklahvi + klahvi A ja seejärel klahvi J.</translation> <translation id="9067522039955793016">Leheküljepiir</translation> +<translation id="9074824103975499138">Otsige ChromeVoxi menüüdest</translation> <translation id="9077213568694924680">eemaldatakse valikust</translation> <translation id="9077305471618729969">Hele mereroheline</translation> <translation id="9082874451376019682">Eelmist liugurit ei ole.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_fi.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_fi.xtb index 0a14a0b3..2ad5482 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_fi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_fi.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Kirjoitusvirhe</translation> <translation id="6871161210040114857">Ohitetaan kirjainkoko.</translation> <translation id="6877435256196695200">Ei seuraavia kuvia.</translation> +<translation id="688976158310523235">Hakuvalikko</translation> <translation id="6897341342232909480">Siirrä vasemmalle</translation> <translation id="6901540140423170855">pvm</translation> <translation id="6910211073230771657">Poistettu</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+ponnahdus</translation> <translation id="9066023754636984703">Siirry lisätietoihin painamalla haku + A, J.</translation> <translation id="9067522039955793016">Sivunvaihto</translation> +<translation id="9074824103975499138">Hae ChromeVox-valikoista</translation> <translation id="9077213568694924680">poistettu valinnasta</translation> <translation id="9077305471618729969">Vaalea merenvihreä</translation> <translation id="9082874451376019682">Ei edellisiä liukusäätimiä.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_gl.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_gl.xtb index e8c92d6..9be68f9 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_gl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_gl.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Palabra con erros de ortografía</translation> <translation id="6871161210040114857">Sen distinción entre maiúsculas e minúsculas.</translation> <translation id="6877435256196695200">Non hai ningún gráfico máis.</translation> +<translation id="688976158310523235">Menú de busca</translation> <translation id="6897341342232909480">Mover cara á esquerda</translation> <translation id="6901540140423170855">data</translation> <translation id="6910211073230771657">Eliminado</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">máis compoñente emerxente</translation> <translation id="9066023754636984703">Preme a tecla de busca + A, J para ir aos detalles.</translation> <translation id="9067522039955793016">Salto de páxina</translation> +<translation id="9074824103975499138">Realiza buscas nos menús de ChromeVox</translation> <translation id="9077213568694924680">eliminado da selección</translation> <translation id="9077305471618729969">Verde mariño claro</translation> <translation id="9082874451376019682">Ningún control desprazable anterior.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hr.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hr.xtb index c6f65c04..b3c06d88 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hr.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Pravopisna pogreška</translation> <translation id="6871161210040114857">Zanemarivanje velikih i malih slova.</translation> <translation id="6877435256196695200">Nema sljedeće slike.</translation> +<translation id="688976158310523235">Izbornik pretraživanja</translation> <translation id="6897341342232909480">Pomakni lijevo</translation> <translation id="6901540140423170855">datum</translation> <translation id="6910211073230771657">Izbrisano</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+ skočni prozor</translation> <translation id="9066023754636984703">Pritisnite Search + A, J da biste preskočili na pojedinosti.</translation> <translation id="9067522039955793016">Prijelom stranice</translation> +<translation id="9074824103975499138">Pretraživanje izbornika ChromeVoxa</translation> <translation id="9077213568694924680">uklonjeno iz odabira</translation> <translation id="9077305471618729969">Svijetla morskozelena</translation> <translation id="9082874451376019682">Nema prethodnog klizača.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hu.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hu.xtb index 865e8b3..a151e78 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_hu.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Elgépelés</translation> <translation id="6871161210040114857">A kis- és nagybetűk nem különbözők.</translation> <translation id="6877435256196695200">Nincs következő ábra.</translation> +<translation id="688976158310523235">Keresés menü</translation> <translation id="6897341342232909480">Mozgatás balra</translation> <translation id="6901540140423170855">dátum</translation> <translation id="6910211073230771657">Törölve</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+előugr</translation> <translation id="9066023754636984703">A Keresés+A, J billentyűkombinációkkal a részletekhez ugorhat.</translation> <translation id="9067522039955793016">Oldaltörés</translation> +<translation id="9074824103975499138">Keresés a ChromeVox-menükben</translation> <translation id="9077213568694924680">eltávolítva a kiválasztottak közül</translation> <translation id="9077305471618729969">Világos tengerzöld</translation> <translation id="9082874451376019682">Nincs előző dia.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_is.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_is.xtb index dc3d951..a439799 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_is.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_is.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Stafsetningarvilla</translation> <translation id="6871161210040114857">Hunsar há- og lágstafi.</translation> <translation id="6877435256196695200">Engin næsta mynd.</translation> +<translation id="688976158310523235">Leitarvalmynd</translation> <translation id="6897341342232909480">Færa til vinstri</translation> <translation id="6901540140423170855">dagsetning</translation> <translation id="6910211073230771657">Eytt</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+sprettigluggi</translation> <translation id="9066023754636984703">Ýttu á Leita + A, J til að hoppa í smáatriði.</translation> <translation id="9067522039955793016">Síðuskil</translation> +<translation id="9074824103975499138">Leita í ChromeVox valmyndum</translation> <translation id="9077213568694924680">fjarlægt úr vali</translation> <translation id="9077305471618729969">Ljóssægrænn</translation> <translation id="9082874451376019682">Engin fyrri sleði.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_it.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_it.xtb index 2869b01..ccb470cc 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_it.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_it.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Errore ortografico</translation> <translation id="6871161210040114857">Le maiuscole/minuscole vengono ignorate.</translation> <translation id="6877435256196695200">Nessuna immagine successiva.</translation> +<translation id="688976158310523235">Menu di ricerca</translation> <translation id="6897341342232909480">Sposta a sinistra</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">Eliminato</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">Premi tasto per la ricerca + A, J per passare ai dettagli.</translation> <translation id="9067522039955793016">Interruzione di pagina</translation> +<translation id="9074824103975499138">Cerca nei menu ChromeVox</translation> <translation id="9077213568694924680">rimossi dalla selezione</translation> <translation id="9077305471618729969">Verde mare chiaro</translation> <translation id="9082874451376019682">Nessun dispositivo di scorrimento precedente.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_iw.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_iw.xtb index b7c8af0f..711f3b33 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_iw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_iw.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">שגיאת איות</translation> <translation id="6871161210040114857">ללא תלות ברישיות.</translation> <translation id="6877435256196695200">אין עוד פריט גרפיקה.</translation> +<translation id="688976158310523235">תפריט החיפוש</translation> <translation id="6897341342232909480">העבר שמאלה</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">נמחק</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">כדי לעבור אל הפרטים צריך להקיש על מקש החיפוש, A ו-J.</translation> <translation id="9067522039955793016">מעבר דף</translation> +<translation id="9074824103975499138">חיפוש בתפריטים של ChromeVox</translation> <translation id="9077213568694924680">הוסר מהבחירה</translation> <translation id="9077305471618729969">ירוק ים בהיר</translation> <translation id="9082874451376019682">אין מחוון קודם.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ka.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ka.xtb index f679052..c5c5899 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ka.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ka.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">მართლწერის შეცდომა</translation> <translation id="6871161210040114857">რეესტრი იგნორირებულია.</translation> <translation id="6877435256196695200">შემდეგი გრაფიკა არ არის.</translation> +<translation id="688976158310523235">მენიუში ძიება</translation> <translation id="6897341342232909480">გადაადგილდით მარცხნივ</translation> <translation id="6901540140423170855">თარიღი</translation> <translation id="6910211073230771657">წაშლილი</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+კონტექტური ფანჯარა</translation> <translation id="9066023754636984703">დეტალებზე გადასასვლელად გამოიყენეთ კლავიშთა კომბინაცია: Search+A, J.</translation> <translation id="9067522039955793016">გვერდის წყვეტა</translation> +<translation id="9074824103975499138">ChromeVox მენიუებში ძიება</translation> <translation id="9077213568694924680">ამოღებულია შერჩევიდან</translation> <translation id="9077305471618729969">ღია ზღვისფერი მწვანე</translation> <translation id="9082874451376019682">წინა ცოცია არ არის.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_lt.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_lt.xtb index d3abec7..0d3e439b 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_lt.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_lt.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Rašybos klaida</translation> <translation id="6871161210040114857">Nepaisoma didžiųjų ir mažųjų raidžių rašybos.</translation> <translation id="6877435256196695200">Nėra kito grafinio elemento.</translation> +<translation id="688976158310523235">Paieškos meniu</translation> <translation id="6897341342232909480">Perkelti į kairę</translation> <translation id="6901540140423170855">data</translation> <translation id="6910211073230771657">Ištrintas</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+iššokantysis langas</translation> <translation id="9066023754636984703">Paspauskite „Search“ + A ir J, kad pereitumėte į išsamios informacijos skiltį.</translation> <translation id="9067522039955793016">Puslapio lūžis</translation> +<translation id="9074824103975499138">Ieškoti „ChromeVox“ meniu</translation> <translation id="9077213568694924680">pašalinta iš pasirinkimo srities</translation> <translation id="9077305471618729969">Melsvai žalsva spalva</translation> <translation id="9082874451376019682">Nėra ankstesnio šliaužiklio.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_mk.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_mk.xtb index d155c59..7d33c670 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_mk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_mk.xtb
@@ -844,6 +844,7 @@ <translation id="6865519907510167493">Правописна грешка</translation> <translation id="6871161210040114857">Игнорирање на малите и големите букви.</translation> <translation id="6877435256196695200">Нема следна графика.</translation> +<translation id="688976158310523235">Мени за пребарување</translation> <translation id="6897341342232909480">Помести налево</translation> <translation id="6901540140423170855">датум</translation> <translation id="6910211073230771657">Избришано</translation> @@ -1209,6 +1210,7 @@ <translation id="9065283790526219006">+појавни прозорци</translation> <translation id="9066023754636984703">Притиснете Search+A, J за да скокнете до деталите.</translation> <translation id="9067522039955793016">Прелом на страница</translation> +<translation id="9074824103975499138">Пребарувајте ги менијата на ChromeVox</translation> <translation id="9077213568694924680">отстрането од изборот</translation> <translation id="9077305471618729969">Светла морскозелена</translation> <translation id="9082874451376019682">Нема претходен лизгач.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ms.xtb index e5217d7..6043187 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_ms.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Kesilapan ejaan</translation> <translation id="6871161210040114857">Mengabaikan huruf.</translation> <translation id="6877435256196695200">Tiada grafik seterusnya.</translation> +<translation id="688976158310523235">Menu Carian</translation> <translation id="6897341342232909480">Alih ke kiri</translation> <translation id="6901540140423170855">tarikh</translation> <translation id="6910211073230771657">Dipadamkan</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+pop timbul</translation> <translation id="9066023754636984703">Tekan Carian+A, J untuk melangkau ke butiran.</translation> <translation id="9067522039955793016">Pemisah halaman</translation> +<translation id="9074824103975499138">Cari menu ChromeVox</translation> <translation id="9077213568694924680">dialih keluar daripada pilihan</translation> <translation id="9077305471618729969">Hijau Laut Cerah</translation> <translation id="9082874451376019682">Tiada peluncur terdahulu.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_my.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_my.xtb index 3a362066..b8aec754 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_my.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_my.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">စာလုံးပေါင်းအမှား</translation> <translation id="6871161210040114857">စာလုံးကြီးသေး လျစ်လျူရှုပါ။</translation> <translation id="6877435256196695200">ရှေ့သို့ ဂရပ်ဖစ် မရှိ</translation> +<translation id="688976158310523235">ရှာဖွေမှု မီနူး</translation> <translation id="6897341342232909480">ဘယ်ဘက်သို့ ရွှေ့ရန်</translation> <translation id="6901540140423170855">ရက်စွဲ</translation> <translation id="6910211073230771657">ဖျက်ပြီး</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+ပေါ့ပ်အာ့ပ်</translation> <translation id="9066023754636984703">အသေးစိတ်များသို့ သွားရန် Search+A၊ J ကို နှိပ်ပါ။</translation> <translation id="9067522039955793016">စာမျက်နှာခြားခြင်း</translation> +<translation id="9074824103975499138">ChromeVox မီနူးများ ရှာရန်</translation> <translation id="9077213568694924680">ရွေးချယ်မှုမှ ဖယ်ရှား</translation> <translation id="9077305471618729969">ပင်လယ်အစိမ်းဖျော့</translation> <translation id="9082874451376019682">ယခင် ဆွဲရွှေ့ခြင်း မရှိ။</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_nl.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_nl.xtb index 076e15a..588b330 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_nl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_nl.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Spelfout</translation> <translation id="6871161210040114857">Hoofdlettergebruik wordt genegeerd.</translation> <translation id="6877435256196695200">Geen volgende afbeelding.</translation> +<translation id="688976158310523235">Zoekmenu</translation> <translation id="6897341342232909480">Naar links verplaatsen</translation> <translation id="6901540140423170855">datum</translation> <translation id="6910211073230771657">Verwijderd</translation> @@ -1206,6 +1207,7 @@ <translation id="9065283790526219006">+pop-up</translation> <translation id="9066023754636984703">Druk op Zoeken+A, J om naar de details te gaan.</translation> <translation id="9067522039955793016">Pagina-einde</translation> +<translation id="9074824103975499138">Zoeken in ChromeVox-menu's</translation> <translation id="9077213568694924680">uit selectie verwijderd</translation> <translation id="9077305471618729969">Licht zeegroen</translation> <translation id="9082874451376019682">Geen vorige schuifregelaar.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pl.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pl.xtb index 6bf028a..22e420c 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pl.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Błędny zapis</translation> <translation id="6871161210040114857">Ignorowanie wielkości liter.</translation> <translation id="6877435256196695200">Brak następnej grafiki.</translation> +<translation id="688976158310523235">Menu wyszukiwania</translation> <translation id="6897341342232909480">Przejdź w lewo</translation> <translation id="6901540140423170855">data</translation> <translation id="6910211073230771657">Usunięto</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+wyskakujące okienko</translation> <translation id="9066023754636984703">Naciśnij klawisz wyszukiwania + A, J, by przejść do szczegółów.</translation> <translation id="9067522039955793016">Podział strony</translation> +<translation id="9074824103975499138">Przeszukaj menu ChromeVoxa</translation> <translation id="9077213568694924680">usunięto zaznaczenie</translation> <translation id="9077305471618729969">Jasny zielony morski</translation> <translation id="9082874451376019682">Brak poprzedniego suwaka.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-BR.xtb index e29064a..5b3ac35 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-BR.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-BR.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Erro de ortografia</translation> <translation id="6871161210040114857">Não diferencia maiúsculas de minúsculas.</translation> <translation id="6877435256196695200">Nenhum gráfico a seguir.</translation> +<translation id="688976158310523235">Menu de pesquisa</translation> <translation id="6897341342232909480">Mover para a esquerda</translation> <translation id="6901540140423170855">date</translation> <translation id="6910211073230771657">Excluído</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">Pressione Pesquisar+A, J para ir direto para os detalhes.</translation> <translation id="9067522039955793016">Quebra de página</translation> +<translation id="9074824103975499138">Pesquisar menus do ChromeVox</translation> <translation id="9077213568694924680">removido da seleção</translation> <translation id="9077305471618729969">Verde-mar-claro</translation> <translation id="9082874451376019682">Nenhum controle deslizante anterior.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-PT.xtb index 194cc07..4566b807 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-PT.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_pt-PT.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Erro ortográfico</translation> <translation id="6871161210040114857">A ignorar maiúsculas e minúsculas.</translation> <translation id="6877435256196695200">Não existe nenhum gráfico seguinte.</translation> +<translation id="688976158310523235">Menu de pesquisa</translation> <translation id="6897341342232909480">Mover para a esquerda</translation> <translation id="6901540140423170855">data</translation> <translation id="6910211073230771657">Eliminado</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">Prima Pesquisa+A, J para aceder aos detalhes.</translation> <translation id="9067522039955793016">Quebra de página</translation> +<translation id="9074824103975499138">Pesquise menus do ChromeVox.</translation> <translation id="9077213568694924680">removido da seleção</translation> <translation id="9077305471618729969">Verde marinho claro</translation> <translation id="9082874451376019682">Não existe nenhum controlo de deslize anterior.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_si.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_si.xtb index 8bdaca9..0b575c80 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_si.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_si.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">අකුරු වැරදුණු</translation> <translation id="6871161210040114857">අකුරේ සිම්පල්-කැපිටල් භේදය නොසලකා හරින්න.</translation> <translation id="6877435256196695200">ඊලඟ චිත්රණ නොමැත.</translation> +<translation id="688976158310523235">සෙවුම් මෙනුව</translation> <translation id="6897341342232909480">වමට ගෙනයන්න</translation> <translation id="6901540140423170855">දිනය</translation> <translation id="6910211073230771657">මකාදැමූ</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+පොප්අප්</translation> <translation id="9066023754636984703">විස්තර සඳහා පැනීමට සෙවීම+ A, J ඔබන්න.</translation> <translation id="9067522039955793016">පිටු බිඳුම</translation> +<translation id="9074824103975499138">ChromeVox මෙනු සොයන්න</translation> <translation id="9077213568694924680">තේරිමෙන් ඉවත් කෙරිණි</translation> <translation id="9077305471618729969">ළා මුහුදු කොළ</translation> <translation id="9082874451376019682">පෙර ස්ලයිඩර නැත.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sr.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sr.xtb index 427c5fa..8b6de3ef 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sr.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Погрешно је написано</translation> <translation id="6871161210040114857">Занемарује велика и мала слова.</translation> <translation id="6877435256196695200">Нема следеће слике.</translation> +<translation id="688976158310523235">Мени претраге</translation> <translation id="6897341342232909480">Померање улево</translation> <translation id="6901540140423170855">датум</translation> <translation id="6910211073230771657">Избрисано</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">Притисните тастер за претрагу + A, J да бисте прешли на детаље.</translation> <translation id="9067522039955793016">Прелом странице</translation> +<translation id="9074824103975499138">Претражите ChromeVox меније</translation> <translation id="9077213568694924680">уклоњено из избора</translation> <translation id="9077305471618729969">Светла плавозелена</translation> <translation id="9082874451376019682">Нема претходног клизача.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sv.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sv.xtb index 8a4aa6b..984b4c8 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sv.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sv.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Felstavning</translation> <translation id="6871161210040114857">Inte skiftlägeskänsligt.</translation> <translation id="6877435256196695200">Det finns inga fler bilder.</translation> +<translation id="688976158310523235">Sökmeny</translation> <translation id="6897341342232909480">Flytta åt vänster</translation> <translation id="6901540140423170855">datum</translation> <translation id="6910211073230771657">Borttagen</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+popup</translation> <translation id="9066023754636984703">Du kan hoppa till mer information om detta med söktangenten+A, J.</translation> <translation id="9067522039955793016">Sidbrytning</translation> +<translation id="9074824103975499138">Sök i ChromeVox-menyer</translation> <translation id="9077213568694924680">togs bort från markeringen</translation> <translation id="9077305471618729969">Ljust havsgrön</translation> <translation id="9082874451376019682">Det finns inget föregående skjutreglage.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sw.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sw.xtb index 6aa5e6f9..c55ecac3 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_sw.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Kosa la tahajia</translation> <translation id="6871161210040114857">Inapuuza herufi kubwa au ndogo.</translation> <translation id="6877435256196695200">Hakuna mchoro unaofuata.</translation> +<translation id="688976158310523235">Menyu ya utafutaji</translation> <translation id="6897341342232909480">Sogeza kushoto</translation> <translation id="6901540140423170855">tarehe</translation> <translation id="6910211073230771657">Imeondolewa</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+dirisha ibukizi</translation> <translation id="9066023754636984703">Bofya Tafuta+A, J ili uende kwenye maelezo.</translation> <translation id="9067522039955793016">Nafasi ya kugawa kurasa</translation> +<translation id="9074824103975499138">Tafuta kwenye menyu za ChromeVox</translation> <translation id="9077213568694924680">imeondolewa kwenye uchaguzi</translation> <translation id="9077305471618729969">Kijani Isiyokolea</translation> <translation id="9082874451376019682">Hakuna kitelezi kilichotangulia.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_uk.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_uk.xtb index 229275a..23293e4b 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_uk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_uk.xtb
@@ -842,6 +842,7 @@ <translation id="6865519907510167493">Орфографічна помилка</translation> <translation id="6871161210040114857">Регістр не враховується.</translation> <translation id="6877435256196695200">Немає наступного зображення.</translation> +<translation id="688976158310523235">Меню пошуку</translation> <translation id="6897341342232909480">Перемістити ліворуч</translation> <translation id="6901540140423170855">дата</translation> <translation id="6910211073230771657">Видалено</translation> @@ -1207,6 +1208,7 @@ <translation id="9065283790526219006">+ спливаюче вікно</translation> <translation id="9066023754636984703">Натисніть клавішу пошуку + A, J, щоб перейти до деталей.</translation> <translation id="9067522039955793016">Розрив сторінки</translation> +<translation id="9074824103975499138">Пошук у меню ChromeVox</translation> <translation id="9077213568694924680">видалено з виділеного</translation> <translation id="9077305471618729969">Світлий зелене море</translation> <translation id="9082874451376019682">Немає попереднього повзунка.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zh-HK.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zh-HK.xtb index d9984e1..c3374a2e 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zh-HK.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zh-HK.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">拼字錯誤</translation> <translation id="6871161210040114857">唔分大細楷。</translation> <translation id="6877435256196695200">沒有下一個影像。</translation> +<translation id="688976158310523235">搜尋選單</translation> <translation id="6897341342232909480">左移</translation> <translation id="6901540140423170855">日期</translation> <translation id="6910211073230771657">已刪除</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">彈出式視窗</translation> <translation id="9066023754636984703">按下 Search+A 和 J 鍵即可查看詳情。</translation> <translation id="9067522039955793016">分頁</translation> +<translation id="9074824103975499138">搜尋 ChromeVox 選單</translation> <translation id="9077213568694924680">已從所選範圍中移除</translation> <translation id="9077305471618729969">淺海綠色</translation> <translation id="9082874451376019682">沒有上一個滑桿。</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zu.xtb b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zu.xtb index c2ca2d5..86b48eb 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/strings/chromevox_strings_zu.xtb
@@ -843,6 +843,7 @@ <translation id="6865519907510167493">Ayipeletwanga kahle</translation> <translation id="6871161210040114857">Ukuziba ikesi.</translation> <translation id="6877435256196695200">Asikho isithombe esilandelayo.</translation> +<translation id="688976158310523235">Imenyu yokusesha</translation> <translation id="6897341342232909480">Hambisa ngakwesokunxele</translation> <translation id="6901540140423170855">idethi</translation> <translation id="6910211073230771657">Kususiwe</translation> @@ -1208,6 +1209,7 @@ <translation id="9065283790526219006">+isigelekeqe</translation> <translation id="9066023754636984703">Cindezela ku-Search+A, J ukuze weqele kumininingwane.</translation> <translation id="9067522039955793016">Ukuhlukana kwekhasi</translation> +<translation id="9074824103975499138">Sesha amamenu we-ChromeVox</translation> <translation id="9077213568694924680">isusiwe kusukela ekukhethweni</translation> <translation id="9077305471618729969">Okuluhlaza okotshani okusalwandle olulula</translation> <translation id="9082874451376019682">Asikho isilayida sangaphambili.</translation>
diff --git a/chrome/browser/resources/chromeos/camera/.style.yapf b/chrome/browser/resources/chromeos/camera/.style.yapf index de0c6a70..557fa7b 100644 --- a/chrome/browser/resources/chromeos/camera/.style.yapf +++ b/chrome/browser/resources/chromeos/camera/.style.yapf
@@ -1,2 +1,2 @@ [style] -based_on_style = chromium +based_on_style = pep8
diff --git a/chrome/browser/resources/chromeos/camera/utils/cca.py b/chrome/browser/resources/chromeos/camera/utils/cca.py index 965980d9..0f8df61 100755 --- a/chrome/browser/resources/chromeos/camera/utils/cca.py +++ b/chrome/browser/resources/chromeos/camera/utils/cca.py
@@ -18,273 +18,281 @@ @functools.lru_cache(1) -def GetChromiumRoot(): - path = os.path.realpath('../../../../../') - assert os.path.basename(path) == 'src' - return path +def get_chromium_root(): + path = os.path.realpath('../../../../../') + assert os.path.basename(path) == 'src' + return path -def ShellJoin(cmd): - return ' '.join(shlex.quote(c) for c in cmd) +def shell_join(cmd): + return ' '.join(shlex.quote(c) for c in cmd) -def Run(args): - logging.debug(f'$ {ShellJoin(args)}') - subprocess.check_call(args) +def run(args): + logging.debug(f'$ {shell_join(args)}') + subprocess.check_call(args) -def BuildLocaleStrings(): - grit_cmd = [ - os.path.join(GetChromiumRoot(), 'tools/grit/grit.py'), - '-i', - 'src/strings/camera_strings.grd', - 'build', - '-o', - 'build/strings', - ] - Run(grit_cmd) +def build_locale_strings(): + grit_cmd = [ + os.path.join(get_chromium_root(), 'tools/grit/grit.py'), + '-i', + 'src/strings/camera_strings.grd', + 'build', + '-o', + 'build/strings', + ] + run(grit_cmd) -def BuildMojomBindings(mojom_bindings): - pylib = os.path.join(GetChromiumRoot(), 'mojo/public/tools/bindings/pylib') - sys.path.insert(0, pylib) - # pylint: disable=import-error,import-outside-toplevel - from mojom.parse.parser import Parse +def build_mojom_bindings(mojom_bindings): + pylib = os.path.join(get_chromium_root(), + 'mojo/public/tools/bindings/pylib') + sys.path.insert(0, pylib) + # pylint: disable=import-error,import-outside-toplevel + from mojom.parse.parser import Parse - mojom_paths = set() + mojom_paths = set() - def AddPath(mojom): - path = os.path.join(GetChromiumRoot(), mojom) - if path in mojom_paths: - return - mojom_paths.add(path) + def add_path(mojom): + path = os.path.join(get_chromium_root(), mojom) + if path in mojom_paths: + return + mojom_paths.add(path) - with open(path) as f: - code = f.read() - ast = Parse(code, path) - for imp in ast.import_list: - AddPath(imp.import_filename) + with open(path) as f: + code = f.read() + ast = Parse(code, path) + for imp in ast.import_list: + add_path(imp.import_filename) - for binding in mojom_bindings: - mojom = re.sub('-lite.js$', '', binding) - AddPath(mojom) + for binding in mojom_bindings: + mojom = re.sub('-lite.js$', '', binding) + add_path(mojom) - # It's needed for generating mojo_bindings_lite.js. - AddPath('mojo/public/interfaces/bindings/interface_control_messages.mojom') + # It's needed for generating mojo_bindings_lite.js. + add_path( + 'mojo/public/interfaces/bindings/interface_control_messages.mojom') - if not os.path.exists('build/mojo'): - os.makedirs('build/mojo') + if not os.path.exists('build/mojo'): + os.makedirs('build/mojo') - generator = os.path.join( - GetChromiumRoot(), - 'mojo/public/tools/bindings/mojom_bindings_generator.py') + generator = os.path.join( + get_chromium_root(), + 'mojo/public/tools/bindings/mojom_bindings_generator.py') - precompile_cmd = [ - generator, - '--use_bundled_pylibs', - 'precompile', - '-o', - 'build/mojo', - ] - Run(precompile_cmd) + precompile_cmd = [ + generator, + '--use_bundled_pylibs', + 'precompile', + '-o', + 'build/mojo', + ] + run(precompile_cmd) - parse_cmd = [ - generator, - '--use_bundled_pylibs', - 'parse', - '-d', - GetChromiumRoot(), - '-o', - 'build/mojo', - ] + list(mojom_paths) - Run(parse_cmd) + parse_cmd = [ + generator, + '--use_bundled_pylibs', + 'parse', + '-d', + get_chromium_root(), + '-o', + 'build/mojo', + ] + list(mojom_paths) + run(parse_cmd) - generate_cmd = [ - generator, - '--use_bundled_pylibs', - 'generate', - '-d', - GetChromiumRoot(), - '-I', - GetChromiumRoot(), - '--bytecode_path', - 'build/mojo', - '-o', - 'build/mojo', - '-g', - 'javascript', - '--js_bindings_mode', - 'new', - ] + list(mojom_paths) - Run(generate_cmd) + generate_cmd = [ + generator, + '--use_bundled_pylibs', + 'generate', + '-d', + get_chromium_root(), + '-I', + get_chromium_root(), + '--bytecode_path', + 'build/mojo', + '-o', + 'build/mojo', + '-g', + 'javascript', + '--js_bindings_mode', + 'new', + ] + list(mojom_paths) + run(generate_cmd) - generate_binding_lite_cmd = [ - os.path.join(GetChromiumRoot(), - ('mojo/public/tools/bindings/' + - 'concatenate_and_replace_closure_exports.py')), - os.path.join(GetChromiumRoot(), 'mojo/public/js/bindings_lite.js'), - os.path.join(GetChromiumRoot(), 'mojo/public/js/interface_support.js'), - ('build/mojo/mojo/public/interfaces/' + - 'bindings/interface_control_messages.mojom-lite.js'), - 'build/mojo/mojo_bindings_lite.js', - ] - Run(generate_binding_lite_cmd) + generate_binding_lite_cmd = [ + os.path.join(get_chromium_root(), + ('mojo/public/tools/bindings/' + + 'concatenate_and_replace_closure_exports.py')), + os.path.join(get_chromium_root(), 'mojo/public/js/bindings_lite.js'), + os.path.join(get_chromium_root(), + 'mojo/public/js/interface_support.js'), + ('build/mojo/mojo/public/interfaces/' + + 'bindings/interface_control_messages.mojom-lite.js'), + 'build/mojo/mojo_bindings_lite.js', + ] + run(generate_binding_lite_cmd) -def BuildCCA(overlay=None, key=None): - with open('BUILD.gn') as f: - mojom_bindings = re.findall(r'root_gen_dir/(.*mojom-lite\.js)', f.read()) - mojo_files = ['mojo_bindings_lite.js'] + mojom_bindings +def build_cca(overlay=None, key=None): + with open('BUILD.gn') as f: + mojom_bindings = re.findall(r'root_gen_dir/(.*mojom-lite\.js)', + f.read()) + mojo_files = ['mojo_bindings_lite.js'] + mojom_bindings - # TODO(shik): Check mtime and rebuild them if the source is updated. - if not os.path.exists('build/strings'): - BuildLocaleStrings() - if any(not os.path.exists(os.path.join('build/mojo', f)) for f in mojo_files): - BuildMojomBindings(mojom_bindings) + # TODO(shik): Check mtime and rebuild them if the source is updated. + if not os.path.exists('build/strings'): + build_locale_strings() + if any(not os.path.exists(os.path.join('build/mojo', f)) + for f in mojo_files): + build_mojom_bindings(mojom_bindings) - shutil.rmtree('build/camera', ignore_errors=True) - dir_util.copy_tree('src', 'build/camera') - for f in mojo_files: - shutil.copy2(os.path.join('build/mojo', f), 'build/camera/js/mojo') - dir_util.copy_tree('build/strings', 'build/camera') + shutil.rmtree('build/camera', ignore_errors=True) + dir_util.copy_tree('src', 'build/camera') + for f in mojo_files: + shutil.copy2(os.path.join('build/mojo', f), 'build/camera/js/mojo') + dir_util.copy_tree('build/strings', 'build/camera') - if overlay == 'dev': - dir_util.copy_tree('utils/dev', 'build/camera') + if overlay == 'dev': + dir_util.copy_tree('utils/dev', 'build/camera') - git_cmd = ['git', 'rev-parse', 'HEAD'] - commit_hash = subprocess.check_output(git_cmd, text=True).strip()[:8] - timestamp = time.strftime("%F %T") + git_cmd = ['git', 'rev-parse', 'HEAD'] + commit_hash = subprocess.check_output(git_cmd, text=True).strip()[:8] + timestamp = time.strftime("%F %T") - with open('src/manifest.json') as f: - manifest = json.load(f) - manifest['version_name'] = f'Dev {commit_hash} @ {timestamp}' - if key is not None: - manifest['key'] = key - with open('build/camera/manifest.json', 'w') as f: - json.dump(manifest, f, indent=2) + with open('src/manifest.json') as f: + manifest = json.load(f) + manifest['version_name'] = f'Dev {commit_hash} @ {timestamp}' + if key is not None: + manifest['key'] = key + with open('build/camera/manifest.json', 'w') as f: + json.dump(manifest, f, indent=2) -def Deploy(args): - BuildCCA() - cmd = [ - 'rsync', - '--archive', - '--checksum', - '--chown=chronos:chronos', - '--omit-dir-times', - '--perms', - '--verbose', - 'build/camera/', - f'{args.device}:/opt/google/chrome/resources/chromeos/camera', - ] - Run(cmd) +def deploy(args): + build_cca() + cmd = [ + 'rsync', + '--archive', + '--checksum', + '--chown=chronos:chronos', + '--omit-dir-times', + '--perms', + '--verbose', + 'build/camera/', + f'{args.device}:/opt/google/chrome/resources/chromeos/camera', + ] + run(cmd) -def Test(args): - assert 'CCAUI' not in args.device, ( - 'The first argument should be <device> instead of a test name pattern.') - tast_cmd = ['local_test_runner'] + args.pattern - cmd = [ - 'ssh', - args.device, - ShellJoin(tast_cmd), - ] - Run(cmd) +def test(args): + assert 'CCAUI' not in args.device, ( + 'The first argument should be <device> instead of a test name pattern.' + ) + tast_cmd = ['local_test_runner'] + args.pattern + cmd = [ + 'ssh', + args.device, + shell_join(tast_cmd), + ] + run(cmd) -def Pack(args): - assert os.path.exists(args.key), f'There is no key at {args.key}' +def pack(args): + assert os.path.exists(args.key), f'There is no key at {args.key}' - pubkey = None - if shutil.which('openssl'): - openssl_cmd = ['openssl', 'rsa', '-in', args.key, '-pubout'] - openssl_output = subprocess.check_output( - openssl_cmd, stderr=subprocess.DEVNULL, text=True) - pubkey = ''.join(openssl_output.splitlines()[1:-1]) - BuildCCA(overlay='dev', key=pubkey) + pubkey = None + if shutil.which('openssl'): + openssl_cmd = ['openssl', 'rsa', '-in', args.key, '-pubout'] + openssl_output = subprocess.check_output(openssl_cmd, + stderr=subprocess.DEVNULL, + text=True) + pubkey = ''.join(openssl_output.splitlines()[1:-1]) + build_cca(overlay='dev', key=pubkey) - if os.path.exists('build/camera.crx'): - os.remove('build/camera.crx') - pack_cmd = [ - 'google-chrome', - '--disable-gpu', # suppress an error about sandbox on gpu process - '--pack-extension=build/camera', - shlex.quote(f'--pack-extension-key={args.key}'), - ] - if shutil.which('xvfb-run'): - # Run it in a virtual X server environment - pack_cmd.insert(0, 'xvfb-run') - Run(pack_cmd) - assert os.path.exists('build/camera.crx') - shutil.move('build/camera.crx', args.output) + if os.path.exists('build/camera.crx'): + os.remove('build/camera.crx') + pack_cmd = [ + 'google-chrome', + '--disable-gpu', # suppress an error about sandbox on gpu process + '--pack-extension=build/camera', + shlex.quote(f'--pack-extension-key={args.key}'), + ] + if shutil.which('xvfb-run'): + # Run it in a virtual X server environment + pack_cmd.insert(0, 'xvfb-run') + run(pack_cmd) + assert os.path.exists('build/camera.crx') + shutil.move('build/camera.crx', args.output) - # TODO(shik): Add an option to deploy/install the packed crx on device + # TODO(shik): Add an option to deploy/install the packed crx on device -def Lint(args): - root = GetChromiumRoot() - node = os.path.join(root, 'third_party/node/linux/node-linux-x64/bin/node') - eslint = os.path.join(root, - 'third_party/node/node_modules/eslint/bin/eslint.js') - subprocess.call([node, eslint, 'src/js']) +def lint(args): + root = get_chromium_root() + node = os.path.join(root, 'third_party/node/linux/node-linux-x64/bin/node') + eslint = os.path.join( + root, 'third_party/node/node_modules/eslint/bin/eslint.js') + subprocess.call([node, eslint, 'src/js']) -def ParseArgs(args): - parser = argparse.ArgumentParser(description='CCA developer tools.') - parser.add_argument('--debug', action='store_true') - subparsers = parser.add_subparsers() +def parse_args(args): + parser = argparse.ArgumentParser(description='CCA developer tools.') + parser.add_argument('--debug', action='store_true') + subparsers = parser.add_subparsers() - deploy_parser = subparsers.add_parser( - 'deploy', help='deploy to device', description='Deploy CCA to device.') - deploy_parser.add_argument('device') - deploy_parser.set_defaults(func=Deploy) + deploy_parser = subparsers.add_parser('deploy', + help='deploy to device', + description='Deploy CCA to device.') + deploy_parser.add_argument('device') + deploy_parser.set_defaults(func=deploy) - test_parser = subparsers.add_parser( - 'test', help='run tests', description='Run CCA tests on device.') - test_parser.add_argument('device') - test_parser.add_argument( - 'pattern', - nargs='*', - default=['camera.CCAUI*'], - help='test patterns. (default: camera.CCAUI*)') - test_parser.set_defaults(func=Test) + test_parser = subparsers.add_parser('test', + help='run tests', + description='Run CCA tests on device.') + test_parser.add_argument('device') + test_parser.add_argument('pattern', + nargs='*', + default=['camera.CCAUI*'], + help='test patterns. (default: camera.CCAUI*)') + test_parser.set_defaults(func=test) - pack_parser = subparsers.add_parser( - 'pack', help='pack crx', description='Pack CCA into a crx.') - pack_parser.add_argument( - '-o', - '--output', - help='output file (default: build/camera.crx)', - default='build/camera.crx') - pack_parser.add_argument( - '-k', - '--key', - help='private key file (default: camera.pem)', - default='camera.pem') - pack_parser.set_defaults(func=Pack) + pack_parser = subparsers.add_parser('pack', + help='pack crx', + description='Pack CCA into a crx.') + pack_parser.add_argument('-o', + '--output', + help='output file (default: build/camera.crx)', + default='build/camera.crx') + pack_parser.add_argument('-k', + '--key', + help='private key file (default: camera.pem)', + default='camera.pem') + pack_parser.set_defaults(func=pack) - lint_parser = subparsers.add_parser( - 'lint', help='check code', description='Check coding styles.') - lint_parser.set_defaults(func=Lint) - parser.set_defaults(func=lambda _args: lint.print_help()) + lint_parser = subparsers.add_parser('lint', + help='check code', + description='Check coding styles.') + lint_parser.set_defaults(func=lint) + parser.set_defaults(func=lambda _args: parser.print_help()) - return parser.parse_args(args) + return parser.parse_args(args) -def Main(args): - cca_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - assert os.path.basename(cca_root) == 'camera' - os.chdir(cca_root) +def main(args): + cca_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + assert os.path.basename(cca_root) == 'camera' + os.chdir(cca_root) - args = ParseArgs(args) + args = parse_args(args) - log_level = logging.DEBUG if args.debug else logging.INFO - log_format = '%(asctime)s - %(levelname)s - %(funcName)s: %(message)s' - logging.basicConfig(level=log_level, format=log_format) + log_level = logging.DEBUG if args.debug else logging.INFO + log_format = '%(asctime)s - %(levelname)s - %(funcName)s: %(message)s' + logging.basicConfig(level=log_level, format=log_format) - logging.debug(f'args = {args}') - return args.func(args) + logging.debug(f'args = {args}') + return args.func(args) if __name__ == '__main__': - sys.exit(Main(sys.argv[1:])) + sys.exit(main(sys.argv[1:]))
diff --git a/chrome/browser/resources/chromeos/login/oobe_eula.js b/chrome/browser/resources/chromeos/login/oobe_eula.js index 5303ff4b..077a8917 100644 --- a/chrome/browser/resources/chromeos/login/oobe_eula.js +++ b/chrome/browser/resources/chromeos/login/oobe_eula.js
@@ -172,6 +172,7 @@ * @private */ onUsageStatsHelpLinkClicked_: function(e) { + this.$['learn-more'].focus(); chrome.send('eulaOnLearnMore'); e.stopPropagation(); },
diff --git a/chrome/browser/resources/new_tab_page/customize_themes.html b/chrome/browser/resources/new_tab_page/customize_themes.html index d884a65..075ece4 100644 --- a/chrome/browser/resources/new_tab_page/customize_themes.html +++ b/chrome/browser/resources/new_tab_page/customize_themes.html
@@ -60,16 +60,33 @@ box-shadow: inset 0 0 0 2px rgba(var(--google-blue-600-rgb), .4); } - ntp-theme-icon { + #themesContainer > * { align-self: center; justify-self: center; outline-width: 0; } - :host-context(.focus-outline-visible) ntp-theme-icon:focus { + :host-context(.focus-outline-visible) #themesContainer > *:focus { box-shadow: 0 0 0 2px rgba(var(--google-blue-600-rgb), .4); } + #autogeneratedThemeContainer { + display: flex; + position: relative; + } + + #colorPickerIcon { + -webkit-mask-image: url(icons/colorize.svg); + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 100%; + background-color: var(--google-grey-refresh-700); + height: 20px; + left: calc(50% - 10px); + position: absolute; + top: calc(50% - 10px); + width: 20px; + } + #autogeneratedTheme { --ntp-theme-icon-frame-color: var(--google-grey-refresh-100); --ntp-theme-icon-active-tab-color: white; @@ -106,13 +123,15 @@ </input> <div id="themesContainer" on-keydown="onThemesKeyDown_" style="--num-theme-columns: [[numThemeColumns_]];"> - <!-- TODO(crbug.com/1032327): Add color picker icon. --> - <ntp-theme-icon id="autogeneratedTheme" title="$i18n{colorPickerLabel}" - on-click="onAutogeneratedThemeClick_" - selected$="[[isThemeIconSelected_('autogenerated', theme)]]"> - </ntp-theme-icon> + <div id="autogeneratedThemeContainer" tabindex="0" + on-click="onAutogeneratedThemeClick_"> + <ntp-theme-icon id="autogeneratedTheme" title="$i18n{colorPickerLabel}" + selected$="[[isThemeIconSelected_('autogenerated', theme)]]"> + </ntp-theme-icon> + <div id="colorPickerIcon"></div> + </div> <ntp-theme-icon id="defaultTheme" title="$i18n{defaultThemeLabel}" - on-click="onDefaultThemeClick_" + on-click="onDefaultThemeClick_" tabindex="0" selected$="[[isThemeIconSelected_('default', theme)]]"> </ntp-theme-icon> <dom-repeat id="themes" items="[[chromeThemes_]]"> @@ -122,6 +141,7 @@ [[skColorToRgb_(item.colors.frame)]]; --ntp-theme-icon-active-tab-color: [[skColorToRgb_(item.colors.activeTab)]];" + tabindex="0" selected$="[[isThemeIconSelected_(item.id, theme)]]"> </ntp-theme-icon> </template>
diff --git a/chrome/browser/resources/new_tab_page/customize_themes.js b/chrome/browser/resources/new_tab_page/customize_themes.js index a6d945d2..d2fe25f 100644 --- a/chrome/browser/resources/new_tab_page/customize_themes.js +++ b/chrome/browser/resources/new_tab_page/customize_themes.js
@@ -92,6 +92,8 @@ '--ntp-theme-icon-stroke-color', rgbFrameColor); this.$.autogeneratedTheme.style.setProperty( '--ntp-theme-icon-active-tab-color', rgbActiveTabColor); + this.$.colorPickerIcon.style.setProperty( + 'background-color', skColorToRgb(this.theme.shortcutTextColor)); } /** @@ -158,8 +160,8 @@ onThemesKeyDown_(e) { if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'].includes(e.key)) { e.preventDefault(); - const themeIcons = - Array.from(this.$.themesContainer.querySelectorAll('ntp-theme-icon')); + const themeIcons = Array.from(this.shadowRoot.querySelectorAll( + '#themesContainer > :-webkit-any(div, ntp-theme-icon)')); const currentIndex = themeIcons.indexOf(e.target); const isRtl = window.getComputedStyle(this)['direction'] === 'rtl'; let delta = 0;
diff --git a/chrome/browser/resources/new_tab_page/icons/colorize.svg b/chrome/browser/resources/new_tab_page/icons/colorize.svg new file mode 100644 index 0000000..984de18 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/icons/colorize.svg
@@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M17.66 5.41l.92.92-2.69 2.69-.92-.92 2.69-2.69M17.67 3c-.26 0-.51.1-.71.29l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42l-2.34-2.34c-.2-.19-.45-.29-.7-.29zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd index b6d4512..8e05306 100644 --- a/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd +++ b/chrome/browser/resources/new_tab_page/new_tab_page_resources.grd
@@ -43,6 +43,8 @@ file="icons/backgrounds.svg" type="BINDATA" compress="gzip" /> <include name="IDR_NEW_TAB_PAGE_COLORS_ICON_SVG" file="icons/colors.svg" type="BINDATA" compress="gzip" /> + <include name="IDR_NEW_TAB_PAGE_COLORIZE_ICON_SVG" + file="icons/colorize.svg" type="BINDATA" compress="gzip" /> </includes> <structures> <structure name="IDR_NEW_TAB_PAGE_NEW_TAB_PAGE_HTML"
diff --git a/chrome/browser/resources/new_tab_page/theme_icon.js b/chrome/browser/resources/new_tab_page/theme_icon.js index e48fab8..81708280 100644 --- a/chrome/browser/resources/new_tab_page/theme_icon.js +++ b/chrome/browser/resources/new_tab_page/theme_icon.js
@@ -18,17 +18,6 @@ static get template() { return html`{__html_template__}`; } - - static get properties() { - return { - /** @type {number} */ - tabindex: { - type: Number, - reflectToAttribute: true, - value: 0, - }, - }; - } } customElements.define(ThemeIconElement.is, ThemeIconElement);
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js b/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js index f527a77..35279dd 100644 --- a/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js +++ b/chrome/browser/resources/settings/chrome_cleanup_page/items_to_remove_list.js
@@ -2,24 +2,26 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); +cr.define('settings', function() { + /** + * For each line in the item list, the text field will be shown in normal + * style at front of the line. The highlightSuffix will be appended to the end + * of line and emphasized with bold font. + * @typedef {{ + * text: string, + * highlightSuffix: ?string, + * }} + */ + let ChromeCleanupRemovalListItem; -/** - * For each line in the item list, the text field will be shown in normal style - * at front of the line. The highlightSuffix will be appended to the end of line - * and emphasized with bold font. - * @typedef {{ - * text: string, - * highlightSuffix: ?string, - * }} - */ -settings.ChromeCleanupRemovalListItem; + /** + * The default number of items to show for files, registry keys and extensions + * on the detailed view when user-initiated cleanups are enabled. + */ + const CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW = 4; -/** - * The default number of items to show for files, registry keys and extensions - * on the detailed view when user-initiated cleanups are enabled. - */ -settings.CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW = 4; + return {ChromeCleanupRemovalListItem, CHROME_CLEANUP_DEFAULT_ITEMS_TO_SHOW}; +}); /** * @fileoverview
diff --git a/chrome/browser/resources/settings/chromeos/device_page/device_page_browser_proxy.js b/chrome/browser/resources/settings/chromeos/device_page/device_page_browser_proxy.js index 13fa10e6..1c6d796 100644 --- a/chrome/browser/resources/settings/chromeos/device_page/device_page_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/device_page/device_page_browser_proxy.js
@@ -2,91 +2,86 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** @fileoverview A helper object used for testing the Device page. */ -cr.exportPath('settings'); - -/** - * @typedef {{ - * id: string, - * is_dedicated_charger: boolean, - * description: string - * }} - */ -settings.PowerSource; - -/** - * @typedef {{ - * present: boolean, - * charging: boolean, - * calculating: boolean, - * percent: number, - * statusText: string, - * }} - */ -settings.BatteryStatus; - -/** - * Mirrors chromeos::settings::PowerHandler::IdleBehavior. - * @enum {number} - */ -settings.IdleBehavior = { - DISPLAY_OFF_SLEEP: 0, - DISPLAY_OFF: 1, - DISPLAY_ON: 2, - OTHER: 3, -}; - -/** - * Mirrors chromeos::PowerPolicyController::Action. - * @enum {number} - */ -settings.LidClosedBehavior = { - SUSPEND: 0, - STOP_SESSION: 1, - SHUT_DOWN: 2, - DO_NOTHING: 3, -}; - -/** - * @typedef {{ - * idleBehavior: settings.IdleBehavior, - * idleControlled: boolean, - * lidClosedBehavior: settings.LidClosedBehavior, - * lidClosedControlled: boolean, - * hasLid: boolean, - * }} - */ -settings.PowerManagementSettings; - -/** - * A note app's availability for running as note handler app from lock screen. - * Mirrors chromeos::NoteTakingLockScreenSupport. - * @enum {number} - */ -settings.NoteAppLockScreenSupport = { - NOT_SUPPORTED: 0, - NOT_ALLOWED_BY_POLICY: 1, - SUPPORTED: 2, - ENABLED: 3 -}; - -/** - * @typedef {{name:string, - * value:string, - * preferred:boolean, - * lockScreenSupport: settings.NoteAppLockScreenSupport}} - */ -settings.NoteAppInfo; - -/** - * @typedef {{ - * label: string, - * uuid: string - * }} - */ -settings.ExternalStorage; - cr.define('settings', function() { + /** + * @typedef {{ + * id: string, + * is_dedicated_charger: boolean, + * description: string + * }} + */ + let PowerSource; + + /** + * @typedef {{ + * present: boolean, + * charging: boolean, + * calculating: boolean, + * percent: number, + * statusText: string, + * }} + */ + let BatteryStatus; + + /** + * Mirrors chromeos::settings::PowerHandler::IdleBehavior. + * @enum {number} + */ + const IdleBehavior = { + DISPLAY_OFF_SLEEP: 0, + DISPLAY_OFF: 1, + DISPLAY_ON: 2, + OTHER: 3, + }; + + /** + * Mirrors chromeos::PowerPolicyController::Action. + * @enum {number} + */ + const LidClosedBehavior = { + SUSPEND: 0, + STOP_SESSION: 1, + SHUT_DOWN: 2, + DO_NOTHING: 3, + }; + + /** + * @typedef {{ + * idleBehavior: settings.IdleBehavior, + * idleControlled: boolean, + * lidClosedBehavior: settings.LidClosedBehavior, + * lidClosedControlled: boolean, + * hasLid: boolean, + * }} + */ + let PowerManagementSettings; + + /** + * A note app's availability for running as note handler app from lock screen. + * Mirrors chromeos::NoteTakingLockScreenSupport. + * @enum {number} + */ + const NoteAppLockScreenSupport = + {NOT_SUPPORTED: 0, NOT_ALLOWED_BY_POLICY: 1, SUPPORTED: 2, ENABLED: 3}; + + /** + * @typedef {{ + * name:string, + * value:string, + * preferred:boolean, + * lockScreenSupport: settings.NoteAppLockScreenSupport, + * }} + */ + let NoteAppInfo; + + /** + * @typedef {{ + * label: string, + * uuid: string + * }} + */ + let ExternalStorage; + /** @interface */ class DevicePageBrowserProxy { /** Initializes the mouse and touchpad handler. */ @@ -267,7 +262,15 @@ cr.addSingletonGetter(DevicePageBrowserProxyImpl); return { - DevicePageBrowserProxy: DevicePageBrowserProxy, - DevicePageBrowserProxyImpl: DevicePageBrowserProxyImpl, + BatteryStatus, + DevicePageBrowserProxy, + DevicePageBrowserProxyImpl, + ExternalStorage, + IdleBehavior, + LidClosedBehavior, + NoteAppInfo, + NoteAppLockScreenSupport, + PowerManagementSettings, + PowerSource, }; });
diff --git a/chrome/browser/resources/settings/chromeos/device_page/storage.js b/chrome/browser/resources/settings/chromeos/device_page/storage.js index 59060c1..71d18e4 100644 --- a/chrome/browser/resources/settings/chromeos/device_page/storage.js +++ b/chrome/browser/resources/settings/chromeos/device_page/storage.js
@@ -2,34 +2,28 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview - * 'settings-storage' is the settings subpage for storage settings. - */ -cr.exportPath('settings'); +cr.define('settings', function() { + /** + * Enumeration for device state about remaining space. + * These values must be kept in sync with + * StorageManagerHandler::StorageSpaceState in C++ code. + * @enum {number} + */ + const StorageSpaceState = {NORMAL: 0, LOW: 1, CRITICALLY_LOW: 2}; -/** - * Enumeration for device state about remaining space. - * These values must be kept in sync with - * StorageManagerHandler::StorageSpaceState in C++ code. - * @enum {number} - */ -settings.StorageSpaceState = { - NORMAL: 0, - LOW: 1, - CRITICALLY_LOW: 2 -}; + /** + * @typedef {{ + * totalSize: string, + * availableSize: string, + * usedSize: string, + * usedRatio: number, + * spaceState: settings.StorageSpaceState, + * }} + */ + let StorageSizeStat; -/** - * @typedef {{ - * totalSize: string, - * availableSize: string, - * usedSize: string, - * usedRatio: number, - * spaceState: settings.StorageSpaceState, - * }} - */ -settings.StorageSizeStat; + return {StorageSpaceState, StorageSizeStat}; +}); Polymer({ is: 'settings-storage',
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js index 5410aac5..4cd8d3b0 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_browser_proxy.js
@@ -2,23 +2,21 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); - -/** - * An object containing messages for web permissisions origin - * and the messages multidevice feature state. - * - * @typedef {{origin: string, - * enabled: boolean}} - */ -settings.AndroidSmsInfo; - cr.define('settings', function() { + /** + * An object containing messages for web permissisions origin + * and the messages multidevice feature state. + * + * @typedef {{origin: string, + * enabled: boolean}} + */ + let AndroidSmsInfo; + /** @interface */ class MultiDeviceBrowserProxy { showMultiDeviceSetupDialog() {} - /** @return {!Promise<!MultiDevicePageContentData>} */ + /** @return {!Promise<!settings.MultiDevicePageContentData>} */ getPageContentData() {} /** @@ -132,7 +130,8 @@ cr.addSingletonGetter(MultiDeviceBrowserProxyImpl); return { - MultiDeviceBrowserProxy: MultiDeviceBrowserProxy, - MultiDeviceBrowserProxyImpl: MultiDeviceBrowserProxyImpl, + AndroidSmsInfo, + MultiDeviceBrowserProxy, + MultiDeviceBrowserProxyImpl, }; });
diff --git a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js index f60c837..b758215 100644 --- a/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js +++ b/chrome/browser/resources/settings/chromeos/multidevice_page/multidevice_constants.js
@@ -49,34 +49,35 @@ FURTHER_SETUP_REQUIRED: 8, }; + /** + * Container for the initial data that the page requires in order to display + * the correct content. It is also used for receiving status updates during + * use. Note that the host device may be verified (enabled or disabled), + * awaiting verification, or it may have failed setup because it was not able + * to connect to the server. + * + * For each MultiDevice feature (including the "suite" feature, which acts as + * a gatekeeper for the others), the corresponding *State property is an enum + * containing the data necessary to display it. Note that hostDeviceName + * should be undefined if and only if no host has been set up, regardless of + * whether there are potential hosts on the account. + * + * @typedef {{ + * mode: !settings.MultiDeviceSettingsMode, + * hostDeviceName: (string|undefined), + * betterTogetherState: !settings.MultiDeviceFeatureState, + * instantTetheringState: !settings.MultiDeviceFeatureState, + * messagesState: !settings.MultiDeviceFeatureState, + * smartLockState: !settings.MultiDeviceFeatureState, + * isAndroidSmsPairingComplete: boolean + * }} + */ + let MultiDevicePageContentData; + return { - MultiDeviceSettingsMode: MultiDeviceSettingsMode, - MultiDeviceFeature: MultiDeviceFeature, - MultiDeviceFeatureState: MultiDeviceFeatureState, + MultiDeviceSettingsMode, + MultiDeviceFeature, + MultiDeviceFeatureState, + MultiDevicePageContentData, }; }); - -/** - * Container for the initial data that the page requires in order to display - * the correct content. It is also used for receiving status updates during - * use. Note that the host device may be verified (enabled or disabled), - * awaiting verification, or it may have failed setup because it was not able - * to connect to the server. - * - * For each MultiDevice feature (including the "suite" feature, which acts as a - * gatekeeper for the others), the corresponding *State property is an enum - * containing the data necessary to display it. Note that hostDeviceName should - * be undefined if and only if no host has been set up, regardless of whether - * there are potential hosts on the account. - * - * @typedef {{ - * mode: !settings.MultiDeviceSettingsMode, - * hostDeviceName: (string|undefined), - * betterTogetherState: !settings.MultiDeviceFeatureState, - * instantTetheringState: !settings.MultiDeviceFeatureState, - * messagesState: !settings.MultiDeviceFeatureState, - * smartLockState: !settings.MultiDeviceFeatureState, - * isAndroidSmsPairingComplete: boolean - * }} - */ -let MultiDevicePageContentData;
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/fingerprint_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_people_page/fingerprint_browser_proxy.js index 8479d9c..b9de797 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/fingerprint_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/fingerprint_browser_proxy.js
@@ -2,56 +2,54 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); - -/** - * @enum {number} - * These values must be kept in sync with the values in - * third_party/cros_system_api/dbus/service_constants.h. - */ -settings.FingerprintResultType = { - SUCCESS: 0, - PARTIAL: 1, - INSUFFICIENT: 2, - SENSOR_DIRTY: 3, - TOO_SLOW: 4, - TOO_FAST: 5, - IMMOBILE: 6, -}; - -/** - * An object describing a attempt from the fingerprint hardware. The structure - * of this data must be kept in sync with C++ FingerprintHandler. - * @typedef {{ - * result: settings.FingerprintResultType, - * indexes: !Array<number>, - * }} - */ -settings.FingerprintAttempt; - -/** - * An object describing a scan from the fingerprint hardware. The structure of - * this data must be kept in sync with C++ FingerprintHandler. - * @typedef {{ - * result: settings.FingerprintResultType, - * isComplete: boolean, - * percentComplete: number, - * }} - */ -settings.FingerprintScan; - -/** - * An object describing the necessary info to display on the fingerprint - * settings. The structure of this data must be kept in sync with - * C++ FingerprintHandler. - * @typedef {{ - * fingerprintsList: !Array<string>, - * isMaxed: boolean, - * }} - */ -settings.FingerprintInfo; - cr.define('settings', function() { + /** + * @enum {number} + * These values must be kept in sync with the values in + * third_party/cros_system_api/dbus/service_constants.h. + */ + const FingerprintResultType = { + SUCCESS: 0, + PARTIAL: 1, + INSUFFICIENT: 2, + SENSOR_DIRTY: 3, + TOO_SLOW: 4, + TOO_FAST: 5, + IMMOBILE: 6, + }; + + /** + * An object describing a attempt from the fingerprint hardware. The structure + * of this data must be kept in sync with C++ FingerprintHandler. + * @typedef {{ + * result: settings.FingerprintResultType, + * indexes: !Array<number>, + * }} + */ + let FingerprintAttempt; + + /** + * An object describing a scan from the fingerprint hardware. The structure of + * this data must be kept in sync with C++ FingerprintHandler. + * @typedef {{ + * result: settings.FingerprintResultType, + * isComplete: boolean, + * percentComplete: number, + * }} + */ + let FingerprintScan; + + /** + * An object describing the necessary info to display on the fingerprint + * settings. The structure of this data must be kept in sync with + * C++ FingerprintHandler. + * @typedef {{ + * fingerprintsList: !Array<string>, + * isMaxed: boolean, + * }} + */ + let FingerprintInfo; + /** @interface */ class FingerprintBrowserProxy { /** @@ -159,7 +157,11 @@ cr.addSingletonGetter(FingerprintBrowserProxyImpl); return { - FingerprintBrowserProxy: FingerprintBrowserProxy, - FingerprintBrowserProxyImpl: FingerprintBrowserProxyImpl, + FingerprintAttempt, + FingerprintBrowserProxy, + FingerprintBrowserProxyImpl, + FingerprintInfo, + FingerprintResultType, + FingerprintScan, }; });
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/kerberos_accounts_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_people_page/kerberos_accounts_browser_proxy.js index 89d27cd..aab5d789 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/kerberos_accounts_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/kerberos_accounts_browser_proxy.js
@@ -7,36 +7,35 @@ * the "People" section of Settings, to interact with the browser. Chrome OS * only. */ -cr.exportPath('settings'); - -/** - * Information for a Chrome OS Kerberos account. - * @typedef {{ - * principalName: string, - * config: string, - * isSignedIn: boolean, - * isActive: boolean, - * isManaged: boolean, - * passwordWasRemembered: boolean, - * pic: string, - * validForDuration: string - * }} - */ -settings.KerberosAccount; - -/** - * @typedef {{ - * error: !settings.KerberosErrorType, - * errorInfo: !{ - * code: !settings.KerberosConfigErrorCode, - * lineIndex: (number|undefined) - * } - * }} - */ -settings.ValidateKerberosConfigResult; cr.define('settings', function() { /** + * Information for a Chrome OS Kerberos account. + * @typedef {{ + * principalName: string, + * config: string, + * isSignedIn: boolean, + * isActive: boolean, + * isManaged: boolean, + * passwordWasRemembered: boolean, + * pic: string, + * validForDuration: string + * }} + */ + let KerberosAccount; + + /** + * @typedef {{ + * error: !settings.KerberosErrorType, + * errorInfo: !{ + * code: !settings.KerberosConfigErrorCode, + * lineIndex: (number|undefined) + * } + * }} + */ + let ValidateKerberosConfigResult; + + /** * @enum {number} * These values must be kept in sync with the ErrorType enum in * third_party/cros_system_api/dbus/kerberos/kerberos_service.proto. @@ -163,9 +162,11 @@ cr.addSingletonGetter(KerberosAccountsBrowserProxyImpl); return { - KerberosErrorType: KerberosErrorType, - KerberosConfigErrorCode: KerberosConfigErrorCode, - KerberosAccountsBrowserProxy: KerberosAccountsBrowserProxy, - KerberosAccountsBrowserProxyImpl: KerberosAccountsBrowserProxyImpl, + KerberosAccount, + KerberosErrorType, + KerberosConfigErrorCode, + KerberosAccountsBrowserProxy, + KerberosAccountsBrowserProxyImpl, + ValidateKerberosConfigResult, }; });
diff --git a/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_browser_proxy.js index 3c2b62bb..1ff00560 100644 --- a/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/os_people_page/os_sync_browser_proxy.js
@@ -2,34 +2,28 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object to get the status of the sync backend and user - * preferences on what data to sync. - */ -cr.exportPath('settings'); - -/** - * User preferences for OS sync. 'Registered' means the user has the option to - * select a type. For example, a type might not be registered due to a feature - * flag being disabled. - * @see components/sync/driver/sync_service.h - * - * TODO(jamescook): Encryption options. - * - * @typedef {{ - * osAppsRegistered: boolean, - * osAppsSynced: boolean, - * osPreferencesRegistered: boolean, - * osPreferencesSynced: boolean, - * syncAllOsDataTypes: boolean, - * wallpaperEnabled: boolean, - * wifiConfigurationsRegistered: boolean, - * wifiConfigurationsSynced: boolean, - * }} - */ -settings.OsSyncPrefs; - cr.define('settings', function() { + /** + * User preferences for OS sync. 'Registered' means the user has the option to + * select a type. For example, a type might not be registered due to a feature + * flag being disabled. + * @see components/sync/driver/sync_service.h + * + * TODO(jamescook): Encryption options. + * + * @typedef {{ + * osAppsRegistered: boolean, + * osAppsSynced: boolean, + * osPreferencesRegistered: boolean, + * osPreferencesSynced: boolean, + * syncAllOsDataTypes: boolean, + * wallpaperEnabled: boolean, + * wifiConfigurationsRegistered: boolean, + * wifiConfigurationsSynced: boolean, + * }} + */ + let OsSyncPrefs; + /** @interface */ class OsSyncBrowserProxy { /** @@ -86,7 +80,8 @@ cr.addSingletonGetter(OsSyncBrowserProxyImpl); return { - OsSyncBrowserProxy: OsSyncBrowserProxy, - OsSyncBrowserProxyImpl: OsSyncBrowserProxyImpl, + OsSyncBrowserProxy, + OsSyncBrowserProxyImpl, + OsSyncPrefs, }; });
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.html b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.html index 1237f26..18b4581 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.html +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.html
@@ -170,8 +170,7 @@ <!-- Manually Add Printer Dialog --> <template is="dom-if" if="[[showManuallyAddDialog_]]" restamp> - <add-printer-manually-dialog new-printer="{{newPrinter}}" - enable-updated-ui="[[enableUpdatedUi]]"> + <add-printer-manually-dialog new-printer="{{newPrinter}}"> </add-printer-manually-dialog> </template>
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.js index f8faa14..7816421 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.js +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_add_printer_dialog.js
@@ -69,13 +69,6 @@ type: String, value: '', }, - - /** - * TODO(jimmyxgong): Remove this feature flag conditional once feature - * is launched. - * @private - */ - enableUpdatedUi: Boolean, }, observers: [ @@ -488,13 +481,6 @@ type: Boolean, value: false, }, - - /** - * TODO(jimmyxgong): Remove this feature flag conditional once feature - * is launched. - * @private - */ - enableUpdatedUi: Boolean, }, listeners: { @@ -507,8 +493,6 @@ /** Opens the Add manual printer dialog. */ open: function() { this.resetData_(); - // The updated UI will remove the discovery dialog. Open the manual - // dialog by default. this.switchDialog_( '', AddPrinterDialogs.MANUALLY, 'showManuallyAddDialog_'); },
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.html b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.html index bfdb11ac..411e8f6 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.html +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.html
@@ -84,111 +84,77 @@ } </style> - <template is="dom-if" if="[[!enableUpdatedUi_]]"> - <div class="settings-box first"> - <div class="start"> - <settings-localized-link - localized-string="$i18n{cupsPrintersLearnMoreLabel}" - link-url="$i18n{printingCUPSPrintLearnMoreUrl}"> - </settings-localized-link> - <div class="secondary" hidden="[[canAddPrinter]]"> - $i18n{requireNetworkMessage} - </div> + <template is="dom-if" if="[[!canAddPrinter]]"> + <div id="noConnectivityContentContainer" + class="layout horizontal padded"> + <iron-icon id="cloudOffIcon" icon="settings20:cloud-off"></iron-icon> + <div id="connectionMessage" class="layout vertical"> + <div>$i18n{noInternetConnection}</div> + <div class="secondary">$i18n{checkNetworkAndTryAgain}</div> </div> - <template is="dom-if" if="[[!addPrinterButtonActive_(canAddPrinter, - prefs.native_printing.user_native_printers_allowed.value)]]"> - <cr-policy-pref-indicator - pref="[[prefs.native_printing.user_native_printers_allowed]]" - icon-aria-label="$i18n{printingPageTitle}"> - </cr-policy-pref-indicator> - </template> - <cr-button class="action-button" id="addPrinter" - on-click="onAddPrinterTap_" - disabled="[[!addPrinterButtonActive_(canAddPrinter, - prefs.native_printing.user_native_printers_allowed.value)]]"> - $i18n{addCupsPrinter} - </cr-button> - </div> - - <div id="noSearchResultsMessage" - hidden="[[!showNoSearchResultsMessage_(searchTerm)]]"> - $i18n{noSearchResults} </div> </template> - <template is="dom-if" if="[[enableUpdatedUi_]]"> - <template is="dom-if" if="[[!canAddPrinter]]"> - <div id="noConnectivityContentContainer" - class="layout horizontal padded"> - <iron-icon id="cloudOffIcon" icon="settings20:cloud-off"></iron-icon> - <div id="connectionMessage" class="layout vertical"> - <div>$i18n{noInternetConnection}</div> - <div class="secondary">$i18n{checkNetworkAndTryAgain}</div> + <template is="dom-if" + if="[[doesAccountHaveSavedPrinters_(savedPrinters_)]]" restamp> + <div id="savedPrintersContainer"> + <div class="settings-box first"> + <div class="start"> + <span aria-label$="[[savedPrintersAriaLabel_]]"> + $i18n{savedPrintersTitle} + </span> </div> </div> - </template> - <template is="dom-if" - if="[[doesAccountHaveSavedPrinters_(savedPrinters_)]]" restamp> - <div id="savedPrintersContainer"> - <div class="settings-box first"> - <div class="start"> - <span aria-label$="[[savedPrintersAriaLabel_]]"> - $i18n{savedPrintersTitle} - </span> - </div> - </div> - - <settings-cups-saved-printers id="savedPrinters" - active-printer="{{activePrinter}}" - search-term="[[searchTerm]]" - printers-count="{{savedPrinterCount_}}"> - </settings-cups-saved-printers> - </div> - </template> - - <div class="padded first" id="nearbyPrinters"> - <div aria-label$="[[nearbyPrintersAriaLabel_]]"> - $i18n{nearbyPrintersListTitle} - </div> - <settings-localized-link class="secondary" - localized-string="$i18n{nearbyPrintersListDescription}" - link-url="$i18n{printingCUPSPrintLearnMoreUrl}"> - </settings-localized-link> - <template is="dom-if" if="[[!addPrinterButtonActive_(canAddPrinter, - prefs.native_printing.user_native_printers_allowed.value)]]"> - <cr-policy-pref-indicator - pref="[[prefs.native_printing.user_native_printers_allowed]]" - icon-aria-label="$i18n{printingPageTitle}"> - </cr-policy-pref-indicator> - </template> - </div> - - <div id="addPrinterSection"> - <div class="layout horizontal center custom-list-item"> - <div id="addPrinterText" aria-hidden="true"> - $i18n{addCupsPrinter} - </div> - <cr-icon-button class="action-button" id="addManualPrinterIcon" - iron-icon="settings20:printer-add" - on-click="onAddPrinterTap_" - disabled="[[!addPrinterButtonActive_(canAddPrinter, - prefs.native_printing.user_native_printers_allowed.value)]]" - title="$i18n{addCupsPrinter}"> - </cr-icon-button> - </div> - </div> - <template is="dom-if" if="[[canAddPrinter]]" restamp> - <settings-cups-nearby-printers search-term="[[searchTerm]]" + <settings-cups-saved-printers id="savedPrinters" active-printer="{{activePrinter}}" - printers-count="{{nearbyPrinterCount_}}"> - </settings-cups-nearby-printers> + search-term="[[searchTerm]]" + printers-count="{{savedPrinterCount_}}"> + </settings-cups-saved-printers> + </div> + </template> + + <div class="padded first" id="nearbyPrinters"> + <div aria-label$="[[nearbyPrintersAriaLabel_]]"> + $i18n{nearbyPrintersListTitle} + </div> + <settings-localized-link class="secondary" + localized-string="$i18n{nearbyPrintersListDescription}" + link-url="$i18n{nearbyPrintersListDescription}"> + </settings-localized-link> + <template is="dom-if" if="[[!addPrinterButtonActive_(canAddPrinter, + prefs.native_printing.user_native_printers_allowed.value)]]"> + <cr-policy-pref-indicator + pref="[[prefs.native_printing.user_native_printers_allowed]]" + icon-aria-label="$i18n{printingPageTitle}"> + </cr-policy-pref-indicator> </template> + </div> + + <div id="addPrinterSection"> + <div class="layout horizontal center custom-list-item"> + <div id="addPrinterText" aria-hidden="true"> + $i18n{addCupsPrinter} + </div> + <cr-icon-button class="action-button" id="addManualPrinterIcon" + iron-icon="settings20:printer-add" + on-click="onAddPrinterTap_" + disabled="[[!addPrinterButtonActive_(canAddPrinter, + prefs.native_printing.user_native_printers_allowed.value)]]" + title="$i18n{addCupsPrinter}"> + </cr-icon-button> + </div> + </div> + + <template is="dom-if" if="[[canAddPrinter]]" restamp> + <settings-cups-nearby-printers search-term="[[searchTerm]]" + active-printer="{{activePrinter}}" + printers-count="{{nearbyPrinterCount_}}"> + </settings-cups-nearby-printers> </template> <settings-cups-add-printer-dialog id="addPrinterDialog" - on-close="onAddPrinterDialogClose_" - enable-updated-ui="[[enableUpdatedUi_]]"> + on-close="onAddPrinterDialogClose_"> </settings-cups-add-printer-dialog> <template is="dom-if" if="[[showCupsEditPrinterDialog_]]" restamp>
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.js index 75b6b32..3c4d4d5d 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.js +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers.js
@@ -58,18 +58,6 @@ /**@private */ addPrinterResultText_: String, - /** - * TODO(jimmyxgong): Remove this feature flag conditional once feature - * is launched. - * @private - */ - enableUpdatedUi_: { - type: Boolean, - value: function() { - return true; - }, - }, - /**@private */ nearbyPrintersAriaLabel_: { type: String, @@ -125,10 +113,6 @@ .then((responseParams) => { this.onActiveNetworksChanged(responseParams.result); }); - - if (this.enableUpdatedUi_) { - return; - } }, /** @override */ @@ -189,11 +173,9 @@ 'printerEditedSuccessfulMessage', printerName); break; case PrinterSetupResult.PRINTER_UNREACHABLE: - if (this.enableUpdatedUi_) { - this.addPrinterResultText_ = - loadTimeData.getStringF('printerUnavailableMessage', printerName); - break; - } + this.addPrinterResultText_ = + loadTimeData.getStringF('printerUnavailableMessage', printerName); + break; default: assertNotReached(); } @@ -223,14 +205,10 @@ * @private */ onPrintersChanged_: function(cupsPrintersList) { - if (this.enableUpdatedUi_) { - this.savedPrinters_ = cupsPrintersList.printerList.map( - printer => /** @type {!PrinterListEntry} */ ( - {printerInfo: printer, printerType: PrinterType.SAVED})); - this.entryManager_.setSavedPrintersList(this.savedPrinters_); - } else { - this.printers = cupsPrintersList.printerList; - } + this.savedPrinters_ = cupsPrintersList.printerList.map( + printer => /** @type {!PrinterListEntry} */ ( + {printerInfo: printer, printerType: PrinterType.SAVED})); + this.entryManager_.setSavedPrintersList(this.savedPrinters_); }, /** @private */ @@ -240,9 +218,7 @@ /** @private */ onAddPrinterDialogClose_: function() { - cr.ui.focusWithoutInk(assert( - this.enableUpdatedUi_ ? this.$$('#addManualPrinterIcon') : - this.$$('#addPrinter'))); + cr.ui.focusWithoutInk(assert(this.$$('#addManualPrinterIcon'))); }, /** @private */
diff --git a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_browser_proxy.js b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_browser_proxy.js index d7a7557..0bb822d0 100644 --- a/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_browser_proxy.js +++ b/chrome/browser/resources/settings/chromeos/os_printing_page/cups_printers_browser_proxy.js
@@ -191,6 +191,13 @@ * an empty string if no EULA is required. */ getEulaUrl(ppdManufacturer, ppdModel) {} + + /** + * Attempts to query the |serverUrl| and retrieve printers from the url. + * @param {string} serverUrl + * @return {!Promise<!CupsPrintersList>} + */ + queryPrintServer(serverUrl) {} } /** @@ -271,6 +278,11 @@ getEulaUrl(ppdManufacturer, ppdModel) { return cr.sendWithPromise('getEulaUrl', ppdManufacturer, ppdModel); } + + /** @override */ + queryPrintServer(serverUrl) { + return cr.sendWithPromise('queryPrintServer', serverUrl); + } } cr.addSingletonGetter(CupsPrintersBrowserProxyImpl);
diff --git a/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js b/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js index 5dcc1b1..c739133 100644 --- a/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js +++ b/chrome/browser/resources/settings/incompatible_applications_page/incompatible_applications_browser_proxy.js
@@ -2,37 +2,30 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the Incompatible Applications section - * to interact with the browser. - */ - -cr.exportPath('settings'); - -/** - * All possible actions to take on an incompatible application. - * - * Must be kept in sync with BlacklistMessageType in - * chrome/browser/win/conflicts/proto/module_list.proto - * @readonly - * @enum {number} - */ -settings.ActionTypes = { - UNINSTALL: 0, - MORE_INFO: 1, - UPGRADE: 2, -}; - -/** - * @typedef {{ - * name: string, - * actionType: {settings.ActionTypes}, - * actionUrl: string, - * }} - */ -settings.IncompatibleApplication; - cr.define('settings', function() { + /** + * All possible actions to take on an incompatible application. + * + * Must be kept in sync with BlacklistMessageType in + * chrome/browser/win/conflicts/proto/module_list.proto + * @readonly + * @enum {number} + */ + const ActionTypes = { + UNINSTALL: 0, + MORE_INFO: 1, + UPGRADE: 2, + }; + + /** + * @typedef {{ + * name: string, + * actionType: {settings.ActionTypes}, + * actionUrl: string, + * }} + */ + let IncompatibleApplication; + /** @interface */ class IncompatibleApplicationsBrowserProxy { /** @@ -116,8 +109,9 @@ cr.addSingletonGetter(IncompatibleApplicationsBrowserProxyImpl); return { - IncompatibleApplicationsBrowserProxy: IncompatibleApplicationsBrowserProxy, - IncompatibleApplicationsBrowserProxyImpl: - IncompatibleApplicationsBrowserProxyImpl, + ActionTypes, + IncompatibleApplication, + IncompatibleApplicationsBrowserProxy, + IncompatibleApplicationsBrowserProxyImpl, }; });
diff --git a/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.js b/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.js index b08b022..8ea1509 100644 --- a/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/account_manager_browser_proxy.js
@@ -2,30 +2,23 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the "Google Accounts" subsection of - * the "People" section of Settings, to interact with the browser. Chrome OS - * only. - */ -cr.exportPath('settings'); - -/** - * Information for an account managed by Chrome OS AccountManager. - * @typedef {{ - * id: string, - * accountType: number, - * isDeviceAccount: boolean, - * isSignedIn: boolean, - * unmigrated: boolean, - * fullName: string, - * email: string, - * pic: string, - * organization: (string|undefined), - * }} - */ -settings.Account; - cr.define('settings', function() { + /** + * Information for an account managed by Chrome OS AccountManager. + * @typedef {{ + * id: string, + * accountType: number, + * isDeviceAccount: boolean, + * isSignedIn: boolean, + * unmigrated: boolean, + * fullName: string, + * email: string, + * pic: string, + * organization: (string|undefined), + * }} + */ + let Account; + /** @interface */ class AccountManagerBrowserProxy { /** @@ -41,17 +34,17 @@ /** * Triggers the re-authentication flow for the account pointed to by - * |account_email|. - * @param {string} account_email + * |accountEmail|. + * @param {string} accountEmail */ - reauthenticateAccount(account_email) {} + reauthenticateAccount(accountEmail) {} /** * Triggers the migration dialog for the account pointed to by - * |account_email|. - * @param {string} account_email + * |accountEmail|. + * @param {string} accountEmail */ - migrateAccount(account_email) {} + migrateAccount(accountEmail) {} /** * Removes |account| from Account Manager. @@ -80,13 +73,13 @@ } /** @override */ - reauthenticateAccount(account_email) { - chrome.send('reauthenticateAccount', [account_email]); + reauthenticateAccount(accountEmail) { + chrome.send('reauthenticateAccount', [accountEmail]); } /** @override */ - migrateAccount(account_email) { - chrome.send('migrateAccount', [account_email]); + migrateAccount(accountEmail) { + chrome.send('migrateAccount', [accountEmail]); } /** @override */ @@ -103,7 +96,8 @@ cr.addSingletonGetter(AccountManagerBrowserProxyImpl); return { - AccountManagerBrowserProxy: AccountManagerBrowserProxy, - AccountManagerBrowserProxyImpl: AccountManagerBrowserProxyImpl, + Account, + AccountManagerBrowserProxy, + AccountManagerBrowserProxyImpl, }; });
diff --git a/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js b/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js index 3cd333e..4f2fd9ff 100644 --- a/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/change_picture_browser_proxy.js
@@ -2,25 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the "Change Picture" subpage of - * the People section to interact with the browser. ChromeOS only. - */ -cr.exportPath('settings'); - -/** - * An object describing a default image. - * @typedef {{ - * author: (string|undefined), - * index: number, - * title: (string|undefined), - * url: string, - * website: (string|undefined) - * }} - */ -settings.DefaultImage; - cr.define('settings', function() { + /** + * An object describing a default image. + * @typedef {{ + * author: (string|undefined), + * index: number, + * title: (string|undefined), + * url: string, + * website: (string|undefined) + * }} + */ + let DefaultImage; + /** @interface */ class ChangePictureBrowserProxy { /** @@ -113,7 +107,8 @@ cr.addSingletonGetter(ChangePictureBrowserProxyImpl); return { - ChangePictureBrowserProxy: ChangePictureBrowserProxy, - ChangePictureBrowserProxyImpl: ChangePictureBrowserProxyImpl, + ChangePictureBrowserProxy, + ChangePictureBrowserProxyImpl, + DefaultImage, }; });
diff --git a/chrome/browser/resources/settings/people_page/import_data_browser_proxy.js b/chrome/browser/resources/settings/people_page/import_data_browser_proxy.js index 47c80a28..1af788a9 100644 --- a/chrome/browser/resources/settings/people_page/import_data_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/import_data_browser_proxy.js
@@ -2,39 +2,33 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the the Import Data dialog to allow - * users to import data (like bookmarks) from other web browsers. - */ -cr.exportPath('settings'); - -/** - * An object describing a source browser profile that may be imported. - * The structure of this data must be kept in sync with C++ ImportDataHandler. - * @typedef {{ - * name: string, - * index: number, - * history: boolean, - * favorites: boolean, - * passwords: boolean, - * search: boolean, - * autofillFormData: boolean, - * }} - */ -settings.BrowserProfile; - -/** - * @enum {string} - * These string values must be kept in sync with the C++ ImportDataHandler. - */ -settings.ImportDataStatus = { - INITIAL: 'initial', - IN_PROGRESS: 'inProgress', - SUCCEEDED: 'succeeded', - FAILED: 'failed', -}; - cr.define('settings', function() { + /** + * An object describing a source browser profile that may be imported. + * The structure of this data must be kept in sync with C++ ImportDataHandler. + * @typedef {{ + * name: string, + * index: number, + * history: boolean, + * favorites: boolean, + * passwords: boolean, + * search: boolean, + * autofillFormData: boolean, + * }} + */ + let BrowserProfile; + + /** + * @enum {string} + * These string values must be kept in sync with the C++ ImportDataHandler. + */ + const ImportDataStatus = { + INITIAL: 'initial', + IN_PROGRESS: 'inProgress', + SUCCEEDED: 'succeeded', + FAILED: 'failed', + }; + /** @interface */ class ImportDataBrowserProxy { /** @@ -81,7 +75,9 @@ cr.addSingletonGetter(ImportDataBrowserProxyImpl); return { - ImportDataBrowserProxy: ImportDataBrowserProxy, - ImportDataBrowserProxyImpl: ImportDataBrowserProxyImpl, + BrowserProfile, + ImportDataStatus, + ImportDataBrowserProxy, + ImportDataBrowserProxyImpl, }; });
diff --git a/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js b/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js index 65808a60..679d8d49 100644 --- a/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/profile_info_browser_proxy.js
@@ -2,23 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the the People section to get the - * profile info, which consists of the profile name and icon. Used for both - * Chrome browser and ChromeOS. - */ -cr.exportPath('settings'); - -/** - * An object describing the profile. - * @typedef {{ - * name: string, - * iconUrl: string - * }} - */ -settings.ProfileInfo; - cr.define('settings', function() { + /** + * An object describing the profile. + * @typedef {{ + * name: string, + * iconUrl: string + * }} + */ + let ProfileInfo; + /** @interface */ class ProfileInfoBrowserProxy { /** @@ -51,7 +44,5 @@ cr.addSingletonGetter(ProfileInfoBrowserProxyImpl); - return { - ProfileInfoBrowserProxyImpl: ProfileInfoBrowserProxyImpl, - }; + return {ProfileInfo, ProfileInfoBrowserProxyImpl}; });
diff --git a/chrome/browser/resources/settings/people_page/sync_browser_proxy.js b/chrome/browser/resources/settings/people_page/sync_browser_proxy.js index 91e7240..5ae3a43c 100644 --- a/chrome/browser/resources/settings/people_page/sync_browser_proxy.js +++ b/chrome/browser/resources/settings/people_page/sync_browser_proxy.js
@@ -2,112 +2,102 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -/** - * @fileoverview A helper object used from the the People section to get the - * status of the sync backend and user preferences on what data to sync. Used - * for both Chrome browser and ChromeOS. - */ -cr.exportPath('settings'); - -/** - * @typedef {{fullName: (string|undefined), - * givenName: (string|undefined), - * email: string, - * avatarImage: (string|undefined)}} - * @see chrome/browser/ui/webui/settings/people_handler.cc - */ -settings.StoredAccount; - -/** - * @typedef {{childUser: (boolean|undefined), - * disabled: (boolean|undefined), - * domain: (string|undefined), - * hasError: (boolean|undefined), - * hasPasswordsOnlyError: (boolean|undefined), - * hasUnrecoverableError: (boolean|undefined), - * managed: (boolean|undefined), - * firstSetupInProgress: (boolean|undefined), - * signedIn: (boolean|undefined), - * signedInUsername: (string|undefined), - * signinAllowed: (boolean|undefined), - * statusAction: (!settings.StatusAction), - * statusActionText: (string|undefined), - * statusText: (string|undefined), - * supervisedUser: (boolean|undefined), - * syncSystemEnabled: (boolean|undefined)}} - * @see chrome/browser/ui/webui/settings/people_handler.cc - */ -settings.SyncStatus; - - -/** - * Must be kept in sync with the return values of getSyncErrorAction in - * chrome/browser/ui/webui/settings/people_handler.cc - * @enum {string} - */ -settings.StatusAction = { - NO_ACTION: 'noAction', // No action to take. - REAUTHENTICATE: 'reauthenticate', // User needs to reauthenticate. - SIGNOUT_AND_SIGNIN: - 'signOutAndSignIn', // User needs to sign out and sign in. - UPGRADE_CLIENT: 'upgradeClient', // User needs to upgrade the client. - ENTER_PASSPHRASE: 'enterPassphrase', // User needs to enter passphrase. - // User needs to go through key retrieval. - RETRIEVE_TRUSTED_VAULT_KEYS: 'retrieveTrustedVaultKeys', - CONFIRM_SYNC_SETTINGS: - 'confirmSyncSettings', // User needs to confirm sync settings. -}; - -/** - * The state of sync. This is the data structure sent back and forth between - * C++ and JS. Its naming and structure is not optimal, but changing it would - * require changes to the C++ handler, which is already functional. - * @typedef {{ - * appsRegistered: boolean, - * appsSynced: boolean, - * autofillRegistered: boolean, - * autofillSynced: boolean, - * bookmarksRegistered: boolean, - * bookmarksSynced: boolean, - * encryptAllData: boolean, - * encryptAllDataAllowed: boolean, - * enterPassphraseBody: (string|undefined), - * extensionsRegistered: boolean, - * extensionsSynced: boolean, - * fullEncryptionBody: string, - * passphrase: (string|undefined), - * passphraseRequired: boolean, - * passwordsRegistered: boolean, - * passwordsSynced: boolean, - * paymentsIntegrationEnabled: boolean, - * preferencesRegistered: boolean, - * preferencesSynced: boolean, - * setNewPassphrase: (boolean|undefined), - * syncAllDataTypes: boolean, - * tabsRegistered: boolean, - * tabsSynced: boolean, - * themesRegistered: boolean, - * themesSynced: boolean, - * trustedVaultKeysRequired: boolean, - * typedUrlsRegistered: boolean, - * typedUrlsSynced: boolean, - * }} - */ -settings.SyncPrefs; - -/** - * @enum {string} - */ -settings.PageStatus = { - SPINNER: 'spinner', // Before the page has loaded. - CONFIGURE: 'configure', // Preferences ready to be configured. - TIMEOUT: 'timeout', // Preferences loading has timed out. - DONE: 'done', // Sync subpage can be closed now. - PASSPHRASE_FAILED: 'passphraseFailed', // Error in the passphrase. -}; - cr.define('settings', function() { /** + * @typedef {{fullName: (string|undefined), + * givenName: (string|undefined), + * email: string, + * avatarImage: (string|undefined)}} + * @see chrome/browser/ui/webui/settings/people_handler.cc + */ + let StoredAccount; + + /** + * @typedef {{childUser: (boolean|undefined), + * disabled: (boolean|undefined), + * domain: (string|undefined), + * hasError: (boolean|undefined), + * hasPasswordsOnlyError: (boolean|undefined), + * hasUnrecoverableError: (boolean|undefined), + * managed: (boolean|undefined), + * firstSetupInProgress: (boolean|undefined), + * signedIn: (boolean|undefined), + * signedInUsername: (string|undefined), + * signinAllowed: (boolean|undefined), + * statusAction: (!settings.StatusAction), + * statusActionText: (string|undefined), + * statusText: (string|undefined), + * supervisedUser: (boolean|undefined), + * syncSystemEnabled: (boolean|undefined)}} + * @see chrome/browser/ui/webui/settings/people_handler.cc + */ + let SyncStatus; + + /** + * Must be kept in sync with the return values of getSyncErrorAction in + * chrome/browser/ui/webui/settings/people_handler.cc + * @enum {string} + */ + const StatusAction = { + NO_ACTION: 'noAction', // No action to take. + REAUTHENTICATE: 'reauthenticate', // User needs to reauthenticate. + SIGNOUT_AND_SIGNIN: + 'signOutAndSignIn', // User needs to sign out and sign in. + UPGRADE_CLIENT: 'upgradeClient', // User needs to upgrade the client. + ENTER_PASSPHRASE: 'enterPassphrase', // User needs to enter passphrase. + // User needs to go through key retrieval. + RETRIEVE_TRUSTED_VAULT_KEYS: 'retrieveTrustedVaultKeys', + CONFIRM_SYNC_SETTINGS: + 'confirmSyncSettings', // User needs to confirm sync settings. + }; + + /** + * The state of sync. This is the data structure sent back and forth between + * C++ and JS. Its naming and structure is not optimal, but changing it would + * require changes to the C++ handler, which is already functional. + * @typedef {{ + * appsRegistered: boolean, + * appsSynced: boolean, + * autofillRegistered: boolean, + * autofillSynced: boolean, + * bookmarksRegistered: boolean, + * bookmarksSynced: boolean, + * encryptAllData: boolean, + * encryptAllDataAllowed: boolean, + * enterPassphraseBody: (string|undefined), + * extensionsRegistered: boolean, + * extensionsSynced: boolean, + * fullEncryptionBody: string, + * passphrase: (string|undefined), + * passphraseRequired: boolean, + * passwordsRegistered: boolean, + * passwordsSynced: boolean, + * paymentsIntegrationEnabled: boolean, + * preferencesRegistered: boolean, + * preferencesSynced: boolean, + * setNewPassphrase: (boolean|undefined), + * syncAllDataTypes: boolean, + * tabsRegistered: boolean, + * tabsSynced: boolean, + * themesRegistered: boolean, + * themesSynced: boolean, + * trustedVaultKeysRequired: boolean, + * typedUrlsRegistered: boolean, + * typedUrlsSynced: boolean, + * }} + */ + let SyncPrefs; + + /** @enum {string} */ + const PageStatus = { + SPINNER: 'spinner', // Before the page has loaded. + CONFIGURE: 'configure', // Preferences ready to be configured. + TIMEOUT: 'timeout', // Preferences loading has timed out. + DONE: 'done', // Sync subpage can be closed now. + PASSPHRASE_FAILED: 'passphraseFailed', // Error in the passphrase. + }; + + /** * Key to be used with localStorage. * @type {string} */ @@ -319,7 +309,12 @@ cr.addSingletonGetter(SyncBrowserProxyImpl); return { - SyncBrowserProxy: SyncBrowserProxy, - SyncBrowserProxyImpl: SyncBrowserProxyImpl, + PageStatus, + StatusAction, + StoredAccount, + SyncBrowserProxy, + SyncBrowserProxyImpl, + SyncPrefs, + SyncStatus, }; });
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.js b/chrome/browser/resources/settings/privacy_page/privacy_page.js index dd7e1d6..f86812ad 100644 --- a/chrome/browser/resources/settings/privacy_page/privacy_page.js +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.js
@@ -2,15 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); +cr.define('settings', function() { + /** + * @typedef {{ + * enabled: boolean, + * pref: !chrome.settingsPrivate.PrefObject + * }} + */ + let BlockAutoplayStatus; -/** - * @typedef {{ - * enabled: boolean, - * pref: !chrome.settingsPrivate.PrefObject - * }} - */ -let BlockAutoplayStatus; + return {BlockAutoplayStatus}; +}); /** * @fileoverview @@ -142,11 +144,11 @@ } }, - /** @private {BlockAutoplayStatus} */ + /** @private {settings.BlockAutoplayStatus} */ blockAutoplayStatus_: { type: Object, value: function() { - return /** @type {BlockAutoplayStatus} */ ({}); + return /** @type {settings.BlockAutoplayStatus} */ ({}); } }, @@ -323,7 +325,7 @@ /** * Called when the block autoplay status changes. - * @param {BlockAutoplayStatus} autoplayStatus + * @param {settings.BlockAutoplayStatus} autoplayStatus * @private */ onBlockAutoplayStatusChanged_: function(autoplayStatus) {
diff --git a/chrome/browser/resources/settings/privacy_page/security_keys_bio_enroll_dialog.js b/chrome/browser/resources/settings/privacy_page/security_keys_bio_enroll_dialog.js index 19f0055c..902b5cd 100644 --- a/chrome/browser/resources/settings/privacy_page/security_keys_bio_enroll_dialog.js +++ b/chrome/browser/resources/settings/privacy_page/security_keys_bio_enroll_dialog.js
@@ -68,7 +68,7 @@ /** * The list of enrollments displayed. - * @private {!Array<!Enrollment>} + * @private {!Array<!settings.Enrollment>} */ enrollments_: Array, @@ -135,7 +135,7 @@ /** * @private - * @param {!Array<!Enrollment>} enrollments + * @param {!Array<!settings.Enrollment>} enrollments */ onEnrollments_: function(enrollments) { this.enrollments_ = enrollments; @@ -210,10 +210,10 @@ /** * @private - * @param {!EnrollmentStatus} response + * @param {!settings.EnrollmentStatus} response */ onEnrolling_: function(response) { - if (response.code == Ctap2Status.ERR_KEEPALIVE_CANCEL) { + if (response.code == settings.Ctap2Status.ERR_KEEPALIVE_CANCEL) { this.showEnrollmentsPage_(); return; }
diff --git a/chrome/browser/resources/settings/privacy_page/security_keys_browser_proxy.js b/chrome/browser/resources/settings/privacy_page/security_keys_browser_proxy.js index c4ab238b..f72d863d 100644 --- a/chrome/browser/resources/settings/privacy_page/security_keys_browser_proxy.js +++ b/chrome/browser/resources/settings/privacy_page/security_keys_browser_proxy.js
@@ -2,70 +2,69 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); - -/** - * Ctap2Status contains a subset of CTAP2 status codes. See - * device::CtapDeviceResponseCode for the full list. - * @enum {number} - */ -const Ctap2Status = { - OK: 0x0, - ERR_KEEPALIVE_CANCEL: 0x2D, -}; - -/** - * Credential represents a CTAP2 resident credential enumerated from a security - * key. - * - * id: (required) The hex encoding of the CBOR-serialized - * PublicKeyCredentialDescriptor of the credential. - * - * relyingPartyId: (required) The RP ID (i.e. the site that created the - * credential; eTLD+n) - * - * userName: (required) The PublicKeyCredentialUserEntity.name - * - * userDisplayName: (required) The PublicKeyCredentialUserEntity.display_name - * - * @typedef {{id: string, - * relyingPartyId: string, - * userName: string, - * userDisplayName: string}} - * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc - */ -let Credential; - -/** - * EnrollmentStatus represents the current status of an enrollment suboperation, - * where 'remaining' is the number of samples left, 'status' is the last - * enrollment status, 'code' indicates the final CtapDeviceResponseCode of the - * operation, and 'enrollment' contains the new Enrollment. - * - * For each enrollment sample, 'status' is set - when the enrollment operation - * reaches an end state, 'code' and, if successful, 'enrollment' are set. |OK| - * indicates successful enrollment. A code of |ERR_KEEPALIVE_CANCEL| indicates - * user-initated cancellation. - * - * @typedef {{status: ?number, - * code: ?Ctap2Status, - * remaining: number, - * enrollment: ?Enrollment}} - * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc - */ -let EnrollmentStatus; - -/** - * Enrollment represents a valid fingerprint template stored on a security key, - * which can be used in a user verification request. - * - * @typedef {{name: string, - * id: string}} - * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc - */ -let Enrollment; - cr.define('settings', function() { + /** + * Ctap2Status contains a subset of CTAP2 status codes. See + * device::CtapDeviceResponseCode for the full list. + * @enum {number} + */ + const Ctap2Status = { + OK: 0x0, + ERR_KEEPALIVE_CANCEL: 0x2D, + }; + + /** + * Credential represents a CTAP2 resident credential enumerated from a + * security key. + * + * id: (required) The hex encoding of the CBOR-serialized + * PublicKeyCredentialDescriptor of the credential. + * + * relyingPartyId: (required) The RP ID (i.e. the site that created the + * credential; eTLD+n) + * + * userName: (required) The PublicKeyCredentialUserEntity.name + * + * userDisplayName: (required) The PublicKeyCredentialUserEntity.display_name + * + * @typedef {{id: string, + * relyingPartyId: string, + * userName: string, + * userDisplayName: string}} + * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc + */ + let Credential; + + /** + * EnrollmentStatus represents the current status of an enrollment + * suboperation, where 'remaining' is the number of samples left, 'status' is + * the last enrollment status, 'code' indicates the final + * CtapDeviceResponseCode of the operation, and 'enrollment' contains the new + * Enrollment. + * + * For each enrollment sample, 'status' is set - when the enrollment operation + * reaches an end state, 'code' and, if successful, 'enrollment' are set. |OK| + * indicates successful enrollment. A code of |ERR_KEEPALIVE_CANCEL| indicates + * user-initated cancellation. + * + * @typedef {{status: ?number, + * code: ?settings.Ctap2Status, + * remaining: number, + * enrollment: ?settings.Enrollment}} + * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc + */ + let EnrollmentStatus; + + /** + * Enrollment represents a valid fingerprint template stored on a security + * key, which can be used in a user verification request. + * + * @typedef {{name: string, + * id: string}} + * @see chrome/browser/ui/webui/settings/settings_security_key_handler.cc + */ + let Enrollment; + /** @interface */ class SecurityKeysPINBrowserProxy { /** @@ -121,7 +120,7 @@ * Enumerates credentials on the authenticator. A correct PIN must have * previously been supplied via providePIN() before this * method may be called. - * @return {!Promise<!Array<!Credential>>} + * @return {!Promise<!Array<!settings.Credential>>} */ enumerateCredentials() {} @@ -187,7 +186,7 @@ * previously been supplied via bioEnrollProvidePIN() before this method may * be called. * - * @return {!Promise<!Array<!Enrollment>>} + * @return {!Promise<!Array<!settings.Enrollment>>} */ enumerateEnrollments() {} @@ -202,8 +201,8 @@ * out waiting for a touch, or has successfully processed a touch. Any * errors will fire the 'security-keys-bio-enrollment-error' WebListener. * - * @return {!Promise<!EnrollmentStatus>} resolves when the enrollment - * operation is finished successfully. + * @return {!Promise<!settings.EnrollmentStatus>} resolves when the + * enrollment operation is finished successfully. */ startEnrolling() {} @@ -218,7 +217,8 @@ * Deletes the enrollment with the given ID. * * @param {string} id - * @return {!Promise<!Array<!Enrollment>>} The remaining enrollments. + * @return {!Promise<!Array<!settings.Enrollment>>} The remaining + * enrollments. */ deleteEnrollment(id) {} @@ -227,7 +227,8 @@ * * @param {string} id * @param {string} name - * @return {!Promise<!Array<!Enrollment>>} The updated list of enrollments. + * @return {!Promise<!Array<!settings.Enrollment>>} The updated list of + * enrollments. */ renameEnrollment(id, name) {} @@ -350,14 +351,17 @@ cr.addSingletonGetter(SecurityKeysBioEnrollProxyImpl); return { - SecurityKeysPINBrowserProxy: SecurityKeysPINBrowserProxy, - SecurityKeysPINBrowserProxyImpl: SecurityKeysPINBrowserProxyImpl, - SecurityKeysCredentialBrowserProxy: SecurityKeysCredentialBrowserProxy, - SecurityKeysCredentialBrowserProxyImpl: - SecurityKeysCredentialBrowserProxyImpl, - SecurityKeysResetBrowserProxy: SecurityKeysResetBrowserProxy, - SecurityKeysResetBrowserProxyImpl: SecurityKeysResetBrowserProxyImpl, - SecurityKeysBioEnrollProxy: SecurityKeysBioEnrollProxy, - SecurityKeysBioEnrollProxyImpl: SecurityKeysBioEnrollProxyImpl, + Credential, + Ctap2Status, + Enrollment, + EnrollmentStatus, + SecurityKeysBioEnrollProxy, + SecurityKeysBioEnrollProxyImpl, + SecurityKeysCredentialBrowserProxy, + SecurityKeysCredentialBrowserProxyImpl, + SecurityKeysPINBrowserProxy, + SecurityKeysPINBrowserProxyImpl, + SecurityKeysResetBrowserProxy, + SecurityKeysResetBrowserProxyImpl, }; });
diff --git a/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js b/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js index f7f98d14..69930b31 100644 --- a/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js +++ b/chrome/browser/resources/settings/privacy_page/security_keys_credential_management_dialog.js
@@ -47,7 +47,7 @@ /** * The list of credentials displayed in the dialog. - * @private {!Array<!Credential>} + * @private {!Array<!settings.Credential>} */ credentials_: Array, @@ -125,7 +125,7 @@ /** * @private - * @param {!Array<!Credential>} credentials + * @param {!Array<!settings.Credential>} credentials */ onCredentials_: function(credentials) { if (!credentials.length) { @@ -193,7 +193,7 @@ /** * Stringifies the user entity of a Credential for display in the dialog. * @private - * @param {!Credential} credential + * @param {!settings.Credential} credential * @return {string} */ formatUser_: function(credential) {
diff --git a/chrome/browser/resources/settings/search_settings.js b/chrome/browser/resources/settings/search_settings.js index e2e5c8f..895e336 100644 --- a/chrome/browser/resources/settings/search_settings.js +++ b/chrome/browser/resources/settings/search_settings.js
@@ -2,22 +2,20 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -cr.exportPath('settings'); - -/** - * A data structure used by callers to combine the results of multiple search - * requests. - * - * @typedef {{ - * canceled: Boolean, - * didFindMatches: Boolean, - * wasClearSearch: Boolean, - * }} - */ -settings.SearchResult; - cr.define('settings', function() { /** + * A data structure used by callers to combine the results of multiple search + * requests. + * + * @typedef {{ + * canceled: Boolean, + * didFindMatches: Boolean, + * wasClearSearch: Boolean, + * }} + */ + let SearchResult; + + /** * A CSS attribute indicating that a node should be ignored during searching. * @type {string} */ @@ -621,8 +619,9 @@ } return { - getSearchManager: getSearchManager, - setSearchManagerForTesting: setSearchManagerForTesting, - SearchRequest: SearchRequest, + getSearchManager, + setSearchManagerForTesting, + SearchRequest, + SearchResult, }; });
diff --git a/chrome/browser/sync/sync_encryption_keys_tab_helper.cc b/chrome/browser/sync/sync_encryption_keys_tab_helper.cc index cfda1bb..4da0be7 100644 --- a/chrome/browser/sync/sync_encryption_keys_tab_helper.cc +++ b/chrome/browser/sync/sync_encryption_keys_tab_helper.cc
@@ -53,14 +53,15 @@ // chrome::mojom::SyncEncryptionKeysExtension: void SetEncryptionKeys( - const std::vector<std::vector<uint8_t>>& encryption_keys, const std::string& gaia_id, + const std::vector<std::vector<uint8_t>>& encryption_keys, + int last_key_version, SetEncryptionKeysCallback callback) override { CHECK_EQ(receivers_.GetCurrentTargetFrame()->GetLastCommittedOrigin(), GetAllowedOrigin()); - sync_service_->AddTrustedVaultDecryptionKeysFromWeb(gaia_id, - encryption_keys); + sync_service_->AddTrustedVaultDecryptionKeysFromWeb( + gaia_id, encryption_keys, last_key_version); std::move(callback).Run(); }
diff --git a/chrome/browser/sync/sync_error_notifier_ash.cc b/chrome/browser/sync/sync_error_notifier_ash.cc index a19877b..013bb1b 100644 --- a/chrome/browser/sync/sync_error_notifier_ash.cc +++ b/chrome/browser/sync/sync_error_notifier_ash.cc
@@ -112,8 +112,6 @@ void SyncErrorNotifier::OnStateChanged(syncer::SyncService* service) { DCHECK_EQ(service, sync_service_); - // TODO(crbug.com/1019687): A sync error should also be prompted for - // sync_ui_util::ShouldShowSyncKeysMissingError(). const bool should_display_notification = sync_ui_util::ShouldShowPassphraseError(sync_service_) || sync_ui_util::ShouldShowSyncKeysMissingError(sync_service_);
diff --git a/chrome/browser/sync/trusted_vault_client_android.cc b/chrome/browser/sync/trusted_vault_client_android.cc index a1af9f84..289a2716 100644 --- a/chrome/browser/sync/trusted_vault_client_android.cc +++ b/chrome/browser/sync/trusted_vault_client_android.cc
@@ -93,7 +93,8 @@ void TrustedVaultClientAndroid::StoreKeys( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) { + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) { // Not supported on Android, where keys are fetched outside the browser. NOTREACHED(); }
diff --git a/chrome/browser/sync/trusted_vault_client_android.h b/chrome/browser/sync/trusted_vault_client_android.h index 0141e4e..6cb94a2b 100644 --- a/chrome/browser/sync/trusted_vault_client_android.h +++ b/chrome/browser/sync/trusted_vault_client_android.h
@@ -49,7 +49,8 @@ base::OnceCallback<void(const std::vector<std::vector<uint8_t>>&)> cb) override; void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override; void MarkKeysAsStale(const std::string& gaia_id, base::OnceCallback<void(bool)> cb) override;
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb index 7c7ac306..5608e3e 100644 --- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb +++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
@@ -1,12 +1,15 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="no"> +<translation id="1334465099090928258">Levert av <ph name="APP_NAME" /></translation> <translation id="1717486229951421299">Listen over legitimasjon som kan fylles ut ved å trykke, er åpnet i halv høyde.</translation> <translation id="207576718733492531">Listen over legitimasjon som kan fylles ut ved å trykke, er lukket.</translation> <translation id="2359808026110333948">Fortsett</translation> <translation id="2410754283952462441">Velg en konto</translation> <translation id="3399357656427473483">Listen over legitimasjon som kan fylles ut ved å trykke.</translation> +<translation id="496501580515239715">Nytt i <ph name="APP_NAME" />! Styr hvordan du logger på, med ett trykk</translation> <translation id="5441504010984421144">Listen over legitimasjon som kan fylles ut ved å trykke, er åpnet i full høyde.</translation> <translation id="5624120631404540903">Administrer passord</translation> +<translation id="765102084632356159">Nytt i <ph name="APP_NAME" />! Trykk for å logge på</translation> <translation id="804577341878669140">Fortsett med konto</translation> </translationbundle> \ No newline at end of file
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb index 5da17d2..cfb84c4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_af.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Foonnommers</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> aflaaie is uitgevee</translation> <translation id="3822502789641063741">Vee werfberging uit?</translation> +<translation id="3853625385350850937">Skakel NFC op jou toestel aan om voort te gaan</translation> <translation id="3859306556332390985">Soek vorentoe</translation> <translation id="388596076286380598">Kry artikels, video's en ander inhoud vanaf werwe waarvan jy hou, selfs as jy vanlyn is of as jou verbinding swak is.</translation> <translation id="3894427358181296146">Voeg vouer by</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google-rekening</translation> <translation id="8920114477895755567">Wag tans vir besonderhede van ouers.</translation> <translation id="8922289737868596582">Laai bladsye vanaf die Meer Opsies-knoppie af om hulle vanlyn te gebruik</translation> +<translation id="8926666909099850184">NFC is af vir hierdie toestel. Skakel dit aan in <ph name="BEGIN_LINK" />Android-instellings<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Verwyder jou Chrome-aktiwiteit van Digitale Welstand?</translation> <translation id="8941729603749328384">www.voorbeeld.com</translation> <translation id="8942627711005830162">Maak in 'n ander venster oop</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb index ff3fcc0..3d3a6d5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_am.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">ስልክ ቁጥሮች</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> የሚወርዱ ተሰርዘዋል</translation> <translation id="3822502789641063741">የጣቢያ ማከማቻ ይጽዳ?</translation> +<translation id="3853625385350850937">ለመቀጠል በእርስዎ ስልክ ላይ NFCን ያብሩ</translation> <translation id="3859306556332390985">ወደፊት ፈልግ</translation> <translation id="388596076286380598">ምንም እንኳ እርስዎ ከመስመር ውጭ ቢሆኑም ወይም የእርስዎ ግንኙነት ደካማ ቢሆንም እርስዎ ከሚወዷቸው ጣቢያዎች ጽሑፎችን፣ ቪዲዮዎችን፣ እና ሌላ ይዘት ያግኙ።</translation> <translation id="3894427358181296146">አቃፊ ያክሉ</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">የGoogle መለያ</translation> <translation id="8920114477895755567">የወላጆች ዝርዝሮችን በመጠበቅ ላይ።</translation> <translation id="8922289737868596582">ገጾችን ከመስመር ውጭ ለመጠቀም ከተጨማሪ አማራጮች አዝራሩ ላይ ያውርዱ</translation> +<translation id="8926666909099850184">NFC ለዚህ መሣሪያ ጠፍቷል። በ<ph name="BEGIN_LINK" />Android ቅንበሮች<ph name="END_LINK" /> ውስጥ ያብሩት።</translation> <translation id="8937772741022875483">የChrome እንቅስቃሰዎ ከዲጂታል ብቁ መሆን ይወገድ?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">በሌላ መስኮት ውስጥ ክፈት</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb index 3b92ad96..e40b734b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bg.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Телефонни номера</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> изтегляния бяха изтрити</translation> <translation id="3822502789641063741">Изчистване на данните?</translation> +<translation id="3853625385350850937">За да продължите, включете NFC на устройството си</translation> <translation id="3859306556332390985">Придвижване напред</translation> <translation id="388596076286380598">Получавайте статии, видеоклипове и друго съдържание от сайтовете, които харесвате, дори ако сте офлайн или връзката е лоша.</translation> <translation id="3894427358181296146">Добавяне на папка</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Профил в Google</translation> <translation id="8920114477895755567">Изчакват се подробности за родителите.</translation> <translation id="8922289737868596582">Изтеглете страниците чрез бутона „Още опции“, за да ги използвате офлайн</translation> +<translation id="8926666909099850184">Функцията за NFC е изключена на това устройство. Включете я от <ph name="BEGIN_LINK" />настройките на Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Искате ли активността ви в Chrome да се премахне от „Дигитално благополучие“?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Отваряне в другия прозорец</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb index bd5cdd2f..c533ac8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bs.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Brojevi telefona</translation> <translation id="3819178904835489326">Broj izbrisanih preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Obrisati pohranu?</translation> +<translation id="3853625385350850937">Da nastavite, uključite NFC na uređaju</translation> <translation id="3859306556332390985">Pomakni naprijed</translation> <translation id="388596076286380598">Preuzmite članke, videozapise i drugi sadržaj s web lokacija koje vam se sviđaju, čak i kada ste van mreže ili kada vam je veza slaba.</translation> <translation id="3894427358181296146">Dodaj folder</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google račun</translation> <translation id="8920114477895755567">Čekanje detalja roditelja.</translation> <translation id="8922289737868596582">Preuzmite stranice pomoću dugmeta Više opcija da ih koristite van mreže</translation> +<translation id="8926666909099850184">NFC je isključen na ovom uređaju. Uključite ga u <ph name="BEGIN_LINK" />Postavkama Androida<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Ukloniti aktivnosti Chromea iz Digitalnog blagostanja?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Otvori u drugom prozoru</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 5f7f27a..6cb33ea 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Números de telèfon</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> baixades suprimides</translation> <translation id="3822502789641063741">Esborrem emmagatz. lloc web?</translation> +<translation id="3853625385350850937">Per continuar, activa l'NFC al dispositiu</translation> <translation id="3859306556332390985">Avança</translation> <translation id="388596076286380598">Accedeix a articles, vídeos i altres continguts dels llocs web que t'agraden encara que no tinguis connexió o que la connexió sigui deficient.</translation> <translation id="3894427358181296146">Afegeix una carpeta</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Compte de Google</translation> <translation id="8920114477895755567">S'està esperant la informació parental.</translation> <translation id="8922289737868596582">Baixa pàgines amb el botó Més opcions per utilitzar-les sense connexió</translation> +<translation id="8926666909099850184">L'NFC està desactivada en aquest dispositiu. Activa-la a la <ph name="BEGIN_LINK" />configuració d'Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Vols suprimir l'activitat de Chrome a Benestar digital?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Obre en una altra finestra</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb index 51d8bcab..e842b12 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefonnummern</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> Downloads gelöscht</translation> <translation id="3822502789641063741">Websitespeicher löschen?</translation> +<translation id="3853625385350850937">Aktivieren Sie zum Fortfahren NFC auf Ihrem Gerät</translation> <translation id="3859306556332390985">Nach vorne navigieren</translation> <translation id="388596076286380598">Erhalten Sie Artikel, Videos und weitere Inhalte von Websites, die Ihnen gefallen – auch offline oder bei schlechter Internetverbindung.</translation> <translation id="3894427358181296146">Ordner hinzufügen</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google-Konto</translation> <translation id="8920114477895755567">Warten auf Details zu den Eltern</translation> <translation id="8922289737868596582">Seiten über die Schaltfläche "Weitere Optionen" zur Offline-Ansicht herunterladen</translation> +<translation id="8926666909099850184">NFC ist für dieses Gerät deaktiviert. Sie können die Funktion in den <ph name="BEGIN_LINK" />Android-Einstellungen<ph name="END_LINK" /> aktivieren.</translation> <translation id="8937772741022875483">Ihre Chrome-Aktivitäten aus Digital Wellbeing entfernen?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">In anderem Fenster öffnen</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb index bb9c6fd7..4caef5f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_el.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Αριθμοί τηλεφώνου</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> λήψεις διαγράφηκαν</translation> <translation id="3822502789641063741">Διαγ.αποθ.χώρου ιστότ.;</translation> +<translation id="3853625385350850937">Για να συνεχίσετε, ενεργοποιήστε το NFC στη συσκευή σας.</translation> <translation id="3859306556332390985">Αναζήτηση προς τα εμπρός</translation> <translation id="388596076286380598">Λάβετε άρθρα, βίντεο και άλλο περιεχόμενο από τους ιστοτόπους που σας αρέσουν, ακόμη και όταν είστε εκτός σύνδεσης ή η σύνδεσή σας δεν είναι καλή.</translation> <translation id="3894427358181296146">Προσθήκη φακέλου…</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Λογαριασμός Google</translation> <translation id="8920114477895755567">Αναμονή για λεπτομέρειες γονέων.</translation> <translation id="8922289737868596582">Κατεβάστε σελίδες από το κουμπί "Περισσότερες επιλογές" για να τις χρησιμοποιήσετε εκτός σύνδεσης</translation> +<translation id="8926666909099850184">Το NFC είναι ανενεργό για αυτήν τη συσκευή. Ενεργοποιήστε το στις <ph name="BEGIN_LINK" />Ρυθμίσεις Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Να καταργηθεί η δραστηριότητα του Chrome από το Digital Wellbeing;</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Άνοιγμα σε άλλο παράθυρο</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb index 1dcc6b2..9f3d009 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_en-GB.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Phone numbers</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads deleted</translation> <translation id="3822502789641063741">Clear site storage?</translation> +<translation id="3853625385350850937">To continue, turn on NFC on your device</translation> <translation id="3859306556332390985">Seek forward</translation> <translation id="388596076286380598">Get articles, videos and other content from sites that you like, even if you’re offline or your connection is poor.</translation> <translation id="3894427358181296146">Add folder</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google Account</translation> <translation id="8920114477895755567">Waiting for details of parents.</translation> <translation id="8922289737868596582">Download pages from the More Options button to use them offline</translation> +<translation id="8926666909099850184">NFC is off for this device. Turn it on in <ph name="BEGIN_LINK" />Android settings<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Remove your Chrome activity from Digital Wellbeing?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Open in other window</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb index 1928f7bf..fb95c98 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Números de teléfono</translation> <translation id="3819178904835489326">Descargas eliminadas: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">¿Borrar almacenamiento web?</translation> +<translation id="3853625385350850937">Para continuar, activa la tecnología NFC en el dispositivo</translation> <translation id="3859306556332390985">Buscar hacia delante</translation> <translation id="388596076286380598">Consulta artículos, vídeos y otros contenidos de los sitios web que te gusten incluso sin conexión a Internet o con una conexión inestable.</translation> <translation id="3894427358181296146">Añadir carpeta</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">cuenta de Google</translation> <translation id="8920114477895755567">Esperando detalles de los padres.</translation> <translation id="8922289737868596582">Descarga páginas con el botón con el botón Más opciones para usarlas sin conexión</translation> +<translation id="8926666909099850184">La tecnología NFC está desactivada en este dispositivo. Actívala en los <ph name="BEGIN_LINK" />ajustes de Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">¿Eliminar tu actividad de Chrome de Bienestar digital?</translation> <translation id="8941729603749328384">www.ejemplo.com</translation> <translation id="8942627711005830162">Abrir en otra ventana</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb index d13a16c..805ec0b7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_et.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefoninumbrid</translation> <translation id="3819178904835489326">Tuvastati <ph name="NUMBER_OF_DOWNLOADS" /> allalaadimist</translation> <translation id="3822502789641063741">Kas tühj. saidi salvestusruum?</translation> +<translation id="3853625385350850937">Jätkamiseks lülitage NFC oma seadmes sisse</translation> <translation id="3859306556332390985">Keri edasi</translation> <translation id="388596076286380598">Hankige artikleid, videoid ja muud sisu teile meeldivatelt saitidelt – isegi kui võrguühendus on halb või puudub.</translation> <translation id="3894427358181296146">Kausta lisamine</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google'i konto</translation> <translation id="8920114477895755567">Vanema üksikasjade ootamine.</translation> <translation id="8922289737868596582">Laadige lehed alla nupu Rohkem valikuid abil, et neid võrguühenduseta kasutada</translation> +<translation id="8926666909099850184">NFC on selle seadme puhul välja lülitatud. Lülitage see <ph name="BEGIN_LINK" />Androidi seadetes<ph name="END_LINK" /> sisse.</translation> <translation id="8937772741022875483">Kas eemaldada teie Chrome'i tegevused teenusest Digitaalne heaolu?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Ava teises aknas</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb index 970ca6d..255b289 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fi.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Puhelinnumerot</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> latausta poistettiin.</translation> <translation id="3822502789641063741">Poistetaanko tiedot?</translation> +<translation id="3853625385350850937">Laita NFC päälle puhelimella jatkaaksesi</translation> <translation id="3859306556332390985">Kelaa eteenpäin</translation> <translation id="388596076286380598">Selaa suosikkisivustojesi artikkeleja, videoita ja muuta sisältöä, vaikka olet offline-tilassa tai yhteys on heikko.</translation> <translation id="3894427358181296146">Lisää kansio</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google-tilisi avulla</translation> <translation id="8920114477895755567">Odotetaan vanhempien tietoja.</translation> <translation id="8922289737868596582">Lataa sivuja lisäasetuksien kautta, niin voit käyttää niitä offline-tilassa.</translation> +<translation id="8926666909099850184">NFC on pois päältä tällä laitteella. Voit laittaa sen päälle <ph name="BEGIN_LINK" />Androidin asetuksista<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Poistetaanko Chrome-toimintasi Digitaalisesta hyvinvoinnista?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Avaa uudessa ikkunassa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb index aaad239..a9f67b1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gl.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Números de teléfono</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> descargas eliminadas</translation> <translation id="3822502789641063741">Borrar datos do sitio?</translation> +<translation id="3853625385350850937">Para continuar, activa a NFC no teu dispositivo</translation> <translation id="3859306556332390985">Buscar cara adiante</translation> <translation id="388596076286380598">Accede a artigos, vídeos e outros contidos dos sitios que che gustan, aínda que esteas sen conexión ou esta sexa de mala calidade.</translation> <translation id="3894427358181296146">Engadir cartafol</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Conta de Google</translation> <translation id="8920114477895755567">Agardando pola información dos pais.</translation> <translation id="8922289737868596582">Para ver as páxinas cando non teñas conexión, descárgaas a través do botón Máis opcións</translation> +<translation id="8926666909099850184">A NFC está desactivada para este dispositivo. Actívaa en <ph name="BEGIN_LINK" />Configuración de Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Queres quitar a túa actividade de Chrome de Benestar dixital?</translation> <translation id="8941729603749328384">www.exemplo.com</translation> <translation id="8942627711005830162">Abrir noutra ventá</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 4917c75..5b602dd 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefonski brojevi</translation> <translation id="3819178904835489326">Izbrisano preuzimanja: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Izbrisati pohranu?</translation> +<translation id="3853625385350850937">Da biste nastavili, uključite NFC na svojem uređaju</translation> <translation id="3859306556332390985">Traži unaprijed</translation> <translation id="388596076286380598">Primajte članke, videozapise i druge sadržaje s web-lokacija koje vam se sviđaju, čak i izvanmrežno ili ako vam je veza loša.</translation> <translation id="3894427358181296146">Dodavanje mape</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google Račun</translation> <translation id="8920114477895755567">Čekaju se pojedinosti o nadređenim jedinicama.</translation> <translation id="8922289737868596582">Preuzmite stranice za izvanmrežnu upotrebu pomoću gumba Više opcija</translation> +<translation id="8926666909099850184">NFC je isključen za ovaj uređaj. Uključite ga u <ph name="BEGIN_LINK" />postavkama Androida<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Želite li ukloniti svoju aktivnost u Chromeu iz Digitalne ravnoteže?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Otvori u drugom prozoru</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb index 0e93c0ad..f13986d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hu.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefonszámok</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> letöltés törölve</translation> <translation id="3822502789641063741">Törli a webhely tárhelyét?</translation> +<translation id="3853625385350850937">A folytatáshoz kapcsolja be az NFC-t az eszközén</translation> <translation id="3859306556332390985">Ugrás előre</translation> <translation id="388596076286380598">Hozzájuthat cikkekhez, videókhoz és más tartalmakhoz a kedvenc webhelyeiről – még akkor is, ha offline állapotban van, vagy ha a kapcsolat rossz minőségű.</translation> <translation id="3894427358181296146">Mappa hozzáadása</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google Fiókjába</translation> <translation id="8920114477895755567">Várakozás a szülői adatokra.</translation> <translation id="8922289737868596582">A További lehetőségek gomb segítségével letölthet oldalakat offline használatra</translation> +<translation id="8926666909099850184">Az NFC ki van kapcsolva ezen az eszközön. Kapcsolja be az <ph name="BEGIN_LINK" />Android Beállítások alkalmazásában<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Eltávolítja Chrome-beli tevékenységét a digitális jóllét funkcióból?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Megnyitás másik ablakban</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 4c2324e..8f62a90 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Símanúmer</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> niðurhölum eytt</translation> <translation id="3822502789641063741">Hreinsa geymslu vefsvæða?</translation> +<translation id="3853625385350850937">Kveiktu á NFC í tækinu til að halda áfram</translation> <translation id="3859306556332390985">Leita áfram</translation> <translation id="388596076286380598">Fáðu greinar, myndskeið og annað efni frá vefsvæðum sem þú kannt að meta, jafnvel án nettengingar eða þegar tengingin er léleg.</translation> <translation id="3894427358181296146">Bæta möppu við</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google reikningur</translation> <translation id="8920114477895755567">Bíður eftir upplýsingum um foreldra.</translation> <translation id="8922289737868596582">Náðu í síður með hnappnum „Fleiri valkostir“ til að nota þær án nettengingar</translation> +<translation id="8926666909099850184">Slökkt er á NFC fyrir þetta tæki Kveiktu á því í <ph name="BEGIN_LINK" />stillingum Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Viltu fjarlægja það sem þú gerir í Chrome úr stafrænni vellíðan?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Opna í öðrum glugga</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb index 7bbb0e50..1872b76 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Numeri di telefono</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> download eliminati</translation> <translation id="3822502789641063741">Cancellare i dati dei siti?</translation> +<translation id="3853625385350850937">Per continuare, attiva la funzionalità NFC sul dispositivo</translation> <translation id="3859306556332390985">Posiziona avanti</translation> <translation id="388596076286380598">Accedi ad articoli, video e altri contenuti dai siti che ti piacciono anche quando sei offline o se la connessione è insufficiente.</translation> <translation id="3894427358181296146">Aggiungi cartella</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google Account</translation> <translation id="8920114477895755567">In attesa dei dettagli sui genitori.</translation> <translation id="8922289737868596582">Usa il pulsante Altre opzioni per scaricare le pagine da usare offline</translation> +<translation id="8926666909099850184">Funzionalità NFC non attiva per questo dispositivo. Attivala nelle <ph name="BEGIN_LINK" />Impostazioni Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Vuoi rimuovere la tua attività di Chrome da Benessere digitale?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Apri nell'altra finestra</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 69519052..d2893c52 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">מספרי טלפון</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> הורדות נמחקו</translation> <translation id="3822502789641063741">למחוק נתוני אתר מהאחסון?</translation> +<translation id="3853625385350850937">כדי להמשיך, יש להפעיל את קישוריות ה-NFC במכשיר שלך</translation> <translation id="3859306556332390985">הרץ קדימה</translation> <translation id="388596076286380598">גם כשאין חיבור לאינטרנט וגם כשהחיבור חלש, עדיין אפשר לגשת למאמרים, לסרטונים ולתוכן אחר מאתרים שמעניינים אותך.</translation> <translation id="3894427358181296146">הוספת תיקייה</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">חשבון Google</translation> <translation id="8920114477895755567">ממתין לפרטי ההורים.</translation> <translation id="8922289737868596582">כדי להשתמש בדפים במצב לא מקוון, אפשר להוריד אותם דרך הלחצן 'אפשרויות נוספות'</translation> +<translation id="8926666909099850184">קישוריות ה-NFC מושבתת במכשיר הזה. ניתן להפעיל אותה דרך <ph name="BEGIN_LINK" />הגדרות Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">האם להסיר את הפעילות שלך ב-Chrome מ'שימוש חכם בדיגיטל'?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">פתיחה בחלון האחר</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 cca4ba96..0583a0c 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">ტელეფონის ნომრები</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ჩამოტვირთული ფაილი წაიშალა</translation> <translation id="3822502789641063741">გასუფთავდეს საიტების მეხსიერება?</translation> +<translation id="3853625385350850937">გასაგრძელებლად თქვენს მოწყობილობაზე ჩართეთ NFC</translation> <translation id="3859306556332390985">წინ ძიება</translation> <translation id="388596076286380598">მიიღეთ სტატიები, ვიდეოები და სხვა კონტენტი საიტებიდან, რომლებიც მოგწონთ, მაშინაც კი თუ ხაზგარეშე რეჟიმში ხართ ან ცუდი კავშირი გაქვთ.</translation> <translation id="3894427358181296146">საქაღალდის დამატება</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google ანგარიში</translation> <translation id="8920114477895755567">ველოდებით მშობლების დეტალებს.</translation> <translation id="8922289737868596582">ჩამოტვირთეთ გვერდები ხაზგარეშე რეჟიმში გამოსაყენებლად, „დამატებითი ვარიანტების“ ღილაკის მეშვეობით</translation> +<translation id="8926666909099850184">NFC გამორთულია ამ მოწყობილობისთვის. მისი ჩართვა შეგიძლიათ <ph name="BEGIN_LINK" />Android-ის პარამეტრებიდან<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">გსურთ, ციფრული კომფორტიდან ამოშალოთ თქვენი აქტივობა Chrome-ში?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">სხვა ფანჯარაში გახსნა</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 c06710b..1cb8032 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
@@ -511,7 +511,7 @@ <translation id="4913169188695071480">Жаңыртуу токтотулсун</translation> <translation id="4915549754973153784">Түзмөктөрдү издеп жатканда <ph name="BEGIN_LINK" />жардам алыңыз<ph name="END_LINK" />…</translation> <translation id="4921180162323349895">{FILE_COUNT,plural, =1{# барак}other{# барак}}</translation> -<translation id="4932247056774066048"><ph name="DOMAIN_NAME" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу Chrome’догу дайындарыңыз бул түзмөктөн жок кылынат. Дайындар Google аккаунтуңузда сакталат.</translation> +<translation id="4932247056774066048"><ph name="DOMAIN_NAME" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу Chrome’догу дайын-даректериңиз бул түзмөктөн жок кылынат. Дайындар Google аккаунтуңузда сакталат.</translation> <translation id="4943703118917034429">Виртуалдык чындык</translation> <translation id="4943872375798546930">Натыйжалар жок</translation> <translation id="4958708863221495346"><ph name="URL_OF_THE_CURRENT_TAB" /> экраныңыз менен бөлүшүүдө</translation> @@ -757,7 +757,7 @@ <translation id="6659594942844771486">Өтмөк</translation> <translation id="666731172850799929">Төмөнкүдө ачуу <ph name="APP_NAME" /></translation> <translation id="666981079809192359">Chrome Купуялуулук эскертмеси</translation> -<translation id="6676840375528380067">Chrome'догу дайындарыңыз бул түзмөктөн өчүрүлсүнбү?</translation> +<translation id="6676840375528380067">Chrome'догу дайын-даректериңиз бул түзмөктөн өчүрүлсүнбү?</translation> <translation id="6689172468748959065">Профилдин сүрөттөрү</translation> <translation id="6697492270171225480">Барак табылбай жатканда окшош барактар сунушталсын</translation> <translation id="6697947395630195233">Бул сайт менен бөлүшүү үчүн Chrome жайгашкан жериңиз тууралуу маалыматты алышы керек.</translation> @@ -951,7 +951,7 @@ <translation id="8103578431304235997">Жашыруун өтмөк</translation> <translation id="8105893657415066307"><ph name="DESCRIPTION" /> <ph name="SEPARATOR" /> <ph name="FILE_SIZE" /></translation> <translation id="8109613176066109935">Кыстармаларды бардык түзмөктөрүңүздө колдонуу үчүн шайкештирүүнү күйгүзүңүз</translation> -<translation id="8110087112193408731">Chrome'ду колдонуу дайындарыңыз Санариптик бакубаттык кызматында көрсөтүлсүнбү?</translation> +<translation id="8110087112193408731">Chrome'ду колдонуу дайын-даректериңиз Санариптик бакубаттык кызматында көрсөтүлсүнбү?</translation> <translation id="8116925261070264013">Үнсүз кылынган</translation> <translation id="813082847718468539">Сайттын маалыматын карап көрүү</translation> <translation id="8156139159503939589">Кайсы тилдерде окуй аласыз?</translation> @@ -1049,7 +1049,7 @@ <translation id="8912362522468806198">Google каттоо эсеби</translation> <translation id="8920114477895755567">Ата-эненин чоо-жайы күтүлүүдө.</translation> <translation id="8922289737868596582">"Дагы параметрлер" баскычын басып, оффлайн режиминде иштөө үчүн барактарды жүктөп алуу</translation> -<translation id="8937772741022875483">Chrome'ду колдонуу дайындарыңыз Санариптик бакубаттык кызматынан өчүрүлсүнбү?</translation> +<translation id="8937772741022875483">Chrome'ду колдонуу дайын-даректериңиз Санариптик бакубаттык кызматынан өчүрүлсүнбү?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Башка терезеде ачуу</translation> <translation id="8951232171465285730">Chrome сизге <ph name="MEGABYTES" /> Мб үнөмдөп берди</translation> @@ -1059,7 +1059,7 @@ <translation id="8970887620466824814">Бир жерден ката кетти.</translation> <translation id="8972098258593396643">Демейки папкага жүктөлүп алынсынбы?</translation> <translation id="8993760627012879038">Жаңы өтмөктү жашыруун режимде ачуу</translation> -<translation id="8998729206196772491">Сиз <ph name="MANAGED_DOMAIN" /> доменинин администратору тарабынан башкарылган каттоо эсебине кирип жатасыз. Ал мындан тарта сиздин каттоо эсебиңизге байланган Chrome дайындарыңызды башкарып калат. Chrome каттоо эсебинен чыксаңыз, бул түзмөктөн дайындарыңыз жок кылынып, бирок Google Каттоо эсебинде сакталып кала берет.</translation> +<translation id="8998729206196772491">Сиз <ph name="MANAGED_DOMAIN" /> доменинин администратору тарабынан башкарылган каттоо эсебине кирип жатасыз. Ал мындан тарта сиздин каттоо эсебиңизге байланган Chrome дайын-даректериңизды башкарып калат. Chrome каттоо эсебинен чыксаңыз, бул түзмөктөн дайын-даректериңиз жок кылынып, бирок Google Каттоо эсебинде сакталып кала берет.</translation> <translation id="9019902583201351841">Ата-энеңиз башкарат</translation> <translation id="9028914725102941583">Бардык түзмөктөр менен бөлүшүү үчүн шайкештирүүнү күйгүзүңүз</translation> <translation id="9040142327097499898">Билдирүүлөргө уруксат берилди. Жайгашкан жерди аныктоо жөндөөсү бул түзмөктө өчүрүлгөн.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb index 5f0f1af..5569ee36 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lt.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefono numeriai</translation> <translation id="3819178904835489326">Ištrinta atsisiuntimų: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Išvalyti svet. saugyklą?</translation> +<translation id="3853625385350850937">Norėdami tęsti, įjunkite ALR įrenginyje</translation> <translation id="3859306556332390985">Eiti pirmyn</translation> <translation id="388596076286380598">Gaukite straipsnių, vaizdo įrašų ir kito turinio iš jums patinkančių svetainių, net jei esate neprisijungę arba prastas jūsų ryšys.</translation> <translation id="3894427358181296146">Aplanko pridėjimas</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">„Google“ paskyra</translation> <translation id="8920114477895755567">Laukiama išsamios tėvų informacijos.</translation> <translation id="8922289737868596582">Atsisiųskite puslapius spustelėję mygtuką „Daugiau parinkčių“, kad galėtumėte naudoti juos neprisijungę</translation> +<translation id="8926666909099850184">ALR išjungtas šiame įrenginyje. Įjunkite ALR <ph name="BEGIN_LINK" />„Android“ nustatymuose<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Pašalinti „Chrome“ veiklą iš Skaitmeninės gerovės programos?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Atidaryti kitame lange</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb index 958a376..935d63b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mk.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Телефонски броеви</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> преземања се избришани</translation> <translation id="3822502789641063741">Испразни го просторот?</translation> +<translation id="3853625385350850937">За да продолжите, вклучете ја NFC на телефонот</translation> <translation id="3859306556332390985">Барај понапред</translation> <translation id="388596076286380598">Добивајте статии, видеа и други содржини од сајтови што ви се допаѓаат, дури и ако сте офлајн или ако врската е слаба.</translation> <translation id="3894427358181296146">Додај папка</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Сметка на Google</translation> <translation id="8920114477895755567">Се чекаат детали за родителите.</translation> <translation id="8922289737868596582">Преземете ги страниците преку копчето „Повеќе опции“ за да ги користите офлајн</translation> +<translation id="8926666909099850184">NFC е исклучена за уредов. Вклучете ја во <ph name="BEGIN_LINK" />„Поставки за Android“<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Да се отстрани вашата активност на Chrome од „Дигитална благосостојба“?</translation> <translation id="8941729603749328384">www.primer.com</translation> <translation id="8942627711005830162">Отвори во друг прозорец</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb index 06950d84..1cd88c3b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Nombor telefon</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> muat turun dipadamkan</translation> <translation id="3822502789641063741">Hapuskan storan tapak?</translation> +<translation id="3853625385350850937">Hidupkan NFC pada peranti anda untuk meneruskan</translation> <translation id="3859306556332390985">Cari ke hadapan</translation> <translation id="388596076286380598">Dapatkan artikel, video dan kandungan lain daripada tapak yang anda sukai, walaupun anda di luar talian atau sambungan anda lemah.</translation> <translation id="3894427358181296146">Tambah folder</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Akaun Google</translation> <translation id="8920114477895755567">Menunggu butiran ibu bapa.</translation> <translation id="8922289737868596582">Muat turun halaman daripada butang Lagi pilihan untuk digunakan di luar talian</translation> +<translation id="8926666909099850184">NFC dimatikan untuk peranti ini. Hidupkan dalam <ph name="BEGIN_LINK" />Tetapan Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Alih keluar aktiviti Chrome anda daripada Kesejahteraan Digital?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Buka dalam tetingkap lain</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb index 88df74f..f2df11c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">ဖုန်းနံပါတ်များ</translation> <translation id="3819178904835489326">ဒေါင်းလုဒ် <ph name="NUMBER_OF_DOWNLOADS" /> ခုကို ဖျက်လိုက်သည်</translation> <translation id="3822502789641063741">ဆိုက်နေရာကိုရှင်းမလား။</translation> +<translation id="3853625385350850937">ရှေ့ဆက်ရန် သင့်စက်ပေါ်ရှိ NFC ကို ဖွင့်ပါ</translation> <translation id="3859306556332390985">အရှေ့သို့ ရစ်ရန်</translation> <translation id="388596076286380598">အော့ဖ်လိုင်းဖြစ်နေစဉ် သို့မဟုတ် လိုင်းမကောင်းသည့်အချိန်တွင်ပင် သင်ကြိုက်နှစ်သက်သည့် ဝဘ်ဆိုက်များမှ ဆောင်းပါး၊ ဗီဒီယိုနှင့် အခြားအကြောင်းအရာများကို ရယူလိုက်ပါ။</translation> <translation id="3894427358181296146">ဖိုလ်ဒါ ထည့်ရန်</translation> @@ -1048,6 +1049,7 @@ <translation id="8912362522468806198">Google အကောင့်</translation> <translation id="8920114477895755567">မိဘများ၏ အသေးစိတ်အား စောင့်ဆိုင်းနေသည်။</translation> <translation id="8922289737868596582">စာမျက်နှာများကို အော့ဖ်လိုင်းသုံးရန် 'နောက်ထပ်ရွေးချယ်စရာများ' ခလုတ်မှ ဒေါင်းလုဒ်လုပ်ပါ</translation> +<translation id="8926666909099850184">ဤစက်အတွက် NFC ကို ပိတ်ထားသည်။ <ph name="BEGIN_LINK" />Android ဆက်တင်များ<ph name="END_LINK" /> ထဲတွင် ၎င်းကို ဖွင့်ပါ။</translation> <translation id="8937772741022875483">'ဒစ်ဂျစ်တယ် အာရောဂျံ' မှနေ၍ သင်၏ Chrome လုပ်ဆောင်ချက်ကို ဖယ်ရှားလိုပါသလား။</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">အခြားဝင်းဒိုးတွင် ဖွင့်ရန်</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb index 9a8d7a5..e536021d9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefoonnummers</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads verwijderd</translation> <translation id="3822502789641063741">Site-opslag wissen?</translation> +<translation id="3853625385350850937">Schakel NFC in op je apparaat om door te gaan</translation> <translation id="3859306556332390985">Vooruit zoeken</translation> <translation id="388596076286380598">Krijg artikelen, video's en andere content van sites die je leuk vindt, ook als je offline bent of je een slechte verbinding hebt.</translation> <translation id="3894427358181296146">Map toevoegen</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google-account</translation> <translation id="8920114477895755567">Wachten op gegevens van ouders.</translation> <translation id="8922289737868596582">Download pagina's via de knop 'Meer opties' om ze offline te gebruiken</translation> +<translation id="8926666909099850184">NFC is uitgeschakeld voor dit apparaat. Schakel deze functie in via de <ph name="BEGIN_LINK" />Android-instellingen<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Je Chrome-activiteit verwijderen uit Digitaal welzijn?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Openen in een ander venster</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 9c55dbf..9333a8c 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Numery telefonów</translation> <translation id="3819178904835489326">Usunięte pobrane pliki: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Wyczyścić dane witryn?</translation> +<translation id="3853625385350850937">Aby kontynuować, włącz NFC na urządzeniu</translation> <translation id="3859306556332390985">Przewiń do przodu</translation> <translation id="388596076286380598">Możesz czytać artykuły i oglądać filmy oraz inne treści ze swoich ulubionych stron nawet wtedy, gdy jesteś offline lub masz słabe połączenie.</translation> <translation id="3894427358181296146">Dodaj folder</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Konta Google</translation> <translation id="8920114477895755567">Oczekiwanie na informacje o rodzicach.</translation> <translation id="8922289737868596582">Pobierz strony, używając przycisku Więcej opcji, by korzystać z nich w trybie offline</translation> +<translation id="8926666909099850184">Funkcja NFC na tym urządzeniu jest wyłączona. Włącz ją w <ph name="BEGIN_LINK" />Ustawieniach Androida<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Usunąć Twoją aktywność w Chrome z Cyfrowej równowagi?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Otwórz w innym oknie</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb index 682c6fc..09bd7c5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Números de telefone</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> downloads excluídos</translation> <translation id="3822502789641063741">Limpar armazenamento de sites?</translation> +<translation id="3853625385350850937">Para continuar, ative a NFC no dispositivo</translation> <translation id="3859306556332390985">Avançar</translation> <translation id="388596076286380598">Receba artigos, vídeos e outros conteúdos dos sites que você gosta, mesmo que você esteja off-line ou com uma conexão ruim.</translation> <translation id="3894427358181296146">Adicionar pasta</translation> @@ -1050,6 +1051,7 @@ <translation id="8912362522468806198">Conta do Google</translation> <translation id="8920114477895755567">Aguardando detalhes dos pais.</translation> <translation id="8922289737868596582">Use o botão Mais opções para fazer o download de páginas e acessá-las off-line</translation> +<translation id="8926666909099850184">A NFC está desativada neste dispositivo. Ative-a nas <ph name="BEGIN_LINK" />configurações do Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Remover sua atividade do Chrome do Bem-estar digital?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Abrir em outra janela</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb index 5dca3f3..fe8ca0c9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Números de telefone</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> transferências eliminadas</translation> <translation id="3822502789641063741">Limpar armazenamento do site?</translation> +<translation id="3853625385350850937">Para continuar, ative o NFC no dispositivo.</translation> <translation id="3859306556332390985">Procurar para a frente</translation> <translation id="388596076286380598">Obtenha artigos, vídeos e outros conteúdos dos sites de que gosta, mesmo se estiver offline ou se a ligação for fraca.</translation> <translation id="3894427358181296146">Adicionar pasta</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Conta Google</translation> <translation id="8920114477895755567">A aguardar os detalhes dos pais.</translation> <translation id="8922289737868596582">Transfira páginas através do botão Mais opções para as utilizar offline.</translation> +<translation id="8926666909099850184">O NFC está desativado para este dispositivo. Ative-o nas <ph name="BEGIN_LINK" />Definições do Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Pretende remover a sua atividade do Chrome do Bem-estar digital?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Abrir noutra janela</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb index c6302fb7..bfef6a8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_si.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">දුරකථන අංක</translation> <translation id="3819178904835489326">බාගැනීම් <ph name="NUMBER_OF_DOWNLOADS" />ක් මැකිණි</translation> <translation id="3822502789641063741">අඩවි ආචයනය හිස් කරනවා ද?</translation> +<translation id="3853625385350850937">ඉදිරියට යාමට, ඔබේ උපාංගය මත NFC සක්රීය කරන්න</translation> <translation id="3859306556332390985">ඉදිරියට සොයන්න</translation> <translation id="388596076286380598">ඔබ නොබැඳි හෝ ඔබේ සබැඳුම දුර්වල වුවත්, ඔබ කැමති අඩවි වලින් ලිපි, වීඩියෝ සහ වෙනත් අන්තර්ගතයන් ලබා ගන්න.</translation> <translation id="3894427358181296146">ෆෝල්ඩරය එක් කරන්න</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google ගිණුම</translation> <translation id="8920114477895755567">මාපියන්ගේ විස්තර සඳහා පොරොත්තු වෙමින්</translation> <translation id="8922289737868596582">නොබැඳිව භාවිතා කිරීම සඳහා තවත් විකල්ප බොත්තමෙන් පිටු බාගන්න</translation> +<translation id="8926666909099850184">මෙම උපාංගය සඳහා NFC අක්රියයි. <ph name="BEGIN_LINK" />Android සැකසීම්<ph name="END_LINK" /> තුළින් එය සක්රීය කරන්න.</translation> <translation id="8937772741022875483">ඩිජිටල් සුවතාව වෙතින් ඔබේ Chrome ක්රියාකාරකම් ඉවත් කරන්න ද?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">වෙනත් කවුළුවක විවෘත කරන්න</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb index 772fba0..982c433 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Бројеви телефона</translation> <translation id="3819178904835489326">Избрисана преузимања: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Бришете меморију сајта?</translation> +<translation id="3853625385350850937">Да бисте наставили, укључите NFC на уређају</translation> <translation id="3859306556332390985">Премотај унапред</translation> <translation id="388596076286380598">Добијајте чланке, видео снимке и други садржај са сајтова који вам се свиђају, чак и када сте офлајн или је веза слаба.</translation> <translation id="3894427358181296146">Додајте директоријум</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google налога</translation> <translation id="8920114477895755567">Чекају се детаљи родитеља.</translation> <translation id="8922289737868596582">Преузмите странице помоћу дугмета Још опција да бисте их користили офлајн</translation> +<translation id="8926666909099850184">NFC је искључен за овај уређај. Укључите га у <ph name="BEGIN_LINK" />Android подешавањима<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Желите ли да уклоните Chrome активности из Дигиталног благостања?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Отвори у другом прозору</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb index bdfa359..f464f96 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sv.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Telefonnummer</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> nedladdningar har raderats</translation> <translation id="3822502789641063741">Rensa webbplatslagring?</translation> +<translation id="3853625385350850937">Fortsätt genom att aktivera NFC på enheten</translation> <translation id="3859306556332390985">Sök framåt</translation> <translation id="388596076286380598">Kom åt artiklar, videor och annat innehåll från webbplatser som du gillar, även när du är offline eller har dålig anslutning.</translation> <translation id="3894427358181296146">Lägg till mapp</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Google-konto</translation> <translation id="8920114477895755567">Väntar på föräldrauppgifter.</translation> <translation id="8922289737868596582">Ladda ned sidor via knappen Fler alternativ så att du kan använda dem offline</translation> +<translation id="8926666909099850184">NFC är inte aktiverat på enheten. Aktivera det i <ph name="BEGIN_LINK" />Android-inställningarna<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Vill du ta bort din aktivitet i Chrome från Digitalt välmående?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Öppna i ett annat fönster</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb index c814c6f2..511afbaa 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sw.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Nambari za simu</translation> <translation id="3819178904835489326">Vipakuliwa <ph name="NUMBER_OF_DOWNLOADS" /> vimefutwa</translation> <translation id="3822502789641063741">Ungependa kufuta hifadhi ya tovuti?</translation> +<translation id="3853625385350850937">Ili uendelee, washa NFC kwenye kifaa chako</translation> <translation id="3859306556332390985">Peleka mbele</translation> <translation id="388596076286380598">Pata makala, video na maudhui mengine kutoka tovuti unazopenda, hata ikiwa uko nje ya mtandao au muunganisho wako ni dhaifu.</translation> <translation id="3894427358181296146">Ongeza folda</translation> @@ -1048,6 +1049,7 @@ <translation id="8912362522468806198">Akaunti ya Google</translation> <translation id="8920114477895755567">Tunasubiri maelezo ya wazazi.</translation> <translation id="8922289737868596582">Pakua kurasa kwenye kitufe cha Chaguo zaidi ili uzitumie nje ya mtandao</translation> +<translation id="8926666909099850184">Kipengele cha NFC kimezimwa kwenye kifaa hiki. Kiwashe katika <ph name="BEGIN_LINK" />Mipangilio ya Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Ungependa kuondoa Shughuli zako za Chrome kwenye mpango wa Nidhamu Dijitali?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Fungua katika dirisha jingine</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 fb855fa..1a10db3 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
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Номери телефонів</translation> <translation id="3819178904835489326">Видалено завантажених файлів: <ph name="NUMBER_OF_DOWNLOADS" /></translation> <translation id="3822502789641063741">Видалити дані сайтів?</translation> +<translation id="3853625385350850937">Щоб продовжити, увімкніть NFC на пристрої</translation> <translation id="3859306556332390985">Далі</translation> <translation id="388596076286380598">Отримуйте статті, відео й інший контент від сайтів, які вам подобаються, навіть у режимі офлайн або при слабкому з'єднанні.</translation> <translation id="3894427358181296146">Додати папку</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">Обліковий запис Google</translation> <translation id="8920114477895755567">Очікування даних батьків.</translation> <translation id="8922289737868596582">Щоб переглядати сторінки офлайн, завантажуйте їх, натиснувши кнопку "Більше опцій"</translation> +<translation id="8926666909099850184">NFC вимкнено на цьому пристрої. Увімкніть цю функцію в <ph name="BEGIN_LINK" />налаштуваннях Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Видалити активність у Chrome із Цифрового добробуту?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Відкрити в іншому вікні</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb index 45046f8..7874ff1 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-HK.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">電話號碼</translation> <translation id="3819178904835489326">已刪除 <ph name="NUMBER_OF_DOWNLOADS" /> 個下載項目</translation> <translation id="3822502789641063741">要清除網站儲存空間的資料嗎?</translation> +<translation id="3853625385350850937">開啟裝置上的 NFC 即可繼續</translation> <translation id="3859306556332390985">向前快轉</translation> <translation id="388596076286380598">即使離線或連線速度欠佳,您仍可從喜歡的網站取得文章、影片和其他內容。</translation> <translation id="3894427358181296146">新增資料夾</translation> @@ -1048,6 +1049,7 @@ <translation id="8912362522468806198">Google 帳戶</translation> <translation id="8920114477895755567">正在等候家長的詳細資訊。</translation> <translation id="8922289737868596582">透過「更多選項」按鈕下載網頁,方便喺離線嗰陣使用</translation> +<translation id="8926666909099850184">此裝置的 NFC 已關閉,請在「<ph name="BEGIN_LINK" />Android 設定<ph name="END_LINK" />」中開啟。</translation> <translation id="8937772741022875483">要從「健康數碼生活」移除您的 Chrome 活動記錄嗎?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">在其他視窗中開啟</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb index 284e697..5d2cb02 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zu.xtb
@@ -366,6 +366,7 @@ <translation id="381841723434055211">Izinombolo zefoni</translation> <translation id="3819178904835489326"><ph name="NUMBER_OF_DOWNLOADS" /> ukulanda kutholakele</translation> <translation id="3822502789641063741">Sula isitoreji sesayithi?</translation> +<translation id="3853625385350850937">Ukuze uqhubeke, vula i-NFC kudivayisi yakho</translation> <translation id="3859306556332390985">Funela phambili</translation> <translation id="388596076286380598">Thola ama-athikili, amavidiyo, nokunye okuqukethwe kusuka kumasayithi owathandayo, ngisho noma ungaxhumekile ku-inthanethi noma uxhumo lwakho lungaqinile.</translation> <translation id="3894427358181296146">Engeza ifolda</translation> @@ -1049,6 +1050,7 @@ <translation id="8912362522468806198">I-Akhawunti ye-Google</translation> <translation id="8920114477895755567">Ilinde imininingwane yabazali.</translation> <translation id="8922289737868596582">Amakhasi okulanda kusuka kuzinketho eziningi ongawasebenzisa ngokungaxhunyiwe ku-inthanethi</translation> +<translation id="8926666909099850184">I-NFC ivaliwe kule divayisi. Ivule kokuthi <ph name="BEGIN_LINK" />Izilungiselelo ze-Android<ph name="END_LINK" />.</translation> <translation id="8937772741022875483">Susa umsebenzi wakho we-Chrome kusukela ku-Digital Wellbeing?</translation> <translation id="8941729603749328384">www.example.com</translation> <translation id="8942627711005830162">Vula kwelinye iwindi</translation>
diff --git a/chrome/browser/ui/autofill/sms_client_impl.cc b/chrome/browser/ui/autofill/sms_client_impl.cc index 17d7b25..af1e461 100644 --- a/chrome/browser/ui/autofill/sms_client_impl.cc +++ b/chrome/browser/ui/autofill/sms_client_impl.cc
@@ -19,7 +19,6 @@ } void SmsClientImpl::Subscribe() { - // TODO(goto): Deal with corner cases like multiple forms in the DOM. fetcher_->Subscribe(origin_, this); }
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc index db5e815..09f1f284c 100644 --- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc +++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -44,10 +44,12 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/toolbar/app_menu_model.h" #include "chrome/browser/ui/web_applications/app_browser_controller.h" +#include "chrome/browser/ui/web_applications/test/web_app_browsertest_util.h" #include "chrome/browser/ui/web_applications/web_app_dialog_utils.h" #include "chrome/browser/ui/web_applications/web_app_launch_utils.h" #include "chrome/browser/ui/web_applications/web_app_menu_model.h" #include "chrome/browser/web_applications/components/app_registry_controller.h" +#include "chrome/browser/web_applications/components/external_install_options.h" #include "chrome/browser/web_applications/components/web_app_helpers.h" #include "chrome/browser/web_applications/components/web_app_provider_base.h" #include "chrome/browser/web_applications/test/web_app_install_observer.h" @@ -1338,6 +1340,25 @@ kEnabled); } +IN_PROC_BROWSER_TEST_P(SharedPWATest, CannotInstallOverPolicyPwa) { + ASSERT_TRUE(https_server()->Start()); + + web_app::ExternalInstallOptions options = + web_app::CreateInstallOptions(GetInstallableAppURL()); + options.install_source = web_app::ExternalInstallSource::kExternalPolicy; + web_app::PendingAppManagerInstall(profile(), options); + + // Avoid any interference if active browser was changed by PWA install. + Browser* new_browser = + NavigateInNewWindowAndAwaitInstallabilityCheck(GetInstallableAppURL()); + + EXPECT_EQ(GetAppMenuCommandState(IDC_CREATE_SHORTCUT, new_browser), + kDisabled); + EXPECT_EQ(GetAppMenuCommandState(IDC_INSTALL_PWA, new_browser), kNotPresent); + EXPECT_EQ(GetAppMenuCommandState(IDC_OPEN_IN_PWA_WINDOW, new_browser), + kEnabled); +} + // Tests that the command for OpenActiveTabInPwaWindow is available for secure // pages in an app's scope. IN_PROC_BROWSER_TEST_P(SharedPWATest, ReparentWebAppForSecureActiveTab) {
diff --git a/chrome/browser/ui/find_bar/find_bar_controller.cc b/chrome/browser/ui/find_bar/find_bar_controller.cc index 37a11c5..daeeb5a 100644 --- a/chrome/browser/ui/find_bar/find_bar_controller.cc +++ b/chrome/browser/ui/find_bar/find_bar_controller.cc
@@ -6,7 +6,6 @@ #include <algorithm> -#include "base/i18n/rtl.h" #include "base/logging.h" #include "base/no_destructor.h" #include "base/strings/string_util.h" @@ -25,19 +24,11 @@ #include "content/public/browser/notification_types.h" #include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/web_contents.h" -#include "ui/gfx/geometry/rect.h" #include "ui/gfx/range/range.h" using content::NavigationController; using content::WebContents; -namespace { - -// The minimum space between the FindInPage window and the search result. -constexpr int kMinFindWndDistanceFromSelection = 5; - -} // namespace - FindBarController::FindBarController(std::unique_ptr<FindBar> find_bar, Browser* browser) : find_bar_(std::move(find_bar)), @@ -196,46 +187,6 @@ } } -// static -gfx::Rect FindBarController::GetLocationForFindbarView( - gfx::Rect view_location, - const gfx::Rect& dialog_bounds, - const gfx::Rect& avoid_overlapping_rect) { - if (base::i18n::IsRTL()) { - int boundary = dialog_bounds.width() - view_location.width(); - view_location.set_x(std::min(view_location.x(), boundary)); - } else { - view_location.set_x(std::max(view_location.x(), dialog_bounds.x())); - } - - gfx::Rect new_pos = view_location; - - // If the selection rectangle intersects the current position on screen then - // we try to move our dialog to the left (right for RTL) of the selection - // rectangle. - if (!avoid_overlapping_rect.IsEmpty() && - avoid_overlapping_rect.Intersects(new_pos)) { - if (base::i18n::IsRTL()) { - new_pos.set_x(avoid_overlapping_rect.x() + - avoid_overlapping_rect.width() + - (2 * kMinFindWndDistanceFromSelection)); - - // If we moved it off-screen to the right, we won't move it at all. - if (new_pos.x() + new_pos.width() > dialog_bounds.width()) - new_pos = view_location; // Reset. - } else { - new_pos.set_x(avoid_overlapping_rect.x() - new_pos.width() - - kMinFindWndDistanceFromSelection); - - // If we moved it off-screen to the left, we won't move it at all. - if (new_pos.x() < 0) - new_pos = view_location; // Reset. - } - } - - return new_pos; -} - void FindBarController::OnFindResultAvailable( content::WebContents* web_contents) { DCHECK_EQ(web_contents, web_contents_);
diff --git a/chrome/browser/ui/views/cookie_info_view.cc b/chrome/browser/ui/views/cookie_info_view.cc index af61da0..3a21f56 100644 --- a/chrome/browser/ui/views/cookie_info_view.cc +++ b/chrome/browser/ui/views/cookie_info_view.cc
@@ -70,7 +70,53 @@ /////////////////////////////////////////////////////////////////////////////// // CookieInfoView, public: -CookieInfoView::CookieInfoView() = default; +CookieInfoView::CookieInfoView() { + constexpr int kLabelValuePadding = 96; + + const ChromeLayoutProvider* const provider = ChromeLayoutProvider::Get(); + const gfx::Insets& dialog_insets = + provider->GetInsetsMetric(views::INSETS_DIALOG); + SetBorder(views::CreateEmptyBorder(0, dialog_insets.left(), 0, + dialog_insets.right())); + + View* const contents = SetContents(std::make_unique<views::View>()); + views::GridLayout* layout = + contents->SetLayoutManager(std::make_unique<views::GridLayout>()); + + int three_column_layout_id = 0; + views::ColumnSet* column_set = layout->AddColumnSet(three_column_layout_id); + column_set->AddColumn( + provider->GetControlLabelGridAlignment(), views::GridLayout::CENTER, + views::GridLayout::kFixedSize, views::GridLayout::USE_PREF, 0, 0); + column_set->AddPaddingColumn(views::GridLayout::kFixedSize, + kLabelValuePadding); + column_set->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER, + views::GridLayout::kFixedSize, + views::GridLayout::USE_PREF, 0, 0); + column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1.0, + views::GridLayout::USE_PREF, 0, 0); + + name_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_NAME_LABEL); + + content_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_CONTENT_LABEL); + + domain_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_DOMAIN_LABEL); + + path_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_PATH_LABEL); + + send_for_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_SENDFOR_LABEL); + + created_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_CREATED_LABEL); + + expires_value_field_ = AddLabelRow(three_column_layout_id, layout, + IDS_COOKIES_COOKIE_EXPIRES_LABEL); +} CookieInfoView::~CookieInfoView() = default; @@ -120,12 +166,6 @@ /////////////////////////////////////////////////////////////////////////////// // CookieInfoView, views::View overrides. -void CookieInfoView::ViewHierarchyChanged( - const views::ViewHierarchyChangedDetails& details) { - if (details.is_add && details.child == this) - Init(); -} - views::Textfield* CookieInfoView::AddLabelRow(int layout_id, views::GridLayout* layout, int label_message_id) { @@ -148,57 +188,3 @@ textfield_ptr->SetTextColor(SkColorSetRGB(0x78, 0x78, 0x78)); return textfield_ptr; } - -/////////////////////////////////////////////////////////////////////////////// -// CookieInfoView, private: - -void CookieInfoView::Init() { - constexpr int kLabelValuePadding = 96; - - // Ensure we don't run this more than once and leak memory. - DCHECK(!name_value_field_); - - const ChromeLayoutProvider* const provider = ChromeLayoutProvider::Get(); - const gfx::Insets& dialog_insets = - provider->GetInsetsMetric(views::INSETS_DIALOG); - SetBorder(views::CreateEmptyBorder(0, dialog_insets.left(), 0, - dialog_insets.right())); - - View* const contents = SetContents(std::make_unique<views::View>()); - views::GridLayout* layout = - contents->SetLayoutManager(std::make_unique<views::GridLayout>()); - - int three_column_layout_id = 0; - views::ColumnSet* column_set = layout->AddColumnSet(three_column_layout_id); - column_set->AddColumn( - provider->GetControlLabelGridAlignment(), views::GridLayout::CENTER, - views::GridLayout::kFixedSize, views::GridLayout::USE_PREF, 0, 0); - column_set->AddPaddingColumn(views::GridLayout::kFixedSize, - kLabelValuePadding); - column_set->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER, - views::GridLayout::kFixedSize, - views::GridLayout::USE_PREF, 0, 0); - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::CENTER, 1.0, - views::GridLayout::USE_PREF, 0, 0); - - name_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_NAME_LABEL); - - content_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_CONTENT_LABEL); - - domain_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_DOMAIN_LABEL); - - path_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_PATH_LABEL); - - send_for_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_SENDFOR_LABEL); - - created_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_CREATED_LABEL); - - expires_value_field_ = AddLabelRow(three_column_layout_id, layout, - IDS_COOKIES_COOKIE_EXPIRES_LABEL); -}
diff --git a/chrome/browser/ui/views/cookie_info_view.h b/chrome/browser/ui/views/cookie_info_view.h index 91bb9eb..cde651e 100644 --- a/chrome/browser/ui/views/cookie_info_view.h +++ b/chrome/browser/ui/views/cookie_info_view.h
@@ -43,20 +43,12 @@ // Enables or disables the cookie property text fields. void EnableCookieDisplay(bool enabled); - protected: - // views::View: - void ViewHierarchyChanged( - const views::ViewHierarchyChangedDetails& details) override; - private: // Layout helper routines. views::Textfield* AddLabelRow(int layout_id, views::GridLayout* layout, int label_message_id); - // Sets up the view layout. - void Init(); - // Individual property labels views::Textfield* name_value_field_ = nullptr; views::Textfield* content_value_field_ = nullptr;
diff --git a/chrome/browser/ui/views/find_bar_host.cc b/chrome/browser/ui/views/find_bar_host.cc index e316230..58205f3 100644 --- a/chrome/browser/ui/views/find_bar_host.cc +++ b/chrome/browser/ui/views/find_bar_host.cc
@@ -6,6 +6,7 @@ #include <algorithm> +#include "base/i18n/rtl.h" #include "build/build_config.h" #include "chrome/browser/ui/find_bar/find_bar_controller.h" #include "chrome/browser/ui/find_bar/find_tab_helper.h" @@ -21,6 +22,7 @@ #include "ui/base/l10n/l10n_util.h" #include "ui/events/event.h" #include "ui/events/keycodes/keyboard_codes.h" +#include "ui/gfx/geometry/rect.h" #include "ui/views/border.h" #include "ui/views/focus/external_focus_tracker.h" #include "ui/views/widget/root_view.h" @@ -29,6 +31,51 @@ using content::NativeWebKeyboardEvent; +namespace { + +gfx::Rect GetLocationForFindBarView(gfx::Rect view_location, + const gfx::Rect& dialog_bounds, + const gfx::Rect& avoid_overlapping_rect) { + if (base::i18n::IsRTL()) { + int boundary = dialog_bounds.width() - view_location.width(); + view_location.set_x(std::min(view_location.x(), boundary)); + } else { + view_location.set_x(std::max(view_location.x(), dialog_bounds.x())); + } + + gfx::Rect new_pos = view_location; + + // The minimum space between the FindInPage window and the search result. + constexpr int kMinFindWndDistanceFromSelection = 5; + + // If the selection rectangle intersects the current position on screen then + // we try to move our dialog to the left (right for RTL) of the selection + // rectangle. + if (!avoid_overlapping_rect.IsEmpty() && + avoid_overlapping_rect.Intersects(new_pos)) { + if (base::i18n::IsRTL()) { + new_pos.set_x(avoid_overlapping_rect.x() + + avoid_overlapping_rect.width() + + (2 * kMinFindWndDistanceFromSelection)); + + // If we moved it off-screen to the right, we won't move it at all. + if (new_pos.x() + new_pos.width() > dialog_bounds.width()) + new_pos = view_location; // Reset. + } else { + new_pos.set_x(avoid_overlapping_rect.x() - new_pos.width() - + kMinFindWndDistanceFromSelection); + + // If we moved it off-screen to the left, we won't move it at all. + if (new_pos.x() < 0) + new_pos = view_location; // Reset. + } + } + + return new_pos; +} + +} // namespace + //////////////////////////////////////////////////////////////////////////////// // FindBarHost, public: @@ -285,10 +332,8 @@ GetWidgetPositionNative(&avoid_overlapping_rect); } - gfx::Rect new_pos = FindBarController::GetLocationForFindbarView( - view_location, widget_bounds, avoid_overlapping_rect); - - return new_pos; + return GetLocationForFindBarView(view_location, widget_bounds, + avoid_overlapping_rect); } void FindBarHost::SetDialogPosition(const gfx::Rect& new_pos) {
diff --git a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc index 35218a63..92bef765 100644 --- a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc +++ b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
@@ -231,11 +231,10 @@ } void ContentSettingImageView::UpdateImage() { - SetImage(content_setting_image_model_ - ->GetIcon(icon_color_ ? icon_color_.value() - : color_utils::DeriveDefaultIconColor( - GetForegroundColor())) - .AsImageSkia()); + gfx::Image icon = content_setting_image_model_->GetIcon(icon_color_.value_or( + color_utils::DeriveDefaultIconColor(GetForegroundColor()))); + if (!icon.IsEmpty()) + SetImage(icon.AsImageSkia()); } void ContentSettingImageView::AnimationEnded(const gfx::Animation* animation) {
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc index 740fa3f..768b0fa 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.cc
@@ -54,8 +54,12 @@ namespace { std::unique_ptr<views::ImageButton> CreateCloseButton( - views::ButtonListener* listener) { + views::ButtonListener* listener, + SkColor color) { auto close_button = CreateVectorImageButton(listener); + SetImageFromVectorIconWithColor( + close_button.get(), vector_icons::kCloseRoundedIcon, + GetLayoutConstant(LOCATION_BAR_ICON_SIZE), color); close_button->SetTooltipText(l10n_util::GetStringUTF16(IDS_APP_CLOSE)); close_button->SetBorder(views::CreateEmptyBorder( gfx::Insets(GetLayoutConstant(LOCATION_BAR_CHILD_INTERIOR_PADDING)))); @@ -81,7 +85,7 @@ // page. class CustomTabBarTitleOriginView : public views::View { public: - CustomTabBarTitleOriginView() { + explicit CustomTabBarTitleOriginView(SkColor background_color) { auto title_label = std::make_unique<views::Label>( base::string16(), CONTEXT_BODY_TEXT_LARGE, views::style::TextStyle::STYLE_PRIMARY); @@ -90,6 +94,7 @@ views::style::STYLE_SECONDARY, gfx::DirectionalityMode::DIRECTIONALITY_AS_URL); + title_label->SetBackgroundColor(background_color); title_label->SetElideBehavior(gfx::ElideBehavior::ELIDE_TAIL); title_label->SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT); title_label->SetProperty(views::kFlexBehaviorKey, @@ -97,6 +102,7 @@ views::MinimumFlexSizeRule::kScaleToMinimum, views::MaximumFlexSizeRule::kPreferred)); + location_label->SetBackgroundColor(background_color); location_label->SetElideBehavior(gfx::ElideBehavior::ELIDE_HEAD); location_label->SetHorizontalAlignment( gfx::HorizontalAlignment::ALIGN_LEFT); @@ -120,11 +126,6 @@ location_label_->SetVisible(!location.empty()); } - void SetColors(SkColor background_color) { - title_label_->SetBackgroundColor(background_color); - location_label_->SetBackgroundColor(background_color); - } - int GetMinimumWidth() const { // As labels are not multi-line, the layout will calculate a minimum size // that would fit the entire text (potentially a long url). Instead, set a @@ -173,16 +174,38 @@ delegate_(delegate), browser_(browser_view->browser()) { set_context_menu_controller(this); + base::Optional<SkColor> optional_theme_color = + browser_->app_controller()->GetThemeColor(); + + const bool dark_mode = GetNativeTheme()->ShouldUseDarkColors(); + const SkColor default_frame_color = +#if defined(OS_CHROMEOS) + // Ash system frames differ from ChromeOS browser frames. + ash::kDefaultFrameColor; +#else + ThemeProperties::GetDefaultColor(ThemeProperties::COLOR_FRAME, false, + dark_mode); +#endif + + title_bar_color_ = optional_theme_color.value_or(default_frame_color); + + background_color_ = dark_mode ? default_frame_color : SK_ColorWHITE; + + SetBackground(views::CreateSolidBackground(background_color_)); + + const SkColor foreground_color = + color_utils::GetColorWithMaxContrast(background_color_); const gfx::FontList& font_list = views::style::GetFont( CONTEXT_OMNIBOX_PRIMARY, views::style::STYLE_PRIMARY); - close_button_ = AddChildView(CreateCloseButton(this)); + close_button_ = AddChildView(CreateCloseButton(this, foreground_color)); location_icon_view_ = AddChildView(std::make_unique<LocationIconView>(font_list, this, this)); - auto title_origin_view = std::make_unique<CustomTabBarTitleOriginView>(); + auto title_origin_view = + std::make_unique<CustomTabBarTitleOriginView>(background_color_); title_origin_view->SetProperty( views::kFlexBehaviorKey, views::FlexSpecification::ForSizeRule( views::MinimumFlexSizeRule::kScaleToMinimum, @@ -209,85 +232,6 @@ return kViewClassName; } -gfx::Size CustomTabBarView::CalculatePreferredSize() const { - // ToolbarView::GetMinimumSize() uses the preferred size of its children, so - // tell it the minimum size this control will fit into (its layout will - // automatically have this control fill available space). - return gfx::Size(layout_manager_->interior_margin().width() + - title_origin_view_->GetMinimumSize().width() + - close_button_->GetPreferredSize().width() + - location_icon_view_->GetPreferredSize().width(), - GetLayoutManager()->GetPreferredSize(this).height()); -} - -void CustomTabBarView::OnPaintBackground(gfx::Canvas* canvas) { - views::View::OnPaintBackground(canvas); - - SkColor separator_color = - color_utils::IsDark(background_color_) ? SK_ColorWHITE : SK_ColorBLACK; - constexpr float kSeparatorOpacity = 0.15f; - - gfx::Rect bounds = GetLocalBounds(); - const gfx::Size separator_size = gfx::Size(bounds.width(), 1); - - // Inset the bounds by 1 on the bottom, so we draw the bottom border inside - // the custom tab bar. - bounds.Inset(0, 0, 0, 1); - - // Custom tab/content separator (bottom border). - canvas->FillRect(gfx::Rect(bounds.bottom_left(), separator_size), - color_utils::AlphaBlend(separator_color, background_color_, - kSeparatorOpacity)); - - // Don't render the separator if there is already sufficient contrast between - // the custom tab bar and the title bar. - constexpr float kMaxContrastForSeparator = 1.1f; - if (color_utils::GetContrastRatio(background_color_, title_bar_color_) > - kMaxContrastForSeparator) { - return; - } - - // Frame/Custom tab separator (top border). - canvas->FillRect(gfx::Rect(bounds.origin(), separator_size), - color_utils::AlphaBlend(separator_color, title_bar_color_, - kSeparatorOpacity)); -} - -void CustomTabBarView::ChildPreferredSizeChanged(views::View* child) { - Layout(); - SchedulePaint(); -} - -void CustomTabBarView::OnThemeChanged() { - base::Optional<SkColor> optional_theme_color = - browser_->app_controller()->GetThemeColor(); - - const bool dark_mode = GetNativeTheme()->ShouldUseDarkColors(); - const SkColor default_frame_color = -#if defined(OS_CHROMEOS) - // Ash system frames differ from ChromeOS browser frames. - ash::kDefaultFrameColor; -#else - ThemeProperties::GetDefaultColor(ThemeProperties::COLOR_FRAME, false, - dark_mode); -#endif - - title_bar_color_ = optional_theme_color.value_or(default_frame_color); - - background_color_ = dark_mode ? default_frame_color : SK_ColorWHITE; - - SetBackground(views::CreateSolidBackground(background_color_)); - - const SkColor foreground_color = - color_utils::GetColorWithMaxContrast(background_color_); - - SetImageFromVectorIconWithColor( - close_button_, vector_icons::kCloseRoundedIcon, - GetLayoutConstant(LOCATION_BAR_ICON_SIZE), foreground_color); - - title_origin_view_->SetColors(background_color_); -} - void CustomTabBarView::TabChangedAt(content::WebContents* contents, int index, TabChangeType change_type) { @@ -337,6 +281,78 @@ Layout(); } +gfx::Size CustomTabBarView::CalculatePreferredSize() const { + // ToolbarView::GetMinimumSize() uses the preferred size of its children, so + // tell it the minimum size this control will fit into (its layout will + // automatically have this control fill available space). + return gfx::Size(layout_manager_->interior_margin().width() + + title_origin_view_->GetMinimumSize().width() + + close_button_->GetPreferredSize().width() + + location_icon_view_->GetPreferredSize().width(), + GetLayoutManager()->GetPreferredSize(this).height()); +} + +void CustomTabBarView::OnPaintBackground(gfx::Canvas* canvas) { + views::View::OnPaintBackground(canvas); + + SkColor separator_color = + color_utils::IsDark(background_color_) ? SK_ColorWHITE : SK_ColorBLACK; + constexpr float kSeparatorOpacity = 0.15f; + + gfx::Rect bounds = GetLocalBounds(); + const gfx::Size separator_size = gfx::Size(bounds.width(), 1); + + // Inset the bounds by 1 on the bottom, so we draw the bottom border inside + // the custom tab bar. + bounds.Inset(0, 0, 0, 1); + + // Custom tab/content separator (bottom border). + canvas->FillRect(gfx::Rect(bounds.bottom_left(), separator_size), + color_utils::AlphaBlend(separator_color, background_color_, + kSeparatorOpacity)); + + // Don't render the separator if there is already sufficient contrast between + // the custom tab bar and the title bar. + constexpr float kMaxContrastForSeparator = 1.1f; + if (color_utils::GetContrastRatio(background_color_, title_bar_color_) > + kMaxContrastForSeparator) { + return; + } + + // Frame/Custom tab separator (top border). + canvas->FillRect(gfx::Rect(bounds.origin(), separator_size), + color_utils::AlphaBlend(separator_color, title_bar_color_, + kSeparatorOpacity)); +} + +void CustomTabBarView::ChildPreferredSizeChanged(views::View* child) { + Layout(); + SchedulePaint(); +} + +void CustomTabBarView::ShowContextMenuForViewImpl( + views::View* source, + const gfx::Point& point, + ui::MenuSourceType source_type) { + if (!context_menu_model_) { + context_menu_model_ = std::make_unique<ui::SimpleMenuModel>(this); + context_menu_model_->AddItemWithStringId(IDC_COPY_URL, IDS_COPY_URL); + } + context_menu_runner_ = std::make_unique<views::MenuRunner>( + context_menu_model_.get(), + views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU); + context_menu_runner_->RunMenuAt( + views::View::GetWidget(), nullptr, gfx::Rect(point, gfx::Size()), + views::MenuAnchorPosition::kTopLeft, source_type); +} + +void CustomTabBarView::ExecuteCommand(int command_id, int event_flags) { + if (command_id == IDC_COPY_URL) { + base::RecordAction(base::UserMetricsAction("CopyCustomTabBarUrl")); + chrome::ExecuteCommand(browser_, command_id); + } +} + SkColor CustomTabBarView::GetIconLabelBubbleSurroundingForegroundColor() const { return title_origin_view_->GetLocationColor(); } @@ -357,11 +373,6 @@ void CustomTabBarView::OnLocationIconDragged(const ui::MouseEvent& event) {} -SkColor CustomTabBarView::GetSecurityChipColor( - security_state::SecurityLevel security_level) const { - return GetOmniboxSecurityChipColor(GetThemeProvider(), security_level); -} - bool CustomTabBarView::ShowPageInfoDialog() { return ::ShowPageInfoDialog( GetWebContents(), @@ -370,8 +381,11 @@ bubble_anchor_util::Anchor::kCustomTabBar); } -const LocationBarModel* CustomTabBarView::GetLocationBarModel() const { - return delegate_->GetLocationBarModel(); +SkColor CustomTabBarView::GetSecurityChipColor( + security_state::SecurityLevel security_level) const { + return GetOmniboxSecurityChipColor( + &ThemeService::GetThemeProviderForProfile(browser_->profile()), + security_level); } gfx::ImageSkia CustomTabBarView::GetLocationIcon( @@ -382,6 +396,10 @@ GetSecurityChipColor(GetLocationBarModel()->GetSecurityLevel())); } +const LocationBarModel* CustomTabBarView::GetLocationBarModel() const { + return delegate_->GetLocationBarModel(); +} + void CustomTabBarView::ButtonPressed(views::Button* sender, const ui::Event& event) { GoBackToApp(); @@ -391,11 +409,6 @@ GoBackToApp(); } -bool CustomTabBarView::IsShowingOriginForTesting() const { - return title_origin_view_ != nullptr && - title_origin_view_->IsShowingOriginForTesting(); -} - void CustomTabBarView::GoBackToApp() { content::WebContents* web_contents = GetWebContents(); web_app::AppBrowserController* app_controller = @@ -443,25 +456,7 @@ GetFocusManager()->SetFocusedView(location_icon_view_); } -void CustomTabBarView::ExecuteCommand(int command_id, int event_flags) { - if (command_id == IDC_COPY_URL) { - base::RecordAction(base::UserMetricsAction("CopyCustomTabBarUrl")); - chrome::ExecuteCommand(browser_, command_id); - } -} - -void CustomTabBarView::ShowContextMenuForViewImpl( - views::View* source, - const gfx::Point& point, - ui::MenuSourceType source_type) { - if (!context_menu_model_) { - context_menu_model_ = std::make_unique<ui::SimpleMenuModel>(this); - context_menu_model_->AddItemWithStringId(IDC_COPY_URL, IDS_COPY_URL); - } - context_menu_runner_ = std::make_unique<views::MenuRunner>( - context_menu_model_.get(), - views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU); - context_menu_runner_->RunMenuAt( - views::View::GetWidget(), nullptr, gfx::Rect(point, gfx::Size()), - views::MenuAnchorPosition::kTopLeft, source_type); +bool CustomTabBarView::IsShowingOriginForTesting() const { + return title_origin_view_ != nullptr && + title_origin_view_->IsShowingOriginForTesting(); }
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h index 19250c5..bd41350 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view.h
@@ -13,6 +13,7 @@ #include "ui/base/models/simple_menu_model.h" #include "ui/views/accessible_pane_view.h" #include "ui/views/context_menu_controller.h" +#include "ui/views/controls/button/button.h" namespace gfx { class Rect; @@ -21,7 +22,6 @@ namespace views { class FlexLayout; class MenuRunner; -class ImageButton; } class CustomTabBarTitleOriginView; @@ -47,19 +47,20 @@ LocationIconView* location_icon_view() { return location_icon_view_; } - // views::AccessiblePaneView: + // views::View: gfx::Rect GetAnchorBoundsInScreen() const override; const char* GetClassName() const override; - gfx::Size CalculatePreferredSize() const override; - void OnPaintBackground(gfx::Canvas* canvas) override; - void ChildPreferredSizeChanged(views::View* child) override; - void OnThemeChanged() override; // TabstripModelObserver: void TabChangedAt(content::WebContents* contents, int index, TabChangeType change_type) override; + // views::View: + gfx::Size CalculatePreferredSize() const override; + void OnPaintBackground(gfx::Canvas* canvas) override; + void ChildPreferredSizeChanged(views::View* child) override; + // IconLabelBubbleView::Delegate: SkColor GetIconLabelBubbleSurroundingForegroundColor() const override; SkColor GetIconLabelBubbleBackgroundColor() const override; @@ -82,7 +83,7 @@ // Methods for testing. base::string16 title_for_testing() const { return last_title_; } base::string16 location_for_testing() const { return last_location_; } - views::ImageButton* close_button_for_testing() const { return close_button_; } + views::Button* close_button_for_testing() const { return close_button_; } ui::SimpleMenuModel* context_menu_for_testing() const { return context_menu_model_.get(); } @@ -112,7 +113,7 @@ base::string16 last_title_; base::string16 last_location_; - views::ImageButton* close_button_ = nullptr; + views::Button* close_button_ = nullptr; LocationBarView::Delegate* delegate_ = nullptr; LocationIconView* location_icon_view_ = nullptr; CustomTabBarTitleOriginView* title_origin_view_ = nullptr;
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc index 1c0d0aa..4e8a161 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
@@ -26,7 +26,6 @@ #include "content/public/test/test_navigation_observer.h" #include "net/dns/mock_host_resolver.h" #include "ui/base/clipboard/clipboard.h" -#include "ui/views/controls/button/image_button.h" namespace {
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc index 7837e4b..8ea5a17 100644 --- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc +++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -395,6 +395,7 @@ } void IconLabelBubbleView::SetImage(const gfx::ImageSkia& image_skia) { + DCHECK(!image_skia.isNull()); LabelButton::SetImage(STATE_NORMAL, image_skia); }
diff --git a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc index 1a142621..0411b2d 100644 --- a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc +++ b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc
@@ -57,8 +57,9 @@ KeywordHintView::KeywordHintView(LocationBarView* parent, Profile* profile) : Button(parent), profile_(profile) { auto chip_container = std::make_unique<views::View>(); - auto chip_label = - std::make_unique<ChipLabel>(base::string16(), CONTEXT_OMNIBOX_DECORATION); + + chip_label_ = chip_container->AddChildView(std::make_unique<ChipLabel>( + base::string16(), CONTEXT_OMNIBOX_DECORATION)); auto* layout = SetLayoutManager(std::make_unique<views::FlexLayout>()); layout->SetCrossAxisAlignment(views::LayoutAlignment::kCenter) @@ -67,32 +68,9 @@ views::MinimumFlexSizeRule::kPreferredSnapToZero, views::MaximumFlexSizeRule::kPreferred, true)); - const ui::ThemeProvider* theme_provider = - &ThemeService::GetThemeProviderForProfile(profile_); - const SkColor leading_label_text_color = - GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_TEXT_DEFAULT); - const SkColor background_color = - GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_BACKGROUND); - leading_label_ = CreateLabel(leading_label_text_color, background_color); + leading_label_ = AddChildView(std::make_unique<views::Label>( + base::string16(), CONTEXT_OMNIBOX_DECORATION)); - const SkColor tab_border_color = - GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_BUBBLE_OUTLINE); - SkColor text_color = leading_label_text_color; - SkColor tab_bg_color = - GetOmniboxColor(theme_provider, OmniboxPart::RESULTS_BACKGROUND); - if (OmniboxFieldTrial::IsExperimentalKeywordModeEnabled()) { - text_color = SK_ColorWHITE; - tab_bg_color = tab_border_color; - } - chip_label->SetEnabledColor(text_color); - chip_label->SetBackgroundColor(tab_bg_color); - - chip_container->SetBackground(CreateBackgroundFromPainter( - views::Painter::CreateRoundRectWith1PxBorderPainter( - tab_bg_color, tab_border_color, - views::LayoutProvider::Get()->GetCornerRadiusMetric( - views::EMPHASIS_HIGH)))); - chip_label_ = chip_container->AddChildView(std::move(chip_label)); chip_container->SetLayoutManager(std::make_unique<views::FillLayout>()); chip_container->SetProperty( views::kFlexBehaviorKey, @@ -102,7 +80,8 @@ chip_container->SizeToPreferredSize(); chip_container_ = AddChildView(std::move(chip_container)); - trailing_label_ = CreateLabel(text_color, background_color); + trailing_label_ = AddChildView(std::make_unique<views::Label>( + base::string16(), CONTEXT_OMNIBOX_DECORATION)); SetFocusBehavior(FocusBehavior::NEVER); @@ -207,18 +186,20 @@ } void KeywordHintView::OnThemeChanged() { - const SkColor leading_label_text_color = GetOmniboxColor( - GetThemeProvider(), OmniboxPart::LOCATION_BAR_TEXT_DEFAULT); + const ui::ThemeProvider* theme_provider = GetThemeProvider(); + + const SkColor leading_label_text_color = + GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_TEXT_DEFAULT); const SkColor background_color = - GetOmniboxColor(GetThemeProvider(), OmniboxPart::LOCATION_BAR_BACKGROUND); + GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_BACKGROUND); leading_label_->SetEnabledColor(leading_label_text_color); leading_label_->SetBackgroundColor(background_color); - const SkColor tab_border_color = GetOmniboxColor( - GetThemeProvider(), OmniboxPart::LOCATION_BAR_BUBBLE_OUTLINE); + const SkColor tab_border_color = + GetOmniboxColor(theme_provider, OmniboxPart::LOCATION_BAR_BUBBLE_OUTLINE); SkColor text_color = leading_label_text_color; SkColor tab_bg_color = - GetOmniboxColor(GetThemeProvider(), OmniboxPart::RESULTS_BACKGROUND); + GetOmniboxColor(theme_provider, OmniboxPart::RESULTS_BACKGROUND); if (OmniboxFieldTrial::IsExperimentalKeywordModeEnabled()) { text_color = SK_ColorWHITE; tab_bg_color = tab_border_color; @@ -235,12 +216,3 @@ trailing_label_->SetEnabledColor(text_color); trailing_label_->SetBackgroundColor(background_color); } - -views::Label* KeywordHintView::CreateLabel(SkColor text_color, - SkColor background_color) { - auto label = std::make_unique<views::Label>(base::string16(), - CONTEXT_OMNIBOX_DECORATION); - label->SetEnabledColor(text_color); - label->SetBackgroundColor(background_color); - return AddChildView(std::move(label)); -}
diff --git a/chrome/browser/ui/views/location_bar/keyword_hint_view.h b/chrome/browser/ui/views/location_bar/keyword_hint_view.h index 5b20fbd..8267211b 100644 --- a/chrome/browser/ui/views/location_bar/keyword_hint_view.h +++ b/chrome/browser/ui/views/location_bar/keyword_hint_view.h
@@ -44,8 +44,6 @@ void OnThemeChanged() override; private: - // Creates a label for non-chip text. - views::Label* CreateLabel(SkColor text_color, SkColor background_color); Profile* profile_ = nullptr;
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index fb306e9..32b633d 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -305,8 +305,8 @@ } SkColor LocationBarView::GetColor(OmniboxPart part) const { - DCHECK(GetWidget()); - return GetOmniboxColor(GetThemeProvider(), part); + return GetOmniboxColor(&ThemeService::GetThemeProviderForProfile(profile_), + part); } SkColor LocationBarView::GetOpaqueBorderColor() const { @@ -428,7 +428,8 @@ } void LocationBarView::OnKeywordFaviconFetched(const gfx::Image& icon) { - selected_keyword_view_->SetCustomImage(icon.AsImageSkia()); + DCHECK(!icon.IsEmpty()); + selected_keyword_view_->SetCustomImage(icon); } void LocationBarView::Layout() { @@ -501,15 +502,14 @@ const TemplateURL* template_url = TemplateURLServiceFactory::GetForProfile(profile_) ->GetTemplateURLForKeyword(keyword); + gfx::Image image; if (template_url && (template_url->type() == TemplateURL::OMNIBOX_API_EXTENSION)) { - gfx::Image image = - extensions::OmniboxAPI::Get(profile_)->GetOmniboxIcon( - template_url->GetExtensionId()); - selected_keyword_view_->SetCustomImage(image.AsImageSkia()); + image = extensions::OmniboxAPI::Get(profile_)->GetOmniboxIcon( + template_url->GetExtensionId()); } else if (template_url && template_url->type() == TemplateURL::NORMAL && OmniboxFieldTrial::IsExperimentalKeywordModeEnabled()) { - gfx::Image image = + image = omnibox_view() ->model() ->client() @@ -517,13 +517,8 @@ template_url, base::BindOnce(&LocationBarView::OnKeywordFaviconFetched, base::Unretained(this))); - if (!image.IsEmpty()) - selected_keyword_view_->SetCustomImage(image.AsImageSkia()); - else - selected_keyword_view_->ResetImage(); - } else { - selected_keyword_view_->ResetImage(); } + selected_keyword_view_->SetCustomImage(image); } } else if (location_icon_view_->ShouldShowText()) { leading_decorations.AddDecoration(vertical_padding, location_height, false,
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.cc b/chrome/browser/ui/views/location_bar/location_icon_view.cc index 2ec53c2..a503154 100644 --- a/chrome/browser/ui/views/location_bar/location_icon_view.cc +++ b/chrome/browser/ui/views/location_bar/location_icon_view.cc
@@ -36,6 +36,7 @@ DCHECK(delegate_); SetID(VIEW_ID_LOCATION_ICON); + Update(true); SetUpForAnimation(); // Readability is guaranteed by the omnibox theme. @@ -100,10 +101,6 @@ node_data->role = ax::mojom::Role::kPopUpButton; } -void LocationIconView::AddedToWidget() { - Update(true); -} - int LocationIconView::GetMinimumLabelTextWidth() const { int width = 0; @@ -202,11 +199,12 @@ gfx::ImageSkia icon = delegate_->GetLocationIcon( base::BindOnce(&LocationIconView::OnIconFetched, icon_fetch_weak_ptr_factory_.GetWeakPtr())); - - SetImage(icon); + if (!icon.isNull()) + SetImage(icon); } void LocationIconView::OnIconFetched(const gfx::Image& image) { + DCHECK(!image.IsEmpty()); SetImage(image.AsImageSkia()); }
diff --git a/chrome/browser/ui/views/location_bar/location_icon_view.h b/chrome/browser/ui/views/location_bar/location_icon_view.h index 6975f6a..8c5c4d3 100644 --- a/chrome/browser/ui/views/location_bar/location_icon_view.h +++ b/chrome/browser/ui/views/location_bar/location_icon_view.h
@@ -72,7 +72,6 @@ bool IsBubbleShowing() const override; bool OnMousePressed(const ui::MouseEvent& event) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override; - void AddedToWidget() override; // Returns what the minimum width for the label text. int GetMinimumLabelTextWidth() const;
diff --git a/chrome/browser/ui/views/location_bar/selected_keyword_view.cc b/chrome/browser/ui/views/location_bar/selected_keyword_view.cc index 323247d..318a43b9 100644 --- a/chrome/browser/ui/views/location_bar/selected_keyword_view.cc +++ b/chrome/browser/ui/views/location_bar/selected_keyword_view.cc
@@ -34,16 +34,15 @@ SelectedKeywordView::~SelectedKeywordView() {} -void SelectedKeywordView::SetCustomImage(const gfx::ImageSkia& image) { - IconLabelBubbleView::SetImage(image); - using_custom_image_ = true; -} - -void SelectedKeywordView::ResetImage() { - IconLabelBubbleView::SetImage(gfx::CreateVectorIcon( - vector_icons::kSearchIcon, GetLayoutConstant(LOCATION_BAR_ICON_SIZE), - GetForegroundColor())); - using_custom_image_ = false; +void SelectedKeywordView::SetCustomImage(const gfx::Image& image) { + using_custom_image_ = !image.IsEmpty(); + if (using_custom_image_) { + IconLabelBubbleView::SetImage(image.AsImageSkia()); + } else { + IconLabelBubbleView::SetImage(gfx::CreateVectorIcon( + vector_icons::kSearchIcon, GetLayoutConstant(LOCATION_BAR_ICON_SIZE), + GetForegroundColor())); + } } void SelectedKeywordView::OnBoundsChanged(const gfx::Rect& previous_bounds) { @@ -67,7 +66,7 @@ void SelectedKeywordView::OnThemeChanged() { IconLabelBubbleView::OnThemeChanged(); if (!using_custom_image_) - ResetImage(); + SetCustomImage(gfx::Image()); } void SelectedKeywordView::SetKeyword(const base::string16& keyword) {
diff --git a/chrome/browser/ui/views/location_bar/selected_keyword_view.h b/chrome/browser/ui/views/location_bar/selected_keyword_view.h index 21fdedf..5290c26 100644 --- a/chrome/browser/ui/views/location_bar/selected_keyword_view.h +++ b/chrome/browser/ui/views/location_bar/selected_keyword_view.h
@@ -29,11 +29,9 @@ Profile* profile); ~SelectedKeywordView() override; - // Sets the icon for this chip to |image|. - void SetCustomImage(const gfx::ImageSkia& image); - - // Resets the icon for this chip to its default. - void ResetImage(); + // Sets the icon for this chip to |image|. If there is no custom image (i.e. + // |image| is empty), resets the icon for this chip to its default. + void SetCustomImage(const gfx::Image& image); // IconLabelBubbleView: gfx::Size CalculatePreferredSize() const override;
diff --git a/chrome/browser/ui/views/page_action/page_action_icon_view.cc b/chrome/browser/ui/views/page_action/page_action_icon_view.cc index db8a8fb..938682a 100644 --- a/chrome/browser/ui/views/page_action/page_action_icon_view.cc +++ b/chrome/browser/ui/views/page_action/page_action_icon_view.cc
@@ -219,8 +219,10 @@ ? theme->GetSystemColor( ui::NativeTheme::kColorId_ProminentButtonColor) : icon_color_; - SetImage(gfx::CreateVectorIconWithBadge(GetVectorIcon(), icon_size_, - icon_color, GetVectorIconBadge())); + gfx::ImageSkia image = gfx::CreateVectorIconWithBadge( + GetVectorIcon(), icon_size_, icon_color, GetVectorIconBadge()); + if (!image.isNull()) + SetImage(image); } void PageActionIconView::InstallLoadingIndicator() {
diff --git a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.cc b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.cc index 5a46613..d2b52a0 100644 --- a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.cc +++ b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.cc
@@ -187,30 +187,33 @@ DCHECK_EQ(state_, State::ERROR); // Retry button has been clicked to retry setting of PluginVm environment // after error occurred. - StartPluginVmImageDownload(); + StartInstallation(); return false; } bool PluginVmInstallerView::Cancel() { - if (state_ == State::DOWNLOADING_DLC || - state_ == State::START_DLC_DOWNLOADING) { - plugin_vm_installer_->CancelDlcDownload(); - - plugin_vm::RecordPluginVmSetupResultHistogram( - plugin_vm::PluginVmSetupResult::kUserCancelledDownloadingPluginVmDlc); + switch (state_) { + case State::STARTING: + case State::DOWNLOADING_DLC: + plugin_vm::RecordPluginVmSetupResultHistogram( + plugin_vm::PluginVmSetupResult::kUserCancelledDownloadingPluginVmDlc); + break; + case State::DOWNLOADING: + plugin_vm::RecordPluginVmSetupResultHistogram( + plugin_vm::PluginVmSetupResult:: + kUserCancelledDownloadingPluginVmImage); + break; + case State::IMPORTING: + plugin_vm::RecordPluginVmSetupResultHistogram( + plugin_vm::PluginVmSetupResult::kUserCancelledImportingPluginVmImage); + break; + case State::ERROR: + return true; + default: + NOTREACHED(); } - if (state_ == State::DOWNLOADING || state_ == State::START_DOWNLOADING) { - plugin_vm_installer_->CancelDownload(); - plugin_vm::RecordPluginVmSetupResultHistogram( - plugin_vm::PluginVmSetupResult::kUserCancelledDownloadingPluginVmImage); - } - if (state_ == State::IMPORTING) { - plugin_vm_installer_->CancelImport(); - - plugin_vm::RecordPluginVmSetupResultHistogram( - plugin_vm::PluginVmSetupResult::kUserCancelledImportingPluginVmImage); - } + plugin_vm_installer_->Cancel(); return true; } @@ -219,13 +222,6 @@ return gfx::Size(kWindowWidth, kWindowHeight); } -void PluginVmInstallerView::OnDlcDownloadStarted() { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - - state_ = State::DOWNLOADING_DLC; - OnStateUpdated(); -} - void PluginVmInstallerView::OnDlcDownloadProgressUpdated( double progress, base::TimeDelta elapsed_time) { @@ -239,24 +235,19 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_EQ(state_, State::DOWNLOADING_DLC); - state_ = State::START_DOWNLOADING; - OnStateUpdated(); - - plugin_vm_installer_->StartDownload(); -} - -void PluginVmInstallerView::OnDlcDownloadCancelled() { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); -} - -void PluginVmInstallerView::OnDownloadStarted() { - DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - DCHECK_EQ(state_, State::START_DOWNLOADING); - state_ = State::DOWNLOADING; OnStateUpdated(); } +// TODO(timloh): Cancelling the installation immediately closes the dialog, but +// getting back to a clean state could take several seconds. If a user then +// re-opens the dialog, it could cause it to fail unexpectedly. We should make +// use of these callback to avoid this (and possibly merge them into a single +// callback). +void PluginVmInstallerView::OnDlcDownloadCancelled() { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); +} + void PluginVmInstallerView::OnDownloadProgressUpdated( uint64_t bytes_downloaded, int64_t content_length, @@ -275,7 +266,6 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_EQ(state_, State::DOWNLOADING); - plugin_vm_installer_->StartImport(); state_ = State::IMPORTING; OnStateUpdated(); } @@ -336,9 +326,8 @@ base::string16 PluginVmInstallerView::GetBigMessage() const { switch (state_) { - case State::START_DLC_DOWNLOADING: + case State::STARTING: case State::DOWNLOADING_DLC: - case State::START_DOWNLOADING: case State::DOWNLOADING: case State::IMPORTING: return l10n_util::GetStringUTF16( @@ -359,9 +348,8 @@ base::string16 PluginVmInstallerView::GetMessage() const { switch (state_) { - case State::START_DLC_DOWNLOADING: + case State::STARTING: case State::DOWNLOADING_DLC: - case State::START_DOWNLOADING: return l10n_util::GetStringUTF16( IDS_PLUGIN_VM_INSTALLER_START_DOWNLOADING_MESSAGE); case State::DOWNLOADING: @@ -378,7 +366,6 @@ DCHECK(reason_); switch (*reason_) { default: - case Reason::LOGIC_ERROR: case Reason::SIGNAL_NOT_CONNECTED: case Reason::OPERATION_IN_PROGRESS: case Reason::UNEXPECTED_DISK_IMAGE_STATUS: @@ -428,9 +415,8 @@ int PluginVmInstallerView::GetCurrentDialogButtons() const { switch (state_) { - case State::START_DLC_DOWNLOADING: + case State::STARTING: case State::DOWNLOADING_DLC: - case State::START_DOWNLOADING: case State::DOWNLOADING: case State::IMPORTING: return ui::DIALOG_BUTTON_CANCEL; @@ -450,9 +436,8 @@ base::string16 PluginVmInstallerView::GetCurrentDialogButtonLabel( ui::DialogButton button) const { switch (state_) { - case State::START_DLC_DOWNLOADING: + case State::STARTING: case State::DOWNLOADING_DLC: - case State::START_DOWNLOADING: case State::DOWNLOADING: case State::IMPORTING: { DCHECK_EQ(button, ui::DIALOG_BUTTON_CANCEL); @@ -489,14 +474,13 @@ plugin_vm::PluginVmSetupResult::kPluginVmIsNotAllowed); } - if (state_ == State::START_DOWNLOADING) - StartPluginVmImageDownload(); + if (state_ == State::STARTING) + StartInstallation(); else OnStateUpdated(); } void PluginVmInstallerView::OnStateUpdated() { - // TODO(https://crbug.com/1017511): display failure reasons. SetBigMessageLabel(); SetMessageLabel(); SetBigImage(); @@ -515,8 +499,7 @@ } const bool progress_bar_visible = - state_ == State::START_DLC_DOWNLOADING || - state_ == State::DOWNLOADING_DLC || state_ == State::START_DOWNLOADING || + state_ == State::STARTING || state_ == State::DOWNLOADING_DLC || state_ == State::DOWNLOADING || state_ == State::IMPORTING; progress_bar_->SetVisible(progress_bar_visible); // Values outside the range [0,1] display an infinite loading animation. @@ -620,14 +603,14 @@ IDR_PLUGIN_VM_INSTALLER)); } -void PluginVmInstallerView::StartPluginVmImageDownload() { +void PluginVmInstallerView::StartInstallation() { // In each case setup starts from this function (when dialog is opened or // retry button is clicked). setup_start_tick_ = base::TimeTicks::Now(); - state_ = State::START_DLC_DOWNLOADING; + state_ = State::DOWNLOADING_DLC; OnStateUpdated(); plugin_vm_installer_->SetObserver(this); - plugin_vm_installer_->StartDlcDownload(); + plugin_vm_installer_->Start(); }
diff --git a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.h b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.h index 6150b02..36f02285 100644 --- a/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.h +++ b/chrome/browser/ui/views/plugin_vm/plugin_vm_installer_view.h
@@ -33,12 +33,10 @@ gfx::Size CalculatePreferredSize() const override; // plugin_vm::PluginVmImageDownload::Observer implementation. - void OnDlcDownloadStarted() override; void OnDlcDownloadProgressUpdated(double progress, base::TimeDelta elapsed_time) override; void OnDlcDownloadCompleted() override; void OnDlcDownloadCancelled() override; - void OnDownloadStarted() override; void OnDownloadProgressUpdated(uint64_t bytes_downloaded, int64_t content_length, base::TimeDelta elapsed_time) override; @@ -62,13 +60,12 @@ private: enum class State { - START_DLC_DOWNLOADING, // PluginVm DLC downloading should be started. - DOWNLOADING_DLC, // PluginVm DLC downloading and installing in progress. - START_DOWNLOADING, // PluginVm image downloading should be started. - DOWNLOADING, // PluginVm image downloading is in progress. - IMPORTING, // Downloaded PluginVm image importing is in progress. - FINISHED, // PluginVm environment setting has been finished. - ERROR, // Something unexpected happened. + STARTING, // View was just created, installation hasn't yet started + DOWNLOADING_DLC, // PluginVm DLC downloading and installing in progress. + DOWNLOADING, // PluginVm image downloading is in progress. + IMPORTING, // Downloaded PluginVm image importing is in progress. + FINISHED, // PluginVm environment setting has been finished. + ERROR, // Something unexpected happened. }; ~PluginVmInstallerView() override; @@ -90,7 +87,7 @@ void SetMessageLabel(); void SetBigImage(); - void StartPluginVmImageDownload(); + void StartInstallation(); Profile* profile_ = nullptr; plugin_vm::PluginVmInstaller* plugin_vm_installer_ = nullptr; @@ -102,7 +99,7 @@ views::ImageView* big_image_ = nullptr; base::TimeTicks setup_start_tick_; - State state_ = State::START_DOWNLOADING; + State state_ = State::STARTING; base::Optional<plugin_vm::PluginVmInstaller::FailureReason> reason_; base::OnceCallback<void(bool success)> finished_callback_for_testing_;
diff --git a/chrome/browser/ui/web_applications/web_app_dialog_utils.cc b/chrome/browser/ui/web_applications/web_app_dialog_utils.cc index f2b11b2..edf3270 100644 --- a/chrome/browser/ui/web_applications/web_app_dialog_utils.cc +++ b/chrome/browser/ui/web_applications/web_app_dialog_utils.cc
@@ -12,6 +12,7 @@ #include "base/callback.h" #include "base/feature_list.h" #include "base/no_destructor.h" +#include "chrome/browser/banners/app_banner_manager.h" #include "chrome/browser/installable/installable_metrics.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" @@ -71,9 +72,14 @@ return false; Profile* web_contents_profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); + banners::AppBannerManager* app_banner_manager = + banners::AppBannerManager::FromWebContents(web_contents); + bool externally_installed = + app_banner_manager && app_banner_manager->IsExternallyInstalledWebApp(); return AreWebAppsUserInstallable(web_contents_profile) && - IsValidWebAppUrl(web_contents->GetLastCommittedURL()); + IsValidWebAppUrl(web_contents->GetLastCommittedURL()) && + !externally_installed; } bool CanPopOutWebApp(Profile* profile) { @@ -93,11 +99,12 @@ WebappInstallSource install_source = InstallableMetrics::GetInstallSource(web_contents, InstallTrigger::MENU); + WebAppInstalledCallback callback = base::DoNothing(); + provider->install_manager().InstallWebAppFromManifestWithFallback( web_contents, force_shortcut_app, install_source, base::BindOnce(WebAppInstallDialogCallback, install_source), - base::BindOnce(OnWebAppInstalled, - base::DoNothing::Once<const AppId&, InstallResultCode>())); + base::BindOnce(OnWebAppInstalled, std::move(callback))); } bool CreateWebAppFromManifest(content::WebContents* web_contents,
diff --git a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc index f76b09e..28c49cfc 100644 --- a/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc +++ b/chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.cc
@@ -399,6 +399,10 @@ web_ui()->RegisterMessageCallback( "getEulaUrl", base::BindRepeating(&CupsPrintersHandler::HandleGetEulaUrl, base::Unretained(this))); + web_ui()->RegisterMessageCallback( + "queryPrintServer", + base::BindRepeating(&CupsPrintersHandler::HandleQueryPrintServer, + base::Unretained(this))); } void CupsPrintersHandler::OnJavascriptAllowed() {
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc index 1822dd3..71cb631 100644 --- a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc +++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.cc
@@ -11,14 +11,28 @@ #include <utility> #include <vector> +#include "ash/public/cpp/ash_features.h" #include "ash/public/cpp/network_config_service.h" #include "ash/public/cpp/resources/grit/ash_public_unscaled_resources.h" +#include "ash/public/cpp/stylus_utils.h" #include "base/bind.h" #include "base/feature_list.h" #include "build/build_config.h" +#include "chrome/browser/browser_process.h" +#include "chrome/browser/browser_process_platform_part.h" +#include "chrome/browser/chromeos/account_manager/account_manager_util.h" +#include "chrome/browser/chromeos/arc/arc_util.h" +#include "chrome/browser/chromeos/crostini/crostini_features.h" +#include "chrome/browser/chromeos/login/demo_mode/demo_session.h" +#include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.h" +#include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h" +#include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h" +#include "chrome/browser/chromeos/profiles/profile_helper.h" +#include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/browser/ui/web_applications/system_web_app_ui_utils.h" #include "chrome/browser/ui/webui/app_management/app_management.mojom.h" #include "chrome/browser/ui/webui/app_management/app_management_page_handler.h" +#include "chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h" #include "chrome/browser/ui/webui/chromeos/sync/os_sync_handler.h" #include "chrome/browser/ui/webui/managed_ui_handler.h" #include "chrome/browser/ui/webui/metrics_handler.h" @@ -26,7 +40,25 @@ #include "chrome/browser/ui/webui/settings/about_handler.h" #include "chrome/browser/ui/webui/settings/accessibility_main_handler.h" #include "chrome/browser/ui/webui/settings/browser_lifetime_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/crostini_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/date_time_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/device_power_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/internet_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h" +#include "chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h" #include "chrome/browser/ui/webui/settings/downloads_handler.h" #include "chrome/browser/ui/webui/settings/extension_control_handler.h" @@ -40,7 +72,7 @@ #include "chrome/browser/ui/webui/settings/settings_cookies_view_handler.h" #include "chrome/browser/ui/webui/settings/settings_localized_strings_provider.h" #include "chrome/browser/ui/webui/settings/settings_media_devices_selection_handler.h" -#include "chrome/browser/ui/webui/settings/settings_ui.h" +#include "chrome/browser/ui/webui/settings/tts_handler.h" #include "chrome/browser/web_applications/system_web_app_manager.h" #include "chrome/common/chrome_features.h" #include "chrome/common/webui_url_constants.h" @@ -48,11 +80,19 @@ #include "chrome/grit/generated_resources.h" #include "chrome/grit/os_settings_resources.h" #include "chrome/grit/os_settings_resources_map.h" +#include "chromeos/components/account_manager/account_manager.h" +#include "chromeos/components/account_manager/account_manager_factory.h" #include "chromeos/constants/chromeos_features.h" +#include "chromeos/constants/chromeos_pref_names.h" +#include "chromeos/login/auth/password_visibility_utils.h" +#include "chromeos/services/multidevice_setup/public/cpp/prefs.h" #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" #include "components/password_manager/core/common/password_manager_features.h" +#include "components/prefs/pref_service.h" #include "content/public/browser/web_ui_data_source.h" #include "mojo/public/cpp/bindings/pending_receiver.h" +#include "ui/chromeos/resources/grit/ui_chromeos_resources.h" +#include "ui/resources/grit/webui_resources.h" namespace chromeos { namespace settings { @@ -66,7 +106,7 @@ content::WebUIDataSource* html_source = content::WebUIDataSource::Create(chrome::kChromeUIOSSettingsHost); - ::settings::SettingsUI::InitOSWebUIHandlers(profile, web_ui, html_source); + OSSettingsUI::InitOSWebUIHandlers(profile, web_ui, html_source); // This handler is for chrome://os-settings. html_source->AddBoolean("isOSSettings", true); @@ -176,6 +216,181 @@ OSSettingsUI::~OSSettingsUI() = default; +void OSSettingsUI::InitOSWebUIHandlers(Profile* profile, + content::WebUI* web_ui, + content::WebUIDataSource* html_source) { + // TODO(jamescook): Sort out how account management is split between Chrome OS + // and browser settings. + if (chromeos::IsAccountManagerAvailable(profile)) { + chromeos::AccountManagerFactory* factory = + g_browser_process->platform_part()->GetAccountManagerFactory(); + chromeos::AccountManager* account_manager = + factory->GetAccountManager(profile->GetPath().value()); + DCHECK(account_manager); + + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::AccountManagerUIHandler>( + account_manager, IdentityManagerFactory::GetForProfile(profile))); + html_source->AddBoolean( + "secondaryGoogleAccountSigninAllowed", + profile->GetPrefs()->GetBoolean( + chromeos::prefs::kSecondaryGoogleAccountSigninAllowed)); + } + + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::ChangePictureHandler>()); + + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::AccessibilityHandler>(web_ui)); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::AndroidAppsHandler>(profile)); + if (crostini::CrostiniFeatures::Get()->IsUIAllowed(profile, + /*check_policy=*/false)) { + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::CrostiniHandler>(profile)); + } + web_ui->AddMessageHandler( + chromeos::settings::CupsPrintersHandler::Create(web_ui)); + web_ui->AddMessageHandler(base::WrapUnique( + chromeos::settings::DateTimeHandler::Create(html_source))); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::FingerprintHandler>(profile)); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::GoogleAssistantHandler>(profile)); + + std::unique_ptr<chromeos::settings::KerberosAccountsHandler> + kerberos_accounts_handler = + chromeos::settings::KerberosAccountsHandler::CreateIfKerberosEnabled( + profile); + if (kerberos_accounts_handler) { + // Note that the UI is enabled only if Kerberos is enabled. + web_ui->AddMessageHandler(std::move(kerberos_accounts_handler)); + } + + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::KeyboardHandler>()); + + // TODO(crbug/950007): Remove adding WallpaperHandler when + // SplitSettings complete. + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::WallpaperHandler>(web_ui)); + + if (plugin_vm::IsPluginVmEnabled(profile)) { + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::PluginVmHandler>(profile)); + } + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::PointerHandler>()); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::StorageHandler>(profile, + html_source)); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::StylusHandler>()); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::InternetHandler>(profile)); + web_ui->AddMessageHandler(std::make_unique<::settings::TtsHandler>()); + web_ui->AddMessageHandler( + std::make_unique<chromeos::smb_dialog::SmbHandler>(profile)); + + if (!profile->IsGuestSession()) { + chromeos::android_sms::AndroidSmsService* android_sms_service = + chromeos::android_sms::AndroidSmsServiceFactory::GetForBrowserContext( + profile); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::MultideviceHandler>( + profile->GetPrefs(), + chromeos::multidevice_setup::MultiDeviceSetupClientFactory:: + GetForProfile(profile), + android_sms_service + ? android_sms_service->android_sms_pairing_state_tracker() + : nullptr, + android_sms_service ? android_sms_service->android_sms_app_manager() + : nullptr)); + if (chromeos::settings::ShouldShowParentalControls(profile)) { + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::ParentalControlsHandler>( + profile)); + } + } + + html_source->AddBoolean( + "multideviceAllowedByPolicy", + chromeos::multidevice_setup::AreAnyMultiDeviceFeaturesAllowed( + profile->GetPrefs())); + html_source->AddBoolean( + "quickUnlockEnabled", + chromeos::quick_unlock::IsPinEnabled(profile->GetPrefs())); + html_source->AddBoolean( + "quickUnlockDisabledByPolicy", + chromeos::quick_unlock::IsPinDisabledByPolicy(profile->GetPrefs())); + html_source->AddBoolean( + "userCannotManuallyEnterPassword", + !chromeos::password_visibility::AccountHasUserFacingPassword( + chromeos::ProfileHelper::Get() + ->GetUserByProfile(profile) + ->GetAccountId())); + const bool fingerprint_unlock_enabled = + chromeos::quick_unlock::IsFingerprintEnabled(profile); + html_source->AddBoolean("fingerprintUnlockEnabled", + fingerprint_unlock_enabled); + if (fingerprint_unlock_enabled) { + html_source->AddInteger( + "fingerprintReaderLocation", + static_cast<int32_t>(chromeos::quick_unlock::GetFingerprintLocation())); + + // To use lottie, the worker-src CSP needs to be updated for the web ui that + // is using it. Since as of now there are only a couple of webuis using + // lottie animations, this update has to be performed manually. As the usage + // increases, set this as the default so manual override is no longer + // required. + html_source->OverrideContentSecurityPolicyWorkerSrc( + "worker-src blob: 'self';"); + html_source->AddResourcePath("finger_print.json", + IDR_LOGIN_FINGER_PRINT_TABLET_ANIMATION); + } + html_source->AddBoolean("lockScreenNotificationsEnabled", + ash::features::IsLockScreenNotificationsEnabled()); + html_source->AddBoolean( + "lockScreenHideSensitiveNotificationsSupported", + ash::features::IsLockScreenHideSensitiveNotificationsSupported()); + html_source->AddBoolean("showTechnologyBadge", + !ash::features::IsSeparateNetworkIconsEnabled()); + html_source->AddBoolean("hasInternalStylus", + ash::stylus_utils::HasInternalStylus()); + + html_source->AddBoolean("showCrostini", + crostini::CrostiniFeatures::Get()->IsUIAllowed( + profile, /*check_policy=*/false)); + + html_source->AddBoolean( + "allowCrostini", crostini::CrostiniFeatures::Get()->IsUIAllowed(profile)); + + html_source->AddBoolean("showPluginVm", + plugin_vm::IsPluginVmEnabled(profile)); + + html_source->AddBoolean("isDemoSession", + chromeos::DemoSession::IsDeviceInDemoMode()); + + // We have 2 variants of Android apps settings. Default case, when the Play + // Store app exists we show expandable section that allows as to + // enable/disable the Play Store and link to Android settings which is + // available once settings app is registered in the system. + // For AOSP images we don't have the Play Store app. In last case we Android + // apps settings consists only from root link to Android settings and only + // visible once settings app is registered. + html_source->AddBoolean("androidAppsVisible", + arc::IsArcAllowedForProfile(profile)); + html_source->AddBoolean("havePlayStoreApp", arc::IsPlayStoreAvailable()); + + html_source->AddBoolean("enablePowerSettings", true); + web_ui->AddMessageHandler( + std::make_unique<chromeos::settings::PowerHandler>(profile->GetPrefs())); + + html_source->AddBoolean( + "showParentalControlsSettings", + chromeos::settings::ShouldShowParentalControls(profile)); +} + void OSSettingsUI::AddSettingsPageUIHandler( std::unique_ptr<content::WebUIMessageHandler> handler) { DCHECK(handler);
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h index 97b57f3..67286f8 100644 --- a/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h +++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h
@@ -16,6 +16,7 @@ #include "ui/webui/mojo_web_ui_controller.h" namespace content { +class WebUIDataSource; class WebUIMessageHandler; } @@ -28,6 +29,11 @@ explicit OSSettingsUI(content::WebUI* web_ui); ~OSSettingsUI() override; + // Initializes the WebUI message handlers for OS-specific settings. + static void InitOSWebUIHandlers(Profile* profile, + content::WebUI* web_ui, + content::WebUIDataSource* html_source); + // Instantiates implementor of the mojom::CrosNetworkConfig mojo interface // passing the pending receiver that will be internally bound. void BindInterface(
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc index ee152aa..c9fb6d6 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc
@@ -78,61 +78,29 @@ #if defined(OS_WIN) || defined(OS_CHROMEOS) #include "chrome/browser/ui/webui/settings/languages_handler.h" -#include "chrome/browser/ui/webui/settings/tts_handler.h" #endif // defined(OS_WIN) || defined(OS_CHROMEOS) #if defined(OS_CHROMEOS) -#include "ash/public/cpp/network_config_service.h" -#include "ash/public/cpp/resources/grit/ash_public_unscaled_resources.h" -#include "ash/public/cpp/stylus_utils.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process_platform_part.h" #include "chrome/browser/chromeos/account_manager/account_manager_util.h" #include "chrome/browser/chromeos/android_sms/android_sms_app_manager.h" #include "chrome/browser/chromeos/android_sms/android_sms_service_factory.h" -#include "chrome/browser/chromeos/arc/arc_util.h" -#include "chrome/browser/chromeos/crostini/crostini_features.h" -#include "chrome/browser/chromeos/login/demo_mode/demo_session.h" -#include "chrome/browser/chromeos/login/quick_unlock/quick_unlock_utils.h" #include "chrome/browser/chromeos/multidevice_setup/multidevice_setup_client_factory.h" -#include "chrome/browser/chromeos/plugin_vm/plugin_vm_util.h" #include "chrome/browser/chromeos/profiles/profile_helper.h" -#include "chrome/browser/ui/webui/chromeos/smb_shares/smb_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/accessibility_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/account_manager_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/android_apps_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/change_picture_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/crostini_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/cups_printers_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/date_time_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/device_keyboard_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/device_pointer_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/device_power_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/device_storage_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/device_stylus_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/fingerprint_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/internet_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/kerberos_accounts_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/multidevice_handler.h" #include "chrome/browser/ui/webui/settings/chromeos/parental_controls_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/plugin_vm_handler.h" -#include "chrome/browser/ui/webui/settings/chromeos/wallpaper_handler.h" #include "chrome/common/chrome_switches.h" +#include "chrome/grit/browser_resources.h" #include "chromeos/components/account_manager/account_manager.h" #include "chromeos/components/account_manager/account_manager_factory.h" #include "chromeos/constants/chromeos_features.h" -#include "chromeos/constants/chromeos_pref_names.h" #include "chromeos/login/auth/password_visibility_utils.h" -#include "chromeos/services/multidevice_setup/public/cpp/prefs.h" -#include "chromeos/services/network_config/public/mojom/constants.mojom.h" // nogncheck -#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" // nogncheck #include "components/arc/arc_util.h" -#include "components/prefs/pref_service.h" #include "components/user_manager/user.h" #include "ui/base/ui_base_features.h" -#include "ui/chromeos/resources/grit/ui_chromeos_resources.h" -#include "ui/resources/grit/webui_resources.h" #else // !defined(OS_CHROMEOS) #include "chrome/browser/signin/account_consistency_mode_manager.h" #include "chrome/browser/ui/webui/settings/settings_default_browser_handler.h" @@ -166,11 +134,7 @@ } SettingsUI::SettingsUI(content::WebUI* web_ui) -#if defined(OS_CHROMEOS) - : ui::MojoWebUIController(web_ui, /*enable_chrome_send =*/true), -#else : content::WebUIController(web_ui), -#endif webui_load_timer_(web_ui->GetWebContents(), "Settings.LoadDocumentTime.MD", "Settings.LoadCompletedTime.MD") { @@ -374,176 +338,6 @@ ->GetUserByProfile(profile) ->GetAccountId())); } - -// static -void SettingsUI::InitOSWebUIHandlers(Profile* profile, - content::WebUI* web_ui, - content::WebUIDataSource* html_source) { - // TODO(jamescook): Sort out how account management is split between Chrome OS - // and browser settings. - if (chromeos::IsAccountManagerAvailable(profile)) { - chromeos::AccountManagerFactory* factory = - g_browser_process->platform_part()->GetAccountManagerFactory(); - chromeos::AccountManager* account_manager = - factory->GetAccountManager(profile->GetPath().value()); - DCHECK(account_manager); - - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::AccountManagerUIHandler>( - account_manager, IdentityManagerFactory::GetForProfile(profile))); - html_source->AddBoolean( - "secondaryGoogleAccountSigninAllowed", - profile->GetPrefs()->GetBoolean( - chromeos::prefs::kSecondaryGoogleAccountSigninAllowed)); - } - - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::ChangePictureHandler>()); - - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::AccessibilityHandler>(web_ui)); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::AndroidAppsHandler>(profile)); - if (crostini::CrostiniFeatures::Get()->IsUIAllowed(profile, - /*check_policy=*/false)) { - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::CrostiniHandler>(profile)); - } - web_ui->AddMessageHandler( - chromeos::settings::CupsPrintersHandler::Create(web_ui)); - web_ui->AddMessageHandler(base::WrapUnique( - chromeos::settings::DateTimeHandler::Create(html_source))); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::FingerprintHandler>(profile)); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::GoogleAssistantHandler>(profile)); - - std::unique_ptr<chromeos::settings::KerberosAccountsHandler> - kerberos_accounts_handler = - chromeos::settings::KerberosAccountsHandler::CreateIfKerberosEnabled( - profile); - if (kerberos_accounts_handler) { - // Note that the UI is enabled only if Kerberos is enabled. - web_ui->AddMessageHandler(std::move(kerberos_accounts_handler)); - } - - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::KeyboardHandler>()); - - // TODO(crbug/950007): Remove adding WallpaperHandler when - // SplitSettings complete. - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::WallpaperHandler>(web_ui)); - - if (plugin_vm::IsPluginVmEnabled(profile)) { - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::PluginVmHandler>(profile)); - } - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::PointerHandler>()); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::StorageHandler>(profile, - html_source)); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::StylusHandler>()); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::InternetHandler>(profile)); - web_ui->AddMessageHandler(std::make_unique<TtsHandler>()); - web_ui->AddMessageHandler( - std::make_unique<chromeos::smb_dialog::SmbHandler>(profile)); - - if (!profile->IsGuestSession()) { - chromeos::android_sms::AndroidSmsService* android_sms_service = - chromeos::android_sms::AndroidSmsServiceFactory::GetForBrowserContext( - profile); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::MultideviceHandler>( - profile->GetPrefs(), - chromeos::multidevice_setup::MultiDeviceSetupClientFactory:: - GetForProfile(profile), - android_sms_service - ? android_sms_service->android_sms_pairing_state_tracker() - : nullptr, - android_sms_service ? android_sms_service->android_sms_app_manager() - : nullptr)); - if (chromeos::settings::ShouldShowParentalControls(profile)) { - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::ParentalControlsHandler>( - profile)); - } - } - - html_source->AddBoolean( - "multideviceAllowedByPolicy", - chromeos::multidevice_setup::AreAnyMultiDeviceFeaturesAllowed( - profile->GetPrefs())); - html_source->AddBoolean( - "quickUnlockEnabled", - chromeos::quick_unlock::IsPinEnabled(profile->GetPrefs())); - html_source->AddBoolean( - "quickUnlockDisabledByPolicy", - chromeos::quick_unlock::IsPinDisabledByPolicy(profile->GetPrefs())); - const bool fingerprint_unlock_enabled = - chromeos::quick_unlock::IsFingerprintEnabled(profile); - html_source->AddBoolean("fingerprintUnlockEnabled", - fingerprint_unlock_enabled); - if (fingerprint_unlock_enabled) { - html_source->AddInteger( - "fingerprintReaderLocation", - static_cast<int32_t>(chromeos::quick_unlock::GetFingerprintLocation())); - - // To use lottie, the worker-src CSP needs to be updated for the web ui that - // is using it. Since as of now there are only a couple of webuis using - // lottie animations, this update has to be performed manually. As the usage - // increases, set this as the default so manual override is no longer - // required. - html_source->OverrideContentSecurityPolicyWorkerSrc( - "worker-src blob: 'self';"); - html_source->AddResourcePath("finger_print.json", - IDR_LOGIN_FINGER_PRINT_TABLET_ANIMATION); - } - html_source->AddBoolean("lockScreenNotificationsEnabled", - ash::features::IsLockScreenNotificationsEnabled()); - html_source->AddBoolean( - "lockScreenHideSensitiveNotificationsSupported", - ash::features::IsLockScreenHideSensitiveNotificationsSupported()); - html_source->AddBoolean("showTechnologyBadge", - !ash::features::IsSeparateNetworkIconsEnabled()); - html_source->AddBoolean("hasInternalStylus", - ash::stylus_utils::HasInternalStylus()); - - html_source->AddBoolean("showCrostini", - crostini::CrostiniFeatures::Get()->IsUIAllowed( - profile, /*check_policy=*/false)); - - html_source->AddBoolean( - "allowCrostini", crostini::CrostiniFeatures::Get()->IsUIAllowed(profile)); - - html_source->AddBoolean("showPluginVm", - plugin_vm::IsPluginVmEnabled(profile)); - - html_source->AddBoolean("isDemoSession", - chromeos::DemoSession::IsDeviceInDemoMode()); - - // We have 2 variants of Android apps settings. Default case, when the Play - // Store app exists we show expandable section that allows as to - // enable/disable the Play Store and link to Android settings which is - // available once settings app is registered in the system. - // For AOSP images we don't have the Play Store app. In last case we Android - // apps settings consists only from root link to Android settings and only - // visible once settings app is registered. - html_source->AddBoolean("androidAppsVisible", - arc::IsArcAllowedForProfile(profile)); - html_source->AddBoolean("havePlayStoreApp", arc::IsPlayStoreAvailable()); - - html_source->AddBoolean("enablePowerSettings", true); - web_ui->AddMessageHandler( - std::make_unique<chromeos::settings::PowerHandler>(profile->GetPrefs())); - - html_source->AddBoolean( - "showParentalControlsSettings", - chromeos::settings::ShouldShowParentalControls(profile)); -} #endif // defined(OS_CHROMEOS) void SettingsUI::AddSettingsPageUIHandler( @@ -552,14 +346,4 @@ web_ui()->AddMessageHandler(std::move(handler)); } -#if defined(OS_CHROMEOS) -void SettingsUI::BindInterface( - mojo::PendingReceiver<chromeos::network_config::mojom::CrosNetworkConfig> - receiver) { - ash::GetNetworkConfigService(std::move(receiver)); -} - -WEB_UI_CONTROLLER_TYPE_IMPL(SettingsUI) -#endif // defined(OS_CHROMEOS) - } // namespace settings
diff --git a/chrome/browser/ui/webui/settings/settings_ui.h b/chrome/browser/ui/webui/settings/settings_ui.h index b1d14a39..61e3b27 100644 --- a/chrome/browser/ui/webui/settings/settings_ui.h +++ b/chrome/browser/ui/webui/settings/settings_ui.h
@@ -8,14 +8,7 @@ #include "base/macros.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/webui_load_timer.h" - -#if defined(OS_CHROMEOS) -#include "chromeos/services/network_config/public/mojom/cros_network_config.mojom-forward.h" // nogncheck -#include "mojo/public/cpp/bindings/pending_receiver.h" -#include "ui/webui/mojo_web_ui_controller.h" -#else #include "content/public/browser/web_ui_controller.h" -#endif class Profile; @@ -31,13 +24,7 @@ namespace settings { // The WebUI handler for chrome://settings. -class SettingsUI -#if defined(OS_CHROMEOS) - : public ui::MojoWebUIController -#else - : public content::WebUIController -#endif -{ +class SettingsUI : public content::WebUIController { public: static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); @@ -51,17 +38,6 @@ Profile* profile, content::WebUI* web_ui, content::WebUIDataSource* html_source); - - // Initializes the WebUI message handlers for OS-specific settings. - static void InitOSWebUIHandlers(Profile* profile, - content::WebUI* web_ui, - content::WebUIDataSource* html_source); - - // Instantiates implementor of the mojom::CrosNetworkConfig mojo interface - // passing the pending receiver that will be internally bound. - void BindInterface( - mojo::PendingReceiver<chromeos::network_config::mojom::CrosNetworkConfig> - receiver); #endif // defined(OS_CHROMEOS) private: @@ -70,10 +46,6 @@ WebuiLoadTimer webui_load_timer_; -#if defined(OS_CHROMEOS) - WEB_UI_CONTROLLER_TYPE_DECL(); -#endif - DISALLOW_COPY_AND_ASSIGN(SettingsUI); };
diff --git a/chrome/browser/web_applications/components/app_registrar.cc b/chrome/browser/web_applications/components/app_registrar.cc index cd12327a..4dfec2a 100644 --- a/chrome/browser/web_applications/components/app_registrar.cc +++ b/chrome/browser/web_applications/components/app_registrar.cc
@@ -83,6 +83,11 @@ .LookupAppId(install_url); } +bool AppRegistrar::HasExternalApp(const AppId& app_id) const { + return ExternallyInstalledWebAppPrefs::HasAppId(profile()->GetPrefs(), + app_id); +} + bool AppRegistrar::HasExternalAppWithInstallSource( const AppId& app_id, ExternalInstallSource install_source) const {
diff --git a/chrome/browser/web_applications/components/app_registrar.h b/chrome/browser/web_applications/components/app_registrar.h index d047b4c..039c204 100644 --- a/chrome/browser/web_applications/components/app_registrar.h +++ b/chrome/browser/web_applications/components/app_registrar.h
@@ -53,6 +53,10 @@ const GURL& install_url) const; // Returns whether the AppRegistrar has an externally installed app with + // |app_id| from any |install_source|. + virtual bool HasExternalApp(const AppId& app_id) const; + + // Returns whether the AppRegistrar has an externally installed app with // |app_id| from |install_source|. virtual bool HasExternalAppWithInstallSource( const AppId& app_id,
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index 57f6d6a..8de9538 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -63,6 +63,8 @@ #if !defined(OS_ANDROID) // App Service related flags. See chrome/services/app_service/README.md. +const base::Feature kAppServiceContextMenu{"AppServiceContextMenu", + base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kAppServiceInstanceRegistry{ "AppServiceInstanceRegistry", base::FEATURE_ENABLED_BY_DEFAULT}; const base::Feature kAppServiceIntentHandling{
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 7c28491e..b6469ff 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -53,6 +53,8 @@ #if !defined(OS_ANDROID) COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::Feature kAppServiceContextMenu; +COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAppServiceInstanceRegistry; COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAppServiceIntentHandling;
diff --git a/chrome/common/sync_encryption_keys_extension.mojom b/chrome/common/sync_encryption_keys_extension.mojom index bae1f95..d8a167e 100644 --- a/chrome/common/sync_encryption_keys_extension.mojom +++ b/chrome/common/sync_encryption_keys_extension.mojom
@@ -11,5 +11,6 @@ // Provides sync encryption keys to the browser process. Returns true if no // further encryption keys are needed (which includes the case, among others, // of encryption keys not being needed even prior to this call). - SetEncryptionKeys(array<array<uint8>> encryption_keys, string gaia_id) => (); + SetEncryptionKeys(string gaia_id, array<array<uint8>> encryption_keys, + int32 last_key_version) => (); };
diff --git a/chrome/renderer/sync_encryption_keys_extension.cc b/chrome/renderer/sync_encryption_keys_extension.cc index 37c0c0b..edde01c3 100644 --- a/chrome/renderer/sync_encryption_keys_extension.cc +++ b/chrome/renderer/sync_encryption_keys_extension.cc
@@ -114,13 +114,16 @@ DCHECK(render_frame()); // This function as exposed to the web has the following signature: - // setSyncEncryptionKeys(callback, gaia_id, encryption_keys) + // setSyncEncryptionKeys(callback, gaia_id, encryption_keys, + // last_key_version) // // Where: // callback: Allows caller to get notified upon completion. // gaia_id: String representing the user's server-provided ID. // encryption_keys: Array where each element is an ArrayBuffer representing // an encryption key (binary blob). + // last_key_version: Key version corresponding to the last key in + // |encryption_keys|. v8::HandleScope handle_scope(args->isolate()); @@ -151,6 +154,14 @@ return; } + int last_key_version = 0; + if (!args->GetNext(&last_key_version)) { + DLOG(ERROR) << "No version provided"; + // TODO(crbug.com/1032485): Be more strict here and issue an error if the + // version is not provided. + last_key_version = static_cast<int>(encryption_keys.size()) - 1; + } + auto global_callback = std::make_unique<v8::Global<v8::Function>>(args->isolate(), callback); @@ -159,7 +170,7 @@ } remote_->SetEncryptionKeys( - EncryptionKeysAsBytes(encryption_keys), gaia_id, + gaia_id, EncryptionKeysAsBytes(encryption_keys), last_key_version, base::BindOnce(&SyncEncryptionKeysExtension::RunCompletionCallback, weak_ptr_factory_.GetWeakPtr(), std::move(global_callback)));
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 7ca0422..e270d536 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -2107,6 +2107,8 @@ "../browser/chromeos/child_accounts/parent_access_code/parent_access_test_utils.h", "../browser/chromeos/child_accounts/screen_time_controller_browsertest.cc", "../browser/chromeos/child_accounts/time_limit_test_utils.cc", + "../browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.cc", + "../browser/chromeos/child_accounts/time_limits/app_time_limits_whitelist_policy_test_utils.h", "../browser/chromeos/child_accounts/time_limits/web_time_limit_enforcer_browsertest.cc", "../browser/chromeos/chrome_content_browser_client_chromeos_part_browsertest.cc", "../browser/chromeos/customization/customization_document_browsertest.cc",
diff --git a/chrome/test/data/sync/encryption_keys_retrieval.html b/chrome/test/data/sync/encryption_keys_retrieval.html index 0fe2a82f..ef71c2fe 100644 --- a/chrome/test/data/sync/encryption_keys_retrieval.html +++ b/chrome/test/data/sync/encryption_keys_retrieval.html
@@ -19,7 +19,8 @@ } else { chrome.setSyncEncryptionKeys(() => { document.title = "OK"; }, location.search.substring(1), - [asciiToArrayBuffer(location.hash.substring(1))]); + [asciiToArrayBuffer(location.hash.substring(1))], + /*last_key_version=*/7); } } </script>
diff --git a/chrome/test/data/webui/new_tab_page/customize_themes_focus_test.js b/chrome/test/data/webui/new_tab_page/customize_themes_focus_test.js index be37c5f..541ef1d7 100644 --- a/chrome/test/data/webui/new_tab_page/customize_themes_focus_test.js +++ b/chrome/test/data/webui/new_tab_page/customize_themes_focus_test.js
@@ -16,8 +16,8 @@ let testProxy; function queryThemeIcons() { - return customizeThemes.shadowRoot.querySelectorAll( - '#themesContainer ntp-theme-icon'); + return Array.from(customizeThemes.shadowRoot.querySelectorAll( + '#themesContainer > :-webkit-any(div, ntp-theme-icon)')); } setup(async () => {
diff --git a/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js b/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js index 3633b94..8871538b 100644 --- a/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js +++ b/chrome/test/data/webui/settings/chromeos/cups_printer_landing_page_tests.js
@@ -352,9 +352,6 @@ settings.CupsPrintersBrowserProxyImpl.instance_ = cupsPrintersBrowserProxy; page = document.createElement('settings-cups-printers'); - // Enable feature flag to show the new saved printers list. - // TODO(jimmyxgong): Remove this line when the feature flag is removed. - page.enableUpdatedUi_ = true; document.body.appendChild(page); assertTrue(!!page); @@ -1056,9 +1053,6 @@ settings.navigateTo(settings.routes.CUPS_PRINTERS); page = document.createElement('settings-cups-printers'); - // Enable feature flag to show the new saved printers list. - // TODO(jimmyxgong): Remove this line when the feature flag is removed. - page.enableUpdatedUi_ = true; document.body.appendChild(page); assertTrue(!!page);
diff --git a/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js b/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js index 826363c..b5ecb01 100644 --- a/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js +++ b/chrome/test/data/webui/settings/chromeos/test_cups_printers_browser_proxy.js
@@ -14,6 +14,7 @@ 'getCupsPrinterModelsList', 'getPrinterInfo', 'getPrinterPpdManufacturerAndModel', + 'queryPrintServer', 'startDiscoveringPrinters', 'stopDiscoveringPrinters', 'cancelPrinterSetUp', @@ -24,6 +25,8 @@ ]); this.printerList = /** @type{} CupsPrintersList*/ ({printerList: []}); + this.printServerPrinters = + /** @type{} CupsPrintersList */ ({printerList: []}); this.manufacturers = []; this.models = []; this.printerInfo = {}; @@ -137,6 +140,13 @@ return Promise.resolve(this.eulaUrl_); } + /** @override */ + queryPrintServer(serverUrl) { + this.methodCalled('queryPrintServer', serverUrl); + return Promise.resolve(this.printServerPrinters); + } + + /** @param {string} eulaUrl */ setEulaUrl(eulaUrl) { this.eulaUrl_ = eulaUrl;
diff --git a/chrome/test/data/webui/settings/security_keys_subpage_test.js b/chrome/test/data/webui/settings/security_keys_subpage_test.js index 97a995cc..9606327 100644 --- a/chrome/test/data/webui/settings/security_keys_subpage_test.js +++ b/chrome/test/data/webui/settings/security_keys_subpage_test.js
@@ -912,7 +912,7 @@ test_util.eventToPromise('bio-enroll-dialog-ready-for-testing', dialog); dialog.$.cancelButton.click(); await browserProxy.whenCalled('cancelEnrollment'); - enrollResolver.resolve({code: Ctap2Status.ERR_KEEPALIVE_CANCEL}); + enrollResolver.resolve({code: settings.Ctap2Status.ERR_KEEPALIVE_CANCEL}); await browserProxy.whenCalled('enumerateEnrollments'); await uiReady;
diff --git a/chromeos/network/onc/onc_signature.cc b/chromeos/network/onc/onc_signature.cc index 0ce4c4fc..453e2309 100644 --- a/chromeos/network/onc/onc_signature.cc +++ b/chromeos/network/onc/onc_signature.cc
@@ -26,6 +26,9 @@ base::Value::Type::LIST, NULL, &kCellularApnSignature}; const OncValueSignature kCellularFoundNetworkListSignature = { base::Value::Type::LIST, NULL, &kCellularFoundNetworkSignature}; +const OncValueSignature kEAPSubjectAlternativeNameMatchListSignature = { + base::Value::Type::LIST, nullptr, + &kEAPSubjectAlternativeNameMatchSignature}; const OncFieldSignature issuer_subject_pattern_fields[] = { {::onc::client_cert::kCommonName, &kStringSignature}, @@ -62,6 +65,8 @@ {::onc::eap::kServerCARef, &kStringSignature}, {::onc::eap::kServerCARefs, &kStringListSignature}, {::onc::eap::kSubjectMatch, &kStringSignature}, + {::onc::eap::kSubjectAlternativeNameMatch, + &kEAPSubjectAlternativeNameMatchListSignature}, {::onc::eap::kTLSVersionMax, &kStringSignature}, {::onc::eap::kUseProactiveKeyCaching, &kBoolSignature}, {::onc::eap::kUseSystemCAs, &kBoolSignature}, @@ -391,6 +396,11 @@ {::onc::encrypted::kStretch, &kStringSignature}, {NULL}}; +const OncFieldSignature eap_subject_alternative_name_match_fields[] = { + {::onc::eap_subject_alternative_name_match::kType, &kStringSignature}, + {::onc::eap_subject_alternative_name_match::kValue, &kStringSignature}, + {nullptr}}; + } // namespace const OncValueSignature kRecommendedSignature = {base::Value::Type::LIST, NULL, @@ -475,6 +485,9 @@ base::Value::Type::DICTIONARY, cellular_found_network_fields, NULL}; const OncValueSignature kSIMLockStatusSignature = { base::Value::Type::DICTIONARY, sim_lock_status_fields, NULL}; +const OncValueSignature kEAPSubjectAlternativeNameMatchSignature = { + base::Value::Type::DICTIONARY, eap_subject_alternative_name_match_fields, + nullptr}; const OncFieldSignature* GetFieldSignature(const OncValueSignature& signature, const std::string& onc_field_name) {
diff --git a/chromeos/network/onc/onc_signature.h b/chromeos/network/onc/onc_signature.h index 5693c8d..a4490f8 100644 --- a/chromeos/network/onc/onc_signature.h +++ b/chromeos/network/onc/onc_signature.h
@@ -91,6 +91,10 @@ extern const OncValueSignature kNetworkConfigurationListSignature; COMPONENT_EXPORT(CHROMEOS_NETWORK) extern const OncValueSignature kToplevelConfigurationSignature; +COMPONENT_EXPORT(CHROMEOS_NETWORK) +extern const OncValueSignature kEAPSubjectAlternativeNameMatchListSignature; +COMPONENT_EXPORT(CHROMEOS_NETWORK) +extern const OncValueSignature kEAPSubjectAlternativeNameMatchSignature; // Derived "ONC with State" signatures. COMPONENT_EXPORT(CHROMEOS_NETWORK)
diff --git a/chromeos/network/onc/onc_translation_tables.cc b/chromeos/network/onc/onc_translation_tables.cc index d330b8f..8e5fd2d 100644 --- a/chromeos/network/onc/onc_translation_tables.cc +++ b/chromeos/network/onc/onc_translation_tables.cc
@@ -33,6 +33,9 @@ {::onc::eap::kSaveCredentials, shill::kSaveCredentialsProperty}, {::onc::eap::kServerCAPEMs, shill::kEapCaCertPemProperty}, {::onc::eap::kSubjectMatch, shill::kEapSubjectMatchProperty}, + // This field is converted during translation, see onc_translator_*. + // {::onc::eap::kSubjectAlternativeNameMatch, + // shill::kEapSubjectAlternativeNameMatchProperty}, {::onc::eap::kTLSVersionMax, shill::kEapTLSVersionMaxProperty}, {::onc::eap::kUseSystemCAs, shill::kEapUseSystemCasProperty}, {::onc::eap::kUseProactiveKeyCaching,
diff --git a/chromeos/network/onc/onc_translator_onc_to_shill.cc b/chromeos/network/onc/onc_translator_onc_to_shill.cc index 20c1af49..ff1589a 100644 --- a/chromeos/network/onc/onc_translator_onc_to_shill.cc +++ b/chromeos/network/onc/onc_translator_onc_to_shill.cc
@@ -13,6 +13,7 @@ #include <utility> #include "base/json/json_reader.h" +#include "base/json/json_string_value_serializer.h" #include "base/json/json_writer.h" #include "base/logging.h" #include "base/macros.h" @@ -348,6 +349,23 @@ base::Value(true)); } + // Set shill::kEapSubjectAlternativeNameMatchProperty to the serialized form + // of the subject alternative name match list of dictionaries. + const base::ListValue* subject_alternative_name_match; + if (onc_object_->GetList(::onc::eap::kSubjectAlternativeNameMatch, + &subject_alternative_name_match)) { + base::Value serialized_dicts(base::Value::Type::LIST); + std::string serialized_dict; + JSONStringValueSerializer serializer(&serialized_dict); + for (const base::Value& v : subject_alternative_name_match->GetList()) { + if (serializer.Serialize(v)) { + serialized_dicts.Append(serialized_dict); + } + } + shill_dictionary_->SetKey(shill::kEapSubjectAlternativeNameMatchProperty, + std::move(serialized_dicts)); + } + CopyFieldsAccordingToSignature(); }
diff --git a/chromeos/network/onc/onc_validator.cc b/chromeos/network/onc/onc_validator.cc index b83aa574..57e0c3f 100644 --- a/chromeos/network/onc/onc_validator.cc +++ b/chromeos/network/onc/onc_validator.cc
@@ -157,6 +157,8 @@ valid = ValidateProxyLocation(repaired.get()); } else if (&signature == &kEAPSignature) { valid = ValidateEAP(repaired.get()); + } else if (&signature == &kEAPSubjectAlternativeNameMatchSignature) { + valid = ValidateSubjectAlternativeNameMatch(repaired.get()); } else if (&signature == &kCertificateSignature) { valid = ValidateCertificate(repaired.get()); } else if (&signature == &kScopeSignature) { @@ -1076,6 +1078,26 @@ return !error_on_missing_field_ || all_required_exist; } +bool Validator::ValidateSubjectAlternativeNameMatch( + base::DictionaryValue* result) { + const std::vector<const char*> valid_types = { + ::onc::eap_subject_alternative_name_match::kEMAIL, + ::onc::eap_subject_alternative_name_match::kDNS, + ::onc::eap_subject_alternative_name_match::kURI}; + + if (FieldExistsAndHasNoValidValue( + *result, ::onc::eap_subject_alternative_name_match::kType, + valid_types)) { + return false; + } + + bool all_required_exist = + RequireField(*result, ::onc::eap_subject_alternative_name_match::kType) && + RequireField(*result, ::onc::eap_subject_alternative_name_match::kValue); + + return !error_on_missing_field_ || all_required_exist; +} + bool Validator::ValidateCertificate(base::DictionaryValue* result) { const std::vector<const char*> valid_types = {::onc::certificate::kClient, ::onc::certificate::kServer,
diff --git a/chromeos/network/onc/onc_validator.h b/chromeos/network/onc/onc_validator.h index beadc85..41670c0 100644 --- a/chromeos/network/onc/onc_validator.h +++ b/chromeos/network/onc/onc_validator.h
@@ -190,6 +190,7 @@ bool ValidateProxySettings(base::DictionaryValue* result); bool ValidateProxyLocation(base::DictionaryValue* result); bool ValidateEAP(base::DictionaryValue* result); + bool ValidateSubjectAlternativeNameMatch(base::DictionaryValue* result); bool ValidateCertificate(base::DictionaryValue* result); bool ValidateScope(base::DictionaryValue* result); bool ValidateTether(base::DictionaryValue* result);
diff --git a/chromeos/test/data/network/shill_wifi_eap_tls.json b/chromeos/test/data/network/shill_wifi_eap_tls.json index 4dc7a37..594e6acd50 100644 --- a/chromeos/test/data/network/shill_wifi_eap_tls.json +++ b/chromeos/test/data/network/shill_wifi_eap_tls.json
@@ -5,6 +5,13 @@ "EAP.KeyID": "1:123456abcdef", "EAP.PIN": "111111", "EAP.SubjectMatch": "my_subject", + "EAP.SubjectAlternativeNameMatch": [ + "{\"Type\":\"EMAIL\",\"Value\":\"my_email_1\"}", + "{\"Type\":\"EMAIL\",\"Value\":\"my_email_2\"}", + "{\"Type\":\"EMAIL\",\"Value\":\"my;email\"}", + "{\"Type\":\"DNS\",\"Value\":\"my_dns\"}", + "{\"Type\":\"URI\",\"Value\":\"my_uri\"}" + ], "EAP.TLSVersionMax": "1.2", "EAP.UseSystemCAs": true, "GUID": "{77db0089-0bc8-4358-929c-123xcv}",
diff --git a/chromeos/test/data/network/wifi_eap_tls.onc b/chromeos/test/data/network/wifi_eap_tls.onc index 204bc47..7ecb53b 100644 --- a/chromeos/test/data/network/wifi_eap_tls.onc +++ b/chromeos/test/data/network/wifi_eap_tls.onc
@@ -13,6 +13,13 @@ "ClientCertPKCS11Id": "1:123456abcdef", "SaveCredentials": true, "SubjectMatch": "my_subject", + "SubjectAlternativeNameMatch":[ + {"Type": "EMAIL", "Value": "my_email_1"}, + {"Type": "EMAIL", "Value": "my_email_2"}, + {"Type": "EMAIL", "Value": "my;email"}, + {"Type": "DNS", "Value": "my_dns"}, + {"Type": "URI", "Value": "my_uri"} + ], "TLSVersionMax": "1.2", "UseSystemCAs": true }
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager.cc b/components/autofill/core/browser/payments/credit_card_access_manager.cc index 9587580d..b079c3f 100644 --- a/components/autofill/core/browser/payments/credit_card_access_manager.cc +++ b/components/autofill/core/browser/payments/credit_card_access_manager.cc
@@ -310,9 +310,12 @@ #endif #if !defined(OS_ANDROID) && !defined(OS_IOS) - // On desktop, show the verify pending dialog for opted-in user. - if (user_is_opted_in) + // On desktop, show the verify pending dialog for opted-in user, unless it is + // already known that selected card requires CVC. + if (user_is_opted_in && + (!get_unmask_details_returned || IsSelectedCardFidoAuthorized())) { ShowVerifyPendingDialog(); + } #endif if (should_wait_to_authenticate) { @@ -363,9 +366,7 @@ AutofillClient::UnmaskAuthMethod::FIDO; bool card_is_authorized_for_fido = - fido_auth_suggested && - unmask_details_.fido_eligible_card_ids.find(card_->server_id()) != - unmask_details_.fido_eligible_card_ids.end(); + fido_auth_suggested && IsSelectedCardFidoAuthorized(); // If FIDO authentication was suggested, but card is not in authorized list, // must authenticate with CVC followed by FIDO in order to authorize this card @@ -535,6 +536,14 @@ #endif } +bool CreditCardAccessManager::IsSelectedCardFidoAuthorized() { + DCHECK_NE(unmask_details_.unmask_auth_method, + AutofillClient::UnmaskAuthMethod::UNKNOWN); + return IsFidoAuthenticationEnabled() && + unmask_details_.fido_eligible_card_ids.find(card_->server_id()) != + unmask_details_.fido_eligible_card_ids.end(); +} + void CreditCardAccessManager::ShowWebauthnOfferDialog( std::string card_authorization_token) { #if !defined(OS_ANDROID) && !defined(OS_IOS)
diff --git a/components/autofill/core/browser/payments/credit_card_access_manager.h b/components/autofill/core/browser/payments/credit_card_access_manager.h index bcf2020b..83f67aa7 100644 --- a/components/autofill/core/browser/payments/credit_card_access_manager.h +++ b/components/autofill/core/browser/payments/credit_card_access_manager.h
@@ -166,6 +166,10 @@ // immediately. bool IsFidoAuthenticationEnabled(); + // Returns true if |unmask_details_| is set and the card selected is listed as + // FIDO eligible. + bool IsSelectedCardFidoAuthorized(); + // TODO(crbug.com/991037): Move this function under the build flags after the // refactoring is done. // Offer the option to use WebAuthn for authenticating future card unmasking.
diff --git a/components/autofill/core/browser/payments/test_payments_client.cc b/components/autofill/core/browser/payments/test_payments_client.cc index 992428b8..8e9a1d90 100644 --- a/components/autofill/core/browser/payments/test_payments_client.cc +++ b/components/autofill/core/browser/payments/test_payments_client.cc
@@ -29,7 +29,10 @@ PersonalDataManager* personal_data_manager) : PaymentsClient(url_loader_factory_, identity_manager, - personal_data_manager) {} + personal_data_manager) { + // Default value should be CVC. + unmask_details_.unmask_auth_method = AutofillClient::UnmaskAuthMethod::CVC; +} TestPaymentsClient::~TestPaymentsClient() {}
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc index a77becc..164a249 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.cc
@@ -8,7 +8,6 @@ #include "base/bind.h" #include "base/files/file_path.h" -#include "base/json/json_reader.h" #include "base/location.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" @@ -40,22 +39,6 @@ namespace data_reduction_proxy { -namespace { - -base::Optional<base::Value> GetSaveDataSavingsPercentEstimateFromFieldTrial() { - if (!base::FeatureList::IsEnabled(features::kReportSaveDataSavings)) - return base::nullopt; - const auto origin_savings_estimate_json = - base::GetFieldTrialParamValueByFeature(features::kReportSaveDataSavings, - "origin_savings_estimate"); - if (origin_savings_estimate_json.empty()) - return base::nullopt; - - return base::JSONReader::Read(origin_savings_estimate_json); -} - -} // namespace - DataReductionProxyService::DataReductionProxyService( DataReductionProxySettings* settings, PrefService* prefs, @@ -79,9 +62,7 @@ data_use_measurement_(data_use_measurement), effective_connection_type_(net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN), client_(client), - channel_(channel), - save_data_savings_estimate_dict_( - GetSaveDataSavingsPercentEstimateFromFieldTrial()) { + channel_(channel) { DCHECK(settings); DCHECK(network_quality_tracker_); DCHECK(network_connection_tracker_); @@ -424,6 +405,8 @@ // process (renderer). if (bypass_duration < base::TimeDelta()) { + LOG(ERROR) << "Received bad MarkProxiesAsBad() -- invalid bypass_duration: " + << bypass_duration; std::move(callback).Run(); return; } @@ -437,6 +420,8 @@ // received (FindConfiguredDataReductionProxy() searches recent proxies too). for (const auto& proxy : bad_proxies.GetAll()) { if (!config_->FindConfiguredDataReductionProxy(proxy)) { + LOG(ERROR) << "Received bad MarkProxiesAsBad() -- not a DRP server: " + << proxy.ToURI(); std::move(callback).Run(); return; } @@ -565,17 +550,4 @@ config_client_->Initialize(url_loader_factory_); } -double DataReductionProxyService::GetSaveDataSavingsPercentEstimate( - const std::string& origin) const { - if (origin.empty() || !save_data_savings_estimate_dict_ || - !save_data_savings_estimate_dict_->is_dict()) { - return 0; - } - const auto savings_percent = - save_data_savings_estimate_dict_->FindDoubleKey(origin); - if (!savings_percent) - return 0; - return *savings_percent; -} - } // namespace data_reduction_proxy
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h index 295c7b7b..b59b72d 100644 --- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h +++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_service.h
@@ -16,7 +16,6 @@ #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" -#include "base/values.h" #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h" #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_util.h" #include "components/data_reduction_proxy/core/browser/db_data_owner.h" @@ -165,10 +164,6 @@ void Clone( mojo::PendingReceiver<mojom::DataReductionProxy> receiver) override; - // Returns the percentage of data savings estimate provided by save-data for - // an origin. - double GetSaveDataSavingsPercentEstimate(const std::string& origin) const; - // Accessor methods. DataReductionProxyCompressionStats* compression_stats() const { return compression_stats_.get(); @@ -314,9 +309,6 @@ // is unavailable, then the destruction will happen on the UI thread. std::unique_ptr<NetworkPropertiesManager> network_properties_manager_; - // Dictionary of save-data savings estimates by origin. - const base::Optional<base::Value> save_data_savings_estimate_dict_; - // The set of clients that will get updates about changes to the proxy config. mojo::RemoteSet<network::mojom::CustomProxyConfigClient> proxy_config_clients_;
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_features.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_features.cc index 476cce2a..4946a8c 100644 --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_features.cc +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_features.cc
@@ -74,10 +74,5 @@ "DataReductionProxyAggressiveConfigFetch", base::FEATURE_ENABLED_BY_DEFAULT}; -// Reports estimated data savings due to save-data request header and JS API, as -// savings provided by DataSaver. -const base::Feature kReportSaveDataSavings{"ReportSaveDataSavings", - base::FEATURE_DISABLED_BY_DEFAULT}; - } // namespace features } // namespace data_reduction_proxy
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_features.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_features.h index 350b746..81b4514 100644 --- a/components/data_reduction_proxy/core/common/data_reduction_proxy_features.h +++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_features.h
@@ -21,7 +21,6 @@ extern const base::Feature kDataReductionProxyDisableProxyFailedWarmup; extern const base::Feature kDataReductionProxyServerExperiments; extern const base::Feature kDataReductionProxyAggressiveConfigFetch; -extern const base::Feature kReportSaveDataSavings; } // namespace features } // namespace data_reduction_proxy
diff --git a/components/feed/core/proto/ui/action/ui_feed_action.proto b/components/feed/core/proto/ui/action/ui_feed_action.proto index c7b3028..9045a5f 100644 --- a/components/feed/core/proto/ui/action/ui_feed_action.proto +++ b/components/feed/core/proto/ui/action/ui_feed_action.proto
@@ -30,7 +30,7 @@ } // Metadata needed by the host to handle the action. -// Next Id: 9 +// Next Id: 18 message FeedActionMetadata { // The type of action, used by the host to perform any custom logic needed for // a specific type of action. @@ -58,6 +58,7 @@ SHOW_TOOLTIP = 14; NOT_INTERESTED_IN = 15; SEE_SUGGESTED_SITES = 16; + SEND_FEEDBACK = 17; reserved 9, 10; // Deprecated } optional Type type = 1;
diff --git a/components/feed/core/proto/wire/capability.proto b/components/feed/core/proto/wire/capability.proto index 5122064..5686b70 100644 --- a/components/feed/core/proto/wire/capability.proto +++ b/components/feed/core/proto/wire/capability.proto
@@ -12,7 +12,7 @@ option java_outer_classname = "CapabilityProto"; // Feature capability of either the client or the server. -// Next ID: 12. +// Next ID: 13. enum Capability { UNKNOWN_CAPABILITY = 0; BASE_UI = 1; @@ -25,6 +25,7 @@ CAROUSELS = 9; ELEMENTS = 10; CONTENT_ID_UNIFICATION = 11; + SEND_FEEDBACK = 12; reserved 3; }
diff --git a/components/onc/docs/onc_spec.md b/components/onc/docs/onc_spec.md index 740e12b..f74bd679 100644 --- a/components/onc/docs/onc_spec.md +++ b/components/onc/docs/onc_spec.md
@@ -1264,6 +1264,11 @@ * WiFi only. A substring which a remote RADIUS service certificate subject name must contain in order to connect. +* **SubjectAlternativeNameMatch** + * (optional) - [array of AlternativeSubjectName](#AlternativeSubjectName-type) + * WiFi only. A list of alternative subject names to be matched against the + alternative subject name of an authentication server certificate. + * **TLSVersionMax** * (optional) - **string** * Sets the maximum TLS protocol version used by the OS for EAP. @@ -1294,6 +1299,19 @@ can be set. --- +### AlternativeSubjectName type + +* **Type** + * (required) - **string** + * Type of the alternative subject name. + * Allowed values are: + * *EMAIL* + * *DNS* + * *URI* +* **Value** + * (required) - **string** + * Value of the alternative subject name. + ## Cellular Networks For Cellular connections, **Type** must be set to *Cellular* and the
diff --git a/components/onc/onc_constants.cc b/components/onc/onc_constants.cc index e22df55..7126cf71 100644 --- a/components/onc/onc_constants.cc +++ b/components/onc/onc_constants.cc
@@ -323,11 +323,20 @@ const char kServerCARef[] = "ServerCARef"; const char kServerCARefs[] = "ServerCARefs"; const char kSubjectMatch[] = "SubjectMatch"; +const char kSubjectAlternativeNameMatch[] = "SubjectAlternativeNameMatch"; const char kTLSVersionMax[] = "TLSVersionMax"; const char kUseSystemCAs[] = "UseSystemCAs"; const char kUseProactiveKeyCaching[] = "UseProactiveKeyCaching"; } // namespace eap +namespace eap_subject_alternative_name_match { +const char kType[] = "Type"; +const char kValue[] = "Value"; +const char kEMAIL[] = "EMAIL"; +const char kDNS[] = "DNS"; +const char kURI[] = "URI"; +} // namespace eap_subject_alternative_name_match + namespace vpn { const char kAutoConnect[] = "AutoConnect"; const char kHost[] = "Host";
diff --git a/components/onc/onc_constants.h b/components/onc/onc_constants.h index 07e97fbc..71ff535 100644 --- a/components/onc/onc_constants.h +++ b/components/onc/onc_constants.h
@@ -335,11 +335,20 @@ ONC_EXPORT extern const char kServerCARef[]; ONC_EXPORT extern const char kServerCARefs[]; ONC_EXPORT extern const char kSubjectMatch[]; +ONC_EXPORT extern const char kSubjectAlternativeNameMatch[]; ONC_EXPORT extern const char kTLSVersionMax[]; ONC_EXPORT extern const char kUseSystemCAs[]; ONC_EXPORT extern const char kUseProactiveKeyCaching[]; } // namespace eap +namespace eap_subject_alternative_name_match { +ONC_EXPORT extern const char kType[]; +ONC_EXPORT extern const char kValue[]; +ONC_EXPORT extern const char kEMAIL[]; +ONC_EXPORT extern const char kDNS[]; +ONC_EXPORT extern const char kURI[]; +} // namespace eap_subject_alternative_name_match + namespace vpn { ONC_EXPORT extern const char kAutoConnect[]; ONC_EXPORT extern const char kHost[];
diff --git a/components/services/storage/public/mojom/indexed_db_control.mojom b/components/services/storage/public/mojom/indexed_db_control.mojom index fe32bb3..05c8e18 100644 --- a/components/services/storage/public/mojom/indexed_db_control.mojom +++ b/components/services/storage/public/mojom/indexed_db_control.mojom
@@ -30,4 +30,7 @@ // returned array has one IndexedDBStorageUsageInfo per origin in the // partition that has IndexedDB usage data. GetUsage() => (array<IndexedDBStorageUsageInfo> info); + + // Deletes all indexed db files for the given origin. + DeleteForOrigin(url.mojom.Origin origin) => (bool success); };
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index a799199..1ad2a669 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">خدمة "فك الضغط"</translation> <translation id="1915697529809968049">هل تريد استخدام رقم التعريف باللمس بدلاً من رمز التحقق من البطاقة (CVC)؟</translation> <translation id="1916770123977586577">لتطبيق الإعدادات المُحدَّثة على موقع الويب هذا، أعِد تحميل هذه الصفحة</translation> -<translation id="1917876262703816781">كشفت عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه عن كلمة مرورك. يقترح متصفّح Chrome تغيير كلمة مرورك على <ph name="ORIGIN" /> الآن.</translation> +<translation id="1917876262703816781">تمّ الكشف عن كلمة مرورك من خلال عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه. يقترح متصفّح Chrome تغيير كلمة مرورك على <ph name="ORIGIN" /> الآن.</translation> <translation id="1919345977826869612">الإعلانات</translation> <translation id="1919367280705858090">الحصول على مساعدة بخصوص رسالة خطأ محددة</translation> <translation id="192020519938775529">{COUNT,plural, =0{بدون}=1{موقع واحد}two{ موقعان (#)}few{# مواقع}many{# موقعًا}other{# موقع}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">عرض ملفات تعريف الارتباط</translation> <translation id="5287456746628258573">يستخدم هذا الموقع الإلكتروني ضبط الأمان القديم الذي قد يكشف عن معلوماتك (مثل كلمات المرور أو أرقام بطاقة الائتمان) عند إرسالها إلى هذا الموقع الإلكتروني.</translation> <translation id="5288108484102287882">لقد أدى التحقُّق من قيم السياسة إلى ظهور تحذيرات.</translation> -<translation id="5295292838686006428">كشفت عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه عن كلمة مرورك. يقترح متصفّح Chrome التحقّق من كلمات المرور المحفوظة الآن.</translation> +<translation id="5295292838686006428">تمّ الكشف عن كلمة مرورك من خلال عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه. يقترح متصفّح Chrome التحقّق من كلمات المرور المحفوظة الآن.</translation> <translation id="5299298092464848405">خطأ في تحليل السياسة</translation> <translation id="5300589172476337783">عرض</translation> <translation id="5308380583665731573">اتصال</translation> @@ -1359,7 +1359,7 @@ <translation id="7473891865547856676">لا، شكرًا</translation> <translation id="7481312909269577407">إلى الأمام</translation> <translation id="7485870689360869515">لم يتم العثور على بيانات.</translation> -<translation id="7495290002932347110">كشفت عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه عن كلمة مرورك. يقترح متصفّح Chrome التحقّق من كلمات المرور المحفوظة وتغيير كلمة مرورك على <ph name="ORIGIN" /> الآن.</translation> +<translation id="7495290002932347110">تمّ الكشف عن كلمة مرورك من خلال عملية اختراق للبيانات على موقع إلكتروني أو تطبيق تستخدمه. يقترح متصفّح Chrome التحقّق من كلمات المرور المحفوظة وتغيير كلمة مرورك على <ph name="ORIGIN" /> الآن.</translation> <translation id="7498234416455752244">متابعة التعديل</translation> <translation id="7508255263130623398">رقم تعريف الجهاز المعروض للسياسة فارغ أو لا يتطابق مع رقم تعريف الجهاز الحالي</translation> <translation id="7508870219247277067">أخضر مصفر</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index 3a78274..5572369 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">আনজিপ সেৱা</translation> <translation id="1915697529809968049">CVCৰ পৰিৱৰ্তে স্পৰ্শ আইডি ব্যৱহাৰ কৰিবনে?</translation> <translation id="1916770123977586577">আপোনাৰ আপডে’ট কৰা ছেটিংসমূহ এই ছাইটটোত প্ৰয়োগ কৰিবলৈ এই পৃষ্ঠাটো পুনৰ ল’ড কৰক</translation> -<translation id="1917876262703816781">এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ পাছৱৰ্ডটো <ph name="ORIGIN" />ত এতিয়াই সলনি কৰিবলৈ চুপাৰিছ কৰে।</translation> +<translation id="1917876262703816781">কোনো এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ পাছৱৰ্ডটো <ph name="ORIGIN" />ত এতিয়াই সলনি কৰিবলৈ চুপাৰিছ কৰে।</translation> <translation id="1919345977826869612">বিজ্ঞাপনসমূহ</translation> <translation id="1919367280705858090">কোনো নির্দিষ্ট আসোঁৱাহ বার্তাৰ জৰিয়তে সহায় পাওক</translation> <translation id="192020519938775529">{COUNT,plural, =0{এটাও নহয়}=1{১টা ছাইট}one{#টা ছাইট}other{#টা ছাইট}}</translation> @@ -906,7 +906,7 @@ <translation id="5287240709317226393">কুকিসমূহ দেখুৱাওক</translation> <translation id="5287456746628258573">এই ছাইটটোৱে এটা পুৰণি সুৰক্ষা সম্পৰ্কীয় কনফিগাৰেশ্বন ব্যৱহাৰ কৰে, যিয়ে আপোনাৰ তথ্য (উদাহৰণস্বৰূপে, পাছৱৰ্ডসমূহ অথবা ক্ৰেডিট কাৰ্ডৰ নম্বৰসমূহ) সদৰী কৰিব পাৰে যেতিয়া এয়া এই ছাইটটোলৈ পঠিওৱা হয়।</translation> <translation id="5288108484102287882">নীতিৰ মানৰ মান্যতা পৰীক্ষা কৰাটোৱে সতৰ্কবাণী দিছে</translation> -<translation id="5295292838686006428">এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ ছেভ হৈ থকা পাছৱৰ্ডসমূহ এতিয়াই পৰীক্ষা কৰিবলৈ চুপাৰিছ কৰে।</translation> +<translation id="5295292838686006428">কোনো এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ ছেভ হৈ থকা পাছৱৰ্ডসমূহ এতিয়াই পৰীক্ষা কৰিবলৈ চুপাৰিছ কৰে।</translation> <translation id="5299298092464848405">নীতি পাৰ্ছ কৰোঁতে আসোঁৱাহ হৈছে</translation> <translation id="5300589172476337783">দেখুৱাওক</translation> <translation id="5308380583665731573">সংযোগ কৰক</translation> @@ -1347,7 +1347,7 @@ <translation id="7473891865547856676">নালাগে, ধন্যবাদ</translation> <translation id="7481312909269577407">ফৰৱাৰ্ড কৰক</translation> <translation id="7485870689360869515">কোনো ডেটা বিচাৰি পোৱা নগ’ল।</translation> -<translation id="7495290002932347110">এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ ছেভ হৈ থকা পাছৱৰ্ডসমূহ পৰীক্ষা কৰিবলৈ আৰু আপোনাৰ পাছৱৰ্ডটো <ph name="ORIGIN" />ত এতিয়াই সলনি কৰিবলৈ চুপাৰিছ কৰে।</translation> +<translation id="7495290002932347110">কোনো এটা ছাইট অথবা এপত হোৱা ডেটা উলংঘনে আপোনাৰ পাছৱৰ্ডটো ফাদিল কৰিছে। Chromeএ আপোনাৰ ছেভ হৈ থকা পাছৱৰ্ডসমূহ পৰীক্ষা কৰিবলৈ আৰু আপোনাৰ পাছৱৰ্ডটো <ph name="ORIGIN" />ত এতিয়াই সলনি কৰিবলৈ চুপাৰিছ কৰে।</translation> <translation id="7498234416455752244">সম্পাদনা কৰি থাকক</translation> <translation id="7508255263130623398">উভতোৱা নীতিৰ ডিভাইচ আইডি খালী বা বর্তমান আইডি সৈতে অমিল</translation> <translation id="7508870219247277067">গাঢ় সেউজীয়া</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index ad0a1bc..92bb981 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -1019,7 +1019,7 @@ <translation id="5804241973901381774">Permisos</translation> <translation id="5810442152076338065">Tu conexión a <ph name="DOMAIN" /> está encriptada con un conjunto de cifrado obsoleto.</translation> <translation id="5813119285467412249">&Rehacer Agregar</translation> -<translation id="5824687817967109979">{NUM_CARDS,plural, =1{Cuando realices un pago, se cargará esta tarjeta, pero el sitio no tendrá acceso a su número real. Para reforzar la seguridad, se generará un CVC temporal.}other{Cuando realices un pago, se cargará la tarjeta que selecciones, pero el sitio no tendrá acceso a su número real. Para reforzar la seguridad, se generará un CVC temporal.}}</translation> +<translation id="5824687817967109979">{NUM_CARDS,plural, =1{Cuando realices un pago, el importe se debitará de esta tarjeta, pero el sitio no tendrá acceso a su número real. Para reforzar la seguridad, se generará un CVC temporal.}other{Cuando realices un pago, el importe se debitará de la tarjeta que selecciones, pero el sitio no tendrá acceso a su número real. Para reforzar la seguridad, se generará un CVC temporal.}}</translation> <translation id="583281660410589416">Desconocido</translation> <translation id="5838278095973806738">No debes ingresar información confidencial en este sitio (p. ej., contraseñas o tarjetas de crédito), ya que los atacantes podrían robarla.</translation> <translation id="5851548754964597211">Lista de pestañas</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 82db1e45..4970521 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Servicio de descompresión</translation> <translation id="1915697529809968049">¿Usar Touch ID en lugar de CVC?</translation> <translation id="1916770123977586577">Vuelve a cargar esta página para aplicar la configuración actualizada a este sitio web</translation> -<translation id="1917876262703816781">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome te recomienda que cambies ahora tu contraseña de <ph name="ORIGIN" />.</translation> +<translation id="1917876262703816781">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome recomienda que cambies tu contraseña de <ph name="ORIGIN" /> ahora.</translation> <translation id="1919345977826869612">Anuncios</translation> <translation id="1919367280705858090">Solucionar un error específico</translation> <translation id="192020519938775529">{COUNT,plural, =0{Ninguno}=1{1 sitio web}other{# sitios web}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">Mostrar cookies</translation> <translation id="5287456746628258573">Este sitio web usa una configuración de seguridad obsoleta y puede que exponga tu información (por ejemplo, las contraseñas o los números de las tarjetas de crédito) cuando se envíe a este sitio web.</translation> <translation id="5288108484102287882">La validación de los valores de las políticas ha generado advertencias</translation> -<translation id="5295292838686006428">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome te recomienda que revises ahora tus contraseñas guardadas.</translation> +<translation id="5295292838686006428">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome recomienda que revises tus contraseñas guardadas ahora.</translation> <translation id="5299298092464848405">Error al analizar la política</translation> <translation id="5300589172476337783">Mostrar</translation> <translation id="5308380583665731573">Conectar</translation> @@ -1359,7 +1359,7 @@ <translation id="7473891865547856676">No, gracias</translation> <translation id="7481312909269577407">Adelante</translation> <translation id="7485870689360869515">No se han encontrado datos.</translation> -<translation id="7495290002932347110">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome te recomienda que revises las contraseñas guardadas y que cambies ahora la de <ph name="ORIGIN" />.</translation> +<translation id="7495290002932347110">Se ha producido una quiebra de seguridad de datos en un sitio web o una aplicación y tu contraseña ha quedado expuesta. Chrome recomienda que revises las contraseñas guardadas y que cambies la de <ph name="ORIGIN" /> ahora.</translation> <translation id="7498234416455752244">Seguir editando</translation> <translation id="7508255263130623398">El ID de dispositivo de política devuelto está vacío o no coincide con el ID de dispositivo actual</translation> <translation id="7508870219247277067">Verde aguacate</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index c504c65..c24e66d 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Lahtipakkimisteenus</translation> <translation id="1915697529809968049">Kas kasutada CVC asemel Touch ID-d?</translation> <translation id="1916770123977586577">Laadige leht uuesti, et rakendada värskendatud seaded saidile</translation> -<translation id="1917876262703816781">Saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil teenuse <ph name="ORIGIN" /> parooli kohe muuta.</translation> +<translation id="1917876262703816781">Mõnel saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil teenuse <ph name="ORIGIN" /> parooli kohe muuta.</translation> <translation id="1919345977826869612">Reklaamid</translation> <translation id="1919367280705858090">Konkreetse veateate puhul abi hankimine</translation> <translation id="192020519938775529">{COUNT,plural, =0{Ühtegi}=1{1 sait}other{# saiti}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">Kuva küpsised</translation> <translation id="5287456746628258573">See sait kasutab vananenud turvaseadistust, mis võib paljastada teie teabe (näiteks paroolid või krediitkaardinumbrid), kui see saadetakse sellele saidile.</translation> <translation id="5288108484102287882">Reegli väärtuste valideerimisel ilmnesid hoiatused</translation> -<translation id="5295292838686006428">Saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil salvestatud paroole kohe kontrollida.</translation> +<translation id="5295292838686006428">Mõnel saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil salvestatud paroole kohe kontrollida.</translation> <translation id="5299298092464848405">Reegli sõelumisel ilmnes viga</translation> <translation id="5300589172476337783">Kuva</translation> <translation id="5308380583665731573">Ühendamine</translation> @@ -1359,7 +1359,7 @@ <translation id="7473891865547856676">Tänan, ei</translation> <translation id="7481312909269577407">Edasta</translation> <translation id="7485870689360869515">Andmeid ei leitud.</translation> -<translation id="7495290002932347110">Saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil salvestatud paroole kontrollida ja teenuse <ph name="ORIGIN" /> parooli kohe muuta.</translation> +<translation id="7495290002932347110">Mõnel saidil või rakenduses esines andmetega seotud rikkumine, mille käigus avalikustati teie parool. Chrome soovitab teil salvestatud paroole kontrollida ja teenuse <ph name="ORIGIN" /> parooli kohe muuta.</translation> <translation id="7498234416455752244">Jätka muutmist</translation> <translation id="7508255263130623398">Tagastatud reegli seadme-ID on tühi või ei kattu praeguse seadme-ID-ga</translation> <translation id="7508870219247277067">Avokaadoroheline</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index f5da62ae..942522f 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Purkupalvelu</translation> <translation id="1915697529809968049">Käytetäänkö Touch ID:tä CVC:n sijaan?</translation> <translation id="1916770123977586577">Päivitä tämä sivu, niin päivitetyt asetuksesi otetaan käyttöön tällä sivustolla.</translation> -<translation id="1917876262703816781">Sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee, että vaihdat salasanan heti (<ph name="ORIGIN" />).</translation> +<translation id="1917876262703816781">Jonkin sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee, että vaihdat salasanan heti (<ph name="ORIGIN" />).</translation> <translation id="1919345977826869612">Mainokset</translation> <translation id="1919367280705858090">Tiettyjen virheiden korjaaminen</translation> <translation id="192020519938775529">{COUNT,plural, =0{Ei mitään}=1{1 sivusto}other{# sivustoa}}</translation> @@ -914,7 +914,7 @@ <translation id="5287240709317226393">Näytä evästeet</translation> <translation id="5287456746628258573">Tämä sivusto käyttää vanhentunutta tietoturvamääritystä, joka voi paljastaa tietosi (esim. salasanat tai credit-korttien numerot), kun ne lähetetään sivustolle.</translation> <translation id="5288108484102287882">Käytäntöarvojen vahvistus aiheutti varoituksia</translation> -<translation id="5295292838686006428">Sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee tarkistamaan tallennetut salasanasi nyt.</translation> +<translation id="5295292838686006428">Jonkin sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee tarkistamaan tallennetut salasanasi nyt.</translation> <translation id="5299298092464848405">Virhe jäsennettäessä käytäntöä</translation> <translation id="5300589172476337783">Näytä</translation> <translation id="5308380583665731573">Muodosta yhteys</translation> @@ -1360,7 +1360,7 @@ <translation id="7473891865547856676">Ei kiitos</translation> <translation id="7481312909269577407">Seuraava</translation> <translation id="7485870689360869515">Tietoja ei löydy.</translation> -<translation id="7495290002932347110">Sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee, että tarkistat tallennetut salasanasi ja vaihdat salasanan heti (<ph name="ORIGIN" />).</translation> +<translation id="7495290002932347110">Jonkin sivuston tai sovelluksen tietosuojaloukkaus paljasti salasanasi. Chrome suosittelee, että tarkistat tallennetut salasanasi ja vaihdat salasanan heti (<ph name="ORIGIN" />).</translation> <translation id="7498234416455752244">Jatka muokkausta</translation> <translation id="7508255263130623398">Palautettu käytännön laitetunnus on tyhjä tai ei vastaa nykyistä laitetunnusta.</translation> <translation id="7508870219247277067">Avokadonvihreä</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 55c0323..e99cd9d5 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -897,7 +897,7 @@ <translation id="5287240709317226393">Afficher les témoins</translation> <translation id="5287456746628258573">Ce site utilise une configuration de sécurité obsolète qui pourrait exposer vos données personnelles (par exemple, vos mots de passe ou vos numéros de carte de crédit) lorsqu'elles sont envoyées à ce site.</translation> <translation id="5288108484102287882">La validation des valeurs de politique a déclenché des avertissements</translation> -<translation id="5295292838686006428">Une violation de données sur un site ou dans une application a exposé votre mot de passe. Chrome vous recommande de vérifier vos mots de passe enregistrés.</translation> +<translation id="5295292838686006428">Une violation de données sur un site ou dans une application a exposé votre mot de passe. Chrome vous recommande de vérifier vos mots de passe enregistrés maintenant.</translation> <translation id="5299298092464848405">Erreur d'analyse de politique</translation> <translation id="5300589172476337783">Afficher</translation> <translation id="5308380583665731573">Connecter</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index e25fc77..3ab28eac 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">अनज़िप सेवा</translation> <translation id="1915697529809968049">क्या आप कार्ड वेरीफ़िकेशन कोड (सीवीसी) के बजाय टच आईडी का इस्तेमाल करना चाहते हैं?</translation> <translation id="1916770123977586577">इस साइट पर अपनी अपडेट की गई सेटिंग लागू करने के लिए, इस पेज को फिर से लोड करें</translation> -<translation id="1917876262703816781">साइट या ऐप्लिकेशन में डेटा का उल्लंघन होने पर आपका पासवर्ड बिना अनुमति के सार्वजनिक हो सकता है. Chrome सुझाव देता है कि आप <ph name="ORIGIN" /> पर अभी अपना पासवर्ड बदलें.</translation> +<translation id="1917876262703816781">किसी साइट या ऐप्लिकेशन पर हुए डेटा ब्रीच में आपका पासवर्ड उजागर हो गया है. Chrome का सुझाव है कि आप <ph name="ORIGIN" /> पर अभी अपना पासवर्ड बदलें.</translation> <translation id="1919345977826869612">विज्ञापन</translation> <translation id="1919367280705858090">गड़बड़ी के किसी खास मैसेज से मदद पाना</translation> <translation id="192020519938775529">{COUNT,plural, =0{कुछ नहीं}=1{1 साइट}one{# साइट}other{# साइट}}</translation> @@ -910,7 +910,7 @@ <translation id="5287240709317226393">कुकी दिखाएं</translation> <translation id="5287456746628258573">यह साइट एक पुराने सुरक्षा कॉन्फ़िगरेशन का इस्तेमाल करती है. इस वजह से, साइट पर भेजी जाने वाली आपकी जानकारी (उदाहरण के लिए, पासवर्ड या क्रेडिट कार्ड नंबर वगैरह) को कोई और देख सकता है.</translation> <translation id="5288108484102287882">नीति मानों की पुष्टि से चेतावनियां मिली हैं</translation> -<translation id="5295292838686006428">साइट या ऐप्लिकेशन में डेटा का उल्लंघन होने पर आपका पासवर्ड बिना अनुमति के सार्वजनिक हो सकता है. Chrome सुझाव देता है कि आप अपने सेव किए हुए पासवर्ड की अभी जांच करें.</translation> +<translation id="5295292838686006428">किसी साइट या ऐप्लिकेशन पर हुए डेटा ब्रीच में आपका पासवर्ड उजागर हो गया है. Chrome सुझाव देता है कि आप अपने सेव किए हुए पासवर्ड की अभी जांच करें.</translation> <translation id="5299298092464848405">नीति पार्स करने में गड़बड़ी</translation> <translation id="5300589172476337783">दिखाएं</translation> <translation id="5308380583665731573">कनेक्ट करें</translation> @@ -1356,7 +1356,7 @@ <translation id="7473891865547856676">नहीं, रहने दें</translation> <translation id="7481312909269577407">आगे जाएं</translation> <translation id="7485870689360869515">कोई डेटा नहीं मिला</translation> -<translation id="7495290002932347110">साइट या ऐप्लिकेशन में डेटा का उल्लंघन होने पर आपका पासवर्ड बिना अनुमति के सार्वजनिक हो सकता है. Chrome सुझाव देता है कि आप अपने सेव किए हुए पासवर्ड की जांच करें और उसे <ph name="ORIGIN" /> पर अभी बदलें.</translation> +<translation id="7495290002932347110">किसी साइट या ऐप्लिकेशन पर हुए डेटा ब्रीच में आपका पासवर्ड उजागर हो गया है. Chrome का सुझाव है कि आप अपने सेव किए हुए पासवर्ड की जांच करें और <ph name="ORIGIN" /> पर अभी अपना पासवर्ड बदलें.</translation> <translation id="7498234416455752244">बदलाव करना जारी रखें</translation> <translation id="7508255263130623398">वापस लौटाया हुआ नीति डिवाइस आईडी खाली है या उसका मिलान वर्तमान डिवाइस आईडी से नहीं होता है</translation> <translation id="7508870219247277067">एवोकैडो हरा</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 713c43c50..3e7bbab 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">שירות לפתיחת קבצים דחוסים</translation> <translation id="1915697529809968049">האם להשתמש ב-Touch ID במקום ב-CVC?</translation> <translation id="1916770123977586577">כדי להחיל על האתר את ההגדרות המעודכנות, טען מחדש את הדף</translation> -<translation id="1917876262703816781">פרצה באבטחת מידע באתר או באפליקציה חשפה את הסיסמה שלך. ההמלצה של Chrome היא לשנות עכשיו את הסיסמה ב-<ph name="ORIGIN" />.</translation> +<translation id="1917876262703816781">הסיסמה שלך נחשפה בעקבות פרצת אבטחת מידע באתר או באפליקציה. ההמלצה של Chrome היא לשנות עכשיו את הסיסמה באתר <ph name="ORIGIN" />.</translation> <translation id="1919345977826869612">מודעות</translation> <translation id="1919367280705858090">עזרה לגבי הודעות שגיאה ספציפיות</translation> <translation id="192020519938775529">{COUNT,plural, =0{ללא}=1{אתר אחד}two{שני אתרים}many{# אתרים}other{# אתרים}}</translation> @@ -915,7 +915,7 @@ <translation id="5287240709317226393">הצגת קובצי Cookie</translation> <translation id="5287456746628258573">האתר הזה משתמש בהגדרת אבטחה מיושנת, שעלולה לחשוף את המידע שלך (למשל, סיסמאות או מספרים של כרטיס אשראי) כשהוא נשלח לאתר זה.</translation> <translation id="5288108484102287882">בעקבות אימות ערכי המדיניות הופיעו אזהרות</translation> -<translation id="5295292838686006428">פרצה באבטחת מידע באתר או באפליקציה חשפה את הסיסמה שלך. ההמלצה של Chrome היא לבדוק עכשיו את הסיסמאות השמורות.</translation> +<translation id="5295292838686006428">הסיסמה שלך נחשפה בעקבות פרצת אבטחת מידע באתר או באפליקציה. ההמלצה של Chrome היא לבדוק עכשיו את הסיסמאות השמורות שלך.</translation> <translation id="5299298092464848405">שגיאה בניתוח המדיניות</translation> <translation id="5300589172476337783">הצגה</translation> <translation id="5308380583665731573">התחברות</translation> @@ -1362,7 +1362,7 @@ <translation id="7473891865547856676">לא, תודה</translation> <translation id="7481312909269577407">קדימה</translation> <translation id="7485870689360869515">לא נמצאו נתונים.</translation> -<translation id="7495290002932347110">פרצה באבטחת מידע באתר או באפליקציה חשפה את הסיסמה שלך. ההמלצה של Chrome היא לבדוק עכשיו את הסיסמאות ששמרת ולשנות את הסיסמה ב-<ph name="ORIGIN" />.</translation> +<translation id="7495290002932347110">הסיסמה שלך נחשפה בעקבות פרצת אבטחת מידע באתר או באפליקציה. ההמלצה של Chrome היא לבדוק עכשיו את הסיסמאות השמורות שלך ולשנות את הסיסמה באתר <ph name="ORIGIN" />.</translation> <translation id="7498234416455752244">המשך העריכה</translation> <translation id="7508255263130623398">מזהה המכשיר במדיניות שהוחזר ריק או שאינו תואם את מזהה המכשיר הנוכחי</translation> <translation id="7508870219247277067">ירוק אבוקדו</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 93afafd..e051d45 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">解凍サービス</translation> <translation id="1915697529809968049">CVC の代わりに Touch ID を使用しますか?</translation> <translation id="1916770123977586577">更新後の設定をこのサイトに適用するには、このページを再読み込みしてください</translation> -<translation id="1917876262703816781">サイトまたはアプリでのデータ侵害により、パスワード情報が漏洩しました。<ph name="ORIGIN" /> のパスワードをすぐに変更することをおすすめします。</translation> +<translation id="1917876262703816781">サイトまたはアプリでのデータ侵害により、パスワード情報が漏洩しました。<ph name="ORIGIN" /> のパスワードを今すぐ変更することをおすすめします。</translation> <translation id="1919345977826869612">広告</translation> <translation id="1919367280705858090">特定のエラー メッセージに関する情報</translation> <translation id="192020519938775529">{COUNT,plural, =0{なし}=1{1 件のサイト}other{# 件のサイト}}</translation> @@ -897,7 +897,7 @@ <translation id="5287240709317226393">Cookie を表示</translation> <translation id="5287456746628258573">このサイトでは古いセキュリティ設定を使用しています。このサイトにパスワードやクレジット カード番号などの情報を送信すると流出する恐れがあります。</translation> <translation id="5288108484102287882">ポリシー値の検証で警告が返されました</translation> -<translation id="5295292838686006428">サイトまたはアプリでのデータ侵害により、パスワード情報が漏洩しました。保存したパスワードをすぐに確認することをおすすめします。</translation> +<translation id="5295292838686006428">サイトまたはアプリでのデータ侵害により、パスワード情報が漏洩しました。保存したパスワードを今すぐ確認することをおすすめします。</translation> <translation id="5299298092464848405">ポリシーの解析中にエラーが発生しました</translation> <translation id="5300589172476337783">表示</translation> <translation id="5308380583665731573">接続</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index bb2d4221..12888f0 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Мұрағаттан шығару қызметі</translation> <translation id="1915697529809968049">CVC орнына Touch ID қолданасыз ба?</translation> <translation id="1916770123977586577">Жаңартылған параметрлерді бұл сайтқа қолдану үшін осы бетті қайта жүктеңіз</translation> -<translation id="1917876262703816781">Сіз пайдаланатын сайттағы немесе қолданбадағы деректер қолды болды. Chrome браузері <ph name="ORIGIN" /> сайтындағы құпия сөзіңізді дереу өзгертуге кеңес береді.</translation> +<translation id="1917876262703816781">Сіз пайдаланатын сайттың немесе қолданбаның деректері қолды болды. Chrome браузері <ph name="ORIGIN" /> сайтындағы құпия сөзіңізді дереу өзгертуге кеңес береді.</translation> <translation id="1919345977826869612">Жарнамалар</translation> <translation id="1919367280705858090">Арнайы қате туралы хабар арқылы көмек алу</translation> <translation id="192020519938775529">{COUNT,plural, =0{Жоқ}=1{1 сайт}other{# сайт}}</translation> @@ -912,7 +912,7 @@ <translation id="5287240709317226393">Cookie файлдарын көрсету</translation> <translation id="5287456746628258573">Бұл сайттың қауіпсіздік конфигурациясы ескірген. Сайтқа мәліметтер (мысалы, құпия сөздер немесе несиелік карта нөмірлері) жіберілгенде, шабуылдаушылар оларды пайдалануы мүмкін.</translation> <translation id="5288108484102287882">Саясат мәндерін тексеру кезінде бірнеше ескерту жасалды</translation> -<translation id="5295292838686006428">Сіз пайдаланатын сайттағы немесе қолданбадағы деректер қолды болды. Chrome браузері сақталған құпия сөздеріңізді дереу тексеруді ұсынады.</translation> +<translation id="5295292838686006428">Сіз пайдаланатын сайттың немесе қолданбаның деректері қолды болды. Chrome браузері сақталған құпия сөздеріңізді дереу тексеруді ұсынады.</translation> <translation id="5299298092464848405">Саясатты талдау қатесі</translation> <translation id="5300589172476337783">Көрсету</translation> <translation id="5308380583665731573">Қосылу</translation> @@ -1358,7 +1358,7 @@ <translation id="7473891865547856676">Жоқ, рақмет</translation> <translation id="7481312909269577407">Басқаға жіберу</translation> <translation id="7485870689360869515">Деректер табылмады.</translation> -<translation id="7495290002932347110">Сіз пайдаланатын сайттағы немесе қолданбадағы деректер қолды болды. Chrome браузері сақталған құпия сөздеріңізді тексеруді және <ph name="ORIGIN" /> сайтындағы құпия сөзді дереу өзгертуді ұсынады.</translation> +<translation id="7495290002932347110">Сіз пайдаланатын сайттың немесе қолданбаның деректері қолды болды. Chrome браузері сақталған құпия сөздеріңізді тексеруді және <ph name="ORIGIN" /> сайтындағы құпия сөзді дереу өзгертуді ұсынады.</translation> <translation id="7498234416455752244">Әрі қарай өзгерту</translation> <translation id="7508255263130623398">Қайтарылған құрылғының сервердегі идентификаторы бос немесе оның ағымдағы идентификаторына сәйкес келмейді</translation> <translation id="7508870219247277067">Қою жасыл</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index f361e46f..718fa178 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -212,7 +212,7 @@ <translation id="1914326953223720820">សេវាកម្មពន្លាឯកសារ</translation> <translation id="1915697529809968049">ប្រើ Touch ID ជំនួសឱ្យ CVC?</translation> <translation id="1916770123977586577">ដើម្បីអនុវត្តការកំណត់ដែលអ្នកបានធ្វើបច្ចុប្បន្នភាពចំពោះទំព័រនេះ សូមផ្ទុកទំព័រនេះឡើងវិញ</translation> -<translation id="1917876262703816781">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីណាមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យប្ដូរពាក្យសម្ងាត់របស់អ្នកនៅលើ <ph name="ORIGIN" /> ឥឡូវនេះ។</translation> +<translation id="1917876262703816781">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យប្ដូរពាក្យសម្ងាត់របស់អ្នកនៅលើ <ph name="ORIGIN" /> ឥឡូវនេះ។</translation> <translation id="1919345977826869612">ពាណិជ្ជកម្ម</translation> <translation id="1919367280705858090">ទទួលបានជំនួយដោយប្រើសារបញ្ហាជាក់លាក់មួយ</translation> <translation id="192020519938775529">{COUNT,plural, =0{គ្មាន}=1{ទំព័រ 1}other{ទំព័រ #}}</translation> @@ -917,7 +917,7 @@ <translation id="5287240709317226393">បង្ហាញខូគី</translation> <translation id="5287456746628258573">គេហទំព័រនេះប្រើការកំណត់រចនាសម្ព័ន្ធសុវត្ថិភាពដែលហួសសម័យ ដែលជាហេតុអាចធ្វើឱ្យបែកធ្លាយព័ត៌មានរបស់អ្នក (ឧទាហរណ៍ ពាក្យសម្ងាត់ លេខបណ្ណឥណទាន) នៅពេលផ្ញើទៅគេហទំព័រនេះ។</translation> <translation id="5288108484102287882">ការបញ្ជាក់តម្លៃត្រឹមត្រូវសម្រាប់គោលការណ៍បានបង្ហាញពីការព្រមាន</translation> -<translation id="5295292838686006428">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីណាមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យពិនិត្យមើលពាក្យសម្ងាត់ដែលអ្នកបានរក្សាទុកឥឡូវនេះ។</translation> +<translation id="5295292838686006428">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យពិនិត្យមើលពាក្យសម្ងាត់ដែលអ្នកបានរក្សាទុកឥឡូវនេះ។</translation> <translation id="5299298092464848405">កំហុសឆ្គងគោលការណ៍ការវិភាគ</translation> <translation id="5300589172476337783">បង្ហាញ</translation> <translation id="5308380583665731573">ភ្ជាប់</translation> @@ -1363,7 +1363,7 @@ <translation id="7473891865547856676">ទេ អរគុណ</translation> <translation id="7481312909269577407">ទៅមុខ</translation> <translation id="7485870689360869515">គ្មានទិន្នន័យត្រូវបានរកឃើញទេ។</translation> -<translation id="7495290002932347110">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីណាមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យពិនិត្យមើលពាក្យសម្ងាត់ដែលអ្នកបានរក្សាទុក និងប្ដូរពាក្យសម្ងាត់របស់អ្នកនៅលើ <ph name="ORIGIN" /> ឥឡូវនេះ។</translation> +<translation id="7495290002932347110">ការបំពានទិន្នន័យនៅលើគេហទំព័រ ឬកម្មវិធីមួយបានធ្វើឱ្យបែកធ្លាយពាក្យសម្ងាត់របស់អ្នក។ Chrome សូមណែនាំឱ្យពិនិត្យមើលពាក្យសម្ងាត់ដែលអ្នកបានរក្សាទុក និងប្ដូរពាក្យសម្ងាត់របស់អ្នកនៅលើ <ph name="ORIGIN" /> ឥឡូវនេះ។</translation> <translation id="7498234416455752244">បន្តកែសម្រួល</translation> <translation id="7508255263130623398">លេខសម្គាល់ឧបករណ៍គោលការណ៍ប្រគល់ត្រឡប់វិញគឺទទេ ឬមិនត្រូវគ្នាជាមួយលេខសម្គាល់ឧបករណ៍បច្ចុប្បន្ន</translation> <translation id="7508870219247277067">បៃតងខ្ចី</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index fd721ae..cf2ed8fc 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -209,7 +209,7 @@ <translation id="1914326953223720820">ಸೇವೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಿ</translation> <translation id="1915697529809968049">CVC ಬದಲಿಗೆ ಸ್ಪರ್ಶ ಐಡಿಯನ್ನು ಬಳಸುವಿರಾ?</translation> <translation id="1916770123977586577">ನಿಮ್ಮ ಅಪ್ಡೇಟ್ ಮಾಡಲಾದ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಈ ಸೈಟ್ಗೆ ಅನ್ವಯಿಸಲು, ಈ ಪುಟವನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> -<translation id="1917876262703816781">ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ನೀವು <ph name="ORIGIN" /> ನಲ್ಲಿ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ತಕ್ಷಣ ಬದಲಾಯಿಸಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> +<translation id="1917876262703816781">ಯಾವುದೋ ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಿದೆ. ನೀವು ಈಗಲೇ <ph name="ORIGIN" /> ನಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಬೇಕೆಂದು Chrome ಶಿಫಾರಸು ಮಾಡಿದೆ.</translation> <translation id="1919345977826869612">ಜಾಹೀರಾತುಗಳು</translation> <translation id="1919367280705858090">ನಿರ್ದಿಷ್ಟ ದೋಷ ಸಂದೇಶಕ್ಕೆ ಸಹಾಯ ಪಡೆಯಿರಿ</translation> <translation id="192020519938775529">{COUNT,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ಸೈಟ್}one{# ಸೈಟ್ಗಳು}other{# ಸೈಟ್ಗಳು}}</translation> @@ -893,7 +893,7 @@ <translation id="5287240709317226393">ಕುಕೀಸ್ ಅನ್ನು ತೋರಿಸಿ</translation> <translation id="5287456746628258573">ಈ ಸೈಟ್ ಹಳೆಯ ಸುರಕ್ಷತಾ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಈ ಸೈಟ್ಗೆ ಕಳುಹಿಸಿದಾಗ ಅದನ್ನು (ಉದಾಹರಣೆಗೆ, ಪಾಸ್ವರ್ಡ್ಗಳು ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಗಳು) ಬಹಿರಂಗಪಡಿಸಬಹುದು.</translation> <translation id="5288108484102287882">ಕಾರ್ಯನೀತಿ ಮೌಲ್ಯಗಳ ಮೌಲ್ಯೀಕರಣ ಪ್ರಕ್ರಿಯೆಯು ಎಚ್ಚರಿಕೆಯ ಸಂದೇಶಗಳನ್ನು ತೋರಿಸುತ್ತಿದೆ</translation> -<translation id="5295292838686006428">ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತಕ್ಷಣ ಪರಿಶೀಲಿಸುವಂತೆ Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> +<translation id="5295292838686006428">ಯಾವುದೋ ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಿದೆ. ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತಕ್ಷಣ ಪರಿಶೀಲಿಸಬೇಕೆಂದು Chrome ಶಿಫಾರಸು ಮಾಡಿದೆ.</translation> <translation id="5299298092464848405">ನೀತಿಯ ಪಾರ್ಸಿಂಗ್ನಲ್ಲಿ ದೋಷ</translation> <translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation> <translation id="5308380583665731573">ಸಂಪರ್ಕಿಸು</translation> @@ -1337,7 +1337,7 @@ <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation> <translation id="7481312909269577407">ಫಾರ್ವರ್ಡ್</translation> <translation id="7485870689360869515">ಯಾವುದೇ ಡೇಟಾ ಕಂಡುಬಂದಿಲ್ಲ.</translation> -<translation id="7495290002932347110">ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ನೀವು <ph name="ORIGIN" /> ನಲ್ಲಿ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ತಕ್ಷಣ ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಬದಲಾಯಿಸಲು Chrome ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> +<translation id="7495290002932347110">ಯಾವುದೋ ಸೈಟ್ ಅಥವಾ ಆ್ಯಪ್ನಲ್ಲಿನ ಡೇಟಾ ಉಲ್ಲಂಘನೆಯು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಿದೆ. ನಿಮ್ಮ ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಬೇಕೆಂದು ಹಾಗೂ ಈಗಲೇ <ph name="ORIGIN" /> ನಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಬೇಕೆಂದು Chrome ಶಿಫಾರಸು ಮಾಡಿದೆ.</translation> <translation id="7498234416455752244">ಎಡಿಟ್ ಮಾಡುತ್ತಿರಿ</translation> <translation id="7508255263130623398">ಹಿಂತಿರುಗಿಸಲಾದ ನೀತಿಯ ಸಾಧನ ಐಡಿ ಖಾಲಿ ಇದೆ ಅಥವಾ ಪ್ರಸ್ತುತ ಸಾಧನ ಐಡಿಗೆ ಹೊಂದಾಣಿಕೆಯಾಗುವುದಿಲ್ಲ</translation> <translation id="7508870219247277067">ಅವಕಾಡೊ ಹಸಿರು</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index aab1055..ad99302 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Файлдарды архивден чыгаруу кызматы</translation> <translation id="1915697529809968049">CVC'нин ордуна Touch ID колдонулсунбу?</translation> <translation id="1916770123977586577">Бул сайттагы жаңыртылган жөндөөлөрдү колдонуп баштоо үчүн баракты жаңыртыңыз</translation> -<translation id="1917876262703816781">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. Chrome <ph name="ORIGIN" /> сайтында колдонгон сырсөзүңүздү азыр өзгөртүүнү сунуштайт.</translation> +<translation id="1917876262703816781">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. <ph name="ORIGIN" /> сайтында колдонгон сырсөзүңүздү токтоосуз өзгөртүңүз.</translation> <translation id="1919345977826869612">Жарнамалар</translation> <translation id="1919367280705858090">Белгилүү бир каталар боюнча жардам алуу</translation> <translation id="192020519938775529">{COUNT,plural, =0{Бирөө да жок}=1{1 сайт}other{# сайт}}</translation> @@ -912,7 +912,7 @@ <translation id="5287240709317226393">Кукилерди көрсөтүү</translation> <translation id="5287456746628258573">Бул сайт эскирген коопсуздук конфигурациясын колдонуп жатат. Маалыматыңыз (мисалы, сырсөздөр же насыя карталарынын номерлер) ушул сайтка жөнөтүлгөндө ачык көрүнүп калышы мүмкүн.</translation> <translation id="5288108484102287882">Саясатта коюлган маанилерди ырастоодо эскертүүлөр берилди</translation> -<translation id="5295292838686006428">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. Chrome сакталган сырсөздөрүңүздү азыр текшерүүнү сунуштайт.</translation> +<translation id="5295292838686006428">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. Сакталган сырсөздөрүңүздү текшерип коюңуз.</translation> <translation id="5299298092464848405">Саясатты талдоо катасы</translation> <translation id="5300589172476337783">Көрсөтүү</translation> <translation id="5308380583665731573">Туташуу</translation> @@ -982,7 +982,7 @@ <translation id="5617949217645503996"><ph name="HOST_NAME" /> сайты сизди башка дарекке өтө көп жолу багыттады.</translation> <translation id="5629630648637658800">Саясат жөндөөлөрү жүктөлбөй калды.</translation> <translation id="5631439013527180824">Түзмөктү башкаргычуу белгиси</translation> -<translation id="5632627355679805402">Дайындарыңыз <ph name="BEGIN_LINK" />Google сырсөзүңүз<ph name="END_LINK" /> менен <ph name="TIME" /> шифрленген. Шайкештирип баштоо үчүн, сырсөзүңүздү киргизиңиз.</translation> +<translation id="5632627355679805402">Дайын-даректериңиз <ph name="BEGIN_LINK" />Google сырсөзүңүз<ph name="END_LINK" /> менен <ph name="TIME" /> шифрленген. Шайкештирип баштоо үчүн, сырсөзүңүздү киргизиңиз.</translation> <translation id="5633066919399395251">Учурда <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> сайтындагы чабуулчулар компьютериңизге кооптуу программаларды орнотууга жана маалыматыңызды (мисалы, сүрөттөр, сырсөздөр, билдирүүлөр жана насыя карточкалары) уурдап же жок кылууга аракет кылышы мүмкүн. <ph name="BEGIN_LEARN_MORE_LINK" />Кеңири маалымат<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="563324245173044180">Адаштыруучу мазмун бөгөттөлдү.</translation> <translation id="5659593005791499971">Электрондук почта</translation> @@ -1208,7 +1208,7 @@ <translation id="6710594484020273272"><Изделүүчү сөздү териңиз></translation> <translation id="671076103358959139">Катталуу токени:</translation> <translation id="6711464428925977395">Прокси серверден кандайдыр бир ката кетти же дарек туура эмес.</translation> -<translation id="6738516213925468394">Дайындарыңыз <ph name="BEGIN_LINK" />шайкештирүүчү өткөрүүчү сүйлөм<ph name="END_LINK" /> менен <ph name="TIME" /> шифрлеген. Шайкештирип баштоо үчүн, аны киргизиңиз.</translation> +<translation id="6738516213925468394">Дайын-даректериңиз <ph name="BEGIN_LINK" />шайкештирүүчү өткөрүүчү сүйлөм<ph name="END_LINK" /> менен <ph name="TIME" /> шифрлеген. Шайкештирип баштоо үчүн, аны киргизиңиз.</translation> <translation id="674375294223700098">Сервер тастыктамасынын белгисиз катасы.</translation> <translation id="6744009308914054259">Интернет байланышын күткөнчө, Жүктөлүп алынган файлдарды ачып, макалаларды оффлайнда окуп туруңуз.</translation> <translation id="6753269504797312559">Саясат мааниси</translation> @@ -1358,7 +1358,7 @@ <translation id="7473891865547856676">Жок, рахмат</translation> <translation id="7481312909269577407">Багыттоо</translation> <translation id="7485870689360869515">Дайындар табылган жок.</translation> -<translation id="7495290002932347110">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. Chrome сакталган сырсөздөрүңүздү текшерүүнү же <ph name="ORIGIN" /> сайтында колдонгон сырсөзүңүздү азыр өзгөртүүнү сунуштайт.</translation> +<translation id="7495290002932347110">Сайттагы же колдонмодогу сырсөзүңүздү кимдир-бирөө билип алды. Сакталган сырсөздөрүңүздү текшерип коюңуз же <ph name="ORIGIN" /> сайтында колдонгон сырсөзүңүздү өзгөртүңүз.</translation> <translation id="7498234416455752244">Түзөтүүнү улантуу</translation> <translation id="7508255263130623398">Кайтарылган саясат түзмөгүнүн id'си бош же учурдагы түзмөктүн id'сине дал келбейт</translation> <translation id="7508870219247277067">Жашыл (авокадо)</translation> @@ -1574,7 +1574,7 @@ <translation id="8508648098325802031">Издөө сүрөтчөсү</translation> <translation id="8522552481199248698">Chrome Google аккаунтуңуздун коопсуздугун коргоп, сырсөзүңүздү өзгөртүүгө жардам берет.</translation> <translation id="8542014550340843547">Төмөнкү жагын үч жолу тешүү</translation> -<translation id="8543181531796978784"><ph name="BEGIN_ERROR_LINK" />Аныкталган көйгөйдү кабарласаңыз<ph name="END_ERROR_LINK" /> болот, же жеке дайындарыңыз зыянга учурап калат деп коркпосоңуз, <ph name="BEGIN_LINK" />бул кооптуу сайтка кире<ph name="END_LINK" /> бериңиз.</translation> +<translation id="8543181531796978784"><ph name="BEGIN_ERROR_LINK" />Аныкталган көйгөйдү кабарласаңыз<ph name="END_ERROR_LINK" /> болот, же жеке дайын-даректериңиз зыянга учурап калат деп коркпосоңуз, <ph name="BEGIN_LINK" />бул кооптуу сайтка кире<ph name="END_LINK" /> бериңиз.</translation> <translation id="8553075262323480129">Баракчанын тили аныкталбагандыктан, которулбай калды.</translation> <translation id="8557066899867184262">CVC карточкаңыздын артында жайгашкан.</translation> <translation id="8559762987265718583">Түзмөгүңүздүн күнү жана убакыты (<ph name="DATE_AND_TIME" />) туура эмес болгондуктан, <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> менен купуя туташуу мүмкүн болбой жатат.</translation> @@ -1694,7 +1694,7 @@ <translation id="9183302530794969518">Google Docs</translation> <translation id="9183425211371246419"><ph name="HOST_NAME" /> колдоого алынбаган протоколду колдонуп жатат.</translation> <translation id="9191834167571392248">Төмөнкү сол жагын тешүү</translation> -<translation id="9205078245616868884">Дайындарыңыз купуя сөз айкашы менен шифрленген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> +<translation id="9205078245616868884">Дайын-даректериңиз купуя сөз айкашы менен шифрленген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> <translation id="9207861905230894330">Макала кошулбай койду.</translation> <translation id="9215416866750762878">Иштеп жаткан колдонмо Chrome’дун Интернетке коопсуз туташуусуна тоскоол болуп жатат</translation> <translation id="9219103736887031265">Сүрөттөр</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index ab16ec18..5af87cf 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">അൺസിപ്പ് സേവനം</translation> <translation id="1915697529809968049">CVC-യ്ക്ക് പകരം ടച്ച് ഐഡി ഉപയോഗിക്കണോ?</translation> <translation id="1916770123977586577">ഈ സൈറ്റിലേക്ക് നിങ്ങളുടെ അപ്ഡേറ്റ് ചെയ്ത ക്രമീകരണം ഉപയോഗിക്കുന്നതിന്, ഈ പേജ് റീലോഡ് ചെയ്യുക</translation> -<translation id="1917876262703816781">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് വെളിപ്പെട്ടു. <ph name="ORIGIN" /> എന്നതിലെ നിങ്ങളുടെ പാസ്വേഡ് ഇപ്പോൾ തന്നെ മാറ്റാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> +<translation id="1917876262703816781">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് പുറത്തായി. <ph name="ORIGIN" /> എന്നതിലെ നിങ്ങളുടെ പാസ്വേഡ് ഇപ്പോൾ തന്നെ മാറ്റാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="1919345977826869612">പരസ്യങ്ങള്</translation> <translation id="1919367280705858090">നിർദ്ദിഷ്ട പിശക് സന്ദേശവുമായി ബന്ധപ്പെട്ട് സഹായം നേടുക</translation> <translation id="192020519938775529">{COUNT,plural, =0{ഒന്നുമില്ല}=1{ഒരു സൈറ്റ്}other{# സൈറ്റുകൾ}}</translation> @@ -896,7 +896,7 @@ <translation id="5287240709317226393">കുക്കികള് കാണിക്കുക</translation> <translation id="5287456746628258573">കാലഹരണപ്പെട്ട സുരക്ഷാ കോൺഫിഗറേഷൻ ആണ് ഈ സെെറ്റ് ഉപയോഗിക്കുന്നത്, അതിനാൽ നിങ്ങളുടെ വിവരങ്ങൾ (ഉദാഹരണത്തിന്, പാസ്വേഡുകളോ ക്രെഡിറ്റ് കാർഡ് നമ്പറുകളോ) ഈ സൈറ്റിലേക്ക് അയച്ചാൽ അവ പ്രദർശിപ്പിക്കപ്പെട്ടേക്കാം.</translation> <translation id="5288108484102287882">നയ മൂല്യങ്ങളുടെ സാധൂകരണം മുന്നറിയിപ്പുകൾ സൃഷ്ടിച്ചിട്ടുണ്ട്</translation> -<translation id="5295292838686006428">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് വെളിപ്പെട്ടു. നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡ് ഇപ്പോൾ തന്നെ പരിശോധിക്കാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> +<translation id="5295292838686006428">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് പുറത്തായി. നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡ് ഇപ്പോൾ തന്നെ പരിശോധിക്കാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="5299298092464848405">നയം വിശകലനം ചെയ്യുന്നതിൽ പിശക്</translation> <translation id="5300589172476337783">കാണിക്കുക</translation> <translation id="5308380583665731573">കണക്റ്റുചെയ്യുക</translation> @@ -1340,7 +1340,7 @@ <translation id="7473891865547856676">വേണ്ട, നന്ദി</translation> <translation id="7481312909269577407">മുന്നോട്ട്</translation> <translation id="7485870689360869515">ഡാറ്റകളൊന്നും കണ്ടെത്തിയില്ല.</translation> -<translation id="7495290002932347110">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് വെളിപ്പെട്ടു. നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡുകൾ പരിശോധിച്ച് ഇപ്പോൾ തന്നെ <ph name="ORIGIN" /> എന്നതിലെ പാസ്വേഡ് മാറ്റാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> +<translation id="7495290002932347110">സൈറ്റിലോ ആപ്പിലോ ഉണ്ടായ ഡാറ്റാ ലംഘനം കാരണം നിങ്ങളുടെ പാസ്വേഡ് പുറത്തായി. നിങ്ങളുടെ സംരക്ഷിച്ച പാസ്വേഡുകൾ പരിശോധിച്ച് ഇപ്പോൾ തന്നെ <ph name="ORIGIN" /> എന്നതിലെ പാസ്വേഡ് മാറ്റാൻ Chrome ശുപാർശ ചെയ്യുന്നു.</translation> <translation id="7498234416455752244">എഡിറ്റ് ചെയ്യുന്നത് തുടരുക</translation> <translation id="7508255263130623398">നൽകിയ നയ ഉപകരണ ഐഡി ശൂന്യമാണ് അല്ലെങ്കിൽ നിലവിലെ ഉപകരണ ഐഡിയുമായി യോജിക്കുന്നില്ല</translation> <translation id="7508870219247277067">അവക്കാഡോ പച്ച</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 9e82f7c..3317e4d 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Uitpakservice</translation> <translation id="1915697529809968049">Touch ID gebruiken in plaats van CVC?</translation> <translation id="1916770123977586577">Laad deze pagina opnieuw om je geüpdatete instellingen toe te passen op deze site</translation> -<translation id="1917876262703816781">Je wachtwoord is gelekt bij een gegevenslek op een site of in een app. Chrome raadt je aan om je wachtwoord op <ph name="ORIGIN" /> nu te wijzigen.</translation> +<translation id="1917876262703816781">Je wachtwoord is gelekt bij een gegevenslek op een site of in een app. Chrome raadt je aan je wachtwoord op <ph name="ORIGIN" /> nu te wijzigen.</translation> <translation id="1919345977826869612">Advertenties</translation> <translation id="1919367280705858090">Hulp bij een specifieke foutmelding</translation> <translation id="192020519938775529">{COUNT,plural, =0{Geen}=1{1 site}other{# sites}}</translation> @@ -1337,7 +1337,7 @@ <translation id="7473891865547856676">Nee, bedankt</translation> <translation id="7481312909269577407">Vooruit</translation> <translation id="7485870689360869515">Geen gegevens gevonden.</translation> -<translation id="7495290002932347110">Je wachtwoord is gelekt bij een gegevenslek op een site of in een app. Chrome raadt je aan nu je opgeslagen wachtwoorden te controleren en je wachtwoord op <ph name="ORIGIN" /> te wijzigen.</translation> +<translation id="7495290002932347110">Je wachtwoord is gelekt bij een gegevenslek op een site of in een app. Chrome raadt je aan je opgeslagen wachtwoorden te controleren en je wachtwoord op <ph name="ORIGIN" /> nu te wijzigen.</translation> <translation id="7498234416455752244">Doorgaan met bewerken</translation> <translation id="7508255263130623398">Geretourneerde apparaat-ID voor beleid is leeg of komt niet overeen met de huidige apparaat-ID</translation> <translation id="7508870219247277067">Avocadogroen</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 2a871f2..49b7a91 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -722,6 +722,7 @@ <translation id="4340982228985273705">Denne datamaskinen er ikke registrert som administrert av en bedrift, så regelen kan bare automatisk installere utvidelser som finnes på Chrome Nettmarked. Nettadressen for Chrome Nettmarked-oppdateringen er «<ph name="CWS_UPDATE_URL" />».</translation> <translation id="4346197816712207223">Godkjente kredittkort</translation> <translation id="4346833872170306413">Roc-16K</translation> +<translation id="4349531505348777662">Du har nettopp skrevet inn passordet ditt på et villedende nettsted. Chrome anbefaler at du går til <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og andre nettsteder der du bruker dette passordet, og endrer det nå.</translation> <translation id="4356973930735388585">Angripere på dette nettstedet kan prøve å installere farlige programmer på datamaskinen din. Disse kan stjele eller slette informasjonen din (for eksempel bilder, passord, e-post og kredittkortinformasjon).</translation> <translation id="4358059973562876591">Malene du har angitt, kan ikke tas i bruk på grunn av en feil med DnsOverHttpsMode-regelen.</translation> <translation id="4358461427845829800">Administrer betalingsmåter…</translation> @@ -1250,6 +1251,7 @@ <translation id="6970216967273061347">Område</translation> <translation id="6973656660372572881">Både statiske proxytjenere og en .pac-skriptnettadresse er angitt.</translation> <translation id="6973932557599545801">Beklager, jeg kan ikke hjelpe deg. Fortsett på egen hånd.</translation> +<translation id="6975012522936652259">Du har nettopp skrevet inn passordet ditt på et villedende nettsted. Chromium anbefaler at du går til <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og andre nettsteder der du bruker dette passordet, og endrer det nå.</translation> <translation id="6979158407327259162">Google Disk</translation> <translation id="6979440798594660689">Kutt lyden (standard)</translation> <translation id="6989763994942163495">Vis avanserte innstillinger</translation> @@ -1380,6 +1382,7 @@ <translation id="7567204685887185387">Denne tjeneren kunne ikke bevise at den er <ph name="DOMAIN" />. Tjenerens sikkerhetssertifikat kan ha blitt utstedt på uredelig vis. Dette kan være forårsaket av en feilkonfigurering eller en angriper som avskjærer tilkoblingen din.</translation> <translation id="7569952961197462199">Vil du fjerne kredittkortet fra Chrome?</translation> <translation id="7569983096843329377">Svart</translation> +<translation id="7575207903026901870">Knapp for å fjerne forslag – trykk på Enter for å fjerne dette forslaget</translation> <translation id="7578104083680115302">Når du lagrer kort med Google, kan du bruke dem til å betale raskt på nettsteder og i apper – uansett hvilken enhet du bruker.</translation> <translation id="7592362899630581445">Tjenerens sertifikat bryter navnereglene.</translation> <translation id="7598391785903975535">Under <ph name="UPPER_ESTIMATE" /></translation> @@ -1625,6 +1628,7 @@ <translation id="8891727572606052622">Ugyldig modus for proxy-tjener.</translation> <translation id="8903921497873541725">Zoom inn</translation> <translation id="890485472659500557">Engineering-C</translation> +<translation id="890493561996401738">Knapp for å fjerne forslag – trykk på Enter for å fjerne. <ph name="REMOVE_BUTTON_FOCUSED_FRIENDLY_MATCH_TEXT" /></translation> <translation id="8910670906166981838">Nå er du inkognito</translation> <translation id="8912362522468806198">Google-konto</translation> <translation id="8918231688545606538">Denne siden er mistenkelig</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index ddeb93e..a05607eb 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -1354,7 +1354,7 @@ <translation id="7473891865547856676">ਨਹੀਂ ਧੰਨਵਾਦ</translation> <translation id="7481312909269577407">ਅੱਗੇ ਭੇਜੋ</translation> <translation id="7485870689360869515">ਕੋਈ ਡਾਟਾ ਨਹੀਂ ਮਿਲਿਆ।</translation> -<translation id="7495290002932347110">ਕਿਸੇ ਸਾਈਟ ਜਾਂ ਐਪ 'ਤੇ ਡਾਟਾ ਉਲੰਘਣਾ ਹੋਣ ਕਾਰਨ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਉਜਾਗਰ ਹੋਇਆ। Chrome ਤੁਹਾਡੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਅਤੇ ਹੁਣੇ <ph name="ORIGIN" /> ਸਾਈਟ ਦਾ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation> +<translation id="7495290002932347110">ਕਿਸੇ ਸਾਈਟ ਜਾਂ ਐਪ 'ਤੇ ਡਾਟਾ ਉਲੰਘਣਾ ਹੋਣ ਕਾਰਨ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਉਜਾਗਰ ਹੋਇਆ। Chrome ਤੁਹਾਡੇ ਰੱਖਿਅਤ ਕੀਤੇ ਪਾਸਵਰਡਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਅਤੇ ਹੁਣੇ <ph name="ORIGIN" /> ਦਾ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਬਦਲਣ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕਰਦਾ ਹੈ।</translation> <translation id="7498234416455752244">ਸੰਪਾਦਨ ਕਰਦੇ ਰਹੋ</translation> <translation id="7508255263130623398">ਵਾਪਸੀ ਸੰਬੰਧੀ ਨੀਤੀ ਡੀਵਾਈਸ ਆਈ.ਡੀ. ਖਾਲੀ ਹੈ ਜਾਂ ਵਰਤਮਾਨ ਡੀਵਾਈਸ ਆਈ.ਡੀ. ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ ਹੈ</translation> <translation id="7508870219247277067">ਐਵੋਕਾਡੋ ਹਰਾ</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 69eeffa..b9c549ed 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Usługa rozpakowywania</translation> <translation id="1915697529809968049">Używać Touch ID zamiast kodu CVC?</translation> <translation id="1916770123977586577">Załaduj stronę ponownie, by zastosować na niej zaktualizowane ustawienia</translation> -<translation id="1917876262703816781">W Twojej witrynie lub aplikacji doszło do naruszenia bezpieczeństwa danych i ktoś poznał Twoje hasło. Chrome zaleca niezwłoczną zmianę hasła na stronie <ph name="ORIGIN" />.</translation> +<translation id="1917876262703816781">Naruszenie bezpieczeństwa danych w jednej z witryn lub aplikacji spowodowało ujawnienie Twojego hasła. Chrome zaleca natychmiastową zmianę hasła na <ph name="ORIGIN" />.</translation> <translation id="1919345977826869612">Reklamy</translation> <translation id="1919367280705858090">Uzyskiwanie pomocy w przypadku konkretnego komunikatu o błędzie</translation> <translation id="192020519938775529">{COUNT,plural, =0{Brak}=1{1 witryna}few{# witryny}many{# witryn}other{# witryny}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">Pokaż pliki cookie</translation> <translation id="5287456746628258573">Ta strona używa nieaktualnej konfiguracji zabezpieczeń, co oznacza, że Twoje dane (np. hasła i numery kart kredytowych) mogą być zagrożone podczas przesyłania na tę stronę.</translation> <translation id="5288108484102287882">Weryfikacja wartości zasad zakończyła się z ostrzeżeniami</translation> -<translation id="5295292838686006428">W Twojej witrynie lub aplikacji doszło do naruszenia bezpieczeństwa danych i ktoś poznał Twoje hasło. Chrome zaleca niezwłoczne sprawdzenie zapisanych haseł.</translation> +<translation id="5295292838686006428">Naruszenie bezpieczeństwa danych w jednej z witryn lub aplikacji spowodowało ujawnienie Twojego hasła. Chrome zaleca natychmiastowe sprawdzenie zapisanych haseł.</translation> <translation id="5299298092464848405">Podczas przetwarzania zasady wystąpił błąd</translation> <translation id="5300589172476337783">Pokaż</translation> <translation id="5308380583665731573">Połącz</translation> @@ -1359,7 +1359,7 @@ <translation id="7473891865547856676">Nie, dziękuję</translation> <translation id="7481312909269577407">Dalej</translation> <translation id="7485870689360869515">Nie znaleziono danych.</translation> -<translation id="7495290002932347110">W Twojej witrynie lub aplikacji doszło do naruszenia bezpieczeństwa danych i ktoś poznał Twoje hasło. Chrome zaleca natychmiastowe sprawdzenie zapisanych haseł i zmianę hasła na <ph name="ORIGIN" />.</translation> +<translation id="7495290002932347110">Naruszenie bezpieczeństwa danych w jednej z witryn lub aplikacji spowodowało ujawnienie Twojego hasła. Chrome zaleca natychmiastowe sprawdzenie zapisanych haseł i zmianę hasła na <ph name="ORIGIN" />.</translation> <translation id="7498234416455752244">Edytuj dalej</translation> <translation id="7508255263130623398">Zwrócony identyfikator urządzenia dla zasad jest pusty lub nie pasuje do bieżącego identyfikatora urządzenia</translation> <translation id="7508870219247277067">Zielony awokado</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 4fac1c0..cb39a1e8 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Serviço Descompactar</translation> <translation id="1915697529809968049">Usar o Touch ID em vez do CVC?</translation> <translation id="1916770123977586577">Para aplicar as configurações atualizadas a este site, recarregue a página</translation> -<translation id="1917876262703816781">Uma violação de dados em um site ou app expôs sua senha. Por recomendação do Chrome, mude a senha imediatamente em <ph name="ORIGIN" />.</translation> +<translation id="1917876262703816781">Sua senha foi exposta em uma violação de dados em um site ou app acessado por você. Por recomendação do Chrome, mude a senha imediatamente em <ph name="ORIGIN" />.</translation> <translation id="1919345977826869612">Anúncios</translation> <translation id="1919367280705858090">Receber ajuda com uma mensagem de erro específica</translation> <translation id="192020519938775529">{COUNT,plural, =0{Nenhum}=1{1 site}one{# site}other{# sites}}</translation> @@ -897,7 +897,7 @@ <translation id="5287240709317226393">Mostrar cookies</translation> <translation id="5287456746628258573">Este site usa uma configuração de segurança desatualizada que pode expor suas informações, como senhas ou números de cartão de crédito, quando elas forem enviadas para o site.</translation> <translation id="5288108484102287882">A validação dos valores da política gerou alguns avisos</translation> -<translation id="5295292838686006428">Uma violação de dados em um site ou app expôs sua senha. Por recomendação do Chrome, verifique as senhas salvas imediatamente.</translation> +<translation id="5295292838686006428">Sua senha foi exposta em uma violação de dados em um site ou app acessado por você. Por recomendação do Chrome, verifique as senhas salvas imediatamente.</translation> <translation id="5299298092464848405">Política de análise de erros</translation> <translation id="5300589172476337783">Mostrar</translation> <translation id="5308380583665731573">Conectar</translation> @@ -1343,7 +1343,7 @@ <translation id="7473891865547856676">Não, obrigado</translation> <translation id="7481312909269577407">Avançar</translation> <translation id="7485870689360869515">Nenhum dado encontrado</translation> -<translation id="7495290002932347110">Uma violação de dados em um site ou app expôs sua senha. Por recomendação do Chrome, verifique as senhas salvas e mude sua senha imediatamente em <ph name="ORIGIN" />.</translation> +<translation id="7495290002932347110">Sua senha foi exposta em violação de dados em um site ou app acessado por você. Por recomendação do Chrome, verifique suas senhas salvas e mude-as imediatamente em <ph name="ORIGIN" />.</translation> <translation id="7498234416455752244">Continuar editando</translation> <translation id="7508255263130623398">O código do dispositivo da política retornado está em branco ou não corresponde ao código do dispositivo atual</translation> <translation id="7508870219247277067">Verde-abacate</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index de8a4dc..ef12391 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Serviço de descompressão de ficheiros</translation> <translation id="1915697529809968049">Pretende utilizar o Touch ID em vez do CVC?</translation> <translation id="1916770123977586577">Para aplicar as definições atualizadas a este site, atualize esta página</translation> -<translation id="1917876262703816781">Uma violação de dados num site ou aplicação expôs a sua palavra-passe. O Chrome recomenda a alteração da palavra-passe em <ph name="ORIGIN" /> agora.</translation> +<translation id="1917876262703816781">Uma violação de dados num site ou numa aplicação expôs a sua palavra-passe. O Chrome recomenda que altere a sua palavra-passe em <ph name="ORIGIN" /> agora.</translation> <translation id="1919345977826869612">Anúncios</translation> <translation id="1919367280705858090">Obter ajuda relativamente a uma mensagem de erro específica</translation> <translation id="192020519938775529">{COUNT,plural, =0{Nenhum}=1{1 site}other{# sites}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">Mostrar cookies</translation> <translation id="5287456746628258573">Este site utiliza uma configuração de segurança desatualizada, que pode expor as suas informações (por exemplo, palavras-passe ou números de cartões de crédito) quando são enviados para este site.</translation> <translation id="5288108484102287882">A validação dos valores da política gerou avisos.</translation> -<translation id="5295292838686006428">Uma violação de dados num site ou aplicação expôs a sua palavra-passe. O Chrome recomenda que verifique agora as palavras-passe guardadas.</translation> +<translation id="5295292838686006428">Uma violação de dados num site ou numa aplicação expôs a sua palavra-passe. O Chrome recomenda que verifique agora as palavras-passe guardadas.</translation> <translation id="5299298092464848405">Erro ao analisar a política</translation> <translation id="5300589172476337783">Mostrar</translation> <translation id="5308380583665731573">Ligar</translation> @@ -1358,7 +1358,7 @@ <translation id="7473891865547856676">Não, obrigado</translation> <translation id="7481312909269577407">Avançar</translation> <translation id="7485870689360869515">Não foram encontrados dados.</translation> -<translation id="7495290002932347110">Uma violação de dados num site ou aplicação expôs a sua palavra-passe. O Chrome recomenda que verifique as palavras-passe guardadas e que altere a sua palavra-passe em <ph name="ORIGIN" /> agora.</translation> +<translation id="7495290002932347110">Uma violação de dados num site ou numa aplicação expôs a sua palavra-passe. O Chrome recomenda que verifique as palavras-passe guardadas e altere a sua palavra-passe em <ph name="ORIGIN" /> agora.</translation> <translation id="7498234416455752244">Continuar a editar</translation> <translation id="7508255263130623398">O ID do dispositivo da política devolvido está vazio ou não corresponde ao ID do dispositivo atual</translation> <translation id="7508870219247277067">Verde abacate</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 1d08585..5d650471 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Rozbaliť službu</translation> <translation id="1915697529809968049">Chcete namiesto overovacieho kódu karty použiť Touch ID?</translation> <translation id="1916770123977586577">Ak chcete na webe uplatniť aktualizované nastavenia, znova načítajte túto stránku</translation> -<translation id="1917876262703816781">V rámci webu alebo aplikácie došlo k porušeniu ochrany údajov a vaše heslo bolo prezradené. Chrome odporúča okamžite zmeniť heslo na <ph name="ORIGIN" />.</translation> +<translation id="1917876262703816781">V rámci webu alebo aplikácie došlo k porušeniu ochrany údajov a vaše heslo bolo prezradené. Chrome odporúča okamžite zmeniť heslo na webe <ph name="ORIGIN" />.</translation> <translation id="1919345977826869612">Reklamy</translation> <translation id="1919367280705858090">Pomoc s konkrétnym chybovým hlásením</translation> <translation id="192020519938775529">{COUNT,plural, =0{Žiadne}=1{1 web}few{# weby}many{# webu}other{# webov}}</translation> @@ -1338,7 +1338,7 @@ <translation id="7473891865547856676">Nie, ďakujem</translation> <translation id="7481312909269577407">Dopredu</translation> <translation id="7485870689360869515">Nenašli sa žiadne údaje.</translation> -<translation id="7495290002932347110">V rámci webu alebo aplikácie došlo k porušeniu ochrany údajov a vaše heslo bolo prezradené. Chrome odporúča skontrolovať uložené heslá a okamžite zmeniť heslo na <ph name="ORIGIN" />.</translation> +<translation id="7495290002932347110">V rámci webu alebo aplikácie došlo k porušeniu ochrany údajov a vaše heslo bolo prezradené. Chrome odporúča skontrolovať uložené heslá a okamžite zmeniť heslo na webe <ph name="ORIGIN" />.</translation> <translation id="7498234416455752244">Pokračovať v úprave</translation> <translation id="7508255263130623398">Identifikátor zariadenia vráteného v rámci záruky je prázdny alebo sa nezhoduje s identifikátorom aktuálneho zariadenia</translation> <translation id="7508870219247277067">Žltozelená</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index 1742c6d..53c6131 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Shërbimi i shpaketimit</translation> <translation id="1915697529809968049">Të përdoret Touch ID në vend të CVC?</translation> <translation id="1916770123977586577">Për të aplikuar cilësimet e përparuara në këtë sajt, ringarkoje këtë faqe</translation> -<translation id="1917876262703816781">Një nxjerrje e paautorizuar e të dhënave në një sajt ose aplikacion ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që të ndryshosh fjalëkalimin tënd në <ph name="ORIGIN" /> tani.</translation> +<translation id="1917876262703816781">Një nxjerrje e paautorizuar të dhënash në një sajt apo në një prej aplikacioneve të tua e ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që ta kontrollosh menjëherë fjalëkalimin tënd në <ph name="ORIGIN" />.</translation> <translation id="1919345977826869612">Reklamat</translation> <translation id="1919367280705858090">Merr ndihmë për një mesazh specifik gabimi</translation> <translation id="192020519938775529">{COUNT,plural, =0{Asnjë}=1{1 sajt}other{# sajte}}</translation> @@ -897,7 +897,7 @@ <translation id="5287240709317226393">Shfaq kukit</translation> <translation id="5287456746628258573">Ky sajt përdor një konfigurim të vjetruar të sigurisë, i cili mund t'i ekspozojë informacionet e tua (p.sh. fjalëkalimin ose numrat e kartës së kreditit) kur dërgohen te ky sajt.</translation> <translation id="5288108484102287882">Vërtetimi i vlerave të politikës ka ngritur shqetësime</translation> -<translation id="5295292838686006428">Një nxjerrje e paautorizuar e të dhënave në një sajt ose aplikacion ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që të kontrollosh fjalëkalimet e tua të ruajtura tani.</translation> +<translation id="5295292838686006428">Një nxjerrje e paautorizuar të dhënash në një sajt apo në një prej aplikacioneve të tua e ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që t’i kontrollosh menjëherë fjalëkalimet e tua të ruajtura.</translation> <translation id="5299298092464848405">Gabim gjatë analizimit të politikës</translation> <translation id="5300589172476337783">Shfaq</translation> <translation id="5308380583665731573">Lidh</translation> @@ -1342,7 +1342,7 @@ <translation id="7473891865547856676">Jo, faleminderit</translation> <translation id="7481312909269577407">Përpara</translation> <translation id="7485870689360869515">Nuk u gjetën të dhëna.</translation> -<translation id="7495290002932347110">Një nxjerrje e paautorizuar e të dhënave në një sajt ose aplikacion ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që të kontrollosh fjalëkalimet e tua të ruajtura dhe të ndryshosh fjalëkalimin tënd në <ph name="ORIGIN" /> tani.</translation> +<translation id="7495290002932347110">Një nxjerrje e paautorizuar të dhënash në një sajt apo në një prej aplikacioneve të tua e ka ekspozuar fjalëkalimin tënd. Chrome rekomandon që t’i kontrollosh menjëherë fjalëkalimet e tua të ruajtura si dhe ta ndryshosh fjalëkalimin tënd në <ph name="ORIGIN" />.</translation> <translation id="7498234416455752244">Vazhdo redaktimin</translation> <translation id="7508255263130623398">ID-ja e kthyer e pajisjes së politikës është bosh ose nuk përputhet me ID-në e pajisjes aktuale</translation> <translation id="7508870219247277067">Jeshile avokadoje</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index a7c15b9..60e66a6 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -212,7 +212,7 @@ <translation id="1914326953223720820">సేవను అన్జిప్ చేయండి</translation> <translation id="1915697529809968049">CVCకి బదులుగా Touch IDని ఉపయోగించాలా?</translation> <translation id="1916770123977586577">ఈ సైట్ విషయంలో మీరు అప్డేట్ చేసిన సెట్టింగ్లను వర్తింపజేయడానికి, ఈ పేజీని మళ్లీ లోడ్ చేయండి</translation> -<translation id="1917876262703816781">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయ్యింది. ఇప్పుడే <ph name="ORIGIN" />లో మీ పాస్వర్డ్ను మార్చాల్సిందిగా Chrome సిఫార్సు చేస్తోంది.</translation> +<translation id="1917876262703816781">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయింది. ఇప్పుడే <ph name="ORIGIN" />లో మీ పాస్వర్డ్ను మార్చాల్సిందిగా Chrome సూచిస్తోంది.</translation> <translation id="1919345977826869612">ప్రకటనలు</translation> <translation id="1919367280705858090">నిర్దిష్ట ఎర్రర్ సందేశానికి సంబంధించిన సహాయం పొందండి</translation> <translation id="192020519938775529">{COUNT,plural, =0{ఏమీ లేవు}=1{1 సైట్}other{# సైట్లు}}</translation> @@ -913,7 +913,7 @@ <translation id="5287240709317226393">కుక్కీలను చూపించు</translation> <translation id="5287456746628258573">ఈ సైట్ ఉపయోగించే భద్రతా కాన్ఫిగరేషన్ గడువు ముగిసింది, మీ సమాచారాన్ని (ఉదాహరణకు పాస్వర్డ్లు లేదా క్రెడిట్ కార్డ్ నంబర్లు) ఈ సైట్కు పంపినప్పుడు, దానిని ఈ సైట్ బహిర్గతం చేయవచ్చు.</translation> <translation id="5288108484102287882">విధాన విలువల క్రమబద్ధీకరణ హెచ్చరికలను జారీ చేసింది</translation> -<translation id="5295292838686006428">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయ్యింది. మీ సేవ్ చేసిన పాస్వర్డ్లను తనిఖీ చేయమని Chrome సిఫార్సు చేస్తోంది.</translation> +<translation id="5295292838686006428">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయింది. సేవ్ చేసిన మీ పాస్వర్డ్లను చెక్ చేయాలని Chrome సూచిస్తోంది.</translation> <translation id="5299298092464848405">విధానాన్ని అన్వయించడంలో ఎర్రర్</translation> <translation id="5300589172476337783">చూపించు</translation> <translation id="5308380583665731573">కనెక్ట్ చేయండి</translation> @@ -1359,7 +1359,7 @@ <translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation> <translation id="7481312909269577407">ఫార్వర్డ్</translation> <translation id="7485870689360869515">డేటా కనుగొనబడలేదు.</translation> -<translation id="7495290002932347110">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయ్యింది. సేవ్ చేసిన మీ పాస్వర్డ్లను తనిఖీ చేయమని, ఇప్పుడే <ph name="ORIGIN" />లో మీ పాస్వర్డ్ను మార్చమని Chrome సిఫార్సు చేస్తోంది.</translation> +<translation id="7495290002932347110">సైట్ లేదా యాప్లో జరిగిన డేటా ఉల్లంఘన వల్ల మీ పాస్వర్డ్ బహిర్గతం అయింది. సేవ్ చేసిన మీ పాస్వర్డ్లను చెక్ చేయాలని, ఇప్పుడే <ph name="ORIGIN" />లో మీ పాస్వర్డ్ను మార్చాలని Chrome సూచిస్తోంది.</translation> <translation id="7498234416455752244">సవరణను కొనసాగించు</translation> <translation id="7508255263130623398">అందించబడిన విధాన పరికర id ఖాళీగా ఉంది లేదా ప్రస్తుత పరికర idకి సరిపోలలేదు</translation> <translation id="7508870219247277067">వెన్నపండు ఆకుపచ్చ</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index fdf7f4a..91a6bbd5b 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -211,7 +211,7 @@ <translation id="1914326953223720820">اَن زِپ کرنے کی سروس</translation> <translation id="1915697529809968049">CVC کے بجائے Touch ID کا استعمال کریں؟</translation> <translation id="1916770123977586577">اس سائٹ پر اپنی اپ ڈیٹ کردہ ترتیبات کا اطلاق کرنے کیلئے اس صفحہ کو دوبارہ لوڈ کریں</translation> -<translation id="1917876262703816781">سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی نے آپ کے پاس ورڈ کو ظاہر کر دیا۔ Chrome آپ کے پاس ورڈ کو <ph name="ORIGIN" /> پر ابھی تبدیل کرنے کی تجویز کرتا ہے۔</translation> +<translation id="1917876262703816781">کسی سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی کے باعث آپ کا پاس ورڈ بے نقاب ہوا ہے۔ Chrome آپ کے پاس ورڈ کو <ph name="ORIGIN" /> پر ابھی تبدیل کرنے کی تجویز کرتا ہے۔</translation> <translation id="1919345977826869612">اشتہارات</translation> <translation id="1919367280705858090">خرابی کے کسی مخصوص پیغام کے بارے میں مدد حاصل کریں</translation> <translation id="192020519938775529">{COUNT,plural, =0{کوئی سائٹ نہیں}=1{1 سائٹ}other{# سائٹس}}</translation> @@ -904,7 +904,7 @@ <translation id="5287240709317226393">کوکیز دکھائیں</translation> <translation id="5287456746628258573">یہ سائٹ پرانی سیکیورٹی کنفیگریشن کو استعمال کر رہی ہے جو اس سائٹ پر بھیجے جانے پر آپ کی معلومات (مثلاً، پاس ورڈز یا کریڈٹ کارڈ نمبرز) کو ظاہر کر سکتی ہے۔</translation> <translation id="5288108484102287882">پالیسی کی اقدار کی تصدیق نے واننگز ظاہر کی ہیں</translation> -<translation id="5295292838686006428">سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی نے آپ کے پاس ورڈ کو ظاہر کر دیا۔ Chrome آپ کے محفوظ کردہ پاس ورڈز کو ابھی چیک کرنے کی تجویز کرتا ہے۔</translation> +<translation id="5295292838686006428">کسی سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی کے باعث آپ کا پاس ورڈ بے نقاب ہوا ہے۔ Chrome آپ کے محفوظ کردہ پاس ورڈز کو ابھی چیک کرنے کی تجویز کرتا ہے۔</translation> <translation id="5299298092464848405">پالیسی کو پارس کرنے میں خرابی</translation> <translation id="5300589172476337783">دکھائیں</translation> <translation id="5308380583665731573">منسلک کریں</translation> @@ -1351,7 +1351,7 @@ <translation id="7473891865547856676">نہیں شکریہ</translation> <translation id="7481312909269577407">فارورڈ کریں</translation> <translation id="7485870689360869515">کوئی ڈیٹا نہیں ملا۔</translation> -<translation id="7495290002932347110">سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی نے آپ کے پاس ورڈ کو ظاہر کر دیا۔ Chrome آپ کے محفوظ کردہ پاس ورڈز کو چیک کرنے اور ابھی <ph name="ORIGIN" /> پر آپ کے پاس ورڈ کو تبدیل کرنے کی تجویز کرتا ہے۔</translation> +<translation id="7495290002932347110">کسی سائٹ یا ایپ میں ڈیٹا کی خلاف ورزی کے باعث آپ کا پاس ورڈ بے نقاب ہوا ہے۔ Chrome آپ کے محفوظ کردہ پاس ورڈز کو چیک کرنے اور <ph name="ORIGIN" /> پر آپ کے پاس ورڈ کو ابھی تبدیل کرنے کی تجویز کرتا ہے۔</translation> <translation id="7498234416455752244">ترمیم جاری رکھیں</translation> <translation id="7508255263130623398">واپس کردہ پالیسی آلہ id خالی ہے یا موجودہ آلہ id سے مماثل نہیں ہے</translation> <translation id="7508870219247277067">مَگَر ناشپاتی سبز</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 896cd1e..8a42f86 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -209,7 +209,7 @@ <translation id="1914326953223720820">Arxivdan chiqarish xizmati</translation> <translation id="1915697529809968049">CVC oʻrniga Touch ID ishlatilsinmi?</translation> <translation id="1916770123977586577">Yangilangan sozlamalar bu saytda ishlashi uchun sahifani yangilang</translation> -<translation id="1917876262703816781">Siz ishlatadigan sayt yoki ilovadagi parolingiz oshkor etilgan. Chrome hoziroq <ph name="ORIGIN" /> parolingizni yangilashni tavsiya qiladi.</translation> +<translation id="1917876262703816781">Siz ishlatadigan sayt yoki ilovada axborot sizib chiqishi yuz bergan. Chrome hoziroq <ph name="ORIGIN" /> parolingizni yangilashni tavsiya qiladi.</translation> <translation id="1919345977826869612">Reklamalar</translation> <translation id="1919367280705858090">Maxsus turdagi xato xabarlari asosida yordam olish</translation> <translation id="192020519938775529">{COUNT,plural, =0{Yo‘q}=1{1 ta sayt}other{# ta sayt}}</translation> @@ -908,7 +908,7 @@ <translation id="5287240709317226393">Cookie fayllarini ko‘rsatish</translation> <translation id="5287456746628258573">Bu sayt eskirgan xavfsizlik sozlamasidan foydalanadi. maʼlumotlaringiz (masalan, parol va kredit kartalari nomlari) shu saytga yuborilganda ular xavf ostida qolishi mumkin.</translation> <translation id="5288108484102287882">Parametr qiymatlari tekshiruvida ogohlantiruvlar aniqlandi</translation> -<translation id="5295292838686006428">Siz ishlatadigan sayt yoki ilovadagi parolingiz oshkor etilgan. Chrome saqlangan parollaringizni hoziroq tekshirishni tavsiya qiladi.</translation> +<translation id="5295292838686006428">Siz ishlatadigan sayt yoki ilovada axborot sizib chiqishi yuz bergan. Chrome saqlangan parollaringizni hoziroq tekshirishni tavsiya qiladi.</translation> <translation id="5299298092464848405">Siyosatni analiz qilishda xatolik yuz berdi</translation> <translation id="5300589172476337783">Ko‘rsatish</translation> <translation id="5308380583665731573">Ulanish</translation> @@ -1353,7 +1353,7 @@ <translation id="7473891865547856676">Yo‘q, rahmat</translation> <translation id="7481312909269577407">Oldinga</translation> <translation id="7485870689360869515">Ma‘lumotlar topilmadi.</translation> -<translation id="7495290002932347110">Siz ishlatadigan sayt yoki ilovadagi parolingiz oshkor etilgan. Chrome hoziroq saqlangan parollaringizni tekshirishni va <ph name="ORIGIN" /> parolingizni yangilashni tavsiya qiladi.</translation> +<translation id="7495290002932347110">Siz ishlatadigan sayt yoki ilovada axborot sizib chiqishi yuz bergan. Chrome hoziroq saqlangan parollaringizni tekshirishni va <ph name="ORIGIN" /> parolingizni yangilashni tavsiya qiladi.</translation> <translation id="7498234416455752244">Tahrirlashda davom etish</translation> <translation id="7508255263130623398">Qurilmaning qaytarilgan identifikatori bo‘sh yoki joriy qurilma identifikatoriga mos kelmaydi</translation> <translation id="7508870219247277067">Yashil avokado</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index e536a8f..26c5a60 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -1342,7 +1342,7 @@ <translation id="7473891865547856676">不用了,謝謝</translation> <translation id="7481312909269577407">向前</translation> <translation id="7485870689360869515">找不到任何數據。</translation> -<translation id="7495290002932347110">由於您使用的網站或應用程式發生資料外洩,密碼已被洩露。Chrome 建議您檢查已儲存的密碼,並立即在 <ph name="ORIGIN" /> 上變更密碼。</translation> +<translation id="7495290002932347110">由於您使用的網站或應用程式發生資料外洩,密碼已被洩露。Chrome 建議您檢查已儲存的密碼,並立即變更 <ph name="ORIGIN" /> 上的密碼。</translation> <translation id="7498234416455752244">繼續編輯</translation> <translation id="7508255263130623398">傳回的政策裝置識別碼為空白或與目前裝置識別碼不符</translation> <translation id="7508870219247277067">牛油果色</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index f6bdf0f..662ce4e 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -210,7 +210,7 @@ <translation id="1914326953223720820">Isevisi yokususa i-zip</translation> <translation id="1915697529809968049">Sebenzisa i-Touch ID esikhundleni se-CVC?</translation> <translation id="1916770123977586577">Ukuze usebenzise izilungiselelo zakho ezithuthukisiwe kuleli sayithi, layisha kabusha leli khasi</translation> -<translation id="1917876262703816781">Ukuphula isivumelwano sedatha kusayitih noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukushintsha iphasiwedi yakho ku-<ph name="ORIGIN" /> manje.</translation> +<translation id="1917876262703816781">Ukuphula isivumelwano sedatha kusayithi noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukushintsha iphasiwedi yakho ku-<ph name="ORIGIN" /> manje.</translation> <translation id="1919345977826869612">Izikhangiso</translation> <translation id="1919367280705858090">Thola usizo ngomlayezo wephutha othize</translation> <translation id="192020519938775529">{COUNT,plural, =0{Lutho}=1{1 isayithi}one{# amasayithi}other{# amasayithi}}</translation> @@ -910,7 +910,7 @@ <translation id="5287240709317226393">Bonisa amakhukhhi</translation> <translation id="5287456746628258573">Leli sayithi lisebenzisa ukulungiselelwa kokuvikela okuphelelwe isikhathi, okungaveza ulwazi lwakho (isibonelo, amaphasiwedi noma izinombolo zekhadi lesikweletu) uma lithunyelwa kuleli sayithi.</translation> <translation id="5288108484102287882">Ukuqinisekiswa kwamanani enqubomgomo kunezexwayiso eziphakanyisiwe</translation> -<translation id="5295292838686006428">Ukuphula isivumelwano sedatha kusayitih noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukuhlola amaphasiwedi akho alondoloziwe manje.</translation> +<translation id="5295292838686006428">Ukuphula isivumelwano sedatha kusayithi noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukuhlola amaphasiwedi akho alondoloziwe manje.</translation> <translation id="5299298092464848405">Iphutha lokudlulisa inqubomgomo</translation> <translation id="5300589172476337783">Bonisa</translation> <translation id="5308380583665731573">Xhuma</translation> @@ -1356,7 +1356,7 @@ <translation id="7473891865547856676">Cha ngiyabonga</translation> <translation id="7481312909269577407">Dlulisela</translation> <translation id="7485870689360869515">Ayikho idatha etholiwe.</translation> -<translation id="7495290002932347110">Ukuphula isivumelwano sedatha kusayitih noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukuhlola amaphasiwedi alondoloziwe nokushintsha amaphasiwedi akho ku-<ph name="ORIGIN" /> manje.</translation> +<translation id="7495290002932347110">Ukuphula isivumelwano sedatha kusayithi noma kuhlelo lokusebenza kudalule iphasiwedi yakho. I-Chrome incoma ukuhlola amaphasiwedi alondoloziwe nokushintsha amaphasiwedi akho ku-<ph name="ORIGIN" /> manje.</translation> <translation id="7498234416455752244">Qhubeka nokuhlela</translation> <translation id="7508255263130623398">Inqubogomo yokubuyisa idivayisi ayinalutho noma ayifani ne-id yedivayisi yamanje</translation> <translation id="7508870219247277067">I-Avocado Green</translation>
diff --git a/components/sync/driver/fake_sync_service.cc b/components/sync/driver/fake_sync_service.cc index 2c7179d..582c842e 100644 --- a/components/sync/driver/fake_sync_service.cc +++ b/components/sync/driver/fake_sync_service.cc
@@ -165,7 +165,8 @@ void FakeSyncService::AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) {} + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) {} UserDemographicsResult FakeSyncService::GetUserNoisedBirthYearAndGender( base::Time now) {
diff --git a/components/sync/driver/fake_sync_service.h b/components/sync/driver/fake_sync_service.h index 0f8d2dc..375a359 100644 --- a/components/sync/driver/fake_sync_service.h +++ b/components/sync/driver/fake_sync_service.h
@@ -70,7 +70,8 @@ void SetInvalidationsForSessionsEnabled(bool enabled) override; void AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override; UserDemographicsResult GetUserNoisedBirthYearAndGender( base::Time now) override;
diff --git a/components/sync/driver/file_based_trusted_vault_client.cc b/components/sync/driver/file_based_trusted_vault_client.cc index 3c2e98b..a77f53f 100644 --- a/components/sync/driver/file_based_trusted_vault_client.cc +++ b/components/sync/driver/file_based_trusted_vault_client.cc
@@ -77,7 +77,8 @@ } void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) { + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) { // Find or create user for |gaid_id|. sync_pb::LocalTrustedVaultPerUser* per_user_vault = FindUserVault(gaia_id); if (!per_user_vault) { @@ -86,6 +87,7 @@ } // Replace all keys. + per_user_vault->set_last_key_version(last_key_version); per_user_vault->clear_key(); for (const std::vector<uint8_t>& key : keys) { per_user_vault->add_key()->set_key_material(key.data(), key.size()); @@ -141,10 +143,12 @@ void FileBasedTrustedVaultClient::StoreKeys( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) { + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) { TriggerLazyInitializationIfNeeded(); backend_task_runner_->PostTask( - FROM_HERE, base::BindOnce(&Backend::StoreKeys, backend_, gaia_id, keys)); + FROM_HERE, base::BindOnce(&Backend::StoreKeys, backend_, gaia_id, keys, + last_key_version)); observer_list_.Notify(); }
diff --git a/components/sync/driver/file_based_trusted_vault_client.h b/components/sync/driver/file_based_trusted_vault_client.h index e8318b6b..03c0a6c6 100644 --- a/components/sync/driver/file_based_trusted_vault_client.h +++ b/components/sync/driver/file_based_trusted_vault_client.h
@@ -36,7 +36,8 @@ base::OnceCallback<void(const std::vector<std::vector<uint8_t>>&)> cb) override; void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override; void MarkKeysAsStale(const std::string& gaia_id, base::OnceCallback<void(bool)> cb) override;
diff --git a/components/sync/driver/file_based_trusted_vault_client_unittest.cc b/components/sync/driver/file_based_trusted_vault_client_unittest.cc index cfa5248..fbf91d0a 100644 --- a/components/sync/driver/file_based_trusted_vault_client_unittest.cc +++ b/components/sync/driver/file_based_trusted_vault_client_unittest.cc
@@ -133,10 +133,10 @@ const std::vector<uint8_t> kKey3 = {2, 3, 4}; const std::vector<uint8_t> kKey4 = {3, 4}; - client_.StoreKeys(kGaiaId1, {kKey1}); - client_.StoreKeys(kGaiaId2, {kKey2}); + client_.StoreKeys(kGaiaId1, {kKey1}, /*last_key_version=*/7); + client_.StoreKeys(kGaiaId2, {kKey2}, /*last_key_version=*/8); // Keys for |kGaiaId2| overriden, so |kKey2| should be lost. - client_.StoreKeys(kGaiaId2, {kKey3, kKey4}); + client_.StoreKeys(kGaiaId2, {kKey3, kKey4}, /*last_key_version=*/9); // Wait until the last write completes. WaitForFlush(); @@ -151,8 +151,10 @@ EXPECT_TRUE(proto.ParseFromString(decrypted_content)); ASSERT_THAT(proto.user_size(), Eq(2)); EXPECT_THAT(proto.user(0).key(), ElementsAre(KeyMaterialEq(kKey1))); + EXPECT_THAT(proto.user(0).last_key_version(), Eq(7)); EXPECT_THAT(proto.user(1).key(), ElementsAre(KeyMaterialEq(kKey3), KeyMaterialEq(kKey4))); + EXPECT_THAT(proto.user(1).last_key_version(), Eq(9)); } TEST_F(FileBasedTrustedVaultClientTest, ShouldFetchPreviouslyStoredKeys) { @@ -162,8 +164,8 @@ const std::vector<uint8_t> kKey2 = {1, 2, 3, 4}; const std::vector<uint8_t> kKey3 = {2, 3, 4}; - client_.StoreKeys(kGaiaId1, {kKey1}); - client_.StoreKeys(kGaiaId2, {kKey2, kKey3}); + client_.StoreKeys(kGaiaId1, {kKey1}, /*last_key_version=*/0); + client_.StoreKeys(kGaiaId2, {kKey2, kKey3}, /*last_key_version=*/1); // Wait until the last write completes. WaitForFlush();
diff --git a/components/sync/driver/mock_sync_service.h b/components/sync/driver/mock_sync_service.h index c528c05..858fb18f 100644 --- a/components/sync/driver/mock_sync_service.h +++ b/components/sync/driver/mock_sync_service.h
@@ -57,9 +57,10 @@ MOCK_METHOD1(TriggerRefresh, void(const ModelTypeSet& types)); MOCK_METHOD1(DataTypePreconditionChanged, void(syncer::ModelType type)); MOCK_METHOD1(SetInvalidationsForSessionsEnabled, void(bool enabled)); - MOCK_METHOD2(AddTrustedVaultDecryptionKeysFromWeb, + MOCK_METHOD3(AddTrustedVaultDecryptionKeysFromWeb, void(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys)); + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version)); MOCK_METHOD1(GetUserNoisedBirthYearAndGender, UserDemographicsResult(base::Time now));
diff --git a/components/sync/driver/profile_sync_service.cc b/components/sync/driver/profile_sync_service.cc index b466d03..b7e5189 100644 --- a/components/sync/driver/profile_sync_service.cc +++ b/components/sync/driver/profile_sync_service.cc
@@ -1789,8 +1789,10 @@ void ProfileSyncService::AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) { - sync_client_->GetTrustedVaultClient()->StoreKeys(gaia_id, keys); + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) { + sync_client_->GetTrustedVaultClient()->StoreKeys(gaia_id, keys, + last_key_version); } UserDemographicsResult ProfileSyncService::GetUserNoisedBirthYearAndGender(
diff --git a/components/sync/driver/profile_sync_service.h b/components/sync/driver/profile_sync_service.h index 50e24945..c2761ce 100644 --- a/components/sync/driver/profile_sync_service.h +++ b/components/sync/driver/profile_sync_service.h
@@ -139,7 +139,8 @@ void SetInvalidationsForSessionsEnabled(bool enabled) override; void AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override; UserDemographicsResult GetUserNoisedBirthYearAndGender( base::Time now) override; void AddObserver(SyncServiceObserver* observer) override;
diff --git a/components/sync/driver/sync_service.h b/components/sync/driver/sync_service.h index 06bdfa4..e6ba25f 100644 --- a/components/sync/driver/sync_service.h +++ b/components/sync/driver/sync_service.h
@@ -371,9 +371,12 @@ // Processes trusted vault encryption keys retrieved from the web. Unused and // ignored on platforms where keys are retrieved by other means. + // |last_key_version| represents the key version of the last element in + // |keys| (unused if empty). virtual void AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) = 0; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) = 0; ////////////////////////////////////////////////////////////////////////////// // USER DEMOGRAPHICS
diff --git a/components/sync/driver/sync_service_crypto.cc b/components/sync/driver/sync_service_crypto.cc index 4c188e6..7e1f7cf 100644 --- a/components/sync/driver/sync_service_crypto.cc +++ b/components/sync/driver/sync_service_crypto.cc
@@ -44,7 +44,8 @@ } void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override { + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override { // Never invoked by SyncServiceCrypto. NOTREACHED(); }
diff --git a/components/sync/driver/sync_service_crypto_unittest.cc b/components/sync/driver/sync_service_crypto_unittest.cc index 667c262..cd928df 100644 --- a/components/sync/driver/sync_service_crypto_unittest.cc +++ b/components/sync/driver/sync_service_crypto_unittest.cc
@@ -101,7 +101,8 @@ } void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override { + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override { gaia_id_to_keys_[gaia_id] = keys; observer_list_.Notify(); } @@ -194,7 +195,8 @@ // engine (i.e. before SetSyncEngine()). crypto_.OnTrustedVaultKeyRequired(); - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys, + /*last_key_version=*/0); // Trusted vault keys should be fetched only after the engine initialization // is completed. @@ -233,7 +235,8 @@ EXPECT_CALL(reconfigure_cb_, Run(_)).Times(0); ASSERT_FALSE(crypto_.IsTrustedVaultKeyRequired()); - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys, + /*last_key_version=*/0); // Mimic the engine determining that trusted vault keys are required. crypto_.SetSyncEngine(kSyncingAccount, &engine_); @@ -298,7 +301,8 @@ ASSERT_FALSE(crypto_.IsTrustedVaultKeyRequired()); - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kFetchedKeys, + /*last_key_version=*/0); // Mimic the engine determining that trusted vault keys are required. crypto_.SetSyncEngine(kSyncingAccount, &engine_); @@ -339,7 +343,8 @@ const std::vector<std::vector<uint8_t>> kNewKeys = {{0, 1, 2, 3, 4}, {2, 3, 4, 5}}; - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys, + /*last_key_version=*/0); // The engine replies with OnTrustedVaultKeyAccepted() only if |kNewKeys| are // provided. @@ -364,7 +369,8 @@ // Mimic keys being added to the vault, which triggers a notification to // observers (namely |crypto_|), leading to a second fetch. - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kNewKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kNewKeys, + /*last_key_version=*/1); EXPECT_THAT(trusted_vault_client_.fetch_count(), Eq(2)); EXPECT_CALL(reconfigure_cb_, Run(CONFIGURE_REASON_CRYPTO)); EXPECT_TRUE(trusted_vault_client_.CompleteFetchKeysRequest()); @@ -382,7 +388,8 @@ const std::vector<std::vector<uint8_t>> kNewKeys = {{0, 1, 2, 3, 4}, {2, 3, 4, 5}}; - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys, + /*last_key_version=*/0); // The engine replies with OnTrustedVaultKeyAccepted() only if |kNewKeys| are // provided. @@ -404,7 +411,8 @@ // While there is an ongoing fetch, mimic keys being added to the vault, which // triggers a notification to observers (namely |crypto_|). - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kNewKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kNewKeys, + /*last_key_version=*/1); // Because there's already an ongoing fetch, a second one should not have been // triggered yet and should be deferred instead. @@ -437,7 +445,8 @@ const std::vector<std::vector<uint8_t>> kLatestKeys = { {0, 1, 2, 3, 4}, {2, 3, 4, 5}, {3, 4}}; - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kInitialKeys, + /*last_key_version=*/0); // The engine replies with OnTrustedVaultKeyAccepted() only if |kLatestKeys| // are provided. @@ -461,12 +470,14 @@ // Mimic keys being added to the vault, which triggers a notification to // observers (namely |crypto_|), leading to a second fetch. - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kIntermediateKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kIntermediateKeys, + /*last_key_version=*/1); EXPECT_THAT(trusted_vault_client_.fetch_count(), Eq(2)); // While the second fetch is ongoing, mimic more keys being added to the // vault, which triggers a notification to observers (namely |crypto_|). - trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kLatestKeys); + trusted_vault_client_.StoreKeys(kSyncingAccount.gaia, kLatestKeys, + /*last_key_version=*/2); // Because there's already an ongoing fetch, a third one should not have been // triggered yet and should be deferred instead.
diff --git a/components/sync/driver/test_sync_service.cc b/components/sync/driver/test_sync_service.cc index 45bccf4..0bb0c2c 100644 --- a/components/sync/driver/test_sync_service.cc +++ b/components/sync/driver/test_sync_service.cc
@@ -306,7 +306,8 @@ void TestSyncService::AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) {} + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) {} UserDemographicsResult TestSyncService::GetUserNoisedBirthYearAndGender( base::Time now) {
diff --git a/components/sync/driver/test_sync_service.h b/components/sync/driver/test_sync_service.h index 1fd5ca9e..a3e5f97 100644 --- a/components/sync/driver/test_sync_service.h +++ b/components/sync/driver/test_sync_service.h
@@ -108,7 +108,8 @@ void SetInvalidationsForSessionsEnabled(bool enabled) override; void AddTrustedVaultDecryptionKeysFromWeb( const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) override; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) override; UserDemographicsResult GetUserNoisedBirthYearAndGender( base::Time now) override;
diff --git a/components/sync/driver/trusted_vault_client.h b/components/sync/driver/trusted_vault_client.h index 42e07492..c94abdf2f 100644 --- a/components/sync/driver/trusted_vault_client.h +++ b/components/sync/driver/trusted_vault_client.h
@@ -56,7 +56,8 @@ // keys, so callers may not assume that later calls to FetchKeys() would // necessarily return the keys passed here. virtual void StoreKeys(const std::string& gaia_id, - const std::vector<std::vector<uint8_t>>& keys) = 0; + const std::vector<std::vector<uint8_t>>& keys, + int last_key_version) = 0; private: DISALLOW_COPY_AND_ASSIGN(TrustedVaultClient);
diff --git a/components/sync/protocol/local_trusted_vault.proto b/components/sync/protocol/local_trusted_vault.proto index 5c65028c..a4b4473 100644 --- a/components/sync/protocol/local_trusted_vault.proto +++ b/components/sync/protocol/local_trusted_vault.proto
@@ -19,6 +19,9 @@ // All keys known for a user. repeated LocalTrustedVaultKey key = 2; + + // The version corresponding to the last element in |key|. + optional int32 last_key_version = 3; } message LocalTrustedVault {
diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc index 0c57036e..18d9116 100644 --- a/components/sync_bookmarks/bookmark_model_merger.cc +++ b/components/sync_bookmarks/bookmark_model_merger.cc
@@ -347,10 +347,6 @@ bookmarks::BookmarkModel* bookmark_model) { DCHECK(bookmark_model); - if (!base::FeatureList::IsEnabled(switches::kMergeBookmarksUsingGUIDs)) { - return {}; - } - // Build a temporary lookup table for remote GUIDs. std::unordered_map<std::string, const RemoteTreeNode*> guid_to_remote_node_map; @@ -362,6 +358,9 @@ // Iterate through all local bookmarks to find matches by GUID. std::unordered_map<std::string, BookmarkModelMerger::GuidMatch> guid_to_match_map; + // Because ReplaceBookmarkNodeGUID() cannot be used while iterating the local + // bookmark model, a temporary list is constructed first to reassign later. + std::vector<const bookmarks::BookmarkNode*> nodes_to_replace_guid; ui::TreeNodeIterator<const bookmarks::BookmarkNode> iterator( bookmark_model->root_node()); while (iterator.has_next()) { @@ -388,18 +387,27 @@ if (node->is_folder() != remote_entity.is_folder || (node->is_url() && - node->url() != remote_entity.specifics.bookmark().url())) { + node->url() != remote_entity.specifics.bookmark().url()) || + !base::FeatureList::IsEnabled(switches::kMergeBookmarksUsingGUIDs)) { // If local node and its remote node match are conflicting in node type or - // URL, replace local GUID with a random GUID. + // URL, replace local GUID with a random GUID. The logic is applied + // unconditionally if kMergeBookmarksUsingGUIDs is disabled, since no + // GUID-based matches take place and GUIDs need to be reassigned to avoid + // collisions (they will be reassigned once again if there is a semantic + // match). // TODO(crbug.com/978430): Local GUIDs should also be reassigned if they // match a remote originator_client_item_id. - ReplaceBookmarkNodeGUID(node, base::GenerateGUID(), bookmark_model); + nodes_to_replace_guid.push_back(node); continue; } guid_to_match_map.emplace(node->guid(), GuidMatch{node, remote_node}); } + for (const bookmarks::BookmarkNode* node : nodes_to_replace_guid) { + ReplaceBookmarkNodeGUID(node, base::GenerateGUID(), bookmark_model); + } + return guid_to_match_map; } @@ -593,10 +601,12 @@ const bookmarks::BookmarkNode* node = parent->children()[index].get(); DCHECK(!FindMatchingRemoteNodeByGUID(node)); DCHECK(base::IsValidGUID(node->guid())); - const std::string sync_id = - base::FeatureList::IsEnabled(switches::kMergeBookmarksUsingGUIDs) - ? node->guid() - : base::GenerateGUID(); + + // The node's GUID cannot run into collisions because + // FindGuidMatchesOrReassignLocal() takes care of reassigning local GUIDs if + // they won't actually be merged with the remote bookmark with the same GUID + // (e.g. incompatible types). + const std::string sync_id = node->guid(); const int64_t server_version = syncer::kUncommittedVersion; const base::Time creation_time = base::Time::Now(); const std::string& suffix = syncer::GenerateSyncableBookmarkHash(
diff --git a/components/sync_bookmarks/bookmark_model_merger_unittest.cc b/components/sync_bookmarks/bookmark_model_merger_unittest.cc index 2edf63b..83e18924 100644 --- a/components/sync_bookmarks/bookmark_model_merger_unittest.cc +++ b/components/sync_bookmarks/bookmark_model_merger_unittest.cc
@@ -1146,6 +1146,69 @@ EXPECT_FALSE(bookmark_bar_node->children()[1]->is_folder()); } +TEST(BookmarkModelMergerTest, + ShouldReplaceBookmarkGUIDWithConflictingTypesAndLocalChildren) { + base::test::ScopedFeatureList override_features; + override_features.InitAndEnableFeature(switches::kMergeBookmarksUsingGUIDs); + + const std::string kGuid = base::GenerateGUID(); + const std::string kGuid2 = base::GenerateGUID(); + + std::unique_ptr<bookmarks::BookmarkModel> bookmark_model = + bookmarks::TestBookmarkClient::CreateModel(); + + // -------- The local model -------- + // bookmark_bar + // | - folder (kGuid) + // | - bookmark (kGuid2) + + const bookmarks::BookmarkNode* bookmark_bar_node = + bookmark_model->bookmark_bar_node(); + const bookmarks::BookmarkNode* folder = bookmark_model->AddFolder( + /*parent=*/bookmark_bar_node, /*index=*/0, + base::UTF8ToUTF16("Folder Title"), nullptr, kGuid); + const bookmarks::BookmarkNode* bookmark = bookmark_model->AddURL( + /*parent=*/folder, /*index=*/0, base::UTF8ToUTF16("Foo's title"), + GURL("http://foo.com"), nullptr, base::Time::Now(), kGuid2); + ASSERT_TRUE(folder); + ASSERT_TRUE(bookmark); + ASSERT_THAT(bookmark_bar_node->children(), ElementRawPointersAre(folder)); + ASSERT_THAT(folder->children(), ElementRawPointersAre(bookmark)); + + // -------- The remote model -------- + // bookmark_bar + // | - bookmark (kGuid) + + syncer::UpdateResponseDataList updates; + updates.push_back(CreateBookmarkBarNodeUpdateData()); + + updates.push_back(CreateUpdateResponseData( + /*server_id=*/"Id", /*parent_id=*/kBookmarkBarId, "Bar's title", + "http://bar.com/", + /*is_folder=*/false, + /*unique_position=*/MakeRandomPosition(), + /*guid=*/kGuid)); + + Merge(std::move(updates), bookmark_model.get()); + + // -------- The merged model -------- + // bookmark_bar + // | - bookmark (kGuid) + // | - folder ([new GUID]) + // | - bookmark (kGuid2) + + // Conflicting node GUID should have been replaced. + ASSERT_EQ(bookmark_bar_node->children().size(), 2u); + EXPECT_EQ(bookmark_bar_node->children()[0]->guid(), kGuid); + EXPECT_NE(bookmark_bar_node->children()[1]->guid(), kGuid); + EXPECT_NE(bookmark_bar_node->children()[1]->guid(), kGuid2); + EXPECT_FALSE(bookmark_bar_node->children()[0]->is_folder()); + EXPECT_TRUE(bookmark_bar_node->children()[1]->is_folder()); + EXPECT_EQ(bookmark_bar_node->children()[1]->children().size(), 1u); + EXPECT_FALSE(bookmark_bar_node->children()[1]->children()[0]->is_folder()); + EXPECT_EQ(bookmark_bar_node->children()[1]->children()[0]->guid(), kGuid2); +} + // Tests that the GUID-based matching algorithm handles well the case where a // local bookmark matches a remote bookmark that is orphan. In this case the // remote node should be ignored and the local bookmark included in the merged
diff --git a/components/sync_bookmarks/bookmark_model_observer_impl.cc b/components/sync_bookmarks/bookmark_model_observer_impl.cc index f063fb1..aa6e3a4 100644 --- a/components/sync_bookmarks/bookmark_model_observer_impl.cc +++ b/components/sync_bookmarks/bookmark_model_observer_impl.cc
@@ -96,10 +96,10 @@ // Assign a temp server id for the entity. Will be overriden by the actual // server id upon receiving commit response. DCHECK(base::IsValidGUID(node->guid())); - const std::string sync_id = - base::FeatureList::IsEnabled(switches::kMergeBookmarksUsingGUIDs) - ? node->guid() - : base::GenerateGUID(); + + // Local bookmark creations should have used a random GUID so it's safe to + // use it as originator client item ID, without the risk for collision. + const std::string sync_id = node->guid(); const int64_t server_version = syncer::kUncommittedVersion; const base::Time creation_time = base::Time::Now(); const sync_pb::UniquePosition unique_position =
diff --git a/components/sync_bookmarks/bookmark_model_observer_impl_unittest.cc b/components/sync_bookmarks/bookmark_model_observer_impl_unittest.cc index a186cb00..4184ac9 100644 --- a/components/sync_bookmarks/bookmark_model_observer_impl_unittest.cc +++ b/components/sync_bookmarks/bookmark_model_observer_impl_unittest.cc
@@ -134,10 +134,8 @@ bookmark_tracker()->GetEntitiesWithLocalChanges(kMaxEntries); ASSERT_THAT(local_changes.size(), 1U); EXPECT_THAT(local_changes[0]->bookmark_node(), Eq(bookmark_node)); - if (base::FeatureList::IsEnabled(switches::kMergeBookmarksUsingGUIDs)) { - EXPECT_THAT(local_changes[0]->metadata()->server_id(), - Eq(bookmark_node->guid())); - } + EXPECT_THAT(local_changes[0]->metadata()->server_id(), + Eq(bookmark_node->guid())); } TEST_F(BookmarkModelObserverImplTest,
diff --git a/components/url_formatter/BUILD.gn b/components/url_formatter/BUILD.gn index 0cbd7aa..1d35ee87 100644 --- a/components/url_formatter/BUILD.gn +++ b/components/url_formatter/BUILD.gn
@@ -8,6 +8,17 @@ import("//build/config/android/rules.gni") } +jumbo_static_library("skeleton_generator") { + sources = [ + "spoof_checks/skeleton_generator.cc", + "spoof_checks/skeleton_generator.h", + ] + deps = [ + "//base", + "//base:i18n", + ] +} + jumbo_static_library("url_formatter") { sources = [ "elide_url.cc", @@ -31,6 +42,7 @@ deps = [ "//base", "//base:i18n", + "//components/url_formatter:skeleton_generator", "//components/url_formatter/spoof_checks/top_domains:common", "//components/url_formatter/spoof_checks/top_domains:generate_top_domains_trie", "//net",
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/components/url_formatter/spoof_checks/idn_spoof_checker.cc index e7a3462..83a2fb5 100644 --- a/components/url_formatter/spoof_checks/idn_spoof_checker.cc +++ b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
@@ -285,86 +285,11 @@ icu::UnicodeSet(UNICODE_STRING_SIMPLE("[\\u00fe\\u00f0]"), status); icelandic_characters_.freeze(); - // Used for diacritics-removal before the skeleton calculation. Add - // "ł > l; ø > o; đ > d" that are not handled by "NFD; Nonspacing mark - // removal; NFC". - // TODO(jshin): Revisit "ł > l; ø > o" mapping. - UParseError parse_error; - diacritic_remover_.reset(icu::Transliterator::createFromRules( - UNICODE_STRING_SIMPLE("DropAcc"), - icu::UnicodeString::fromUTF8("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;" - " ł > l; ø > o; đ > d;"), - UTRANS_FORWARD, parse_error, status)); - - // Supplement the Unicode confusable list by the following mapping. - // NOTE: Adding a digit-lookalike? Add it to digit_lookalikes_ above, too. - // - {U+00E6 (æ), U+04D5 (ӕ)} => "ae" - // - {U+03FC (ϼ), U+048F (ҏ)} => p - // - {U+0127 (ħ), U+043D (н), U+045B (ћ), U+04A3 (ң), U+04A5 (ҥ), - // U+04C8 (ӈ), U+04CA (ӊ), U+050B (ԋ), U+0527 (ԧ), U+0529 (ԩ)} => h - // - {U+0138 (ĸ), U+03BA (κ), U+043A (к), U+049B (қ), U+049D (ҝ), - // U+049F (ҟ), U+04A1(ҡ), U+04C4 (ӄ), U+051F (ԟ)} => k - // - {U+014B (ŋ), U+043F (п), U+0525 (ԥ), U+0E01 (ก), U+05D7 (ח)} => n - // - U+0153 (œ) => "ce" - // TODO: see https://crbug.com/843352 for further work on - // U+0525 and U+0153. - // - {U+0167 (ŧ), U+0442 (т), U+04AD (ҭ), U+050F (ԏ), U+4E03 (七), - // U+4E05 (丅), U+4E06 (丆), U+4E01 (丁)} => t - // - {U+0185 (ƅ), U+044C (ь), U+048D (ҍ), U+0432 (в)} => b - // - {U+03C9 (ω), U+0448 (ш), U+0449 (щ), U+0E1E (พ), - // U+0E1F (ฟ), U+0E9E (ພ), U+0E9F (ຟ)} => w - // - {U+043C (м), U+04CE (ӎ)} => m - // - {U+0454 (є), U+04BD (ҽ), U+04BF (ҿ), U+1054 (ၔ)} => e - // - U+0491 (ґ) => r - // - {U+0493 (ғ), U+04FB (ӻ)} => f - // - {U+04AB (ҫ), U+1004 (င)} => c - // - {U+04B1 (ұ), U+4E2B (丫)} => y - // - {U+03C7 (χ), U+04B3 (ҳ), U+04FD (ӽ), U+04FF (ӿ), U+4E42 (乂)} => x - // - {U+0503 (ԃ), U+10EB (ძ)} => d - // - {U+050D (ԍ), U+100c (ဌ)} => g - // - {U+0D1F (ട), U+0E23 (ร), U+0EA3 (ຣ), U+0EAE (ຮ)} => s - // - U+1042 (၂) => j - // - {U+0966 (०), U+09E6 (০), U+0A66 (੦), U+0AE6 (૦), U+0B30 (ଠ), - // U+0B66 (୦), U+0CE6 (೦)} => o, - // - {U+09ED (৭), U+0A67 (੧), U+0AE7 (૧)} => q, - // - {U+0E1A (บ), U+0E9A (ບ)} => u, - // - {U+03B8 (θ)} => 0, - // - {U+0968 (२), U+09E8 (২), U+0A68 (੨), U+0A68 (੨), U+0AE8 (૨), - // U+0ce9 (೩), U+0ced (೭), U+0577 (շ)} => 2, - // - {U+0437 (з), U+0499 (ҙ), U+04E1 (ӡ), U+0909 (उ), U+0993 (ও), - // U+0A24 (ਤ), U+0A69 (੩), U+0AE9 (૩), U+0C69 (౩), - // U+1012 (ဒ), U+10D5 (ვ), U+10DE (პ)} => 3 - // - {U+0A6B (੫), U+4E29 (丩), U+3110 (ㄐ)} => 4, - // - U+0573 (ճ) => 6 - // - {U+09EA (৪), U+0A6A (੪), U+0b6b (୫)} => 8, - // - {U+0AED (૭), U+0b68 (୨), U+0C68 (౨)} => 9, - // Map a few dashes that ICU doesn't map. These are already blocked by ICU, - // but mapping them allows us to detect same skeletons. - // - {U+2014 (—), U+4E00 (一), U+2015 (―), U+23EA (⸺), U+2E3B (⸻)} => -, - extra_confusable_mapper_.reset(icu::Transliterator::createFromRules( - UNICODE_STRING_SIMPLE("ExtraConf"), - icu::UnicodeString::fromUTF8( - "[æӕ] > ae; [ϼҏ] > p; [ħнћңҥӈӊԋԧԩ] > h;" - "[ĸκкқҝҟҡӄԟ] > k; [ŋпԥกח] > n; œ > ce;" - "[ŧтҭԏ七丅丆丁] > t; [ƅьҍв] > b; [ωшщพฟພຟ] > w;" - "[мӎ] > m; [єҽҿၔ] > e; ґ > r; [ғӻ] > f;" - "[ҫင] > c; [ұ丫] > y; [χҳӽӿ乂] > x;" - "[ԃძ] > d; [ԍဌ] > g; [ടรຣຮ] > s; ၂ > j;" - "[०০੦૦ଠ୦೦] > o;" - "[৭੧૧] > q;" - "[บບ] > u;" - "[θ] > 0;" - "[२২੨੨૨೩೭շ] > 2;" - "[зҙӡउওਤ੩૩౩ဒვპ] > 3;" - "[੫丩ㄐ] > 4;" - "[ճ] > 6;" - "[৪੪୫] > 8;" - "[૭୨౨] > 9;" - "[—一―⸺⸻] > \\-;"), - UTRANS_FORWARD, parse_error, status)); DCHECK(U_SUCCESS(status)) << "Spoofchecker initalization failed due to an error: " << u_errorName(status); + + skeleton_generator_ = std::make_unique<SkeletonGenerator>(checker_); } IDNSpoofChecker::~IDNSpoofChecker() { @@ -561,47 +486,7 @@ } Skeletons IDNSpoofChecker::GetSkeletons(base::StringPiece16 hostname) { - Skeletons skeletons; - size_t hostname_length = hostname.length() - (hostname.back() == '.' ? 1 : 0); - icu::UnicodeString host(FALSE, hostname.data(), hostname_length); - // If input has any characters outside Latin-Greek-Cyrillic and [0-9._-], - // there is no point in getting rid of diacritics because combining marks - // attached to non-LGC characters are already blocked. - if (lgc_letters_n_ascii_.span(host, 0, USET_SPAN_CONTAINED) == host.length()) - diacritic_remover_->transliterate(host); - extra_confusable_mapper_->transliterate(host); - - UErrorCode status = U_ZERO_ERROR; - icu::UnicodeString ustr_skeleton; - - // Map U+04CF (ӏ) to lowercase L in addition to what uspoof_getSkeleton does - // (mapping it to lowercase I). - int32_t u04cf_pos; - if ((u04cf_pos = host.indexOf(0x4CF)) != -1) { - icu::UnicodeString host_alt(host); - size_t length = host_alt.length(); - char16_t* buffer = host_alt.getBuffer(-1); - for (char16_t* uc = buffer + u04cf_pos; uc < buffer + length; ++uc) { - if (*uc == 0x4CF) - *uc = 0x6C; // Lowercase L - } - host_alt.releaseBuffer(length); - uspoof_getSkeletonUnicodeString(checker_, 0, host_alt, ustr_skeleton, - &status); - if (U_SUCCESS(status)) { - std::string skeleton; - ustr_skeleton.toUTF8String(skeleton); - skeletons.insert(skeleton); - } - } - - uspoof_getSkeletonUnicodeString(checker_, 0, host, ustr_skeleton, &status); - if (U_SUCCESS(status)) { - std::string skeleton; - ustr_skeleton.toUTF8String(skeleton); - skeletons.insert(skeleton); - } - return skeletons; + return skeleton_generator_->GetSkeletons(hostname); } TopDomainEntry IDNSpoofChecker::LookupSkeletonInTopDomains(
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.h b/components/url_formatter/spoof_checks/idn_spoof_checker.h index 45bb2494..c870c497 100644 --- a/components/url_formatter/spoof_checks/idn_spoof_checker.h +++ b/components/url_formatter/spoof_checks/idn_spoof_checker.h
@@ -12,6 +12,7 @@ #include "base/gtest_prod_util.h" #include "base/strings/string16.h" #include "base/strings/string_piece_forward.h" +#include "components/url_formatter/spoof_checks/skeleton_generator.h" #include "net/extras/preload_data/decoder.h" #include "third_party/icu/source/common/unicode/uniset.h" @@ -21,7 +22,6 @@ // 'icu' does not work. Use U_ICU_NAMESPACE. namespace U_ICU_NAMESPACE { -class Transliterator; class UnicodeString; } // namespace U_ICU_NAMESPACE @@ -143,8 +143,8 @@ icu::UnicodeSet digit_lookalikes_; icu::UnicodeSet lgc_letters_n_ascii_; icu::UnicodeSet icelandic_characters_; - std::unique_ptr<icu::Transliterator> diacritic_remover_; - std::unique_ptr<icu::Transliterator> extra_confusable_mapper_; + + std::unique_ptr<SkeletonGenerator> skeleton_generator_; // List of scripts containing whole-script-confusable information. std::vector<std::unique_ptr<WholeScriptConfusable>> wholescriptconfusables_;
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc b/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc index 059d613..e8e59ae 100644 --- a/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc +++ b/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc
@@ -1236,6 +1236,9 @@ {"xn--mlca6ab.com", L"டபடப.com", kUnsafe}, // Whole-script-confusable in Telugu: {"xn--brcaabbb.com", L"౧౦౧౦౧౦.com", kUnsafe}, + + // IDN domain matching an IDN top-domain (fóó.com) + {"xn--fo-5ja.com", L"fóo.com", kUnsafe}, }; namespace test {
diff --git a/components/url_formatter/spoof_checks/skeleton_generator.cc b/components/url_formatter/spoof_checks/skeleton_generator.cc new file mode 100644 index 0000000..4148591 --- /dev/null +++ b/components/url_formatter/spoof_checks/skeleton_generator.cc
@@ -0,0 +1,159 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/url_formatter/spoof_checks/skeleton_generator.h" + +#include "base/memory/ptr_util.h" +#include "base/strings/string_piece.h" +#include "third_party/icu/source/i18n/unicode/regex.h" +#include "third_party/icu/source/i18n/unicode/translit.h" +#include "third_party/icu/source/i18n/unicode/uspoof.h" + +SkeletonGenerator::SkeletonGenerator(const USpoofChecker* checker) + : checker_(checker) { + UErrorCode status = U_ZERO_ERROR; + // Used for diacritics-removal before the skeleton calculation. Add + // "ł > l; ø > o; đ > d" that are not handled by "NFD; Nonspacing mark + // removal; NFC". + // TODO(jshin): Revisit "ł > l; ø > o" mapping. + UParseError parse_error; + diacritic_remover_ = base::WrapUnique(icu::Transliterator::createFromRules( + UNICODE_STRING_SIMPLE("DropAcc"), + icu::UnicodeString::fromUTF8("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;" + " ł > l; ø > o; đ > d;"), + UTRANS_FORWARD, parse_error, status)); + + // This set is used to determine whether or not to apply a slow + // transliteration to remove diacritics to a given hostname before the + // confusable skeleton calculation for comparison with top domain names. If + // it has any character outside the set, the expensive step will be skipped + // because it cannot match any of top domain names. + // The last ([\u0300-\u0339] is a shorthand for "[:Identifier_Status=Allowed:] + // & [:Script_Extensions=Inherited:] - [\\u200C\\u200D]". The latter is a + // subset of the former but it does not matter because hostnames with + // characters outside the latter set would be rejected in an earlier step. + lgc_letters_n_ascii_ = icu::UnicodeSet( + UNICODE_STRING_SIMPLE("[[:Latin:][:Greek:][:Cyrillic:][0-9\\u002e_" + "\\u002d][\\u0300-\\u0339]]"), + status); + lgc_letters_n_ascii_.freeze(); + + // Supplement the Unicode confusable list by the following mapping. + // NOTE: Adding a digit-lookalike? Add it to digit_lookalikes_ in + // idn_spoof_checker.cc, too. + // - {U+00E6 (æ), U+04D5 (ӕ)} => "ae" + // - {U+03FC (ϼ), U+048F (ҏ)} => p + // - {U+0127 (ħ), U+043D (н), U+045B (ћ), U+04A3 (ң), U+04A5 (ҥ), + // U+04C8 (ӈ), U+04CA (ӊ), U+050B (ԋ), U+0527 (ԧ), U+0529 (ԩ)} => h + // - {U+0138 (ĸ), U+03BA (κ), U+043A (к), U+049B (қ), U+049D (ҝ), + // U+049F (ҟ), U+04A1(ҡ), U+04C4 (ӄ), U+051F (ԟ)} => k + // - {U+014B (ŋ), U+043F (п), U+0525 (ԥ), U+0E01 (ก), U+05D7 (ח)} => n + // - U+0153 (œ) => "ce" + // TODO: see https://crbug.com/843352 for further work on + // U+0525 and U+0153. + // - {U+0167 (ŧ), U+0442 (т), U+04AD (ҭ), U+050F (ԏ), U+4E03 (七), + // U+4E05 (丅), U+4E06 (丆), U+4E01 (丁)} => t + // - {U+0185 (ƅ), U+044C (ь), U+048D (ҍ), U+0432 (в)} => b + // - {U+03C9 (ω), U+0448 (ш), U+0449 (щ), U+0E1E (พ), + // U+0E1F (ฟ), U+0E9E (ພ), U+0E9F (ຟ)} => w + // - {U+043C (м), U+04CE (ӎ)} => m + // - {U+0454 (є), U+04BD (ҽ), U+04BF (ҿ), U+1054 (ၔ)} => e + // - U+0491 (ґ) => r + // - {U+0493 (ғ), U+04FB (ӻ)} => f + // - {U+04AB (ҫ), U+1004 (င)} => c + // - {U+04B1 (ұ), U+4E2B (丫)} => y + // - {U+03C7 (χ), U+04B3 (ҳ), U+04FD (ӽ), U+04FF (ӿ), U+4E42 (乂)} => x + // - {U+0503 (ԃ), U+10EB (ძ)} => d + // - {U+050D (ԍ), U+100c (ဌ)} => g + // - {U+0D1F (ട), U+0E23 (ร), U+0EA3 (ຣ), U+0EAE (ຮ)} => s + // - U+1042 (၂) => j + // - {U+0966 (०), U+09E6 (০), U+0A66 (੦), U+0AE6 (૦), U+0B30 (ଠ), + // U+0B66 (୦), U+0CE6 (೦)} => o, + // - {U+09ED (৭), U+0A67 (੧), U+0AE7 (૧)} => q, + // - {U+0E1A (บ), U+0E9A (ບ)} => u, + // - {U+03B8 (θ)} => 0, + // - {U+0968 (२), U+09E8 (২), U+0A68 (੨), U+0A68 (੨), U+0AE8 (૨), + // U+0ce9 (೩), U+0ced (೭), U+0577 (շ)} => 2, + // - {U+0437 (з), U+0499 (ҙ), U+04E1 (ӡ), U+0909 (उ), U+0993 (ও), + // U+0A24 (ਤ), U+0A69 (੩), U+0AE9 (૩), U+0C69 (౩), + // U+1012 (ဒ), U+10D5 (ვ), U+10DE (პ)} => 3 + // - {U+0A6B (੫), U+4E29 (丩), U+3110 (ㄐ)} => 4, + // - U+0573 (ճ) => 6 + // - {U+09EA (৪), U+0A6A (੪), U+0b6b (୫)} => 8, + // - {U+0AED (૭), U+0b68 (୨), U+0C68 (౨)} => 9, + // Map a few dashes that ICU doesn't map. These are already blocked by ICU, + // but mapping them allows us to detect same skeletons. + // - {U+2014 (—), U+4E00 (一), U+2015 (―), U+23EA (⸺), U+2E3B (⸻)} => -, + extra_confusable_mapper_ = + base::WrapUnique(icu::Transliterator::createFromRules( + UNICODE_STRING_SIMPLE("ExtraConf"), + icu::UnicodeString::fromUTF8( + "[æӕ] > ae; [ϼҏ] > p; [ħнћңҥӈӊԋԧԩ] > h;" + "[ĸκкқҝҟҡӄԟ] > k; [ŋпԥกח] > n; œ > ce;" + "[ŧтҭԏ七丅丆丁] > t; [ƅьҍв] > b; [ωшщพฟພຟ] > w;" + "[мӎ] > m; [єҽҿၔ] > e; ґ > r; [ғӻ] > f;" + "[ҫင] > c; [ұ丫] > y; [χҳӽӿ乂] > x;" + "[ԃძ] > d; [ԍဌ] > g; [ടรຣຮ] > s; ၂ > j;" + "[०০੦૦ଠ୦೦] > o;" + "[৭੧૧] > q;" + "[บບ] > u;" + "[θ] > 0;" + "[२২੨੨૨೩೭շ] > 2;" + "[зҙӡउওਤ੩૩౩ဒვპ] > 3;" + "[੫丩ㄐ] > 4;" + "[ճ] > 6;" + "[৪੪୫] > 8;" + "[૭୨౨] > 9;" + "[—一―⸺⸻] > \\-;"), + UTRANS_FORWARD, parse_error, status)); + DCHECK(U_SUCCESS(status)) + << "Skeleton generator initalization failed due to an error: " + << u_errorName(status); +} + +SkeletonGenerator::~SkeletonGenerator() = default; + +Skeletons SkeletonGenerator::GetSkeletons(base::StringPiece16 hostname) { + Skeletons skeletons; + size_t hostname_length = hostname.length() - (hostname.back() == '.' ? 1 : 0); + icu::UnicodeString host(FALSE, hostname.data(), hostname_length); + // If input has any characters outside Latin-Greek-Cyrillic and [0-9._-], + // there is no point in getting rid of diacritics because combining marks + // attached to non-LGC characters are already blocked. + if (lgc_letters_n_ascii_.span(host, 0, USET_SPAN_CONTAINED) == host.length()) + diacritic_remover_->transliterate(host); + extra_confusable_mapper_->transliterate(host); + + UErrorCode status = U_ZERO_ERROR; + icu::UnicodeString ustr_skeleton; + + // Map U+04CF (ӏ) to lowercase L in addition to what uspoof_getSkeleton does + // (mapping it to lowercase I). + int32_t u04cf_pos; + if ((u04cf_pos = host.indexOf(0x4CF)) != -1) { + icu::UnicodeString host_alt(host); + size_t length = host_alt.length(); + char16_t* buffer = host_alt.getBuffer(-1); + for (char16_t* uc = buffer + u04cf_pos; uc < buffer + length; ++uc) { + if (*uc == 0x4CF) + *uc = 0x6C; // Lowercase L + } + host_alt.releaseBuffer(length); + uspoof_getSkeletonUnicodeString(checker_, 0, host_alt, ustr_skeleton, + &status); + if (U_SUCCESS(status)) { + std::string skeleton; + ustr_skeleton.toUTF8String(skeleton); + skeletons.insert(skeleton); + } + } + + uspoof_getSkeletonUnicodeString(checker_, 0, host, ustr_skeleton, &status); + if (U_SUCCESS(status)) { + std::string skeleton; + ustr_skeleton.toUTF8String(skeleton); + skeletons.insert(skeleton); + } + return skeletons; +}
diff --git a/components/url_formatter/spoof_checks/skeleton_generator.h b/components/url_formatter/spoof_checks/skeleton_generator.h new file mode 100644 index 0000000..eeb2512 --- /dev/null +++ b/components/url_formatter/spoof_checks/skeleton_generator.h
@@ -0,0 +1,53 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_URL_FORMATTER_SPOOF_CHECKS_SKELETON_GENERATOR_H_ +#define COMPONENTS_URL_FORMATTER_SPOOF_CHECKS_SKELETON_GENERATOR_H_ + +#include <memory> +#include <string> + +#include "base/containers/flat_set.h" +#include "base/strings/string_piece_forward.h" + +#include "third_party/icu/source/common/unicode/uniset.h" + +// 'icu' does not work. Use U_ICU_NAMESPACE. +namespace U_ICU_NAMESPACE { + +class Transliterator; + +} // namespace U_ICU_NAMESPACE + +struct USpoofChecker; + +using Skeletons = base::flat_set<std::string>; + +// This class generates skeleton strings from hostnames. Skeletons are a +// transformation of the input string. Two hostnames are confusable if their +// skeletons are identical. See http://unicode.org/reports/tr39/ for more +// information. +// This class uses ICU to generate skeletons. Before passing the input to ICU, +// it performs additional transformations (diacritic removal and extra +// confusable mapping of certain characters) so that more confusable hostnames +// can be detected than would be by using plain ICU API. +class SkeletonGenerator { + public: + SkeletonGenerator(const USpoofChecker* checker); + ~SkeletonGenerator(); + + // Returns the set of skeletons for the |hostname|. For IDN, |hostname| must + // already be decoded to unicode. + Skeletons GetSkeletons(base::StringPiece16 hostname); + + private: + icu::UnicodeSet lgc_letters_n_ascii_; + + std::unique_ptr<icu::Transliterator> diacritic_remover_; + std::unique_ptr<icu::Transliterator> extra_confusable_mapper_; + + const USpoofChecker* checker_; +}; + +#endif // COMPONENTS_URL_FORMATTER_SPOOF_CHECKS_SKELETON_GENERATOR_H_
diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/components/url_formatter/spoof_checks/top_domains/BUILD.gn index fe5aca7..2ba6edf 100644 --- a/components/url_formatter/spoof_checks/top_domains/BUILD.gn +++ b/components/url_formatter/spoof_checks/top_domains/BUILD.gn
@@ -13,6 +13,7 @@ deps = [ "//base", "//base:i18n", + "//components/url_formatter:skeleton_generator", "//third_party/icu", ] } @@ -28,7 +29,9 @@ ] deps = [ "//base", + "//base:i18n", "//net/tools/huffman_trie:huffman_trie_generator_sources", + "//url:url", ] if (is_ios) { libs = [ "UIKit.framework" ]
diff --git a/components/url_formatter/spoof_checks/top_domains/README.md b/components/url_formatter/spoof_checks/top_domains/README.md index ca2c41b..28e2880 100644 --- a/components/url_formatter/spoof_checks/top_domains/README.md +++ b/components/url_formatter/spoof_checks/top_domains/README.md
@@ -6,6 +6,10 @@ make_top_domain_skeletons. See http://go/chrome-top-domains-update for update instructions. + This list can contain ASCII and unicode domains. Unicode domains should not be + encoded in punycode. + + * `domains.skeletons` The checked-in output of make_top_domain_skeletons. Processed during the @@ -26,9 +30,16 @@ Generated output of test_domains.list along with domains.skeletons by make_top_domain_skeletons. +* `top_domain_generator.cc` + + Generates the Huffman encoded Trie containing a map of skeletons to top + domains. For now, the skeletons must be ASCII. Unicode domains are supported + but they are written as punycode to the trie. + * `top_domain_list_variable_builder.cc` / `top500_domains.h` - `top_domain_list_variable_builder.cc` is run at compile time to generate information about the top 500 domains - (currently, skeletons and keywords are created from these domains). This - information is then embedded directly into the chrome binary, and can be - accessed via the variables in the top500_domains namespace. + `top_domain_list_variable_builder.cc` is run at compile time to generate + information about the top 500 domains (currently, skeletons and keywords are + created from these domains). This information is then embedded directly into + the chrome binary, and can be accessed via the variables in the top500_domains + namespace.
diff --git a/components/url_formatter/spoof_checks/top_domains/make_top_domain_skeletons.cc b/components/url_formatter/spoof_checks/top_domains/make_top_domain_skeletons.cc index dd0d6dd..afc78d0 100644 --- a/components/url_formatter/spoof_checks/top_domains/make_top_domain_skeletons.cc +++ b/components/url_formatter/spoof_checks/top_domains/make_top_domain_skeletons.cc
@@ -17,22 +17,12 @@ #include "base/path_service.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" - +#include "base/strings/utf_string_conversions.h" +#include "components/url_formatter/spoof_checks/skeleton_generator.h" #include "third_party/icu/source/common/unicode/unistr.h" #include "third_party/icu/source/common/unicode/utypes.h" #include "third_party/icu/source/i18n/unicode/uspoof.h" -std::string GetSkeleton(const std::string& domain, - const USpoofChecker* spoof_checker) { - UErrorCode status = U_ZERO_ERROR; - icu::UnicodeString ustr_skeleton; - uspoof_getSkeletonUnicodeString(spoof_checker, 0 /* not used */, - icu::UnicodeString::fromUTF8(domain), - ustr_skeleton, &status); - std::string skeleton; - return U_SUCCESS(status) ? ustr_skeleton.toUTF8String(skeleton) : skeleton; -} - base::FilePath GetPath(base::StringPiece basename) { base::FilePath path; base::PathService::Get(base::DIR_SOURCE_ROOT, &path); @@ -78,19 +68,24 @@ )"; + SkeletonGenerator skeleton_generator(spoof_checker); + std::string domain; size_t max_labels = 0; std::string domain_with_max_labels; while (std::getline(input, domain)) { if (domain[0] == '#') continue; - std::string skeleton = GetSkeleton(domain, spoof_checker); - if (skeleton.empty()) { - std::cerr << "Failed to generate the skeleton of " << domain << '\n'; - output += "# " + domain + '\n'; - } else { + + const base::string16 domain16 = base::UTF8ToUTF16(domain); + const Skeletons skeletons = skeleton_generator.GetSkeletons(domain16); + DCHECK(!skeletons.empty()) << "Failed to generate skeletons of " << domain; + + for (const std::string& skeleton : skeletons) { + DCHECK(!skeleton.empty()) << "Empty skeleton for " << domain; output += skeleton + ", " + domain + "\n"; } + std::vector<base::StringPiece> labels = base::SplitStringPiece( domain, ".", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); if (labels.size() > max_labels) {
diff --git a/components/url_formatter/spoof_checks/top_domains/test_domains.list b/components/url_formatter/spoof_checks/top_domains/test_domains.list index ed7be8b..cc6020c 100644 --- a/components/url_formatter/spoof_checks/top_domains/test_domains.list +++ b/components/url_formatter/spoof_checks/top_domains/test_domains.list
@@ -34,3 +34,5 @@ nn.com # A domain with the same skeleton as itself: test.net +# Unicode domain: +fóó.com
diff --git a/components/url_formatter/spoof_checks/top_domains/test_domains.skeletons b/components/url_formatter/spoof_checks/top_domains/test_domains.skeletons index 84d9f5b..8d1fcf1 100644 --- a/components/url_formatter/spoof_checks/top_domains/test_domains.skeletons +++ b/components/url_formatter/spoof_checks/top_domains/test_domains.skeletons
@@ -44,3 +44,4 @@ qq.corn, qq.com nn.corn, nn.com test.net, test.net +foo.corn, fóó.com
diff --git a/components/url_formatter/spoof_checks/top_domains/top_domain_generator.cc b/components/url_formatter/spoof_checks/top_domains/top_domain_generator.cc index a018f6f..fb5d9ac 100644 --- a/components/url_formatter/spoof_checks/top_domains/top_domain_generator.cc +++ b/components/url_formatter/spoof_checks/top_domains/top_domain_generator.cc
@@ -17,6 +17,7 @@ #include "base/command_line.h" #include "base/files/file_util.h" +#include "base/i18n/icu_util.h" #include "base/logging.h" #include "base/path_service.h" #include "base/strings/string_number_conversions.h" @@ -26,6 +27,7 @@ #include "build/build_config.h" #include "components/url_formatter/spoof_checks/top_domains/top_domain_state_generator.h" #include "components/url_formatter/spoof_checks/top_domains/trie_entry.h" +#include "url/gurl.h" using url_formatter::top_domains::TopDomainEntries; using url_formatter::top_domains::TopDomainEntry; @@ -60,6 +62,8 @@ logging::LOG_TO_SYSTEM_DEBUG_LOG | logging::LOG_TO_STDERR; logging::InitLogging(settings); + base::i18n::InitializeICU(); + #if defined(OS_WIN) std::vector<std::string> args; base::CommandLine::StringVector wide_args = command_line.GetArgs(); @@ -107,18 +111,22 @@ CHECK_EQ(2u, tokens.size()) << "Invalid line: " << tokens[0]; const std::string skeleton = tokens[0]; - if (skeletons.find(skeleton) != skeletons.end()) { - // Another site has the same skeleton. Simply ignore, as we already have a - // top domain corresponding to this skeleton. - continue; - } + // Another site has the same skeleton. This is low proability so stop now. + CHECK(skeletons.find(skeleton) == skeletons.end()) + << "A domain with the same skeleton is already in the list (" + << skeleton << ")."; + skeletons.insert(skeleton); // TODO: Should we lowercase these? entry->skeleton = skeleton; - entry->top_domain = tokens[1]; - // If testing, only mark the first 5 sites as "top 500". + // There might be unicode domains in the list. Store them in punycode in the + // trie. + const GURL domain(std::string("http://") + tokens[1]); + entry->top_domain = domain.host(); + + // If testing, only mark the first site as "top 500". if (for_testing) { entry->is_top_500 = entries.size() < 1; } else {
diff --git a/content/browser/back_forward_cache_browsertest.cc b/content/browser/back_forward_cache_browsertest.cc index 8906b42..0c8385e5 100644 --- a/content/browser/back_forward_cache_browsertest.cc +++ b/content/browser/back_forward_cache_browsertest.cc
@@ -111,7 +111,7 @@ command_line->AppendSwitchASCII( switches::kAutoplayPolicy, switches::autoplay::kNoUserGestureRequiredPolicy); - + command_line->AppendSwitchASCII(switches::kEnableBlinkFeatures, "WakeLock"); ContentBrowserTest::SetUpCommandLine(command_line); } @@ -1681,7 +1681,7 @@ IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, DoesNotCacheIfWebHID) { ASSERT_TRUE(embedded_test_server()->Start()); - // Navigate to an empty page. + // 1) Navigate to an empty page. GURL url(embedded_test_server()->GetURL("/title1.html")); EXPECT_TRUE(NavigateToURL(shell(), url)); @@ -1712,6 +1712,96 @@ blink::scheduler::WebSchedulerTrackedFeature::kWebHID, FROM_HERE); } +IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, + DoesNotCacheIfAcquiredWakeLock) { + ASSERT_TRUE(embedded_test_server()->Start()); + + // 1) Navigate to a page with WakeLock usage. + GURL url(embedded_test_server()->GetURL("/back_forward_cache/empty.html")); + EXPECT_TRUE(NavigateToURL(shell(), url)); + + RenderFrameHostImpl* rfh_a = current_frame_host(); + RenderFrameDeletedObserver deleted(current_frame_host()); + + // Acquire WakeLock. + EXPECT_EQ("DONE", EvalJs(rfh_a, R"( + new Promise(async resolve => { + try { + await navigator.wakeLock.request('screen'); + resolve('DONE'); + } catch (error) { + resolve('error: request failed'); + } + }); + )")); + + // 2) Navigate away. + shell()->LoadURL(embedded_test_server()->GetURL("b.com", "/title1.html")); + + // The page uses WakeLock so it should be deleted. + deleted.WaitUntilDeleted(); + + // 3) Go back to the page with WakeLock. + web_contents()->GetController().GoBack(); + EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + ExpectNotRestored( + {BackForwardCacheMetrics::NotRestoredReason::kBlocklistedFeatures}, + FROM_HERE); + ExpectBlocklistedFeature( + blink::scheduler::WebSchedulerTrackedFeature::kWakeLock, FROM_HERE); +} + +// TODO(yuzus): By releasing wakelock, the page should become cacheable again. +// Fix and re-enable the rest of this test. +IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, + DISABLED_CacheIfReleasedWakeLock) { + ASSERT_TRUE(embedded_test_server()->Start()); + + // 1) Navigate to a page with WakeLock usage. + GURL url(embedded_test_server()->GetURL( + "/back_forward_cache/page_with_wakelock.html")); + EXPECT_TRUE(NavigateToURL(shell(), url)); + + RenderFrameHostImpl* rfh_a = current_frame_host(); + RenderFrameDeletedObserver deleted(current_frame_host()); + + // Acquire WakeLock. + EXPECT_EQ("DONE", EvalJs(rfh_a, "requestWakeLock()")); + // 2) Navigate away. + shell()->LoadURL(embedded_test_server()->GetURL("b.com", "/title1.html")); + + // The page uses WakeLock so it should be deleted. + deleted.WaitUntilDeleted(); + + // 3) Go back to the page with WakeLock. + web_contents()->GetController().GoBack(); + EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + ExpectNotRestored( + {BackForwardCacheMetrics::NotRestoredReason::kBlocklistedFeatures}, + FROM_HERE); + ExpectBlocklistedFeature( + blink::scheduler::WebSchedulerTrackedFeature::kWakeLock, FROM_HERE); + + // Release WakeLock. + EXPECT_EQ("DONE", EvalJs(current_frame_host(), "releaseWakeLock()")); + + // 4) Navigate away. + web_contents()->GetController().GoBack(); + EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + + EXPECT_TRUE(rfh_a->is_in_back_forward_cache()); + + // 5) Go back to the page with WakeLock. + web_contents()->GetController().GoBack(); + EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + EXPECT_EQ(current_frame_host(), rfh_a); + EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + + // This time the page is restored from cache because WakeLock is released. + ExpectOutcome(BackForwardCacheMetrics::HistoryNavigationOutcome::kRestored, + FROM_HERE); +} + IN_PROC_BROWSER_TEST_F(BackForwardCacheBrowserTest, DoesNotCacheIfHttpError) { ASSERT_TRUE(embedded_test_server()->Start());
diff --git a/content/browser/frame_host/back_forward_cache_impl.cc b/content/browser/frame_host/back_forward_cache_impl.cc index 6417dcb27..3e18286 100644 --- a/content/browser/frame_host/back_forward_cache_impl.cc +++ b/content/browser/frame_host/back_forward_cache_impl.cc
@@ -128,7 +128,8 @@ FeatureToBit(WebSchedulerTrackedFeature::kSharedWorker) | FeatureToBit(WebSchedulerTrackedFeature::kWebXR) | FeatureToBit(WebSchedulerTrackedFeature::kWebLocks) | - FeatureToBit(WebSchedulerTrackedFeature::kWebHID); + FeatureToBit(WebSchedulerTrackedFeature::kWebHID) | + FeatureToBit(WebSchedulerTrackedFeature::kWakeLock); uint64_t result = kAlwaysDisallowedFeatures;
diff --git a/content/browser/indexed_db/docs/leveldb_coding_scheme.md b/content/browser/indexed_db/docs/leveldb_coding_scheme.md index 990652c..28c0879a 100644 --- a/content/browser/indexed_db/docs/leveldb_coding_scheme.md +++ b/content/browser/indexed_db/docs/leveldb_coding_scheme.md
@@ -94,13 +94,13 @@ ``` { database_id (VarInt), - blobKey (VarInt) + blob_number (VarInt) } ``` There is no length prefix; just read until you run out of data. -If the blobKey is `DatabaseMetaDataKey::kAllBlobsKey`, the whole +If the blob_number is `DatabaseMetaDataKey::kAllBlobsNumber`, the whole database should be deleted. ### BlobEntry (value) @@ -110,7 +110,7 @@ ``` { is_file (Bool), - key (VarInt), + blob_number (VarInt), type (StringWithLength), // may be empty /*for Blobs only*/ size (VarInt), /*for Files only*/ filename (StringWithLength)
diff --git a/content/browser/indexed_db/indexed_db_active_blob_registry.cc b/content/browser/indexed_db/indexed_db_active_blob_registry.cc index fc200ff..6494194 100644 --- a/content/browser/indexed_db/indexed_db_active_blob_registry.cc +++ b/content/browser/indexed_db/indexed_db_active_blob_registry.cc
@@ -39,7 +39,7 @@ int64_t database_id, int64_t blob_number) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_NE(blob_number, DatabaseMetaDataKey::kAllBlobsKey); + DCHECK_NE(blob_number, DatabaseMetaDataKey::kAllBlobsNumber); DCHECK(KeyPrefix::IsValidDatabaseId(database_id)); const auto& db_pair = blob_reference_tracker_.find(database_id); if (db_pair == blob_reference_tracker_.end()) @@ -134,7 +134,7 @@ blob_reference_tracker_.erase(db_pair); if (db_marked_for_deletion) { delete_blob_in_backend = true; - blob_number = DatabaseMetaDataKey::kAllBlobsKey; + blob_number = DatabaseMetaDataKey::kAllBlobsNumber; deleted_dbs_.erase(deleted_database_it); } }
diff --git a/content/browser/indexed_db/indexed_db_backing_store.cc b/content/browser/indexed_db/indexed_db_backing_store.cc index 912c8b7b..7790292 100644 --- a/content/browser/indexed_db/indexed_db_backing_store.cc +++ b/content/browser/indexed_db/indexed_db_backing_store.cc
@@ -98,25 +98,27 @@ FilePath GetBlobDirectoryNameForKey(const FilePath& path_base, int64_t database_id, - int64_t key) { + int64_t blob_number) { FilePath path = GetBlobDirectoryName(path_base, database_id); path = path.AppendASCII(base::StringPrintf( - "%02x", static_cast<int>(key & 0x000000000000ff00) >> 8)); + "%02x", static_cast<int>(blob_number & 0x000000000000ff00) >> 8)); return path; } FilePath GetBlobFileNameForKey(const FilePath& path_base, int64_t database_id, - int64_t key) { - FilePath path = GetBlobDirectoryNameForKey(path_base, database_id, key); - path = path.AppendASCII(base::StringPrintf("%" PRIx64, key)); + int64_t blob_number) { + FilePath path = + GetBlobDirectoryNameForKey(path_base, database_id, blob_number); + path = path.AppendASCII(base::StringPrintf("%" PRIx64, blob_number)); return path; } bool MakeIDBBlobDirectory(const FilePath& path_base, int64_t database_id, - int64_t key) { - FilePath path = GetBlobDirectoryNameForKey(path_base, database_id, key); + int64_t blob_number) { + FilePath path = + GetBlobDirectoryNameForKey(path_base, database_id, blob_number); return base::CreateDirectory(path); } @@ -240,7 +242,7 @@ Status s = GetBlobJournal(key, transaction, &journal); if (!s.ok()) return s; - journal.push_back({database_id, DatabaseMetaDataKey::kAllBlobsKey}); + journal.push_back({database_id, DatabaseMetaDataKey::kAllBlobsNumber}); UpdateBlobJournal(transaction, key, journal); return Status::OK(); } @@ -260,7 +262,7 @@ } // Blob Data is encoded as a series of: -// { is_file [bool], key [int64_t as varInt], +// { is_file [bool], blob_number [int64_t as varInt], // type [string-with-length, may be empty], // (for Blobs only) size [int64_t as varInt] // (for Files only) fileName [string-with-length] @@ -270,7 +272,7 @@ std::string ret; for (const auto* info : blob_info) { EncodeBool(info->is_file(), &ret); - EncodeVarInt(info->key(), &ret); + EncodeVarInt(info->blob_number(), &ret); EncodeStringWithLength(info->type(), &ret); if (info->is_file()) EncodeStringWithLength(info->file_name(), &ret); @@ -287,26 +289,26 @@ StringPiece slice(data); while (!slice.empty()) { bool is_file; - int64_t key; + int64_t blob_number; base::string16 type; int64_t size; base::string16 file_name; if (!DecodeBool(&slice, &is_file)) return false; - if (!DecodeVarInt(&slice, &key) || - !DatabaseMetaDataKey::IsValidBlobNumber(key)) + if (!DecodeVarInt(&slice, &blob_number) || + !DatabaseMetaDataKey::IsValidBlobNumber(blob_number)) return false; if (!DecodeStringWithLength(&slice, &type)) return false; if (is_file) { if (!DecodeStringWithLength(&slice, &file_name)) return false; - ret.push_back(IndexedDBBlobInfo(key, type, file_name)); + ret.push_back(IndexedDBBlobInfo(blob_number, type, file_name)); } else { if (!DecodeVarInt(&slice, &size) || size < 0) return false; - ret.push_back(IndexedDBBlobInfo(type, size, key)); + ret.push_back(IndexedDBBlobInfo(type, size, blob_number)); } } output->swap(ret); @@ -1620,12 +1622,12 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(idb_sequence_checker_); DCHECK(initialized_); #endif - if (!MakeIDBBlobDirectory(blob_path_, database_id, descriptor.key())) + if (!MakeIDBBlobDirectory(blob_path_, database_id, descriptor.blob_number())) return false; bool use_copy_file = descriptor.is_file() && !descriptor.file_path().empty(); - FilePath path = GetBlobFileName(database_id, descriptor.key()); + FilePath path = GetBlobFileName(database_id, descriptor.blob_number()); if (use_copy_file) { if (!base::CopyFile(descriptor.file_path(), path)) @@ -1672,7 +1674,7 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(idb_sequence_checker_); DCHECK(initialized_); #endif - bool all_blobs = blob_number == DatabaseMetaDataKey::kAllBlobsKey; + bool all_blobs = blob_number == DatabaseMetaDataKey::kAllBlobsNumber; DCHECK(all_blobs || DatabaseMetaDataKey::IsValidBlobNumber(blob_number)); std::unique_ptr<LevelDBDirectTransaction> transaction = transactional_leveldb_factory_->CreateLevelDBDirectTransaction(db_.get()); @@ -1684,13 +1686,13 @@ if (!GetRecoveryBlobJournal(transaction.get(), &recovery_journal).ok()) return; - // There are several cases to handle. If blob_number is kAllBlobsKey, we want - // to remove all entries with database_id from the active blob journal and add - // only kAllBlobsKey to the recovery journal. Otherwise if - // IsValidBlobNumber(blob_number) and we hit kAllBlobsKey for the right - // database_id in the journal, we leave the kAllBlobsKey entry in the active - // blob journal but add the specific blob to the recovery. Otherwise if - // IsValidBlobNumber(blob_number) and we find a matching (database_id, + // There are several cases to handle. If blob_number is kAllBlobsNumber, we + // want to remove all entries with database_id from the active blob journal + // and add only kAllBlobsNumber to the recovery journal. Otherwise if + // IsValidBlobNumber(blob_number) and we hit kAllBlobsNumber for the right + // database_id in the journal, we leave the kAllBlobsNumber entry in the + // active blob journal but add the specific blob to the recovery. Otherwise + // if IsValidBlobNumber(blob_number) and we find a matching (database_id, // blob_number) tuple, we should move it to the recovery journal. BlobJournalType new_active_blob_journal; for (auto journal_iter = active_blob_journal.begin(); @@ -1698,7 +1700,7 @@ int64_t current_database_id = journal_iter->first; int64_t current_blob_number = journal_iter->second; bool current_all_blobs = - current_blob_number == DatabaseMetaDataKey::kAllBlobsKey; + current_blob_number == DatabaseMetaDataKey::kAllBlobsNumber; DCHECK(KeyPrefix::IsValidDatabaseId(current_database_id) || current_all_blobs); if (current_database_id == database_id && @@ -1719,7 +1721,7 @@ } if (all_blobs) { recovery_journal.push_back( - {database_id, DatabaseMetaDataKey::kAllBlobsKey}); + {database_id, DatabaseMetaDataKey::kAllBlobsNumber}); } UpdateRecoveryBlobJournal(transaction.get(), recovery_journal); UpdateActiveBlobJournal(transaction.get(), new_active_blob_journal); @@ -1775,18 +1777,18 @@ // This assumes a file path of dbId/second-to-LSB-of-counter/counter. FilePath IndexedDBBackingStore::GetBlobFileName(int64_t database_id, - int64_t key) const { + int64_t blob_number) const { DCHECK_CALLED_ON_VALID_SEQUENCE(idb_sequence_checker_); - return GetBlobFileNameForKey(blob_path_, database_id, key); + return GetBlobFileNameForKey(blob_path_, database_id, blob_number); } bool IndexedDBBackingStore::RemoveBlobFile(int64_t database_id, - int64_t key) const { + int64_t blob_number) const { DCHECK_CALLED_ON_VALID_SEQUENCE(idb_sequence_checker_); - FilePath path = GetBlobFileName(database_id, key); + FilePath path = GetBlobFileName(database_id, blob_number); #if DCHECK_IS_ON() ++num_blob_files_deleted_; - DVLOG(1) << "Deleting blob " << key << " from IndexedDB database " + DVLOG(1) << "Deleting blob " << blob_number << " from IndexedDB database " << database_id << " at path " << path.value(); #endif return base::DeleteFile(path, false); @@ -1834,7 +1836,7 @@ int64_t database_id = entry.first; int64_t blob_number = entry.second; DCHECK(KeyPrefix::IsValidDatabaseId(database_id)); - if (blob_number == DatabaseMetaDataKey::kAllBlobsKey) { + if (blob_number == DatabaseMetaDataKey::kAllBlobsNumber) { if (!RemoveBlobDirectory(database_id)) return IOErrorStatus(); } else { @@ -1904,13 +1906,13 @@ } for (auto& entry : value->blob_info) { entry.set_file_path( - backing_store_->GetBlobFileName(database_id, entry.key())); + backing_store_->GetBlobFileName(database_id, entry.blob_number())); entry.set_mark_used_callback( backing_store_->active_blob_registry()->GetMarkBlobActiveCallback( - database_id, entry.key())); + database_id, entry.blob_number())); entry.set_release_callback( backing_store_->active_blob_registry()->GetFinalReleaseCallback( - database_id, entry.key())); + database_id, entry.blob_number())); if (entry.is_file() && !entry.file_path().empty()) { base::File::Info info; if (base::GetFileInfo(entry.file_path(), &info)) { @@ -3049,7 +3051,7 @@ WriteDescriptor(entry.remote(), next_blob_number, entry.size(), entry.last_modified())); } - entry.set_key(next_blob_number); + entry.set_blob_number(next_blob_number); new_blob_numbers.push_back(&entry); ++next_blob_number; result = indexed_db::UpdateBlobNumberGeneratorCurrentNumber( @@ -3106,7 +3108,7 @@ return false; } for (const auto& blob : blob_info) { - blobs_to_remove_.push_back({database_id_, blob.key()}); + blobs_to_remove_.push_back({database_id_, blob.blob_number()}); s = transaction_->Remove(blob_entry_key_bytes); if (!s.ok()) { transaction_ = nullptr;
diff --git a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc index 680f3632..53a8f8f 100644 --- a/content/browser/indexed_db/indexed_db_backing_store_unittest.cc +++ b/content/browser/indexed_db/indexed_db_backing_store_unittest.cc
@@ -26,6 +26,7 @@ #include "components/services/storage/indexed_db/scopes/disjoint_range_lock_manager.h" #include "components/services/storage/indexed_db/transactional_leveldb/leveldb_write_batch.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" +#include "components/services/storage/public/mojom/indexed_db_control.mojom-test-utils.h" #include "content/browser/indexed_db/indexed_db_class_factory.h" #include "content/browser/indexed_db/indexed_db_context_impl.h" #include "content/browser/indexed_db/indexed_db_factory_impl.h" @@ -117,12 +118,12 @@ return true; } - bool RemoveBlobFile(int64_t database_id, int64_t key) const override { + bool RemoveBlobFile(int64_t database_id, int64_t blob_number) const override { if (database_id_ != database_id || !KeyPrefix::IsValidDatabaseId(database_id)) { return false; } - removals_.push_back(key); + removals_.push_back(blob_number); return true; } @@ -261,7 +262,10 @@ } // All leveldb databases are closed, and they can be deleted. for (auto origin : idb_context_->GetAllOrigins()) { - idb_context_->DeleteForOrigin(origin); + bool success = false; + storage::mojom::IndexedDBControlAsyncWaiter waiter(idb_context_.get()); + waiter.DeleteForOrigin(origin, &success); + EXPECT_TRUE(success); } } if (temp_dir_.IsValid()) @@ -395,11 +399,11 @@ return false; std::set<int64_t> ids; for (const auto& write : backing_store_->writes()) - ids.insert(write.key()); + ids.insert(write.blob_number()); if (ids.size() != backing_store_->writes().size()) return false; for (const auto& read : reads) { - if (ids.count(read.key()) != 1) + if (ids.count(read.blob_number()) != 1) return false; } return true; @@ -471,8 +475,10 @@ if (backing_store_->removals().size() != backing_store_->writes().size()) return false; for (size_t i = 0; i < backing_store_->writes().size(); ++i) { - if (backing_store_->writes()[i].key() != backing_store_->removals()[i]) + if (backing_store_->writes()[i].blob_number() != + backing_store_->removals()[i]) { return false; + } } return true; } @@ -758,9 +764,9 @@ // Verify blob removals. ASSERT_EQ(2UL, backing_store()->removals().size()); - EXPECT_EQ(backing_store()->writes()[1].key(), + EXPECT_EQ(backing_store()->writes()[1].blob_number(), backing_store()->removals()[0]); - EXPECT_EQ(backing_store()->writes()[2].key(), + EXPECT_EQ(backing_store()->writes()[2].blob_number(), backing_store()->removals()[1]); // Clean up on the IDB sequence.
diff --git a/content/browser/indexed_db/indexed_db_blob_info.cc b/content/browser/indexed_db/indexed_db_blob_info.cc index 03410dc..5fd3515 100644 --- a/content/browser/indexed_db/indexed_db_blob_info.cc +++ b/content/browser/indexed_db/indexed_db_blob_info.cc
@@ -35,10 +35,7 @@ } } -IndexedDBBlobInfo::IndexedDBBlobInfo() - : is_file_(false), - size_(-1), - key_(DatabaseMetaDataKey::kInvalidBlobNumber) {} +IndexedDBBlobInfo::IndexedDBBlobInfo() : is_file_(false), size_(-1) {} IndexedDBBlobInfo::IndexedDBBlobInfo( mojo::PendingRemote<blink::mojom::Blob> blob_remote, @@ -49,13 +46,12 @@ blob_remote_(std::move(blob_remote)), uuid_(uuid), type_(type), - size_(size), - key_(DatabaseMetaDataKey::kInvalidBlobNumber) {} + size_(size) {} IndexedDBBlobInfo::IndexedDBBlobInfo(const base::string16& type, int64_t size, - int64_t key) - : is_file_(false), type_(type), size_(size), key_(key) {} + int64_t blob_number) + : is_file_(false), type_(type), size_(size), blob_number_(blob_number) {} IndexedDBBlobInfo::IndexedDBBlobInfo( mojo::PendingRemote<blink::mojom::Blob> blob_remote, @@ -69,17 +65,16 @@ type_(type), size_(-1), file_name_(file_name), - file_path_(file_path), - key_(DatabaseMetaDataKey::kInvalidBlobNumber) {} + file_path_(file_path) {} -IndexedDBBlobInfo::IndexedDBBlobInfo(int64_t key, +IndexedDBBlobInfo::IndexedDBBlobInfo(int64_t blob_number, const base::string16& type, const base::string16& file_name) : is_file_(true), type_(type), size_(-1), file_name_(file_name), - key_(key) {} + blob_number_(blob_number) {} IndexedDBBlobInfo::IndexedDBBlobInfo(const IndexedDBBlobInfo& other) = default; @@ -110,9 +105,9 @@ last_modified_ = time; } -void IndexedDBBlobInfo::set_key(int64_t key) { - DCHECK_EQ(DatabaseMetaDataKey::kInvalidBlobNumber, key_); - key_ = key; +void IndexedDBBlobInfo::set_blob_number(int64_t blob_number) { + DCHECK_EQ(DatabaseMetaDataKey::kInvalidBlobNumber, blob_number_); + blob_number_ = blob_number; } void IndexedDBBlobInfo::set_mark_used_callback(
diff --git a/content/browser/indexed_db/indexed_db_blob_info.h b/content/browser/indexed_db/indexed_db_blob_info.h index 6f80ef5..e592d6b 100644 --- a/content/browser/indexed_db/indexed_db_blob_info.h +++ b/content/browser/indexed_db/indexed_db_blob_info.h
@@ -16,6 +16,7 @@ #include "base/optional.h" #include "base/strings/string16.h" #include "base/time/time.h" +#include "content/browser/indexed_db/indexed_db_leveldb_coding.h" #include "content/common/content_export.h" #include "mojo/public/cpp/bindings/shared_remote.h" #include "storage/browser/blob/blob_data_handle.h" @@ -36,14 +37,16 @@ const std::string& uuid, const base::string16& type, int64_t size); - IndexedDBBlobInfo(const base::string16& type, int64_t size, int64_t key); + IndexedDBBlobInfo(const base::string16& type, + int64_t size, + int64_t blob_number); // These two are used for Files. IndexedDBBlobInfo(mojo::PendingRemote<blink::mojom::Blob> blob_remote, const std::string& uuid, const base::FilePath& file_path, const base::string16& file_name, const base::string16& type); - IndexedDBBlobInfo(int64_t key, + IndexedDBBlobInfo(int64_t blob_number, const base::string16& type, const base::string16& file_name); @@ -62,7 +65,7 @@ const base::string16& type() const { return type_; } int64_t size() const { return size_; } const base::string16& file_name() const { return file_name_; } - int64_t key() const { return key_; } + int64_t blob_number() const { return blob_number_; } const base::FilePath& file_path() const { return file_path_; } const base::Time& last_modified() const { return last_modified_; } const base::RepeatingClosure& mark_used_callback() const { @@ -75,7 +78,7 @@ void set_size(int64_t size); void set_file_path(const base::FilePath& file_path); void set_last_modified(const base::Time& time); - void set_key(int64_t key); + void set_blob_number(int64_t blob_number); void set_mark_used_callback(base::RepeatingClosure mark_used_callback); void set_release_callback(base::RepeatingClosure release_callback); @@ -98,7 +101,7 @@ base::Time last_modified_; // Valid only when this comes out of the database. - int64_t key_; + int64_t blob_number_ = DatabaseMetaDataKey::kInvalidBlobNumber; base::RepeatingClosure mark_used_callback_; base::RepeatingClosure release_callback_; };
diff --git a/content/browser/indexed_db/indexed_db_blob_storage.cc b/content/browser/indexed_db/indexed_db_blob_storage.cc index 191762c1..ed3e5982 100644 --- a/content/browser/indexed_db/indexed_db_blob_storage.cc +++ b/content/browser/indexed_db/indexed_db_blob_storage.cc
@@ -28,22 +28,22 @@ } WriteDescriptor::WriteDescriptor(mojo::SharedRemote<blink::mojom::Blob> blob, - int64_t key, + int64_t blob_number, int64_t size, base::Time last_modified) : is_file_(false), blob_(std::move(blob)), - key_(key), + blob_number_(blob_number), size_(size), last_modified_(last_modified) {} WriteDescriptor::WriteDescriptor(const base::FilePath& file_path, - int64_t key, + int64_t blob_number, int64_t size, base::Time last_modified) : is_file_(true), file_path_(file_path), - key_(key), + blob_number_(blob_number), size_(size), last_modified_(last_modified) {}
diff --git a/content/browser/indexed_db/indexed_db_blob_storage.h b/content/browser/indexed_db/indexed_db_blob_storage.h index 2c2c9878..9612fb58 100644 --- a/content/browser/indexed_db/indexed_db_blob_storage.h +++ b/content/browser/indexed_db/indexed_db_blob_storage.h
@@ -76,11 +76,11 @@ class CONTENT_EXPORT WriteDescriptor { public: WriteDescriptor(mojo::SharedRemote<blink::mojom::Blob> blob, - int64_t key, + int64_t blob_number, int64_t size, base::Time last_modified); WriteDescriptor(const base::FilePath& path, - int64_t key, + int64_t blob_number, int64_t size, base::Time last_modified); WriteDescriptor(const WriteDescriptor& other); @@ -96,7 +96,7 @@ DCHECK(is_file_); return file_path_; } - int64_t key() const { return key_; } + int64_t blob_number() const { return blob_number_; } int64_t size() const { return size_; } base::Time last_modified() const { return last_modified_; } @@ -104,7 +104,7 @@ bool is_file_; mojo::SharedRemote<blink::mojom::Blob> blob_; base::FilePath file_path_; - int64_t key_; + int64_t blob_number_; int64_t size_; base::Time last_modified_; };
diff --git a/content/browser/indexed_db/indexed_db_browsertest.cc b/content/browser/indexed_db/indexed_db_browsertest.cc index c9411eb7..6103372 100644 --- a/content/browser/indexed_db/indexed_db_browsertest.cc +++ b/content/browser/indexed_db/indexed_db_browsertest.cc
@@ -28,6 +28,7 @@ #include "build/build_config.h" #include "components/services/storage/indexed_db/scopes/varint_coding.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" +#include "components/services/storage/public/mojom/indexed_db_control.mojom-test-utils.h" #include "content/browser/blob_storage/chrome_blob_storage_context.h" #include "content/browser/browser_main_loop.h" #include "content/browser/indexed_db/indexed_db_class_factory.h" @@ -181,15 +182,20 @@ storage::GetHardCodedSettings(per_host_quota_kilobytes * KB)); } - void DeleteForOrigin(const Origin& origin, Shell* browser = nullptr) { + bool DeleteForOrigin(const Origin& origin, Shell* browser = nullptr) { base::RunLoop loop; - IndexedDBContextImpl* context = GetContext(); - context->IDBTaskRunner()->PostTask(FROM_HERE, - base::BindLambdaForTesting([&]() { - context->DeleteForOrigin(kFileOrigin); - loop.Quit(); - })); + IndexedDBContextImpl* context = GetContext(browser); + bool result = false; + context->IDBTaskRunner()->PostTask( + FROM_HERE, base::BindLambdaForTesting([&]() { + context->DeleteForOrigin( + origin, base::BindLambdaForTesting([&](bool success) { + result = success; + loop.Quit(); + })); + })); loop.Run(); + return result; } int64_t RequestUsage(const Origin& origin, Shell* browser = nullptr) { @@ -685,14 +691,7 @@ EXPECT_GT(RequestUsage(origin, browser), 5 * 1024); - IndexedDBContextImpl* context = GetContext(browser); - base::RunLoop loop; - context->IDBTaskRunner()->PostTask(FROM_HERE, - base::BindLambdaForTesting([&]() { - context->DeleteForOrigin(origin); - loop.Quit(); - })); - loop.Run(); + DeleteForOrigin(origin, browser); EXPECT_EQ(0, RequestUsage(origin, browser)); }
diff --git a/content/browser/indexed_db/indexed_db_context_impl.cc b/content/browser/indexed_db/indexed_db_context_impl.cc index 200fdfd..f14452a9 100644 --- a/content/browser/indexed_db/indexed_db_context_impl.cc +++ b/content/browser/indexed_db/indexed_db_context_impl.cc
@@ -129,6 +129,40 @@ std::move(usage_callback).Run(std::move(result)); } +// Note - this is being kept async (instead of having a 'sync' version) to allow +// ForceClose to become asynchronous. This is required for +// https://crbug.com/965142. +void IndexedDBContextImpl::DeleteForOrigin(const Origin& origin, + DeleteForOriginCallback callback) { + DCHECK(IDBTaskRunner()->RunsTasksInCurrentSequence()); + ForceClose(origin, FORCE_CLOSE_DELETE_ORIGIN); + if (!HasOrigin(origin)) { + std::move(callback).Run(true); + return; + } + + if (is_incognito()) { + GetOriginSet()->erase(origin); + origin_size_map_.erase(origin); + std::move(callback).Run(true); + return; + } + + base::FilePath idb_directory = GetLevelDBPath(origin); + EnsureDiskUsageCacheInitialized(origin); + + leveldb::Status s = + IndexedDBClassFactory::Get()->leveldb_factory().DestroyLevelDB( + idb_directory); + if (s.ok()) { + base::DeleteFileRecursively(GetBlobStorePath(origin)); + GetOriginSet()->erase(origin); + origin_size_map_.erase(origin); + } + QueryDiskAndUpdateQuotaUsage(origin); + std::move(callback).Run(s.ok()); +} + IndexedDBFactoryImpl* IndexedDBContextImpl::GetIDBFactory() { DCHECK(IDBTaskRunner()->RunsTasksInCurrentSequence()); if (!indexeddb_factory_.get()) { @@ -325,42 +359,6 @@ return file_info.last_modified; } -void IndexedDBContextImpl::DeleteForOrigin(const Origin& origin) { - DCHECK(IDBTaskRunner()->RunsTasksInCurrentSequence()); - ForceClose(origin, FORCE_CLOSE_DELETE_ORIGIN); - if (!HasOrigin(origin)) - return; - - if (is_incognito()) { - GetOriginSet()->erase(origin); - origin_size_map_.erase(origin); - return; - } - - base::FilePath idb_directory = GetLevelDBPath(origin); - EnsureDiskUsageCacheInitialized(origin); - - leveldb::Status s = - IndexedDBClassFactory::Get()->leveldb_factory().DestroyLevelDB( - idb_directory); - if (!s.ok()) { - LOG(WARNING) << "Failed to delete LevelDB database: " - << idb_directory.AsUTF8Unsafe(); - } else { - // LevelDB does not delete empty directories; work around this. - // TODO(jsbell): Remove when upstream bug is fixed. - // https://github.com/google/leveldb/issues/215 - const bool kNonRecursive = false; - base::DeleteFile(idb_directory, kNonRecursive); - } - base::DeleteFileRecursively(GetBlobStorePath(origin)); - QueryDiskAndUpdateQuotaUsage(origin); - if (s.ok()) { - GetOriginSet()->erase(origin); - origin_size_map_.erase(origin); - } -} - void IndexedDBContextImpl::CopyOriginData(const Origin& origin, IndexedDBContext* dest_context) { DCHECK(IDBTaskRunner()->RunsTasksInCurrentSequence());
diff --git a/content/browser/indexed_db/indexed_db_context_impl.h b/content/browser/indexed_db/indexed_db_context_impl.h index c67392a..2b7ab22 100644 --- a/content/browser/indexed_db/indexed_db_context_impl.h +++ b/content/browser/indexed_db/indexed_db_context_impl.h
@@ -87,6 +87,8 @@ // mojom::IndexedDBControl implementation: void GetUsage(GetUsageCallback usage_callback) override; + void DeleteForOrigin(const url::Origin& origin, + DeleteForOriginCallback callback) override; IndexedDBFactoryImpl* GetIDBFactory(); @@ -99,7 +101,6 @@ // IndexedDBContext implementation: base::SequencedTaskRunner* IDBTaskRunner() override; - void DeleteForOrigin(const url::Origin& origin) override; void CopyOriginData(const url::Origin& origin, IndexedDBContext* dest_context) override; base::FilePath GetFilePathForTesting(const url::Origin& origin) override; @@ -131,6 +132,8 @@ // ForceClose takes a value rather than a reference since it may release the // owning object. + // ForceClose needs to move to async to support multi-thread scopes. See + // https://crbug.com/965142. void ForceClose(const url::Origin origin, ForceCloseReason reason); bool ForceSchemaDowngrade(const url::Origin& origin); V2SchemaCorruptionStatus HasV2SchemaCorruption(const url::Origin& origin);
diff --git a/content/browser/indexed_db/indexed_db_factory_unittest.cc b/content/browser/indexed_db/indexed_db_factory_unittest.cc index ae87c57..d32ab308 100644 --- a/content/browser/indexed_db/indexed_db_factory_unittest.cc +++ b/content/browser/indexed_db/indexed_db_factory_unittest.cc
@@ -92,7 +92,11 @@ open_factory_origins.size(), base::BindLambdaForTesting([&]() { // All leveldb databases are closed, and they can be deleted. for (auto origin : context_->GetAllOrigins()) { - context_->DeleteForOrigin(origin); + bool success = false; + storage::mojom::IndexedDBControlAsyncWaiter waiter( + context_.get()); + waiter.DeleteForOrigin(origin, &success); + EXPECT_TRUE(success); } loop.Quit(); }));
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding.cc b/content/browser/indexed_db/indexed_db_leveldb_coding.cc index 25cc6bd..02e1d41 100644 --- a/content/browser/indexed_db/indexed_db_leveldb_coding.cc +++ b/content/browser/indexed_db/indexed_db_leveldb_coding.cc
@@ -476,7 +476,7 @@ if (!DecodeVarInt(slice, &blob_number)) return false; if (!DatabaseMetaDataKey::IsValidBlobNumber(blob_number) && - (blob_number != DatabaseMetaDataKey::kAllBlobsKey)) { + (blob_number != DatabaseMetaDataKey::kAllBlobsNumber)) { return false; } output.push_back({database_id, blob_number}); @@ -1570,7 +1570,7 @@ return blob_number >= kBlobNumberGeneratorInitialNumber; } -const int64_t DatabaseMetaDataKey::kAllBlobsKey = 1; +const int64_t DatabaseMetaDataKey::kAllBlobsNumber = 1; const int64_t DatabaseMetaDataKey::kBlobNumberGeneratorInitialNumber = 2; const int64_t DatabaseMetaDataKey::kInvalidBlobNumber = -1;
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding.h b/content/browser/indexed_db/indexed_db_leveldb_coding.h index 4b833094..eca50893 100644 --- a/content/browser/indexed_db/indexed_db_leveldb_coding.h +++ b/content/browser/indexed_db/indexed_db_leveldb_coding.h
@@ -291,7 +291,7 @@ MAX_SIMPLE_METADATA_TYPE = 6 }; - CONTENT_EXPORT static const int64_t kAllBlobsKey; + CONTENT_EXPORT static const int64_t kAllBlobsNumber; static const int64_t kBlobNumberGeneratorInitialNumber; // All keys <= 0 are invalid. This one's just a convenient example. static const int64_t kInvalidBlobNumber;
diff --git a/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc b/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc index 4df53ab7..84653e37 100644 --- a/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc +++ b/content/browser/indexed_db/indexed_db_leveldb_coding_unittest.cc
@@ -643,7 +643,7 @@ } { // kAllBlobsKey - journals.push_back({{5, DatabaseMetaDataKey::kAllBlobsKey}}); + journals.push_back({{5, DatabaseMetaDataKey::kAllBlobsNumber}}); } { // A bunch of items
diff --git a/content/browser/indexed_db/indexed_db_quota_client.cc b/content/browser/indexed_db/indexed_db_quota_client.cc index 584c16a..8a92db2 100644 --- a/content/browser/indexed_db/indexed_db_quota_client.cc +++ b/content/browser/indexed_db/indexed_db_quota_client.cc
@@ -11,23 +11,26 @@ #include "base/bind.h" #include "base/logging.h" +#include "base/task/post_task.h" +#include "base/threading/sequenced_task_runner_handle.h" #include "content/browser/indexed_db/indexed_db_context_impl.h" #include "net/base/url_util.h" #include "storage/browser/database/database_util.h" #include "third_party/blink/public/mojom/quota/quota_types.mojom.h" using blink::mojom::StorageType; -using storage::QuotaClient; using storage::DatabaseUtil; +using storage::QuotaClient; namespace content { namespace { -blink::mojom::QuotaStatusCode DeleteOriginDataOnIndexedDBThread( - IndexedDBContextImpl* context, - const url::Origin& origin) { - context->DeleteForOrigin(origin); - return blink::mojom::QuotaStatusCode::kOk; +void DidDeleteIDBData(scoped_refptr<base::SequencedTaskRunner> task_runner, + IndexedDBQuotaClient::DeletionCallback callback, + bool) { + task_runner->PostTask( + FROM_HERE, + base::BindOnce(std::move(callback), blink::mojom::QuotaStatusCode::kOk)); } int64_t GetOriginUsageOnIndexedDBThread(IndexedDBContextImpl* context, @@ -72,7 +75,9 @@ IndexedDBQuotaClient::~IndexedDBQuotaClient() {} -QuotaClient::ID IndexedDBQuotaClient::id() const { return kIndexedDatabase; } +QuotaClient::ID IndexedDBQuotaClient::id() const { + return kIndexedDatabase; +} void IndexedDBQuotaClient::GetOriginUsage(const url::Origin& origin, StorageType type, @@ -144,11 +149,13 @@ return; } - base::PostTaskAndReplyWithResult( - indexed_db_context_->IDBTaskRunner(), FROM_HERE, - base::BindOnce(&DeleteOriginDataOnIndexedDBThread, - base::RetainedRef(indexed_db_context_), origin), - std::move(callback)); + indexed_db_context_->IDBTaskRunner()->PostTask( + FROM_HERE, + base::BindOnce(&IndexedDBContextImpl::DeleteForOrigin, + base::RetainedRef(indexed_db_context_), origin, + base::BindOnce(DidDeleteIDBData, + base::SequencedTaskRunnerHandle::Get(), + std::move(callback)))); } bool IndexedDBQuotaClient::DoesSupport(StorageType type) const {
diff --git a/content/browser/indexed_db/indexed_db_unittest.cc b/content/browser/indexed_db/indexed_db_unittest.cc index 17c2bd9..2c7d9dc 100644 --- a/content/browser/indexed_db/indexed_db_unittest.cc +++ b/content/browser/indexed_db/indexed_db_unittest.cc
@@ -16,6 +16,7 @@ #include "base/time/default_clock.h" #include "components/services/storage/indexed_db/scopes/scopes_lock_manager.h" #include "components/services/storage/indexed_db/transactional_leveldb/transactional_leveldb_database.h" +#include "components/services/storage/public/mojom/indexed_db_control.mojom-test-utils.h" #include "content/browser/indexed_db/indexed_db_connection.h" #include "content/browser/indexed_db/indexed_db_context_impl.h" #include "content/browser/indexed_db/indexed_db_execution_context_connection_tracker.h" @@ -125,7 +126,11 @@ open_factory_origins.size(), base::BindLambdaForTesting([&]() { // All leveldb databases are closed, and they can be deleted. for (auto origin : context_->GetAllOrigins()) { - context_->DeleteForOrigin(origin); + bool success = false; + storage::mojom::IndexedDBControlAsyncWaiter waiter( + context_.get()); + waiter.DeleteForOrigin(origin, &success); + EXPECT_TRUE(success); } loop.Quit(); })); @@ -287,7 +292,10 @@ RunPostedTasks(); - context()->DeleteForOrigin(kTestOrigin); + bool success = false; + storage::mojom::IndexedDBControlAsyncWaiter waiter(context()); + waiter.DeleteForOrigin(kTestOrigin, &success); + EXPECT_TRUE(success); EXPECT_FALSE(base::DirectoryExists(test_path)); } @@ -301,13 +309,16 @@ auto lock = LockForTesting(test_path); ASSERT_TRUE(lock); + bool success = false; base::RunLoop loop; context()->IDBTaskRunner()->PostTask( FROM_HERE, base::BindLambdaForTesting([&]() { - context()->DeleteForOrigin(kTestOrigin); + storage::mojom::IndexedDBControlAsyncWaiter waiter(context()); + waiter.DeleteForOrigin(kTestOrigin, &success); loop.Quit(); })); loop.Run(); + EXPECT_FALSE(success); EXPECT_TRUE(base::DirectoryExists(test_path)); }
diff --git a/content/browser/loader/file_url_loader_factory_unittest.cc b/content/browser/loader/file_url_loader_factory_unittest.cc new file mode 100644 index 0000000..15e100f --- /dev/null +++ b/content/browser/loader/file_url_loader_factory_unittest.cc
@@ -0,0 +1,97 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/loader/file_url_loader_factory.h" + +#include <memory> +#include <string> + +#include "base/path_service.h" +#include "base/test/task_environment.h" +#include "base/threading/thread_restrictions.h" +#include "content/public/browser/shared_cors_origin_access_list.h" +#include "content/public/common/content_paths.h" +#include "content/public/test/simple_url_loader_test_helper.h" +#include "net/base/filename_util.h" +#include "net/traffic_annotation/network_traffic_annotation_test_helper.h" +#include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/mojom/url_loader.mojom.h" +#include "services/network/test/test_url_loader_client.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace content { + +namespace { + +GURL GetTestURL(const std::string& filename) { + base::ScopedAllowBlockingForTesting allow_blocking; + base::FilePath path; + base::PathService::Get(DIR_TEST_DATA, &path); + path = path.AppendASCII("loader"); + return net::FilePathToFileURL(path.AppendASCII(filename)); +} + +class FileURLLoaderFactoryTest : public testing::Test { + public: + FileURLLoaderFactoryTest() + : access_list_(SharedCorsOriginAccessList::Create()), + factory_(std::make_unique<FileURLLoaderFactory>( + profile_dummy_path_, + /*shared_cors_origin_access_list=*/nullptr, + base::TaskPriority::BEST_EFFORT)) {} + FileURLLoaderFactoryTest(const FileURLLoaderFactoryTest&) = delete; + FileURLLoaderFactoryTest& operator=(const FileURLLoaderFactoryTest&) = delete; + ~FileURLLoaderFactoryTest() override = default; + + protected: + int CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode request_mode) { + auto request = std::make_unique<network::ResourceRequest>(); + request->url = GetTestURL("get.txt"); + request->mode = request_mode; + + auto loader = network::SimpleURLLoader::Create( + std::move(request), TRAFFIC_ANNOTATION_FOR_TESTS); + + SimpleURLLoaderTestHelper helper; + loader->DownloadToString( + factory_.get(), helper.GetCallback(), + network::SimpleURLLoader::kMaxBoundedStringDownloadSize); + + helper.WaitForCallback(); + return loader->NetError(); + } + + private: + base::test::TaskEnvironment task_environment_; + base::FilePath profile_dummy_path_; + scoped_refptr<SharedCorsOriginAccessList> access_list_; + std::unique_ptr<network::mojom::URLLoaderFactory> factory_; +}; + +TEST_F(FileURLLoaderFactoryTest, MissedRequestInitiator) { + // CORS-disabled requests can omit |request.request_initiator| though it is + // discouraged not to set |request.request_initiator|. + EXPECT_EQ(net::OK, CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode::kSameOrigin)); + + EXPECT_EQ(net::OK, CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode::kNoCors)); + + EXPECT_EQ(net::OK, CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode::kNavigate)); + + // CORS-enabled requests need |request.request_initiator| set. + EXPECT_EQ(net::ERR_INVALID_ARGUMENT, CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode::kCors)); + + EXPECT_EQ(net::ERR_INVALID_ARGUMENT, + CreateLoaderAndRunWithRequestMode( + network::mojom::RequestMode::kCorsWithForcedPreflight)); +} + +} // namespace + +} // namespace content
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc index f940f32b..577030e 100644 --- a/content/browser/service_worker/service_worker_version.cc +++ b/content/browser/service_worker/service_worker_version.cc
@@ -769,11 +769,9 @@ void ServiceWorkerVersion::RestoreControlleeFromBackForwardCacheMap( const std::string& client_uuid) { - // TODO(crbug.com/1021718): Change these to DCHECK once we figure out the - // cause of crash. - CHECK(IsBackForwardCacheEnabled()); - CHECK(!base::Contains(controllee_map_, client_uuid)); - CHECK(base::Contains(bfcached_controllee_map_, client_uuid)); + DCHECK(IsBackForwardCacheEnabled()); + DCHECK(!base::Contains(controllee_map_, client_uuid)); + DCHECK(base::Contains(bfcached_controllee_map_, client_uuid)); AddControllee(bfcached_controllee_map_[client_uuid]); bfcached_controllee_map_.erase(client_uuid); }
diff --git a/content/browser/sms/sms_fetcher_impl.cc b/content/browser/sms/sms_fetcher_impl.cc index 27bc14b..01439829 100644 --- a/content/browser/sms/sms_fetcher_impl.cc +++ b/content/browser/sms/sms_fetcher_impl.cc
@@ -10,7 +10,6 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/content_browser_client.h" #include "content/public/common/content_client.h" -#include "url/origin.h" namespace content { @@ -43,6 +42,10 @@ void SmsFetcherImpl::Subscribe(const url::Origin& origin, SmsQueue::Subscriber* subscriber) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + if (subscribers_.HasSubscriber(origin, subscriber)) + return; + subscribers_.Push(origin, subscriber); // Fetches a remote SMS.
diff --git a/content/browser/sms/sms_fetcher_impl.h b/content/browser/sms/sms_fetcher_impl.h index 5fc8f2f..4fdb0e5 100644 --- a/content/browser/sms/sms_fetcher_impl.h +++ b/content/browser/sms/sms_fetcher_impl.h
@@ -6,6 +6,7 @@ #define CONTENT_BROWSER_SMS_SMS_FETCHER_IMPL_H_ #include <memory> +#include <string> #include "base/optional.h" #include "base/sequence_checker.h" @@ -14,10 +15,7 @@ #include "content/browser/sms/sms_queue.h" #include "content/common/content_export.h" #include "content/public/browser/sms_fetcher.h" - -namespace url { -class Origin; -} +#include "url/origin.h" namespace content {
diff --git a/content/browser/sms/sms_fetcher_impl_unittest.cc b/content/browser/sms/sms_fetcher_impl_unittest.cc index c496ef8..7dbe1a14 100644 --- a/content/browser/sms/sms_fetcher_impl_unittest.cc +++ b/content/browser/sms/sms_fetcher_impl_unittest.cc
@@ -200,4 +200,18 @@ provider()->NotifyReceive(origin1, "123", "foo"); } +TEST_F(SmsFetcherImplTest, SubscribeIsIdempotent) { + StrictMock<MockSubscriber> subscriber; + + SmsFetcherImpl fetcher(nullptr, base::WrapUnique(provider())); + fetcher.Subscribe(kTestOrigin, &subscriber); + fetcher.Subscribe(kTestOrigin, &subscriber); + + EXPECT_TRUE(fetcher.HasSubscribers()); + + fetcher.Unsubscribe(kTestOrigin, &subscriber); + + EXPECT_FALSE(fetcher.HasSubscribers()); +} + } // namespace content
diff --git a/content/browser/sms/sms_queue.cc b/content/browser/sms/sms_queue.cc index 8fcf5a13..cd2525c 100644 --- a/content/browser/sms/sms_queue.cc +++ b/content/browser/sms/sms_queue.cc
@@ -42,4 +42,10 @@ return !subscribers_.empty(); } +bool SmsQueue::HasSubscriber(const url::Origin& origin, + const Subscriber* subscriber) { + return (subscribers_.find(origin) != subscribers_.end()) && + subscribers_[origin].HasObserver(subscriber); +} + } // namespace content
diff --git a/content/browser/sms/sms_queue.h b/content/browser/sms/sms_queue.h index 088a6fd1b..ded28cb0 100644 --- a/content/browser/sms/sms_queue.h +++ b/content/browser/sms/sms_queue.h
@@ -26,6 +26,7 @@ Subscriber* Pop(const url::Origin& origin); void Remove(const url::Origin& origin, Subscriber* subscriber); bool HasSubscribers(); + bool HasSubscriber(const url::Origin& origin, const Subscriber* subscriber); private: std::map<url::Origin, base::ObserverList<Subscriber>> subscribers_;
diff --git a/content/public/browser/indexed_db_context.h b/content/public/browser/indexed_db_context.h index 8e0a2f78..b7b46dc 100644 --- a/content/public/browser/indexed_db_context.h +++ b/content/public/browser/indexed_db_context.h
@@ -28,15 +28,14 @@ // Call these methods only via the exposed IDBTaskRunner. // Refcounted because this class is used throughout the codebase on different // threads. +// This class is in the process of being removed in lieu of the +// IndexedDBControl mojo interface. class IndexedDBContext : public base::RefCountedDeleteOnSequence<IndexedDBContext> { public: // Only call the below methods by posting to this IDBTaskRunner. virtual base::SequencedTaskRunner* IDBTaskRunner() = 0; - // Deletes all indexed db files for the given origin. - virtual void DeleteForOrigin(const url::Origin& origin) = 0; - // Copies the indexed db files from this context to another. The // indexed db directory in the destination context needs to be empty. virtual void CopyOriginData(const url::Origin& origin,
diff --git a/content/public/browser/sms_fetcher.h b/content/public/browser/sms_fetcher.h index 91b986c..cdc23c0 100644 --- a/content/public/browser/sms_fetcher.h +++ b/content/public/browser/sms_fetcher.h
@@ -34,6 +34,7 @@ const std::string& sms) = 0; }; + // Idempotent function that subscribes to incoming SMSes from SmsProvider. virtual void Subscribe(const url::Origin& origin, Subscriber* subscriber) = 0; virtual void Unsubscribe(const url::Origin& origin, Subscriber* subscriber) = 0;
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 5ebf5c3..cdbcec6 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1621,6 +1621,7 @@ "../browser/indexed_db/mock_mojo_indexed_db_callbacks.h", "../browser/indexed_db/mock_mojo_indexed_db_database_callbacks.cc", "../browser/indexed_db/mock_mojo_indexed_db_database_callbacks.h", + "../browser/loader/file_url_loader_factory_unittest.cc", "../browser/loader/merkle_integrity_source_stream_unittest.cc", "../browser/loader/navigation_url_loader_impl_unittest.cc", "../browser/loader/navigation_url_loader_unittest.cc",
diff --git a/content/test/data/back_forward_cache/page_with_wakelock.html b/content/test/data/back_forward_cache/page_with_wakelock.html new file mode 100644 index 0000000..1586440668 --- /dev/null +++ b/content/test/data/back_forward_cache/page_with_wakelock.html
@@ -0,0 +1,21 @@ +<html> + <title>wakelock</title> +</html> +<script> +let lock; + +async function requestWakeLock() { + try { + lock = await navigator.wakeLock.request('screen'); + return 'DONE'; + } catch (error) { + return `${error}`; + } +} + +async function releaseWakeLock() { + await lock.release(); + return 'DONE'; +} + +</script>
diff --git a/content/utility/utility_thread_impl.cc b/content/utility/utility_thread_impl.cc index d24c557..160dc23 100644 --- a/content/utility/utility_thread_impl.cc +++ b/content/utility/utility_thread_impl.cc
@@ -15,6 +15,7 @@ #include "base/memory/scoped_refptr.h" #include "base/optional.h" #include "base/sequenced_task_runner.h" +#include "base/trace_event/trace_log.h" #include "build/build_config.h" #include "content/child/child_process.h" #include "content/public/utility/content_utility_client.h" @@ -43,8 +44,13 @@ // was running in the process. static auto* service_name_crash_key = base::debug::AllocateCrashKeyString( "service-name", base::debug::CrashKeySize::Size32); - base::debug::SetCrashKeyString(service_name_crash_key, - receiver->interface_name().value()); + const std::string& service_name = receiver->interface_name().value(); + base::debug::SetCrashKeyString(service_name_crash_key, service_name); + + // Traces should also indicate the service name. + auto* trace_log = base::trace_event::TraceLog::GetInstance(); + if (trace_log->IsProcessNameEmpty()) + trace_log->set_process_name("Service: " + service_name); // We watch for and terminate on PEER_CLOSED, but we also terminate if the // watcher is cancelled (meaning the local endpoint was closed rather than
diff --git a/device/bluetooth/bluetooth_adapter.cc b/device/bluetooth/bluetooth_adapter.cc index 6cd8a2d..ba71dcf0 100644 --- a/device/bluetooth/bluetooth_adapter.cc +++ b/device/bluetooth/bluetooth_adapter.cc
@@ -328,6 +328,18 @@ return discovery_sessions_.size(); } +int BluetoothAdapter::NumScanningDiscoverySessions() const { + int count = 0; + for (auto* session : discovery_sessions_) { + if (session->status() == + BluetoothDiscoverySession::SessionStatus::SCANNING) { + ++count; + } + } + + return count; +} + void BluetoothAdapter::NotifyGattServicesDiscovered(BluetoothDevice* device) { DCHECK(device->GetAdapter() == this); @@ -460,6 +472,11 @@ return; } + // Inform BluetoothDiscoverySession that updates being processed have + // completed. + for (auto* session : discovery_sessions_) + session->StartingSessionsScanning(); + current_discovery_filter_.CopyFrom(filter_being_set_); auto callbacks_awaiting_response = std::move(callbacks_awaiting_response_); @@ -517,6 +534,11 @@ return; } + // Inform BluetoothDiscoverySession that any updates they have made are being + // processed. + for (auto* session : discovery_sessions_) + session->PendingSessionsStarting(); + auto result_callback = base::BindOnce( &BluetoothAdapter::OnDiscoveryChangeComplete, GetWeakPtr()); auto new_desired_filter = GetMergedDiscoveryFilter();
diff --git a/device/bluetooth/bluetooth_adapter.h b/device/bluetooth/bluetooth_adapter.h index d7f7de7..ef8a6aa 100644 --- a/device/bluetooth/bluetooth_adapter.h +++ b/device/bluetooth/bluetooth_adapter.h
@@ -751,6 +751,9 @@ int NumDiscoverySessions() const; + // Number of DiscoverySessions with the status of SCANNING. + int NumScanningDiscoverySessions() const; + // UI thread task runner. scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
diff --git a/device/bluetooth/bluetooth_discovery_session.cc b/device/bluetooth/bluetooth_discovery_session.cc index 347ef6b..9ab4657 100644 --- a/device/bluetooth/bluetooth_discovery_session.cc +++ b/device/bluetooth/bluetooth_discovery_session.cc
@@ -16,7 +16,7 @@ BluetoothDiscoverySession::BluetoothDiscoverySession( scoped_refptr<BluetoothAdapter> adapter, std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter) - : active_(true), + : status_(SessionStatus::PENDING_START), is_stop_in_progress_(false), adapter_(adapter), discovery_filter_(discovery_filter.release()) { @@ -24,19 +24,28 @@ } BluetoothDiscoverySession::~BluetoothDiscoverySession() { - if (active_) { + if (IsActive()) Stop(base::DoNothing(), base::DoNothing()); - } } bool BluetoothDiscoverySession::IsActive() const { - return active_; + return status_ != SessionStatus::INACTIVE; +} + +void BluetoothDiscoverySession::PendingSessionsStarting() { + if (status_ == SessionStatus::PENDING_START) + status_ = SessionStatus::STARTING; +} + +void BluetoothDiscoverySession::StartingSessionsScanning() { + if (status_ == SessionStatus::STARTING) + status_ = SessionStatus::SCANNING; } void BluetoothDiscoverySession::Stop(const base::Closure& success_callback, const ErrorCallback& error_callback) { - if (!active_) { - LOG(WARNING) << "Discovery session not active. Cannot stop."; + if (!IsActive()) { + DVLOG(1) << "Discovery session not active. Cannot stop."; BluetoothAdapter::RecordBluetoothDiscoverySessionStopOutcome( UMABluetoothDiscoverySessionOutcome::NOT_ACTIVE); error_callback.Run(); @@ -103,9 +112,7 @@ } void BluetoothDiscoverySession::MarkAsInactive() { - if (!active_) - return; - active_ = false; + status_ = SessionStatus::INACTIVE; } const BluetoothDiscoveryFilter* BluetoothDiscoverySession::GetDiscoveryFilter()
diff --git a/device/bluetooth/bluetooth_discovery_session.h b/device/bluetooth/bluetooth_discovery_session.h index e3ab280f..a63b158 100644 --- a/device/bluetooth/bluetooth_discovery_session.h +++ b/device/bluetooth/bluetooth_discovery_session.h
@@ -35,6 +35,17 @@ // The ErrorCallback is used by methods to asynchronously report errors. typedef base::Closure ErrorCallback; + enum SessionStatus { + // Just added to the adapter. + PENDING_START, + // Request sent to OS. + STARTING, + // Actively scanning. + SCANNING, + // Finished scanning, should be deleted soon. + INACTIVE + }; + // Destructor automatically terminates the discovery session. If this // results in a call to the underlying system to stop device discovery // (i.e. this instance represents the last active discovery session), @@ -64,6 +75,14 @@ virtual const BluetoothDiscoveryFilter* GetDiscoveryFilter() const; + SessionStatus status() const { return status_; } + + // Updates the status from PENDING_START to STARTING. + void PendingSessionsStarting(); + + // Updates the status from STARTING to SCANNING. + void StartingSessionsScanning(); + base::WeakPtr<BluetoothDiscoverySession> GetWeakPtr(); protected: @@ -97,8 +116,8 @@ // discovery state. void MarkAsInactive(); - // Whether or not this instance represents an active discovery session. - bool active_; + // Indicates the state of this session. + SessionStatus status_; // Whether a Stop() operation is in progress for this session. bool is_stop_in_progress_;
diff --git a/device/bluetooth/bluez/bluetooth_adapter_bluez.cc b/device/bluetooth/bluez/bluetooth_adapter_bluez.cc index 37f736ff..f4ea8db 100644 --- a/device/bluetooth/bluez/bluetooth_adapter_bluez.cc +++ b/device/bluetooth/bluez/bluetooth_adapter_bluez.cc
@@ -1140,7 +1140,7 @@ // If the adapter stopped discovery due to a reason other than a request by // us, reset the count to 0. BLUETOOTH_LOG(EVENT) << "Discovering changed: " << discovering; - if (!discovering && NumDiscoverySessions() > 0) { + if (!discovering && NumScanningDiscoverySessions() > 0) { BLUETOOTH_LOG(DEBUG) << "Marking sessions as inactive."; MarkDiscoverySessionsAsInactive(); }
diff --git a/device/bluetooth/bluez/bluetooth_bluez_unittest.cc b/device/bluetooth/bluez/bluetooth_bluez_unittest.cc index 8e904e16..cab95a3 100644 --- a/device/bluetooth/bluez/bluetooth_bluez_unittest.cc +++ b/device/bluetooth/bluez/bluetooth_bluez_unittest.cc
@@ -194,6 +194,11 @@ QuitMessageLoop(); } + void CallbackWithClosure(base::OnceClosure closure) { + ++callback_count_; + std::move(closure).Run(); + } + base::Closure GetCallback() { return base::Bind(&BluetoothBlueZTest::Callback, base::Unretained(this)); } @@ -211,6 +216,14 @@ QuitMessageLoop(); } + void DiscoverySessionCallbackWithClosure( + base::OnceClosure closure, + std::unique_ptr<BluetoothDiscoverySession> discovery_session) { + ++callback_count_; + discovery_sessions_.push_back(std::move(discovery_session)); + std::move(closure).Run(); + } + void ProfileRegisteredCallback(BluetoothAdapterProfileBlueZ* profile) { adapter_profile_ = profile; ++callback_count_; @@ -254,6 +267,15 @@ QuitMessageLoop(); } + int NumActiveDiscoverySessions() { + int count = 0; + for (const auto& session : discovery_sessions_) { + if (session->IsActive()) + count++; + } + return count; + } + // Call to fill the adapter_ member with a BluetoothAdapter instance. void GetAdapter() { adapter_ = new BluetoothAdapterBlueZ(base::Bind( @@ -867,7 +889,7 @@ observer.Reset(); // Now mark the adapter not present again. Expect the methods to be called - // again, to reset the properties back to false + // again, to reset the properties back to false. fake_bluetooth_adapter_client_->SetVisible(false); EXPECT_EQ(1, observer.present_changed_count()); @@ -883,6 +905,93 @@ EXPECT_FALSE(adapter_->IsDiscovering()); } +// This unit test asserts that a DiscoverySession which is queued to start does +// not get interrupted by a stop discovery call being executed. +TEST_F(BluetoothBlueZTest, StopAndStartDiscoverySimultaneously) { + GetAdapter(); + adapter_->SetPowered(/*powered=*/true, GetCallback(), GetErrorCallback()); + EXPECT_EQ(1, callback_count_); + EXPECT_EQ(0, error_callback_count_); + EXPECT_TRUE(adapter_->IsPowered()); + callback_count_ = 0; + + TestBluetoothAdapterObserver observer(adapter_); + + EXPECT_EQ(0, observer.discovering_changed_count()); + EXPECT_FALSE(observer.last_discovering()); + EXPECT_FALSE(adapter_->IsDiscovering()); + + // Start Discovery in order to call Stop. + base::RunLoop start_loop_1; + adapter_->StartDiscoverySession( + base::BindOnce(&BluetoothBlueZTest::DiscoverySessionCallbackWithClosure, + base::Unretained(this), start_loop_1.QuitClosure()), + GetErrorCallback()); + // Run the callbacks to set up state for new requests. + { + base::RunLoop discovering_changed_loop; + observer.RegisterDiscoveringChangedWatcher( + discovering_changed_loop.QuitClosure()); + discovering_changed_loop.Run(); + } + start_loop_1.Run(); + + EXPECT_EQ(1, observer.discovering_changed_count()); + EXPECT_EQ(1, callback_count_); + EXPECT_EQ(0, error_callback_count_); + EXPECT_TRUE(observer.last_discovering()); + EXPECT_TRUE(adapter_->IsDiscovering()); + ASSERT_EQ(1u, discovery_sessions_.size()); + + base::RunLoop stop_loop; + + // Register loop to watch for Discovery changes. + base::RunLoop discovering_changed_loop; + int discovery_changed_count = 0; + observer.RegisterDiscoveringChangedWatcher(base::BindLambdaForTesting([&]() { + ++discovery_changed_count; + if (discovery_changed_count == 1) { + EXPECT_FALSE(observer.last_discovering()); + EXPECT_EQ(2, observer.discovering_changed_count()); + EXPECT_EQ(2, callback_count_); + EXPECT_FALSE(adapter_->IsDiscovering()); + } + + if (discovery_changed_count == 2) { + EXPECT_TRUE(observer.last_discovering()); + discovering_changed_loop.Quit(); + } + })); + discovery_sessions_[0]->Stop( + base::Bind(&BluetoothBlueZTest::CallbackWithClosure, + base::Unretained(this), stop_loop.QuitClosure()), + GetErrorCallback()); + EXPECT_EQ(1, observer.discovering_changed_count()); + + // Queue up start to ensure all still works properly with a + // StartDiscoverySession pending. + base::RunLoop start_loop_2; + adapter_->StartDiscoverySession( + base::Bind(&BluetoothBlueZTest::DiscoverySessionCallbackWithClosure, + base::Unretained(this), start_loop_2.QuitClosure()), + GetErrorCallback()); + + // Finish stop call. + stop_loop.Run(); + + // Run loop waiting for DiscoveryChanged to be called in the observer + // twice(once from stop and once from start). + discovering_changed_loop.Run(); + + // Finish start call. + start_loop_2.Run(); + + EXPECT_EQ(3, observer.discovering_changed_count()); + EXPECT_EQ(3, callback_count_); + EXPECT_TRUE(adapter_->IsDiscovering()); + ASSERT_EQ(1, NumActiveDiscoverySessions()); +} + // This unit test asserts that the basic reference counting logic works // correctly for discovery requests done via the BluetoothAdapter. TEST_F(BluetoothBlueZTest, MultipleDiscoverySessions) {
diff --git a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc index 571fea1..17401e7 100644 --- a/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc +++ b/device/bluetooth/dbus/fake_bluetooth_adapter_client.cc
@@ -155,8 +155,9 @@ PostDelayedTask(base::BindOnce(std::move(callback), base::nullopt)); if (discovering_count_ == 1) { - properties_->discovering.ReplaceValue(true); - + PostDelayedTask( + base::BindOnce(&FakeBluetoothAdapterClient::UpdateDiscoveringProperty, + weak_ptr_factory_.GetWeakPtr(), /*discovering=*/true)); FakeBluetoothDeviceClient* device_client = static_cast<FakeBluetoothDeviceClient*>( bluez::BluezDBusManager::Get()->GetBluetoothDeviceClient()); @@ -197,10 +198,16 @@ } discovery_filter_.reset(); - properties_->discovering.ReplaceValue(false); + PostDelayedTask( + base::BindOnce(&FakeBluetoothAdapterClient::UpdateDiscoveringProperty, + weak_ptr_factory_.GetWeakPtr(), /*discovering=*/false)); } } +void FakeBluetoothAdapterClient::UpdateDiscoveringProperty(bool discovering) { + properties_->discovering.ReplaceValue(discovering); +} + void FakeBluetoothAdapterClient::PauseDiscovery( const dbus::ObjectPath& object_path, base::OnceClosure callback,
diff --git a/device/bluetooth/dbus/fake_bluetooth_adapter_client.h b/device/bluetooth/dbus/fake_bluetooth_adapter_client.h index e3b55488..768b9e45 100644 --- a/device/bluetooth/dbus/fake_bluetooth_adapter_client.h +++ b/device/bluetooth/dbus/fake_bluetooth_adapter_client.h
@@ -113,7 +113,6 @@ static const char kSecondAdapterPath[]; static const char kSecondAdapterName[]; static const char kSecondAdapterAddress[]; - private: // Property callback passed when we create Properties* structures. void OnPropertyChanged(const std::string& property_name); @@ -122,6 +121,9 @@ // message loop to be executed after |simulation_interval_ms_| milliseconds. void PostDelayedTask(base::OnceClosure callback); + // Utility function to update the discovering property. + void UpdateDiscoveringProperty(bool discovering); + // List of observers interested in event notifications from us. base::ObserverList<Observer>::Unchecked observers_; @@ -161,6 +163,10 @@ std::map<uint32_t, BluetoothServiceRecordBlueZ> records_; uint32_t set_long_term_keys_call_count_; + + // Note: This should remain the last member so it'll be destroyed and + // invalidate its weak pointers before any other members are destroyed. + base::WeakPtrFactory<FakeBluetoothAdapterClient> weak_ptr_factory_{this}; }; } // namespace bluez
diff --git a/device/bluetooth/test/test_bluetooth_adapter_observer.cc b/device/bluetooth/test/test_bluetooth_adapter_observer.cc index 4162c5d..4399e08 100644 --- a/device/bluetooth/test/test_bluetooth_adapter_observer.cc +++ b/device/bluetooth/test/test_bluetooth_adapter_observer.cc
@@ -110,6 +110,13 @@ ++discovering_changed_count_; last_discovering_ = discovering; + if (discovering_changed_callback_) + discovering_changed_callback_.Run(); +} + +void TestBluetoothAdapterObserver::RegisterDiscoveringChangedWatcher( + base::RepeatingClosure callback) { + discovering_changed_callback_ = callback; } void TestBluetoothAdapterObserver::DeviceAdded(BluetoothAdapter* adapter,
diff --git a/device/bluetooth/test/test_bluetooth_adapter_observer.h b/device/bluetooth/test/test_bluetooth_adapter_observer.h index b3eba2e1..7a523e3 100644 --- a/device/bluetooth/test/test_bluetooth_adapter_observer.h +++ b/device/bluetooth/test/test_bluetooth_adapter_observer.h
@@ -32,6 +32,7 @@ bool discoverable) override; void AdapterDiscoveringChanged(BluetoothAdapter* adapter, bool discovering) override; + void RegisterDiscoveringChangedWatcher(base::RepeatingClosure callback); void DeviceAdded(BluetoothAdapter* adapter, BluetoothDevice* device) override; void DeviceChanged(BluetoothAdapter* adapter, BluetoothDevice* device) override; @@ -233,6 +234,8 @@ base::Optional<int8_t> last_tx_power_; base::Optional<uint16_t> last_appearance_; + base::Closure discovering_changed_callback_; + #if defined(OS_CHROMEOS) || defined(OS_LINUX) int device_paired_changed_count_; bool device_new_paired_status_;
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc index 7bd2056..57e1fdc 100644 --- a/extensions/browser/updater/extension_downloader.cc +++ b/extensions/browser/updater/extension_downloader.cc
@@ -1142,9 +1142,14 @@ base::UmaHistogramSparse("Extensions.CrxFetchError", -net_error); delegate_->OnExtensionDownloadStageChanged( id, ExtensionDownloaderDelegate::Stage::FINISHED); + ExtensionDownloaderDelegate::FailureData failure_data( + -net_error, + response_code > 0 ? base::Optional<int>(response_code) + : base::nullopt, + extensions_queue_.active_request_failure_count()); delegate_->OnExtensionDownloadFailed( id, ExtensionDownloaderDelegate::Error::CRX_FETCH_FAILED, ping, - request_ids); + request_ids, failure_data); } ping_results_.erase(id); extensions_queue_.reset_active_request(); @@ -1171,7 +1176,9 @@ ExtensionDownloaderDelegate::Error error) { for (const auto& it : extension_ids) { const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[it]; - delegate_->OnExtensionDownloadFailed(it, error, ping, request_ids); + delegate_->OnExtensionDownloadFailed( + it, error, ping, request_ids, + ExtensionDownloaderDelegate::FailureData()); ping_results_.erase(it); } }
diff --git a/extensions/browser/updater/extension_downloader_delegate.cc b/extensions/browser/updater/extension_downloader_delegate.cc index 80ec546..c2d9cfa7 100644 --- a/extensions/browser/updater/extension_downloader_delegate.cc +++ b/extensions/browser/updater/extension_downloader_delegate.cc
@@ -15,6 +15,24 @@ ExtensionDownloaderDelegate::PingResult::~PingResult() { } +ExtensionDownloaderDelegate::FailureData::FailureData() + : network_error_code(0), fetch_tries(0) {} +ExtensionDownloaderDelegate::FailureData::FailureData( + const FailureData& other) = default; +ExtensionDownloaderDelegate::FailureData::FailureData(const int net_error_code, + const int fetch_attempts) + : network_error_code(net_error_code), fetch_tries(fetch_attempts) {} + +ExtensionDownloaderDelegate::FailureData::FailureData( + const int net_error_code, + const base::Optional<int> response, + const int fetch_attempts) + : network_error_code(net_error_code), + response_code(response), + fetch_tries(fetch_attempts) {} + +ExtensionDownloaderDelegate::FailureData::~FailureData() = default; + ExtensionDownloaderDelegate::~ExtensionDownloaderDelegate() { } @@ -30,7 +48,8 @@ const ExtensionId& id, Error error, const PingResult& ping_result, - const std::set<int>& request_id) {} + const std::set<int>& request_id, + const FailureData& data) {} void ExtensionDownloaderDelegate::OnExtensionDownloadRetryForTests() {}
diff --git a/extensions/browser/updater/extension_downloader_delegate.h b/extensions/browser/updater/extension_downloader_delegate.h index cfdaa4c86..445d3b0 100644 --- a/extensions/browser/updater/extension_downloader_delegate.h +++ b/extensions/browser/updater/extension_downloader_delegate.h
@@ -142,6 +142,25 @@ base::Time day_start; }; + // Contains the error codes when Force installed extension fail to install + // with error CRX_FETCH_FAILED. + struct FailureData { + FailureData(); + FailureData(const FailureData& other); + FailureData(const int net_error_code, const int fetch_attempts); + FailureData(const int net_error_code, + const base::Optional<int> response, + const int fetch_attempts); + ~FailureData(); + + // Network error code in case of CRX_FETCH_FAILED. + const int network_error_code; + // Response code in case of CRX_FETCH_FAILED. + const base::Optional<int> response_code; + // Number of fetch attempts made in case of CRX_FETCH_FAILED. + const int fetch_tries; + }; + // A callback that is called to indicate if ExtensionDownloader should ignore // the cached entry and download a new .crx file. typedef base::Callback<void(bool should_download)> InstallCallback; @@ -176,7 +195,8 @@ virtual void OnExtensionDownloadFailed(const ExtensionId& id, Error error, const PingResult& ping_result, - const std::set<int>& request_ids); + const std::set<int>& request_ids, + const FailureData& data); // Invoked if the extension had an update available and its crx was // successfully downloaded to |path|. |ownership_passed| is true if delegate
diff --git a/extensions/browser/updater/extension_downloader_test_helper.cc b/extensions/browser/updater/extension_downloader_test_helper.cc index bf20331..578c8f78 100644 --- a/extensions/browser/updater/extension_downloader_test_helper.cc +++ b/extensions/browser/updater/extension_downloader_test_helper.cc
@@ -30,7 +30,7 @@ void MockExtensionDownloaderDelegate::DelegateTo( ExtensionDownloaderDelegate* delegate) { - ON_CALL(*this, OnExtensionDownloadFailed(_, _, _, _)) + ON_CALL(*this, OnExtensionDownloadFailed(_, _, _, _, _)) .WillByDefault(Invoke( delegate, &ExtensionDownloaderDelegate::OnExtensionDownloadFailed)); ON_CALL(*this, OnExtensionDownloadStageChanged(_, _))
diff --git a/extensions/browser/updater/extension_downloader_test_helper.h b/extensions/browser/updater/extension_downloader_test_helper.h index ca72b48..f0bcf8f 100644 --- a/extensions/browser/updater/extension_downloader_test_helper.h +++ b/extensions/browser/updater/extension_downloader_test_helper.h
@@ -24,9 +24,12 @@ ~MockExtensionDownloaderDelegate(); - MOCK_METHOD4( - OnExtensionDownloadFailed, - void(const ExtensionId&, Error, const PingResult&, const std::set<int>&)); + MOCK_METHOD5(OnExtensionDownloadFailed, + void(const ExtensionId&, + Error, + const PingResult&, + const std::set<int>&, + const FailureData&)); MOCK_METHOD2(OnExtensionDownloadStageChanged, void(const ExtensionId&, Stage)); MOCK_METHOD2(OnExtensionDownloadCacheStatusRetrieved,
diff --git a/extensions/browser/updater/extension_downloader_unittest.cc b/extensions/browser/updater/extension_downloader_unittest.cc index 842d5bd..9cb5bbc1 100644 --- a/extensions/browser/updater/extension_downloader_unittest.cc +++ b/extensions/browser/updater/extension_downloader_unittest.cc
@@ -298,7 +298,8 @@ .WillOnce(Return(true)); // TODO(burunduk) Also check error (second argument). By now we return // CRX_FETCH_FAILED, but probably we may want to make another one. - EXPECT_CALL(delegate, OnExtensionDownloadFailed(kTestExtensionId, _, _, _)); + EXPECT_CALL(delegate, + OnExtensionDownloadFailed(kTestExtensionId, _, _, _, _)); AddFetchDataToDownloader(&helper, std::move(fetch));
diff --git a/gpu/config/gpu_info_collector_win.cc b/gpu/config/gpu_info_collector_win.cc index 34ef6889..87c6c0c 100644 --- a/gpu/config/gpu_info_collector_win.cc +++ b/gpu/config/gpu_info_collector_win.cc
@@ -45,7 +45,9 @@ kD3DFeatureLevelUnknown = 0, kD3DFeatureLevel_12_0 = 1, kD3DFeatureLevel_12_1 = 2, - kMaxValue = kD3DFeatureLevel_12_1, + kD3DFeatureLevel_11_0 = 3, + kD3DFeatureLevel_11_1 = 4, + kMaxValue = kD3DFeatureLevel_11_1, }; inline D3D12FeatureLevel ConvertToHistogramFeatureLevel( @@ -57,6 +59,10 @@ return D3D12FeatureLevel::kD3DFeatureLevel_12_0; case D3D_FEATURE_LEVEL_12_1: return D3D12FeatureLevel::kD3DFeatureLevel_12_1; + case D3D_FEATURE_LEVEL_11_0: + return D3D12FeatureLevel::kD3DFeatureLevel_11_0; + case D3D_FEATURE_LEVEL_11_1: + return D3D12FeatureLevel::kD3DFeatureLevel_11_1; default: NOTREACHED(); return D3D12FeatureLevel::kD3DFeatureLevelUnknown; @@ -169,8 +175,9 @@ } // The order of feature levels to attempt to create in D3D CreateDevice - const D3D_FEATURE_LEVEL feature_levels[] = {D3D_FEATURE_LEVEL_12_1, - D3D_FEATURE_LEVEL_12_0}; + const D3D_FEATURE_LEVEL feature_levels[] = { + D3D_FEATURE_LEVEL_12_1, D3D_FEATURE_LEVEL_12_0, D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0}; PFN_D3D12_CREATE_DEVICE D3D12CreateDevice = reinterpret_cast<PFN_D3D12_CREATE_DEVICE>( @@ -183,7 +190,7 @@ if (SUCCEEDED(D3D12CreateDevice(nullptr, level, _uuidof(ID3D12Device), nullptr))) { info->d3d12_feature_level = level; - info->supports_dx12 = true; + info->supports_dx12 = (level >= D3D_FEATURE_LEVEL_12_0) ? true : false; break; } }
diff --git a/infra/config/buckets/goma.star b/infra/config/buckets/goma.star index 9d419e3..59e40d9 100644 --- a/infra/config/buckets/goma.star +++ b/infra/config/buckets/goma.star
@@ -178,7 +178,6 @@ fyi_goma_rbe_canary_builder( name = 'Mac Builder (dbg) Goma RBE Canary (clobber)', cores = 4, - goma_backend = None, goma_jobs = goma.jobs.J80, os = os.MAC_DEFAULT, ) @@ -222,7 +221,6 @@ fyi_goma_rbe_canary_builder( name = 'mac-archive-rel-goma-rbe-canary', cores = 4, - goma_backend = None, goma_jobs = goma.jobs.J80, os = os.MAC_DEFAULT, ) @@ -358,7 +356,6 @@ fyi_goma_rbe_latest_client_builder( name = 'Mac Builder (dbg) Goma RBE Latest Client (clobber)', cores = 4, - goma_backend = None, goma_jobs = goma.jobs.J80, os = os.MAC_DEFAULT, ) @@ -416,7 +413,6 @@ fyi_goma_rbe_latest_client_builder( name = 'mac-archive-rel-goma-rbe-latest', cores = 4, - goma_backend = None, goma_jobs = goma.jobs.J80, os = os.MAC_DEFAULT, )
diff --git a/infra/config/buckets/try.star b/infra/config/buckets/try.star index dbc587a..2b42eca 100644 --- a/infra/config/buckets/try.star +++ b/infra/config/buckets/try.star
@@ -401,8 +401,6 @@ '.+/[+]/third_party/blink/renderer/core/paint/.+', '.+/[+]/third_party/blink/renderer/core/svg/.+', '.+/[+]/third_party/blink/renderer/platform/graphics/.+', - '.+/[+]/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint', - '.+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+', ], ), ) @@ -1215,8 +1213,8 @@ '.+/[+]/third_party/blink/renderer/core/paint/.+', '.+/[+]/third_party/blink/renderer/core/svg/.+', '.+/[+]/third_party/blink/renderer/platform/graphics/.+', - '.+/[+]/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint', - '.+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+', + '.+/[+]/third_party/blink/web_tests/FlagExpectations/composite-after-paint', + '.+/[+]/third_party/blink/web_tests/flag-specific/composite-after-paint/.+', ], ), ) @@ -1231,7 +1229,8 @@ '.+/[+]/third_party/blink/renderer/core/svg/.+', '.+/[+]/third_party/blink/renderer/platform/fonts/shaping/.+', '.+/[+]/third_party/blink/renderer/platform/graphics/.+', - '.+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/.+', + '.+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng', + '.+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+', ], ), )
diff --git a/infra/config/generated/commit-queue.cfg b/infra/config/generated/commit-queue.cfg index 8e893f2..f71b61f 100644 --- a/infra/config/generated/commit-queue.cfg +++ b/infra/config/generated/commit-queue.cfg
@@ -681,8 +681,6 @@ location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+" location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint" - location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+" > builders: < name: "chromium/try/linux-chromeos-compile-dbg" @@ -849,8 +847,8 @@ location_regexp: ".+/[+]/third_party/blink/renderer/core/paint/.+" location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint" - location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+" + location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/composite-after-paint" + location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/composite-after-paint/.+" > builders: < name: "chromium/try/linux_layout_tests_layout_ng_disabled" @@ -860,7 +858,8 @@ location_regexp: ".+/[+]/third_party/blink/renderer/core/svg/.+" location_regexp: ".+/[+]/third_party/blink/renderer/platform/fonts/shaping/.+" location_regexp: ".+/[+]/third_party/blink/renderer/platform/graphics/.+" - location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/.+" + location_regexp: ".+/[+]/third_party/blink/web_tests/FlagExpectations/disable-layout-ng" + location_regexp: ".+/[+]/third_party/blink/web_tests/flag-specific/disable-layout-ng/.+" > builders: < name: "chromium/try/linux_mojo"
diff --git a/infra/config/generated/cq-builders.md b/infra/config/generated/cq-builders.md index 9748939..dbe9cfa3 100644 --- a/infra/config/generated/cq-builders.md +++ b/infra/config/generated/cq-builders.md
@@ -227,8 +227,6 @@ * [`//third_party/blink/renderer/core/paint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/paint/) * [`//third_party/blink/renderer/core/svg/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/svg/) * [`//third_party/blink/renderer/platform/graphics/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/graphics/) - * [`//third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint) - * [`//third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/) * [linux_chromium_dbg_ng](https://ci.chromium.org/p/chromium/builders/try/linux_chromium_dbg_ng) ([definition](https://cs.chromium.org/search?q=package:%5Echromium$+file:/cq.star$+-file:/beta/+-file:/stable/+linux_chromium_dbg_ng)) ([matching builders](https://cs.chromium.org/search?q=+file:trybots.py+linux_chromium_dbg_ng)) @@ -241,8 +239,8 @@ * [`//third_party/blink/renderer/core/paint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/paint/) * [`//third_party/blink/renderer/core/svg/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/svg/) * [`//third_party/blink/renderer/platform/graphics/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/graphics/) - * [`//third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint) - * [`//third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/flag-specific/enable-blink-features=CompositeAfterPaint/) + * [`//third_party/blink/web_tests/FlagExpectations/composite-after-paint`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/FlagExpectations/composite-after-paint) + * [`//third_party/blink/web_tests/flag-specific/composite-after-paint/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/flag-specific/composite-after-paint/) * [linux_layout_tests_layout_ng_disabled](https://ci.chromium.org/p/chromium/builders/try/linux_layout_tests_layout_ng_disabled) ([definition](https://cs.chromium.org/search?q=package:%5Echromium$+file:/cq.star$+-file:/beta/+-file:/stable/+linux_layout_tests_layout_ng_disabled)) ([matching builders](https://cs.chromium.org/search?q=+file:trybots.py+linux_layout_tests_layout_ng_disabled)) @@ -253,7 +251,8 @@ * [`//third_party/blink/renderer/core/svg/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/svg/) * [`//third_party/blink/renderer/platform/fonts/shaping/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/fonts/shaping/) * [`//third_party/blink/renderer/platform/graphics/.+`](https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/graphics/) - * [`//third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/) + * [`//third_party/blink/web_tests/FlagExpectations/disable-layout-ng`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/FlagExpectations/disable-layout-ng) + * [`//third_party/blink/web_tests/flag-specific/disable-layout-ng/.+`](https://cs.chromium.org/chromium/src/third_party/blink/web_tests/flag-specific/disable-layout-ng/) * [linux_optional_gpu_tests_rel](https://ci.chromium.org/p/chromium/builders/try/linux_optional_gpu_tests_rel) ([definition](https://cs.chromium.org/search?q=package:%5Echromium$+file:/cq.star$+-file:/beta/+-file:/stable/+linux_optional_gpu_tests_rel)) ([matching builders](https://cs.chromium.org/search?q=+file:trybots.py+linux_optional_gpu_tests_rel))
diff --git a/infra/config/generated/cr-buildbucket.cfg b/infra/config/generated/cr-buildbucket.cfg index 1879a92..2511383 100644 --- a/infra/config/generated/cr-buildbucket.cfg +++ b/infra/config/generated/cr-buildbucket.cfg
@@ -10145,7 +10145,7 @@ name: "chromium" cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" cipd_version: "refs/heads/master" - properties_j: "$build/goma:{\"jobs\":80}" + properties_j: "$build/goma:{\"jobs\":80,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}" properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}" properties_j: "mastername:\"chromium.fyi\"" > @@ -10166,7 +10166,7 @@ name: "chromium" cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" cipd_version: "refs/heads/master" - properties_j: "$build/goma:{\"jobs\":80}" + properties_j: "$build/goma:{\"jobs\":80,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}" properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}" properties_j: "mastername:\"chromium.fyi\"" > @@ -11137,7 +11137,7 @@ name: "chromium" cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" cipd_version: "refs/heads/master" - properties_j: "$build/goma:{\"jobs\":80}" + properties_j: "$build/goma:{\"jobs\":80,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}" properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}" properties_j: "mastername:\"chromium.fyi\"" > @@ -11158,7 +11158,7 @@ name: "chromium" cipd_package: "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build" cipd_version: "refs/heads/master" - properties_j: "$build/goma:{\"jobs\":80}" + properties_j: "$build/goma:{\"jobs\":80,\"rpc_extra_params\":\"?prod\",\"server_host\":\"goma.chromium.org\"}" properties_j: "$kitchen:{\"devshell\":true,\"git_auth\":true}" properties_j: "mastername:\"chromium.fyi\"" >
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb index 2cdf2ce..82087d6 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ky.xtb
@@ -23,10 +23,10 @@ <translation id="4555020257205549924">Бул функция иштетилгенде, Chromium Google Котормочу аркылуу башка тилдерде жазылган барактарды которууну сунуштайт. <ph name="BEGIN_LINK" />Көбүрөөк маалымат<ph name="END_LINK" /></translation> <translation id="4681781466797808448">Chromium'дун сканерин күйгүзүү</translation> <translation id="4787850887676698916">Башка түзмөктөрүңүздөн Chromium аркылуу ачылган өтмөктөр ушул жерден көрүнөт.</translation> -<translation id="4999538639245140991">Сиз <ph name="SIGNOUT_MANAGED_DOMAIN" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу, Chromium'дагы дайындарыңыз бул түзмөктөн өчүрүлөт. Бирок дайындарыңыз Google аккаунтуңузда сакталып калат.</translation> +<translation id="4999538639245140991">Сиз <ph name="SIGNOUT_MANAGED_DOMAIN" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу, Chromium'дагы дайын-даректериңиз бул түзмөктөн өчүрүлөт. Бирок дайын-даректериңиз Google аккаунтуңузда сакталып калат.</translation> <translation id="5573014823074921752">Chromium'дан кеңеш. Өтмөктөгү башка параметрлерди көрүү үчүн Өтмөктөрдү көрсөтүү баскычын коё бербей басып туруңуз. Баскыч экраныңыздын төмөн же жогору жагындагы куралдар тилкесинде жайгашкан.</translation> <translation id="5862307444128926510">Chromium'га кош келиңиз</translation> -<translation id="5945387852661427312">Сиз <ph name="DOMAIN" /> доменинин администратору башкарган каттоо эсебине кирип жатасыз. Анын бул каттоо эсебине байланып кала турган Chromium дайындарыңызды башкаруу мүмкүнчүлүгү бар. Chromium каттоо эсебинен чыксаңыз, бул түзмөктөн дайындарыңыз жок кылынат, бирок алар Google Каттоо эсебиңизде сакталып кала берет.</translation> +<translation id="5945387852661427312">Сиз <ph name="DOMAIN" /> доменинин администратору башкарган каттоо эсебине кирип жатасыз. Анын бул каттоо эсебине байланып кала турган Chromium дайын-даректериңизды башкаруу мүмкүнчүлүгү бар. Chromium каттоо эсебинен чыксаңыз, бул түзмөктөн дайын-даректериңиз жок кылынат, бирок алар Google Каттоо эсебиңизде сакталып кала берет.</translation> <translation id="6068866989048414399">Chromium Тейлөө шарттары</translation> <translation id="6268381023930128611">Chromium'дан чыгасызбы?</translation> <translation id="6424492062988593837">Chromium жаңы эле жакшыртылды! Эми жаңы нускасы бар.</translation> @@ -40,9 +40,9 @@ <translation id="7400689562045506105">Chromium'ду каалаган жерден пайдаланыңыз</translation> <translation id="7674213385180944843">Жөндөөлөр > Купуялуулук > Камера > Chromium'ду ачып туруп, камераны иштетиңиз.</translation> <translation id="7746854981345936341">Chromium'дан кеңеш. Артка, Алдыга жана Издөө сыяктуу айрым баскычтар эми экраныңыздын төмөн жагында жайгашкан.</translation> -<translation id="786327964234957808">Шайкештирилүүчү каттоо эсебин <ph name="USER_EMAIL1" /> дарегинен <ph name="USER_EMAIL2" /> дарегине которуп жатасыз. Учурдагы Chromium дайындарыңыз <ph name="DOMAIN" /> тарабынан башкарылат. Ушуну менен бул түзмөктөн дайындарыңыз жок кылынат, бирок алар <ph name="USER_EMAIL1" /> дарегинде кала берет.</translation> +<translation id="786327964234957808">Шайкештирилүүчү каттоо эсебин <ph name="USER_EMAIL1" /> дарегинен <ph name="USER_EMAIL2" /> дарегине которуп жатасыз. Учурдагы Chromium дайын-даректериңиз <ph name="DOMAIN" /> тарабынан башкарылат. Ушуну менен бул түзмөктөн дайын-даректериңиз жок кылынат, бирок алар <ph name="USER_EMAIL1" /> дарегинде кала берет.</translation> <translation id="7890287942691234100">Chromium сканерин колдонуп баштоо</translation> -<translation id="8073677936375100957">Chromium'дагы дайындарыңыз бул түзмөктөн өчүрүлсүнбү?</translation> +<translation id="8073677936375100957">Chromium'дагы дайын-даректериңиз бул түзмөктөн өчүрүлсүнбү?</translation> <translation id="8175055321229419309">Кеңеш: <ph name="BEGIN_LINK" />Chromium'ду Dock панелине көчүрүңүз<ph name="END_LINK" /></translation> <translation id="8252885722420466166">Жайгашкан жериңиздин негизинде Chromium аркылуу жакшыраак Google тажрыйбасын алыңыз.</translation> <translation id="8586442755830160949">Автордук укук <ph name="YEAR" /> Chromium авторлору. Бардык укуктар корголгон.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb index ec3f0f6..f17d3fb 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ky.xtb
@@ -12,14 +12,14 @@ <translation id="2441696206556358796">Сүрөттөрдү сактоо үчүн, Жөндөөлөрдү таптап, Chrome'го сүрөттөрүңүздү колдонууга уруксат бериңиз.</translation> <translation id="2576431527583832481">Chrome жаңы эле жакшыртылды! Эми жаңы нускасы бар.</translation> <translation id="257708665678654955">Кийинки жолу Google Chrome ушул сайттагы <ph name="LANGUAGE_NAME" /> тилиндеги барактарды которууну сунуштасынбы?</translation> -<translation id="3030414234702425231">Сиз <ph name="SIGNOUT_MANAGED_DOMAIN" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу, Chrome'догу дайындарыңыз бул түзмөктөн өчүрүлөт. Бирок дайындарыңыз Google аккаунтуңузда сакталып калат.</translation> +<translation id="3030414234702425231">Сиз <ph name="SIGNOUT_MANAGED_DOMAIN" /> домениндеги аккаунтуңуздан чыгып жатканыңызга байланыштуу, Chrome'догу дайын-даректериңиз бул түзмөктөн өчүрүлөт. Бирок дайын-даректериңиз Google аккаунтуңузда сакталып калат.</translation> <translation id="3148688391461398285">Chrome'ду жайгашкан жериңизге ылайык пайдаланыңыз.</translation> <translation id="3167189358072330585">Каттоо эсебиңиз Google Chrome'до иштебейт. Домен администраторуңузга кайрылыңыз же кадимки Google каттоо эсебиңиз менен кириңиз.</translation> <translation id="3196546062792660320">Каттоо эсептериңизди желеге жайгаштыруу менен Chrome убакытыңызды үнөмдөйт. Каттоо эсептерин Жөндөөлөрдөн кошуп же алып салсаңыз болот.</translation> <translation id="3282568296779691940">Chrome'го кириңиз</translation> <translation id="3345341804167540816">Бүт жерде Chrome колдонуңуз</translation> <translation id="384394811301901750">Google Chrome камераны иштете албайт</translation> -<translation id="3980220367029651214">Шайкештирилүүчү каттоо эсебин <ph name="USER_EMAIL1" /> дарегинен <ph name="USER_EMAIL2" /> дарегине которуп жатасыз. Учурдагы Chrome дайындарыңыз <ph name="DOMAIN" /> тарабынан башкарылат. Ушуну менен бул түзмөктөн дайындарыңыз жок кылынат, бирок алар <ph name="USER_EMAIL1" /> дарегинде кала берет.</translation> +<translation id="3980220367029651214">Шайкештирилүүчү каттоо эсебин <ph name="USER_EMAIL1" /> дарегинен <ph name="USER_EMAIL2" /> дарегине которуп жатасыз. Учурдагы Chrome дайын-даректериңиз <ph name="DOMAIN" /> тарабынан башкарылат. Ушуну менен бул түзмөктөн дайын-даректериңиз жок кылынат, бирок алар <ph name="USER_EMAIL1" /> дарегинде кала берет.</translation> <translation id="3988789688219830639">Google Chrome сүрөттөрүңүздү же видеолоруңузду көрө албайт. Көрүү үчүн iOS Жөндөөлөрү > Купуялык > Сүрөттөргө өтүңүз.</translation> <translation id="4099578267706723511">Google'га колдонуу статистикасын жөнөтүп, ката жөнүндө кабарлап, Chrome өркүндөтүлүшүнө жардам бериңиз.</translation> <translation id="415767770115540173">Chrome'ду жайгашкан жериңизге ылайык пайдаланыңыз.</translation> @@ -35,8 +35,8 @@ <translation id="6036420186814142909">Google Chrome'до интернет дайындарыңызды башкарып, веббаракчаларды тез жүктөөгө жардам берген функциялар бар. <ph name="BEGIN_LINK" />Көбүрөөк билүү<ph name="END_LINK" /></translation> <translation id="6573431926118603307">Башка түзмөктөрүңүздөн Chrome аркылуу ачылган өтмөктөр ушул жерден көрүнөт.</translation> <translation id="6600954340915313787">Chrome'го көчүрүлдү</translation> -<translation id="6648150602980899529">Сиз <ph name="DOMAIN" /> тарабынан башкарылган каттоо эсеби менен кирип, анын администратор көзөмөлдөрүн Chrome дайындарына өткөрүп жатасыз. Дайындарыңыз бул каттоо эсебине биротоло байланып калат. Chrome каттоо эсебинен чыксаңыз, бул түзмөктөн дайындарыңыз жок кылынат, бирок Google Каттоо эсебинде сакталып кала берет.</translation> -<translation id="6676840375528380067">Chrome'догу дайындарыңыз бул түзмөктөн өчүрүлсүнбү?</translation> +<translation id="6648150602980899529">Сиз <ph name="DOMAIN" /> тарабынан башкарылган каттоо эсеби менен кирип, анын администратор көзөмөлдөрүн Chrome дайындарына өткөрүп жатасыз. Дайын-даректериңиз бул каттоо эсебине биротоло байланып калат. Chrome каттоо эсебинен чыксаңыз, бул түзмөктөн дайын-даректериңиз жок кылынат, бирок Google Каттоо эсебинде сакталып кала берет.</translation> +<translation id="6676840375528380067">Chrome'догу дайын-даректериңиз бул түзмөктөн өчүрүлсүнбү?</translation> <translation id="690638524486313356">Google Chrome Тейлөө шарттары</translation> <translation id="7165736900384873061">Google Chrome'дун QR сканнерин колдонуу</translation> <translation id="7172660552945675509">Кеңеш: <ph name="BEGIN_LINK" />Chrome'ду док бекетиңизге көчүрүңүз<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_af.xtb b/ios/chrome/app/strings/resources/ios_strings_af.xtb index 938add9..c7f360c9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_af.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_af.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Incognitosoektog</translation> <translation id="277771892408211951">Kies taal</translation> <translation id="2780046210906776326">Geen e-posrekeninge nie</translation> +<translation id="2781331604911854368">Aan</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Verlaat oortjiewisselaar</translation> <translation id="2830972654601096923">Bestuur adresse …</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Maak oortjies oop</translation> <translation id="3277021493514034324">Werfadres is gekopieer</translation> <translation id="3290875554372353449">Kies 'n rekening</translation> +<translation id="3311748811247479259">Af</translation> <translation id="3324193307694657476">Adres 2</translation> <translation id="3329904751041170572">Kon nie aan die bediener koppel nie.</translation> <translation id="3335947283844343239">Maak toegemaakte oortjie weer oop</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sinkroniseer tans jou oortjies …</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Kom meer te wete<ph name="END_LINK" /> oor voorgestelde inhoud</translation> <translation id="3494788280727468875">Bevestig die uitvee van blaaierdata</translation> +<translation id="35083190962747987">Maak ${url} oop</translation> <translation id="3519193562722059437">Maak 'n oortjie oop om deur die web te blaai.</translation> <translation id="3527085408025491307">Vouer</translation> <translation id="3529024052484145543">Nie veilig nie</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Installeer Google Drive</translation> <translation id="5083464117946352670">Kan nie lêergrootte bepaal nie.</translation> <translation id="5094827893301452931">Twiet is voltooi.</translation> +<translation id="5118764316110575523">Af</translation> <translation id="5127805178023152808">Sinkronisering is af</translation> <translation id="5132942445612118989">Sinkroniseer jou wagwoorde, geskiedenis en meer op alle toestelle</translation> <translation id="5140288047769711648">Chrome sal hierdie wagwoord vir jou onthou. Jy hoef dit nie te onthou nie.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Soek wagwoorde</translation> <translation id="5982717868370722439">Voeg bestaande data by <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Onlangs besoek</translation> +<translation id="5988851877894965432">Maak URL'e oop in Chrome</translation> <translation id="6012140227487808125">Enkripteer tans …</translation> <translation id="6021332621416007159">Maak oop in …</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nooit</translation> <translation id="7971521879845308059">Blokkeer opspringers</translation> <translation id="7982789257301363584">Netwerk</translation> +<translation id="800361585186029508">Maak die URL'e wat ingevoer is in Google Chrome oop.</translation> <translation id="8007420562015504427">Incognitosoektog</translation> <translation id="8019783059653722575">Dit laat jou foto's stoor en oplaai.</translation> <translation id="802154636333426148">Kon nie aflaai nie</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index 15c82871..7d9238e9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">ማንነት የማያሳውቅ ፍለጋ</translation> <translation id="277771892408211951">ቋንቋ ይምረጡ</translation> <translation id="2780046210906776326">ምንም የኢሜይል መለያዎች የሉም</translation> +<translation id="2781331604911854368">አብራ</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">ከየትር መቀያየሪያ ውጣ</translation> <translation id="2830972654601096923">አድራሻዎችን ያቀናብሩ...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">ክፍት ትሮች</translation> <translation id="3277021493514034324">የድር ጣቢያ አድራሻ ተቀድቷል</translation> <translation id="3290875554372353449">አንድ መለያ ይምረጡ</translation> +<translation id="3311748811247479259">ጠፍቷል</translation> <translation id="3324193307694657476">አድራሻ 2</translation> <translation id="3329904751041170572">ከአገልጋዩ ጋር መገናኘት አልቻለም።</translation> <translation id="3335947283844343239">የተዘጋውን ትር ዳግም ክፈት</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">የእርስዎን ትሮች በማሰመር ላይ...</translation> <translation id="3493531032208478708">ስለሚጠቆም ይዘት <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation> <translation id="3494788280727468875">የአሰሳ ውሂብን ማጽዳትን ያረጋግጡ</translation> +<translation id="35083190962747987">${url} ክፈት</translation> <translation id="3519193562722059437">ድሩን ለማሰስ ትር ይክፈቱ።</translation> <translation id="3527085408025491307">አቃፊ</translation> <translation id="3529024052484145543">ደህንነቱ አልተጠበቀም</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Driveን ጫን</translation> <translation id="5083464117946352670">የፋይል መጠን ማወቅ አልተቻለም።</translation> <translation id="5094827893301452931">Tweet ተጠናቅቋል።</translation> +<translation id="5118764316110575523">ጠፍቷል</translation> <translation id="5127805178023152808">አመሳስል ጠፍቷል</translation> <translation id="5132942445612118989">የእርስዎን የይለፍ ቃላት፣ ታሪክ እና ተጨማሪ ነገሮች በሁሉም መሣሪያዎች ላይ ያስምሩ</translation> <translation id="5140288047769711648">Chrome ይህን የይለፍ ቃል ለእርስዎ ያስታውሳል። እርስዎ ማስታወስ አያስፈልግዎትም።</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">የይለፍ ቃላትን ይፈልጉ</translation> <translation id="5982717868370722439">ነባሩን ውሂብ ወደ <ph name="USER_EMAIL" /> ያክሉ።</translation> <translation id="5984222099446776634">በቅርብ ጊዜ የተጎበኙ</translation> +<translation id="5988851877894965432">በChrome ውስጥ ዩአርኤሎችን ክፈት</translation> <translation id="6012140227487808125">በመመስጠር ላይ…</translation> <translation id="6021332621416007159">ክፈት በ...</translation> <translation id="6039429417015973673"><ph name="TITLE" />፣ <ph name="PUBLISHER_INFORMATION" />፣ <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">በፍጹም</translation> <translation id="7971521879845308059">ብቅ-ባዮችን አግድ</translation> <translation id="7982789257301363584">አውታረ መረብ</translation> +<translation id="800361585186029508">እንዲገቡ የተደረጉትን ዩአርኤሎች በGoogle Chrome ውስጥ ይከፍታል።</translation> <translation id="8007420562015504427">ማንነት የማያሳውቅ ፍለጋ</translation> <translation id="8019783059653722575">ይህ ፎቶዎችን እንዲያስቀምጡ እና እንዲሰቅሉ ያስችልዎታል።</translation> <translation id="802154636333426148">ማውረድ አልተሳካም</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb index ba2b6563..ed322e9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Търсене в режим „инкогнито“</translation> <translation id="277771892408211951">Избиране на език</translation> <translation id="2780046210906776326">Няма имейл адреси</translation> +<translation id="2781331604911854368">Вкл.</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Излизане от превключвателя на раздели</translation> <translation id="2830972654601096923">Управление на адресите...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Отворени раздели</translation> <translation id="3277021493514034324">Адресът на сайта бе копиран</translation> <translation id="3290875554372353449">Изберете профил</translation> +<translation id="3311748811247479259">Изключено</translation> <translation id="3324193307694657476">Адрес 2</translation> <translation id="3329904751041170572">Не можа да се установи връзка със сървъра.</translation> <translation id="3335947283844343239">Повторно отваряне на затворения раздел</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Разделите ви се синхронизират...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /> за предложеното съдържание</translation> <translation id="3494788280727468875">Потвърждаване на изчистването на данните за сърфирането</translation> +<translation id="35083190962747987">Отваряне на ${url}</translation> <translation id="3519193562722059437">Отворете раздел, за да сърфирате в мрежата.</translation> <translation id="3527085408025491307">Папка</translation> <translation id="3529024052484145543">Няма защита</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Инсталиране на Google Диск</translation> <translation id="5083464117946352670">Неизвестен файлов размер.</translation> <translation id="5094827893301452931">Съобщението в Twitter е завършено.</translation> +<translation id="5118764316110575523">Изкл.</translation> <translation id="5127805178023152808">Синхронизирането е изключено</translation> <translation id="5132942445612118989">Синхронизиране на паролите, историята ви и др. на всички устройства</translation> <translation id="5140288047769711648">Chrome ще запамети тази парола. Няма нужда да я помните.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Търсене в паролите</translation> <translation id="5982717868370722439">Добавяне на съществуващите данни към <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Наскоро посетени</translation> +<translation id="5988851877894965432">Отваряне на URL адреси в Chrome</translation> <translation id="6012140227487808125">Шифрова се…</translation> <translation id="6021332621416007159">Отваряне във...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Никога</translation> <translation id="7971521879845308059">Изск. прозорци: Блокиране</translation> <translation id="7982789257301363584">Мрежа</translation> +<translation id="800361585186029508">Въведените URL адреси се отварят в Google Chrome.</translation> <translation id="8007420562015504427">Търсене в режим „инкогнито“</translation> <translation id="8019783059653722575">Това ви позволява да запазвате и качвате снимки.</translation> <translation id="802154636333426148">Изтеглянето не бе успешно</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb index 2358897f..0aabdd9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Pretraživanje u anonimnom načinu rada</translation> <translation id="277771892408211951">Odabir jezika</translation> <translation id="2780046210906776326">Nema računa e-pošte</translation> +<translation id="2781331604911854368">Uključeno</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Napuštanje prebacivača kartica</translation> <translation id="2830972654601096923">Upravljajte adresama...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Otvorene kartice</translation> <translation id="3277021493514034324">Adresa web lokacije je kopirana</translation> <translation id="3290875554372353449">Odaberite račun</translation> +<translation id="3311748811247479259">Isključeno</translation> <translation id="3324193307694657476">2. red za adresu</translation> <translation id="3329904751041170572">Povezivanje s poslužiteljem nije moguće.</translation> <translation id="3335947283844343239">Ponovo otvori zatvorenu karticu</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sinhroniziranje kartica…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o predloženom sadržaju</translation> <translation id="3494788280727468875">Potvrda brisanja podataka pregledanja</translation> +<translation id="35083190962747987">Otvori ${url}</translation> <translation id="3519193562722059437">Otvorite karticu da pregledate web.</translation> <translation id="3527085408025491307">Folder</translation> <translation id="3529024052484145543">Nije sigurno</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instaliraj Google Disk</translation> <translation id="5083464117946352670">Nije moguće utvrditi veličinu fajla.</translation> <translation id="5094827893301452931">Tweet je završen.</translation> +<translation id="5118764316110575523">Isklj.</translation> <translation id="5127805178023152808">Sinkronizacija je isključena</translation> <translation id="5132942445612118989">Sinhronizacija lozinki, historije i ostalog na svim uređajima</translation> <translation id="5140288047769711648">Chrome će zapamtiti ovu zaporku umjesto vas. Ne morate je pamtiti.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Pretražite lozinke</translation> <translation id="5982717868370722439">Dodajte postojeće podatke na <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Nedavno posjećeno</translation> +<translation id="5988851877894965432">Otvori URL-ove u Chromeu</translation> <translation id="6012140227487808125">Šifriranje…</translation> <translation id="6021332621416007159">Otvori u aplikaciji...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nikada</translation> <translation id="7971521879845308059">Blokiranje skočnih prozora</translation> <translation id="7982789257301363584">Mreža</translation> +<translation id="800361585186029508">Otvara unesene URL-ove u Google Chromeu.</translation> <translation id="8007420562015504427">Pretraživanje u anonimnom načinu rada</translation> <translation id="8019783059653722575">Ovo vam omogućava da sačuvate i otpremite fotografije.</translation> <translation id="802154636333426148">Preuzimanje nije uspjelo</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 8f3b16c..efce150 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Cerca d'incògnit</translation> <translation id="277771892408211951">Selecciona l'idioma</translation> <translation id="2780046210906776326">Cap compte de correu</translation> +<translation id="2781331604911854368">Activat</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Surt del selector de pestanyes</translation> <translation id="2830972654601096923">Gestiona les adreces...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Pestanyes obertes</translation> <translation id="3277021493514034324">S'ha copiat l'adreça del lloc web</translation> <translation id="3290875554372353449">Tria un compte</translation> +<translation id="3311748811247479259">Desactivat</translation> <translation id="3324193307694657476">Adreça 2</translation> <translation id="3329904751041170572">No s'ha pogut connectar amb el servidor.</translation> <translation id="3335947283844343239">Torna a obrir la pestanya tancada</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">S'estan sincronitzant les pestanyes...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /> sobre el contingut suggerit</translation> <translation id="3494788280727468875">Confirma que vols esborrar les dades de navegació</translation> +<translation id="35083190962747987">Obre ${url}</translation> <translation id="3519193562722059437">Obriu una pestanya per navegar pel web.</translation> <translation id="3527085408025491307">Carpeta</translation> <translation id="3529024052484145543">No és segur</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instal. de Google Drive</translation> <translation id="5083464117946352670">No es determina mida fitxer.</translation> <translation id="5094827893301452931">S'ha completat el tuit.</translation> +<translation id="5118764316110575523">Desactivat</translation> <translation id="5127805178023152808">Sincronització desactivada</translation> <translation id="5132942445612118989">Sincronitza les contrasenyes, l'historial i altres elements en tots els dispositius</translation> <translation id="5140288047769711648">Chrome recordarà aquesta contrasenya. No cal que la memoritzis.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Cerca contrasenyes</translation> <translation id="5982717868370722439">Afegeix les dades existents a <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitats recentment</translation> +<translation id="5988851877894965432">Obre els URL a Chrome</translation> <translation id="6012140227487808125">S'està encriptant…</translation> <translation id="6021332621416007159">Obre a...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Mai</translation> <translation id="7971521879845308059">Bloqueig de finestres emerg.</translation> <translation id="7982789257301363584">Xarxa</translation> +<translation id="800361585186029508">Obre els URL introduïts a Google Chrome.</translation> <translation id="8007420562015504427">Cerca d'incògnit</translation> <translation id="8019783059653722575">Això et permet desar i penjar fotos.</translation> <translation id="802154636333426148">Error de baixada</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index 88f4d3c64..f8eef31 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Inkognitosuche</translation> <translation id="277771892408211951">Sprache wählen</translation> <translation id="2780046210906776326">Keine E-Mail-Konten vorhanden</translation> +<translation id="2781331604911854368">An</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Tab-Wechsler beenden</translation> <translation id="2830972654601096923">Adressen verwalten…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Geöffnete Tabs</translation> <translation id="3277021493514034324">Websiteadresse kopiert</translation> <translation id="3290875554372353449">Konto auswählen</translation> +<translation id="3311748811247479259">Aus</translation> <translation id="3324193307694657476">Adresse 2</translation> <translation id="3329904751041170572">Verbindung zum Server konnte nicht hergestellt werden.</translation> <translation id="3335947283844343239">Geschlossenen Tab wieder öffnen</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Tabs werden synchronisiert...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /> zu vorgeschlagenen Inhalten</translation> <translation id="3494788280727468875">Löschen der Browserdaten bestätigen</translation> +<translation id="35083190962747987">${url} öffnen</translation> <translation id="3519193562722059437">Öffnet einen Tab zum Surfen im Web</translation> <translation id="3527085408025491307">Ordner</translation> <translation id="3529024052484145543">Nicht sicher</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive installieren</translation> <translation id="5083464117946352670">Fehler bei Bestimmung der Dateigröße</translation> <translation id="5094827893301452931">Tweet gepostet</translation> +<translation id="5118764316110575523">Aus</translation> <translation id="5127805178023152808">Synchronisierung ist deaktiviert</translation> <translation id="5132942445612118989">Passwörter, Verlauf und mehr auf allen Geräten synchronisieren</translation> <translation id="5140288047769711648">Chrome speichert dieses Passwort für Sie. Sie müssen es sich nicht merken.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Passwörter suchen</translation> <translation id="5982717868370722439">Vorhandene Daten zu <ph name="USER_EMAIL" /> hinzufügen.</translation> <translation id="5984222099446776634">Kürzlich besucht</translation> +<translation id="5988851877894965432">URLs in Chrome öffnen</translation> <translation id="6012140227487808125">Wird verschlüsselt…</translation> <translation id="6021332621416007159">Öffnen in...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nie</translation> <translation id="7971521879845308059">Pop-ups blockieren</translation> <translation id="7982789257301363584">Netzwerk</translation> +<translation id="800361585186029508">Öffnet die eingegebenen URLs in Google Chrome.</translation> <translation id="8007420562015504427">Inkognitosuche</translation> <translation id="8019783059653722575">Dadurch können Sie Fotos speichern und hochladen.</translation> <translation id="802154636333426148">Downloadfehler</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb index f2b2bb80..0cd0b27 100644 --- a/ios/chrome/app/strings/resources/ios_strings_el.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Ανώνυμη αναζήτηση</translation> <translation id="277771892408211951">Επιλογή γλώσσας</translation> <translation id="2780046210906776326">Κανένας Λογαρ. Email</translation> +<translation id="2781331604911854368">Ενεργό</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Αποχώρηση από την εναλλαγή καρτελών</translation> <translation id="2830972654601096923">Διαχείριση διευθύνσεων…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Ανοικτές καρτέλες</translation> <translation id="3277021493514034324">Η διεύθυνση ιστοτόπου αντιγράφηκε</translation> <translation id="3290875554372353449">Επιλέξτε λογαριασμό</translation> +<translation id="3311748811247479259">Ανενεργό</translation> <translation id="3324193307694657476">Διεύθυνση 2</translation> <translation id="3329904751041170572">Δεν ήταν δυνατή η σύνδεση στο διακομιστή.</translation> <translation id="3335947283844343239">Εκ Νέου Άνοιγμα Κλεισμένης Καρτέλας</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Συγχρονισμός των καρτελών σας…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /> σχετικά με το προτεινόμενο περιεχόμενο</translation> <translation id="3494788280727468875">Επιβεβαίωση διαγραφής δεδομένων περιήγησης</translation> +<translation id="35083190962747987">Άνοιγμα ${url}</translation> <translation id="3519193562722059437">Άνοιγμα καρτέλας για περιήγηση στον ιστό</translation> <translation id="3527085408025491307">Φάκελος</translation> <translation id="3529024052484145543">Μη ασφαλής</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Εγκατάσταση Google Drive</translation> <translation id="5083464117946352670">Αδύν.προσδ.μεγέθους αρχείου.</translation> <translation id="5094827893301452931">Το Tweet ολοκληρώθηκε.</translation> +<translation id="5118764316110575523">Ανενεργό</translation> <translation id="5127805178023152808">Ο συγχρονισμός είναι απενεργοποιημένος</translation> <translation id="5132942445612118989">Συγχρονίστε κωδικούς πρόσβασης, ιστορικό και πολλά άλλα σε όλες τις συσκευές</translation> <translation id="5140288047769711648">Το Chrome θα απομνημονεύσει αυτόν τον κωδικό πρόσβασης για εσάς. Δεν χρειάζεται να τον θυμάστε.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Αναζήτηση κωδικών πρόσβασης</translation> <translation id="5982717868370722439">Προσθήκη υπαρχόντων δεδομένων στη διεύθυνση <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Πραγματοποιήθηκε επίσκεψη πρόσφατα</translation> +<translation id="5988851877894965432">Άνοιγμα URL στο Chrome</translation> <translation id="6012140227487808125">Κρυπτογράφηση…</translation> <translation id="6021332621416007159">Άνοιγμα σε...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -513,6 +518,7 @@ <translation id="7961015016161918242">Ποτέ</translation> <translation id="7971521879845308059">Αποκ. αναδυόμ.</translation> <translation id="7982789257301363584">Δίκτυο</translation> +<translation id="800361585186029508">Άνοιγμα των εισαγόμενων URL στο Google Chrome.</translation> <translation id="8007420562015504427">Ανώνυμη αναζήτηση</translation> <translation id="8019783059653722575">Σας επιτρέπει να αποθηκεύετε και να ανεβάζετε φωτογραφίες.</translation> <translation id="802154636333426148">Η λήψη απέτυχε</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb index e06ce32..af83d805 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Incognito Search</translation> <translation id="277771892408211951">Select language</translation> <translation id="2780046210906776326">No Email Accounts</translation> +<translation id="2781331604911854368">On</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Leave Tab Switcher</translation> <translation id="2830972654601096923">Manage Addresses…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Open Tabs</translation> <translation id="3277021493514034324">Site address copied</translation> <translation id="3290875554372353449">Choose an Account</translation> +<translation id="3311748811247479259">Off</translation> <translation id="3324193307694657476">Address 2</translation> <translation id="3329904751041170572">Could not connect to the server.</translation> <translation id="3335947283844343239">Re-open Closed Tab</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Syncing your tabs...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Find out more<ph name="END_LINK" /> about suggested content</translation> <translation id="3494788280727468875">Confirm Clear Browsing Data</translation> +<translation id="35083190962747987">Open ${url}</translation> <translation id="3519193562722059437">Open a tab to browse the web.</translation> <translation id="3527085408025491307">Folder</translation> <translation id="3529024052484145543">Not secure</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Install Google Drive</translation> <translation id="5083464117946352670">Cannot determine file size.</translation> <translation id="5094827893301452931">Tweet completed.</translation> +<translation id="5118764316110575523">Off</translation> <translation id="5127805178023152808">Sync is off</translation> <translation id="5132942445612118989">Sync your passwords, history and more on all devices</translation> <translation id="5140288047769711648">Chrome will remember this password for you. You don't have to remember it.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Search passwords</translation> <translation id="5982717868370722439">Add existing data to <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Recently Visited</translation> +<translation id="5988851877894965432">Open URLs in Chrome</translation> <translation id="6012140227487808125">Encrypting…</translation> <translation id="6021332621416007159">Open in...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Never</translation> <translation id="7971521879845308059">Block Pop-ups</translation> <translation id="7982789257301363584">Network</translation> +<translation id="800361585186029508">Opens the inputted URLs in Google Chrome.</translation> <translation id="8007420562015504427">Incognito Search</translation> <translation id="8019783059653722575">This lets you save and upload photos.</translation> <translation id="802154636333426148">Download failed</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index 534fa47..a9a595b7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Búsqueda en modo de incógnito</translation> <translation id="277771892408211951">Seleccionar idioma</translation> <translation id="2780046210906776326">No hay cuentas de correo</translation> +<translation id="2781331604911854368">Activado</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Salir de la función de cambio de pestaña</translation> <translation id="2830972654601096923">Gestionar tus direcciones...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Pestañas abiertas</translation> <translation id="3277021493514034324">Se ha copiado la dirección del sitio web</translation> <translation id="3290875554372353449">Elige una cuenta</translation> +<translation id="3311748811247479259">Desactivada</translation> <translation id="3324193307694657476">Dirección 2</translation> <translation id="3329904751041170572">No se ha podido establecer conexión con el servidor.</translation> <translation id="3335947283844343239">Volver a abrir pestaña cerrada</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sincronizando tus pestañas...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /> sobre el contenido sugerido</translation> <translation id="3494788280727468875">Confirma que quieres borrar los datos de navegación</translation> +<translation id="35083190962747987">Abrir ${url}</translation> <translation id="3519193562722059437">Abre una pestaña para navegar por la Web.</translation> <translation id="3527085408025491307">Carpeta</translation> <translation id="3529024052484145543">No es seguro</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instalar Google Drive</translation> <translation id="5083464117946352670">Tamaño de archivo desconocido.</translation> <translation id="5094827893301452931">Tuit enviado</translation> +<translation id="5118764316110575523">Desactivado</translation> <translation id="5127805178023152808">La sincronización está desactivada</translation> <translation id="5132942445612118989">Sincroniza tus contraseñas, tu historial y otras opciones en todos tus dispositivos</translation> <translation id="5140288047769711648">Chrome recordará esta contraseña. Así no tendrás que recordarla.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Buscar contraseñas</translation> <translation id="5982717868370722439">Añade los datos actuales a <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitados recientemente</translation> +<translation id="5988851877894965432">Abrir URLs en Chrome</translation> <translation id="6012140227487808125">Cifrando...</translation> <translation id="6021332621416007159">Abrir en...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nunca</translation> <translation id="7971521879845308059">Bloquear pop-ups</translation> <translation id="7982789257301363584">Red</translation> +<translation id="800361585186029508">Abre las URL introducidas en Google Chrome.</translation> <translation id="8007420562015504427">Búsqueda en modo de incógnito</translation> <translation id="8019783059653722575">Esto te permite guardar fotos y subirlas.</translation> <translation id="802154636333426148">No se ha podido descargar el archivo</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index b1ef824..9907812 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Inkognito režiimis otsing</translation> <translation id="277771892408211951">Valige keel</translation> <translation id="2780046210906776326">Pole meilikontosid</translation> +<translation id="2781331604911854368">Sees</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Välju vahelehtede vahetist</translation> <translation id="2830972654601096923">Halda aadresse …</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Avatud vahelehed</translation> <translation id="3277021493514034324">Saidi aadress on kopeeritud</translation> <translation id="3290875554372353449">Konto valimine</translation> +<translation id="3311748811247479259">Väljas</translation> <translation id="3324193307694657476">Aadress 2</translation> <translation id="3329904751041170572">Serveriga ei saanud ühendust.</translation> <translation id="3335947283844343239">Ava uuesti suletud vaheleht</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Vahelehtede sünkroonimine ...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /> soovitatud sisu kohta</translation> <translation id="3494788280727468875">Kinnita sirvimisandmete kustutamine</translation> +<translation id="35083190962747987">Avage ${url}</translation> <translation id="3519193562722059437">Avage vaheleht veebi sirvimiseks.</translation> <translation id="3527085408025491307">Kaust</translation> <translation id="3529024052484145543">Pole turvaline</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Installi Google Drive</translation> <translation id="5083464117946352670">Failisuurust ei saa tuvastada.</translation> <translation id="5094827893301452931">Säuts on valmis.</translation> +<translation id="5118764316110575523">Väljas</translation> <translation id="5127805178023152808">Sünkroonimine on välja lülitatud</translation> <translation id="5132942445612118989">Teie paroolide, ajaloo ja muude andmete sünkroonimine kõigis seadmetes</translation> <translation id="5140288047769711648">Chrome jätab selle parooli meelde. Teil ei ole vaja seda ise meelde jätta.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Otsi paroole</translation> <translation id="5982717868370722439">Lisage olemasolevad andmed e-posti aadressile <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Viimati külastatud</translation> +<translation id="5988851877894965432">Avage URL-id Chrome'is</translation> <translation id="6012140227487808125">Krüpteerimine …</translation> <translation id="6021332621416007159">Ava rakend. ...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Mitte kunagi</translation> <translation id="7971521879845308059">Hüpikute blok.</translation> <translation id="7982789257301363584">Võrk</translation> +<translation id="800361585186029508">Sisestatud URL-id avatakse Google Chrome'is.</translation> <translation id="8007420562015504427">Inkognito režiimis otsing</translation> <translation id="8019783059653722575">See võimaldab fotosid salvestada ja üles laadida.</translation> <translation id="802154636333426148">Allalaadimine ebaõnnestus</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb index eec8ab8..189a98d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Incognito-haku</translation> <translation id="277771892408211951">Valitse kieli</translation> <translation id="2780046210906776326">Ei sähköpostitilejä</translation> +<translation id="2781331604911854368">Päällä</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Sulje välilehden vaihtaja</translation> <translation id="2830972654601096923">Määritä osoitteet…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Avoimet välilehdet</translation> <translation id="3277021493514034324">Sivuston osoite kopioitu</translation> <translation id="3290875554372353449">Valitse tili</translation> +<translation id="3311748811247479259">Pois päältä</translation> <translation id="3324193307694657476">Osoite 2</translation> <translation id="3329904751041170572">Palvelimeen ei saada yhteyttä.</translation> <translation id="3335947283844343239">Avaa suljettu välilehti uudelleen</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Synkronoidaan välilehtiä…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Lue lisätietoja<ph name="END_LINK" /> suositellusta sisällöstä.</translation> <translation id="3494788280727468875">Vahvista selaustietojen poistaminen</translation> +<translation id="35083190962747987">Avaa ${url}</translation> <translation id="3519193562722059437">Avaa välilehti selailua varten.</translation> <translation id="3527085408025491307">Kansio</translation> <translation id="3529024052484145543">Ei turvallinen</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Asenna Google Drive</translation> <translation id="5083464117946352670">Tiedostokokoa ei voi määrittää</translation> <translation id="5094827893301452931">Tweet julkaistu.</translation> +<translation id="5118764316110575523">Pois päältä</translation> <translation id="5127805178023152808">Synkronointi on pois päältä</translation> <translation id="5132942445612118989">Synkronoi salasanasi, historiasi ja paljon muuta kaikilla laitteilla</translation> <translation id="5140288047769711648">Chrome muistaa tämän salasanan, jotta sinun ei tarvitse.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Hae salasanoista</translation> <translation id="5982717868370722439">Lisää olemassa olevat tiedot tilille <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Viimeksi vieraillut</translation> +<translation id="5988851877894965432">Avaa URL-osoitteet Chromessa</translation> <translation id="6012140227487808125">Salataan…</translation> <translation id="6021332621416007159">Avaa sovell...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Ei koskaan</translation> <translation id="7971521879845308059">Estä ponn.ikk.</translation> <translation id="7982789257301363584">Verkko</translation> +<translation id="800361585186029508">Avaa syötetyt URL-osoitteet Google Chromessa.</translation> <translation id="8007420562015504427">Incognito-haku</translation> <translation id="8019783059653722575">Tämän avulla voit tallentaa kuvia ja ladata niitä palvelimelle.</translation> <translation id="802154636333426148">Lataus epäonnistui.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gl.xtb b/ios/chrome/app/strings/resources/ios_strings_gl.xtb index 2c6b315..1942260d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gl.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Busca do modo de incógnito</translation> <translation id="277771892408211951">Seleccionar idioma</translation> <translation id="2780046210906776326">Non hai ningunha conta de correo electrónico</translation> +<translation id="2781331604911854368">Opción activada</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Saír da función de cambio de pestana</translation> <translation id="2830972654601096923">Xestionar enderezos…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Pestanas abertas</translation> <translation id="3277021493514034324">Copiouse o enderezo do sitio</translation> <translation id="3290875554372353449">Escolle unha conta</translation> +<translation id="3311748811247479259">Opción desactivada</translation> <translation id="3324193307694657476">Enderezo 2</translation> <translation id="3329904751041170572">Non se puido conectar ao servidor.</translation> <translation id="3335947283844343239">Abrir de novo a pestana pechada</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sincronizando as túas pestanas…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Máis información<ph name="END_LINK" /> acerca do contido suxerido</translation> <translation id="3494788280727468875">Confirmar a eliminación dos datos de navegación</translation> +<translation id="35083190962747987">Abrir ${url}</translation> <translation id="3519193562722059437">Abre unha pestana para examinar a web.</translation> <translation id="3527085408025491307">Cartafol</translation> <translation id="3529024052484145543">Contido non-seguro</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instalar Google Drive</translation> <translation id="5083464117946352670">Imposible determinar tamaño.</translation> <translation id="5094827893301452931">Completouse o chío.</translation> +<translation id="5118764316110575523">Opción desactivada</translation> <translation id="5127805178023152808">A sincronización está desactivada</translation> <translation id="5132942445612118989">Sincroniza os teus contrasinais, o historial e moito máis en todos os dispositivos</translation> <translation id="5140288047769711648">Chrome lembrará este contrasinal por ti. Non é necesario que o recordes.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Buscar contrasinais</translation> <translation id="5982717868370722439">Engade os datos existentes a <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitados recentemente</translation> +<translation id="5988851877894965432">Abrir URL en Chrome</translation> <translation id="6012140227487808125">Encriptando...</translation> <translation id="6021332621416007159">Abrir en...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" /> (<ph name="PUBLICATION_DATE" />)</translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nunca</translation> <translation id="7971521879845308059">Bloq. ventás em.</translation> <translation id="7982789257301363584">Rede</translation> +<translation id="800361585186029508">Abre os URL introducidos en Google Chrome.</translation> <translation id="8007420562015504427">Busca do modo de incógnito</translation> <translation id="8019783059653722575">Permíteche gardar e cargar fotos.</translation> <translation id="802154636333426148">Produciuse un erro na descarga</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index 71a23cf7..0c3ff27 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Anonimno pretraživanje</translation> <translation id="277771892408211951">Odaberite jezik</translation> <translation id="2780046210906776326">Nema računa e-pošte</translation> +<translation id="2781331604911854368">Uključeno</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Zatvori prekidač za prebacivanje između kartica</translation> <translation id="2830972654601096923">Upravljanje adresama...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Otvorene kartice</translation> <translation id="3277021493514034324">Adresa web-lokacije kopirana</translation> <translation id="3290875554372353449">Odabir računa</translation> +<translation id="3311748811247479259">Isključeno</translation> <translation id="3324193307694657476">2. adresni redak</translation> <translation id="3329904751041170572">Povezivanje s poslužiteljem nije moguće.</translation> <translation id="3335947283844343239">Ponovo otvori zatvorenu karticu</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sinkronizacija kartica...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /> o predloženom sadržaju</translation> <translation id="3494788280727468875">Potvrdi brisanje podataka o pregledavanju</translation> +<translation id="35083190962747987">Otvori ${url}</translation> <translation id="3519193562722059437">Otvorite karticu da biste pregledavali web.</translation> <translation id="3527085408025491307">Mapa</translation> <translation id="3529024052484145543">Nije sigurno</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instaliraj Google disk</translation> <translation id="5083464117946352670">Veličina datoteke nije utvrđena.</translation> <translation id="5094827893301452931">Tweet je dovršen.</translation> +<translation id="5118764316110575523">Isključeno</translation> <translation id="5127805178023152808">Sinkronizacija je isključena</translation> <translation id="5132942445612118989">Sinkronizirajte svoje zaporke, povijest i drugo na svim uređajima</translation> <translation id="5140288047769711648">Chrome će zapamtiti ovu zaporku umjesto vas. Ne morate je pamtiti.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Pretraživanje zaporki</translation> <translation id="5982717868370722439">Dodavanje postojećih podataka na račun <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Nedavno posjećeno</translation> +<translation id="5988851877894965432">Otvorite URL-ove u Chromeu</translation> <translation id="6012140227487808125">Enkripcija…</translation> <translation id="6021332621416007159">Otvori u...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nikad</translation> <translation id="7971521879845308059">Blokiraj skočne</translation> <translation id="7982789257301363584">Mreža</translation> +<translation id="800361585186029508">Otvara URL-ove unesene u Google Chrome.</translation> <translation id="8007420562015504427">Anonimno pretraživanje</translation> <translation id="8019783059653722575">To vam omogućuje spremanje i prijenos fotografija.</translation> <translation id="802154636333426148">Preuzimanje nije uspjelo</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index cbc20f9a..324363b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Keresés inkognitómódban</translation> <translation id="277771892408211951">Nyelv kiválasztása</translation> <translation id="2780046210906776326">Nincs e-mail fiók</translation> +<translation id="2781331604911854368">Be</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Kilépés a lapváltóból</translation> <translation id="2830972654601096923">Címek kezelése…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Megnyitott lapok</translation> <translation id="3277021493514034324">Webhely címe másolva</translation> <translation id="3290875554372353449">Válasszon fiókot</translation> +<translation id="3311748811247479259">Ki</translation> <translation id="3324193307694657476">Cím 2. sora</translation> <translation id="3329904751041170572">Nem lehet kapcsolódni a szerverhez.</translation> <translation id="3335947283844343239">Bezárt lap megnyitása</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Lapok szinkronizálása…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /> a javasolt tartalomról</translation> <translation id="3494788280727468875">Böngészési adatok törlésének megerősítése</translation> +<translation id="35083190962747987">${url} megnyitása</translation> <translation id="3519193562722059437">Nyisson meg egy lapot a böngészéshez.</translation> <translation id="3527085408025491307">Mappa</translation> <translation id="3529024052484145543">Nem biztonságos</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive telepítése</translation> <translation id="5083464117946352670">A fájlméret ismeretlen.</translation> <translation id="5094827893301452931">A Tweet kész.</translation> +<translation id="5118764316110575523">Ki</translation> <translation id="5127805178023152808">Szinkronizálás kikapcsolva</translation> <translation id="5132942445612118989">Jelszavak, előzmények és egyebek szinkronizálása valamennyi eszközén</translation> <translation id="5140288047769711648">A Chrome megjegyzi ezt a jelszót, így Önnek nem kell észben tartania.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Jelszavak keresése</translation> <translation id="5982717868370722439">Meglévő adatok hozzáadása a(z) <ph name="USER_EMAIL" /> fiókhoz.</translation> <translation id="5984222099446776634">Legutóbb látogatott</translation> +<translation id="5988851877894965432">URL-ek megnyitása a Chrome-ban</translation> <translation id="6012140227487808125">Titkosítás...</translation> <translation id="6021332621416007159">Megnyitás itt:</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Soha</translation> <translation id="7971521879845308059">Pop-upok tiltása</translation> <translation id="7982789257301363584">Hálózat</translation> +<translation id="800361585186029508">A megadott URL-eket a Google Chrome-ban nyitja meg.</translation> <translation id="8007420562015504427">Keresés inkognitómódban</translation> <translation id="8019783059653722575">Lehetővé teszi a fotók mentését és feltöltését.</translation> <translation id="802154636333426148">Nem sikerült a letöltés</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_is.xtb b/ios/chrome/app/strings/resources/ios_strings_is.xtb index ab9412fc..78db7caf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_is.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_is.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Leit í huliðsstillingu</translation> <translation id="277771892408211951">Velja tungumál</translation> <translation id="2780046210906776326">Engir tölvupóstreikningar</translation> +<translation id="2781331604911854368">Kveikt</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Fara úr flipavali</translation> <translation id="2830972654601096923">Stjórna heimilisföngum ...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Opna flipa</translation> <translation id="3277021493514034324">Veffang afritað</translation> <translation id="3290875554372353449">Veldu reikning</translation> +<translation id="3311748811247479259">Slökkt</translation> <translation id="3324193307694657476">Heimilisfang 2</translation> <translation id="3329904751041170572">Ekki var hægt að tengjast þjóninum.</translation> <translation id="3335947283844343239">Enduropna lokaðan flipa</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Samstillir flipa...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Frekari upplýsingar<ph name="END_LINK" /> um uppástungur að efni</translation> <translation id="3494788280727468875">Staðfesta hreinsun vefskoðunargagna</translation> +<translation id="35083190962747987">Opna ${url}</translation> <translation id="3519193562722059437">Opnaðu flipa til að vafra.</translation> <translation id="3527085408025491307">Mappa</translation> <translation id="3529024052484145543">Ekki öruggt</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Setja upp Google Drive</translation> <translation id="5083464117946352670">Ekki var hægt að ákvarða skráarstærð.</translation> <translation id="5094827893301452931">Tíst birt.</translation> +<translation id="5118764316110575523">Slökkt</translation> <translation id="5127805178023152808">Slökkt er á samstillingu</translation> <translation id="5132942445612118989">Samstilltu aðgangsorðin, ferilinn og fleira í öllum tækjum</translation> <translation id="5140288047769711648">Chrome man þetta aðgangsorð fyrir þig. Þú þarft ekki að leggja það á minnið.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Leita að aðgangsorðum</translation> <translation id="5982717868370722439">Bæta fyrirliggjandi gögnum við <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Nýlega heimsótt</translation> +<translation id="5988851877894965432">Opna vefslóðir í Chrome</translation> <translation id="6012140227487808125">Dulkóðar…</translation> <translation id="6021332621416007159">Opna í...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Aldrei</translation> <translation id="7971521879845308059">Útiloka sprettiglugga</translation> <translation id="7982789257301363584">Símkerfi</translation> +<translation id="800361585186029508">Opnar innslegnar vefslóðir í Google Chrome.</translation> <translation id="8007420562015504427">Leit í huliðsstillingu</translation> <translation id="8019783059653722575">Með þessu móti geturðu vistað myndir og hlaðið þeim upp.</translation> <translation id="802154636333426148">Niðurhal mistókst</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index b7833a3..dc702601 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Ricerca in incognito</translation> <translation id="277771892408211951">Seleziona lingua</translation> <translation id="2780046210906776326">Nessun account email</translation> +<translation id="2781331604911854368">On</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Chiudi selettore di schede</translation> <translation id="2830972654601096923">Gestisci indirizzi…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Schede aperte</translation> <translation id="3277021493514034324">Indirizzo del sito copiato</translation> <translation id="3290875554372353449">Scegli un account</translation> +<translation id="3311748811247479259">Off</translation> <translation id="3324193307694657476">Indirizzo 2</translation> <translation id="3329904751041170572">Connessione al server non riuscita.</translation> <translation id="3335947283844343239">Riapri scheda chiusa</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sincronizzazione delle schede...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /> sui contenuti suggeriti</translation> <translation id="3494788280727468875">Conferma cancellazione dati di navigazione</translation> +<translation id="35083190962747987">Apri ${url}</translation> <translation id="3519193562722059437">Apri una scheda per navigare sul Web.</translation> <translation id="3527085408025491307">Cartella</translation> <translation id="3529024052484145543">Non sicuro</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Installa Google Drive</translation> <translation id="5083464117946352670">Impossibile stabilire le dimensioni del file.</translation> <translation id="5094827893301452931">Tweet completato.</translation> +<translation id="5118764316110575523">Off</translation> <translation id="5127805178023152808">La sincronizzazione è disattivata</translation> <translation id="5132942445612118989">Sincronizza le tue password, la tua cronologia e altro su tutti i tuoi dispositivi</translation> <translation id="5140288047769711648">Chrome memorizzerà la password. Non è necessario ricordarla.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Cerca password</translation> <translation id="5982717868370722439">Aggiungi dati esistenti a <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitati di recente</translation> +<translation id="5988851877894965432">Apri URL in Chrome</translation> <translation id="6012140227487808125">Crittografia…</translation> <translation id="6021332621416007159">Apri in...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Mai</translation> <translation id="7971521879845308059">Blocca popup</translation> <translation id="7982789257301363584">Rete</translation> +<translation id="800361585186029508">Consente di aprire gli URL inseriti in Google Chrome.</translation> <translation id="8007420562015504427">Ricerca in incognito</translation> <translation id="8019783059653722575">In questo modo puoi salvare e caricare foto.</translation> <translation id="802154636333426148">Download non riuscito</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index fc3c205..c65be72 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">חיפוש במצב גלישה בסתר</translation> <translation id="277771892408211951">בחירת שפה</translation> <translation id="2780046210906776326">אין חשבונות אימייל</translation> +<translation id="2781331604911854368">מופעל</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">צא מ-Tab Switcher</translation> <translation id="2830972654601096923">ניהול כתובות...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">כרטיסיות פתוחות</translation> <translation id="3277021493514034324">כתובת האתר הועתקה</translation> <translation id="3290875554372353449">בחירת חשבון</translation> +<translation id="3311748811247479259">כבוי</translation> <translation id="3324193307694657476">כתובת, שורה 2</translation> <translation id="3329904751041170572">לא ניתן להתחבר לשרת.</translation> <translation id="3335947283844343239">פתח מחדש כרטיסייה שנסגרה</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">מסנכרן את הכרטיסיות שלך...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /> על הצעות לתוכן</translation> <translation id="3494788280727468875">אישור הניקוי של נתוני הגלישה</translation> +<translation id="35083190962747987">פתיחה של ${url}</translation> <translation id="3519193562722059437">פתח כרטיסייה כדי לגלוש באינטרנט.</translation> <translation id="3527085408025491307">תיקיה</translation> <translation id="3529024052484145543">לא מאובטח</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">התקן את Google Drive</translation> <translation id="5083464117946352670">גודל הקובץ אינו ידוע.</translation> <translation id="5094827893301452931">הציוץ בוצע.</translation> +<translation id="5118764316110575523">כבוי</translation> <translation id="5127805178023152808">סנכרון כבוי</translation> <translation id="5132942445612118989">סנכרון הסיסמאות, ההיסטוריה ונתונים נוספים בכל המכשירים</translation> <translation id="5140288047769711648">Chrome ישמור את הסיסמה הזאת בשבילך. אין צורך לזכור אותה.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">חיפוש בסיסמאות</translation> <translation id="5982717868370722439">הוסף נתונים קיימים אל <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">ביקרת לאחרונה</translation> +<translation id="5988851877894965432">פתיחת כתובות URL ב-Chrome</translation> <translation id="6012140227487808125">מצפין…</translation> <translation id="6021332621416007159">פתח ב...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">אף פעם</translation> <translation id="7971521879845308059">חסום חלונות קופצים</translation> <translation id="7982789257301363584">רשת</translation> +<translation id="800361585186029508">פתיחת כתובות ה-URL שהוזנו ב-Google Chrome.</translation> <translation id="8007420562015504427">חיפוש במצב גלישה בסתר</translation> <translation id="8019783059653722575">אישור זה מאפשר לך לשמור ולהעלות תמונות.</translation> <translation id="802154636333426148">ההורדה נכשלה</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ka.xtb b/ios/chrome/app/strings/resources/ios_strings_ka.xtb index 917e38b..2bf563b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ka.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ka.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">ინკოგნიტო ძიება</translation> <translation id="277771892408211951">აირჩიეთ ენა</translation> <translation id="2780046210906776326">ელფოსტის ანგარიშები არ არის</translation> +<translation id="2781331604911854368">ჩართული</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">ჩანართების გადამრთველიდან გამოსვლა</translation> <translation id="2830972654601096923">მისამართების მართვა…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">გახსნილი ჩანართები</translation> <translation id="3277021493514034324">გვერდის მისამართი დაკოპირდა</translation> <translation id="3290875554372353449">აირჩიეთ ანგარიში</translation> +<translation id="3311748811247479259">გამორთული</translation> <translation id="3324193307694657476">მისამართი 2</translation> <translation id="3329904751041170572">ვერ დაუკავშირდა სერვერს.</translation> <translation id="3335947283844343239">&დახურული ჩანართის ხელახლა გახსნა</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">თქვენი ჩანართების სინქრონიზაცია…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />შეიტყვეთ მეტი<ph name="END_LINK" /> შემოთავაზებული კონტენტის შესახებ</translation> <translation id="3494788280727468875">დათვალიერების მონაცემების გასუფთავების დადასტურება</translation> +<translation id="35083190962747987">${url}-ის გახსნა</translation> <translation id="3519193562722059437">ვების დასათვალიერებლად გახსენით ჩანართი.</translation> <translation id="3527085408025491307">საქაღალდე</translation> <translation id="3529024052484145543">დაუცველი</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive-ის ინსტალაცია</translation> <translation id="5083464117946352670">ფაილის ზომის განსაზღვრა შეუძლებელია.</translation> <translation id="5094827893301452931">ტვიტი დასრულებულია.</translation> +<translation id="5118764316110575523">გამორთული</translation> <translation id="5127805178023152808">სინქრონიზაცია გამორთულია</translation> <translation id="5132942445612118989">მოახდინეთ თქვენი პაროლების, ისტორიისა და სხვა კონტენტის სინქრონიზაცია თქვენს ყველა მოწყობილობაზე</translation> <translation id="5140288047769711648">Chrome დაიმახსოვრებს ამ პაროლს. თქვენ მისი დამახსოვრება არ გჭირდებათ.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">პაროლებში ძიება</translation> <translation id="5982717868370722439">არსებული მონაცემების <ph name="USER_EMAIL" />-ში დამატება.</translation> <translation id="5984222099446776634">ახლახანს მონახულებული</translation> +<translation id="5988851877894965432">URL-ების გახსნა Chrome-ში</translation> <translation id="6012140227487808125">მიმდინარეობს დაშიფვრა…</translation> <translation id="6021332621416007159">გახსნა…</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">არასოდეს</translation> <translation id="7971521879845308059">კონტექსტური ფანჯრების დაბლოკვა</translation> <translation id="7982789257301363584">ქსელი</translation> +<translation id="800361585186029508">მითითებულ URL-ებს Google Chrome-ში გახსნის.</translation> <translation id="8007420562015504427">ინკოგნიტო ძიება</translation> <translation id="8019783059653722575">საშუალებას გაძლევთ, შეინახოთ და ატვირთოთ ფოტოები.</translation> <translation id="802154636333426148">ჩამოტვირთვა ვერ მოხერხდა</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ky.xtb b/ios/chrome/app/strings/resources/ios_strings_ky.xtb index 64a8105d..3520971 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ky.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ky.xtb
@@ -270,7 +270,7 @@ <translation id="4659667755519643272">Өтмөк которуштургучка кирүү</translation> <translation id="4666531726415300315"><ph name="EMAIL" /> менен кирдиңиз. -Дайындарыңыз купуя сөз айкашы менен шифрленген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> +Дайын-даректериңиз купуя сөз айкашы менен шифрленген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> <translation id="4689564913179979534">Төлөм ыкмаларын башкаруу…</translation> <translation id="473775607612524610">Жаңыртуу</translation> <translation id="4747097190499141774">Купуя сөз айкашы менен шифрлөө Google Pay'деги төлөм ыкмалары менен даректерине карата колдонулбайт. Шифрленген дайындарыңызды купуя сөз айкашын билген адам гана окуй алат. Бул купуя сөз айкашы Google'га жөнөтүлбөйт же анда сакталбайт. Эгер купуя сөз айкашыңызды унутуп калсаңыз, шайкештирүүнү баштапкы абалга келтиришиңиз керек болот. <ph name="BEGIN_LINK" />Кеңири маалымат<ph name="END_LINK" /></translation> @@ -403,7 +403,7 @@ <translation id="6417838470969808600">Сизде <ph name="USER_EMAIL1" /> каттоо эсебинин кыстармалары, таржымалдары, сырсөздөрү жана башка жөндөөлөрү бар.</translation> <translation id="641799622251403418"><ph name="EMAIL" /> менен кирдиңиз. -Дайындарыңыз саат <ph name="TIME" /> купуя сөз айкашы менен шифрлеген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> +Дайын-даректериңиз саат <ph name="TIME" /> купуя сөз айкашы менен шифрлеген. Шайкештирип баштоо үчүн аны киргизиңиз.</translation> <translation id="6418346271604475326">PDF даярдалууда</translation> <translation id="6434591244308415567">Ката кетти. Бир аздан кийин кайра аракет кылыңыз.</translation> <translation id="6445051938772793705">Өлкө</translation> @@ -475,7 +475,7 @@ <translation id="7383797227493018512">Окуу тизмеси</translation> <translation id="7400418766976504921">URL</translation> <translation id="7409985198648820906"><ph name="UNREAD_COUNT" /> окула элек макала.</translation> -<translation id="7425346204213733349">Кыстармаларыңызга, таржымалыңызга, сырсөздөрүңүзгө жана башка жөндөөлөргө киргизилген өзгөртүүлөр Google Каттоо эсебиңиз менен шайкештирилбейт. Ал эми учурдагы дайындарыңыз Google Каттоо эсебиңизде сакталып кала берет.</translation> +<translation id="7425346204213733349">Кыстармаларыңызга, таржымалыңызга, сырсөздөрүңүзгө жана башка жөндөөлөргө киргизилген өзгөртүүлөр Google Каттоо эсебиңиз менен шайкештирилбейт. Ал эми учурдагы дайын-даректериңиз Google Каттоо эсебиңизде сакталып кала берет.</translation> <translation id="7454057999980797137">Өлкө/Округ</translation> <translation id="7456847797759667638">Жайгашкан жерди ачуу…</translation> <translation id="7460314822154045102">Камераны колдонуу</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index b9b5d0f..00647c5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Paieška inkognito režimu</translation> <translation id="277771892408211951">Kalbos pasirinkimas</translation> <translation id="2780046210906776326">Nėra el. pašto pask.</translation> +<translation id="2781331604911854368">Įjungta</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Išjungti skirtukų perjungiklį</translation> <translation id="2830972654601096923">Tvarkyti adresus...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Atidaryti skirtukai</translation> <translation id="3277021493514034324">Svetainės adresas nukopijuotas</translation> <translation id="3290875554372353449">Pasirinkite paskyrą</translation> +<translation id="3311748811247479259">Išjungta</translation> <translation id="3324193307694657476">2 adreso eil.</translation> <translation id="3329904751041170572">Nepavyko prisijungti prie serverio.</translation> <translation id="3335947283844343239">Iš naujo atidarykite uždarytą skirtuką</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sinchronizuojami skirtukai...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /> apie siūlomą turinį</translation> <translation id="3494788280727468875">Patvirtinti naršymo duomenų išvalymą</translation> +<translation id="35083190962747987">Atidaryti ${url}</translation> <translation id="3519193562722059437">Norėdami naršyti žiniatinklį, atidarykite skirtuką.</translation> <translation id="3527085408025491307">Aplankas</translation> <translation id="3529024052484145543">Nesaugu</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Įdiegti „Google“ diską</translation> <translation id="5083464117946352670">Nepav. nustatyti failo dydžio.</translation> <translation id="5094827893301452931">„Tweet“ įrašas paskelbtas.</translation> +<translation id="5118764316110575523">Išjungta</translation> <translation id="5127805178023152808">Sinchronizavimas išjungtas</translation> <translation id="5132942445612118989">Sinchronizuokite slaptažodžius, istoriją ir daugiau visuose įrenginiuose</translation> <translation id="5140288047769711648">„Chrome“ įsimins šį slaptažodį už jus. Jums nereikia jo prisiminti.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Ieškoti slaptažodžių</translation> <translation id="5982717868370722439">Pridėti esamus duomenis prie <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Neseniai lankyta</translation> +<translation id="5988851877894965432">Atidaryti URL naršyklėje „Chrome“</translation> <translation id="6012140227487808125">Šifruojama...</translation> <translation id="6021332621416007159">Atidaryti...</translation> <translation id="6039429417015973673">„<ph name="TITLE" />“, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Niekada</translation> <translation id="7971521879845308059">Blok. iššok. l.</translation> <translation id="7982789257301363584">Tinklas</translation> +<translation id="800361585186029508">Atidaromi įvesti URL naršyklėje „Google Chrome“.</translation> <translation id="8007420562015504427">Paieška inkognito režimu</translation> <translation id="8019783059653722575">Taip galite išsaugoti ir įkelti nuotraukas.</translation> <translation id="802154636333426148">Įvyko atsisiuntimo klaida</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mk.xtb b/ios/chrome/app/strings/resources/ios_strings_mk.xtb index 8af6dfe3..0df954a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mk.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Пребарување во режимот „Инкогнито“</translation> <translation id="277771892408211951">Изберете јазик</translation> <translation id="2780046210906776326">Нема сметки за е-пошта</translation> +<translation id="2781331604911854368">Вклучено</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Излези од менувачот на картички</translation> <translation id="2830972654601096923">Управувајте со адресите…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Отворени картички</translation> <translation id="3277021493514034324">Адресата на сајтот е копирана</translation> <translation id="3290875554372353449">Изберете сметка</translation> +<translation id="3311748811247479259">Исклучено</translation> <translation id="3324193307694657476">Адреса 2</translation> <translation id="3329904751041170572">Не можеше да се поврзе на серверот.</translation> <translation id="3335947283844343239">Повторно отвори затворена картичка</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Синхронизирање на картичките...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Дознајте повеќе<ph name="END_LINK" /> за предложените содржини</translation> <translation id="3494788280727468875">Одобри го чистењето на податоците од прелистување</translation> +<translation id="35083190962747987">Отвори ${url}</translation> <translation id="3519193562722059437">Отворете картичка за да прелистувате на интернет.</translation> <translation id="3527085408025491307">Папка</translation> <translation id="3529024052484145543">Небезбедно</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Инсталирајте Диск на Google</translation> <translation id="5083464117946352670">Не може да утврди големина на датотека.</translation> <translation id="5094827893301452931">Твитот е завршен.</translation> +<translation id="5118764316110575523">Исклучено</translation> <translation id="5127805178023152808">Синхронизацијата е исклучена</translation> <translation id="5132942445612118989">Синхронизирајте ги лозинките, историјата и друго на сите уреди</translation> <translation id="5140288047769711648">Chrome ќе ја запомни оваа лозинка за вас. Нема потреба и вие да ја помните.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Пребарајте лозинки</translation> <translation id="5982717868370722439">Додајте ги постоечките податоци во <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Неодамна посетени</translation> +<translation id="5988851877894965432">Отвори ги URL-адресите во Chrome</translation> <translation id="6012140227487808125">Се шифрира...</translation> <translation id="6021332621416007159">Отвори во...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Никогаш</translation> <translation id="7971521879845308059">Блокирај појавни прозорци</translation> <translation id="7982789257301363584">Мрежа</translation> +<translation id="800361585186029508">Ги отвора внесените URL-адреси во Google Chrome.</translation> <translation id="8007420562015504427">Инкогнито пребарување</translation> <translation id="8019783059653722575">Ова ви овозможува да зачувувате и да поставувате фотографии.</translation> <translation id="802154636333426148">Неуспешно преземање</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 41628fe6..39fa639 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Carian Inkognito</translation> <translation id="277771892408211951">Pilih Bahasa</translation> <translation id="2780046210906776326">Tiada Akaun E-mel</translation> +<translation id="2781331604911854368">Hidupkan</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Tinggalkan Penukar Tab</translation> <translation id="2830972654601096923">Urus Alamat...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Tab Terbuka</translation> <translation id="3277021493514034324">Alamat tapak disalin</translation> <translation id="3290875554372353449">Pilih Akaun</translation> +<translation id="3311748811247479259">Mati</translation> <translation id="3324193307694657476">Alamat 2</translation> <translation id="3329904751041170572">Tidak dapat menyambung ke pelayan.</translation> <translation id="3335947283844343239">Buka Semula Tab Yang Ditutup</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Menyegerakkan tab anda...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /> tentang kandungan yang disyorkan</translation> <translation id="3494788280727468875">Sahkan Kosongkan Data Semakan Imbas.</translation> +<translation id="35083190962747987">Buka ${url}</translation> <translation id="3519193562722059437">Buka tab untuk menyemak imbas web.</translation> <translation id="3527085408025491307">Folder</translation> <translation id="3529024052484145543">Tidak selamat</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Pasang Google Drive</translation> <translation id="5083464117946352670">Tidak dapat menentukan saiz fail.</translation> <translation id="5094827893301452931">Tweet selesai.</translation> +<translation id="5118764316110575523">Mati</translation> <translation id="5127805178023152808">Penyegerakan dimatikan</translation> <translation id="5132942445612118989">Segerakkan kata laluan, sejarah & pelbagai lagi pada semua peranti</translation> <translation id="5140288047769711648">Chrome akan mengingati kata laluan ini untuk anda. Anda tidak perlu mengingatnya.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Cari Kata Laluan</translation> <translation id="5982717868370722439">Tambahkan data sedia ada pada <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Dilawati Baru-baru Ini</translation> +<translation id="5988851877894965432">Buka URL dalam Chrome</translation> <translation id="6012140227487808125">Menyulitkan...</translation> <translation id="6021332621416007159">Buka dalam...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Tidak sama sekali</translation> <translation id="7971521879845308059">Sekat P/Timbul</translation> <translation id="7982789257301363584">Rangkaian</translation> +<translation id="800361585186029508">Membuka URL yang dimasukkan dalam Google Chrome.</translation> <translation id="8007420562015504427">Carian Inkognito</translation> <translation id="8019783059653722575">Langkah ini membolehkan anda menyimpan dan memuat naik foto.</translation> <translation id="802154636333426148">Muat turun gagal</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_my.xtb b/ios/chrome/app/strings/resources/ios_strings_my.xtb index 1383139b..1993b30 100644 --- a/ios/chrome/app/strings/resources/ios_strings_my.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_my.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">ရုပ်ဖျက်မုဒ်ဖြင့် ရှာရန်</translation> <translation id="277771892408211951">ဘာသာစကား ရွေးချယ်ခြင်း</translation> <translation id="2780046210906776326">အီးမေးလ် အကောင့်များ မရှိ</translation> +<translation id="2781331604911854368">ဖွင့်ထားသည်</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">တဲဘ် ခလုတ်ကို ထားရစ်ခဲ့ရန်</translation> <translation id="2830972654601096923">လိပ်စာများ စီမံရန်...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">တဲဘ်များ ဖွင့်ရန်</translation> <translation id="3277021493514034324">ဝဘ်ဆိုက်လိပ်စာကို မိတ္တူကူးယူထားသည်</translation> <translation id="3290875554372353449">'အကောင့်' တစ်ခု ရွေးရန်</translation> +<translation id="3311748811247479259">ပိတ်ထားသည်</translation> <translation id="3324193307694657476">လိပ်စာ 2</translation> <translation id="3329904751041170572">ဆာဗာသို့ ချိတ်ဆက်၍ မရနိုင်ပါ။</translation> <translation id="3335947283844343239">ပိတ်ထားသည့် တဲဘ်ကို ပြန်ဖွင့်ရန်</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">သင်၏ တဲဘ်များကို စင့်က်လုပ်နေ...</translation> <translation id="3493531032208478708">အကြံပြုထားသည့် အကြောင်းအရာအကြောင်း <ph name="BEGIN_LINK" />ပိုမိုလေ့လာရန်<ph name="END_LINK" /></translation> <translation id="3494788280727468875">ဖွင့်ကြည့်ထားသည့်မှတ်တမ်းဒေတာများကို ရှင်းလင်းလိုကြောင်း အတည်ပြုရန်</translation> +<translation id="35083190962747987">${url} ကို ဖွင့်ရန်</translation> <translation id="3519193562722059437">ဝဘ်ကို ကြည့်ရန် တဘ်တစ်ခု ဖွင့်ပါ။</translation> <translation id="3527085408025491307">ဖိုင်တွဲ</translation> <translation id="3529024052484145543">လုံခြုံမှုမရှိပါ</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive တပ်ဆင်မည်</translation> <translation id="5083464117946352670">ဖိုင်အရွယ်အစားမဆုံးဖြတ်နိုင်ပါ။</translation> <translation id="5094827893301452931">Tweet ပြီးစီးပါပြီ။</translation> +<translation id="5118764316110575523">ပိတ်ထားသည်</translation> <translation id="5127805178023152808">စင့် ပိတ်ထား၏</translation> <translation id="5132942445612118989">စက်ပစ္စည်းအားလုံးတွင် သင်၏ စကားဝှက်၊ မှတ်တမ်းနှင့် အခြားအရာများ စင့်ခ်လုပ်ပါ</translation> <translation id="5140288047769711648">Chrome က ဤစကားဝှက်ကို သင့်အတွက် မှတ်ထားပေးပါမည်။ သင်မှတ်ထားစရာ မလိုပါ။</translation> @@ -362,6 +366,7 @@ <translation id="5979837087407522202">စကားဝှက်များ ရှာရန်</translation> <translation id="5982717868370722439">လက်ရှိဒေတာများကို <ph name="USER_EMAIL" /> သို့ ထည့်ပါ။</translation> <translation id="5984222099446776634">မကြာသေးခင်က လည်ပတ်ခဲ့သော</translation> +<translation id="5988851877894965432">Chrome တွင် URL များ ဖွင့်ရန်</translation> <translation id="6012140227487808125">လျှို့ဝှက်သည့်အသွင်သို့ ပြောင်းနေသည်…</translation> <translation id="6021332621416007159">...တွင်ဖွင့်မည်</translation> <translation id="6039429417015973673"><ph name="TITLE" />၊ <ph name="PUBLISHER_INFORMATION" />၊ <ph name="PUBLICATION_DATE" /></translation> @@ -511,6 +516,7 @@ <translation id="7961015016161918242">ဘယ်သောအခါမှ</translation> <translation id="7971521879845308059">ပေါ့အာပ်များ ပိတ်ဆို့မည်</translation> <translation id="7982789257301363584">ကွန်ရက်</translation> +<translation id="800361585186029508">ထည့်သွင်းလိုက်သော URL များကို Google Chrome တွင် ဖွင့်သည်။</translation> <translation id="8007420562015504427">ရုပ်ဖျက်မုဒ်ဖြင့် ရှာရန်</translation> <translation id="8019783059653722575">၎င်းသည် ဓာတ်ပုံသိမ်းဆည်းရန်နှင့် အပ်လုဒ်လုပ်ရန် ခွင့်ပြုပါသည်။</translation> <translation id="802154636333426148">ဒေါင်းလုဒ်လုပ်မှု မအောင်မြင်ပါ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb index eb95919..27b9ae5b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Incognito zoeken</translation> <translation id="277771892408211951">Taal selecteren</translation> <translation id="2780046210906776326">Geen e-mailaccounts</translation> +<translation id="2781331604911854368">Aan</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Tabbladschakelaar verlaten</translation> <translation id="2830972654601096923">Adressen beheren...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Geopende tabbladen</translation> <translation id="3277021493514034324">Siteadres gekopieerd</translation> <translation id="3290875554372353449">Een account selecteren</translation> +<translation id="3311748811247479259">Uit</translation> <translation id="3324193307694657476">Adres 2</translation> <translation id="3329904751041170572">Kan geen verbinding maken met de server.</translation> <translation id="3335947283844343239">Open gesloten tabblad opnieuw</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Je tabbladen synchroniseren…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /> over voorgestelde content</translation> <translation id="3494788280727468875">Wissen van browsegegevens bevestigen</translation> +<translation id="35083190962747987">${url} openen</translation> <translation id="3519193562722059437">Open een tabblad om op internet te surfen.</translation> <translation id="3527085408025491307">Map</translation> <translation id="3529024052484145543">Niet beveiligd</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive installeren</translation> <translation id="5083464117946352670">Kan bestandsgrootte niet bepalen.</translation> <translation id="5094827893301452931">Tweet voltooid.</translation> +<translation id="5118764316110575523">Uit</translation> <translation id="5127805178023152808">Synchronisatie is uitgeschakeld</translation> <translation id="5132942445612118989">Je wachtwoorden, geschiedenis en meer synchroniseren op al je apparaten</translation> <translation id="5140288047769711648">Chrome onthoudt dit wachtwoord voor je. Je hoeft het niet zelf te onthouden.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Wachtwoorden zoeken</translation> <translation id="5982717868370722439">Bestaande gegevens toevoegen aan <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Recent bezocht</translation> +<translation id="5988851877894965432">URL's openen in Chrome</translation> <translation id="6012140227487808125">Versleutelen…</translation> <translation id="6021332621416007159">Openen in...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nooit</translation> <translation id="7971521879845308059">Pop-ups blokkeren</translation> <translation id="7982789257301363584">Netwerk</translation> +<translation id="800361585186029508">Hiermee worden de ingevoerde URL's geopend in Google Chrome.</translation> <translation id="8007420562015504427">Incognito zoeken</translation> <translation id="8019783059653722575">Hiermee kun je foto's opslaan en uploaden.</translation> <translation id="802154636333426148">Downloaden mislukt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index d73a003..1c83cdb 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Wyszukiwanie incognito</translation> <translation id="277771892408211951">Wybierz język</translation> <translation id="2780046210906776326">Brak kont e-mail</translation> +<translation id="2781331604911854368">Włączono</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Zamknij przełącznik kart</translation> <translation id="2830972654601096923">Zarządzaj adresami...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Otwarte karty</translation> <translation id="3277021493514034324">Skopiowano adres strony</translation> <translation id="3290875554372353449">Wybierz konto</translation> +<translation id="3311748811247479259">Wyłączono</translation> <translation id="3324193307694657476">Adres 2</translation> <translation id="3329904751041170572">Nie można połączyć się z serwerem.</translation> <translation id="3335947283844343239">Otwórz ponownie zamkniętą kartę</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Synchronizuję karty...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Dowiedz się więcej<ph name="END_LINK" /> o proponowanej treści</translation> <translation id="3494788280727468875">Potwierdź czyszczenie danych przeglądania</translation> +<translation id="35083190962747987">Otwórz ${url}</translation> <translation id="3519193562722059437">Otwórz kartę, by przeglądać strony.</translation> <translation id="3527085408025491307">Folder</translation> <translation id="3529024052484145543">Niezabezpieczona</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Zainstaluj Dysk Google</translation> <translation id="5083464117946352670">Nie można ustalić rozmiaru pliku.</translation> <translation id="5094827893301452931">Tweet opublikowany.</translation> +<translation id="5118764316110575523">Wyłączono</translation> <translation id="5127805178023152808">Synchronizacja jest wyłączona</translation> <translation id="5132942445612118989">Synchronizuj swoje hasła, historię i inne dane na wszystkich swoich urządzeniach</translation> <translation id="5140288047769711648">Chrome będzie pamiętać to hasło za Ciebie. Nie musisz go zapamiętywać.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Szukaj haseł</translation> <translation id="5982717868370722439">Dodaj istniejące dane do konta <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Ostatnio odwiedzone</translation> +<translation id="5988851877894965432">Otwórz adresy URL w Chrome</translation> <translation id="6012140227487808125">Szyfruję…</translation> <translation id="6021332621416007159">Otwórz w...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nigdy</translation> <translation id="7971521879845308059">Blokuj wyskakujące okienka</translation> <translation id="7982789257301363584">Sieć</translation> +<translation id="800361585186029508">Otwiera wpisane adresy URL w Google Chrome.</translation> <translation id="8007420562015504427">Wyszukiwanie incognito</translation> <translation id="8019783059653722575">Umożliwia zapisywanie i przesyłanie zdjęć.</translation> <translation id="802154636333426148">Nie udało się pobrać</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 20ca441..67896dcb4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Pesquisa anônima</translation> <translation id="277771892408211951">Selecionar idioma</translation> <translation id="2780046210906776326">Sem contas de e-mail</translation> +<translation id="2781331604911854368">Ativado</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Sair do alternador de guias</translation> <translation id="2830972654601096923">Gerenciar endereços…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Guias abertas</translation> <translation id="3277021493514034324">Endereço do site copiado</translation> <translation id="3290875554372353449">Escolher uma conta</translation> +<translation id="3311748811247479259">Desativado</translation> <translation id="3324193307694657476">Endereço 2</translation> <translation id="3329904751041170572">Não foi possível se conectar ao servidor.</translation> <translation id="3335947283844343239">Reabrir guia fechada</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Sincronizando suas guias...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> sobre o conteúdo sugerido</translation> <translation id="3494788280727468875">Confirmar limpeza de dados de navegação</translation> +<translation id="35083190962747987">Abrir ${url}</translation> <translation id="3519193562722059437">Abra uma guia para navegar na Web.</translation> <translation id="3527085408025491307">Pasta</translation> <translation id="3529024052484145543">Não seguro</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instalar o Google Drive</translation> <translation id="5083464117946352670">Não é possível saber o tamanho do arquivo.</translation> <translation id="5094827893301452931">Tweet concluído.</translation> +<translation id="5118764316110575523">Desativado</translation> <translation id="5127805178023152808">A sincronização está desativada</translation> <translation id="5132942445612118989">Sincronize suas senhas, seu histórico e muito mais em todos os dispositivos</translation> <translation id="5140288047769711648">Esta senha ficará salva no Chrome. Você não precisa memorizá-la.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Pesquisar senhas</translation> <translation id="5982717868370722439">Adicionar dados já existentes à conta <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitados recentemente</translation> +<translation id="5988851877894965432">Abrir URLs no Chrome</translation> <translation id="6012140227487808125">Criptografando…</translation> <translation id="6021332621416007159">Abrir no...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nunca</translation> <translation id="7971521879845308059">Bloquear pop-ups</translation> <translation id="7982789257301363584">Rede</translation> +<translation id="800361585186029508">Abre os URLs fornecidos no Google Chrome.</translation> <translation id="8007420562015504427">Pesquisa anônima</translation> <translation id="8019783059653722575">Isso permite que você salve fotos e faça upload delas.</translation> <translation id="802154636333426148">Falha no download</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 2a6962b..809b201 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Pesquisa anónima</translation> <translation id="277771892408211951">Selecionar idioma</translation> <translation id="2780046210906776326">Sem Contas de Email</translation> +<translation id="2781331604911854368">Ativado</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Sair do Comutador de separadores</translation> <translation id="2830972654601096923">Gerir endereços…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Abrir Separadores</translation> <translation id="3277021493514034324">Endereço do site copiado</translation> <translation id="3290875554372353449">Selecione uma conta</translation> +<translation id="3311748811247479259">Desativado</translation> <translation id="3324193307694657476">Morada 2</translation> <translation id="3329904751041170572">Não foi possível ligar ao servidor.</translation> <translation id="3335947283844343239">Reabrir separador fechado</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">A sincronizar os seus separadores...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /> acerca do conteúdo sugerido</translation> <translation id="3494788280727468875">Confirmar limpeza dos dados de navegação</translation> +<translation id="35083190962747987">Abrir ${url}</translation> <translation id="3519193562722059437">Abra um separador para navegar na Web.</translation> <translation id="3527085408025491307">Pasta</translation> <translation id="3529024052484145543">Inseguro</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Instalar o Google Drive</translation> <translation id="5083464117946352670">Não é poss. deter. tam. fich.</translation> <translation id="5094827893301452931">Tweet concluído.</translation> +<translation id="5118764316110575523">Desativado</translation> <translation id="5127805178023152808">A sincronização está desativada</translation> <translation id="5132942445612118989">Sincronize as suas palavras-passe, o histórico e muito mais em todos os dispositivos</translation> <translation id="5140288047769711648">O Chrome memorizará esta palavra-passe por si. Não tem de a memorizar.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Pesquisar palavras-passe</translation> <translation id="5982717868370722439">Adicionar dados existentes a <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Visitados Recentemente</translation> +<translation id="5988851877894965432">Abrir URLs no Chrome</translation> <translation id="6012140227487808125">A encriptar...</translation> <translation id="6021332621416007159">Abrir em...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Nunca</translation> <translation id="7971521879845308059">Bloquear Pop-ups</translation> <translation id="7982789257301363584">Rede</translation> +<translation id="800361585186029508">Abre os URLs introduzidos no Google Chrome.</translation> <translation id="8007420562015504427">Pesquisa anónima</translation> <translation id="8019783059653722575">Isto permite-lhe guardar e carregar fotos.</translation> <translation id="802154636333426148">Falha ao transferir</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_si.xtb b/ios/chrome/app/strings/resources/ios_strings_si.xtb index 3b97c83..3ce34e11 100644 --- a/ios/chrome/app/strings/resources/ios_strings_si.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_si.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">අප්රසිද්ධ සෙවීම</translation> <translation id="277771892408211951">භාෂාව තෝරන්න</translation> <translation id="2780046210906776326">ඊමේල් ගිනුම් නොමැත</translation> +<translation id="2781331604911854368">සක්රීය</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">පටිති මාරුකරවනය වෙතින් ඉවත් වන්න</translation> <translation id="2830972654601096923">ලිපින කළමනාකරණය...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">ටැබ විවෘත කරන්න</translation> <translation id="3277021493514034324">අඩවි ලිපිනය පිටපත් කරන ලදී</translation> <translation id="3290875554372353449">ගිණුමක් තෝරා ගන්න</translation> +<translation id="3311748811247479259">අක්රිය</translation> <translation id="3324193307694657476">ලිපිනය 2</translation> <translation id="3329904751041170572">සේවාදායකය වෙත සම්බන්ධ විය නොහැකි විය.</translation> <translation id="3335947283844343239">වැසූ ටැබය යළි විවෘත කරන්න</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">ඔබගේ පටිති සමමුහුර්ත කරමින්...</translation> <translation id="3493531032208478708">යෝජිත අන්තර්ගතය ගැන <ph name="BEGIN_LINK" />තවත් දැනගන්න<ph name="END_LINK" /></translation> <translation id="3494788280727468875">බ්රවුස් කිරීමේ දත්ත හිස් කිරීම තහවුරු කරන්න</translation> +<translation id="35083190962747987">${url} විවෘත කරන්න</translation> <translation id="3519193562722059437">වෙබය බ්රවුස් කිරීමට පටිත්තක් විවෘත කරන්න.</translation> <translation id="3527085408025491307">ෆෝල්ඩරය</translation> <translation id="3529024052484145543">සුරක්ෂිත නැත</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Google Drive ස්ථාපනය කරන්න</translation> <translation id="5083464117946352670">ගොනු ප්රමාණය තීරණය කළ නොහැකිය.</translation> <translation id="5094827893301452931">ට්වීට් කිරීම සම්පූර්ණයි.</translation> +<translation id="5118764316110575523">අක්රිය</translation> <translation id="5127805178023152808">සමමුහුර්තකරණය අක්රියයි</translation> <translation id="5132942445612118989">ඔබේ මුරපද, ඉතිහාසය සහ තවත් ඒවා සියලුම උපාංගවල සමමුහූර්ත කරන්න</translation> <translation id="5140288047769711648">Chrome ඔබ වෙනුවෙන් මෙම මුරපදය මතක තබා ගනියි. ඔබට එය මතක තබා ගැනීමට අවශ්ය නැත.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">මුරපද සොයන්න</translation> <translation id="5982717868370722439"><ph name="USER_EMAIL" /> වෙත පවතින දත්ත එක් කරන්න.</translation> <translation id="5984222099446776634">මෑතදී පිවිසි</translation> +<translation id="5988851877894965432">Chrome තුළ URL විවෘත කරන්න</translation> <translation id="6012140227487808125">සංකේතනය කරමින්...</translation> <translation id="6021332621416007159">විවෘත වන...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">කිසිවිට එපා</translation> <translation id="7971521879845308059">උත්පතන අවහිර කරන්න</translation> <translation id="7982789257301363584">ජාලය</translation> +<translation id="800361585186029508">ආදාන කළ URL ටික Google Chrome තුළින් විවෘත කරයි.</translation> <translation id="8007420562015504427">අප්රසිද්ධ සෙවීම</translation> <translation id="8019783059653722575">මෙය ඔබට ඡායාරූප සුරැක උඩුගත කිරීමට ඉඩ දෙයි.</translation> <translation id="802154636333426148">බාගැනීම අසමත් විය</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index 4902685..a4f2b13 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Претрага без архивирања</translation> <translation id="277771892408211951">Изаберите језик</translation> <translation id="2780046210906776326">Нема налога е-поште</translation> +<translation id="2781331604911854368">Укључено</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Изађи из пребацивача картица</translation> <translation id="2830972654601096923">Управљајте адресама...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Отворене картице</translation> <translation id="3277021493514034324">Адреса сајта је копирана</translation> <translation id="3290875554372353449">Изаберите налог</translation> +<translation id="3311748811247479259">Искључено</translation> <translation id="3324193307694657476">2. ред за адресу</translation> <translation id="3329904751041170572">Повезивање са сервером није могуће.</translation> <translation id="3335947283844343239">Поново отвори затворену картицу</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Синхронизација картица је у току...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /> о предложеном садржају</translation> <translation id="3494788280727468875">Потврди брисање података прегледања</translation> +<translation id="35083190962747987">Отвори ${url}</translation> <translation id="3519193562722059437">Отворите картицу да бисте прегледали веб.</translation> <translation id="3527085408025491307">Директоријум</translation> <translation id="3529024052484145543">Није безбедно</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Инсталирај Google диск</translation> <translation id="5083464117946352670">Није могуће утврдити величину датотеке.</translation> <translation id="5094827893301452931">Твит је довршен.</translation> +<translation id="5118764316110575523">Искључено</translation> <translation id="5127805178023152808">Синхронизација је искључена</translation> <translation id="5132942445612118989">Синхронизујте лозинке, историју и други садржај на свим уређајима</translation> <translation id="5140288047769711648">Chrome ће запамтити ову лозинку уместо вас. Не морате ви да је памтите.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Претражите лозинке</translation> <translation id="5982717868370722439">Додајте постојеће податке на <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Недавно посећено</translation> +<translation id="5988851877894965432">Отварајте URL-ове у Chrome-у</translation> <translation id="6012140227487808125">Шифрује се…</translation> <translation id="6021332621416007159">Отвори у...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Никад</translation> <translation id="7971521879845308059">Блокирај искачуће прозоре</translation> <translation id="7982789257301363584">Мрежа</translation> +<translation id="800361585186029508">Отвара унете URL-ове у Google Chrome-у.</translation> <translation id="8007420562015504427">Претрага без архивирања</translation> <translation id="8019783059653722575">Ово вам омогућава да чувате и отпремате слике.</translation> <translation id="802154636333426148">Преузимање није успело</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb index 9b73ee0..bc4eaf0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Inkognitosökning</translation> <translation id="277771892408211951">Välj språk</translation> <translation id="2780046210906776326">Inga e-postkonton</translation> +<translation id="2781331604911854368">På</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Stäng funktionen för flikbyte</translation> <translation id="2830972654601096923">Hantera adresser …</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Öppna flikar</translation> <translation id="3277021493514034324">Webbplatsens webbadress har kopierats</translation> <translation id="3290875554372353449">Välj ett konto</translation> +<translation id="3311748811247479259">Av</translation> <translation id="3324193307694657476">Adressrad 2</translation> <translation id="3329904751041170572">Det gick inte att ansluta till servern.</translation> <translation id="3335947283844343239">Öppna stängd flik igen</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Flikarna synkroniseras ...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /> om förslag på innehåll</translation> <translation id="3494788280727468875">Bekräfta rensning av webbinformation</translation> +<translation id="35083190962747987">Öppna ${url}</translation> <translation id="3519193562722059437">Öppna en flik om du vill surfa på webben.</translation> <translation id="3527085408025491307">Mapp</translation> <translation id="3529024052484145543">Inte säkert</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Installera Google Drive</translation> <translation id="5083464117946352670">Det gick inte att bestämma filstorleken.</translation> <translation id="5094827893301452931">Tweet klart.</translation> +<translation id="5118764316110575523">Av</translation> <translation id="5127805178023152808">Synkronisering är av</translation> <translation id="5132942445612118989">Synkronisera lösenord, historik med mera på alla dina enheter</translation> <translation id="5140288047769711648">Lösenordet sparas åt dig i Chrome. Du behöver inte komma ihåg det.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Sök efter lösenord</translation> <translation id="5982717868370722439">Lägg till befintlig data i <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Nyligen besökta</translation> +<translation id="5988851877894965432">Öppna webbadresser i Chrome</translation> <translation id="6012140227487808125">Krypterar …</translation> <translation id="6021332621416007159">Öppna i ...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Aldrig</translation> <translation id="7971521879845308059">Blockera popup-fönster</translation> <translation id="7982789257301363584">Nätverk</translation> +<translation id="800361585186029508">Öppnar de angivna webbadresserna i Google Chrome.</translation> <translation id="8007420562015504427">Inkognitosökning</translation> <translation id="8019783059653722575">Det här gör att du kan spara foton och ladda upp dem.</translation> <translation id="802154636333426148">Nedladdningen misslyckades</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index 0acf891..2e57d46 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Utafutaji Fiche</translation> <translation id="277771892408211951">Chagua Lugha</translation> <translation id="2780046210906776326">Hakuna Akaunti za Barua pepe</translation> +<translation id="2781331604911854368">Imewashwa</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Ondoka kwenye Kibadilishaji cha Kichupo</translation> <translation id="2830972654601096923">Dhibiti Anwani...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Fungua Vichupo</translation> <translation id="3277021493514034324">Anwani ya tovuti imenakiliwa</translation> <translation id="3290875554372353449">Chagua Akaunti</translation> +<translation id="3311748811247479259">Imezimwa</translation> <translation id="3324193307694657476">Anwani ya 2</translation> <translation id="3329904751041170572">Haikuweza kuunganisha kwenye seva.</translation> <translation id="3335947283844343239">Fungua Tena Kichupo Kilichofugwa</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Inasawazisha vichupo vyako...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /> kuhusu maudhui yaliyopendekezwa</translation> <translation id="3494788280727468875">Thibitisha Kufuta Data ya Kuvinjari</translation> +<translation id="35083190962747987">Fungua ${url}</translation> <translation id="3519193562722059437">Fungua kichupo ili uvinjari wavuti.</translation> <translation id="3527085408025491307">Folda</translation> <translation id="3529024052484145543">Si salama</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Pakua Hifadhi ya Google</translation> <translation id="5083464117946352670">Haiwezi kutambua ukubwa wa faili.</translation> <translation id="5094827893301452931">Kutuma ujumbe kwenye Twiter kumekamilika.</translation> +<translation id="5118764316110575523">Imezimwa</translation> <translation id="5127805178023152808">Usawazishaji umezimwa</translation> <translation id="5132942445612118989">Sawazisha historia, manenosiri na mambo yako mengine kwenye vifaa vyote</translation> <translation id="5140288047769711648">Chrome itakumbuka nenosiri hili kwa niaba yako. Huhitaji kulikumbuka.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Tafuta Manenosiri</translation> <translation id="5982717868370722439">Ongeza data iliyopo kwenye <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Vilivyotembelewa Hivi karibuni</translation> +<translation id="5988851877894965432">Fungua URL katika Chrome</translation> <translation id="6012140227487808125">Inasimba kwa njia fiche...</translation> <translation id="6021332621416007159">Fungulia katika...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Katu</translation> <translation id="7971521879845308059">Zuia Ibukizi</translation> <translation id="7982789257301363584">Mtandao</translation> +<translation id="800361585186029508">Hufungua URL zilizowekwa katika Google Chrome.</translation> <translation id="8007420562015504427">Utafutaji Fiche</translation> <translation id="8019783059653722575">Hii hukuwezesha kuhifadhi na kupakia picha.</translation> <translation id="802154636333426148">Haikuweza kupakua</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 3ebebe4..422cfb1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Пошук у режимі інкогніто</translation> <translation id="277771892408211951">Виберіть мову</translation> <translation id="2780046210906776326">Немає облік. записів</translation> +<translation id="2781331604911854368">Увімкнено</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">Закрити перемикач вкладок</translation> <translation id="2830972654601096923">Керувати адресами…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Відкриті вкладки</translation> <translation id="3277021493514034324">Адресу сайту скопійовано</translation> <translation id="3290875554372353449">Виберіть обліковий запис</translation> +<translation id="3311748811247479259">Вимкнено</translation> <translation id="3324193307694657476">Адреса 2</translation> <translation id="3329904751041170572">Не вдалось під’єднатися до сервера.</translation> <translation id="3335947283844343239">Знову відкрити закриту вкладку</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Синхронізація вкладок…</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /> про рекомендований контент</translation> <translation id="3494788280727468875">Підтвердити очищення даних веб-перегляду</translation> +<translation id="35083190962747987">Відкрити ${url}</translation> <translation id="3519193562722059437">Щоб переглядати веб-сторінки, відкрийте вкладку.</translation> <translation id="3527085408025491307">Папка</translation> <translation id="3529024052484145543">Небезпечно</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Установити Google Диск</translation> <translation id="5083464117946352670">Невідомий розмір файлу.</translation> <translation id="5094827893301452931">Твіт опубліковано.</translation> +<translation id="5118764316110575523">Вимкнено</translation> <translation id="5127805178023152808">Синхронізацію вимкнено</translation> <translation id="5132942445612118989">Синхронізуйте свої паролі, історію тощо на всіх пристроях</translation> <translation id="5140288047769711648">Chrome збереже цей пароль. Вам не потрібно його запам’ятовувати.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Пошук паролів</translation> <translation id="5982717868370722439">Додати наявні дані в обліковий запис <ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Нещодавно відвідані</translation> +<translation id="5988851877894965432">Відкривати URL-адреси в Chrome</translation> <translation id="6012140227487808125">Шифрування…</translation> <translation id="6021332621416007159">Відкрити в...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Ніколи</translation> <translation id="7971521879845308059">Блок.сплив.вікна</translation> <translation id="7982789257301363584">Мережа</translation> +<translation id="800361585186029508">Відкриває введені URL-адреси в Google Chrome.</translation> <translation id="8007420562015504427">Пошук у режимі інкогніто</translation> <translation id="8019783059653722575">Ви зможете зберігати й завантажувати фотографії.</translation> <translation id="802154636333426148">Не вдалося завантажити</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb index 6e86ba3..e108e4aa 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-HK.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">無痕搜尋</translation> <translation id="277771892408211951">選取語言</translation> <translation id="2780046210906776326">無電郵帳戶</translation> +<translation id="2781331604911854368">開啟</translation> <translation id="2781692009645368755">Google Pay</translation> <translation id="2800683595868705743">退出分頁切換選項</translation> <translation id="2830972654601096923">管理地址…</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">開啟的分頁</translation> <translation id="3277021493514034324">已複製網站網址</translation> <translation id="3290875554372353449">選擇帳戶</translation> +<translation id="3311748811247479259">關閉</translation> <translation id="3324193307694657476">地址 2</translation> <translation id="3329904751041170572">無法連上伺服器。</translation> <translation id="3335947283844343239">重新開啟先前關閉的分頁</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">正在同步處理您的分頁...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />進一步瞭解<ph name="END_LINK" />建議的內容</translation> <translation id="3494788280727468875">確認清除瀏覽資料</translation> +<translation id="35083190962747987">開啟 ${url}</translation> <translation id="3519193562722059437">透過新開啟的分頁瀏覽網頁。</translation> <translation id="3527085408025491307">資料夾</translation> <translation id="3529024052484145543">不安全</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">安裝 Google 雲端硬碟</translation> <translation id="5083464117946352670">無法確定檔案大小。</translation> <translation id="5094827893301452931">已順利發布到 Twitter。</translation> +<translation id="5118764316110575523">關閉</translation> <translation id="5127805178023152808">同步處理已停用</translation> <translation id="5132942445612118989">將您的書籤、密碼、記錄等資料同步至所有裝置</translation> <translation id="5140288047769711648">Chrome 會為您儲存此密碼,因此您無需記住密碼。</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">搜尋密碼</translation> <translation id="5982717868370722439">將現有資料新增至 <ph name="USER_EMAIL" />。</translation> <translation id="5984222099446776634">最近瀏覽的網站</translation> +<translation id="5988851877894965432">在 Chrome 中開啟網址</translation> <translation id="6012140227487808125">正在加密…</translation> <translation id="6021332621416007159">在其他應用程式中開啟...</translation> <translation id="6039429417015973673"><ph name="TITLE" />,<ph name="PUBLISHER_INFORMATION" />,<ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">從來沒有</translation> <translation id="7971521879845308059">封鎖彈出式視窗</translation> <translation id="7982789257301363584">網絡</translation> +<translation id="800361585186029508">在 Google Chrome 中開啟已輸入的網址。</translation> <translation id="8007420562015504427">無痕搜尋</translation> <translation id="8019783059653722575">這樣您便可儲存並上載相片。</translation> <translation id="802154636333426148">下載失敗</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zu.xtb b/ios/chrome/app/strings/resources/ios_strings_zu.xtb index 5336e199..88799077 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zu.xtb
@@ -140,6 +140,7 @@ <translation id="2773292004659987824">Usesho lwe-Incognito</translation> <translation id="277771892408211951">Khetha ulimi</translation> <translation id="2780046210906776326">Awekho ama-akhawunti we-imeyili</translation> +<translation id="2781331604911854368">Vuliwe</translation> <translation id="2781692009645368755">I-Google Pay</translation> <translation id="2800683595868705743">Shiya Isiguquli Sethebhu</translation> <translation id="2830972654601096923">Phatha amakheli...</translation> @@ -175,6 +176,7 @@ <translation id="3268451620468152448">Vula amathebhu</translation> <translation id="3277021493514034324">Ikheli lesayithi likopishiwe</translation> <translation id="3290875554372353449">Khetha i-Akhawunti</translation> +<translation id="3311748811247479259">Valiwe</translation> <translation id="3324193307694657476">Ikheli 2</translation> <translation id="3329904751041170572">Ayikwazanga ukuxhuma kuseva.</translation> <translation id="3335947283844343239">Phinda uvule ithebhu evaliwe</translation> @@ -192,6 +194,7 @@ <translation id="3482959374254649722">Ivumelanisa amathebhu akho...</translation> <translation id="3493531032208478708"><ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /> mayelana nokuqukethwe okuphakamisiwe</translation> <translation id="3494788280727468875">Qinisekisa ukusula idatha yokuphequlula</translation> +<translation id="35083190962747987">Vula ${url}</translation> <translation id="3519193562722059437">Vula ithebhu ukuze uphequlule iwebhu.</translation> <translation id="3527085408025491307">Ifolda</translation> <translation id="3529024052484145543">Akuphephile</translation> @@ -301,6 +304,7 @@ <translation id="5062321486222145940">Faka ku-Google Drayivu</translation> <translation id="5083464117946352670">Ayikwazi ukucacisa usayizi wefayela.</translation> <translation id="5094827893301452931">I-Tweet iqedile.</translation> +<translation id="5118764316110575523">Valiwe</translation> <translation id="5127805178023152808">Ukuvumelanisa kuvaliwe</translation> <translation id="5132942445612118989">Vumelanisa amaphasiwedi akho, umlando nokuningi kuwo wonke amadivayisi</translation> <translation id="5140288047769711648">I-Chrome izokukhumbulela le phasiwedi. Awudingi ukuyikhumbula.</translation> @@ -363,6 +367,7 @@ <translation id="5979837087407522202">Sesha amaphasiwedi</translation> <translation id="5982717868370722439">Engeza idatha ekhona ku-<ph name="USER_EMAIL" />.</translation> <translation id="5984222099446776634">Ivakashelwe kamuva</translation> +<translation id="5988851877894965432">Vula ama-URL ku-Chrome</translation> <translation id="6012140227487808125">Iyabethela...</translation> <translation id="6021332621416007159">Ivula ku...</translation> <translation id="6039429417015973673"><ph name="TITLE" />, <ph name="PUBLISHER_INFORMATION" />, <ph name="PUBLICATION_DATE" /></translation> @@ -512,6 +517,7 @@ <translation id="7961015016161918242">Ngeke</translation> <translation id="7971521879845308059">Vimba izigelekeqe</translation> <translation id="7982789257301363584">Inethiwekhi</translation> +<translation id="800361585186029508">Ivula ama-URL afakiwe ku-Google Chrome.</translation> <translation id="8007420562015504427">Usesho i-Incognito</translation> <translation id="8019783059653722575">Lokhu kukuvumela ukuthi ulondoloze uphinde ulayishe izithombe.</translation> <translation id="802154636333426148">Ukulanda kwehlulekile</translation>
diff --git a/ios/chrome/browser/history/history_tab_helper_unittest.mm b/ios/chrome/browser/history/history_tab_helper_unittest.mm index f58ffee..4282df31 100644 --- a/ios/chrome/browser/history/history_tab_helper_unittest.mm +++ b/ios/chrome/browser/history/history_tab_helper_unittest.mm
@@ -6,6 +6,7 @@ #include "base/bind.h" #include "base/callback.h" +#include "base/files/scoped_temp_dir.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/test/bind_test_util.h" @@ -30,6 +31,10 @@ public: void SetUp() override { TestChromeBrowserState::Builder test_cbs_builder; + + ASSERT_TRUE(state_dir_.CreateUniqueTempDir()); + test_cbs_builder.SetPath(state_dir_.GetPath()); + chrome_browser_state_ = test_cbs_builder.Build(); ASSERT_TRUE(chrome_browser_state_->CreateHistoryService(true)); @@ -66,6 +71,11 @@ } protected: + // A state directory that outlives |task_environment_| is needed because + // CreateHistoryService/CreateBookmarkModel use the directory to host + // databases. See https://crbug.com/546640 for more details. + base::ScopedTempDir state_dir_; + base::test::TaskEnvironment task_environment_; std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; web::TestWebState web_state_;
diff --git a/ios/chrome/browser/infobars/overlays/BUILD.gn b/ios/chrome/browser/infobars/overlays/BUILD.gn index 5530fa2..905d7e40 100644 --- a/ios/chrome/browser/infobars/overlays/BUILD.gn +++ b/ios/chrome/browser/infobars/overlays/BUILD.gn
@@ -30,27 +30,15 @@ ] } -source_set("browser_agent_util") { - configs += [ "//build/config/compiler:enable_arc" ] - sources = [ - "infobar_overlay_browser_agent_util.cc", - "infobar_overlay_browser_agent_util.h", - ] - deps = [ - "//base", - "//ios/chrome/browser/main:public", - "//ios/chrome/browser/ui/infobars:feature_flags", - ] -} - source_set("util") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ - "overlay_request_infobar_type_util.h", - "overlay_request_infobar_type_util.mm", + "overlay_request_infobar_util.h", + "overlay_request_infobar_util.mm", ] deps = [ "//base", + "//ios/chrome/browser/infobars", "//ios/chrome/browser/infobars:public", "//ios/chrome/browser/overlays", "//ios/chrome/browser/overlays/public/common/infobars",
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/BUILD.gn b/ios/chrome/browser/infobars/overlays/browser_agent/BUILD.gn new file mode 100644 index 0000000..29e6d60 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/BUILD.gn
@@ -0,0 +1,74 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("browser_agent") { + configs += [ "//build/config/compiler:enable_arc" ] + friend = [ ":unit_tests" ] + public = [ + "infobar_overlay_browser_agent.h", + ] + sources = [ + "infobar_banner_overlay_request_callback_installer.h", + "infobar_banner_overlay_request_callback_installer.mm", + "infobar_overlay_browser_agent.mm", + ] + deps = [ + "//base", + "//ios/chrome/browser/infobars:public", + "//ios/chrome/browser/infobars/overlays", + "//ios/chrome/browser/infobars/overlays:util", + "//ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers", + "//ios/chrome/browser/main:public", + "//ios/chrome/browser/overlays", + "//ios/chrome/browser/overlays/public/common/infobars", + "//ios/chrome/browser/overlays/public/infobar_banner", + "//ios/chrome/browser/ui/badges:public", + "//ios/chrome/browser/ui/badges:util", + ] +} + +source_set("browser_agent_util") { + configs += [ "//build/config/compiler:enable_arc" ] + sources = [ + "infobar_overlay_browser_agent_util.h", + "infobar_overlay_browser_agent_util.mm", + ] + deps = [ + ":browser_agent", + "//base", + "//ios/chrome/browser/main:public", + "//ios/chrome/browser/ui/infobars:feature_flags", + ] +} + +source_set("unit_tests") { + configs += [ "//build/config/compiler:enable_arc" ] + testonly = true + sources = [ + "infobar_banner_overlay_request_callback_installer_unittest.mm", + "infobar_overlay_browser_agent_unittest.mm", + ] + deps = [ + ":browser_agent", + "//base/test:test_support", + "//ios/chrome/browser/browser_state:test_support", + "//ios/chrome/browser/infobars", + "//ios/chrome/browser/infobars:public", + "//ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test", + "//ios/chrome/browser/infobars/test", + "//ios/chrome/browser/main", + "//ios/chrome/browser/main:test_support", + "//ios/chrome/browser/overlays", + "//ios/chrome/browser/overlays/public/common/infobars", + "//ios/chrome/browser/overlays/public/infobar_banner", + "//ios/chrome/browser/overlays/test", + "//ios/chrome/browser/web_state_list", + "//ios/chrome/browser/web_state_list:test_support", + "//ios/chrome/test:test_support", + "//ios/web/public/test", + "//ios/web/public/test/fakes", + "//testing/gmock", + "//testing/gtest", + ] +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h new file mode 100644 index 0000000..434053f --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h
@@ -0,0 +1,52 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_BANNER_OVERLAY_REQUEST_CALLBACK_INSTALLER_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_BANNER_OVERLAY_REQUEST_CALLBACK_INSTALLER_H_ + +#include "ios/chrome/browser/overlays/public/overlay_request_callback_installer.h" + +class OverlayRequestSupport; +class InfobarBannerInteractionHandler; + +// Installer for callbacks that are added to OverlayRequests for infobar +// banners. +class InfobarBannerOverlayRequestCallbackInstaller + : public OverlayRequestCallbackInstaller { + public: + // Constructor for an instance that installs callbacks for OverlayRequests + // supported by |request_support| that forward interaction events to + // |interaction_handler|. + explicit InfobarBannerOverlayRequestCallbackInstaller( + const OverlayRequestSupport* request_support, + InfobarBannerInteractionHandler* interaction_handler); + ~InfobarBannerOverlayRequestCallbackInstaller() override; + + private: + // Called as a dispatch callback for |request| when |response| is configured + // with an InfobarBannerMainActionResponse. + void MainActionButtonTapped(OverlayRequest* request, + OverlayResponse* response); + // Called as a dispatch callback for |request| when |response| is configured + // with an InfobarBannerShowModalResponse. + void ShowModalButtonTapped(OverlayRequest* request, + OverlayResponse* response); + // Called as a completion callback for |request|, where |response| is the + // completion response. + void BannerCompleted(OverlayRequest* request, OverlayResponse* response); + + // OverlayRequestCallbackInstaller: + const OverlayRequestSupport* GetRequestSupport() const override; + void InstallCallbacksInternal(OverlayRequest* request) override; + + // The request support for |interaction_handler_|. + const OverlayRequestSupport* request_support_ = nullptr; + // The handler for received responses. + InfobarBannerInteractionHandler* interaction_handler_ = nullptr; + + base::WeakPtrFactory<InfobarBannerOverlayRequestCallbackInstaller> + weak_factory_{this}; +}; + +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_BANNER_OVERLAY_REQUEST_CALLBACK_INSTALLER_H_
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.mm new file mode 100644 index 0000000..a86ff30 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.mm
@@ -0,0 +1,85 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h" + +#include "base/bind.h" +#include "base/callback.h" +#include "base/logging.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h" +#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h" +#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" +#include "ios/chrome/browser/overlays/public/infobar_banner/infobar_banner_overlay_responses.h" +#include "ios/chrome/browser/overlays/public/overlay_callback_manager.h" +#include "ios/chrome/browser/overlays/public/overlay_dispatch_callback.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +InfobarBannerOverlayRequestCallbackInstaller:: + InfobarBannerOverlayRequestCallbackInstaller( + const OverlayRequestSupport* request_support, + InfobarBannerInteractionHandler* interaction_handler) + : request_support_(request_support), + interaction_handler_(interaction_handler) { + DCHECK(request_support_); + DCHECK(interaction_handler_); +} + +InfobarBannerOverlayRequestCallbackInstaller:: + ~InfobarBannerOverlayRequestCallbackInstaller() = default; + +#pragma mark - Private + +void InfobarBannerOverlayRequestCallbackInstaller::MainActionButtonTapped( + OverlayRequest* request, + OverlayResponse* response) { + interaction_handler_->MainButtonTapped(GetOverlayRequestInfobar(request)); +} + +void InfobarBannerOverlayRequestCallbackInstaller::ShowModalButtonTapped( + OverlayRequest* request, + OverlayResponse* response) { + interaction_handler_->ShowModalButtonTapped(GetOverlayRequestInfobar(request), + request->GetQueueWebState()); +} + +void InfobarBannerOverlayRequestCallbackInstaller::BannerCompleted( + OverlayRequest* request, + OverlayResponse* response) { + bool user_initiated = false; + if (response) { + InfobarBannerCompletionResponse* banner_completion = + response->GetInfo<InfobarBannerCompletionResponse>(); + user_initiated = banner_completion && banner_completion->user_initiated(); + } + interaction_handler_->BannerCompleted(GetOverlayRequestInfobar(request), + user_initiated); +} + +#pragma mark - OverlayRequestCallbackInstaller + +const OverlayRequestSupport* +InfobarBannerOverlayRequestCallbackInstaller::GetRequestSupport() const { + return request_support_; +} + +void InfobarBannerOverlayRequestCallbackInstaller::InstallCallbacksInternal( + OverlayRequest* request) { + OverlayCallbackManager* manager = request->GetCallbackManager(); + manager->AddDispatchCallback(OverlayDispatchCallback( + base::BindRepeating( + &InfobarBannerOverlayRequestCallbackInstaller::MainActionButtonTapped, + weak_factory_.GetWeakPtr(), request), + InfobarBannerMainActionResponse::ResponseSupport())); + manager->AddDispatchCallback(OverlayDispatchCallback( + base::BindRepeating( + &InfobarBannerOverlayRequestCallbackInstaller::ShowModalButtonTapped, + weak_factory_.GetWeakPtr(), request), + InfobarBannerShowModalResponse::ResponseSupport())); + manager->AddCompletionCallback(base::BindOnce( + &InfobarBannerOverlayRequestCallbackInstaller::BannerCompleted, + weak_factory_.GetWeakPtr(), request)); +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer_unittest.mm new file mode 100644 index 0000000..c9a31f0 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer_unittest.mm
@@ -0,0 +1,80 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h" + +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h" +#import "ios/chrome/browser/infobars/test/fake_infobar_ios.h" +#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" +#include "ios/chrome/browser/overlays/public/infobar_banner/infobar_banner_overlay_responses.h" +#include "ios/chrome/browser/overlays/public/overlay_callback_manager.h" +#include "ios/chrome/browser/overlays/public/overlay_request.h" +#import "ios/chrome/browser/overlays/public/overlay_request_queue.h" +#include "ios/chrome/browser/overlays/public/overlay_response.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h" +#include "ios/chrome/browser/overlays/test/overlay_test_macros.h" +#import "ios/web/public/test/fakes/test_web_state.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/platform_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// Test fixture for InfobarBannerOverlayRequestCallbackInstaller. +class InfobarBannerOverlayRequestCallbackInstallerTest : public PlatformTest { + public: + InfobarBannerOverlayRequestCallbackInstallerTest() + : installer_(InfobarOverlayRequestConfig::RequestSupport(), + &mock_handler_) { + std::unique_ptr<OverlayRequest> request = + OverlayRequest::CreateWithConfig<InfobarOverlayRequestConfig>( + &infobar_); + request_ = request.get(); + queue()->AddRequest(std::move(request)); + installer_.InstallCallbacks(request_); + } + + OverlayCallbackManager* callback_manager() const { + return request_->GetCallbackManager(); + } + OverlayRequestQueue* queue() { + return OverlayRequestQueue::FromWebState(&web_state_, + OverlayModality::kInfobarBanner); + } + + protected: + FakeInfobarIOS infobar_; + web::TestWebState web_state_; + OverlayRequest* request_ = nullptr; + MockInfobarBannerInteractionHandler mock_handler_; + InfobarBannerOverlayRequestCallbackInstaller installer_; +}; + +// Tests that a dispatched InfobarBannerMainActionResponse calls +// InfobarBannerInteractionHandler::MainButtonTapped(). +TEST_F(InfobarBannerOverlayRequestCallbackInstallerTest, MainAction) { + EXPECT_CALL(mock_handler_, MainButtonTapped(&infobar_)); + callback_manager()->DispatchResponse( + OverlayResponse::CreateWithInfo<InfobarBannerMainActionResponse>()); +} + +// Tests that a dispatched InfobarBannerShowModalResponse calls +// InfobarBannerInteractionHandler::ShowModalButtonTapped(). +TEST_F(InfobarBannerOverlayRequestCallbackInstallerTest, ShowModal) { + EXPECT_CALL(mock_handler_, ShowModalButtonTapped(&infobar_, &web_state_)); + callback_manager()->DispatchResponse( + OverlayResponse::CreateWithInfo<InfobarBannerShowModalResponse>()); +} + +// Tests that the request's completion callback calls +// InfobarBannerInteractionHandler::BannerCompleted(). +TEST_F(InfobarBannerOverlayRequestCallbackInstallerTest, Completion) { + bool user_initiated = true; + callback_manager()->SetCompletionResponse( + OverlayResponse::CreateWithInfo<InfobarBannerCompletionResponse>( + user_initiated)); + EXPECT_CALL(mock_handler_, BannerCompleted(&infobar_, user_initiated)); + queue()->CancelAllRequests(); +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h new file mode 100644 index 0000000..ee85f199 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h
@@ -0,0 +1,79 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_H_ + +#include <map> +#include <memory> + +#include "base/scoped_observer.h" +#import "ios/chrome/browser/infobars/infobar_type.h" +#import "ios/chrome/browser/main/browser_user_data.h" +#import "ios/chrome/browser/overlays/public/overlay_browser_agent_base.h" +#include "ios/chrome/browser/overlays/public/overlay_presenter.h" +#include "ios/chrome/browser/overlays/public/overlay_presenter_observer.h" + +class InfobarInteractionHandler; + +// Browser agent class that handles the model-layer updates for infobars. +class InfobarOverlayBrowserAgent + : public OverlayBrowserAgentBase, + public BrowserUserData<InfobarOverlayBrowserAgent> { + public: + ~InfobarOverlayBrowserAgent() override; + + // Sets the InfobarInteractionHandler to make model-layer updates for + // interactions with infobars with |type|. OverlayCallbackInstallers will be + // created to forward interaction events to each interaction handler. + // |interaction_handler| must not be null. Must only be set once for each + // InfobarType. + void SetInfobarInteractionHandler( + InfobarType type, + std::unique_ptr<InfobarInteractionHandler> interaction_handler); + + private: + // Constructor used by CreateForBrowser(). + friend class BrowserUserData<InfobarOverlayBrowserAgent>; + explicit InfobarOverlayBrowserAgent(Browser* browser); + BROWSER_USER_DATA_KEY_DECL(); + + // Returns the interaction handler for the InfobarType of the infobar used to + // configure |request|. + InfobarInteractionHandler* GetInteractionHandler(OverlayRequest* request); + + // Helper object that notifies interaction handler of changes in banner + // visibility. + class BannerVisibilityObserver : public OverlayPresenterObserver { + public: + BannerVisibilityObserver(Browser* browser, + InfobarOverlayBrowserAgent* browser_agent); + ~BannerVisibilityObserver() override; + + private: + // Notifies the BrowserAgent's interaction handler that the visibility of + // |request|'s banner UI has changed. + void BannerVisibilityChanged(OverlayRequest* request, bool visible); + + // OverlayPresenterObserver: + const OverlayRequestSupport* GetRequestSupport( + OverlayPresenter* presenter) const override; + void DidShowOverlay(OverlayPresenter* presenter, + OverlayRequest* request) override; + void DidHideOverlay(OverlayPresenter* presenter, + OverlayRequest* request) override; + void OverlayPresenterDestroyed(OverlayPresenter* presenter) override; + + InfobarOverlayBrowserAgent* browser_agent_ = nullptr; + ScopedObserver<OverlayPresenter, OverlayPresenterObserver> scoped_observer_; + }; + + // The interaction handlers for each InfobarType. + std::map<InfobarType, std::unique_ptr<InfobarInteractionHandler>> + interaction_handlers_; + // The observer for infobar banner presentations and dismissals. + BannerVisibilityObserver banner_visibility_observer_; +}; + +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_H_
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.mm new file mode 100644 index 0000000..65e6b97 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.mm
@@ -0,0 +1,108 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h" + +#include "base/logging.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h" +#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#pragma mark - InfobarOverlayBrowserAgent + +BROWSER_USER_DATA_KEY_IMPL(InfobarOverlayBrowserAgent) + +InfobarOverlayBrowserAgent::InfobarOverlayBrowserAgent(Browser* browser) + : OverlayBrowserAgentBase(browser), + banner_visibility_observer_(browser, this) {} + +InfobarOverlayBrowserAgent::~InfobarOverlayBrowserAgent() = default; + +#pragma mark Public + +void InfobarOverlayBrowserAgent::SetInfobarInteractionHandler( + InfobarType type, + std::unique_ptr<InfobarInteractionHandler> interaction_handler) { + // Only one installer should be set for a single request type. Otherwise, the + // previously-set handler will be destroyed and callbacks forwarded to it will + // crash. + DCHECK(!interaction_handlers_[type]); + // Create callback installers for each supported handler. + const OverlayRequestSupport* support = interaction_handler->request_support(); + AddInstaller(std::make_unique<InfobarBannerOverlayRequestCallbackInstaller>( + support, interaction_handler->banner_handler()), + OverlayModality::kInfobarBanner); + InfobarDetailSheetInteractionHandler* sheet_handler = + interaction_handler->sheet_handler(); + if (sheet_handler) { + // TODO(crbug.com/1030357): Install callbacks for detail sheet when + // implemented. + } + InfobarModalInteractionHandler* modal_handler = + interaction_handler->modal_handler(); + if (modal_handler) { + // TODO(crbug.com/1030357): Install callbacks for modal when implemented. + } + // Add the interaction handler to the list. + interaction_handlers_[type] = std::move(interaction_handler); +} + +#pragma mark Private + +InfobarInteractionHandler* InfobarOverlayBrowserAgent::GetInteractionHandler( + OverlayRequest* request) { + auto& interaction_handler = + interaction_handlers_[GetOverlayRequestInfobarType(request)]; + DCHECK(interaction_handler); + DCHECK(interaction_handler->request_support()->IsRequestSupported(request)); + return interaction_handler.get(); +} + +#pragma mark - InfobarOverlayBrowserAgent::BannerVisibilityObserver + +InfobarOverlayBrowserAgent::BannerVisibilityObserver::BannerVisibilityObserver( + Browser* browser, + InfobarOverlayBrowserAgent* browser_agent) + : browser_agent_(browser_agent), scoped_observer_(this) { + DCHECK(browser_agent_); + scoped_observer_.Add( + OverlayPresenter::FromBrowser(browser, OverlayModality::kInfobarBanner)); +} + +InfobarOverlayBrowserAgent::BannerVisibilityObserver:: + ~BannerVisibilityObserver() = default; + +void InfobarOverlayBrowserAgent::BannerVisibilityObserver:: + BannerVisibilityChanged(OverlayRequest* request, bool visible) { + browser_agent_->GetInteractionHandler(request) + ->banner_handler() + ->BannerVisibilityChanged(GetOverlayRequestInfobar(request), visible); +} + +const OverlayRequestSupport* +InfobarOverlayBrowserAgent::BannerVisibilityObserver::GetRequestSupport( + OverlayPresenter* presenter) const { + return browser_agent_->GetRequestSupport(presenter->GetModality()); +} + +void InfobarOverlayBrowserAgent::BannerVisibilityObserver::DidShowOverlay( + OverlayPresenter* presenter, + OverlayRequest* request) { + BannerVisibilityChanged(request, /*visible=*/true); +} + +void InfobarOverlayBrowserAgent::BannerVisibilityObserver::DidHideOverlay( + OverlayPresenter* presenter, + OverlayRequest* request) { + BannerVisibilityChanged(request, /*visible=*/false); +} + +void InfobarOverlayBrowserAgent::BannerVisibilityObserver:: + OverlayPresenterDestroyed(OverlayPresenter* presenter) { + scoped_observer_.Remove(presenter); +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm new file mode 100644 index 0000000..0dc2d7b --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_unittest.mm
@@ -0,0 +1,117 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h" + +#import "ios/chrome/browser/browser_state/test_chrome_browser_state.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_banner_overlay_request_callback_installer.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h" +#import "ios/chrome/browser/infobars/test/fake_infobar_ios.h" +#import "ios/chrome/browser/main/browser_user_data.h" +#import "ios/chrome/browser/main/test_browser.h" +#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" +#include "ios/chrome/browser/overlays/public/infobar_banner/infobar_banner_overlay_responses.h" +#include "ios/chrome/browser/overlays/public/overlay_callback_manager.h" +#import "ios/chrome/browser/overlays/public/overlay_presenter.h" +#include "ios/chrome/browser/overlays/public/overlay_request.h" +#import "ios/chrome/browser/overlays/public/overlay_request_queue.h" +#include "ios/chrome/browser/overlays/public/overlay_response.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_presentation_context.h" +#include "ios/chrome/browser/overlays/test/fake_overlay_request_callback_installer.h" +#include "ios/chrome/browser/overlays/test/overlay_test_macros.h" +#import "ios/chrome/browser/web_state_list/fake_web_state_list_delegate.h" +#import "ios/chrome/browser/web_state_list/web_state_list.h" +#import "ios/chrome/browser/web_state_list/web_state_opener.h" +#import "ios/web/public/test/fakes/test_web_state.h" +#include "ios/web/public/test/web_task_environment.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/platform_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +// Test fixture for InfobarOverlayBrowserAgent. +class InfobarOverlayBrowserAgentTest : public PlatformTest { + public: + InfobarOverlayBrowserAgentTest() + : browser_state_(browser_state_builder_.Build()), + web_state_list_(&web_state_list_delegate_), + browser_(browser_state_.get(), &web_state_list_) { + // Add an activated WebState into whose queues infobar OverlayRequests will + // be added. + std::unique_ptr<web::WebState> web_state = + std::make_unique<web::TestWebState>(); + web_state_ = web_state.get(); + web_state_list_.InsertWebState(/*index=*/0, std::move(web_state), + WebStateList::INSERT_ACTIVATE, + WebStateOpener()); + // Set up the infobar banner OverlayPresenter's presentation context so that + // presentation can be faked. + banner_presenter()->SetPresentationContext(&banner_presentation_context_); + // Set up the browser agent. + InfobarOverlayBrowserAgent::CreateForBrowser(&browser_); + std::unique_ptr<MockInfobarInteractionHandler> interaction_handler = + std::make_unique<MockInfobarInteractionHandler>(); + mock_interaction_handler_ = interaction_handler.get(); + browser_agent()->SetInfobarInteractionHandler( + InfobarType::kInfobarTypeConfirm, std::move(interaction_handler)); + } + ~InfobarOverlayBrowserAgentTest() override { + banner_presenter()->SetPresentationContext(nullptr); + } + + InfobarOverlayBrowserAgent* browser_agent() { + return InfobarOverlayBrowserAgent::FromBrowser(&browser_); + } + OverlayPresenter* banner_presenter() { + return OverlayPresenter::FromBrowser(&browser_, + OverlayModality::kInfobarBanner); + } + OverlayRequestQueue* banner_queue() const { + return OverlayRequestQueue::FromWebState(web_state_, + OverlayModality::kInfobarBanner); + } + + protected: + web::WebTaskEnvironment task_environment_; + TestChromeBrowserState::Builder browser_state_builder_; + std::unique_ptr<ios::ChromeBrowserState> browser_state_; + FakeWebStateListDelegate web_state_list_delegate_; + WebStateList web_state_list_; + web::WebState* web_state_ = nullptr; + TestBrowser browser_; + FakeOverlayPresentationContext banner_presentation_context_; + FakeInfobarIOS infobar_; + MockInfobarInteractionHandler* mock_interaction_handler_ = nullptr; +}; + +// Tests that the interaction handler is notified of banner presentation and +// dismissal. The rest of InfobarBannerInteractionHandler's interface is tested +// by InfobarBannerOverlayRequestCallbackInstallerTest. +TEST_F(InfobarOverlayBrowserAgentTest, BannerPresentation) { + // Add an infobar request to the banner modality, expecting + // InfobarBannerInteractionHandler::BannerVisibilityChanged() to be called. + std::unique_ptr<OverlayRequest> added_request = + OverlayRequest::CreateWithConfig<InfobarOverlayRequestConfig>(&infobar_); + OverlayRequest* request = added_request.get(); + MockInfobarBannerInteractionHandler& mock_banner_handler = + *mock_interaction_handler_->mock_banner_handler(); + EXPECT_CALL(mock_banner_handler, + BannerVisibilityChanged(&infobar_, /*visible=*/true)); + banner_queue()->AddRequest(std::move(added_request)); + // Set up the completion response and expect for the interaction handler to + // receive the BannerCompleted() callback. + bool user_initiated = true; + request->GetCallbackManager()->SetCompletionResponse( + OverlayResponse::CreateWithInfo<InfobarBannerCompletionResponse>( + user_initiated)); + EXPECT_CALL(mock_banner_handler, BannerCompleted(&infobar_, user_initiated)); + // Simulate dismissal of the request's UI, expecting + // InfobarBannerInteractionHandler::BannerVisibilityChanged() to be called. + EXPECT_CALL(mock_banner_handler, + BannerVisibilityChanged(&infobar_, /*visible=*/false)); + banner_presentation_context_.SimulateDismissalForRequest( + request, OverlayDismissalReason::kUserInteraction); +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.h b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.h new file mode 100644 index 0000000..2587034 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.h
@@ -0,0 +1,14 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_ + +class Browser; + +// Attaches browser agents to |browser| that manage the model changes for +// infobar UI presented via OverlayPresenter. +void AttachInfobarOverlayBrowserAgent(Browser* browser); + +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm new file mode 100644 index 0000000..7b7635a --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.mm
@@ -0,0 +1,21 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.h" + +#include "base/feature_list.h" +#import "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent.h" +#import "ios/chrome/browser/ui/infobars/infobar_feature.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +void AttachInfobarOverlayBrowserAgent(Browser* browser) { + if (!base::FeatureList::IsEnabled(kInfobarOverlayUI)) + return; + InfobarOverlayBrowserAgent::CreateForBrowser(browser); + // TODO(crbug.com/1030357): Add InfobarInteractionHandlers for each + // InfobarType when implemented. +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/BUILD.gn b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/BUILD.gn new file mode 100644 index 0000000..6ab7295 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/BUILD.gn
@@ -0,0 +1,16 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("interaction_handlers") { + configs += [ "//build/config/compiler:enable_arc" ] + friend = [ ":unit_tests" ] + sources = [ + "infobar_interaction_handler.h", + "infobar_interaction_handler.mm", + ] + deps = [ + "//base", + "//ios/chrome/browser/overlays", + ] +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h new file mode 100644 index 0000000..4499741 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h
@@ -0,0 +1,99 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_INFOBAR_INTERACTION_HANDLER_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_INFOBAR_INTERACTION_HANDLER_H_ + +#include <memory> + +#include "ios/chrome/browser/overlays/public/overlay_request_support.h" + +class InfoBarIOS; +namespace web { +class WebState; +} + +// Handler for infobar banner user interaction events. +class InfobarBannerInteractionHandler { + public: + virtual ~InfobarBannerInteractionHandler() = default; + + // Updates the model when the visibility of |infobar|'s banner is changed. + virtual void BannerVisibilityChanged(InfoBarIOS* infobar, bool visible) = 0; + // Updates the model when the main button is tapped for |infobar|'s banner. + virtual void MainButtonTapped(InfoBarIOS* infobar) = 0; + // Shows the modal when the modal button is tapped for |infobar|'s banner. + // |web_state| is the WebState associated with |infobar|'s InfoBarManager. + virtual void ShowModalButtonTapped(InfoBarIOS* infobar, + web::WebState* web_state) = 0; + // Called when the banner overlay for |infobar| is completed. Called when the + // banner UI is dismissed by user interaction or when its request is + // cancelled. |user_initiated| describes whether the banner was dismissed for + // user interaction. + virtual void BannerCompleted(InfoBarIOS* infobar, bool user_initiated) = 0; +}; + +// Handler for infobar detail sheet user interaction events. +class InfobarDetailSheetInteractionHandler { + public: + virtual ~InfobarDetailSheetInteractionHandler() = default; + // TODO(crbug.com/1030357): Add interaction handling for detail sheets. +}; + +// Handler for infobar modal user interaction events. +class InfobarModalInteractionHandler { + public: + virtual ~InfobarModalInteractionHandler() = default; + // TODO(crbug.com/1030357): Add interaction handling for modals. +}; + +// Helper object, intended to be subclassed, that encapsulates the model-layer +// updates required for interaction with each type of UI used to display an +// infobar. Subclasses should be created for each InfobarType to manage the +// user interaction for InfoBars of that type. +class InfobarInteractionHandler { + public: + virtual ~InfobarInteractionHandler(); + + // Returns the request support for the handler. Interaction events will only + // be handled for supported requests. Guaranteed to be non-null. + const OverlayRequestSupport* request_support() const { + return request_support_; + } + + // Returns the handlers for each InfobarOverlayType. Guaranteed to be + // non-null. + InfobarBannerInteractionHandler* banner_handler() const { + return banner_handler_.get(); + } + // Returns the detail sheet handler for this interaction handler. + InfobarDetailSheetInteractionHandler* sheet_handler() const { + return sheet_handler_.get(); + } + // Returns the modal handler for this interaction handler. + InfobarModalInteractionHandler* modal_handler() const { + return modal_handler_.get(); + } + + protected: + // Initializer used by subclasses that return the passed handlers from the + // getters above. |banner_handler| must be non-null for all InfobarTypes. + // |sheet_handler| and |modal_handler| may be null if the infobar whose + // interactions are being handled do not support these overlay types. + InfobarInteractionHandler( + const OverlayRequestSupport* request_support, + std::unique_ptr<InfobarBannerInteractionHandler> banner_handler, + std::unique_ptr<InfobarDetailSheetInteractionHandler> sheet_handler, + std::unique_ptr<InfobarModalInteractionHandler> modal_handler); + + // The request support passed on initialization. Only interactions with + // supported requests should be handled by this instance. + const OverlayRequestSupport* request_support_ = nullptr; + // The interaction handlers passed on initialization. + std::unique_ptr<InfobarBannerInteractionHandler> banner_handler_; + std::unique_ptr<InfobarDetailSheetInteractionHandler> sheet_handler_; + std::unique_ptr<InfobarModalInteractionHandler> modal_handler_; +}; + +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_INFOBAR_INTERACTION_HANDLER_H_
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.mm new file mode 100644 index 0000000..c32775a --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.mm
@@ -0,0 +1,26 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h" + +#include "base/logging.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +InfobarInteractionHandler::InfobarInteractionHandler( + const OverlayRequestSupport* request_support, + std::unique_ptr<InfobarBannerInteractionHandler> banner_handler, + std::unique_ptr<InfobarDetailSheetInteractionHandler> sheet_handler, + std::unique_ptr<InfobarModalInteractionHandler> modal_handler) + : request_support_(request_support), + banner_handler_(std::move(banner_handler)), + sheet_handler_(std::move(sheet_handler)), + modal_handler_(std::move(modal_handler)) { + DCHECK(request_support_); + DCHECK(banner_handler_.get()); +} + +InfobarInteractionHandler::~InfobarInteractionHandler() = default;
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/BUILD.gn b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/BUILD.gn new file mode 100644 index 0000000..0e8919e --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/BUILD.gn
@@ -0,0 +1,25 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("test") { + testonly = true + sources = [ + "mock_infobar_interaction_handler.h", + "mock_infobar_interaction_handler.mm", + ] + + configs += [ "//build/config/compiler:enable_arc" ] + + deps = [ + "//base", + "//ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers", + "//ios/chrome/browser/overlays", + "//ios/chrome/browser/overlays/public/common/infobars", + "//ios/chrome/browser/overlays/public/infobar_banner", + "//ios/chrome/browser/overlays/test", + "//ios/web/public/test/fakes", + "//testing/gmock", + "//testing/gtest", + ] +}
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h new file mode 100644 index 0000000..3ec809f --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h
@@ -0,0 +1,71 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_TEST_MOCK_INFOBAR_INTERACTION_HANDLER_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_TEST_MOCK_INFOBAR_INTERACTION_HANDLER_H_ + +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/infobar_interaction_handler.h" +#include "testing/gmock/include/gmock/gmock.h" + +// Mock version of InfobarBannerInteractionHandler. +class MockInfobarBannerInteractionHandler + : public InfobarBannerInteractionHandler { + public: + MockInfobarBannerInteractionHandler(); + ~MockInfobarBannerInteractionHandler() override; + + MOCK_METHOD2(BannerVisibilityChanged, + void(InfoBarIOS* infobar, bool visible)); + MOCK_METHOD1(MainButtonTapped, void(InfoBarIOS* infobar)); + MOCK_METHOD2(ShowModalButtonTapped, + void(InfoBarIOS* infobar, web::WebState* web_state)); + MOCK_METHOD2(BannerCompleted, void(InfoBarIOS* infobar, bool user_initiated)); +}; + +// Mock version of InfobarDetailSheetInteractionHandler. +class MockInfobarDetailSheetInteractionHandler + : public InfobarDetailSheetInteractionHandler { + public: + MockInfobarDetailSheetInteractionHandler(); + ~MockInfobarDetailSheetInteractionHandler() override; + + // TODO(crbug.com/1030357): Add mock interaction handling for detail sheets. +}; + +// Mock version of MockInfobarModalInteractionHandler. +class MockInfobarModalInteractionHandler + : public InfobarModalInteractionHandler { + public: + MockInfobarModalInteractionHandler(); + ~MockInfobarModalInteractionHandler() override; + + // TODO(crbug.com/1030357): Add mock interaction handling for modals. +}; + +// InfobarModalInteractionHandler subclass that returns mock versions of the +// banner, detail sheet, and modal interaction handlers. +class MockInfobarInteractionHandler : public InfobarInteractionHandler { + public: + MockInfobarInteractionHandler(); + ~MockInfobarInteractionHandler() override; + + MockInfobarBannerInteractionHandler* mock_banner_handler() { + return mock_banner_handler_; + } + MockInfobarDetailSheetInteractionHandler* mock_sheet_handler() { + return mock_sheet_handler_; + } + MockInfobarModalInteractionHandler* mock_modal_handler() { + return mock_modal_handler_; + } + + private: + // Pointers to the mock handlers passed to the InfobarInteractionHandler + // constructor. Guaranteed to be non-null for the lifetime of the object. + MockInfobarBannerInteractionHandler* mock_banner_handler_ = nullptr; + MockInfobarDetailSheetInteractionHandler* mock_sheet_handler_ = nullptr; + MockInfobarModalInteractionHandler* mock_modal_handler_ = nullptr; +}; + +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_BROWSER_AGENT_INTERACTION_HANDLERS_TEST_MOCK_INFOBAR_INTERACTION_HANDLER_H_
diff --git a/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.mm b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.mm new file mode 100644 index 0000000..60fa1a6 --- /dev/null +++ b/ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.mm
@@ -0,0 +1,53 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/infobars/overlays/browser_agent/interaction_handlers/test/mock_infobar_interaction_handler.h" + +#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#pragma mark - MockInfobarBannerInteractionHandler + +MockInfobarBannerInteractionHandler::MockInfobarBannerInteractionHandler() = + default; + +MockInfobarBannerInteractionHandler::~MockInfobarBannerInteractionHandler() = + default; + +#pragma mark - MockInfobarDetailSheetInteractionHandler + +MockInfobarDetailSheetInteractionHandler:: + MockInfobarDetailSheetInteractionHandler() = default; + +MockInfobarDetailSheetInteractionHandler:: + ~MockInfobarDetailSheetInteractionHandler() = default; + +#pragma mark - MockInfobarModalInteractionHandler + +MockInfobarModalInteractionHandler::MockInfobarModalInteractionHandler() = + default; + +MockInfobarModalInteractionHandler::~MockInfobarModalInteractionHandler() = + default; + +#pragma mark - MockInfobarModalInteractionHandler + +MockInfobarInteractionHandler::MockInfobarInteractionHandler() + : InfobarInteractionHandler( + InfobarOverlayRequestConfig::RequestSupport(), + std::make_unique<MockInfobarBannerInteractionHandler>(), + std::make_unique<MockInfobarDetailSheetInteractionHandler>(), + std::make_unique<MockInfobarModalInteractionHandler>()) { + mock_banner_handler_ = + static_cast<MockInfobarBannerInteractionHandler*>(banner_handler()); + mock_sheet_handler_ = + static_cast<MockInfobarDetailSheetInteractionHandler*>(sheet_handler()); + mock_modal_handler_ = + static_cast<MockInfobarModalInteractionHandler*>(modal_handler()); +} + +MockInfobarInteractionHandler::~MockInfobarInteractionHandler() = default;
diff --git a/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.cc b/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.cc deleted file mode 100644 index c82ab34..0000000 --- a/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.cc +++ /dev/null
@@ -1,14 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.h" - -#include "base/feature_list.h" -#import "ios/chrome/browser/ui/infobars/infobar_feature.h" - -void AttachInfobarOverlayBrowserAgents(Browser* browser) { - if (!base::FeatureList::IsEnabled(kInfobarOverlayUI)) - return; - // TODO(crbug.com/1030357): Create browser agents. -}
diff --git a/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.h b/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.h deleted file mode 100644 index 60b440ac..0000000 --- a/ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.h +++ /dev/null
@@ -1,14 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_ -#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_ - -class Browser; - -// Attaches browser agents to |browser| that manage the model changes for -// infobar UI presented via OverlayPresenter. -void AttachInfobarOverlayBrowserAgents(Browser* browser); - -#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_INFOBAR_OVERLAY_BROWSER_AGENT_UTIL_H_
diff --git a/ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.h b/ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h similarity index 76% rename from ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.h rename to ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h index b46511c8..eaa158a 100644 --- a/ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.h +++ b/ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h
@@ -2,13 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_TYPE_UTIL_H_ -#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_TYPE_UTIL_H_ +#ifndef IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_UTIL_H_ +#define IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_UTIL_H_ #import "ios/chrome/browser/infobars/infobar_type.h" +class InfoBarIOS; class OverlayRequest; +// Returns the InfoBarIOS used to configure |request|, or nullptr if it was not +// created with an infobar config. +InfoBarIOS* GetOverlayRequestInfobar(OverlayRequest* request); + // Returns the InfobarType of the InfoBar used to configure |request|. // |request| must be non-null and configured with an // InfobarOverlayRequestConfig. @@ -16,4 +21,4 @@ // InfobarType::kNone once added. InfobarType GetOverlayRequestInfobarType(OverlayRequest* request); -#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_TYPE_UTIL_H_ +#endif // IOS_CHROME_BROWSER_INFOBARS_OVERLAYS_OVERLAY_REQUEST_INFOBAR_UTIL_H_
diff --git a/ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.mm b/ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.mm similarity index 69% rename from ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.mm rename to ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.mm index a9df2e1..1e9b919b 100644 --- a/ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.mm +++ b/ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.mm
@@ -2,8 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.h" +#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h" +#include "ios/chrome/browser/infobars/infobar_ios.h" #import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h" #include "ios/chrome/browser/overlays/public/overlay_request.h" @@ -11,6 +12,12 @@ #error "This file requires ARC support." #endif +InfoBarIOS* GetOverlayRequestInfobar(OverlayRequest* request) { + InfobarOverlayRequestConfig* config = + request->GetConfig<InfobarOverlayRequestConfig>(); + return config ? config->infobar() : nullptr; +} + InfobarType GetOverlayRequestInfobarType(OverlayRequest* request) { return request->GetConfig<InfobarOverlayRequestConfig>()->infobar_type(); }
diff --git a/ios/chrome/browser/main/BUILD.gn b/ios/chrome/browser/main/BUILD.gn index e58c0ea..cb58fd1 100644 --- a/ios/chrome/browser/main/BUILD.gn +++ b/ios/chrome/browser/main/BUILD.gn
@@ -33,12 +33,11 @@ "//ios/chrome/browser/browser_state", "//ios/chrome/browser/crash_report/breadcrumbs", "//ios/chrome/browser/crash_report/breadcrumbs:feature_flags", - "//ios/chrome/browser/infobars/overlays:browser_agent_util", + "//ios/chrome/browser/infobars/overlays/browser_agent:browser_agent_util", "//ios/chrome/browser/sessions:serialisation", "//ios/chrome/browser/sessions:session_service", "//ios/chrome/browser/tabs", "//ios/chrome/browser/ui/commands", - "//ios/chrome/browser/ui/infobars:feature_flags", "//ios/chrome/browser/web_state_list", "//ios/public/provider/chrome/browser", ]
diff --git a/ios/chrome/browser/main/browser_agent_util.mm b/ios/chrome/browser/main/browser_agent_util.mm index dc145ebd..8f75d18 100644 --- a/ios/chrome/browser/main/browser_agent_util.mm +++ b/ios/chrome/browser/main/browser_agent_util.mm
@@ -7,7 +7,7 @@ #include "base/feature_list.h" #include "ios/chrome/browser/crash_report/breadcrumbs/breadcrumb_manager_browser_agent.h" #include "ios/chrome/browser/crash_report/breadcrumbs/features.h" -#include "ios/chrome/browser/infobars/overlays/infobar_overlay_browser_agent_util.h" +#include "ios/chrome/browser/infobars/overlays/browser_agent/infobar_overlay_browser_agent_util.h" #import "ios/chrome/browser/web_state_list/tab_insertion_browser_agent.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" @@ -20,7 +20,7 @@ BreadcrumbManagerBrowserAgent::CreateForBrowser(browser); } TabInsertionBrowserAgent::CreateForBrowser(browser); - AttachInfobarOverlayBrowserAgents(browser); + AttachInfobarOverlayBrowserAgent(browser); // This needs to be called last in case any downstream browser agents need to // access upstream agents created earlier in this function.
diff --git a/ios/chrome/browser/sync/ios_chrome_sync_client.mm b/ios/chrome/browser/sync/ios_chrome_sync_client.mm index 6e3cab8..f13eabb 100644 --- a/ios/chrome/browser/sync/ios_chrome_sync_client.mm +++ b/ios/chrome/browser/sync/ios_chrome_sync_client.mm
@@ -115,7 +115,7 @@ /*account_password_store=*/nullptr, ios::BookmarkSyncServiceFactory::GetForBrowserState(browser_state_)); - // TODO(crbug.com/1012660): Instantiate a specific client for ios. + // TODO(crbug.com/1019685): Instantiate a specific client for ios. trusted_vault_client_ = std::make_unique<syncer::FileBasedTrustedVaultClient>( browser_state_->GetStatePath().Append(kTrustedVaultFilename)); }
diff --git a/ios/chrome/browser/test/perf_test_with_bvc_ios.mm b/ios/chrome/browser/test/perf_test_with_bvc_ios.mm index b1e1942..a17d2f9 100644 --- a/ios/chrome/browser/test/perf_test_with_bvc_ios.mm +++ b/ios/chrome/browser/test/perf_test_with_bvc_ios.mm
@@ -167,6 +167,10 @@ SpinRunLoop(.5); PerfTest::TearDown(); + // Before destroying chrome_browser_state_ we need to make sure that no tasks + // are left on the ThreadPool since they might depend on it. + task_environment_.RunUntilIdle(); + // The profiles can be deallocated only after the BVC has been deallocated. chrome_browser_state_.reset(); }
diff --git a/ios/chrome/browser/ui/badges/badge_mediator.mm b/ios/chrome/browser/ui/badges/badge_mediator.mm index 888eb43..27dc363c 100644 --- a/ios/chrome/browser/ui/badges/badge_mediator.mm +++ b/ios/chrome/browser/ui/badges/badge_mediator.mm
@@ -11,7 +11,7 @@ #include "ios/chrome/browser/infobars/infobar_badge_tab_helper_delegate.h" #include "ios/chrome/browser/infobars/infobar_metrics_recorder.h" #import "ios/chrome/browser/infobars/infobar_type.h" -#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_type_util.h" +#include "ios/chrome/browser/infobars/overlays/overlay_request_infobar_util.h" #include "ios/chrome/browser/main/browser.h" #import "ios/chrome/browser/overlays/public/overlay_presenter.h" #import "ios/chrome/browser/overlays/public/overlay_presenter_observer_bridge.h"
diff --git a/ios/chrome/browser/ui/badges/badge_popup_menu_coordinator.mm b/ios/chrome/browser/ui/badges/badge_popup_menu_coordinator.mm index e9b87fa..8ff3222 100644 --- a/ios/chrome/browser/ui/badges/badge_popup_menu_coordinator.mm +++ b/ios/chrome/browser/ui/badges/badge_popup_menu_coordinator.mm
@@ -76,16 +76,6 @@ [self.consumer setPopupMenuItems:self.popupMenuItems]; } -#pragma mark - ContainedPresenterDelegate - -- (void)containedPresenterDidPresent:(id<ContainedPresenter>)presenter { - // noop. -} - -- (void)containedPresenterDidDismiss:(id<ContainedPresenter>)presenter { - // noop. -} - #pragma mark - PopupMenuPresenterDelegate - (void)popupMenuPresenterWillDismiss:(PopupMenuPresenter*)presenter {
diff --git a/ios/chrome/browser/ui/collection_view/cells/BUILD.gn b/ios/chrome/browser/ui/collection_view/cells/BUILD.gn index e49d4d2..f162551 100644 --- a/ios/chrome/browser/ui/collection_view/cells/BUILD.gn +++ b/ios/chrome/browser/ui/collection_view/cells/BUILD.gn
@@ -6,8 +6,6 @@ sources = [ "MDCCollectionViewCell+Chrome.h", "MDCCollectionViewCell+Chrome.mm", - "activity_indicator_cell.h", - "activity_indicator_cell.mm", "collection_view_account_item.h", "collection_view_account_item.mm", "collection_view_cell_constants.h", @@ -56,7 +54,6 @@ testonly = true sources = [ "MDCCollectionViewCell+Chrome_unittest.mm", - "activity_indicator_cell_unittest.mm", "collection_view_account_item_unittest.mm", "collection_view_footer_item_unittest.mm", "collection_view_item_unittest.mm",
diff --git a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.h b/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.h deleted file mode 100644 index fa1cfa0..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.h +++ /dev/null
@@ -1,20 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// 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_COLLECTION_VIEW_CELLS_ACTIVITY_INDICATOR_CELL_H_ -#define IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_ACTIVITY_INDICATOR_CELL_H_ - -#import "ios/third_party/material_components_ios/src/components/CollectionCells/src/MaterialCollectionCells.h" - -extern const CGFloat kIndicatorSize; - -@class MDCActivityIndicator; - -// MDCCollectionViewCell that displays an activity indicator. -@interface ActivityIndicatorCell : MDCCollectionViewCell - -@property(nonatomic, strong) MDCActivityIndicator* activityIndicator; - -@end -#endif // IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_ACTIVITY_INDICATOR_CELL_H_
diff --git a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.mm b/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.mm deleted file mode 100644 index 5b2d479..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.mm +++ /dev/null
@@ -1,45 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.h" - -#import "ios/chrome/browser/ui/collection_view/cells/MDCCollectionViewCell+Chrome.h" -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" -#import "ios/chrome/browser/ui/material_components/activity_indicator.h" -#import "ios/third_party/material_components_ios/src/components/ActivityIndicator/src/MaterialActivityIndicator.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -const CGFloat kIndicatorSize = 32; - -@implementation ActivityIndicatorCell - -@synthesize activityIndicator = _activityIndicator; - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - _activityIndicator = [[MDCActivityIndicator alloc] - initWithFrame:CGRectMake(0, 0, kIndicatorSize, kIndicatorSize)]; - _activityIndicator.cycleColors = ActivityIndicatorBrandedCycleColors(); - [self.contentView addSubview:_activityIndicator]; - _activityIndicator.translatesAutoresizingMaskIntoConstraints = NO; - [NSLayoutConstraint activateConstraints:@[ - [_activityIndicator.topAnchor - constraintEqualToAnchor:self.contentView.topAnchor], - [_activityIndicator.bottomAnchor - constraintEqualToAnchor:self.contentView.bottomAnchor], - [_activityIndicator.leadingAnchor - constraintEqualToAnchor:self.contentView.leadingAnchor], - [_activityIndicator.trailingAnchor - constraintEqualToAnchor:self.contentView.trailingAnchor], - ]]; - [_activityIndicator startAnimating]; - } - return self; -} - -@end
diff --git a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell_unittest.mm b/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell_unittest.mm deleted file mode 100644 index 4bd5640..0000000 --- a/ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell_unittest.mm +++ /dev/null
@@ -1,32 +0,0 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#import "ios/chrome/browser/ui/collection_view/cells/activity_indicator_cell.h" - -#import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" -#import "ios/third_party/material_components_ios/src/components/ActivityIndicator/src/MaterialActivityIndicator.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { - -using ActivityIndicatorItemTest = PlatformTest; - -// Tests that when an ActivityIndicatorCell is configured, it has a -// MDCActivityIndicator that is animating. -TEST_F(ActivityIndicatorItemTest, CellDisplaysActivityIndicator) { - CollectionViewItem* item = [[CollectionViewItem alloc] initWithType:0]; - item.cellClass = [ActivityIndicatorCell class]; - ActivityIndicatorCell* cell = - [[ActivityIndicatorCell alloc] initWithFrame:CGRectZero]; - [item configureCell:cell]; - MDCActivityIndicator* activity_indicator = cell.activityIndicator; - EXPECT_TRUE([activity_indicator isDescendantOfView:cell]); - EXPECT_TRUE(activity_indicator.isAnimating); -} -}
diff --git a/ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h b/ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h index 31f0c8c..6b9e027 100644 --- a/ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h +++ b/ios/chrome/browser/ui/collection_view/cells/collection_view_cell_constants.h
@@ -7,31 +7,13 @@ #import <CoreGraphics/CoreGraphics.h> -// The amount of padding at the top and bottom of UIKit-style cells. -const CGFloat kUIKitVerticalPadding = 16; - // The font size to use for main text in UIKit-style cells. const CGFloat kUIKitMainFontSize = 17; -// The font size to use for detail text that is on the trailing edge -// of the top line. -const CGFloat kUIKitDetailFontSize = 17; - // The font size to use for detail text that is on its own line. const CGFloat kUIKitMultilineDetailFontSize = 12; // The font size and color to use for footer text in UIKit-style cells. const CGFloat kUIKitFooterFontSize = 13; -// The tint color to use for switches in UIKit-style cells. -const int kUIKitSwitchTintColor = 0x1A73E8; - -// The font size and color to use for headers in UIKit-style cells. -const int kUIKitHeaderTextColor = 0x000000; -const CGFloat kUIKitHeaderTextAlpha = 0.5; -const CGFloat kUIKitHeaderFontSize = 13; - -// The color to use for separators between UIKit-style cells. -const int kUIKitSeparatorColor = 0xC8C7CC; - #endif // IOS_CHROME_BROWSER_UI_COLLECTION_VIEW_CELLS_COLLECTION_VIEW_CELL_CONSTANTS_H_
diff --git a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm index ba047a1..7328903 100644 --- a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm +++ b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
@@ -173,10 +173,6 @@ } } -- (void)containedPresenterDidDismiss:(id<ContainedPresenter>)presenter { - // No-op. -} - #pragma mark - PopupMenuPresenterDelegate - (void)popupMenuPresenterWillDismiss:(PopupMenuPresenter*)presenter {
diff --git a/ios/chrome/browser/ui/popup_menu/public/popup_menu_presenter.mm b/ios/chrome/browser/ui/popup_menu/public/popup_menu_presenter.mm index c9184476..68217d8 100644 --- a/ios/chrome/browser/ui/popup_menu/public/popup_menu_presenter.mm +++ b/ios/chrome/browser/ui/popup_menu/public/popup_menu_presenter.mm
@@ -141,7 +141,10 @@ CGAffineTransformIdentity; } withCompletion:^(BOOL finished) { - [self.delegate containedPresenterDidPresent:self]; + if ([self.delegate + respondsToSelector:@selector(containedPresenterDidPresent:)]) { + [self.delegate containedPresenterDidPresent:self]; + } }]; } @@ -153,7 +156,10 @@ [self.popupViewController.view removeFromSuperview]; [self.popupViewController removeFromParentViewController]; self.popupViewController = nil; - [self.delegate containedPresenterDidDismiss:self]; + if ([self.delegate + respondsToSelector:@selector(containedPresenterDidDismiss:)]) { + [self.delegate containedPresenterDidDismiss:self]; + } }; if (animated) { [self
diff --git a/ios/chrome/browser/ui/presenters/contained_presenter_delegate.h b/ios/chrome/browser/ui/presenters/contained_presenter_delegate.h index edf5a15..908b21a4 100644 --- a/ios/chrome/browser/ui/presenters/contained_presenter_delegate.h +++ b/ios/chrome/browser/ui/presenters/contained_presenter_delegate.h
@@ -11,8 +11,11 @@ // Protocol for an object which acts as a delegate for a contained presenter, // and which is informed about dismissal events. -@protocol ContainedPresenterDelegate +@protocol ContainedPresenterDelegate <NSObject> +@optional + +// Tells the delegate that |presenter| has finished presenting. - (void)containedPresenterDidPresent:(id<ContainedPresenter>)presenter; // Tells the delegate that |presenter| has finished dismissing.
diff --git a/ios/chrome/browser/ui/presenters/non_modal_view_controller_presenter.mm b/ios/chrome/browser/ui/presenters/non_modal_view_controller_presenter.mm index 899b468d..ec8be5e 100644 --- a/ios/chrome/browser/ui/presenters/non_modal_view_controller_presenter.mm +++ b/ios/chrome/browser/ui/presenters/non_modal_view_controller_presenter.mm
@@ -68,7 +68,10 @@ auto completion = ^void(UIViewAnimatingPosition) { [weakSelf.presentedViewController didMoveToParentViewController:weakSelf.baseViewController]; - [weakSelf.delegate containedPresenterDidPresent:weakSelf]; + if ([weakSelf.delegate + respondsToSelector:@selector(containedPresenterDidPresent:)]) { + [weakSelf.delegate containedPresenterDidPresent:weakSelf]; + } }; if (animated) { @@ -98,7 +101,10 @@ [weakSelf.presentedViewController.view removeFromSuperview]; [weakSelf.presentedViewController removeFromParentViewController]; [weakSelf.containerView removeFromSuperview]; - [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; + if ([weakSelf.delegate + respondsToSelector:@selector(containedPresenterDidDismiss:)]) { + [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; + } }; if (animated) {
diff --git a/ios/chrome/browser/ui/presenters/vertical_animation_container.mm b/ios/chrome/browser/ui/presenters/vertical_animation_container.mm index 2ff26a63b..b67a4e1 100644 --- a/ios/chrome/browser/ui/presenters/vertical_animation_container.mm +++ b/ios/chrome/browser/ui/presenters/vertical_animation_container.mm
@@ -87,7 +87,10 @@ [self.baseViewController.view layoutIfNeeded]; }; auto completion = ^(BOOL finished) { - [self.delegate containedPresenterDidPresent:self]; + if ([self.delegate + respondsToSelector:@selector(containedPresenterDidPresent:)]) { + [self.delegate containedPresenterDidPresent:self]; + } }; if (animated) { @@ -116,7 +119,10 @@ }; auto completion = ^(BOOL finished) { [self cleanUpAfterDismissal]; - [self.delegate containedPresenterDidDismiss:self]; + if ([self.delegate + respondsToSelector:@selector(containedPresenterDidDismiss:)]) { + [self.delegate containedPresenterDidDismiss:self]; + } }; if (animated) {
diff --git a/ios/chrome/browser/ui/settings/block_popups_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/block_popups_table_view_controller_unittest.mm index cd86a8c..ce5fab72 100644 --- a/ios/chrome/browser/ui/settings/block_popups_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/block_popups_table_view_controller_unittest.mm
@@ -115,7 +115,8 @@ EXPECT_EQ(2, NumberOfSections()); EXPECT_EQ(1, NumberOfItemsInSection(1)); CheckSectionHeaderWithId(IDS_IOS_POPUPS_ALLOWED, 1); - CheckTextCellText(base::SysUTF8ToNSString(kAllowedPattern), 1, 0); + CheckTextCellTextAndDetailText(base::SysUTF8ToNSString(kAllowedPattern), nil, + 1, 0); EXPECT_TRUE([controller() navigationItem].rightBarButtonItem); }
diff --git a/ios/chrome/browser/ui/settings/privacy_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/privacy_table_view_controller_unittest.mm index 95dcd1b..32b1fbd 100644 --- a/ios/chrome/browser/ui/settings/privacy_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/privacy_table_view_controller_unittest.mm
@@ -107,8 +107,8 @@ // Sections[1]. EXPECT_EQ(1, NumberOfItemsInSection(1)); - CheckTextCellText(l10n_util::GetNSString(IDS_IOS_CLEAR_BROWSING_DATA_TITLE), - 1, 0); + CheckTextCellTextAndDetailText( + l10n_util::GetNSString(IDS_IOS_CLEAR_BROWSING_DATA_TITLE), nil, 1, 0); } } // namespace
diff --git a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm index 0cfe966..3d509a0 100644 --- a/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/settings/search_engine_table_view_controller_unittest.mm
@@ -7,6 +7,7 @@ #include <memory> #include "base/compiler_specific.h" +#include "base/files/scoped_temp_dir.h" #include "base/mac/foundation_util.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" @@ -64,6 +65,10 @@ void SetUp() override { ChromeTableViewControllerTest::SetUp(); TestChromeBrowserState::Builder test_cbs_builder; + + ASSERT_TRUE(state_dir_.CreateUniqueTempDir()); + test_cbs_builder.SetPath(state_dir_.GetPath()); + test_cbs_builder.AddTestingFactory( ios::TemplateURLServiceFactory::GetInstance(), ios::TemplateURLServiceFactory::GetDefaultFactory()); @@ -223,6 +228,11 @@ base::test::ios::kWaitForUIElementTimeout, condition); } + // A state directory that outlives |task_environment_| is needed because + // CreateHistoryService/CreateBookmarkModel use the directory to host + // databases. See https://crbug.com/546640 for more details. + base::ScopedTempDir state_dir_; + web::WebTaskEnvironment task_environment_; std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; base::HistogramTester histogram_tester_;
diff --git a/ios/chrome/browser/ui/settings/settings_root_view_controlling.h b/ios/chrome/browser/ui/settings/settings_root_view_controlling.h index 8ff534a..b7f7acfa 100644 --- a/ios/chrome/browser/ui/settings/settings_root_view_controlling.h +++ b/ios/chrome/browser/ui/settings/settings_root_view_controlling.h
@@ -11,9 +11,7 @@ @protocol BrowserCommands; @protocol BrowsingDataCommands; -// TODO(crbug.com/894800): This protocol is added to have a common interface -// between the SettingsRootViewControllers for table views and collections. -// Remove it once it is completed. +// Protocol allowing the dispatcher to be passed to the settings ViewController. @protocol SettingsRootViewControlling // The dispatcher used by this ViewController.
diff --git a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm index 50069511..20558426 100644 --- a/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm +++ b/ios/chrome/browser/ui/table_view/chrome_table_view_controller_test.mm
@@ -115,9 +115,6 @@ CheckSectionFooter(l10n_util::GetNSString(expected_text_id), section); } -// TODO(crbug.com/894800): There are some unittests that are using -// CheckTextCellText to check Item with both "text" and "detailText". Change all -// of them to CheckTextCellTextAndDetailText when the migration is finished. void ChromeTableViewControllerTest::CheckTextCellText(NSString* expected_text, int section, int item) {
diff --git a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm index dc377c72..6e007d5 100644 --- a/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm +++ b/ios/chrome/browser/ui/toolbar/accessory/toolbar_accessory_presenter.mm
@@ -96,7 +96,10 @@ completion:^(BOOL finished) { [weakSelf.presentedViewController didMoveToParentViewController:weakSelf.baseViewController]; - [weakSelf.delegate containedPresenterDidPresent:weakSelf]; + if ([weakSelf.delegate + respondsToSelector:@selector(containedPresenterDidPresent:)]) { + [weakSelf.delegate containedPresenterDidPresent:weakSelf]; + } }]; } @@ -108,7 +111,10 @@ [weakSelf.presentedViewController.view removeFromSuperview]; [weakSelf.presentedViewController removeFromParentViewController]; [weakSelf.backgroundView removeFromSuperview]; - [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; + if ([weakSelf.delegate + respondsToSelector:@selector(containedPresenterDidDismiss:)]) { + [weakSelf.delegate containedPresenterDidDismiss:weakSelf]; + } weakSelf.backgroundView = nil; }; if (animated) {
diff --git a/ios/chrome/browser/ui/translate/legacy_translate_infobar_coordinator.mm b/ios/chrome/browser/ui/translate/legacy_translate_infobar_coordinator.mm index 11a192c..47eb851e 100644 --- a/ios/chrome/browser/ui/translate/legacy_translate_infobar_coordinator.mm +++ b/ios/chrome/browser/ui/translate/legacy_translate_infobar_coordinator.mm
@@ -199,16 +199,6 @@ } } -#pragma mark - ContainedPresenterDelegate - -- (void)containedPresenterDidPresent:(id<ContainedPresenter>)presenter { - // noop. -} - -- (void)containedPresenterDidDismiss:(id<ContainedPresenter>)presenter { - // noop. -} - #pragma mark - PopupMenuPresenterDelegate - (void)popupMenuPresenterWillDismiss:(PopupMenuPresenter*)presenter {
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 0ac1307..1df0f72 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -191,6 +191,7 @@ "//ios/chrome/browser/history:unit_tests", "//ios/chrome/browser/infobars:unit_tests", "//ios/chrome/browser/infobars/overlays:unit_tests", + "//ios/chrome/browser/infobars/overlays/browser_agent:unit_tests", "//ios/chrome/browser/itunes_urls:unit_tests", "//ios/chrome/browser/json_parser:unit_tests", "//ios/chrome/browser/language:unit_tests",
diff --git a/ios/chrome/test/fakes/fake_contained_presenter.mm b/ios/chrome/test/fakes/fake_contained_presenter.mm index d662b30..f885472 100644 --- a/ios/chrome/test/fakes/fake_contained_presenter.mm +++ b/ios/chrome/test/fakes/fake_contained_presenter.mm
@@ -40,7 +40,10 @@ [self.presentedViewController willMoveToParentViewController:nil]; [self.presentedViewController.view removeFromSuperview]; [self.presentedViewController removeFromParentViewController]; - [self.delegate containedPresenterDidDismiss:self]; + if ([self.delegate + respondsToSelector:@selector(containedPresenterDidDismiss:)]) { + [self.delegate containedPresenterDidDismiss:self]; + } } @end
diff --git a/media/gpu/v4l2/v4l2_decode_surface.cc b/media/gpu/v4l2/v4l2_decode_surface.cc index b72b73a..30b918e 100644 --- a/media/gpu/v4l2/v4l2_decode_surface.cc +++ b/media/gpu/v4l2/v4l2_decode_surface.cc
@@ -106,15 +106,6 @@ ctrls->config_store = config_store_; } -void V4L2ConfigStoreDecodeSurface::PrepareQueueBuffer( - struct v4l2_buffer* buffer) const { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_NE(buffer, nullptr); - DCHECK_GT(config_store_, 0u); - - buffer->config_store = config_store_; -} - uint64_t V4L2ConfigStoreDecodeSurface::GetReferenceID() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -124,37 +115,35 @@ bool V4L2ConfigStoreDecodeSurface::Submit() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_GT(config_store_, 0u); - // There is nothing extra to submit when using the config store - return true; + input_buffer().SetConfigStore(config_store_); + + if (!std::move(input_buffer()).QueueMMap()) { + return false; + } + + switch (output_buffer().Memory()) { + case V4L2_MEMORY_MMAP: + return std::move(output_buffer()).QueueMMap(); + case V4L2_MEMORY_DMABUF: + return std::move(output_buffer()).QueueDMABuf(video_frame()->DmabufFds()); + default: + NOTREACHED() << "We should only use MMAP or DMABUF."; + } + + return false; } void V4L2RequestDecodeSurface::PrepareSetCtrls( struct v4l2_ext_controls* ctrls) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_NE(ctrls, nullptr); - DCHECK(request_ref_.IsValid()); ctrls->which = V4L2_CTRL_WHICH_REQUEST_VAL; request_ref_.SetCtrls(ctrls); } -void V4L2RequestDecodeSurface::PrepareQueueBuffer( - struct v4l2_buffer* buffer) const { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_NE(buffer, nullptr); - DCHECK(request_ref_.IsValid()); - - request_ref_.SetQueueBuffer(buffer); - // Use the output buffer index as the timestamp. - // Since the client is supposed to keep the output buffer out of the V4L2 - // queue for as long as it is used as a reference frame, this ensures that - // all the requests we submit have unique IDs at any point in time. - DCHECK_EQ(static_cast<int>(buffer->index), input_record()); - buffer->timestamp.tv_sec = 0; - buffer->timestamp.tv_usec = output_record(); -} - uint64_t V4L2RequestDecodeSurface::GetReferenceID() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -165,9 +154,37 @@ bool V4L2RequestDecodeSurface::Submit() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(request_ref_.IsValid()); + // Use the output buffer index as the timestamp. + // Since the client is supposed to keep the output buffer out of the V4L2 + // queue for as long as it is used as a reference frame, this ensures that + // all the requests we submit have unique IDs at any point in time. + struct timeval timestamp = { + .tv_sec = 0, + .tv_usec = output_record() + }; + input_buffer().SetTimeStamp(timestamp); - return std::move(request_ref_).Submit().IsValid(); + if (!std::move(input_buffer()).QueueMMap(&request_ref_)) { + return false; + } + + bool result = false; + switch (output_buffer().Memory()) { + case V4L2_MEMORY_MMAP: + result = std::move(output_buffer()).QueueMMap(); + break; + case V4L2_MEMORY_DMABUF: + result = std::move(output_buffer()) + .QueueDMABuf(video_frame()->DmabufFds()); + break; + default: + NOTREACHED() << "We should only use MMAP or DMABUF."; + } + + if (!result) + return result; + + return std::move(request_ref_).Submit().has_value(); } } // namespace media
diff --git a/media/gpu/v4l2/v4l2_decode_surface.h b/media/gpu/v4l2/v4l2_decode_surface.h index f979bee..865883b 100644 --- a/media/gpu/v4l2/v4l2_decode_surface.h +++ b/media/gpu/v4l2/v4l2_decode_surface.h
@@ -56,13 +56,10 @@ // Update the passed v4l2_ext_controls structure to add the request or // config store information. virtual void PrepareSetCtrls(struct v4l2_ext_controls* ctrls) const = 0; - // Update the passed v4l2_buffer structure to add the request or - // config store information. - virtual void PrepareQueueBuffer(struct v4l2_buffer* buffer) const = 0; // Return the ID to use in order to reference this frame. virtual uint64_t GetReferenceID() const = 0; - // Submit the request corresponding to this surface once all controls have - // been set and all buffers queued. + // Set controls, queue buffers and submit the request corresponding to this + // surface. virtual bool Submit() = 0; bool decoded() const { return decoded_; } @@ -124,7 +121,6 @@ config_store_(this->input_buffer().BufferId() + 1) {} void PrepareSetCtrls(struct v4l2_ext_controls* ctrls) const override; - void PrepareQueueBuffer(struct v4l2_buffer* buffer) const override; uint64_t GetReferenceID() const override; bool Submit() override; @@ -151,7 +147,6 @@ request_ref_(std::move(request_ref)) {} void PrepareSetCtrls(struct v4l2_ext_controls* ctrls) const override; - void PrepareQueueBuffer(struct v4l2_buffer* buffer) const override; uint64_t GetReferenceID() const override; bool Submit() override;
diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc index caa8212..238dac6 100644 --- a/media/gpu/v4l2/v4l2_device.cc +++ b/media/gpu/v4l2/v4l2_device.cc
@@ -29,7 +29,6 @@ #include "media/gpu/chromeos/fourcc.h" #include "media/gpu/macros.h" #include "media/gpu/v4l2/generic_v4l2_device.h" -#include "media/gpu/v4l2/v4l2_decode_surface.h" #include "ui/gfx/native_pixmap_handle.h" #if defined(ARCH_CPU_ARMEL) @@ -43,6 +42,13 @@ namespace media { +namespace { + +// Maximum number of requests that can be created. +constexpr size_t kMaxNumRequests = 32; + +} // namespace + // Class used to store the state of a buffer that should persist between // reference creations. This includes: // * Result of initial VIDIOC_QUERYBUF ioctl, @@ -312,6 +318,7 @@ private: size_t BufferId() const { return v4l2_buffer_.index; } + friend class V4L2WritableBufferRef; // A weak pointer to the queue this buffer belongs to. Will remain valid as // long as the underlying V4L2 buffer is valid too. // This can only be accessed from the sequence protected by sequence_checker_. @@ -464,10 +471,13 @@ return static_cast<enum v4l2_memory>(buffer_data_->v4l2_buffer_.memory); } -bool V4L2WritableBufferRef::DoQueue() && { +bool V4L2WritableBufferRef::DoQueue(V4L2RequestRef* request_ref) && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); + if (request_ref && buffer_data_->queue_->SupportsRequests()) + request_ref->SetQueueBuffer(&(buffer_data_->v4l2_buffer_)); + bool queued = buffer_data_->QueueBuffer(); // Clear our own reference. @@ -476,7 +486,8 @@ return queued; } -bool V4L2WritableBufferRef::QueueMMap() && { +bool V4L2WritableBufferRef::QueueMMap( + V4L2RequestRef* request_ref) && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); @@ -488,10 +499,12 @@ return false; } - return std::move(self).DoQueue(); + return std::move(self).DoQueue(request_ref); } -bool V4L2WritableBufferRef::QueueUserPtr(const std::vector<void*>& ptrs) && { +bool V4L2WritableBufferRef::QueueUserPtr( + const std::vector<void*>& ptrs, + V4L2RequestRef* request_ref) && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); @@ -513,11 +526,12 @@ self.buffer_data_->v4l2_buffer_.m.planes[i].m.userptr = reinterpret_cast<unsigned long>(ptrs[i]); - return std::move(self).DoQueue(); + return std::move(self).DoQueue(request_ref); } bool V4L2WritableBufferRef::QueueDMABuf( - const std::vector<base::ScopedFD>& fds) && { + const std::vector<base::ScopedFD>& fds, + V4L2RequestRef* request_ref) && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); @@ -536,11 +550,12 @@ for (size_t i = 0; i < num_planes; i++) self.buffer_data_->v4l2_buffer_.m.planes[i].m.fd = fds[i].get(); - return std::move(self).DoQueue(); + return std::move(self).DoQueue(request_ref); } bool V4L2WritableBufferRef::QueueDMABuf( - const std::vector<gfx::NativePixmapPlane>& planes) && { + const std::vector<gfx::NativePixmapPlane>& planes, + V4L2RequestRef* request_ref) && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); @@ -559,7 +574,7 @@ for (size_t i = 0; i < num_planes; i++) self.buffer_data_->v4l2_buffer_.m.planes[i].m.fd = planes[i].fd.get(); - return std::move(self).DoQueue(); + return std::move(self).DoQueue(request_ref); } size_t V4L2WritableBufferRef::PlanesCount() const { @@ -666,11 +681,6 @@ buffer_data_->v4l2_buffer_.m.planes[plane].data_offset = data_offset; } -void V4L2WritableBufferRef::PrepareQueueBuffer( - const V4L2DecodeSurface& surface) { - surface.PrepareQueueBuffer(&(buffer_data_->v4l2_buffer_)); -} - size_t V4L2WritableBufferRef::BufferId() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(buffer_data_); @@ -678,6 +688,13 @@ return buffer_data_->v4l2_buffer_.index; } +void V4L2WritableBufferRef::SetConfigStore(uint32_t config_store) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(buffer_data_); + + buffer_data_->v4l2_buffer_.config_store = config_store; +} + V4L2ReadableBuffer::V4L2ReadableBuffer(const struct v4l2_buffer& v4l2_buffer, base::WeakPtr<V4L2Queue> queue) : buffer_data_( @@ -797,6 +814,24 @@ destroy_cb_(std::move(destroy_cb)), weak_this_factory_(this) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // Check if this queue support requests. + struct v4l2_requestbuffers reqbufs; + memset(&reqbufs, 0, sizeof(reqbufs)); + reqbufs.count = 0; + reqbufs.type = type; + reqbufs.memory = V4L2_MEMORY_MMAP; + if (device_->Ioctl(VIDIOC_REQBUFS, &reqbufs) != 0) { + VPLOGF(1) << "Request support checks's VIDIOC_REQBUFS ioctl failed."; + return; + } + + if (reqbufs.capabilities & V4L2_BUF_CAP_SUPPORTS_REQUESTS) { + supports_requests_ = true; + VLOGF(1) << "Using request API."; + } else { + VLOGF(1) << "Using config store API."; + } } V4L2Queue::~V4L2Queue() { @@ -1111,6 +1146,12 @@ #undef VPQLOGF #undef VQLOGF +bool V4L2Queue::SupportsRequests() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + return supports_requests_; +} + // This class is used to expose V4L2Queue's constructor to this module. This is // to ensure that nobody else can create instances of it. class V4L2QueueFactory { @@ -2059,30 +2100,32 @@ V4L2RequestRefBase::~V4L2RequestRefBase() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (IsValid()) + if (request_) request_->DecRefCounter(); } bool V4L2RequestRef::SetCtrls(struct v4l2_ext_controls* ctrls) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(request_, nullptr); return request_->SetCtrls(ctrls); } bool V4L2RequestRef::SetQueueBuffer(struct v4l2_buffer* buffer) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK_NE(request_, nullptr); return request_->SetQueueBuffer(buffer); } -V4L2SubmittedRequestRef V4L2RequestRef::Submit() && { +base::Optional<V4L2SubmittedRequestRef> V4L2RequestRef::Submit() && { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK_NE(request_, nullptr); V4L2RequestRef self(std::move(*this)); if (!self.request_->Submit()) - return V4L2SubmittedRequestRef(nullptr); + return base::nullopt; return V4L2SubmittedRequestRef(self.request_); } @@ -2114,60 +2157,50 @@ int ret = HANDLE_EINTR( ioctl(media_fd_.get(), MEDIA_IOC_REQUEST_ALLOC, &request_fd)); if (ret < 0) { - VPLOGF(1) << "Failed to create request."; + VPLOGF(1) << "Failed to create request"; return base::nullopt; } return base::ScopedFD(request_fd); } -bool V4L2RequestsQueue::AllocateRequests(size_t nb_requests) { +base::Optional<V4L2RequestRef> V4L2RequestsQueue::GetFreeRequest() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - // Only positive number of requests are valid. - if (nb_requests < 1) { - VLOGF(1) << "Failed to create requests. Request number must be 1 or more"; - return false; - } - - // Returns if requests have been already allocated. - if (!free_requests_.empty()) { - VLOGF(1) << "Requests already allocated"; - return false; - } - - // Creates the number of requested requests. - for (size_t i = 0; i < nb_requests; i++) { + V4L2Request* request_ptr = + free_requests_.empty() ? nullptr : free_requests_.front(); + if (request_ptr && request_ptr->IsCompleted()) { + // Previous request is already completed, just recycle it. + free_requests_.pop(); + } else if (requests_.size() < kMaxNumRequests) { + // No request yet, or not completed, but we can allocate a new one. auto request_fd = CreateRequestFD(); - if (request_fd.has_value()) { - // Not using std::make_unique because constructor is private. - std::unique_ptr<V4L2Request> request( - new V4L2Request(std::move(request_fd.value()), this)); - free_requests_.push(request.get()); - requests_.push_back(std::move(request)); - } else { - requests_.clear(); - VPLOGF(1) << "Failed to created number of requested requests."; - return false; + if (!request_fd.has_value()) { + VLOGF(1) << "Error while creating a new request FD!"; + return base::nullopt; } + // Not using std::make_unique because constructor is private. + std::unique_ptr<V4L2Request> request( + new V4L2Request(std::move(*request_fd), this)); + request_ptr = request.get(); + requests_.push_back(std::move(request)); + VLOGF(4) << "Allocated new request, total number: " << requests_.size(); + } else { + // Request is not completed and we have reached the maximum number. + // Wait for it to complete. + VLOGF(1) << "Waiting for request completion. This probably means a " + << "request is blocking."; + if (!request_ptr->WaitForCompletion()) { + VLOG(1) << "Timeout while waiting for request to complete."; + return base::nullopt; + } + free_requests_.pop(); } - return true; -} - -V4L2RequestRef V4L2RequestsQueue::GetFreeRequest() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - - // Gets a request in the front of the queue and checked is free to be used. - // If no request is available, still returns a request reference but the - // request will null which will make it marked invalid. - V4L2Request* request_ptr = nullptr; - if (!free_requests_.empty()) { - request_ptr = free_requests_.front(); - if (request_ptr->WaitForCompletion() && request_ptr->Reset()) - free_requests_.pop(); - else - request_ptr = nullptr; + DCHECK(request_ptr); + if (!request_ptr->Reset()) { + VPLOGF(1) << "Failed to reset request"; + return base::nullopt; } return V4L2RequestRef(request_ptr);
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h index 9ddfb8d..0ec46b9 100644 --- a/media/gpu/v4l2/v4l2_device.h +++ b/media/gpu/v4l2/v4l2_device.h
@@ -63,6 +63,7 @@ class V4L2BufferRefBase; class V4L2BuffersList; class V4L2DecodeSurface; +class V4L2RequestRef; // A unique reference to a buffer for clients to prepare and submit. // @@ -80,36 +81,47 @@ enum v4l2_memory Memory() const; // Queue a MMAP buffer. + // When requests are supported, a |request_ref| can be passed along this + // the buffer to be submitted. // If successful, true is returned and the reference to the buffer is dropped // so this reference becomes invalid. // In case of error, false is returned and the buffer is returned to the free // list. - bool QueueMMap() &&; + bool QueueMMap(V4L2RequestRef* request_ref = nullptr) &&; // Queue a USERPTR buffer, assigning |ptrs| as pointer for each plane. // The size of |ptrs| must be equal to the number of planes of this buffer. + // When requests are supported, a |request_ref| can be passed along this + // the buffer to be submitted. // If successful, true is returned and the reference to the buffer is dropped // so this reference becomes invalid. // In case of error, false is returned and the buffer is returned to the free // list. - bool QueueUserPtr(const std::vector<void*>& ptrs) &&; + bool QueueUserPtr(const std::vector<void*>& ptrs, + V4L2RequestRef* request_ref = nullptr) &&; // Queue a DMABUF buffer, assigning |fds| as file descriptors for each plane. // It is allowed the number of |fds| might be greater than the number of // planes of this buffer. It happens when the v4l2 pixel format is single // planar. The fd of the first plane is only used in that case. + // When requests are supported, a |request_ref| can be passed along this + // the buffer to be submitted. // If successful, true is returned and the reference to the buffer is dropped // so this reference becomes invalid. // In case of error, false is returned and the buffer is returned to the free // list. - bool QueueDMABuf(const std::vector<base::ScopedFD>& fds) &&; + bool QueueDMABuf(const std::vector<base::ScopedFD>& fds, + V4L2RequestRef* request_ref = nullptr) &&; // Queue a DMABUF buffer, assigning file descriptors of |planes| for planes. // It is allowed the number of |planes| might be greater than the number of // planes of this buffer. It happens when the v4l2 pixel format is single // planar. The fd of the first plane of |planes| is only used in that case. + // When requests are supported, a |request_ref| can be passed along this + // the buffer to be submitted. // If successful, true is returned and the reference to the buffer is dropped // so this reference becomes invalid. // In case of error, false is returned and the buffer is returned to the free // list. - bool QueueDMABuf(const std::vector<gfx::NativePixmapPlane>& planes) &&; + bool QueueDMABuf(const std::vector<gfx::NativePixmapPlane>& planes, + V4L2RequestRef* request_ref = nullptr) &&; // Returns the number of planes in this buffer. size_t PlanesCount() const; @@ -144,22 +156,24 @@ // return nullptr for any other buffer type. scoped_refptr<VideoFrame> GetVideoFrame() WARN_UNUSED_RESULT; - // Add the request or config store information to |surface|. - // TODO(acourbot): This method is a temporary hack. Implement proper config - // store/request API support. - void PrepareQueueBuffer(const V4L2DecodeSurface& surface); - // Return the V4L2 buffer ID of the underlying buffer. // TODO(acourbot) This is used for legacy clients but should be ultimately // removed. See crbug/879971 size_t BufferId() const; + // Set the passed config store to this buffer. + // This method is only used for backward compatibility until the config + // store is deprecated and should not be called by new code. + void SetConfigStore(uint32_t config_store); + ~V4L2WritableBufferRef(); private: // Do the actual queue operation once the v4l2_buffer structure is properly // filled. - bool DoQueue() &&; + // When requests are supported, a |request_ref| can be passed along this + // the buffer to be submitted. + bool DoQueue(V4L2RequestRef* request_ref) &&; V4L2WritableBufferRef(const struct v4l2_buffer& v4l2_buffer, base::WeakPtr<V4L2Queue> queue); @@ -338,6 +352,9 @@ // Returns the number of buffers currently queued on this queue. size_t QueuedBuffersCount() const; + // Returns true if requests are supported by this queue. + bool SupportsRequests(); + private: ~V4L2Queue(); @@ -347,6 +364,8 @@ const enum v4l2_buf_type type_; enum v4l2_memory memory_ = V4L2_MEMORY_MMAP; bool is_streaming_ = false; + // Set to true if the queue supports requests. + bool supports_requests_ = false; size_t planes_count_ = 0; // Current format as set by SetFormat. base::Optional<struct v4l2_format> current_format_; @@ -384,9 +403,6 @@ // This class is used to manage requests and not intended to be used // directly. class MEDIA_GPU_EXPORT V4L2RequestRefBase { - public: - bool IsValid() const { return request_ != nullptr; } - protected: V4L2RequestRefBase(V4L2RequestRefBase&& req_base); V4L2RequestRefBase(V4L2Request* request); @@ -417,7 +433,7 @@ // Apply buffer to the request. bool SetQueueBuffer(struct v4l2_buffer* buffer) const; // Submits the request to the driver. - V4L2SubmittedRequestRef Submit() &&; + base::Optional<V4L2SubmittedRequestRef> Submit() &&; private: friend class V4L2RequestsQueue; @@ -460,12 +476,9 @@ // back to the free request pool described in 1). class MEDIA_GPU_EXPORT V4L2RequestsQueue { public: - // Allocates |nb_requests|. Returns true if all requests - // could be created. - bool AllocateRequests(size_t nb_requests); // Gets a free request. If no request is available, a non-valid request // reference will be returned. - V4L2RequestRef GetFreeRequest(); + base::Optional<V4L2RequestRef> GetFreeRequest(); private: // File descriptor of the media device (/dev/mediaX) from which requests
diff --git a/media/gpu/v4l2/v4l2_mjpeg_decode_accelerator.cc b/media/gpu/v4l2/v4l2_mjpeg_decode_accelerator.cc index 2dd872d..ff21cd9 100644 --- a/media/gpu/v4l2/v4l2_mjpeg_decode_accelerator.cc +++ b/media/gpu/v4l2/v4l2_mjpeg_decode_accelerator.cc
@@ -762,8 +762,7 @@ if (device_->Ioctl(VIDIOC_DQEVENT, &ev) == 0) { if (ev.type == V4L2_EVENT_SOURCE_CHANGE) { VLOGF(2) << ": got source change event: " << ev.u.src_change.changes; - if (ev.u.src_change.changes & - (V4L2_EVENT_SRC_CH_RESOLUTION | V4L2_EVENT_SRC_CH_PIXELFORMAT)) { + if (ev.u.src_change.changes & V4L2_EVENT_SRC_CH_RESOLUTION) { return true; } VLOGF(1) << "unexpected source change event.";
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc index 0c7f768a..4846264 100644 --- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc +++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
@@ -617,10 +617,6 @@ requests_queue_ = device_->GetRequestsQueue(); if (requests_queue_ == nullptr) return false; - - if (!requests_queue_->AllocateRequests( - input_queue_->AllocatedBuffersCount())) - return false; } return true; @@ -777,25 +773,6 @@ Dequeue(); } -void V4L2SliceVideoDecodeAccelerator::Enqueue( - scoped_refptr<V4L2DecodeSurface> dec_surface) { - DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread()); - - if (!EnqueueInputRecord(dec_surface.get())) { - VLOGF(1) << "Failed queueing an input buffer"; - NOTIFY_ERROR(PLATFORM_FAILURE); - return; - } - - if (!EnqueueOutputRecord(dec_surface.get())) { - VLOGF(1) << "Failed queueing an output buffer"; - NOTIFY_ERROR(PLATFORM_FAILURE); - return; - } - - surfaces_at_device_.push(dec_surface); -} - void V4L2SliceVideoDecodeAccelerator::Dequeue() { DVLOGF(4); DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread()); @@ -915,60 +892,6 @@ ScheduleDecodeBufferTaskIfNeeded(); } -bool V4L2SliceVideoDecodeAccelerator::EnqueueInputRecord( - V4L2DecodeSurface* dec_surface) { - DVLOGF(4); - DCHECK_NE(dec_surface, nullptr); - - // Enqueue an input (VIDEO_OUTPUT) buffer for an input video frame. - V4L2WritableBufferRef input_buffer = std::move(dec_surface->input_buffer()); - const int index = input_buffer.BufferId(); - input_buffer.PrepareQueueBuffer(*dec_surface); - if (!std::move(input_buffer).QueueMMap()) { - NOTIFY_ERROR(PLATFORM_FAILURE); - return false; - } - - DVLOGF(4) << "Enqueued input=" << index - << " count: " << input_queue_->QueuedBuffersCount(); - - return true; -} - -bool V4L2SliceVideoDecodeAccelerator::EnqueueOutputRecord( - V4L2DecodeSurface* dec_surface) { - DVLOGF(4); - - // Enqueue an output (VIDEO_CAPTURE) buffer. - V4L2WritableBufferRef output_buffer = std::move(dec_surface->output_buffer()); - size_t index = output_buffer.BufferId(); - OutputRecord& output_record = output_buffer_map_[index]; - DCHECK_NE(output_record.picture_id, -1); - - bool ret = false; - switch (output_buffer.Memory()) { - case V4L2_MEMORY_MMAP: - ret = std::move(output_buffer).QueueMMap(); - break; - case V4L2_MEMORY_DMABUF: - ret = std::move(output_buffer) - .QueueDMABuf(output_record.output_frame->DmabufFds()); - break; - default: - NOTREACHED(); - } - - if (!ret) { - NOTIFY_ERROR(PLATFORM_FAILURE); - return false; - } - - DVLOGF(4) << "Enqueued output=" << index - << " count: " << output_queue_->QueuedBuffersCount(); - - return true; -} - bool V4L2SliceVideoDecodeAccelerator::StartDevicePoll() { DVLOGF(3) << "Starting device poll"; DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread()); @@ -1948,12 +1871,12 @@ DCHECK(decoder_thread_task_runner_->BelongsToCurrentThread()); DVLOGF(3) << "Submitting decode for surface: " << dec_surface->ToString(); - Enqueue(dec_surface); - if (!dec_surface->Submit()) { VLOGF(1) << "Error while submitting frame for decoding!"; NOTIFY_ERROR(PLATFORM_FAILURE); } + + surfaces_at_device_.push(dec_surface); } void V4L2SliceVideoDecodeAccelerator::SurfaceReady( @@ -2082,19 +2005,25 @@ scoped_refptr<V4L2DecodeSurface> dec_surface; + size_t index = output_buffer->BufferId(); + OutputRecord& output_record = output_buffer_map_[index]; + DCHECK_NE(output_record.picture_id, -1); + if (supports_requests_) { // Get a free request from the queue for a new surface. - V4L2RequestRef request_ref = requests_queue_->GetFreeRequest(); - if (!request_ref.IsValid()) { + base::Optional<V4L2RequestRef> request_ref = + requests_queue_->GetFreeRequest(); + if (!request_ref) { NOTIFY_ERROR(PLATFORM_FAILURE); return nullptr; } - dec_surface = new V4L2RequestDecodeSurface(std::move(*input_buffer), - std::move(*output_buffer), - nullptr, std::move(request_ref)); + dec_surface = new V4L2RequestDecodeSurface( + std::move(*input_buffer), std::move(*output_buffer), + output_record.output_frame, std::move(*request_ref)); } else { - dec_surface = new V4L2ConfigStoreDecodeSurface( - std::move(*input_buffer), std::move(*output_buffer), nullptr); + dec_surface = new V4L2ConfigStoreDecodeSurface(std::move(*input_buffer), + std::move(*output_buffer), + output_record.output_frame); } DVLOGF(4) << "Created surface " << input << " -> " << output;
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h index 27dc97e49..5d6ab95 100644 --- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h +++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.h
@@ -161,16 +161,9 @@ // Recycle V4L2 output buffer with |index|. Used as surface release callback. void ReuseOutputBuffer(V4L2ReadableBufferRef buffer); - // Queue a |dec_surface| to device for decoding. - void Enqueue(scoped_refptr<V4L2DecodeSurface> dec_surface); - // Dequeue any V4L2 buffers available and process. void Dequeue(); - // V4L2 QBUF helpers. - bool EnqueueInputRecord(V4L2DecodeSurface* dec_surface); - bool EnqueueOutputRecord(V4L2DecodeSurface* dec_surface); - // Set input and output formats in hardware. bool SetupFormats(); // Reset image processor and drop all processing frames.
diff --git a/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.cc b/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.cc index 1e53efb..1c40cf9 100644 --- a/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.cc +++ b/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.cc
@@ -33,7 +33,6 @@ constexpr size_t kTimestampCacheSize = 128; // Number of requests to allocate for submitting input buffers, if requests // are used. -constexpr size_t kNumRequests = 16; } // namespace @@ -123,11 +122,6 @@ bool V4L2StatelessVideoDecoderBackend::Initialize() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!CheckRequestAPISupport()) { - VPLOGF(1) << "Failed to check request api support."; - return false; - } - if (!IsSupportedProfile(profile_)) { VLOGF(1) << "Unsupported profile " << GetProfileName(profile_); return false; @@ -136,11 +130,10 @@ if (!CreateAvd()) return false; - if (supports_requests_) { + if (input_queue_->SupportsRequests()) { requests_queue_ = device_->GetRequestsQueue(); if (requests_queue_ == nullptr) return false; - return requests_queue_->AllocateRequests(kNumRequests); } return true; @@ -267,16 +260,17 @@ } scoped_refptr<V4L2DecodeSurface> dec_surface; - if (supports_requests_) { - V4L2RequestRef request_ref = requests_queue_->GetFreeRequest(); - if (!request_ref.IsValid()) { + if (input_queue_->SupportsRequests()) { + base::Optional<V4L2RequestRef> request_ref = + requests_queue_->GetFreeRequest(); + if (!request_ref) { DVLOGF(3) << "Could not get free request."; return nullptr; } dec_surface = new V4L2RequestDecodeSurface( std::move(*input_buf), std::move(*output_buf), std::move(frame), - std::move(request_ref)); + std::move(*request_ref)); } else { dec_surface = new V4L2ConfigStoreDecodeSurface( std::move(*input_buf), std::move(*output_buf), std::move(frame)); @@ -313,31 +307,6 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DVLOGF(3); - // Enqueue input_buf and output_buf - dec_surface->input_buffer().PrepareQueueBuffer(*dec_surface); - - if (!std::move(dec_surface->input_buffer()).QueueMMap()) { - client_->OnBackendError(); - return; - } - - bool result = false; - switch (output_queue_->GetMemoryType()) { - case V4L2_MEMORY_MMAP: - result = std::move(dec_surface->output_buffer()).QueueMMap(); - break; - case V4L2_MEMORY_DMABUF: - result = std::move(dec_surface->output_buffer()) - .QueueDMABuf(dec_surface->video_frame()->DmabufFds()); - break; - default: - NOTREACHED() << "We should only use MMAP or DMABUF."; - } - if (!result) { - client_->OnBackendError(); - return; - } - if (!dec_surface->Submit()) { VLOGF(1) << "Error while submitting frame for decoding!"; client_->OnBackendError(); @@ -610,29 +579,6 @@ } } -bool V4L2StatelessVideoDecoderBackend::CheckRequestAPISupport() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DVLOGF(3); - - struct v4l2_requestbuffers reqbufs; - memset(&reqbufs, 0, sizeof(reqbufs)); - reqbufs.count = 0; - reqbufs.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; - reqbufs.memory = V4L2_MEMORY_MMAP; - if (device_->Ioctl(VIDIOC_REQBUFS, &reqbufs) != 0) { - VPLOGF(1) << "VIDIOC_REQBUFS ioctl failed."; - return false; - } - if (reqbufs.capabilities & V4L2_BUF_CAP_SUPPORTS_REQUESTS) { - supports_requests_ = true; - VLOGF(1) << "Using request API."; - } else { - VLOGF(1) << "Using config store."; - } - - return true; -} - bool V4L2StatelessVideoDecoderBackend::IsSupportedProfile( VideoCodecProfile profile) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -661,7 +607,7 @@ pic_size_ = gfx::Size(); if (profile_ >= H264PROFILE_MIN && profile_ <= H264PROFILE_MAX) { - if (supports_requests_) { + if (input_queue_->SupportsRequests()) { avd_.reset(new H264Decoder( std::make_unique<V4L2H264Accelerator>(this, device_.get()), profile_)); @@ -671,7 +617,7 @@ profile_)); } } else if (profile_ >= VP8PROFILE_MIN && profile_ <= VP8PROFILE_MAX) { - if (supports_requests_) { + if (input_queue_->SupportsRequests()) { avd_.reset(new VP8Decoder( std::make_unique<V4L2VP8Accelerator>(this, device_.get()))); } else {
diff --git a/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.h b/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.h index 8b7662d8..baaebdc 100644 --- a/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.h +++ b/media/gpu/v4l2/v4l2_video_decoder_backend_stateless.h
@@ -120,9 +120,6 @@ // Setup the format of V4L2 output buffer, and allocate new buffer set. void ChangeResolution(); - // Check whether request api is supported or not. - bool CheckRequestAPISupport(); - // Returns whether |profile| is supported by a v4l2 stateless decoder driver. bool IsSupportedProfile(VideoCodecProfile profile); @@ -167,8 +164,6 @@ // VideoCodecProfiles supported by a v4l2 stateless decoder driver. std::vector<VideoCodecProfile> supported_profiles_; - // Set to true during Initialize() if the codec driver supports request API. - bool supports_requests_ = false; // Reference to request queue to get free requests. V4L2RequestsQueue* requests_queue_;
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.cc b/media/gpu/windows/dxva_video_decode_accelerator_win.cc index b06648e..bff45e3 100644 --- a/media/gpu/windows/dxva_video_decode_accelerator_win.cc +++ b/media/gpu/windows/dxva_video_decode_accelerator_win.cc
@@ -574,13 +574,13 @@ config.profile == VP9PROFILE_PROFILE3 || config.profile == H264PROFILE_HIGH10PROFILE) { // Input file has more than 8 bits per channel. - use_fp16_ = true; + want_fp16_ = true; } // Unfortunately, the profile is currently unreliable for // VP9 (https://crbug.com/592074) so also try to use fp16 if HDR is on. if (config.target_color_space.IsHDR()) { - use_fp16_ = true; + want_fp16_ = true; } // Not all versions of Windows 7 and later include Media Foundation DLLs. @@ -823,7 +823,7 @@ RETURN_ON_FAILURE(angle_device_.Get(), "Failed to get d3d11 device", false); using_angle_device_ = true; - DCHECK(!use_fp16_); + DCHECK(!want_fp16_); angle_device_->GetImmediateContext(&d3d11_device_context_); hr = angle_device_.As(&video_device_); @@ -892,8 +892,8 @@ if (!checker.CheckOutputFormatSupport(DXGI_FORMAT_NV12)) support_copy_nv12_textures_ = false; - if (!checker.CheckOutputFormatSupport(DXGI_FORMAT_R16G16B16A16_FLOAT)) - use_fp16_ = false; + support_fp16_ = + checker.CheckOutputFormatSupport(DXGI_FORMAT_R16G16B16A16_FLOAT); // Enable multithreaded mode on the device. This ensures that accesses to // context are synchronized across threads. We have multiple threads @@ -1388,18 +1388,19 @@ } if (!gl::GLSurfaceEGL::IsPixelFormatFloatSupported()) - use_fp16_ = false; + want_fp16_ = false; EGLDisplay egl_display = gl::GLSurfaceEGL::GetHardwareDisplay(); while (true) { - std::vector<EGLint> config_attribs = {EGL_BUFFER_SIZE, 32, - EGL_RED_SIZE, use_fp16_ ? 16 : 8, - EGL_GREEN_SIZE, use_fp16_ ? 16 : 8, - EGL_BLUE_SIZE, use_fp16_ ? 16 : 8, - EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, - EGL_ALPHA_SIZE, 0}; - if (use_fp16_) { + std::vector<EGLint> config_attribs = { + EGL_BUFFER_SIZE, 32, + EGL_RED_SIZE, ShouldUseFp16() ? 16 : 8, + EGL_GREEN_SIZE, ShouldUseFp16() ? 16 : 8, + EGL_BLUE_SIZE, ShouldUseFp16() ? 16 : 8, + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, + EGL_ALPHA_SIZE, 0}; + if (ShouldUseFp16()) { config_attribs.push_back(EGL_COLOR_COMPONENT_TYPE_EXT); config_attribs.push_back(EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT); } @@ -1419,7 +1420,7 @@ eglGetConfigAttrib(egl_display, configs[i], EGL_RED_SIZE, &red_bits); // Try to pick a configuration with the right number of bits rather // than one that just has enough bits. - if (red_bits == (use_fp16_ ? 16 : 8)) { + if (red_bits == (ShouldUseFp16() ? 16 : 8)) { egl_config_ = configs[i]; break; } @@ -1427,9 +1428,9 @@ } if (!num_configs) { - if (use_fp16_) { - // Try again, but without use_fp16_ - use_fp16_ = false; + if (ShouldUseFp16()) { + // Try again, but without want_fp16_ + want_fp16_ = false; continue; } return false; @@ -1439,7 +1440,7 @@ break; } - if (use_fp16_) { + if (ShouldUseFp16()) { // TODO(hubbe): Share/copy P010/P016 textures. DisableSharedTextureSupport(); support_copy_nv12_textures_ = false; @@ -2760,7 +2761,7 @@ // If we're copying textures or just not using color space information, set // the same color space on input and output. - if ((!use_color_info_ && !use_fp16_) || + if ((!use_color_info_ && !ShouldUseFp16()) || GetPictureBufferMechanism() == PictureBufferMechanism::COPY_TO_NV12 || GetPictureBufferMechanism() == PictureBufferMechanism::DELAYED_COPY_TO_NV12) { @@ -2811,7 +2812,8 @@ return true; } - if (use_fp16_ && config_.target_color_space.IsHDR() && color_space.IsHDR()) { + if (ShouldUseFp16() && config_.target_color_space.IsHDR() && + color_space.IsHDR()) { // Note, we only use the SCRGBLinear output color space when the input is // PQ, because nvidia drivers will not convert G22 to G10 for some reason. dx11_converter_output_color_space_ = gfx::ColorSpace::CreateSCRGBLinear(); @@ -2984,7 +2986,7 @@ DXVAVideoDecodeAccelerator::PictureBufferMechanism DXVAVideoDecodeAccelerator::GetPictureBufferMechanism() const { - if (use_fp16_) + if (ShouldUseFp16()) return PictureBufferMechanism::COPY_TO_RGB; if (support_share_nv12_textures_) return PictureBufferMechanism::BIND; @@ -3011,4 +3013,8 @@ return ShouldUseANGLEDevice() ? angle_device_.Get() : d3d11_device_.Get(); } +bool DXVAVideoDecodeAccelerator::ShouldUseFp16() const { + return want_fp16_ && support_fp16_; +} + } // namespace media
diff --git a/media/gpu/windows/dxva_video_decode_accelerator_win.h b/media/gpu/windows/dxva_video_decode_accelerator_win.h index af9da6e..f894bba 100644 --- a/media/gpu/windows/dxva_video_decode_accelerator_win.h +++ b/media/gpu/windows/dxva_video_decode_accelerator_win.h
@@ -397,6 +397,8 @@ bool ShouldUseANGLEDevice() const; ID3D11Device* D3D11Device() const; + bool ShouldUseFp16() const; + // To expose client callbacks from VideoDecodeAccelerator. VideoDecodeAccelerator::Client* client_; @@ -556,8 +558,11 @@ // Supports copying NV12 textures on the main thread to use in ANGLE. bool support_delayed_copy_nv12_textures_; - // Copy video to FP16 scRGB textures. - bool use_fp16_ = false; + // Supports copying video to FP16 scRGB textures. + bool support_fp16_ = false; + + // Copy video to FP16 scRGB textures if supported. + bool want_fp16_ = false; // When converting YUV to RGB, make sure we tell the blitter about the input // color space so that it can convert it correctly.
diff --git a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py index 4009887..146b8476b 100644 --- a/mojo/public/tools/bindings/generators/mojom_cpp_generator.py +++ b/mojo/public/tools/bindings/generators/mojom_cpp_generator.py
@@ -710,6 +710,7 @@ def _GetCppWrapperParamTypeNew(self, kind): cpp_wrapper_type = self._GetCppWrapperType(kind) return (cpp_wrapper_type if self._ShouldPassParamByValue(kind) + or mojom.IsArrayKind(kind) else "const %s&" % cpp_wrapper_type) def _GetCppFieldType(self, kind):
diff --git a/net/base/mock_network_change_notifier.cc b/net/base/mock_network_change_notifier.cc index 872f5cf..32582e1c 100644 --- a/net/base/mock_network_change_notifier.cc +++ b/net/base/mock_network_change_notifier.cc
@@ -85,6 +85,14 @@ base::RunLoop().RunUntilIdle(); } +void MockNetworkChangeNotifier::SetConnectionTypeAndNotifyObservers( + ConnectionType connection_type) { + SetConnectionType(connection_type); + NetworkChangeNotifier::NotifyObserversOfConnectionTypeChange(); + // Spin the message loop so the notification is delivered. + base::RunLoop().RunUntilIdle(); +} + MockNetworkChangeNotifier::MockNetworkChangeNotifier( std::unique_ptr<SystemDnsConfigChangeNotifier> dns_config_notifier) : NetworkChangeNotifier(NetworkChangeCalculatorParams(),
diff --git a/net/base/mock_network_change_notifier.h b/net/base/mock_network_change_notifier.h index c047536..cd939b3 100644 --- a/net/base/mock_network_change_notifier.h +++ b/net/base/mock_network_change_notifier.h
@@ -51,6 +51,8 @@ // Delivers a CONNECTED notification to observers. void NotifyNetworkConnected(NetworkChangeNotifier::NetworkHandle network); + void SetConnectionTypeAndNotifyObservers(ConnectionType connection_type); + private: // Create using MockNetworkChangeNotifier::Create(). MockNetworkChangeNotifier(
diff --git a/net/dns/context_host_resolver_unittest.cc b/net/dns/context_host_resolver_unittest.cc index 746ff49..7a70011 100644 --- a/net/dns/context_host_resolver_unittest.cc +++ b/net/dns/context_host_resolver_unittest.cc
@@ -66,6 +66,8 @@ DnsConfig config; config.nameservers.push_back( IPEndPoint(dns_ip, dns_protocol::kDefaultPort)); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); EXPECT_TRUE(config.IsValid()); auto dns_client =
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc index 2ed32ef..17ce1f4 100644 --- a/net/dns/dns_client.cc +++ b/net/dns/dns_client.cc
@@ -155,22 +155,6 @@ return &config->hosts; } - void ActivateDohProbes(URLRequestContext* url_request_context) override { - DCHECK(url_request_context); - DCHECK(!url_request_context_for_probes_); - DCHECK(!doh_probe_runner_); - - url_request_context_for_probes_ = url_request_context; - StartDohProbes(false /* network_change */); - } - - void CancelDohProbes() override { - DCHECK(url_request_context_for_probes_); - - doh_probe_runner_.reset(); - url_request_context_for_probes_ = nullptr; - } - DnsTransactionFactory* GetTransactionFactory() override { return session_.get() ? factory_.get() : nullptr; } @@ -243,7 +227,6 @@ void UpdateSession(base::Optional<DnsConfig> new_effective_config) { factory_.reset(); session_ = nullptr; - doh_probe_runner_.reset(); if (new_effective_config) { DCHECK(new_effective_config.value().IsValid()); @@ -258,7 +241,6 @@ new DnsSession(std::move(new_effective_config).value(), std::move(socket_pool), rand_int_callback_, net_log_); factory_ = DnsTransactionFactory::CreateFactory(session_.get()); - StartDohProbes(false /* network_change*/); } } @@ -269,26 +251,9 @@ const char* kTrialName = "AsyncDnsFlushServerStatsOnConnectionTypeChange"; if (base::FieldTrialList::FindFullName(kTrialName) == "enable") session_->InitializeServerStats(); - if (type != NetworkChangeNotifier::CONNECTION_NONE) - StartDohProbes(true /* network_change */); } } - void StartDohProbes(bool network_change) { - if (!url_request_context_for_probes_ || !factory_) - return; - - if (!doh_probe_runner_) { - doh_probe_runner_ = - factory_->CreateDohProbeRunner(url_request_context_for_probes_); - } - - if (network_change) - doh_probe_runner_->RestartForNetworkChange(); - else - doh_probe_runner_->Start(); - } - bool insecure_enabled_ = false; int insecure_fallback_failures_ = 0; @@ -299,8 +264,6 @@ std::unique_ptr<DnsTransactionFactory> factory_; std::unique_ptr<AddressSorter> address_sorter_ = AddressSorter::CreateAddressSorter(); - URLRequestContext* url_request_context_for_probes_ = nullptr; - std::unique_ptr<DnsProbeRunner> doh_probe_runner_; NetLog* net_log_;
diff --git a/net/dns/dns_client.h b/net/dns/dns_client.h index c93164bb..b4cfcfb 100644 --- a/net/dns/dns_client.h +++ b/net/dns/dns_client.h
@@ -33,7 +33,8 @@ virtual ~DnsClient() {} // Returns true if the DnsClient is able and allowed to make secure DNS - // transactions. If false, secure transactions should not be created. + // transactions and DoH probe runners. If false, secure transactions and DoH + // probe runners should not be created. virtual bool CanUseSecureDnsTransactions() const = 0; // Returns true if the DnsClient is able and allowed to make insecure DNS @@ -64,12 +65,6 @@ virtual const DnsConfig* GetEffectiveConfig() const = 0; virtual const DnsHosts* GetHosts() const = 0; - // Enables DoH probes to be sent using |url_request_context| whenever the DNS - // configuration contains DoH servers. Currently only allows one probe - // activation at a time. Must be cancelled before activating another. - virtual void ActivateDohProbes(URLRequestContext* url_request_context) = 0; - virtual void CancelDohProbes() = 0; - // Returns null if the current config is not valid. virtual DnsTransactionFactory* GetTransactionFactory() = 0;
diff --git a/net/dns/dns_client_unittest.cc b/net/dns/dns_client_unittest.cc index 2fc0ffe..8abc8cb8 100644 --- a/net/dns/dns_client_unittest.cc +++ b/net/dns/dns_client_unittest.cc
@@ -246,50 +246,6 @@ EXPECT_FALSE(client_->GetEffectiveConfig()); } -TEST_F(DnsClientTest, ActivateDohProbes) { - client_->SetSystemConfig(ValidConfigWithDoh()); - auto transaction_factory = - std::make_unique<MockDnsTransactionFactory>(MockDnsClientRuleList()); - auto* transaction_factory_ptr = transaction_factory.get(); - client_->SetTransactionFactoryForTesting(std::move(transaction_factory)); - - ASSERT_FALSE(transaction_factory_ptr->doh_probes_running()); - - URLRequestContext context; - client_->ActivateDohProbes(&context); - EXPECT_TRUE(transaction_factory_ptr->doh_probes_running()); -} - -TEST_F(DnsClientTest, CancelDohProbes) { - client_->SetSystemConfig(ValidConfigWithDoh()); - auto transaction_factory = - std::make_unique<MockDnsTransactionFactory>(MockDnsClientRuleList()); - auto* transaction_factory_ptr = transaction_factory.get(); - client_->SetTransactionFactoryForTesting(std::move(transaction_factory)); - - URLRequestContext context; - client_->ActivateDohProbes(&context); - - ASSERT_TRUE(transaction_factory_ptr->doh_probes_running()); - - client_->CancelDohProbes(); - EXPECT_FALSE(transaction_factory_ptr->doh_probes_running()); -} - -TEST_F(DnsClientTest, CancelDohProbes_BeforeConfig) { - URLRequestContext context; - client_->ActivateDohProbes(&context); - client_->CancelDohProbes(); - - client_->SetSystemConfig(ValidConfigWithDoh()); - auto transaction_factory = - std::make_unique<MockDnsTransactionFactory>(MockDnsClientRuleList()); - auto* transaction_factory_ptr = transaction_factory.get(); - client_->SetTransactionFactoryForTesting(std::move(transaction_factory)); - - EXPECT_FALSE(transaction_factory_ptr->doh_probes_running()); -} - } // namespace } // namespace net
diff --git a/net/dns/dns_config_service.cc b/net/dns/dns_config_service.cc index 1d7d0cc5..ff2cf8d 100644 --- a/net/dns/dns_config_service.cc +++ b/net/dns/dns_config_service.cc
@@ -11,6 +11,10 @@ namespace net { +// static +const base::TimeDelta DnsConfigService::kInvalidationTimeout = + base::TimeDelta::FromMilliseconds(150); + DnsConfigService::DnsConfigService() : watch_failed_(false), have_config_(false), @@ -128,15 +132,7 @@ // outage (when using the wrong config) but at the same time avoid // unnecessary Job aborts in HostResolverImpl. The signals come from multiple // sources so it might receive multiple events during a config change. - - // DHCP and user-induced changes are on the order of seconds, so 150ms should - // not add perceivable delay. On the other hand, config readers should finish - // within 150ms with the rare exception of I/O block or extra large HOSTS. - const base::TimeDelta kTimeout = base::TimeDelta::FromMilliseconds(150); - - timer_.Start(FROM_HERE, - kTimeout, - this, + timer_.Start(FROM_HERE, kInvalidationTimeout, this, &DnsConfigService::OnTimeout); }
diff --git a/net/dns/dns_config_service.h b/net/dns/dns_config_service.h index f00466ea..c9e946450 100644 --- a/net/dns/dns_config_service.h +++ b/net/dns/dns_config_service.h
@@ -29,6 +29,11 @@ // ReadConfig() and WatchConfig(). typedef base::Callback<void(const DnsConfig& config)> CallbackType; + // DHCP and user-induced changes are on the order of seconds, so 150ms should + // not add perceivable delay. On the other hand, config readers should finish + // within 150ms with the rare exception of I/O block or extra large HOSTS. + static const base::TimeDelta kInvalidationTimeout; + // Creates the platform-specific DnsConfigService. May return |nullptr| if // reading system DNS settings is not supported on the current platform. static std::unique_ptr<DnsConfigService> CreateSystemService();
diff --git a/net/dns/dns_test_util.cc b/net/dns/dns_test_util.cc index e3687cc..05a33d0 100644 --- a/net/dns/dns_test_util.cc +++ b/net/dns/dns_test_util.cc
@@ -718,21 +718,6 @@ return &config->hosts; } -void MockDnsClient::ActivateDohProbes(URLRequestContext* url_request_context) { - DCHECK(url_request_context); - DCHECK(!probe_context_); - DCHECK(!probe_transaction_); - - probe_context_ = url_request_context; - probe_transaction_ = factory_->CreateDohProbeRunner(probe_context_); - probe_transaction_->Start(); -} - -void MockDnsClient::CancelDohProbes() { - probe_context_ = nullptr; - probe_transaction_.reset(); -} - DnsTransactionFactory* MockDnsClient::GetTransactionFactory() { return GetEffectiveConfig() ? factory_.get() : nullptr; }
diff --git a/net/dns/dns_test_util.h b/net/dns/dns_test_util.h index b22e5f3ca..99171fde 100644 --- a/net/dns/dns_test_util.h +++ b/net/dns/dns_test_util.h
@@ -346,8 +346,6 @@ bool SetConfigOverrides(DnsConfigOverrides config_overrides) override; const DnsConfig* GetEffectiveConfig() const override; const DnsHosts* GetHosts() const override; - void ActivateDohProbes(URLRequestContext* url_request_context) override; - void CancelDohProbes() override; DnsTransactionFactory* GetTransactionFactory() override; AddressSorter* GetAddressSorter() override; void IncrementInsecureFallbackFailures() override; @@ -388,9 +386,6 @@ bool ignore_system_config_changes_ = false; bool doh_server_available_ = true; - URLRequestContext* probe_context_ = nullptr; - std::unique_ptr<DnsProbeRunner> probe_transaction_; - base::Optional<DnsConfig> config_; DnsConfigOverrides overrides_; base::Optional<DnsConfig> effective_config_;
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc index 99218a63..be7700e 100644 --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc
@@ -858,6 +858,7 @@ : session_(std::move(session)), context_(context) { DCHECK(session_); DCHECK(context_); + DCHECK(!session_->config().dns_over_https_servers.empty()); DNSDomainFromDot(kDoHProbeHostname, &formatted_probe_hostname_);
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc index 795386a..3c128f2 100644 --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc
@@ -774,7 +774,7 @@ DCHECK(resolver_); DCHECK(!needs_cancel_); - resolver_->ActivateDohProbes(context_); + resolver_->ActivateDohProbes(context_, false /* network_change */); needs_cancel_ = true; return ERR_IO_PENDING; } @@ -2885,6 +2885,13 @@ if (transactions_allowed_before) { UpdateJobsForChangedConfig(); } + + // Restart DoH probes with the new configuration. + if (url_request_context_for_probes_) { + doh_probe_runner_.reset(); + ActivateDohProbes(url_request_context_for_probes_, + false /* network_change */); + } } } @@ -3718,6 +3725,17 @@ GetTimeDeltaForConnectionTypeFromFieldTrialOrDefault( "DnsUnresponsiveDelayMsByConnectionType", ProcTaskParams::kDnsDefaultUnresponsiveDelay, type); + + // If there is an active DoH probe runner, it should be cancelled or restarted + // for the new connection. + if (url_request_context_for_probes_) { + if (type == NetworkChangeNotifier::CONNECTION_NONE) { + doh_probe_runner_.reset(); + } else { + ActivateDohProbes(url_request_context_for_probes_, + true /* network_change */); + } + } } void HostResolverManager::OnSystemDnsConfigChanged( @@ -3733,10 +3751,18 @@ // Always invalidate cache, even if no change is seen. InvalidateCaches(); - // Need to update jobs iff transactions were previously allowed because - // in-progress jobs may be running using a now-invalid configuration. - if (changed && transactions_allowed_before) { - UpdateJobsForChangedConfig(); + if (changed) { + // Need to update jobs iff transactions were previously allowed because + // in-progress jobs may be running using a now-invalid configuration. + if (transactions_allowed_before) + UpdateJobsForChangedConfig(); + + // Restart DoH probes with the new configuration. + if (url_request_context_for_probes_) { + doh_probe_runner_.reset(); + ActivateDohProbes(url_request_context_for_probes_, + false /* network_change */); + } } } @@ -3815,18 +3841,44 @@ } void HostResolverManager::ActivateDohProbes( - URLRequestContext* url_request_context) { + URLRequestContext* url_request_context, + bool network_change) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(dns_client_); + DCHECK(url_request_context); + DCHECK(!url_request_context_for_probes_ || + url_request_context_for_probes_ == url_request_context); - dns_client_->ActivateDohProbes(url_request_context); + url_request_context_for_probes_ = url_request_context; + + if (!dns_client_->CanUseSecureDnsTransactions()) + return; + + // Don't bother running probes if there is no network connection. + if (NetworkChangeNotifier::GetConnectionType() == + NetworkChangeNotifier::CONNECTION_NONE) { + return; + } + + if (!doh_probe_runner_) { + doh_probe_runner_ = + dns_client_->GetTransactionFactory()->CreateDohProbeRunner( + url_request_context); + } + + if (network_change) + doh_probe_runner_->RestartForNetworkChange(); + else + doh_probe_runner_->Start(); } void HostResolverManager::CancelDohProbes() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(dns_client_); + DCHECK(url_request_context_for_probes_); - dns_client_->CancelDohProbes(); + url_request_context_for_probes_ = nullptr; + doh_probe_runner_.reset(); } void HostResolverManager::RequestImpl::Cancel() {
diff --git a/net/dns/host_resolver_manager.h b/net/dns/host_resolver_manager.h index a8b03d10..9b038a2 100644 --- a/net/dns/host_resolver_manager.h +++ b/net/dns/host_resolver_manager.h
@@ -42,6 +42,7 @@ class AddressList; class DnsClient; +class DnsProbeRunner; class HostPortPair; class IPAddress; class MDnsClient; @@ -454,7 +455,8 @@ // Currently only allows one probe to be started at a time. Must be cancelled // before starting another. - void ActivateDohProbes(URLRequestContext* url_request_context); + void ActivateDohProbes(URLRequestContext* url_request_context, + bool network_change); void CancelDohProbes(); // Used for multicast DNS tasks. Created on first use using @@ -476,6 +478,9 @@ NetLog* net_log_; + URLRequestContext* url_request_context_for_probes_ = nullptr; + std::unique_ptr<DnsProbeRunner> doh_probe_runner_; + // If present, used by DnsTask and ServeFromHosts to resolve requests. std::unique_ptr<DnsClient> dns_client_;
diff --git a/net/dns/host_resolver_manager_unittest.cc b/net/dns/host_resolver_manager_unittest.cc index 73a6844..d16dd9a 100644 --- a/net/dns/host_resolver_manager_unittest.cc +++ b/net/dns/host_resolver_manager_unittest.cc
@@ -3716,8 +3716,8 @@ base::test::TaskEnvironment::TimeSource time_source = base::test::TaskEnvironment::TimeSource::SYSTEM_TIME) : HostResolverManagerTest(time_source), - notifier_task_runner_(base::CreateSequencedTaskRunner( - {base::ThreadPool(), base::MayBlock()})), + notifier_task_runner_( + base::MakeRefCounted<base::TestMockTimeTaskRunner>()), dns_client_(nullptr) { auto config_service = std::make_unique<TestDnsConfigService>(); config_service_ = config_service.get(); @@ -3729,6 +3729,10 @@ void TearDown() override { HostResolverManagerTest::TearDown(); InvalidateDnsConfig(); + + // Ensure |notifier_| is fully cleaned up before test shutdown. + notifier_.reset(); + notifier_task_runner_->RunUntilIdle(); } // HostResolverManagerTest implementation: @@ -3922,10 +3926,8 @@ FROM_HERE, base::BindOnce(&TestDnsConfigService::OnConfigRead, base::Unretained(config_service_), config)); - base::RunLoop run_loop; - notifier_task_runner_->PostTask(FROM_HERE, - base::BindOnce(run_loop.QuitClosure())); - run_loop.Run(); + notifier_task_runner_->RunUntilIdle(); + base::RunLoop().RunUntilIdle(); } void InvalidateDnsConfig() { @@ -3937,10 +3939,9 @@ FROM_HERE, base::BindOnce(&TestDnsConfigService::InvalidateConfig, base::Unretained(config_service_))); - base::RunLoop run_loop; - notifier_task_runner_->PostTask(FROM_HERE, - base::BindOnce(run_loop.QuitClosure())); - run_loop.Run(); + notifier_task_runner_->FastForwardBy( + DnsConfigService::kInvalidationTimeout); + base::RunLoop().RunUntilIdle(); } void SetInitialDnsConfig(const DnsConfig& config) { @@ -3948,7 +3949,7 @@ ChangeDnsConfig(config); } - scoped_refptr<base::SequencedTaskRunner> notifier_task_runner_; + scoped_refptr<base::TestMockTimeTaskRunner> notifier_task_runner_; TestDnsConfigService* config_service_; std::unique_ptr<SystemDnsConfigChangeNotifier> notifier_; @@ -8419,6 +8420,83 @@ request->Cancel(); } +TEST_F(HostResolverManagerDnsTest, DohProbeRequest_BeforeConfig) { + InvalidateDnsConfig(); + + std::unique_ptr<HostResolverManager::CancellableProbeRequest> request = + resolver_->CreateDohProbeRequest(request_context_.get()); + EXPECT_THAT(request->Start(), IsError(ERR_IO_PENDING)); + EXPECT_FALSE(dns_client_->factory()->doh_probes_running()); + + ChangeDnsConfig(CreateValidDnsConfig()); + EXPECT_TRUE(dns_client_->factory()->doh_probes_running()); +} + +TEST_F(HostResolverManagerDnsTest, DohProbeRequest_InvalidateConfig) { + ChangeDnsConfig(CreateValidDnsConfig()); + + std::unique_ptr<HostResolverManager::CancellableProbeRequest> request = + resolver_->CreateDohProbeRequest(request_context_.get()); + EXPECT_THAT(request->Start(), IsError(ERR_IO_PENDING)); + ASSERT_TRUE(dns_client_->factory()->doh_probes_running()); + + InvalidateDnsConfig(); + + EXPECT_FALSE(dns_client_->factory()->doh_probes_running()); +} + +TEST_F(HostResolverManagerDnsTest, DohProbeRequest_CancelBeforeConfig) { + InvalidateDnsConfig(); + + std::unique_ptr<HostResolverManager::CancellableProbeRequest> request = + resolver_->CreateDohProbeRequest(request_context_.get()); + EXPECT_THAT(request->Start(), IsError(ERR_IO_PENDING)); + EXPECT_FALSE(dns_client_->factory()->doh_probes_running()); + + request->Cancel(); + + ChangeDnsConfig(CreateValidDnsConfig()); + EXPECT_FALSE(dns_client_->factory()->doh_probes_running()); +} + +TEST_F(HostResolverManagerDnsTest, DohProbeRequest_RestartOnConnectionChange) { + DestroyResolver(); + test::ScopedMockNetworkChangeNotifier notifier; + CreateSerialResolver(); + notifier.mock_network_change_notifier()->SetConnectionType( + NetworkChangeNotifier::CONNECTION_NONE); + ChangeDnsConfig(CreateValidDnsConfig()); + + std::unique_ptr<HostResolverManager::CancellableProbeRequest> request = + resolver_->CreateDohProbeRequest(request_context_.get()); + EXPECT_THAT(request->Start(), IsError(ERR_IO_PENDING)); + ASSERT_FALSE(dns_client_->factory()->doh_probes_running()); + + notifier.mock_network_change_notifier()->SetConnectionTypeAndNotifyObservers( + NetworkChangeNotifier::CONNECTION_WIFI); + + EXPECT_TRUE(dns_client_->factory()->doh_probes_running()); +} + +TEST_F(HostResolverManagerDnsTest, DohProbeRequest_CancelOnConnectionLoss) { + DestroyResolver(); + test::ScopedMockNetworkChangeNotifier notifier; + CreateSerialResolver(); + notifier.mock_network_change_notifier()->SetConnectionType( + NetworkChangeNotifier::CONNECTION_4G); + ChangeDnsConfig(CreateValidDnsConfig()); + + std::unique_ptr<HostResolverManager::CancellableProbeRequest> request = + resolver_->CreateDohProbeRequest(request_context_.get()); + EXPECT_THAT(request->Start(), IsError(ERR_IO_PENDING)); + ASSERT_TRUE(dns_client_->factory()->doh_probes_running()); + + notifier.mock_network_change_notifier()->SetConnectionTypeAndNotifyObservers( + NetworkChangeNotifier::CONNECTION_NONE); + + EXPECT_FALSE(dns_client_->factory()->doh_probes_running()); +} + TEST_F(HostResolverManagerDnsTest, EsniQuery) { EsniContent c1, c2, c3; IPAddress a1(1, 2, 3, 4), a2(5, 6, 7, 8);
diff --git a/remoting/resources/remoting_strings_ky.xtb b/remoting/resources/remoting_strings_ky.xtb index 3594f14..f016e81 100644 --- a/remoting/resources/remoting_strings_ky.xtb +++ b/remoting/resources/remoting_strings_ky.xtb
@@ -237,7 +237,7 @@ <translation id="6441316101718669559">Иш тактаны бириктирүү аракети бул платформада колдоого алынбайт. Колдонмону пайдалана берсеңиз болот, бирок колдонуучунун иши начарлайт.</translation> <translation id="652218476070540101">Бул компьютердин PIN'и жаңыртылууда…</translation> <translation id="6527303717912515753">Бөлүшүү</translation> -<translation id="6541219117979389420">Колдонмонун журналдарында жеке маалымат, ошондой эле сизди аныктаган дайындарыңыз (электрондук почта дареги), Google Drive'дагы файлдар менен куржундардын аталыштары жана касиеттери камтылышы мүмкүн.</translation> +<translation id="6541219117979389420">Колдонмонун журналдарында жеке маалымат, ошондой эле сизди аныктаган дайын-даректериңиз (электрондук почта дареги), Google Drive'дагы файлдар менен куржундардын аталыштары жана касиеттери камтылышы мүмкүн.</translation> <translation id="6542902059648396432">Маселе жөнүндө кабарлоо…</translation> <translation id="6550675742724504774">Параметрлер</translation> <translation id="6570205395680337606">Колдонмону баштапкы абалга келтирүү. Бардык сакталбаган иштер жоголот.</translation>
diff --git a/services/network/network_service_unittest.cc b/services/network/network_service_unittest.cc index 4b2598355..b6676a1e 100644 --- a/services/network/network_service_unittest.cc +++ b/services/network/network_service_unittest.cc
@@ -621,6 +621,8 @@ net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true); @@ -643,6 +645,8 @@ net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true); @@ -659,6 +663,8 @@ TEST_F(NetworkServiceTest, DohProbe_ContextAddedBeforeTimeout) { net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true); @@ -683,6 +689,8 @@ TEST_F(NetworkServiceTest, DohProbe_ContextAddedAfterTimeout) { net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true); @@ -713,6 +721,8 @@ net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true); @@ -739,6 +749,8 @@ net::DnsConfig config; config.nameservers.push_back(net::IPEndPoint()); + config.dns_over_https_servers.emplace_back("example.com", + true /* use_post */); auto dns_client = std::make_unique<net::MockDnsClient>( std::move(config), net::MockDnsClientRuleList()); dns_client->set_ignore_system_config_changes(true);
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index 5650265..70bb326 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -369,10 +369,95 @@ "shards": 15 }, "test_target": "//android_webview/test:system_webview_wpt" + }, + { + "args": [ + "--disable-features=OutOfBlinkCors" + ], + "isolate_name": "weblayer_shell_wpt", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "weblayer_shell_wpt", + "swarming": { + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "chromium/chrome/test/chromedriver/cipd", + "location": "chrome/test/chromedriver/cipd", + "revision": "tLMjWvOcbQX4nMo5WnMsKWn0aaVludzuSX9yiVFUCoUC" + } + ], + "dimension_sets": [ + { + "device_os": "PQ3A.190801.002", + "device_os_flavor": "google", + "device_os_type": "userdebug", + "device_type": "walleye", + "os": "Android" + } + ], + "expiration": 18000, + "hard_timeout": 14400, + "shards": 15 + }, + "test_target": "//weblayer/shell/android:weblayer_shell_wpt" } ] }, "Android WebView P FYI (rel)": { + "gtest_tests": [ + { + "args": [ + "--gs-results-bucket=chromium-result-details", + "--recover-devices", + "--annotation", + "DisabledTest,FlakyTest" + ], + "merge": { + "args": [ + "--bucket", + "chromium-result-details", + "--test-name", + "webview_instrumentation_test_apk" + ], + "script": "//build/android/pylib/results/presentation/test_results_presentation.py" + }, + "swarming": { + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "infra/tools/luci/logdog/butler/${platform}", + "location": "bin", + "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" + } + ], + "dimension_sets": [ + { + "device_os": "PQ3A.190801.002", + "device_os_flavor": "google", + "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" + } + ], + "shards": 12 + }, + "test": "webview_instrumentation_test_apk", + "test_target": "//android_webview/test:webview_instrumentation_test_apk" + } + ], "isolated_scripts": [ { "isolate_name": "chrome_public_wpt", @@ -435,6 +520,37 @@ "shards": 15 }, "test_target": "//android_webview/test:system_webview_wpt" + }, + { + "isolate_name": "weblayer_shell_wpt", + "merge": { + "args": [], + "script": "//testing/merge_scripts/standard_isolated_script_merge.py" + }, + "name": "weblayer_shell_wpt", + "swarming": { + "can_use_on_swarming_builders": true, + "cipd_packages": [ + { + "cipd_package": "chromium/chrome/test/chromedriver/cipd", + "location": "chrome/test/chromedriver/cipd", + "revision": "tLMjWvOcbQX4nMo5WnMsKWn0aaVludzuSX9yiVFUCoUC" + } + ], + "dimension_sets": [ + { + "device_os": "PQ3A.190801.002", + "device_os_flavor": "google", + "device_os_type": "userdebug", + "device_type": "walleye", + "os": "Android" + } + ], + "expiration": 18000, + "hard_timeout": 14400, + "shards": 15 + }, + "test_target": "//weblayer/shell/android:weblayer_shell_wpt" } ] }, @@ -3844,64 +3960,6 @@ "--bucket", "chromium-result-details", "--test-name", - "perfetto_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "cpu": "x86-64", - "device_os": null, - "device_type": null, - "os": "Ubuntu-16.04", - "pool": "chromium.tests.avd", - "ssd": "1" - } - ], - "named_caches": [ - { - "name": "avd_generic_android23", - "path": ".android" - }, - { - "name": "system_images_android_23_google_apis_x86", - "path": ".emulator_sdk" - } - ], - "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" - } - ] - }, - "test": "perfetto_unittests", - "test_target": "//third_party/perfetto:perfetto_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices", - "--avd-config=../../tools/android/avd/proto/generic_android23.textpb" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "sandbox_linux_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py" @@ -8200,64 +8258,6 @@ "--bucket", "chromium-result-details", "--test-name", - "perfetto_unittests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "cpu": "x86-64", - "device_os": null, - "device_type": null, - "os": "Ubuntu-16.04", - "pool": "chromium.tests.avd", - "ssd": "1" - } - ], - "named_caches": [ - { - "name": "avd_generic_android28", - "path": ".android" - }, - { - "name": "system_images_android_28_google_apis_x86", - "path": ".emulator_sdk" - } - ], - "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" - } - ] - }, - "test": "perfetto_unittests", - "test_target": "//third_party/perfetto:perfetto_unittests" - }, - { - "args": [ - "--gs-results-bucket=chromium-result-details", - "--recover-devices", - "--avd-config=../../tools/android/avd/proto/generic_android28.textpb" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", "sandbox_linux_unittests" ], "script": "//build/android/pylib/results/presentation/test_results_presentation.py"
diff --git a/testing/buildbot/chromium.swarm.json b/testing/buildbot/chromium.swarm.json index 2a88c63..09f5772f 100644 --- a/testing/buildbot/chromium.swarm.json +++ b/testing/buildbot/chromium.swarm.json
@@ -386,7 +386,6 @@ "--gs-results-bucket=chromium-result-details", "--recover-devices" ], - "experiment_percentage": 100, "merge": { "args": [ "--bucket",
diff --git a/testing/buildbot/gn_isolate_map.pyl b/testing/buildbot/gn_isolate_map.pyl index 81ee207d..03a407da 100644 --- a/testing/buildbot/gn_isolate_map.pyl +++ b/testing/buildbot/gn_isolate_map.pyl
@@ -482,7 +482,7 @@ "args": [ "--product=chrome_android", "--apk=apks/ChromePublic.apk", - "-vvvv", + "-vvv", ], }, "chrome_sandbox": { @@ -1554,7 +1554,7 @@ "--product=android_webview", "--apk=apks/SystemWebView.apk", "--system-webview-shell=apks/SystemWebViewShell.apk", - "-vvvv", + "-vvv", ], }, "telemetry_gpu_integration_test": { @@ -1770,6 +1770,17 @@ "label": "//weblayer/test:weblayer_browsertests", "type": "windowed_test_launcher", }, + "weblayer_shell_wpt": { + "label": "//weblayer/shell/android:weblayer_shell_wpt", + "type": "script", + "script": "//testing/scripts/run_android_wpt.py", + "args": [ + "--product=android_weblayer", + "--weblayer-shell=apks/WebLayerShell.apk", + "--weblayer-support=apks/WebLayerSupport.apk", + "-vvv", + ], + }, "webview_cts_tests": { "args": [ "--logdog-bin-cmd",
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 9579bd3..e0fa264 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -310,11 +310,6 @@ 'android-code-coverage-native', # https://crbug.com/1018780 ], 'modifications': { - 'Android N5X Swarm': { - # TODO(crbug.com/731759): Enable this once we're confident that it - # passes. - 'experiment_percentage': 100, - }, 'KitKat Phone Tester (dbg)': { 'swarming': { 'shards': 20, @@ -1314,7 +1309,9 @@ 'android-code-coverage-native', 'android-kitkat-arm-rel', 'android-marshmallow-arm64-rel', + 'android-marshmallow-x86-fyi-rel', 'android-pie-arm64-rel', + 'android-pie-x86-fyi-rel', 'Android CFI', 'KitKat Phone Tester (dbg)', 'KitKat Tablet Tester', @@ -2132,6 +2129,13 @@ 'android-code-coverage-native', # https://crbug.com/1018431 ], 'modifications': { + # chromium.android.fyi + 'Android WebView P FYI (rel)': { + 'args': [ + '--annotation', + 'DisabledTest,FlakyTest' # Monitor status of disabled tests. + ], + }, 'Oreo Phone Tester': { # TODO(crbug.com/997362): Enable this once it's passing. # TODO(https://crbug.com/884413): Re-enable this once the tests are
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 59597fac..43ca631 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -3250,6 +3250,23 @@ }, }, + 'weblayer_shell_wpt': { + 'weblayer_shell_wpt': { + 'swarming': { + 'shards': 15, + 'expiration': 18000, + 'hard_timeout': 14400, + 'cipd_packages': [ + { + "cipd_package": 'chromium/chrome/test/chromedriver/cipd', + 'location': 'chrome/test/chromedriver/cipd', + 'revision': 'tLMjWvOcbQX4nMo5WnMsKWn0aaVludzuSX9yiVFUCoUC', + } + ] + }, + }, + }, + # TODO(crbug.com/888429): Port remaining WebRTC tests to swarming. 'webrtc_chromium_baremetal_gtests': { # Run capture unittests as well since our bots have real webcams. @@ -3565,6 +3582,7 @@ 'android_wpt_scripts': [ 'chrome_public_wpt', 'system_webview_wpt', + 'weblayer_shell_wpt', ], 'bfcache_android_gtests': [
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index 66d7f4b10..a99d39f5 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -695,6 +695,7 @@ 'walleye', ], 'test_suites': { + 'gtest_tests': 'webview_bot_instrumentation_test_apk_gtest', 'isolated_scripts': 'android_wpt_scripts', }, 'use_swarming': True,
diff --git a/testing/scripts/run_android_wpt.py b/testing/scripts/run_android_wpt.py index a056c79..79861f8 100755 --- a/testing/scripts/run_android_wpt.py +++ b/testing/scripts/run_android_wpt.py
@@ -65,6 +65,10 @@ HOST_RESOLVER_ARGS = ['--host-resolver-rules=MAP nonexistent.*.test ~NOTFOUND,' ' MAP *.test 127.0.0.1'] +# WebLayer has popup protection enabled by default that prevents +# chromedriver from opening test windows. +DISABLE_POPUP_ARGS = ['--disable-popup-blocking'] + # Browsers on debug and eng devices read command-line-flags from special files # during startup. FLAGS_FILE_MAP = {'android_weblayer': 'weblayer-command-line', @@ -342,6 +346,8 @@ flags_file = FLAGS_FILE_MAP[adapter.options.product] all_flags = HOST_RESOLVER_ARGS + adapter.pass_through_binary_args + if adapter.options.product == 'android_weblayer': + all_flags += DISABLE_POPUP_ARGS logger.info('Setting flags in ' + flags_file + ' to: ' + str(all_flags)) flags = flag_changer.CustomCommandLineFlags(device, flags_file, all_flags)
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index fecd1adf..c343c30 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -7902,6 +7902,21 @@ ] } ], + "WindowsSensorAPIs": [ + { + "platforms": [ + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "WinrtSensorsImplementation" + ] + } + ] + } + ], "ZippedSystemLogsUpload": [ { "platforms": [
diff --git a/third_party/blink/common/scheduler/web_scheduler_tracked_feature.cc b/third_party/blink/common/scheduler/web_scheduler_tracked_feature.cc index fa4f2a6..3d87581b 100644 --- a/third_party/blink/common/scheduler/web_scheduler_tracked_feature.cc +++ b/third_party/blink/common/scheduler/web_scheduler_tracked_feature.cc
@@ -77,6 +77,8 @@ return "WebLocks"; case WebSchedulerTrackedFeature::kWebHID: return "WebHID"; + case WebSchedulerTrackedFeature::kWakeLock: + return "WakeLock"; } }
diff --git a/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h b/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h index 25e6d38d..a6948be 100644 --- a/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h +++ b/third_party/blink/public/common/scheduler/web_scheduler_tracked_feature.h
@@ -76,9 +76,10 @@ kWebLocks = 33, kWebHID = 34, + kWakeLock = 35, // NB: This enum is used in a bitmask, so kMaxValue must be less than 64. - kMaxValue = kWebHID + kMaxValue = kWakeLock }; static_assert(static_cast<uint32_t>(WebSchedulerTrackedFeature::kMaxValue) < 64,
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/__init__.py b/third_party/blink/renderer/bindings/scripts/bind_gen/__init__.py index 6a8363f2..89e5ffcb1 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/__init__.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/__init__.py
@@ -34,6 +34,7 @@ from .dictionary import generate_dictionaries from .interface import generate_interfaces from .path_manager import PathManager +from .union import generate_unions def _setup_clang_format():
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py index 049a243..2955445 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/blink_v8_bridge.py
@@ -47,6 +47,7 @@ member_t: The type of a member variable. E.g. T => Member<T> ref_t: The type of a local variable that references to an already-existing value. E.g. String => String& + const_ref_t: A const-qualified reference type. value_t: The type of a variable that behaves as a value. E.g. String => String is_nullable: True if the Blink implementation type can represent IDL null @@ -59,6 +60,7 @@ typename, member_fmt="{}", ref_fmt="{}", + const_ref_fmt="{}", value_fmt="{}", is_nullable=False): self.member_t = member_fmt.format(typename) @@ -87,14 +89,19 @@ } return TypeInfo(cxx_type[real_type.keyword_typename]) - if real_type.is_string: - return TypeInfo("String", ref_fmt="{}&", is_nullable=True) + if real_type.is_string or real_type.is_enumeration: + return TypeInfo( + "String", + ref_fmt="{}&", + const_ref_fmt="const {}&", + is_nullable=True) if real_type.is_buffer_source_type: return TypeInfo( 'DOM{}'.format(real_type.keyword_typename), member_fmt="Member<{}>", ref_fmt="{}*", + const_ref_fmt="const {}*", value_fmt="{}*", is_nullable=True) @@ -102,7 +109,11 @@ assert False, "Blink does not support/accept IDL symbol type." if real_type.is_any or real_type.is_object: - return TypeInfo("ScriptValue", ref_fmt="{}&", is_nullable=True) + return TypeInfo( + "ScriptValue", + ref_fmt="{}&", + const_ref_fmt="const {}&", + is_nullable=True) if real_type.is_void: assert False, "Blink does not support/accept IDL void type." @@ -113,6 +124,7 @@ blink_impl_type, member_fmt="Member<{}>", ref_fmt="{}*", + const_ref_fmt="const {}*", value_fmt="{}*", is_nullable=True) @@ -120,7 +132,9 @@ or real_type.is_variadic): element_type = blink_type_info(real_type.element_type) return TypeInfo( - "VectorOf<{}>".format(element_type.value_t), ref_fmt="{}&") + "VectorOf<{}>".format(element_type.value_t), + ref_fmt="{}&", + const_ref_fmt="const {}&") if real_type.is_record: key_type = blink_type_info(real_type.key_type) @@ -128,10 +142,12 @@ return TypeInfo( "VectorOfPairs<{}, {}>".format(key_type.value_t, value_type.value_t), - ref_fmt="{}&") + ref_fmt="{}&", + const_ref_fmt="const {}&") if real_type.is_promise: - return TypeInfo("ScriptPromise", ref_fmt="{}&") + return TypeInfo( + "ScriptPromise", ref_fmt="{}&", const_ref_fmt="const {}&") if real_type.is_union: def_obj = real_type.union_definition_object @@ -139,6 +155,7 @@ return TypeInfo( blink_impl_type, ref_fmt="{}&", + const_ref_fmt="const {}&", is_nullable=def_obj.does_include_nullable_type) if real_type.is_nullable: @@ -146,7 +163,9 @@ if inner_type.is_nullable: return inner_type return TypeInfo( - "base::Optional<{}>".format(inner_type.value_t), ref_fmt="{}&") + "base::Optional<{}>".format(inner_type.value_t), + ref_fmt="{}&", + const_ref_fmt="const {}&") assert False, "Unknown type: {}".format(idl_type.syntactic_form)
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_context.py b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_context.py index cce4de6..47042cc 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_context.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/codegen_context.py
@@ -4,6 +4,8 @@ import copy +import web_idl + from . import name_style from .codegen_format import NonRenderable from .path_manager import PathManager @@ -169,7 +171,7 @@ @property def idl_location(self): idl_def = self.member_like or self.idl_definition - if idl_def: + if idl_def and not isinstance(idl_def, web_idl.Union): location = idl_def.debug_info.location text = PathManager.relpath_to_project_root(location.filepath) if location.line_number is not None:
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py b/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py index 84b01c3..a5e2c54 100644 --- a/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/path_manager.py
@@ -76,10 +76,14 @@ def __init__(self, idl_definition): assert self._is_initialized, self._REQUIRE_INIT_MESSAGE - idl_path = PathManager.relpath_to_project_root( - posixpath.normpath(idl_definition.debug_info.location.filepath)) - idl_basepath, _ = posixpath.splitext(idl_path) - self._idl_dir, self._idl_basename = posixpath.split(idl_basepath) + if isinstance(idl_definition, web_idl.Dictionary): + idl_path = PathManager.relpath_to_project_root( + posixpath.normpath( + idl_definition.debug_info.location.filepath)) + idl_basepath, _ = posixpath.splitext(idl_path) + self._idl_dir, _ = posixpath.split(idl_basepath) + else: + self._idl_dir = None components = sorted(idl_definition.components) # "core" < "modules" @@ -101,26 +105,10 @@ self._impl_dir = self._component_reldirs[self._impl_component] self._v8_bind_basename = name_style.file("v8", idl_definition.identifier) - - self._blink_dir = self._idl_dir self._blink_basename = name_style.file( blink_class_name(idl_definition)) @property - def idl_dir(self): - return self._idl_dir - - def blink_path(self, filename=None, ext=None): - """ - Returns a path to a Blink implementation file relative to the project - root directory, e.g. "third_party/blink/renderer/..." - """ - return self._join( - dirpath=self._blink_dir, - filename=(filename or self._blink_basename), - ext=ext) - - @property def is_cross_components(self): return self._is_cross_components @@ -154,7 +142,11 @@ # TODO(crbug.com/1034398): Remove this API def dict_path(self, filename=None, ext=None): - return self.blink_path(filename, ext) + assert self._idl_dir is not None + return self._join( + dirpath=self._idl_dir, + filename=(filename or self._blink_basename), + ext=ext) @staticmethod def _join(dirpath, filename, ext=None):
diff --git a/third_party/blink/renderer/bindings/scripts/bind_gen/union.py b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py new file mode 100644 index 0000000..8b437cd --- /dev/null +++ b/third_party/blink/renderer/bindings/scripts/bind_gen/union.py
@@ -0,0 +1,91 @@ +# Copyright 2020 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import os.path + +import web_idl + +from . import name_style +from .code_node import ListNode +from .code_node import TextNode +from .code_node_cxx import CxxClassDefNode +from .code_node_cxx import CxxNamespaceNode +from .codegen_accumulator import CodeGenAccumulator +from .codegen_context import CodeGenContext +from .codegen_utils import collect_include_headers +from .codegen_utils import component_export +from .codegen_utils import enclose_with_header_guard +from .codegen_utils import enclose_with_namespace +from .codegen_utils import make_copyright_header +from .codegen_utils import make_forward_declarations +from .codegen_utils import make_header_include_directives +from .codegen_utils import write_code_node_to_file +from .mako_renderer import MakoRenderer +from .path_manager import PathManager + + +def make_union_class_def(cg_context): + assert isinstance(cg_context, CodeGenContext) + + T = TextNode + + union = cg_context.union + component = union.components[0] + + class_def = CxxClassDefNode( + cg_context.class_name, export=component_export(component)) + class_def.set_base_template_vars(cg_context.template_bindings()) + + class_def.top_section.extend([ + T("DISALLOW_NEW();"), + ]) + + class_def.public_section.extend([ + T("void Trace(Visitor*);"), + ]) + + return class_def + + +def generate_union(union): + path_manager = PathManager(union) + class_name = union.identifier + cg_context = CodeGenContext(union=union, class_name=class_name) + + filename = "union_example.h" + header_path = path_manager.api_path(filename=filename) + + header_node = ListNode(tail="\n") + header_node.set_accumulator(CodeGenAccumulator()) + header_node.set_renderer(MakoRenderer()) + header_node.accumulator.add_include_headers(collect_include_headers(union)) + + header_blink_ns = CxxNamespaceNode(name_style.namespace("blink")) + + class_def = make_union_class_def(cg_context) + + header_node.extend([ + make_copyright_header(), + TextNode(""), + enclose_with_header_guard( + ListNode([ + make_header_include_directives(header_node.accumulator), + TextNode(""), + header_blink_ns, + ]), name_style.header_guard(header_path)), + ]) + header_blink_ns.body.extend([ + make_forward_declarations(header_node.accumulator), + TextNode(""), + ]) + + header_blink_ns.body.append(class_def) + + # Write down to the files. + write_code_node_to_file(header_node, path_manager.gen_path_to(header_path)) + + +def generate_unions(web_idl_database): + union = list(web_idl_database.union_types)[0] + generate_union(union)
diff --git a/third_party/blink/renderer/bindings/scripts/generate_bindings.py b/third_party/blink/renderer/bindings/scripts/generate_bindings.py index f8972cb..a3f0f8b 100644 --- a/third_party/blink/renderer/bindings/scripts/generate_bindings.py +++ b/third_party/blink/renderer/bindings/scripts/generate_bindings.py
@@ -49,6 +49,7 @@ dispatch_table = { 'dictionary': bind_gen.generate_dictionaries, 'interface': bind_gen.generate_interfaces, + 'union': bind_gen.generate_unions, } for task in tasks:
diff --git a/third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps b/third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps index 5dfdc40..e5b9bcc 100644 --- a/third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps +++ b/third_party/blink/renderer/bindings/scripts/generate_bindings.pydeps
@@ -43,6 +43,7 @@ bind_gen/mako_renderer.py bind_gen/name_style.py bind_gen/path_manager.py +bind_gen/union.py generate_bindings.py web_idl/__init__.py web_idl/argument.py
diff --git a/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py b/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py index ce730a3..29add0327 100644 --- a/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py +++ b/third_party/blink/renderer/bindings/scripts/web_idl/composition_parts.py
@@ -151,9 +151,11 @@ # idl_parser produces paths based on the working directory, which may # not be the project root directory, e.g. "../../third_party/blink/...". # Canonicalize the paths heuristically. - index = filepath.find(self._blink_path_prefix) - if index >= 0: - filepath = filepath[index + 1:] + if filepath is not None: + index = filepath.find(self._blink_path_prefix) + if index >= 0: + filepath = filepath[index + 1:] + self._filepath = filepath self._line_number = line_number self._position = position # Position number in a file
diff --git a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc index 70c033a..e689beb 100644 --- a/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc +++ b/third_party/blink/renderer/core/fetch/readable_stream_bytes_consumer.cc
@@ -123,7 +123,16 @@ is_reading_ = true; ScriptState::Scope scope(script_state_); DCHECK(reader_); - reader_->read(script_state_) + + ExceptionState exception_state(script_state_->GetIsolate(), + ExceptionState::kUnknownContext, "", ""); + + ScriptPromise script_promise = + reader_->read(script_state_, exception_state); + if (exception_state.HadException()) + script_promise = ScriptPromise::Reject(script_state_, exception_state); + + script_promise .Then(OnFulfilled::CreateFunction(script_state_, this), OnRejected::CreateFunction(script_state_, this)) .MarkAsHandled();
diff --git a/third_party/blink/renderer/core/layout/layout_theme.h b/third_party/blink/renderer/core/layout/layout_theme.h index 121a6e37..67e8b5c 100644 --- a/third_party/blink/renderer/core/layout/layout_theme.h +++ b/third_party/blink/renderer/core/layout/layout_theme.h
@@ -187,7 +187,7 @@ virtual Color PlatformDefaultCompositionBackgroundColor() const { return kDefaultCompositionBackgroundColor; } - virtual void PlatformColorsDidChange(); + void PlatformColorsDidChange(); virtual void ColorSchemeDidChange(); void SetCaretBlinkInterval(base::TimeDelta);
diff --git a/third_party/blink/renderer/core/layout/layout_theme_mac.h b/third_party/blink/renderer/core/layout/layout_theme_mac.h index ae22fe6..3df1acac 100644 --- a/third_party/blink/renderer/core/layout/layout_theme_mac.h +++ b/third_party/blink/renderer/core/layout/layout_theme_mac.h
@@ -29,7 +29,6 @@ #include "base/mac/scoped_nsobject.h" #import "third_party/blink/renderer/core/layout/layout_theme.h" #import "third_party/blink/renderer/core/paint/theme_painter_mac.h" -#import "third_party/blink/renderer/platform/wtf/hash_map.h" @class BlinkLayoutThemeNotificationObserver; @@ -67,8 +66,6 @@ return part == kListboxPart ? kSmallScrollbar : kRegularScrollbar; } - void PlatformColorsDidChange() override; - // System fonts. void SystemFont(CSSValueID system_font_id, FontSelectionValue& font_slope, @@ -289,8 +286,6 @@ mutable base::scoped_nsobject<NSSearchFieldCell> search_; mutable base::scoped_nsobject<NSTextFieldCell> text_field_; - mutable HashMap<CSSValueID, RGBA32> system_color_cache_; - base::scoped_nsobject<BlinkLayoutThemeNotificationObserver> notification_observer_;
diff --git a/third_party/blink/renderer/core/layout/layout_theme_mac.mm b/third_party/blink/renderer/core/layout/layout_theme_mac.mm index f91b971..d8f1abed 100644 --- a/third_party/blink/renderer/core/layout/layout_theme_mac.mm +++ b/third_party/blink/renderer/core/layout/layout_theme_mac.mm
@@ -367,138 +367,86 @@ font_family = font_family_names::kSystemUi; } -void LayoutThemeMac::PlatformColorsDidChange() { - system_color_cache_.clear(); - LayoutTheme::PlatformColorsDidChange(); -} - Color LayoutThemeMac::SystemColor(CSSValueID css_value_id, WebColorScheme color_scheme) const { - { - HashMap<CSSValueID, RGBA32>::iterator it = - system_color_cache_.find(css_value_id); - if (it != system_color_cache_.end()) - return it->value; - } - - Color color; - bool needs_fallback = false; switch (css_value_id) { case CSSValueID::kActiveborder: - color = GetSystemColor(MacSystemColorID::kKeyboardFocusIndicator); - break; + return GetSystemColor(MacSystemColorID::kKeyboardFocusIndicator); case CSSValueID::kActivecaption: - color = GetSystemColor(MacSystemColorID::kWindowFrameText); - break; + return GetSystemColor(MacSystemColorID::kWindowFrameText); case CSSValueID::kAppworkspace: - color = GetSystemColor(MacSystemColorID::kHeader); - break; + return GetSystemColor(MacSystemColorID::kHeader); case CSSValueID::kBackground: - // Use theme independent default - needs_fallback = true; + // Use theme independent default. break; case CSSValueID::kButtonface: - color = GetSystemColor(MacSystemColorID::kControlBackground); - break; + return GetSystemColor(MacSystemColorID::kControlBackground); case CSSValueID::kButtonhighlight: - color = GetSystemColor(MacSystemColorID::kControlHighlight); - break; + return GetSystemColor(MacSystemColorID::kControlHighlight); case CSSValueID::kButtonshadow: - color = GetSystemColor(MacSystemColorID::kControlShadow); - break; + return GetSystemColor(MacSystemColorID::kControlShadow); case CSSValueID::kButtontext: - color = GetSystemColor(MacSystemColorID::kControlText); - break; + return GetSystemColor(MacSystemColorID::kControlText); case CSSValueID::kCaptiontext: - color = GetSystemColor(MacSystemColorID::kText); - break; + return GetSystemColor(MacSystemColorID::kText); case CSSValueID::kField: - color = GetSystemColor(MacSystemColorID::kControlBackground); - break; + return GetSystemColor(MacSystemColorID::kControlBackground); case CSSValueID::kFieldtext: - color = GetSystemColor(MacSystemColorID::kText); - break; + return GetSystemColor(MacSystemColorID::kText); case CSSValueID::kGraytext: - color = GetSystemColor(MacSystemColorID::kDisabledControlText); - break; + return GetSystemColor(MacSystemColorID::kDisabledControlText); case CSSValueID::kHighlight: - color = GetSystemColor(MacSystemColorID::kSelectedTextBackground); - break; + return GetSystemColor(MacSystemColorID::kSelectedTextBackground); case CSSValueID::kHighlighttext: - color = GetSystemColor(MacSystemColorID::kSelectedText); - break; + return GetSystemColor(MacSystemColorID::kSelectedText); case CSSValueID::kInactiveborder: - color = GetSystemColor(MacSystemColorID::kControlBackground); - break; + return GetSystemColor(MacSystemColorID::kControlBackground); case CSSValueID::kInactivecaption: - color = GetSystemColor(MacSystemColorID::kControlBackground); - break; + return GetSystemColor(MacSystemColorID::kControlBackground); case CSSValueID::kInactivecaptiontext: - color = GetSystemColor(MacSystemColorID::kText); - break; + return GetSystemColor(MacSystemColorID::kText); case CSSValueID::kInfobackground: // There is no corresponding NSColor for this so we use a hard coded // value. - color = 0xFFFBFCC5; - break; + return 0xFFFBFCC5; case CSSValueID::kInfotext: - color = GetSystemColor(MacSystemColorID::kText); - break; + return GetSystemColor(MacSystemColorID::kText); case CSSValueID::kMenu: - color = GetSystemColor(MacSystemColorID::kMenuBackground); - break; + return GetSystemColor(MacSystemColorID::kMenuBackground); case CSSValueID::kMenutext: - color = GetSystemColor(MacSystemColorID::kSelectedMenuItemText); - break; + return GetSystemColor(MacSystemColorID::kSelectedMenuItemText); case CSSValueID::kScrollbar: - color = GetSystemColor(MacSystemColorID::kScrollBar); - break; + return GetSystemColor(MacSystemColorID::kScrollBar); case CSSValueID::kText: - color = GetSystemColor(MacSystemColorID::kText); - break; + return GetSystemColor(MacSystemColorID::kText); case CSSValueID::kThreeddarkshadow: - color = GetSystemColor(MacSystemColorID::kControlDarkShadow); - break; + return GetSystemColor(MacSystemColorID::kControlDarkShadow); case CSSValueID::kThreedshadow: - color = GetSystemColor(MacSystemColorID::kShadow); - break; + return GetSystemColor(MacSystemColorID::kShadow); case CSSValueID::kThreedface: // We use this value instead of NSColor's controlColor to avoid website // incompatibilities. We may want to change this to use the NSColor in // future. - color = 0xFFC0C0C0; - break; + return 0xFFC0C0C0; case CSSValueID::kThreedhighlight: - color = GetSystemColor(MacSystemColorID::kHighlight); - break; + return GetSystemColor(MacSystemColorID::kHighlight); case CSSValueID::kThreedlightshadow: - color = GetSystemColor(MacSystemColorID::kControlLightHighlight); - break; + return GetSystemColor(MacSystemColorID::kControlLightHighlight); case CSSValueID::kWebkitFocusRingColor: - color = GetSystemColor(MacSystemColorID::kKeyboardFocusIndicator); - break; + return GetSystemColor(MacSystemColorID::kKeyboardFocusIndicator); case CSSValueID::kWindow: case CSSValueID::kCanvas: - color = GetSystemColor(MacSystemColorID::kWindowBackground); - break; + return GetSystemColor(MacSystemColorID::kWindowBackground); case CSSValueID::kWindowframe: - color = GetSystemColor(MacSystemColorID::kWindowFrame); - break; + return GetSystemColor(MacSystemColorID::kWindowFrame); case CSSValueID::kWindowtext: case CSSValueID::kCanvastext: - color = GetSystemColor(MacSystemColorID::kWindowFrameText); - break; + return GetSystemColor(MacSystemColorID::kWindowFrameText); default: - needs_fallback = true; break; } - if (needs_fallback) - color = LayoutTheme::SystemColor(css_value_id, color_scheme); - - system_color_cache_.Set(css_value_id, color.Rgb()); - - return color; + return LayoutTheme::SystemColor(css_value_id, color_scheme); } bool LayoutThemeMac::IsControlStyled(ControlPart part,
diff --git a/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl b/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl index e732ef8..ed3f7f7 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl +++ b/third_party/blink/renderer/core/streams/readable_stream_default_reader.idl
@@ -10,8 +10,8 @@ [CallWith=ScriptState, NotEnumerable] readonly attribute Promise<void> closed; - [CallWith=ScriptState, NotEnumerable] Promise<void> cancel( + [CallWith=ScriptState, RaisesException, NotEnumerable] Promise<void> cancel( optional any reason); - [CallWith=ScriptState, NotEnumerable] Promise<void> read(); + [CallWith=ScriptState, RaisesException, NotEnumerable] Promise<void> read(); [CallWith=ScriptState, NotEnumerable, RaisesException] void releaseLock(); };
diff --git a/third_party/blink/renderer/core/streams/readable_stream_reader.cc b/third_party/blink/renderer/core/streams/readable_stream_reader.cc index f09739e..0039f56e 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_reader.cc +++ b/third_party/blink/renderer/core/streams/readable_stream_reader.cc
@@ -55,24 +55,25 @@ return closed_promise_->GetScriptPromise(script_state); } -ScriptPromise ReadableStreamReader::cancel(ScriptState* script_state) { +ScriptPromise ReadableStreamReader::cancel(ScriptState* script_state, + ExceptionState& exception_state) { return cancel(script_state, ScriptValue(script_state->GetIsolate(), - v8::Undefined(script_state->GetIsolate()))); + v8::Undefined(script_state->GetIsolate())), + exception_state); } ScriptPromise ReadableStreamReader::cancel(ScriptState* script_state, - ScriptValue reason) { + ScriptValue reason, + ExceptionState& exception_state) { // https://streams.spec.whatwg.org/#default-reader-cancel // 2. If this.[[ownerReadableStream]] is undefined, return a promise rejected // with a TypeError exception. if (!owner_readable_stream_) { - return ScriptPromise::Reject( - script_state, - v8::Exception::TypeError(V8String( - script_state->GetIsolate(), - "This readable stream reader has been released and cannot be used " - "to cancel its previous owner stream"))); + exception_state.ThrowTypeError( + "This readable stream reader has been released and cannot be used to " + "cancel its previous owner stream"); + return ScriptPromise(); } // 3. Return ! ReadableStreamReaderGenericCancel(this, reason). @@ -81,17 +82,16 @@ return ScriptPromise(script_state, result); } -ScriptPromise ReadableStreamReader::read(ScriptState* script_state) { +ScriptPromise ReadableStreamReader::read(ScriptState* script_state, + ExceptionState& exception_state) { // https://streams.spec.whatwg.org/#default-reader-read // 2. If this.[[ownerReadableStream]] is undefined, return a promise rejected // with a TypeError exception. if (!owner_readable_stream_) { - return ScriptPromise::Reject( - script_state, - v8::Exception::TypeError(V8String( - script_state->GetIsolate(), - "This readable stream reader has been released and cannot be used " - "to read from its previous owner stream"))); + exception_state.ThrowTypeError( + "This readable stream reader has been released and cannot be used to " + "read from its previous owner stream"); + return ScriptPromise(); } // 3. Return ! ReadableStreamReaderRead(this).
diff --git a/third_party/blink/renderer/core/streams/readable_stream_reader.h b/third_party/blink/renderer/core/streams/readable_stream_reader.h index a112b8d..08dc0ff 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_reader.h +++ b/third_party/blink/renderer/core/streams/readable_stream_reader.h
@@ -41,11 +41,11 @@ ScriptPromise closed(ScriptState*) const; // https://streams.spec.whatwg.org/#default-reader-cancel - ScriptPromise cancel(ScriptState*); - ScriptPromise cancel(ScriptState*, ScriptValue reason); + ScriptPromise cancel(ScriptState*, ExceptionState&); + ScriptPromise cancel(ScriptState*, ScriptValue reason, ExceptionState&); // https://streams.spec.whatwg.org/#default-reader-read - ScriptPromise read(ScriptState*); + ScriptPromise read(ScriptState*, ExceptionState&); // https://streams.spec.whatwg.org/#default-reader-release-lock void releaseLock(ScriptState*, ExceptionState&);
diff --git a/third_party/blink/renderer/core/streams/readable_stream_test.cc b/third_party/blink/renderer/core/streams/readable_stream_test.cc index 1cc1b6b..9601e3a 100644 --- a/third_party/blink/renderer/core/streams/readable_stream_test.cc +++ b/third_party/blink/renderer/core/streams/readable_stream_test.cc
@@ -191,7 +191,7 @@ EXPECT_EQ(stream->IsDisturbed(script_state, ASSERT_NO_EXCEPTION), base::make_optional(false)); - reader->read(script_state); + reader->read(script_state, ASSERT_NO_EXCEPTION); EXPECT_EQ(stream->IsDisturbed(script_state, ASSERT_NO_EXCEPTION), base::make_optional(true));
diff --git a/third_party/blink/renderer/core/streams/transferable_streams_test.cc b/third_party/blink/renderer/core/streams/transferable_streams_test.cc index fb2b46b..8485423c 100644 --- a/third_party/blink/renderer/core/streams/transferable_streams_test.cc +++ b/third_party/blink/renderer/core/streams/transferable_streams_test.cc
@@ -43,7 +43,8 @@ auto* writer = writable->getWriter(script_state, ASSERT_NO_EXCEPTION); auto* reader = readable->getReader(script_state, ASSERT_NO_EXCEPTION); - writer->write(script_state, ScriptValue::CreateNull(scope.GetIsolate())); + writer->write(script_state, ScriptValue::CreateNull(scope.GetIsolate()), + ASSERT_NO_EXCEPTION); class ExpectNullResponse : public ScriptFunction { public: @@ -105,7 +106,7 @@ }; bool got_response = false; - reader->read(script_state) + reader->read(script_state, ASSERT_NO_EXCEPTION) .Then(ExpectNullResponse::Create(script_state, &got_response), ExpectNotReached::Create(script_state));
diff --git a/third_party/blink/renderer/core/streams/transform_stream_test.cc b/third_party/blink/renderer/core/streams/transform_stream_test.cc index 7d0ea4b..13debfe 100644 --- a/third_party/blink/renderer/core/streams/transform_stream_test.cc +++ b/third_party/blink/renderer/core/streams/transform_stream_test.cc
@@ -265,7 +265,8 @@ ReadableStream* readable = Stream()->Readable(); auto* reader = readable->getReader(script_state, ASSERT_NO_EXCEPTION); - ScriptPromiseTester tester(script_state, reader->read(script_state)); + ScriptPromiseTester tester(script_state, + reader->read(script_state, ASSERT_NO_EXCEPTION)); tester.WaitUntilSettled(); EXPECT_TRUE(tester.IsFulfilled()); EXPECT_TRUE(IsIteratorForStringMatching(script_state, tester.Value(), "a")); @@ -298,7 +299,8 @@ ReadableStream* readable = Stream()->Readable(); auto* reader = readable->getReader(script_state, ASSERT_NO_EXCEPTION); - ScriptPromiseTester tester(script_state, reader->read(script_state)); + ScriptPromiseTester tester(script_state, + reader->read(script_state, ASSERT_NO_EXCEPTION)); tester.WaitUntilSettled(); EXPECT_TRUE(tester.IsFulfilled()); EXPECT_TRUE(IsIteratorForStringMatching(script_state, tester.Value(), "a")); @@ -333,7 +335,8 @@ ReadableStream* readable = Stream()->Readable(); auto* reader = readable->getReader(script_state, ASSERT_NO_EXCEPTION); - ScriptPromiseTester read_tester(script_state, reader->read(script_state)); + ScriptPromiseTester read_tester( + script_state, reader->read(script_state, ASSERT_NO_EXCEPTION)); read_tester.WaitUntilSettled(); EXPECT_TRUE(read_tester.IsRejected()); EXPECT_TRUE(IsTypeError(script_state, read_tester.Value(), kMessage)); @@ -370,7 +373,8 @@ ReadableStream* readable = Stream()->Readable(); auto* reader = readable->getReader(script_state, ASSERT_NO_EXCEPTION); - ScriptPromiseTester read_tester(script_state, reader->read(script_state)); + ScriptPromiseTester read_tester( + script_state, reader->read(script_state, ASSERT_NO_EXCEPTION)); read_tester.WaitUntilSettled(); EXPECT_TRUE(read_tester.IsRejected()); EXPECT_TRUE(IsTypeError(script_state, read_tester.Value(), kMessage)); @@ -441,7 +445,7 @@ Stream() ->Readable() ->getReader(script_state, ASSERT_NO_EXCEPTION) - ->read(script_state); + ->read(script_state, ASSERT_NO_EXCEPTION); ScriptPromiseTester write_tester(script_state, ScriptPromise::Cast(script_state, promise)); @@ -499,7 +503,7 @@ Stream() ->Readable() ->getReader(script_state, ASSERT_NO_EXCEPTION) - ->read(script_state); + ->read(script_state, ASSERT_NO_EXCEPTION); ScriptPromiseTester close_tester(script_state, ScriptPromise::Cast(script_state, promise));
diff --git a/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc b/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc index 4bfadf7d..8fe1dea 100644 --- a/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc +++ b/third_party/blink/renderer/core/streams/writable_stream_default_writer.cc
@@ -21,13 +21,15 @@ namespace { +String CreateWriterLockReleasedMessage(const char* verbed) { + return String::Format( + "This writable stream writer has been released and cannot be %s", verbed); +} + v8::Local<v8::Value> CreateWriterLockReleasedException(v8::Isolate* isolate, const char* verbed) { - return v8::Exception::TypeError(V8String( - isolate, - String::Format( - "This writable stream writer has been released and cannot be %s", - verbed))); + return v8::Exception::TypeError( + V8String(isolate, CreateWriterLockReleasedMessage(verbed))); } } // namespace @@ -178,21 +180,25 @@ return ready_promise_->GetScriptPromise(script_state); } -ScriptPromise WritableStreamDefaultWriter::abort(ScriptState* script_state) { +ScriptPromise WritableStreamDefaultWriter::abort( + ScriptState* script_state, + ExceptionState& exception_state) { return abort(script_state, ScriptValue(script_state->GetIsolate(), - v8::Undefined(script_state->GetIsolate()))); + v8::Undefined(script_state->GetIsolate())), + exception_state); } -ScriptPromise WritableStreamDefaultWriter::abort(ScriptState* script_state, - ScriptValue reason) { +ScriptPromise WritableStreamDefaultWriter::abort( + ScriptState* script_state, + ScriptValue reason, + ExceptionState& exception_state) { // https://streams.spec.whatwg.org/#default-writer-abort // 2. If this.[[ownerWritableStream]] is undefined, return a promise rejected // with a TypeError exception. if (!owner_writable_stream_) { - return ScriptPromise::Reject(script_state, - CreateWriterLockReleasedException( - script_state->GetIsolate(), "aborted")); + exception_state.ThrowTypeError(CreateWriterLockReleasedMessage("aborted")); + return ScriptPromise(); } // 3. Return ! WritableStreamDefaultWriterAbort(this, reason). @@ -200,7 +206,9 @@ Abort(script_state, this, reason.V8Value())); } -ScriptPromise WritableStreamDefaultWriter::close(ScriptState* script_state) { +ScriptPromise WritableStreamDefaultWriter::close( + ScriptState* script_state, + ExceptionState& exception_state) { // https://streams.spec.whatwg.org/#default-writer-close // 2. Let stream be this.[[ownerWritableStream]]. WritableStream* stream = owner_writable_stream_; @@ -208,19 +216,17 @@ // 3. If stream is undefined, return a promise rejected with a TypeError // exception. if (!stream) { - return ScriptPromise::Reject(script_state, - CreateWriterLockReleasedException( - script_state->GetIsolate(), "closed")); + exception_state.ThrowTypeError(CreateWriterLockReleasedMessage("closed")); + return ScriptPromise(); } // 4. If ! WritableStreamCloseQueuedOrInFlight(stream) is true, return a // promise rejected with a TypeError exception. if (WritableStream::CloseQueuedOrInFlight(stream)) { - return ScriptPromise::Reject( - script_state, v8::Exception::TypeError( - V8String(script_state->GetIsolate(), - "Cannot close a writable stream that has " - "already been requested to be closed"))); + exception_state.ThrowTypeError( + "Cannot close a writable stream that has " + "already been requested to be closed"); + return ScriptPromise(); } // 5. Return ! WritableStreamDefaultWriterClose(this). @@ -244,21 +250,26 @@ Release(script_state, this); } -ScriptPromise WritableStreamDefaultWriter::write(ScriptState* script_state) { +ScriptPromise WritableStreamDefaultWriter::write( + ScriptState* script_state, + ExceptionState& exception_state) { return write(script_state, ScriptValue(script_state->GetIsolate(), - v8::Undefined(script_state->GetIsolate()))); + v8::Undefined(script_state->GetIsolate())), + exception_state); } -ScriptPromise WritableStreamDefaultWriter::write(ScriptState* script_state, - ScriptValue chunk) { +ScriptPromise WritableStreamDefaultWriter::write( + ScriptState* script_state, + ScriptValue chunk, + ExceptionState& exception_state) { // https://streams.spec.whatwg.org/#default-writer-write // 2. If this.[[ownerWritableStream]] is undefined, return a promise rejected // with a TypeError exception. if (!owner_writable_stream_) { - return ScriptPromise::Reject(script_state, - CreateWriterLockReleasedException( - script_state->GetIsolate(), "written to")); + exception_state.ThrowTypeError( + CreateWriterLockReleasedMessage("written to")); + return ScriptPromise(); } // 3. Return ! WritableStreamDefaultWriterWrite(this, chunk).
diff --git a/third_party/blink/renderer/core/streams/writable_stream_default_writer.h b/third_party/blink/renderer/core/streams/writable_stream_default_writer.h index 71a102f..cb8fc99 100644 --- a/third_party/blink/renderer/core/streams/writable_stream_default_writer.h +++ b/third_party/blink/renderer/core/streams/writable_stream_default_writer.h
@@ -51,18 +51,18 @@ // Methods // https://streams.spec.whatwg.org/#default-writer-abort - ScriptPromise abort(ScriptState*); - ScriptPromise abort(ScriptState*, ScriptValue reason); + ScriptPromise abort(ScriptState*, ExceptionState&); + ScriptPromise abort(ScriptState*, ScriptValue reason, ExceptionState&); // https://streams.spec.whatwg.org/#default-writer-close - ScriptPromise close(ScriptState*); + ScriptPromise close(ScriptState*, ExceptionState&); // https://streams.spec.whatwg.org/#default-writer-release-lock void releaseLock(ScriptState*); // https://streams.spec.whatwg.org/#default-writer-write - ScriptPromise write(ScriptState*); - ScriptPromise write(ScriptState*, ScriptValue chunk); + ScriptPromise write(ScriptState*, ExceptionState&); + ScriptPromise write(ScriptState*, ScriptValue chunk, ExceptionState&); // // Methods used by WritableStream
diff --git a/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl b/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl index 358e2ad..0b59cdf3 100644 --- a/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl +++ b/third_party/blink/renderer/core/streams/writable_stream_default_writer.idl
@@ -16,10 +16,10 @@ [CallWith=ScriptState, NotEnumerable] readonly attribute Promise<void> ready; - [CallWith=ScriptState, NotEnumerable] Promise<void> abort( + [CallWith=ScriptState, RaisesException, NotEnumerable] Promise<void> abort( optional any reason); - [CallWith=ScriptState, NotEnumerable] Promise<void> close(); + [CallWith=ScriptState, RaisesException, NotEnumerable] Promise<void> close(); [CallWith=ScriptState, NotEnumerable] void releaseLock(); - [CallWith=ScriptState, NotEnumerable] Promise<void> write( + [CallWith=ScriptState, RaisesException, NotEnumerable] Promise<void> write( optional any chunk); };
diff --git a/third_party/blink/renderer/core/streams/writable_stream_test.cc b/third_party/blink/renderer/core/streams/writable_stream_test.cc index 6c1ff8e..731c0d3d 100644 --- a/third_party/blink/renderer/core/streams/writable_stream_test.cc +++ b/third_party/blink/renderer/core/streams/writable_stream_test.cc
@@ -86,7 +86,8 @@ transferred->getWriter(script_state, ASSERT_NO_EXCEPTION); auto* isolate = script_state->GetIsolate(); - writer->write(script_state, ScriptValue(isolate, V8String(isolate, "a"))); + writer->write(script_state, ScriptValue(isolate, V8String(isolate, "a")), + ASSERT_NO_EXCEPTION); // Run the message loop to allow messages to be delivered. test::RunPendingTasks();
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc index 07c0aec..3cb4100 100644 --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/workers/dedicated_worker.h" #include <utility> + #include "base/feature_list.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/network/public/mojom/fetch_api.mojom-blink.h" @@ -41,7 +42,6 @@ #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" -#include "third_party/blink/renderer/platform/instrumentation/histogram.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher_properties.h" @@ -49,50 +49,6 @@ namespace blink { -namespace { - -// Indicates whether the origin of worker top-level script's request URL is -// same-origin as the parent execution context's origin or not. -// This is used for UMA and thus the existing values should not be changed. -enum class WorkerTopLevelScriptOriginType { - kSameOrigin = 0, - kDataUrl = 1, - - // Cross-origin worker request URL (e.g. https://example.com/worker.js) - // from an chrome-extension: page. - kCrossOriginFromExtension = 2, - - // Cross-origin worker request URL from a non chrome-extension: page. - // There are no known cases for this, and we investigate whether there are - // really no occurrences. - kCrossOriginOthers = 3, - - kMaxValue = kCrossOriginOthers -}; - -void CountTopLevelScriptRequestUrlOriginType( - const SecurityOrigin& context_origin, - const KURL& request_url) { - WorkerTopLevelScriptOriginType origin_type; - if (request_url.ProtocolIsData()) { - origin_type = WorkerTopLevelScriptOriginType::kDataUrl; - } else if (context_origin.IsSameOriginWith( - SecurityOrigin::Create(request_url).get())) { - origin_type = WorkerTopLevelScriptOriginType::kSameOrigin; - } else if (context_origin.Protocol() == "chrome-extension") { - // Note: using "chrome-extension" scheme check here is a layering - // violation. Do not use this except for UMA purpose. - origin_type = WorkerTopLevelScriptOriginType::kCrossOriginFromExtension; - } else { - origin_type = WorkerTopLevelScriptOriginType::kCrossOriginOthers; - } - UMA_HISTOGRAM_ENUMERATION( - "Worker.TopLevelScript.OriginType.RequestUrl.DedicatedWorker", - origin_type); -} - -} // namespace - DedicatedWorker* DedicatedWorker::Create(ExecutionContext* context, const String& url, const WorkerOptions* options, @@ -386,9 +342,6 @@ } else if (classic_script_loader_->Failed()) { context_proxy_->DidFailToFetchScript(); } else { - CountTopLevelScriptRequestUrlOriginType( - *GetExecutionContext()->GetSecurityOrigin(), script_request_url_); - network::mojom::ReferrerPolicy referrer_policy = network::mojom::ReferrerPolicy::kDefault; if (!classic_script_loader_->GetReferrerPolicy().IsNull()) {
diff --git a/third_party/blink/renderer/modules/media_capabilities/media_capabilities_fuzzer.cc b/third_party/blink/renderer/modules/media_capabilities/media_capabilities_fuzzer.cc index 460d29b4..3ca6639 100644 --- a/third_party/blink/renderer/modules/media_capabilities/media_capabilities_fuzzer.cc +++ b/third_party/blink/renderer/modules/media_capabilities/media_capabilities_fuzzer.cc
@@ -140,10 +140,10 @@ ScriptState* script_state = ToScriptStateForMainWorld(&page_holder->GetFrame()); ScriptState::Scope scope(script_state); - NonThrowableExceptionState exception_state; auto* media_capabilities = MakeGarbageCollected<MediaCapabilities>(); - media_capabilities->decodingInfo(script_state, config, exception_state); + media_capabilities->decodingInfo(script_state, config, + IGNORE_EXCEPTION_FOR_TESTING); // Request a V8 GC. Oilpan will be invoked by the GC epilogue. //
diff --git a/third_party/blink/renderer/modules/native_file_system/native_file_system_writable_file_stream.cc b/third_party/blink/renderer/modules/native_file_system/native_file_system_writable_file_stream.cc index 0c156d9..99919e4 100644 --- a/third_party/blink/renderer/modules/native_file_system/native_file_system_writable_file_stream.cc +++ b/third_party/blink/renderer/modules/native_file_system/native_file_system_writable_file_stream.cc
@@ -62,8 +62,8 @@ if (exception_state.HadException()) return ScriptPromise(); - ScriptPromise promise = - writer->write(script_state, ScriptValue::From(script_state, data)); + ScriptPromise promise = writer->write( + script_state, ScriptValue::From(script_state, data), exception_state); WritableStreamDefaultWriter::Release(script_state, writer); return promise; @@ -82,8 +82,8 @@ options->setType("truncate"); options->setSize(size); - ScriptPromise promise = - writer->write(script_state, ScriptValue::From(script_state, options)); + ScriptPromise promise = writer->write( + script_state, ScriptValue::From(script_state, options), exception_state); WritableStreamDefaultWriter::Release(script_state, writer); return promise; @@ -97,7 +97,7 @@ if (exception_state.HadException()) return ScriptPromise(); - ScriptPromise promise = writer->close(script_state); + ScriptPromise promise = writer->close(script_state, exception_state); WritableStreamDefaultWriter::Release(script_state, writer); return promise; @@ -116,8 +116,8 @@ options->setType("seek"); options->setPosition(offset); - ScriptPromise promise = - writer->write(script_state, ScriptValue::From(script_state, options)); + ScriptPromise promise = writer->write( + script_state, ScriptValue::From(script_state, options), exception_state); WritableStreamDefaultWriter::Release(script_state, writer); return promise;
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock.cc index 4f47fb5..9d266a1b 100644 --- a/third_party/blink/renderer/modules/wake_lock/wake_lock.cc +++ b/third_party/blink/renderer/modules/wake_lock/wake_lock.cc
@@ -16,6 +16,7 @@ #include "third_party/blink/renderer/modules/wake_lock/wake_lock_type.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" +#include "third_party/blink/renderer/platform/scheduler/public/frame_or_worker_scheduler.h" #include "third_party/blink/renderer/platform/wtf/functional.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -30,7 +31,11 @@ managers_{MakeGarbageCollected<WakeLockManager>(&document, WakeLockType::kScreen), MakeGarbageCollected<WakeLockManager>(&document, - WakeLockType::kSystem)} {} + WakeLockType::kSystem)} { + document.GetScheduler()->RegisterStickyFeature( + SchedulingPolicy::Feature::kWakeLock, + {SchedulingPolicy::RecordMetricsForBackForwardCache()}); +} WakeLock::WakeLock(DedicatedWorkerGlobalScope& worker_scope) : ContextLifecycleObserver(&worker_scope),
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc index f544a46..525237cc 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -227,14 +227,14 @@ return promise; } -ScriptPromise AudioContext::resumeContext(ScriptState* script_state) { +ScriptPromise AudioContext::resumeContext(ScriptState* script_state, + ExceptionState& exception_state) { DCHECK(IsMainThread()); if (IsContextClosed()) { - return ScriptPromise::RejectWithDOMException( - script_state, MakeGarbageCollected<DOMException>( - DOMExceptionCode::kInvalidAccessError, - "cannot resume a closed AudioContext")); + exception_state.ThrowDOMException(DOMExceptionCode::kInvalidAccessError, + "cannot resume a closed AudioContext"); + return ScriptPromise(); } auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state); @@ -322,15 +322,17 @@ return result; } -ScriptPromise AudioContext::closeContext(ScriptState* script_state) { +ScriptPromise AudioContext::closeContext(ScriptState* script_state, + ExceptionState& exception_state) { if (IsContextClosed()) { // We've already closed the context previously, but it hasn't yet been - // resolved, so just create a new promise and reject it. - return ScriptPromise::RejectWithDOMException( - script_state, MakeGarbageCollected<DOMException>( - DOMExceptionCode::kInvalidStateError, - "Cannot close a context that is being closed or " - "has already been closed.")); + // resolved, so just throw a DOM exception to trigger a promise rejection + // and return an empty promise. + exception_state.ThrowDOMException( + DOMExceptionCode::kInvalidStateError, + "Cannot close a context that is being closed or has already been " + "closed."); + return ScriptPromise(); } close_resolver_ = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.h b/third_party/blink/renderer/modules/webaudio/audio_context.h index 6e34559..95be7c3 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/audio_context.h
@@ -48,11 +48,11 @@ void ContextDestroyed(ExecutionContext*) final; bool HasPendingActivity() const override; - ScriptPromise closeContext(ScriptState*); + ScriptPromise closeContext(ScriptState*, ExceptionState&); bool IsContextClosed() const final; ScriptPromise suspendContext(ScriptState*); - ScriptPromise resumeContext(ScriptState*); + ScriptPromise resumeContext(ScriptState*, ExceptionState&); bool HasRealtimeConstraint() final { return true; }
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.idl b/third_party/blink/renderer/modules/webaudio/audio_context.idl index d7a6f4b..3f5e5f3 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context.idl +++ b/third_party/blink/renderer/modules/webaudio/audio_context.idl
@@ -37,8 +37,8 @@ ] interface AudioContext : BaseAudioContext { [CallWith=Document, RaisesException, Measure] constructor(optional AudioContextOptions contextOptions); [MeasureAs=AudioContextSuspend, CallWith=ScriptState, ImplementedAs=suspendContext] Promise<void> suspend(); - [MeasureAs=AudioContextClose, CallWith=ScriptState, ImplementedAs=closeContext] Promise<void> close(); - [MeasureAs=AudioContextResume, CallWith=ScriptState, ImplementedAs=resumeContext] Promise<void> resume(); + [MeasureAs=AudioContextClose, RaisesException, CallWith=ScriptState, ImplementedAs=closeContext] Promise<void> close(); + [MeasureAs=AudioContextResume, RaisesException, CallWith=ScriptState, ImplementedAs=resumeContext] Promise<void> resume(); // Output timestamp [MeasureAs=AudioContextGetOutputTimestamp, CallWith=ScriptState] AudioTimestamp getOutputTimestamp();
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc b/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc index 17f7deed..a4565152 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc
@@ -189,7 +189,8 @@ AudioContext* audio_context = AudioContext::Create( ChildDocument(), AudioContextOptions::Create(), ASSERT_NO_EXCEPTION); - audio_context->resumeContext(GetScriptStateFrom(ChildDocument())); + audio_context->resumeContext(GetScriptStateFrom(ChildDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -216,7 +217,8 @@ AudioContext* audio_context = AudioContext::Create( GetDocument(), AudioContextOptions::Create(), ASSERT_NO_EXCEPTION); - audio_context->resumeContext(GetScriptStateFrom(ChildDocument())); + audio_context->resumeContext(GetScriptStateFrom(ChildDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -294,7 +296,8 @@ LocalFrame::NotifyUserActivation(ChildDocument().GetFrame()); - audio_context->resumeContext(GetScriptStateFrom(ChildDocument())); + audio_context->resumeContext(GetScriptStateFrom(ChildDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -326,7 +329,8 @@ LocalFrame::NotifyUserActivation(GetDocument().GetFrame()); - audio_context->resumeContext(GetScriptStateFrom(GetDocument())); + audio_context->resumeContext(GetScriptStateFrom(GetDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -457,7 +461,8 @@ audio_context->NotifySourceNodeStart(); LocalFrame::NotifyUserActivation(ChildDocument().GetFrame()); - audio_context->resumeContext(GetScriptStateFrom(ChildDocument())); + audio_context->resumeContext(GetScriptStateFrom(ChildDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -490,7 +495,8 @@ audio_context->NotifySourceNodeStart(); LocalFrame::NotifyUserActivation(GetDocument().GetFrame()); - audio_context->resumeContext(GetScriptStateFrom(GetDocument())); + audio_context->resumeContext(GetScriptStateFrom(GetDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -520,7 +526,8 @@ LocalFrame::NotifyUserActivation(ChildDocument().GetFrame()); audio_context->NotifySourceNodeStart(); - audio_context->resumeContext(GetScriptStateFrom(ChildDocument())); + audio_context->resumeContext(GetScriptStateFrom(ChildDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context); @@ -553,7 +560,8 @@ LocalFrame::NotifyUserActivation(GetDocument().GetFrame()); audio_context->NotifySourceNodeStart(); - audio_context->resumeContext(GetScriptStateFrom(GetDocument())); + audio_context->resumeContext(GetScriptStateFrom(GetDocument()), + ASSERT_NO_EXCEPTION); RejectPendingResolvers(audio_context); RecordAutoplayStatus(audio_context);
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc index 3d93311..95e6542 100644 --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc
@@ -167,7 +167,8 @@ } ScriptPromise OfflineAudioContext::startOfflineRendering( - ScriptState* script_state) { + ScriptState* script_state, + ExceptionState& exception_state) { DCHECK(IsMainThread()); // Calling close() on an OfflineAudioContext is not supported/allowed, @@ -175,29 +176,28 @@ // // See: crbug.com/435867 if (IsContextClosed()) { - return ScriptPromise::RejectWithDOMException( - script_state, MakeGarbageCollected<DOMException>( - DOMExceptionCode::kInvalidStateError, - "cannot call startRendering on an " - "OfflineAudioContext in a stopped state.")); + exception_state.ThrowDOMException( + DOMExceptionCode::kInvalidStateError, + "cannot call startRendering on an OfflineAudioContext in a stopped " + "state."); + return ScriptPromise(); } // If the context is not in the suspended state (i.e. running), reject the // promise. if (ContextState() != AudioContextState::kSuspended) { - return ScriptPromise::RejectWithDOMException( - script_state, - MakeGarbageCollected<DOMException>( - DOMExceptionCode::kInvalidStateError, - "cannot startRendering when an OfflineAudioContext is " + state())); + exception_state.ThrowDOMException( + DOMExceptionCode::kInvalidStateError, + "cannot startRendering when an OfflineAudioContext is " + state()); + return ScriptPromise(); } // Can't call startRendering more than once. Return a rejected promise now. if (is_rendering_started_) { - return ScriptPromise::RejectWithDOMException( - script_state, MakeGarbageCollected<DOMException>( - DOMExceptionCode::kInvalidStateError, - "cannot call startRendering more than once")); + exception_state.ThrowDOMException( + DOMExceptionCode::kInvalidStateError, + "cannot call startRendering more than once"); + return ScriptPromise(); } DCHECK(!is_rendering_started_); @@ -213,13 +213,13 @@ number_of_channels, total_render_frames_, sample_rate); if (!render_target) { - return ScriptPromise::RejectWithDOMException( - script_state, MakeGarbageCollected<DOMException>( - DOMExceptionCode::kNotSupportedError, - "startRendering failed to create AudioBuffer(" + - String::Number(number_of_channels) + ", " + - String::Number(total_render_frames_) + ", " + - String::Number(sample_rate) + ")")); + exception_state.ThrowDOMException( + DOMExceptionCode::kNotSupportedError, + "startRendering failed to create AudioBuffer(" + + String::Number(number_of_channels) + ", " + + String::Number(total_render_frames_) + ", " + + String::Number(sample_rate) + ")"); + return ScriptPromise(); } // Start rendering and return the promise.
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.h b/third_party/blink/renderer/modules/webaudio/offline_audio_context.h index f35b536..d9f4527 100644 --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.h
@@ -61,7 +61,7 @@ uint32_t length() const { return total_render_frames_; } - ScriptPromise startOfflineRendering(ScriptState*); + ScriptPromise startOfflineRendering(ScriptState*, ExceptionState&); ScriptPromise suspendContext(ScriptState*, double); ScriptPromise resumeContext(ScriptState*);
diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.idl b/third_party/blink/renderer/modules/webaudio/offline_audio_context.idl index 2aaba12..d2b4c18 100644 --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.idl +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.idl
@@ -32,7 +32,7 @@ // Offline rendering attribute EventHandler oncomplete; readonly attribute unsigned long length; - [CallWith=ScriptState, ImplementedAs=startOfflineRendering, MeasureAs=OfflineAudioContextStartRendering] Promise<AudioBuffer> startRendering(); + [CallWith=ScriptState, RaisesException, ImplementedAs=startOfflineRendering, MeasureAs=OfflineAudioContextStartRendering] Promise<AudioBuffer> startRendering(); [CallWith=ScriptState, ImplementedAs=suspendContext, MeasureAs=OfflineAudioContextSuspend] Promise<void> suspend(double suspendTime); [MeasureAs=OfflineAudioContextResume, CallWith=ScriptState, ImplementedAs=resumeContext] Promise<void> resume(); };
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc index bb529c8..aa57650d 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher_test.cc
@@ -107,6 +107,21 @@ FetchClientSettingsObject::InsecureNavigationsSet()); } +class PartialResourceRequest { + public: + PartialResourceRequest() : PartialResourceRequest(ResourceRequest()) {} + PartialResourceRequest(const ResourceRequest& request) + : is_ad_resource_(request.IsAdResource()), + priority_(request.Priority()) {} + + bool IsAdResource() const { return is_ad_resource_; } + ResourceLoadPriority Priority() const { return priority_; } + + private: + bool is_ad_resource_; + ResourceLoadPriority priority_; +}; + } // namespace class ResourceFetcherTest : public testing::Test { @@ -123,7 +138,7 @@ const ResourceResponse& redirect_response, ResourceType, const FetchInitiatorInfo&) override { - request_ = request; + request_ = PartialResourceRequest(request); } void DidChangePriority(uint64_t identifier, ResourceLoadPriority, @@ -149,12 +164,12 @@ int64_t encoded_data_length, IsInternalRequest is_internal_request) override {} - const base::Optional<ResourceRequest>& GetLastRequest() const { + const base::Optional<PartialResourceRequest>& GetLastRequest() const { return request_; } private: - base::Optional<ResourceRequest> request_; + base::Optional<PartialResourceRequest> request_; }; protected: @@ -261,7 +276,8 @@ Resource* new_resource = RawResource::Fetch(fetch_params, fetcher, nullptr); EXPECT_EQ(resource, new_resource); - base::Optional<ResourceRequest> new_request = observer->GetLastRequest(); + base::Optional<PartialResourceRequest> new_request = + observer->GetLastRequest(); EXPECT_TRUE(new_request.has_value()); EXPECT_TRUE(new_request.value().IsAdResource()); } @@ -976,7 +992,8 @@ EXPECT_TRUE(GetMemoryCache()->Contains(resource)); static_cast<scheduler::FakeTaskRunner*>(fetcher->GetTaskRunner().get()) ->RunUntilIdle(); - base::Optional<ResourceRequest> swr_request = observer->GetLastRequest(); + base::Optional<PartialResourceRequest> swr_request = + observer->GetLastRequest(); ASSERT_TRUE(swr_request.has_value()); EXPECT_EQ(ResourceLoadPriority::kVeryLow, swr_request->Priority()); platform_->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
diff --git a/third_party/blink/renderer/platform/scheduler/common/scheduling_policy.cc b/third_party/blink/renderer/platform/scheduler/common/scheduling_policy.cc index 08f58e5..3321dff9 100644 --- a/third_party/blink/renderer/platform/scheduler/common/scheduling_policy.cc +++ b/third_party/blink/renderer/platform/scheduler/common/scheduling_policy.cc
@@ -45,6 +45,7 @@ case Feature::kRequestedBackForwardCacheBlockedSensors: case Feature::kRequestedBackgroundWorkPermission: case Feature::kWebLocks: + case Feature::kWakeLock: return true; } }
diff --git a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item index f9b360a..5057858d 100644 --- a/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item +++ b/third_party/blink/web_tests/FlagExpectations/layout-ng-fragment-item
@@ -3,21 +3,21 @@ # results: [ Timeout Crash Pass Failure Slow Skip ] # tags: [ Release Debug ] -crbug.com/982194 accessibility/adjacent-continuations-cause-assertion-failure.html [ Failure ] -crbug.com/982194 accessibility/aria-tables.html [ Failure ] -crbug.com/982194 accessibility/first-letter-text-transform-causes-crash.html [ Failure ] -crbug.com/982194 accessibility/first-letter-text-transform.html [ Failure ] -crbug.com/982194 accessibility/inline-text-bidi-bounds-for-range.html [ Crash ] -crbug.com/982194 accessibility/inline-text-bounds-for-range-br.html [ Crash ] -crbug.com/982194 accessibility/inline-text-bounds-for-range.html [ Failure ] -crbug.com/982194 accessibility/inline-text-change-style.html [ Failure ] -crbug.com/982194 accessibility/inline-text-changes.html [ Failure ] -crbug.com/982194 accessibility/inline-text-word-boundaries.html [ Failure ] -crbug.com/982194 accessibility/listitem-presentation-inherited.html [ Failure ] -crbug.com/982194 accessibility/presentation-owned-elements.html [ Failure ] -crbug.com/982194 accessibility/role-attribute.html [ Failure ] -crbug.com/982194 accessibility/table-header-column-row.html [ Failure ] -crbug.com/982194 accessibility/table-with-empty-thead-causes-crash.html [ Failure ] +crbug.com/982194 accessibility/adjacent-continuations-cause-assertion-failure.html [ Failure Pass ] +crbug.com/982194 accessibility/aria-tables.html [ Failure Pass ] +crbug.com/982194 accessibility/first-letter-text-transform-causes-crash.html [ Failure Pass ] +crbug.com/982194 accessibility/first-letter-text-transform.html [ Failure Pass ] +crbug.com/982194 accessibility/inline-text-bidi-bounds-for-range.html [ Crash Pass ] +crbug.com/982194 accessibility/inline-text-bounds-for-range-br.html [ Crash Pass ] +crbug.com/982194 accessibility/inline-text-bounds-for-range.html [ Failure Pass ] +crbug.com/982194 accessibility/inline-text-change-style.html [ Failure Pass ] +crbug.com/982194 accessibility/inline-text-changes.html [ Failure Pass ] +crbug.com/982194 accessibility/inline-text-word-boundaries.html [ Failure Pass ] +crbug.com/982194 accessibility/listitem-presentation-inherited.html [ Failure Pass ] +crbug.com/982194 accessibility/presentation-owned-elements.html [ Failure Pass ] +crbug.com/982194 accessibility/role-attribute.html [ Failure Pass ] +crbug.com/982194 accessibility/table-header-column-row.html [ Failure Pass ] +crbug.com/982194 accessibility/table-with-empty-thead-causes-crash.html [ Failure Pass ] crbug.com/982194 compositing/geometry/limit-layer-bounds-opacity-transition.html [ Failure ] crbug.com/982194 compositing/geometry/limit-layer-bounds-positioned.html [ Failure ] crbug.com/982194 compositing/gestures/gesture-tapHighlight-img-and-text-2.html [ Failure Pass ] @@ -214,8 +214,8 @@ crbug.com/982194 external/wpt/webxr/events_referenceSpace_reset_inline.https.html [ Timeout ] crbug.com/982194 fast/backgrounds/background-clip-text-multiline-linebreak.html [ Failure ] crbug.com/982194 fast/backgrounds/background-clip-text-multiline.html [ Crash ] -crbug.com/982194 fast/backgrounds/border-radius-split-background-image.html [ Failure ] -crbug.com/982194 fast/backgrounds/size/backgroundSize16.html [ Failure ] +crbug.com/982194 fast/backgrounds/border-radius-split-background-image.html [ Failure Pass ] +crbug.com/982194 fast/backgrounds/size/backgroundSize16.html [ Failure Pass ] crbug.com/982194 fast/block/float/containing-block-change-compositing.html [ Failure ] crbug.com/982194 fast/block/float/float-in-float-hit-testing.html [ Failure ] crbug.com/982194 fast/block/float/overhanging-float-container-add-compositing.html [ Failure ] @@ -292,10 +292,10 @@ crbug.com/982194 fast/forms/label/label-selection-by-textSelection-and-click.html [ Failure ] crbug.com/874695 fast/forms/number/number-spinbutton-gets-disabled-or-readonly.html [ Pass ] crbug.com/982194 fast/html/draggable-controls.html [ Failure ] -crbug.com/982194 fast/inline/inline-box-background-long-image.html [ Failure ] -crbug.com/982194 fast/inline/inline-box-background-repeat-x.html [ Failure ] -crbug.com/982194 fast/inline/inline-box-background-repeat-y.html [ Failure ] -crbug.com/982194 fast/inline/inline-box-background.html [ Failure ] +crbug.com/982194 fast/inline/inline-box-background-long-image.html [ Failure Pass ] +crbug.com/982194 fast/inline/inline-box-background-repeat-x.html [ Failure Pass ] +crbug.com/982194 fast/inline/inline-box-background-repeat-y.html [ Failure Pass ] +crbug.com/982194 fast/inline/inline-box-background.html [ Failure Pass ] crbug.com/982194 fast/inline/inline-offsetLeft-relpos.html [ Failure ] crbug.com/889721 fast/inline/outline-continuations.html [ Failure ] crbug.com/982194 fast/inline/relative-positioned-overflow.html [ Failure ] @@ -329,13 +329,13 @@ crbug.com/982194 fast/spatial-navigation/snav-zero-margin-content.html [ Failure Pass ] crbug.com/874695 fast/table/multiple-captions-crash3.html [ Pass ] crbug.com/982194 fast/text-autosizing/layout-after-append.html [ Failure ] -crbug.com/982194 fast/writing-mode/border-image-vertical-lr.html [ Failure ] -crbug.com/982194 fast/writing-mode/border-image-vertical-rl.html [ Failure ] +crbug.com/982194 fast/writing-mode/border-image-vertical-lr.html [ Failure Pass ] +crbug.com/982194 fast/writing-mode/border-image-vertical-rl.html [ Failure Pass ] crbug.com/982194 fast/writing-mode/flipped-blocks-hit-test-line-edges.html [ Failure ] crbug.com/718155 fullscreen/full-screen-iframe-not-allowed.html [ Failure ] crbug.com/982194 hittesting/culled-inline-crash.html [ Failure ] crbug.com/982194 hittesting/inline-with-clip-path.html [ Failure ] -crbug.com/982194 html/sections/body-legacy-colors.html [ Crash Pass Timeout ] +crbug.com/982194 html/sections/body-legacy-colors.html [ Pass Timeout ] crbug.com/591099 virtual/text-antialias/selection/inline-block-in-selection-root.html [ Pass ] crbug.com/591099 virtual/text-antialias/selection/selection-rect-line-height-too-small.html [ Failure Pass ] crbug.com/869364 crbug.com/874695 http/tests/devtools/console/console-correct-suggestions.js [ Crash Pass Timeout ] @@ -347,7 +347,7 @@ crbug.com/982194 http/tests/devtools/coverage/decorations-after-script-formatter.js [ Pass Timeout ] crbug.com/678482 http/tests/devtools/debugger/fetch-breakpoints.js [ Pass Timeout ] crbug.com/846997 http/tests/devtools/editor/text-editor-ctrl-d-1.js [ Pass Timeout ] -crbug.com/850358 http/tests/devtools/editor/text-editor-enter-behaviour.js [ Pass Timeout ] +crbug.com/850358 http/tests/devtools/editor/text-editor-enter-behaviour.js [ Pass ] crbug.com/846982 crbug.com/874695 http/tests/devtools/editor/text-editor-formatter.js [ Crash Pass Timeout ] crbug.com/420008 crbug.com/749738 http/tests/devtools/editor/text-editor-word-jumps.js [ Crash Pass Timeout ] crbug.com/596486 http/tests/devtools/elements/insert-node.js [ Pass ] @@ -420,8 +420,8 @@ crbug.com/982194 http/tests/security/contentSecurityPolicy/frame-src-vs-shift-click.html [ Pass Timeout ] crbug.com/982194 http/tests/security/mixedContent/insecure-css-resources.html [ Failure Pass ] crbug.com/24182 images/png-suite/test.html [ Pass ] -crbug.com/982194 inspector-protocol/accessibility/accessibility-getFullAXTree-display-locked.js [ Failure ] -crbug.com/982194 inspector-protocol/accessibility/accessibility-getFullAXTree.js [ Failure ] +crbug.com/982194 inspector-protocol/accessibility/accessibility-getFullAXTree-display-locked.js [ Failure Pass ] +crbug.com/982194 inspector-protocol/accessibility/accessibility-getFullAXTree.js [ Failure Pass ] crbug.com/874695 crbug.com/936165 media/autoplay-muted.html [ Crash Pass Timeout ] crbug.com/908347 media/autoplay/webaudio-audio-context-resume.html [ Failure Pass ] crbug.com/942951 media/controls/controls-layout-in-different-size.html [ Pass ] @@ -573,10 +573,40 @@ crbug.com/982194 css2.1/t100801-c544-valgn-03-d-agi.html [ Failure ] crbug.com/982194 css3/blending/background-blend-mode-overlapping-accelerated-elements.html [ Failure ] crbug.com/982194 css3/filters/backdrop-filter-svg.html [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-170.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-170a.xml [ Failure Pass ] crbug.com/982194 css3/selectors3/xml/css3-modsel-170b.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-170c.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-170d.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-171.xml [ Failure ] crbug.com/982194 css3/selectors3/xml/css3-modsel-175a.xml [ Failure Pass ] -crbug.com/982194 css3/selectors3/xml/css3-modsel-184d.xml [ Failure ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-175c.xml [ Failure ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-177b.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-178.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-181.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-182.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-184a.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-184b.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-184c.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-184d.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-184e.xml [ Failure Pass ] crbug.com/982194 css3/selectors3/xml/css3-modsel-184f.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-18a.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-18c.xml [ Failure ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-27b.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-54.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-55.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-56.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-59.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-60.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-63.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-86.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-87.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-87b.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-88.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-89.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-90.xml [ Failure Pass ] +crbug.com/982194 css3/selectors3/xml/css3-modsel-90b.xml [ Failure Pass ] crbug.com/982194 custom-elements/form-submission-file.html [ Crash Pass ] crbug.com/982194 editing/selection/5232159.html [ Failure ] crbug.com/982194 editing/selection/inline-closest-leaf-child.html [ Failure ] @@ -1046,7 +1076,7 @@ crbug.com/982194 external/wpt/forced-colors-mode/forced-colors-mode-17.html [ Failure Pass ] crbug.com/982194 external/wpt/forced-colors-mode/forced-colors-mode-19.html [ Failure ] crbug.com/982194 external/wpt/forced-colors-mode/forced-colors-mode-23.html [ Failure Pass ] -crbug.com/982194 external/wpt/geolocation-API/PositionOptions.https.html [ Failure Pass ] +crbug.com/982194 external/wpt/geolocation-API/PositionOptions.https.html [ Failure ] crbug.com/982194 external/wpt/html/rendering/non-replaced-elements/tables/table-border-1.html [ Failure Pass ] crbug.com/982194 external/wpt/html/rendering/non-replaced-elements/tables/table-border-3q.html [ Failure ] crbug.com/982194 external/wpt/html/rendering/non-replaced-elements/tables/table-border-3s.html [ Failure ] @@ -1152,7 +1182,7 @@ crbug.com/982194 external/wpt/mediacapture-record/MediaRecorder-destroy-script-execution.html [ Pass ] crbug.com/982194 external/wpt/mediacapture-record/MediaRecorder-stop.html [ Pass ] crbug.com/982194 external/wpt/native-file-system/sandboxed_FileSystemBaseHandle-postMessage-MessagePort.tentative.https.window.html [ Pass Timeout ] -crbug.com/982194 external/wpt/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.html [ Timeout ] +crbug.com/982194 external/wpt/native-file-system/sandboxed_FileSystemBaseHandle-postMessage.tentative.https.window.html [ Pass Timeout ] crbug.com/982194 external/wpt/payment-method-basic-card/apply_the_modifiers.html [ Timeout ] crbug.com/982194 external/wpt/payment-method-basic-card/steps_for_selecting_the_payment_handler.html [ Timeout ] crbug.com/982194 external/wpt/quirks/percentage-height-quirk-excludes-flex-grid-001.html [ Failure Pass ] @@ -1231,7 +1261,7 @@ crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-decoration_underline.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/text-shadow.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/vertical_ruby-position.html [ Failure Pass ] -crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/vertical_text-combine-upright.html [ Crash Failure Pass ] +crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/vertical_text-combine-upright.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_normal_wrapped.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_nowrap_wrapped.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/cue/white-space_pre-line_wrapped.html [ Failure Pass ] @@ -1363,7 +1393,7 @@ crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/selectors/default_styles/underline_object_default_font-style.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/size_50.html [ Failure Pass ] crbug.com/982194 external/wpt/webvtt/rendering/cues-with-video/processing-model/snap-to-line.html [ Failure Pass ] -crbug.com/982194 fast/backgrounds/border-radius-split-background.html [ Failure ] +crbug.com/982194 fast/backgrounds/border-radius-split-background.html [ Failure Pass ] crbug.com/982194 fast/backgrounds/quirks-mode-line-box-backgrounds.html [ Failure Pass ] crbug.com/982194 fast/block/float/clear-negative-margin-top.html [ Failure ] crbug.com/982194 fast/block/float/float-not-removed-from-next-sibling2.html [ Failure ] @@ -1384,13 +1414,15 @@ crbug.com/982194 fast/block/positioning/absolute-in-inline-short-rtl.html [ Failure ] crbug.com/982194 fast/block/positioning/hiding-inside-relpositioned-inline.html [ Failure ] crbug.com/982194 fast/borders/border-image-outset-split-inline-vertical-lr.html [ Failure Pass ] -crbug.com/982194 fast/borders/border-image-outset-split-inline.html [ Failure ] -crbug.com/982194 fast/borders/border-styles-split.html [ Failure ] +crbug.com/982194 fast/borders/border-image-outset-split-inline.html [ Failure Pass ] +crbug.com/982194 fast/borders/border-styles-split.html [ Failure Pass ] crbug.com/982194 fast/borders/inline-mask-overlay-image-outset-vertical-rl.html [ Failure ] crbug.com/982194 fast/css-generated-content/visibleContentHiddenParent.html [ Failure ] crbug.com/982194 fast/css/clip-text-in-scaled-div.html [ Failure ] crbug.com/982194 fast/css/first-line-change-color-direct.html [ Failure ] crbug.com/982194 fast/css/first-line-change-color.html [ Failure ] +crbug.com/982194 fast/css/namespaces/003.xml [ Failure Pass ] +crbug.com/982194 fast/css/namespaces/007.xml [ Failure Pass ] crbug.com/982194 fast/css/outline-auto-empty-rects.html [ Failure ] crbug.com/982194 fast/css/text-overflow-ellipsis-vertical-hittest.html [ Failure ] crbug.com/982194 fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html [ Failure ] @@ -1429,8 +1461,8 @@ crbug.com/982194 fast/spatial-navigation/snav-more-aligned-at-top.html [ Failure Pass ] crbug.com/982194 fast/spatial-navigation/snav-search-focused-scroller-first.html [ Failure ] crbug.com/982194 fast/sub-pixel/inline-block-baseline.html [ Failure ] -crbug.com/982194 fast/writing-mode/background-vertical-lr.html [ Failure ] -crbug.com/982194 fast/writing-mode/background-vertical-rl.html [ Failure ] +crbug.com/982194 fast/writing-mode/background-vertical-lr.html [ Failure Pass ] +crbug.com/982194 fast/writing-mode/background-vertical-rl.html [ Failure Pass ] crbug.com/982194 fragmentation/repeating-thead-under-repeating-thead.html [ Failure Pass ] crbug.com/982194 html/details_summary/details-writing-mode-align-center.html [ Failure ] crbug.com/982194 http/tests/devtools/application-panel/resources-panel-iframe-idb.js [ Pass Timeout ] @@ -1445,7 +1477,7 @@ crbug.com/982194 http/tests/devtools/elements/styles-1/disable-property-workingcopy-update.js [ Timeout ] crbug.com/982194 http/tests/devtools/elements/styles-4/styles-update-from-js.js [ Timeout ] crbug.com/982194 http/tests/devtools/elements/styles-4/styles-update-links-2.js [ Pass Timeout ] -crbug.com/982194 http/tests/devtools/elements/styles/selector-line-sourcemap-header.js [ Timeout ] +crbug.com/982194 http/tests/devtools/elements/styles/selector-line-sourcemap-header.js [ Pass Timeout ] crbug.com/982194 http/tests/devtools/indexeddb/database-refresh-view.js [ Pass ] crbug.com/982194 http/tests/devtools/network/network-search.js [ Pass Timeout ] crbug.com/982194 http/tests/devtools/oopif/oopif-navigator.js [ Pass Timeout ] @@ -1461,6 +1493,7 @@ crbug.com/982194 http/tests/devtools/service-workers/service-workers-force-update-on-page-load.js [ Pass ] crbug.com/982194 http/tests/devtools/service-workers/service-workers-redundant.js [ Pass ] crbug.com/982194 http/tests/devtools/service-workers/user-agent-override.js [ Pass ] +crbug.com/982194 http/tests/devtools/sources/debugger-breakpoints/disable-breakpoints.js [ Failure Pass ] crbug.com/982194 http/tests/devtools/sources/debugger/navigator-view.js [ Crash Pass ] crbug.com/982194 http/tests/devtools/tracing/timeline-paint/paint-profiler-update.js [ Pass ] crbug.com/982194 http/tests/history/client-redirect-after-push-state.html [ Failure Pass ] @@ -1955,6 +1988,7 @@ crbug.com/982194 virtual/prefer_compositing_to_lcd_text/scrollbars/hidden-scrollbars-invisible.html [ Failure Pass ] crbug.com/982194 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested-2.html [ Failure Pass ] crbug.com/982194 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested.html [ Failure Pass ] +crbug.com/982194 virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Failure ] crbug.com/982194 virtual/scalefactor200/css3/filters/effect-blur-hw.html [ Failure Pass ] crbug.com/982194 virtual/scalefactor200/css3/filters/filterRegions.html [ Failure Pass ] crbug.com/982194 virtual/scalefactor200/external/wpt/css/filter-effects/css-filters-animation-combined-001.html [ Failure Pass ] @@ -2002,10 +2036,10 @@ crbug.com/982194 virtual/stable/http/tests/navigation/ping-cross-origin-from-https.html [ Pass Timeout ] crbug.com/982194 virtual/stable/http/tests/navigation/ping-cross-origin.html [ Pass Timeout ] crbug.com/982194 virtual/stable/http/tests/navigation/ping-same-origin.html [ Pass Timeout ] -crbug.com/982194 virtual/stable/media/stable/video-object-fit-stable.html [ Pass ] +crbug.com/982194 virtual/stable/media/stable/video-object-fit-stable.html [ Failure Pass ] crbug.com/874695 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-disable-cache.js [ Pass ] crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch-fail.js [ Failure Pass ] -crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch.js [ Failure Pass ] +crbug.com/851363 virtual/sxg-with-network-service/http/tests/devtools/sxg/sxg-prefetch.js [ Pass ] crbug.com/982194 virtual/text-antialias/descent-clip-in-scaled-page.html [ Failure ] crbug.com/982194 virtual/text-antialias/font-format-support-color-cff2-vertical.html [ Failure Pass ] crbug.com/982194 virtual/text-antialias/remove-zero-length-run.html [ Failure ] @@ -2027,7 +2061,7 @@ crbug.com/982194 virtual/threaded/http/tests/devtools/tracing/timeline-worker-events.js [ Failure Pass ] crbug.com/982194 virtual/unified-autoplay/external/wpt/feature-policy/experimental-features/lazyload/lazyload-enabled-tentative.sub.html [ Pass ] crbug.com/982194 virtual/unified-autoplay/external/wpt/feature-policy/experimental-features/lazyload/loading-frame-default-eager-disabled-tentative.sub.html [ Pass ] -crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/html/semantics/document-metadata/the-link-element/stylesheet-change-href.html [ Failure ] +crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/html/semantics/document-metadata/the-link-element/stylesheet-change-href.html [ Failure Pass ] crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/html/semantics/scripting-1/the-script-element/css-module/utf8.tentative.html [ Pass ] crbug.com/982194 virtual/web-components-v0-disabled/external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure ] crbug.com/982194 virtual/web-components-v0-disabled/fast/dom/Document/CaretRangeFromPoint/basic.html [ Failure ]
diff --git a/third_party/blink/web_tests/SlowTests b/third_party/blink/web_tests/SlowTests index 4d24e5b3..34f2d63 100644 --- a/third_party/blink/web_tests/SlowTests +++ b/third_party/blink/web_tests/SlowTests
@@ -672,3 +672,6 @@ # Mark all axe audit tests slow. crbug.com/1020379 http/tests/devtools/a11y-axe-core/* [ Slow ] + +crbug.com/1040054 http/tests/devtools/cache-storage/cache-data.js [ Slow ] +crbug.com/1040450 http/tests/devtools/persistence/persistence-external-change-breakpoints.js [ Slow ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 2345cea1..771fbf70 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2157,88 +2157,6 @@ # - # - # - -# Group 4 (Win/Linux) -crbug.com/1035582 [ Win ] fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html [ Failure Pass ] -crbug.com/1035582 [ Win ] paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/layout_ng_flex_box/css3/flexbox/button.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/caps-lock-indicator-disabled.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/caps-lock-indicator-enabled.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/caps-lock-indicator-enabled-rtl.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/international/hindi-spacing.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/international/rtl-white-space-pre-wrap.html [ Failure Pass ] -# Comment back in the Win7 version of this file on line 5905: -crbug.com/1035582 [ Win ] virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/selection/mixed-directionality-selection.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/text-antialias/updateNewFont.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/dom/HTMLProgressElement/progress-element.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/parser/bad-xml-slash.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-no-summary4.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-open2.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-open4.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-open-javascript.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child.html [ Failure Pass ] -crbug.com/1035582 [ Win ] virtual/web-components-v0-disabled/html/details_summary/details-replace-text.html [ Failure Pass ] - -crbug.com/1035582 [ Linux ] fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/audio-service/http/tests/media/controls/toggle-class-with-state-source-buffer.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/layout_ng_flex_box/css3/flexbox/button.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/caps-lock-indicator-disabled.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/caps-lock-indicator-enabled.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/caps-lock-indicator-enabled-rtl.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/international/hindi-spacing.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/international/rtl-white-space-pre-wrap.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/selection/mixed-directionality-selection.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/text-antialias/updateNewFont.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/dom/HTMLProgressElement/progress-element.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/parser/bad-xml-slash.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-no-summary4.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-open2.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-open4.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-open-javascript.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child.html [ Failure Pass ] -crbug.com/1035582 [ Linux ] virtual/web-components-v0-disabled/html/details_summary/details-replace-text.html [ Failure Pass ] -# - -# - -# - -# - -# - # Group 5 (Win/Linux) crbug.com/1035582 [ Win ] compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure Pass ] crbug.com/1035582 [ Win ] compositing/overflow/theme-affects-visual-overflow.html [ Failure Pass ] @@ -3152,11 +3070,6 @@ crbug.com/400829 virtual/stable/media/stable/video-object-fit-stable.html [ Failure ] crbug.com/400829 virtual/audio-service/media/stable/video-object-fit-stable.html [ Failure ] -# These contain faulty expectations. https://chromium-review.googlesource.com/c/v8/v8/+/1350790 should fix the -# faulty return values but to allow landing that patch, the tests have to be deactivated in the meanwhile. -crbug.com/924308 http/tests/devtools/console/console-dir-es6.js [ Pass Failure ] -crbug.com/924308 http/tests/devtools/console/console-format-es6-2.js [ Pass Failure ] - # We only want to run one of the web-animations-api tests in stable mode. crbug.com/441553 virtual/stable/web-animations-api/* [ Skip ] # These tests *only* run in stable, to verify that these features are unsupported and throw exceptions. @@ -5776,7 +5689,7 @@ crbug.com/807191 fast/media/mq-color-gamut-picture.html [ Pass Failure Timeout ] # Text rendering on Win7 failing image diffs, flakily. -#crbug.com/773122 [ Win7 ] virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea.html [ Failure Pass ] +crbug.com/773122 [ Win7 ] virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea.html [ Failure Pass ] crbug.com/773122 [ Win7 ] virtual/text-antialias/whitespace/022.html [ Failure Pass ] # Sheriff failures 2017-10-13 @@ -7320,3 +7233,6 @@ # Sheriff 2020-01-09 crbug.com/1040270 http/tests/devtools/elements/styles-1/disable-property-workingcopy-update.js [ Pass Timeout ] + +# Temporarily disabled to land Animations accessibility changes in DevTools +crbug.com/963183 http/tests/devtools/animation/animation-timeline.js [ Pass Failure ]
diff --git a/third_party/blink/web_tests/WPTOverrideExpectations b/third_party/blink/web_tests/WPTOverrideExpectations index cea2da8..cf1ca2c 100644 --- a/third_party/blink/web_tests/WPTOverrideExpectations +++ b/third_party/blink/web_tests/WPTOverrideExpectations
@@ -352,7 +352,6 @@ external/wpt/pointerlock/mouse_buttons_back_forward.html [ Timeout ] external/wpt/pointerlock/pointerlock_remove_target.html [ Timeout ] external/wpt/pointerlock/pointerlock_shadow.html [ Timeout ] -external/wpt/portals/csp/frame-src.sub.html [ Timeout ] external/wpt/portals/htmlportalelement-event-handler-content-attributes.html [ Failure ] external/wpt/portals/portal-activate-data.html [ Timeout ] external/wpt/portals/portal-activate-event-constructor.html [ Failure ] @@ -1055,3 +1054,8 @@ external/wpt/referrer-policy/generic/subresource-test/worker-messaging.html [ Failure Timeout ] external/wpt/referrer-policy/generic/subresource-test/xhr-messaging.html [ Failure Timeout ] external/wpt/referrer-policy/generic/unsupported-csp-referrer-directive.html [ Failure Timeout ] + +# portals/csp/frame-src.sub.html crashes because of a race between cancelling a +# speculative navigation in the browser, and committing the navigation in the +# renderer. +crbug.com/838348 external/wpt/portals/csp/frame-src.sub.html [ Pass Crash Timeout ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json index e7fd575..8075d947 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_7.json
@@ -7721,6 +7721,42 @@ {} ] ], + "compat/webkit-box-horizontal-reverse-variants.html": [ + [ + "compat/webkit-box-horizontal-reverse-variants.html", + [ + [ + "/compat/webkit-box-horizontal-reverse-variants-ref.html", + "==" + ] + ], + {} + ] + ], + "compat/webkit-box-horizontal-rtl-variants.html": [ + [ + "compat/webkit-box-horizontal-rtl-variants.html", + [ + [ + "/compat/webkit-box-horizontal-rtl-variants-ref.html", + "==" + ] + ], + {} + ] + ], + "compat/webkit-box-rtl-flex.html": [ + [ + "compat/webkit-box-rtl-flex.html", + [ + [ + "/compat/webkit-box-rtl-flex-ref.html", + "==" + ] + ], + {} + ] + ], "compat/webkit-linear-gradient-diff-unprefixed.html": [ [ "compat/webkit-linear-gradient-diff-unprefixed.html", @@ -37641,6 +37677,18 @@ {} ] ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background.html": [ + [ + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background.html", + [ + [ + "/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-color/border-bottom-color.xht": [ [ "css/css-color/border-bottom-color.xht", @@ -69579,6 +69627,42 @@ {} ] ], + "css/css-text-decor/text-decoration-subelements-001.html": [ + [ + "css/css-text-decor/text-decoration-subelements-001.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-subelements-001-notref.html", + "!=" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-subelements-002.html": [ + [ + "css/css-text-decor/text-decoration-subelements-002.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-subelements-002-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text-decor/text-decoration-subelements-003.html": [ + [ + "css/css-text-decor/text-decoration-subelements-003.html", + [ + [ + "/css/css-text-decor/reference/text-decoration-subelements-003-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text-decor/text-decoration-thickness-001.html": [ [ "css/css-text-decor/text-decoration-thickness-001.html", @@ -90691,6 +90775,18 @@ {} ] ], + "css/css-ui/resize-change-margin.html": [ + [ + "css/css-ui/resize-change-margin.html", + [ + [ + "/css/css-ui/resize-change-margin-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-ui/text-overflow-001.html": [ [ "css/css-ui/text-overflow-001.html", @@ -119025,6 +119121,18 @@ {} ] ], + "html/rendering/the-details-element/summary-display-list-item.html": [ + [ + "html/rendering/the-details-element/summary-display-list-item.html", + [ + [ + "/html/rendering/the-details-element/summary-display-list-item-ref.html", + "==" + ] + ], + {} + ] + ], "html/rendering/widgets/button-layout/anonymous-button-content-box.html": [ [ "html/rendering/widgets/button-layout/anonymous-button-content-box.html", @@ -128778,6 +128886,15 @@ "WebCryptoAPI/generateKey/successes_AES-KW.https.worker-expected.txt": [ [] ], + "WebCryptoAPI/historical.any-expected.txt": [ + [] + ], + "WebCryptoAPI/historical.any.sharedworker-expected.txt": [ + [] + ], + "WebCryptoAPI/historical.any.worker-expected.txt": [ + [] + ], "WebCryptoAPI/idlharness.https.worker-expected.txt": [ [] ], @@ -129693,6 +129810,15 @@ "compat/webkit-box-fieldset-ref.html": [ [] ], + "compat/webkit-box-horizontal-reverse-variants-ref.html": [ + [] + ], + "compat/webkit-box-horizontal-rtl-variants-ref.html": [ + [] + ], + "compat/webkit-box-rtl-flex-ref.html": [ + [] + ], "compat/webkit-gradient-comma-expected.txt": [ [] ], @@ -130590,15 +130716,24 @@ "cookies/README.md": [ [] ], + "cookies/domain/domain-attribute-host-with-and-without-leading-period.sub.html.sub.headers": [ + [] + ], + "cookies/domain/domain-attribute-host-with-leading-period.sub.html.sub.headers": [ + [] + ], + "cookies/domain/domain-attribute-matches-host.sub.html.sub.headers": [ + [] + ], + "cookies/domain/domain-attribute-missing.sub.html.headers": [ + [] + ], "cookies/http-state/chromium-tests-expected.txt": [ [] ], "cookies/http-state/domain-tests-expected.txt": [ [] ], - "cookies/http-state/general-tests-expected.txt": [ - [] - ], "cookies/http-state/mozilla-tests-expected.txt": [ [] ], @@ -134967,6 +135102,9 @@ "css/css-animations/parsing/animation-name-valid-expected.txt": [ [] ], + "css/css-animations/support/empty-sheet.css": [ + [] + ], "css/css-animations/support/testcommon.js": [ [] ], @@ -135999,6 +136137,18 @@ "css/css-color-adjust/parsing/color-scheme-valid-expected.txt": [ [] ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-ref.html": [ + [] + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/assert-preferred-dark.css": [ + [] + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html": [ + [] + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame.html": [ + [] + ], "css/css-color/LICENSE": [ [] ], @@ -146469,6 +146619,15 @@ "css/css-text-decor/reference/text-decoration-style-recalc-ref.html": [ [] ], + "css/css-text-decor/reference/text-decoration-subelements-001-notref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-subelements-002-ref.html": [ + [] + ], + "css/css-text-decor/reference/text-decoration-subelements-003-ref.html": [ + [] + ], "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [ [] ], @@ -150174,6 +150333,9 @@ "css/css-ui/reference/text-overflow-ellipsis-indent-001-ref.html": [ [] ], + "css/css-ui/resize-change-margin-ref.html": [ + [] + ], "css/css-ui/support/1x1-red.png": [ [] ], @@ -153156,6 +153318,9 @@ "css/cssom/CSSKeyframesRule-expected.txt": [ [] ], + "css/cssom/CSSStyleSheet-constructable-expected.txt": [ + [] + ], "css/cssom/HTMLLinkElement-disabled-001.tentative-expected.txt": [ [] ], @@ -160851,6 +161016,9 @@ "html/cross-origin-opener-policy/coep.https.html.headers": [ [] ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt": [ + [] + ], "html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt": [ [] ], @@ -160863,43 +161031,151 @@ "html/cross-origin-opener-policy/coop-sandbox.https.html.headers": [ [] ], + "html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.headers": [ + [] + ], "html/cross-origin-opener-policy/no-https-expected.txt": [ [] ], "html/cross-origin-opener-policy/no-https.html.headers": [ [] ], + "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [ + [] + ], "html/cross-origin-opener-policy/popup-none.https-expected.txt": [ [] ], "html/cross-origin-opener-policy/popup-redirect-cache.https.html.headers": [ [] ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html.headers": [ + [] + ], "html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html.headers": [ [] ], "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https-expected.txt": [ [] ], - "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html.headers": [ + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.headers": [ [] ], "html/cross-origin-opener-policy/popup-same-origin.https-expected.txt": [ [] ], - "html/cross-origin-opener-policy/popup-same-origin.https.html.headers": [ - [] - ], "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https-expected.txt": [ [] ], - "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https.html.headers": [ - [] - ], "html/cross-origin-opener-policy/popup-same-site.https-expected.txt": [ [] ], - "html/cross-origin-opener-policy/popup-same-site.https.html.headers": [ + "html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html.headers": [ + [] + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt": [ + [] + ], + "html/cross-origin-opener-policy/resources/call-functionCalledByOpenee.html": [ [] ], "html/cross-origin-opener-policy/resources/common.js": [ @@ -163725,6 +164001,9 @@ "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/resources/post-parent-type-error.html": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers": [ [] ], @@ -164376,6 +164655,9 @@ "html/rendering/the-details-element/single-summary.html": [ [] ], + "html/rendering/the-details-element/summary-display-list-item-ref.html": [ + [] + ], "html/rendering/unmapped-attributes-expected.txt": [ [] ], @@ -165393,6 +165675,15 @@ "html/semantics/forms/constraints/form-validation-validity-customError-expected.txt": [ [] ], + "html/semantics/forms/constraints/form-validation-validity-patternMismatch-expected.txt": [ + [] + ], + "html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt": [ + [] + ], + "html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt": [ + [] + ], "html/semantics/forms/constraints/form-validation-validity-valid-expected.txt": [ [] ], @@ -167340,9 +167631,6 @@ "import-maps/common/README.md": [ [] ], - "import-maps/common/resolving.tentative-expected.txt": [ - [] - ], "import-maps/common/resources/common-test-helper.js": [ [] ], @@ -169920,6 +170208,9 @@ "mst-content-hint/META.yml": [ [] ], + "mst-content-hint/idlharness.window-expected.txt": [ + [] + ], "native-file-system/README.md": [ [] ], @@ -170136,468 +170427,6 @@ "offscreen-canvas/OWNERS": [ [] ], - "offscreen-canvas/compositing/2d.composite.canvas.copy-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.copy.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-over-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-over.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.lighter-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.lighter.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-over-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.source-over.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.xor-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.canvas.xor.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.image-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.image.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.copy-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.copy.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-over-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.destination-over.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.lighter-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.lighter.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-over-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.source-over.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.xor-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.image.xor.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.copy-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.copy.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in.worker-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out-expected.txt": [ - [] - ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.worker-expected.txt": [ - [] - ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty-expected.txt": [ - [] - ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty.worker-expected.txt": [ - [] - ], "offscreen-canvas/filter/offscreencanvas.filter.js": [ [] ], @@ -170631,66 +170460,6 @@ "offscreen-canvas/pixel-manipulation/2d.imageData.put.nonfinite-expected.txt": [ [] ], - "offscreen-canvas/shadows/2d.shadow.image.alpha-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.alpha.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.basic-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.scale-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.scale.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.section-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.section.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.1-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.2-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.2.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.alpha-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.alpha.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.basic-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.basic.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1.worker-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2-expected.txt": [ - [] - ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2.worker-expected.txt": [ - [] - ], "offscreen-canvas/text/2d.text.draw.align.center-expected.txt": [ [] ], @@ -171258,9 +171027,6 @@ "portals/README.md": [ [] ], - "portals/csp/frame-ancestors.sub-expected.txt": [ - [] - ], "portals/csp/resources/frame-src.sub.html": [ [] ], @@ -175731,6 +175497,18 @@ "service-workers/service-worker/resources/opaque-response-preloaded-xhr.html": [ [] ], + "service-workers/service-worker/resources/opaque-script-frame.html": [ + [] + ], + "service-workers/service-worker/resources/opaque-script-large.js": [ + [] + ], + "service-workers/service-worker/resources/opaque-script-small.js": [ + [] + ], + "service-workers/service-worker/resources/opaque-script-sw.js": [ + [] + ], "service-workers/service-worker/resources/other.html": [ [] ], @@ -176652,30 +176430,6 @@ "streams/transform-streams/properties.any.worker-expected.txt": [ [] ], - "streams/writable-streams/brand-checks.any-expected.txt": [ - [] - ], - "streams/writable-streams/brand-checks.any.serviceworker-expected.txt": [ - [] - ], - "streams/writable-streams/brand-checks.any.sharedworker-expected.txt": [ - [] - ], - "streams/writable-streams/brand-checks.any.worker-expected.txt": [ - [] - ], - "streams/writable-streams/close.any-expected.txt": [ - [] - ], - "streams/writable-streams/close.any.serviceworker-expected.txt": [ - [] - ], - "streams/writable-streams/close.any.sharedworker-expected.txt": [ - [] - ], - "streams/writable-streams/close.any.worker-expected.txt": [ - [] - ], "streams/writable-streams/constructor.any-expected.txt": [ [] ], @@ -180738,9 +180492,6 @@ "tools/wpt/wpt.py": [ [] ], - "tools/wptrunner/.pytest_cache/.gitignore": [ - [] - ], "tools/wptrunner/LICENSE": [ [] ], @@ -180981,6 +180732,9 @@ "tools/wptrunner/wptrunner/metadata.py": [ [] ], + "tools/wptrunner/wptrunner/process.py": [ + [] + ], "tools/wptrunner/wptrunner/products.py": [ [] ], @@ -181194,6 +180948,12 @@ "trusted-types/default-policy.tentative.html.headers": [ [] ], + "trusted-types/empty-default-policy-report-only.tentative.html.headers": [ + [] + ], + "trusted-types/empty-default-policy.tentative.html.headers": [ + [] + ], "trusted-types/support/WorkerGlobalScope-importScripts.https.js": [ [] ], @@ -181218,9 +180978,6 @@ "trusted-types/support/worker.js": [ [] ], - "trusted-types/trusted-types-createHTMLDocument.tentative-expected.txt": [ - [] - ], "trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers": [ [] ], @@ -182973,6 +182730,9 @@ "webgpu/suites/cts/command_buffer/render/storeop.spec.js": [ [] ], + "webgpu/suites/cts/copyImageBitmapToTexture.spec.js": [ + [] + ], "webgpu/suites/cts/examples.spec.js": [ [] ], @@ -185265,9 +185025,6 @@ "workers/constructors/SharedWorker/null": [ [] ], - "workers/constructors/SharedWorker/null-arguments-expected.txt": [ - [] - ], "workers/constructors/SharedWorker/null.headers": [ [] ], @@ -185616,9 +185373,6 @@ "workers/modules/resources/static-import-worker.js": [ [] ], - "workers/name-property-expected.txt": [ - [] - ], "workers/non-automated/application-cache-dedicated.html": [ [] ], @@ -185784,9 +185538,6 @@ "workers/semantics/xhr/support/006-1.js": [ [] ], - "workers/shared-worker-name-via-options-expected.txt": [ - [] - ], "workers/support/ErrorEvent-error.js": [ [] ], @@ -201161,6 +200912,41 @@ {} ] ], + "WebCryptoAPI/historical.any.js": [ + [ + "WebCryptoAPI/historical.any.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ], + [ + "WebCryptoAPI/historical.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ], + [ + "WebCryptoAPI/historical.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ] + ], "WebCryptoAPI/idlharness.https.any.js": [ [ "WebCryptoAPI/idlharness.https.any.html", @@ -201229,12 +201015,6 @@ {} ] ], - "WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html": [ - [ - "WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html", - {} - ] - ], "WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html": [ [ "WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html", @@ -209847,6 +209627,30 @@ {} ] ], + "cookies/domain/domain-attribute-host-with-and-without-leading-period.sub.html": [ + [ + "cookies/domain/domain-attribute-host-with-and-without-leading-period.sub.html", + {} + ] + ], + "cookies/domain/domain-attribute-host-with-leading-period.sub.html": [ + [ + "cookies/domain/domain-attribute-host-with-leading-period.sub.html", + {} + ] + ], + "cookies/domain/domain-attribute-matches-host.sub.html": [ + [ + "cookies/domain/domain-attribute-matches-host.sub.html", + {} + ] + ], + "cookies/domain/domain-attribute-missing.sub.html": [ + [ + "cookies/domain/domain-attribute-missing.sub.html", + {} + ] + ], "cookies/http-state/attribute-tests.html": [ [ "cookies/http-state/attribute-tests.html", @@ -211420,6 +211224,12 @@ {} ] ], + "css/css-animations/animation-before-initial-box-construction-001.html": [ + [ + "css/css-animations/animation-before-initial-box-construction-001.html", + {} + ] + ], "css/css-animations/animation-iteration-count-calc.html": [ [ "css/css-animations/animation-iteration-count-calc.html", @@ -212846,6 +212656,18 @@ {} ] ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-root-background.html": [ + [ + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-root-background.html", + {} + ] + ], + "css/css-color/animation/color-composition.html": [ + [ + "css/css-color/animation/color-composition.html", + {} + ] + ], "css/css-color/animation/color-interpolation.html": [ [ "css/css-color/animation/color-interpolation.html", @@ -213166,6 +212988,12 @@ {} ] ], + "css/css-flexbox/animation/flex-basis-composition.html": [ + [ + "css/css-flexbox/animation/flex-basis-composition.html", + {} + ] + ], "css/css-flexbox/animation/flex-basis-interpolation.html": [ [ "css/css-flexbox/animation/flex-basis-interpolation.html", @@ -216770,12 +216598,6 @@ {} ] ], - "css/css-images/animations/object-position-interpolation.html": [ - [ - "css/css-images/animations/object-position-interpolation.html", - {} - ] - ], "css/css-images/gradient/color-stops-parsing.html": [ [ "css/css-images/gradient/color-stops-parsing.html", @@ -217688,6 +217510,12 @@ {} ] ], + "css/css-masking/animations/clip-path-composition.html": [ + [ + "css/css-masking/animations/clip-path-composition.html", + {} + ] + ], "css/css-masking/animations/clip-path-interpolation-001.html": [ [ "css/css-masking/animations/clip-path-interpolation-001.html", @@ -218294,9 +218122,9 @@ {} ] ], - "css/css-position/animation/position-interpolation.html": [ + "css/css-position/animations/bottom-composition.html": [ [ - "css/css-position/animation/position-interpolation.html", + "css/css-position/animations/bottom-composition.html", {} ] ], @@ -218306,18 +218134,42 @@ {} ] ], + "css/css-position/animations/left-composition.html": [ + [ + "css/css-position/animations/left-composition.html", + {} + ] + ], "css/css-position/animations/left-interpolation.html": [ [ "css/css-position/animations/left-interpolation.html", {} ] ], + "css/css-position/animations/position-interpolation.html": [ + [ + "css/css-position/animations/position-interpolation.html", + {} + ] + ], + "css/css-position/animations/right-composition.html": [ + [ + "css/css-position/animations/right-composition.html", + {} + ] + ], "css/css-position/animations/right-interpolation.html": [ [ "css/css-position/animations/right-interpolation.html", {} ] ], + "css/css-position/animations/top-composition.html": [ + [ + "css/css-position/animations/top-composition.html", + {} + ] + ], "css/css-position/animations/top-interpolation.html": [ [ "css/css-position/animations/top-interpolation.html", @@ -219544,6 +219396,18 @@ {} ] ], + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-align.html": [ + [ + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-align.html", + {} + ] + ], + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-type.html": [ + [ + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-type.html", + {} + ] + ], "css/css-scroll-snap/snap-after-relayout/move-current-target.html": [ [ "css/css-scroll-snap/snap-after-relayout/move-current-target.html", @@ -223486,6 +223350,12 @@ {} ] ], + "css/css-transforms/animation/perspective-composition.html": [ + [ + "css/css-transforms/animation/perspective-composition.html", + {} + ] + ], "css/css-transforms/animation/perspective-interpolation.html": [ [ "css/css-transforms/animation/perspective-interpolation.html", @@ -223498,18 +223368,36 @@ {} ] ], + "css/css-transforms/animation/rotate-composition.html": [ + [ + "css/css-transforms/animation/rotate-composition.html", + {} + ] + ], "css/css-transforms/animation/rotate-interpolation.html": [ [ "css/css-transforms/animation/rotate-interpolation.html", {} ] ], + "css/css-transforms/animation/scale-composition.html": [ + [ + "css/css-transforms/animation/scale-composition.html", + {} + ] + ], "css/css-transforms/animation/scale-interpolation.html": [ [ "css/css-transforms/animation/scale-interpolation.html", {} ] ], + "css/css-transforms/animation/transform-composition.html": [ + [ + "css/css-transforms/animation/transform-composition.html", + {} + ] + ], "css/css-transforms/animation/transform-interpolation-001.html": [ [ "css/css-transforms/animation/transform-interpolation-001.html", @@ -223546,12 +223434,54 @@ {} ] ], + "css/css-transforms/animation/transform-matrix-composition.html": [ + [ + "css/css-transforms/animation/transform-matrix-composition.html", + {} + ] + ], "css/css-transforms/animation/transform-origin-interpolation.html": [ [ "css/css-transforms/animation/transform-origin-interpolation.html", {} ] ], + "css/css-transforms/animation/transform-perspective-composition.html": [ + [ + "css/css-transforms/animation/transform-perspective-composition.html", + {} + ] + ], + "css/css-transforms/animation/transform-rotate-composition.html": [ + [ + "css/css-transforms/animation/transform-rotate-composition.html", + {} + ] + ], + "css/css-transforms/animation/transform-scale-composition.html": [ + [ + "css/css-transforms/animation/transform-scale-composition.html", + {} + ] + ], + "css/css-transforms/animation/transform-skew-composition.html": [ + [ + "css/css-transforms/animation/transform-skew-composition.html", + {} + ] + ], + "css/css-transforms/animation/transform-translate-composition.html": [ + [ + "css/css-transforms/animation/transform-translate-composition.html", + {} + ] + ], + "css/css-transforms/animation/translate-composition.html": [ + [ + "css/css-transforms/animation/translate-composition.html", + {} + ] + ], "css/css-transforms/animation/translate-interpolation.html": [ [ "css/css-transforms/animation/translate-interpolation.html", @@ -223858,6 +223788,12 @@ {} ] ], + "css/css-transitions/animations/vertical-align-composition.html": [ + [ + "css/css-transitions/animations/vertical-align-composition.html", + {} + ] + ], "css/css-transitions/animations/vertical-align-interpolation.html": [ [ "css/css-transitions/animations/vertical-align-interpolation.html", @@ -232051,6 +231987,12 @@ {} ] ], + "dom/nodes/Node-appendChild-cereactions-vs-script.window.js": [ + [ + "dom/nodes/Node-appendChild-cereactions-vs-script.window.html", + {} + ] + ], "dom/nodes/Node-appendChild.html": [ [ "dom/nodes/Node-appendChild.html", @@ -247891,14 +247833,6 @@ {} ] ], - "fetch/metadata/appcache.tentative.https.sub.html": [ - [ - "fetch/metadata/appcache.tentative.https.sub.html", - { - "timeout": "long" - } - ] - ], "fetch/metadata/download.tentative.https.sub.html": [ [ "fetch/metadata/download.tentative.https.sub.html", @@ -251139,6 +251073,14 @@ {} ] ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [ + [ + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html", + { + "timeout": "long" + } + ] + ], "html/cross-origin-opener-policy/coop-navigated-popup.https.html": [ [ "html/cross-origin-opener-policy/coop-navigated-popup.https.html", @@ -251151,6 +251093,66 @@ {} ] ], + "html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html": [ + [ + "html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html", + {} + ] + ], "html/cross-origin-opener-policy/no-https.html": [ [ "html/cross-origin-opener-policy/no-https.html", @@ -251159,12 +251161,6 @@ } ] ], - "html/cross-origin-opener-policy/popup-none.https.html": [ - [ - "html/cross-origin-opener-policy/popup-none.https.html", - {} - ] - ], "html/cross-origin-opener-policy/popup-redirect-cache.https.html": [ [ "html/cross-origin-opener-policy/popup-redirect-cache.https.html", @@ -251173,33 +251169,81 @@ } ] ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html": [ + [ + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html", + {} + ] + ], "html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html": [ [ "html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html", {} ] ], - "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html": [ + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html": [ [ - "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html", + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html", {} ] ], - "html/cross-origin-opener-policy/popup-same-origin.https.html": [ + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html": [ [ - "html/cross-origin-opener-policy/popup-same-origin.https.html", + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html", {} ] ], - "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https.html": [ + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html": [ [ - "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https.html", + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html", {} ] ], - "html/cross-origin-opener-policy/popup-same-site.https.html": [ + "html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html": [ [ - "html/cross-origin-opener-policy/popup-same-site.https.html", + "html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html": [ + [ + "html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html": [ + [ + "html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html", + {} + ] + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html": [ + [ + "html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html", {} ] ], @@ -252161,6 +252205,12 @@ {} ] ], + "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-extra.html": [ + [ + "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-extra.html", + {} + ] + ], "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js": [ [ "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.html", @@ -256924,6 +256974,18 @@ {} ] ], + "html/semantics/forms/the-button-element/button-submit-remove-children-jssubmit.html": [ + [ + "html/semantics/forms/the-button-element/button-submit-remove-children-jssubmit.html", + {} + ] + ], + "html/semantics/forms/the-button-element/button-submit-remove-children.html": [ + [ + "html/semantics/forms/the-button-element/button-submit-remove-children.html", + {} + ] + ], "html/semantics/forms/the-button-element/button-type.html": [ [ "html/semantics/forms/the-button-element/button-type.html", @@ -257272,12 +257334,24 @@ {} ] ], + "html/semantics/forms/the-input-element/input-valueasdate.html": [ + [ + "html/semantics/forms/the-input-element/input-valueasdate.html", + {} + ] + ], "html/semantics/forms/the-input-element/input-valueasnumber-invalidstateerr.html": [ [ "html/semantics/forms/the-input-element/input-valueasnumber-invalidstateerr.html", {} ] ], + "html/semantics/forms/the-input-element/input-valueasnumber.html": [ + [ + "html/semantics/forms/the-input-element/input-valueasnumber.html", + {} + ] + ], "html/semantics/forms/the-input-element/input-width.html": [ [ "html/semantics/forms/the-input-element/input-width.html", @@ -300670,6 +300744,12 @@ {} ] ], + "service-workers/service-worker/opaque-script.https.html": [ + [ + "service-workers/service-worker/opaque-script.https.html", + {} + ] + ], "service-workers/service-worker/performance-timeline.https.html": [ [ "service-workers/service-worker/performance-timeline.https.html", @@ -310333,6 +310413,12 @@ {} ] ], + "trusted-types/DOMParser-parseFromString-regression.tentative.https.html": [ + [ + "trusted-types/DOMParser-parseFromString-regression.tentative.https.html", + {} + ] + ], "trusted-types/DOMParser-parseFromString.tentative.html": [ [ "trusted-types/DOMParser-parseFromString.tentative.html", @@ -310605,6 +310691,18 @@ {} ] ], + "trusted-types/empty-default-policy-report-only.tentative.html": [ + [ + "trusted-types/empty-default-policy-report-only.tentative.html", + {} + ] + ], + "trusted-types/empty-default-policy.tentative.html": [ + [ + "trusted-types/empty-default-policy.tentative.html", + {} + ] + ], "trusted-types/eval-csp-no-tt.tentative.html": [ [ "trusted-types/eval-csp-no-tt.tentative.html", @@ -320995,6 +321093,10 @@ {} ], [ + "webgpu/cts.html?q=cts:copyImageBitmapToTexture:", + {} + ], + [ "webgpu/cts.html?q=cts:examples:", {} ], @@ -342774,7 +342876,7 @@ "testharness" ], "2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html": [ - "94fc0d1c57ac6cab4e5f637584d5e1d9db7e1a5c", + "0a4f91d085d60523d49b190d3064aad222cc56d3", "testharness" ], "2dcontext/imagebitmap/common.sub.js": [ @@ -347113,6 +347215,22 @@ "dd970ebfa60cdc96c64da1c9d7f326bc1bcaad01", "testharness" ], + "WebCryptoAPI/historical.any-expected.txt": [ + "dd5ffd7a6406cd18e43119b493c546ce1df45e81", + "support" + ], + "WebCryptoAPI/historical.any.js": [ + "67ca9d9767df9d37c841bece0127f04cc5218f56", + "testharness" + ], + "WebCryptoAPI/historical.any.sharedworker-expected.txt": [ + "dd5ffd7a6406cd18e43119b493c546ce1df45e81", + "support" + ], + "WebCryptoAPI/historical.any.worker-expected.txt": [ + "dd5ffd7a6406cd18e43119b493c546ce1df45e81", + "support" + ], "WebCryptoAPI/idlharness.https.any.js": [ "b0ccebd9f48999284ec36dbfb11a35314efa3135", "testharness" @@ -347165,10 +347283,6 @@ "e82c4d78f6baf44d5abeeafeb5a439508a65eaaf", "testharness" ], - "WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html": [ - "79bcec7a4dae8bce505e0dad690a47e44b087c7b", - "testharness" - ], "WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html": [ "67f7ff0b2b8038b14faa32a16a1a06f12ab9577f", "testharness" @@ -347374,7 +347488,7 @@ "testharness" ], "WebIDL/ecmascript-binding/sequence-conversion-expected.txt": [ - "0f5f6878b65d0cc7e96bbea6f1441b3914581b97", + "556a16b524939745e31604d0bc5b87873b22257c", "support" ], "WebIDL/ecmascript-binding/sequence-conversion.html": [ @@ -349378,7 +349492,7 @@ "support" ], "clipboard-apis/async-interfaces.https.html": [ - "e19c958f975d7967b8028a13d6901bdbd2ab4553", + "1c423e95b669a30a6af86db7a84d76a5a9c176b4", "testharness" ], "clipboard-apis/async-navigator-clipboard-basics.https.html": [ @@ -349789,6 +349903,22 @@ "c3a2e64c114ef78507213ab95f5cde91cac3bbbe", "reftest" ], + "compat/webkit-box-horizontal-reverse-variants-ref.html": [ + "72d0b2c6f6851764453f79cf71fc19be73bcb0e8", + "support" + ], + "compat/webkit-box-horizontal-reverse-variants.html": [ + "09dba694f260c6e5536663cac6151427a49d6dc5", + "reftest" + ], + "compat/webkit-box-horizontal-rtl-variants-ref.html": [ + "42321c506979b2ec08814cf024dc95da24f3d6d2", + "support" + ], + "compat/webkit-box-horizontal-rtl-variants.html": [ + "085a5899bc8e78214d57e691b0e5c3b3fc2904aa", + "reftest" + ], "compat/webkit-box-ignore-box-pack.html": [ "80b52fbf1fe13a7c9ec5288f301194e40a381430", "testharness" @@ -349797,6 +349927,14 @@ "30c243b301fbafc55a03aae0286ba4c2b1983da1", "testharness" ], + "compat/webkit-box-rtl-flex-ref.html": [ + "10b9eb73fd9017746116e55d42df434ba33fec1e", + "support" + ], + "compat/webkit-box-rtl-flex.html": [ + "d20b3a0a9dbab237a799f62504b9b1ea7b90a564", + "reftest" + ], "compat/webkit-box-vertically-centered.html": [ "4932274e906172f37ceed65067141817aa1b26ab", "testharness" @@ -353225,6 +353363,38 @@ "539d715ebd5344de4cf02b6485462b31bc167525", "testharness" ], + "cookies/domain/domain-attribute-host-with-and-without-leading-period.sub.html": [ + "8144b2f6940bec720b02e64e5c6d92d867c7971d", + "testharness" + ], + "cookies/domain/domain-attribute-host-with-and-without-leading-period.sub.html.sub.headers": [ + "4365b7dfe8a753a39dfdf69f75b63dc17b5f9c1f", + "support" + ], + "cookies/domain/domain-attribute-host-with-leading-period.sub.html": [ + "1a020d6e32d914dec275b9d292efd473fda14417", + "testharness" + ], + "cookies/domain/domain-attribute-host-with-leading-period.sub.html.sub.headers": [ + "3813417dbd9e94dc7620d38591e0628459de08c2", + "support" + ], + "cookies/domain/domain-attribute-matches-host.sub.html": [ + "8244c8f5045f9982b2e8efc7099e1e86a30d290e", + "testharness" + ], + "cookies/domain/domain-attribute-matches-host.sub.html.sub.headers": [ + "3544e221f76acea7808bc0f0d2e43d74ff4d8ce4", + "support" + ], + "cookies/domain/domain-attribute-missing.sub.html": [ + "c4ed6ab200bb8a3cceca793cd862bc6f52a26dda", + "testharness" + ], + "cookies/domain/domain-attribute-missing.sub.html.headers": [ + "e391056503306f622a7ce2cacfab1f9bac156bb0", + "support" + ], "cookies/http-state/attribute-tests.html": [ "8cb820564f455ea545ce0124bb477a211141bc5d", "testharness" @@ -353253,12 +353423,8 @@ "49bb27a1a7f82553ba3016fe087223ca1e82feea", "testharness" ], - "cookies/http-state/general-tests-expected.txt": [ - "4d33a0e1749dc71146976e8dfd43b2f5b5695749", - "support" - ], "cookies/http-state/general-tests.html": [ - "c8b7ea4ecb1c1203ad23afa5a6436693d4b125f6", + "f563bf7c68d662be8182ade0b4fd1629295df754", "testharness" ], "cookies/http-state/mozilla-tests-expected.txt": [ @@ -353298,7 +353464,7 @@ "support" ], "cookies/http-state/resources/cookie-http-state-template.js": [ - "62459f059fd147779354140d1e830ea52a263abe", + "b2af226e22ead4870133c402df00ca50cf9b0d97", "support" ], "cookies/http-state/resources/cookie-setter.py": [ @@ -353342,7 +353508,7 @@ "support" ], "cookies/http-state/resources/test-files/0004-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0004-test": [ @@ -353478,7 +353644,7 @@ "support" ], "cookies/http-state/resources/test-files/0021-expected": [ - "a43cb004436a02f18cda39625fc2126f373dd7ae", + "445a5929e81e05151a90913c6ef2597a1aafd3e8", "support" ], "cookies/http-state/resources/test-files/0021-test": [ @@ -353494,7 +353660,7 @@ "support" ], "cookies/http-state/resources/test-files/0023-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0023-test": [ @@ -353502,7 +353668,7 @@ "support" ], "cookies/http-state/resources/test-files/0024-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0024-test": [ @@ -353510,7 +353676,7 @@ "support" ], "cookies/http-state/resources/test-files/0025-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0025-test": [ @@ -353518,15 +353684,15 @@ "support" ], "cookies/http-state/resources/test-files/0026-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0026-test": [ - "609c6680b8281f845faa605b7d812bbecb8d615d", + "5ac72745f978b8394b583d10f1ae466d1055e2d4", "support" ], "cookies/http-state/resources/test-files/0027-expected": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "973d3847c04c2243d89086aa490a5e54f2d41f10", "support" ], "cookies/http-state/resources/test-files/0027-test": [ @@ -353534,11 +353700,11 @@ "support" ], "cookies/http-state/resources/test-files/0028-expected": [ - "609c6680b8281f845faa605b7d812bbecb8d615d", + "5ab27668fdbdd021d29abbda3acd08e94aa92b0b", "support" ], "cookies/http-state/resources/test-files/0028-test": [ - "609c6680b8281f845faa605b7d812bbecb8d615d", + "fea1e1a643b97d4a101d704bd1497376a4997b3c", "support" ], "cookies/http-state/resources/test-files/attribute0001-expected": [ @@ -370725,6 +370891,10 @@ "3ef19970007d4bb6a889f9601bc7c910f619f841", "support" ], + "css/css-animations/animation-before-initial-box-construction-001.html": [ + "558c5ea18699f3856c7d34b976f920b1fd7fd5b0", + "testharness" + ], "css/css-animations/animation-common-ref.html": [ "ddc7da67ddf5fed83e653d1130a65f5c1e3a6dec", "support" @@ -371229,6 +371399,10 @@ "792fda33ed8b0bacf355e62066ec05d54cc5c729", "testharness" ], + "css/css-animations/support/empty-sheet.css": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "support" + ], "css/css-animations/support/testcommon.js": [ "b4fde4b967de2eb67cb3e0819c3a896375e861f9", "support" @@ -375753,6 +375927,30 @@ "5fb481783f0134b3b233ceb17ea4a0897eeee403", "testharness" ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background-ref.html": [ + "8cc4618ede4af030adc8fe5f119deccf3c2e3882", + "support" + ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-background.html": [ + "ee0f006b5b25702f0b2c485c46e7b8ef6788147c", + "reftest" + ], + "css/css-color-adjust/rendering/dark-color-scheme/color-scheme-root-background.html": [ + "a6363971819a44e4bfc29891cbf51af6d24d1279", + "testharness" + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/assert-preferred-dark.css": [ + "73671b8a819ed81958b4359a1a3904f86cc98ec6", + "support" + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame-ref.html": [ + "0975119f56eee163041d58b96b80bd57173c44a9", + "support" + ], + "css/css-color-adjust/rendering/dark-color-scheme/support/dark-frame.html": [ + "11f88db4a0b3e94d620b5a92314c88040210cfae", + "support" + ], "css/css-color/LICENSE": [ "d47f50cca8a2d9dc40dee384ae256f8aecf44e0a", "support" @@ -375765,6 +375963,10 @@ "e282c4fb98224c0827f24ed9ecdfe95abb1ffbcd", "support" ], + "css/css-color/animation/color-composition.html": [ + "c3e481830b6155114e6e6f543acc27c02c59c687", + "testharness" + ], "css/css-color/animation/color-interpolation.html": [ "4b39fdcf796083ace917f0a021a697c6e4eb7214", "testharness" @@ -378901,6 +379103,10 @@ "f16d29835f7aef92f278fa5bc28317dc913f3544", "reftest" ], + "css/css-flexbox/animation/flex-basis-composition.html": [ + "122761e47679945d000623b6ae6fbe6d13cd5fba", + "testharness" + ], "css/css-flexbox/animation/flex-basis-interpolation.html": [ "d66e81d4924f6b419a0e467119e5ce6dd27e2966", "testharness" @@ -382326,7 +382532,7 @@ "testharness" ], "css/css-fonts/animations/font-variation-settings-interpolation-expected.txt": [ - "854efe3e4d1412ea3da15bace063e8bfcf46b8c9", + "9c767ace4d0f04e980081e945064eb9c832d0c1a", "support" ], "css/css-fonts/animations/font-variation-settings-interpolation.html": [ @@ -392334,7 +392540,7 @@ "testharness" ], "css/css-grid/grid-definition/grid-inline-support-flexible-lengths-001.html": [ - "3a2c94238987b84fc99bee3c80e2ddc7fd04793c", + "42bbb43cf6ae229222375f3af822246c8bdb8d97", "testharness" ], "css/css-grid/grid-definition/grid-inline-support-grid-template-areas-001.html": [ @@ -392342,19 +392548,19 @@ "testharness" ], "css/css-grid/grid-definition/grid-inline-support-grid-template-columns-rows-001.html": [ - "32733e238fad58677447b44be9c5fcc934fe803d", + "cbcdc2c345400235f777974c05a041b13c332b1b", "testharness" ], "css/css-grid/grid-definition/grid-inline-support-named-grid-lines-001.html": [ - "fc4caf282349776da41ee63c6a07c3a834243fdc", + "a405f0557c94cdab2a0bd6803c38b1d790947adc", "testharness" ], "css/css-grid/grid-definition/grid-inline-support-repeat-001.html": [ - "465e5e8cd826306ce2c5b6661e086df6eb9e96a1", + "67a0c6611223f1f610ee575b0dc230027e3105c9", "testharness" ], "css/css-grid/grid-definition/grid-inline-template-columns-rows-resolved-values-001.html": [ - "ff1f814309603c13248b7045d9ca0f9900bd04fe", + "4b1390687dcdb07399b88dad5c93adbd908067e4", "testharness" ], "css/css-grid/grid-definition/grid-layout-auto-tracks.html": [ @@ -392382,7 +392588,7 @@ "testharness" ], "css/css-grid/grid-definition/grid-support-flexible-lengths-001.html": [ - "0dae45b39d1acc556ed79fac3ff58562e8ce8e78", + "db9488af25876a439d20b3a93de6be66a2729d43", "testharness" ], "css/css-grid/grid-definition/grid-support-grid-template-areas-001.html": [ @@ -392390,15 +392596,15 @@ "testharness" ], "css/css-grid/grid-definition/grid-support-grid-template-columns-rows-001.html": [ - "bf818cd85eaff5b659165021e317c23b00d71f77", + "cb0dbffe1614e286d2b179b75dd0aaf3f195cd98", "testharness" ], "css/css-grid/grid-definition/grid-support-named-grid-lines-001.html": [ - "bff5e8151c782060f08f8fdcf59ccd142d65547e", + "5357855b0474b8036f72de77ead519104ae1fb3d", "testharness" ], "css/css-grid/grid-definition/grid-support-repeat-001.html": [ - "c2c8be0c5910f6bb0b16f33ac536955b63cca0c3", + "54d230cca9d2be3509d7af79c83eb213075d14de", "testharness" ], "css/css-grid/grid-definition/grid-support-repeat-002.html": [ @@ -392414,7 +392620,7 @@ "reftest" ], "css/css-grid/grid-definition/grid-template-columns-rows-resolved-values-001.html": [ - "c992bf66d269d0923e78b59f90da4e34395bebe2", + "df91cebf63ee0a251e1c8da56567f7684bf4b1f9", "testharness" ], "css/css-grid/grid-definition/grid-template-rows-fit-content-001-ref.html": [ @@ -392910,7 +393116,7 @@ "reftest" ], "css/css-grid/grid-items/grid-minimum-size-grid-items-021.html": [ - "922223ae445282b91305b7d7e823f0040a898c70", + "ab66d70a9732cc2ea270feaa222c9efe88c70886", "testharness" ], "css/css-grid/grid-items/grid-minimum-size-grid-items-022.html": [ @@ -393506,7 +393712,7 @@ "testharness" ], "css/css-grid/parsing/grid-template-columns-computed-withcontent.html": [ - "9b7cd030a7c145a9300ef7d6700ca6a8dd4e3e5e", + "a788ca22f77c188e6a574852ca23936bd6349071", "testharness" ], "css/css-grid/parsing/grid-template-columns-computed.html": [ @@ -393530,7 +393736,7 @@ "testharness" ], "css/css-grid/parsing/grid-template-rows-computed-withcontent.html": [ - "693cf338c0dc42406336ccd99a605b1cf0d4f9be", + "1e85f16d9338a5b74bd54be79e42a4007ffd715b", "testharness" ], "css/css-grid/parsing/grid-template-rows-computed.html": [ @@ -393965,10 +394171,6 @@ "8d3b9472b2c9a2ee88dc97f907f9d16eb4fa3755", "support" ], - "css/css-images/animations/object-position-interpolation.html": [ - "055cbc8421b6af58e636729268f7323e1710458c", - "testharness" - ], "css/css-images/css-image-fallbacks-and-annotations-ref.html": [ "f3193036766e428bf946e81b7df72bfc7f4901db", "support" @@ -396337,6 +396539,10 @@ "322ebd724e8524e85d8afe369b6bafaabbec8c79", "testharness" ], + "css/css-masking/animations/clip-path-composition.html": [ + "2275ae70a330e06214f3c612acdba186efde99cd", + "testharness" + ], "css/css-masking/animations/clip-path-interpolation-001.html": [ "21c34f1f2b75ec7345a97b00db62a49b038cf026", "testharness" @@ -400625,22 +400831,38 @@ "8f03d3c62fd0cefb11a22b1a4a8d2c06fed97308", "support" ], - "css/css-position/animation/position-interpolation.html": [ - "a4ad50240a40674afe76b4c76a08feb9c4e27b12", + "css/css-position/animations/bottom-composition.html": [ + "68a830dfbda2e4f15372ccc89be65d67602bf4b1", "testharness" ], "css/css-position/animations/bottom-interpolation.html": [ "272e79fc05b0267afe696c11ea0572299559d223", "testharness" ], + "css/css-position/animations/left-composition.html": [ + "14b3dfda76dc219bda706e48f7e6846b20e242cf", + "testharness" + ], "css/css-position/animations/left-interpolation.html": [ "33ed0b4ec3b961bc0f71fc1b784b51201f50ebfa", "testharness" ], + "css/css-position/animations/position-interpolation.html": [ + "a4ad50240a40674afe76b4c76a08feb9c4e27b12", + "testharness" + ], + "css/css-position/animations/right-composition.html": [ + "995bb8d6bec8056c1e72ddbaa05b624a1072c9a8", + "testharness" + ], "css/css-position/animations/right-interpolation.html": [ "284d435e56eac5370edd570d2f67b0dfeaa6bbf6", "testharness" ], + "css/css-position/animations/top-composition.html": [ + "47782e8536fa2895d67fc4f91a182899f5da0d50", + "testharness" + ], "css/css-position/animations/top-interpolation.html": [ "f5af530c387a7b52a78a4ca13b27d976f60b2dc9", "testharness" @@ -401934,11 +402156,11 @@ "reftest" ], "css/css-pseudo/marker-content-013-ref.html": [ - "7657cfbd710763325972f860af7744eda98a236a", + "c46f8db136c208ec3c88317bc65b92fbddfd9799", "support" ], "css/css-pseudo/marker-content-013.html": [ - "427578f9c5abfd1be809ea71cfcfdac4298def44", + "3b2ce6fa50abac5cd44a75880eb18dad3aae485c", "reftest" ], "css/css-pseudo/marker-content-014-ref.html": [ @@ -402965,6 +403187,14 @@ "d26359658f479c61df8d0a559fcb5558f63106a6", "testharness" ], + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-align.html": [ + "3be68fe841a0d6183b83d5b7287b70883c3cfce7", + "testharness" + ], + "css/css-scroll-snap/snap-after-relayout/changing-scroll-snap-type.html": [ + "70774b3d40f691fe4feb623b4dfe430b12f4e8c0", + "testharness" + ], "css/css-scroll-snap/snap-after-relayout/move-current-target-expected.txt": [ "3ba4afcb8454cdb40a8ae73254bfeb89ccd93ad3", "support" @@ -406525,6 +406755,18 @@ "30592b44cec51eb7f0835c7abc9aaafe7458ceff", "support" ], + "css/css-text-decor/reference/text-decoration-subelements-001-notref.html": [ + "9994674abeff3e644ac29afec64d1aece767ebdf", + "support" + ], + "css/css-text-decor/reference/text-decoration-subelements-002-ref.html": [ + "000a909ea58571bbd93c3826a3a66d72d499cc6c", + "support" + ], + "css/css-text-decor/reference/text-decoration-subelements-003-ref.html": [ + "5e229a9b72f65cc3863232a489ffe8dea17c8760", + "support" + ], "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [ "4e7db88ce5b41e28aa43fc339c35438855abb928", "support" @@ -406997,6 +407239,18 @@ "d4538e7c7b45356d08cf5dc90273b6aee77c49fa", "reftest" ], + "css/css-text-decor/text-decoration-subelements-001.html": [ + "d24749e66722aa6a627e5955f225327f729601f7", + "reftest" + ], + "css/css-text-decor/text-decoration-subelements-002.html": [ + "c3af8e62df553c10a27c0522fe619a56740eb729", + "reftest" + ], + "css/css-text-decor/text-decoration-subelements-003.html": [ + "4d808390703a70a935493f74014665bab982b139", + "reftest" + ], "css/css-text-decor/text-decoration-thickness-001.html": [ "8f314793f2634406c8ad5d3fa268bf56eb864406", "reftest" @@ -414933,6 +415187,10 @@ "a326e7c92f21aca39613c6964055b9592b35b034", "testharness" ], + "css/css-transforms/animation/perspective-composition.html": [ + "6fa745d6ed2266cd4535a114a073e386eeb07488", + "testharness" + ], "css/css-transforms/animation/perspective-interpolation.html": [ "a27f84a11bdc3999eb5183dc3251878053c43bac", "testharness" @@ -414941,6 +415199,10 @@ "0a1e74cb8ec6d0539fe04f0be765ec67b3d78b7e", "testharness" ], + "css/css-transforms/animation/rotate-composition.html": [ + "fa0118d50f457b3021a28a7e12a21c96c1c5a23c", + "testharness" + ], "css/css-transforms/animation/rotate-interpolation-expected.txt": [ "6952453f7a3e8fbf8d15286d6d914ea18707cf32", "support" @@ -414949,6 +415211,10 @@ "eff60ba72f72c126ce442a02e89a6b1875190297", "testharness" ], + "css/css-transforms/animation/scale-composition.html": [ + "6fc4de61132cd2b3c887f9a932c2e820fd5cdb38", + "testharness" + ], "css/css-transforms/animation/scale-interpolation-expected.txt": [ "05b835c0dce6b10915040dfab647df818dd10d40", "support" @@ -414957,6 +415223,10 @@ "0e33371955bb7ea630939de5c0333355f9830586", "testharness" ], + "css/css-transforms/animation/transform-composition.html": [ + "928da71a9b9c0ff8d5552976ee2b635f1f3567b6", + "testharness" + ], "css/css-transforms/animation/transform-interpolation-001-expected.txt": [ "dd58e6a649dfd745225f2f84b1214187e1ca4405", "support" @@ -414985,10 +415255,38 @@ "c69bad7c93b8448b763e7f98d0ed6b50783ed7d2", "testharness" ], + "css/css-transforms/animation/transform-matrix-composition.html": [ + "2586ff3d4a577b9c4b43a2841884c6f490d7ccf3", + "testharness" + ], "css/css-transforms/animation/transform-origin-interpolation.html": [ "02b8b59b0b92cb37c4cce43a06ff1e9eff2b41e4", "testharness" ], + "css/css-transforms/animation/transform-perspective-composition.html": [ + "82f8dad59b6590c325ae7b4d2de7cf7b72959c71", + "testharness" + ], + "css/css-transforms/animation/transform-rotate-composition.html": [ + "e062860e72937121ed290c81a1e14276899ec383", + "testharness" + ], + "css/css-transforms/animation/transform-scale-composition.html": [ + "87c33a85ed672612ec60570001f1b9a2bf4f05c9", + "testharness" + ], + "css/css-transforms/animation/transform-skew-composition.html": [ + "cda44b60c0ed9683291ee6341d14c28cf327a4af", + "testharness" + ], + "css/css-transforms/animation/transform-translate-composition.html": [ + "49214c4a93c8c1d16416c131a6780564e474e723", + "testharness" + ], + "css/css-transforms/animation/translate-composition.html": [ + "3abdb4522b07094ca689acee9fc7e252f18438ec", + "testharness" + ], "css/css-transforms/animation/translate-interpolation-expected.txt": [ "0499ca03b5ee21961e69a72ab904c4110d35d9d9", "support" @@ -419353,6 +419651,10 @@ "c007816ecb04236421ff0aea8861da19c244338a", "testharness" ], + "css/css-transitions/animations/vertical-align-composition.html": [ + "222a511679b999cc684d26fc3c5e73bfc1d0ee46", + "testharness" + ], "css/css-transitions/animations/vertical-align-interpolation.html": [ "c81c83239354cc3c179612f26f95891dac8e3676", "testharness" @@ -423353,6 +423655,14 @@ "709551f15903ac671ba78284885c56c277984d7b", "manual" ], + "css/css-ui/resize-change-margin-ref.html": [ + "b326c5f8d2c52f08bc2a09e651ae87f6c005979d", + "support" + ], + "css/css-ui/resize-change-margin.html": [ + "a957ac931e8647958baf0d1891d3e69dd4435c0d", + "reftest" + ], "css/css-ui/select-cursor-001-manual.html": [ "30aa9b20f8d23c6f0985db4b09b921c850973d0b", "manual" @@ -432342,7 +432652,7 @@ "testharness" ], "css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt": [ - "590e70efef67542f47f150917d8cb07fb7da3c60", + "af3a58661beefb28ba53e78805277201b63464ee", "support" ], "css/cssom-view/MediaQueryList-addListener-removeListener.html": [ @@ -432354,7 +432664,7 @@ "support" ], "css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt": [ - "6b8b5fecac328f8e414f80500ec765d9c60a8fdc", + "a587c7d11baca579da32fc0750228c7e95f858b2", "support" ], "css/cssom-view/MediaQueryList-extends-EventTarget-interop.html": [ @@ -433169,8 +433479,12 @@ "3acdfb12852356ac28e91af25c82052d45864b0e", "testharness" ], + "css/cssom/CSSStyleSheet-constructable-expected.txt": [ + "c88a70ef92c4e4a34ea3cd6f22c039166b8c4df9", + "support" + ], "css/cssom/CSSStyleSheet-constructable.html": [ - "c30e764152deddcfcb3311636aa8cadcb5295dee", + "d7be1677f8c3afffbb7fcea3536969fd083d0fe9", "testharness" ], "css/cssom/CSSStyleSheet.html": [ @@ -443026,7 +443340,7 @@ "testharness" ], "custom-elements/range-and-constructors-expected.txt": [ - "45bdc0562294a1360e6fc8fab71ead23289d198b", + "46ca349dd203e17082054a64f256a09563ac093a", "support" ], "custom-elements/range-and-constructors.html": [ @@ -443474,7 +443788,7 @@ "testharness" ], "dom/events/Event-dispatch-handlers-changed-expected.txt": [ - "c3c943786a4bfe3b851351a71f93f44aa522521d", + "4e26515bae7fe1400cec6129422902d1268de1e2", "support" ], "dom/events/Event-dispatch-handlers-changed.html": [ @@ -443482,7 +443796,7 @@ "testharness" ], "dom/events/Event-dispatch-listener-order.window-expected.txt": [ - "46667c5be3fba033b65c04ac99d387c8a64d687e", + "65eec9685e2e5833faf2bf174efc9ea5a346617f", "support" ], "dom/events/Event-dispatch-listener-order.window.js": [ @@ -443506,7 +443820,7 @@ "testharness" ], "dom/events/Event-dispatch-order-at-target-expected.txt": [ - "3db500ef25e94bb74030a5f6a995632410577253", + "ad4f38095d000d51984168915439f1895e159cda", "support" ], "dom/events/Event-dispatch-order-at-target.html": [ @@ -443634,7 +443948,7 @@ "testharness" ], "dom/events/EventTarget-dispatchEvent-expected.txt": [ - "625adecb9f4c0c5700e99243c5be7fa6bbabb71a", + "0e719cd2366ad1ca6be239b3ad70f2b2ea9dc150", "support" ], "dom/events/EventTarget-dispatchEvent-returnvalue.html": [ @@ -443738,11 +444052,11 @@ "testharness" ], "dom/historical-expected.txt": [ - "2c0959b792338984140c1b30f5a9e2baab7f95ec", + "4c0f1de272a71260bffdf9500383d81fafba50e2", "support" ], "dom/historical.html": [ - "921fa07b3f6de0f9a579b75b14d6509039765205", + "8a71e364e5ef30a0f9d9621d3eb018a34d42ae4c", "testharness" ], "dom/idlharness.any.js": [ @@ -443754,7 +444068,7 @@ "testharness" ], "dom/idlharness.window_exclude=Node-expected.txt": [ - "ae194bdc7c2351171740a736db1c425291a99492", + "0dcf7948b20e0d6d6905016af892d26de6503d25", "support" ], "dom/interface-objects.html": [ @@ -443902,15 +444216,15 @@ "testharness" ], "dom/nodes/Document-constructor-svg.svg": [ - "28aaf16bdcd182f0a754e197d9b250475e59c762", + "77e3d8996e6bbc71bd1521903115b34302e23d36", "testharness" ], "dom/nodes/Document-constructor-xml.xml": [ - "9aada512c895b9ad91516892007ba1d4ab8d9c1c", + "c9fc77580648653750a488994abc314a6b409967", "testharness" ], "dom/nodes/Document-constructor.html": [ - "ceb41926f85869c996e2cb248e4a1853198b8d3c", + "e17de28471d75ea83b9b95ae144a3e3f2c3f1cd4", "testharness" ], "dom/nodes/Document-contentType/contentType/contenttype_bmp.html": [ @@ -444210,11 +444524,11 @@ "support" ], "dom/nodes/Document-createEvent.https-expected.txt": [ - "154cf010abb5f60464e54db6b98535a89c36208d", + "34759173797cbd50c3959a9d878033381049c755", "support" ], "dom/nodes/Document-createEvent.https.html": [ - "8108f20f6593e721e132ca16bbe509fd1e06dfd2", + "bdc1895879bfa613e72229b44d535f76f785c5a2", "testharness" ], "dom/nodes/Document-createEvent.js": [ @@ -444549,6 +444863,10 @@ "6a27ef77ecacf55a7eaaae18cdd007e017e42cd9", "testharness" ], + "dom/nodes/Node-appendChild-cereactions-vs-script.window.js": [ + "bc0b8ad6dca55d83f1cfb9788e6ff33df96ab22a", + "testharness" + ], "dom/nodes/Node-appendChild.html": [ "684607961a7eeaefb17b3a49dbf9ed36a3d7aee6", "testharness" @@ -444562,7 +444880,7 @@ "testharness" ], "dom/nodes/Node-cloneNode.html": [ - "08d620b3b80c483835f5e339c19b885ad036ea27", + "d977b2a7ae3ec2ee1ad9eec3c64abc86cc2e2500", "testharness" ], "dom/nodes/Node-compareDocumentPosition.html": [ @@ -451674,7 +451992,7 @@ "testharness" ], "fetch/data-urls/processing.any-expected.txt": [ - "175aa9f992e94925bab022d7eca862ec0c9e2f46", + "cfab79c6b3c7ecfefeba9e4541a3a5d81a8e2723", "support" ], "fetch/data-urls/processing.any.js": [ @@ -451682,7 +452000,7 @@ "testharness" ], "fetch/data-urls/processing.any.worker-expected.txt": [ - "175aa9f992e94925bab022d7eca862ec0c9e2f46", + "cfab79c6b3c7ecfefeba9e4541a3a5d81a8e2723", "support" ], "fetch/data-urls/resources/base64.json": [ @@ -451817,10 +452135,6 @@ "34864d4a4b6bd911f496026ada7bdc41ba3a6905", "support" ], - "fetch/metadata/appcache.tentative.https.sub.html": [ - "3dc47c696fb87ead0ef808b99b7e6e52cff01ebe", - "testharness" - ], "fetch/metadata/download.tentative.https.sub.html": [ "6f2a0434d497f695a44cc0d8972083d7cfa194c9", "testharness" @@ -451882,7 +452196,7 @@ "testharness" ], "fetch/metadata/portal.tentative.https.sub.html": [ - "4e50b6b24b356dac6c6c7f5b7d17b7f4f01431c1", + "96067ae82ab7838784f6350dda7cee7840e277f8", "testharness" ], "fetch/metadata/prefetch.tentative.https.sub.html": [ @@ -451986,7 +452300,7 @@ "support" ], "fetch/metadata/resources/record-header.py": [ - "3bfb1fcdfaab6f166149b5a451f58e82bbc48531", + "364c800a19ce6f2060a97019d222acbf71045e93", "support" ], "fetch/metadata/resources/redirectTestHelper.sub.js": [ @@ -453130,7 +453444,7 @@ "manual" ], "fullscreen/api/document-exit-fullscreen-timing-manual-expected.txt": [ - "1a274d04720f8a4407525c065a65864b9b074db3", + "c4f1bd6e43f5a71375d1c4d6a236fa73e5d77c9a", "support" ], "fullscreen/api/document-exit-fullscreen-timing-manual.html": [ @@ -453270,7 +453584,7 @@ "manual" ], "fullscreen/api/element-request-fullscreen-timing-manual-expected.txt": [ - "f75028a786c90e23ca391a51770e8f902c7c0234", + "e754f2efed890116670fb797c638185b8c7fbff7", "support" ], "fullscreen/api/element-request-fullscreen-timing-manual.html": [ @@ -454590,7 +454904,7 @@ "support" ], "html/browsers/browsing-the-web/unloading-documents/prompt/001-expected.txt": [ - "46992e4de976ed35d1f83e5aaf7f8009b465cf19", + "4cbb9e6b51ae99afd3e7945e2f8600d4bf48503a", "support" ], "html/browsers/browsing-the-web/unloading-documents/prompt/001.html": [ @@ -455014,7 +455328,7 @@ "support" ], "html/browsers/history/the-history-interface/history_go_undefined-expected.txt": [ - "a3c4e21a0821d18d097fe2ff5de8880d7ebdf976", + "0ee1ceae6e6c61d9b62fad340ce4c43e8263beb9", "support" ], "html/browsers/history/the-history-interface/history_go_undefined.html": [ @@ -455098,7 +455412,7 @@ "support" ], "html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual-expected.txt": [ - "bb62f55e4aec74f64e232778b4770df8bb84fa24", + "de8aaf91520f74b4a7fa14667c56a2939acc3335", "support" ], "html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual.html": [ @@ -455118,7 +455432,7 @@ "support" ], "html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual-expected.txt": [ - "c96d403f7640da3aa879b98dd3a1dfd784c5fcda", + "41569f6452004123f1ac42bf1bf8a0260734cb7b", "support" ], "html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual.html": [ @@ -455434,7 +455748,7 @@ "support" ], "html/browsers/history/the-location-interface/reload_document_write_onload-expected.txt": [ - "b643d9e97942677501d4970267f3ee70853bdaff", + "36c7d620b0cf96ff6f167d7dc9cc225d0a7bfb32", "support" ], "html/browsers/history/the-location-interface/reload_document_write_onload.html": [ @@ -455702,7 +456016,7 @@ "testharness" ], "html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt": [ - "571eb0149d60b8c75ce2c35a33a93ba1e27ed9ed", + "d2a2d327a44d324db637a3ef6f0be076c8ff5138", "support" ], "html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html": [ @@ -456114,7 +456428,7 @@ "support" ], "html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3-expected.txt": [ - "43307738b7d25ca2619eca60b0ba558d2ced0de9", + "883c4078c1fcd6a9101df1fb658b9474d78d1811", "support" ], "html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3.html": [ @@ -456134,7 +456448,7 @@ "support" ], "html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4-expected.txt": [ - "43307738b7d25ca2619eca60b0ba558d2ced0de9", + "883c4078c1fcd6a9101df1fb658b9474d78d1811", "support" ], "html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4.html": [ @@ -456518,7 +456832,7 @@ "testharness" ], "html/browsers/windows/browsing-context.html": [ - "5e99bb522f194e67b78bda958359f8ace011a59c", + "430598fb21236c877ff693d63a8c1135e010dae0", "testharness" ], "html/browsers/windows/document-access/document_access_parent_access.tentative.html": [ @@ -456734,7 +457048,7 @@ "support" ], "html/cross-origin-embedder-policy/none.https.html": [ - "f13a7523011674b0bab6b265d481b58649dc5531", + "7f296e60441458a5f38dfd351d717845677ce30b", "testharness" ], "html/cross-origin-embedder-policy/none.https.html.headers": [ @@ -456858,11 +457172,11 @@ "support" ], "html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt": [ - "6e7f6000788e5608abc228f08a3ea4efa1f59b44", + "992d30596ec1d4cd13ca55af2660f3c66b9a245f", "support" ], "html/cross-origin-opener-policy/coep-navigate-popup.https.html": [ - "21320a61b2eaa8b17cbb518d2028a5dce4134bf7", + "faa2793e5faaa81d4d819110ec1045dac9d9cde0", "testharness" ], "html/cross-origin-opener-policy/coep-navigate-popup.https.html.headers": [ @@ -456870,11 +457184,11 @@ "support" ], "html/cross-origin-opener-policy/coep-redirect.https-expected.txt": [ - "faa2c84f0aba957cf77f69e3affa823b82e0ccc1", + "fd033fd632fe81a9f8adf6c93468f21bc8e1ea9b", "support" ], "html/cross-origin-opener-policy/coep-redirect.https.html": [ - "73f07ddef88877aacf36ea43d47cc7aee85e5508", + "2727013783fa3d3c6a26f6746c1a0c28c59fdf19", "testharness" ], "html/cross-origin-opener-policy/coep-redirect.https.html.headers": [ @@ -456882,27 +457196,35 @@ "support" ], "html/cross-origin-opener-policy/coep.https-expected.txt": [ - "1bafd5c64254df00d9681048d3e2e3c3d6904a98", + "4409826428c16d7a8ffb4f670fe3177f51432310", "support" ], "html/cross-origin-opener-policy/coep.https.html": [ - "64994cdfb76f18cb11c42cc8258209fcfd1091e3", + "de1dd56d9d55e5e3f1de62b16058139204c2e098", "testharness" ], "html/cross-origin-opener-policy/coep.https.html.headers": [ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt": [ + "8afc3945668b5961413455a920564ccdd8de2a2d", + "support" + ], + "html/cross-origin-opener-policy/coop-navigated-history-popup.https.html": [ + "bd1cabafd4164e51804b0760dbf45885f3df3520", + "testharness" + ], "html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt": [ "66b2fb564b7063988271105b3d50aa73b8e5e0ff", "support" ], "html/cross-origin-opener-policy/coop-navigated-popup.https.html": [ - "9a92dd9bde885e9e3ee19c6e4ef93a0e7b82e418", + "3c6019ace0b308562cca08d6d6bfd6484882e1db", "testharness" ], "html/cross-origin-opener-policy/coop-navigated-popup.https.html.headers": [ - "a19f4400cea33a60c99807330704a23ee363b146", + "d83ed86fb9b5d159b9f380424887402edc96cb75", "support" ], "html/cross-origin-opener-policy/coop-sandbox.https-expected.txt": [ @@ -456910,33 +457232,149 @@ "support" ], "html/cross-origin-opener-policy/coop-sandbox.https.html": [ - "e471b1eda2ef28a1022e86a9d254608d02578e55", + "fc16c186cadf44bd1639d0eacf610e7781bc02bd", "testharness" ], "html/cross-origin-opener-policy/coop-sandbox.https.html.headers": [ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support" ], + "html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt": [ + "bd771d5cc24b231705307dc13d6316e59cbe976e", + "support" + ], + "html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html": [ + "73ef1ea29a2e91f0e4f9a9867081fe8aa5a9c81b", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt": [ + "eccde4f4e45470bcd37a970f4bc30c459a1a7fcb", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html": [ + "a8b6d543cd018b06b962b4ad1ef41b8c043ae496", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [ + "a19f4400cea33a60c99807330704a23ee363b146", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt": [ + "2d9ceab0986684cd71cb48d5b9014c8a17733519", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html": [ + "aaaae2dc31799bc46d58424133edb47a8b31794c", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https.html.headers": [ + "a19f4400cea33a60c99807330704a23ee363b146", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt": [ + "cae83c9c03e78c14db410ff85a7493144298a0c0", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html": [ + "fd58b06f783966f2ad24c2c2443c422fce2e94d0", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https.html.headers": [ + "a19f4400cea33a60c99807330704a23ee363b146", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt": [ + "b162229575f9c0f9788484a978324e0d97cd64a7", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html": [ + "7330ff75bcff697490ee248f938bdbb9c79f6b88", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https.html.headers": [ + "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt": [ + "5ce5701030de731578aef3510530b37a926f67f7", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html": [ + "01cc6719fd3a202514444765ff6a4e4d2153f2f1", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https.html.headers": [ + "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt": [ + "0b2243c3bdae74878d19a7766aa5862ca4d09c65", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html": [ + "b1a664dd9a5b8e8dd4cf561a31f85e8f2e88ae2d", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https.html.headers": [ + "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt": [ + "6bbd0c908e6193208f736b9c1ff22a6641552eb4", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html": [ + "d0fc7c79841eab57d810566e4eedc3e4f338d954", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https.html.headers": [ + "34bd099a302f893f92586241ea38aac812bf28d0", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt": [ + "6f55521424cca5cca9b3cf3feccd858a0582ed5f", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html": [ + "67d2523e28d9af525449a192f659d5be1768532c", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https.html.headers": [ + "34bd099a302f893f92586241ea38aac812bf28d0", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt": [ + "6b471a857143c4af839377321a3250ada79c40fd", + "support" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html": [ + "78b7ca8fcad0f5a68dbf3fefd3d1945564783fad", + "testharness" + ], + "html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https.html.headers": [ + "34bd099a302f893f92586241ea38aac812bf28d0", + "support" + ], "html/cross-origin-opener-policy/no-https-expected.txt": [ "9cd8ef4d5ac82b925031ad0a6bfe876cd26e05fc", "support" ], "html/cross-origin-opener-policy/no-https.html": [ - "014ba1f333b5e254609819bd99618ebcc6b7391b", + "f4e926b2eb2838c443f2e8f4d3bc024e719039a7", "testharness" ], "html/cross-origin-opener-policy/no-https.html.headers": [ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support" ], + "html/cross-origin-opener-policy/popup-meta-http-equiv.https.html.headers": [ + "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", + "support" + ], "html/cross-origin-opener-policy/popup-none.https-expected.txt": [ "441401ec1eb68b9cc27167f78234bb99231dfaab", "support" ], - "html/cross-origin-opener-policy/popup-none.https.html": [ - "62633457d3f57135658fb4bdf959fce278dc9851", - "testharness" - ], "html/cross-origin-opener-policy/popup-redirect-cache.https.html": [ "0524878a03a8d3764c63b77b5c8c4f1453c5a288", "testharness" @@ -456945,8 +457383,44 @@ "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support" ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt": [ + "1c9855f2b0800d6364064749f3eefbd601415172", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html": [ + "cea3788ba83d41a97b3b59bd2744db079f272a45", + "testharness" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https.html.headers": [ + "d83ed86fb9b5d159b9f380424887402edc96cb75", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt": [ + "fab5684adec05ff7651768116c3aa5e1ded396c4", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html": [ + "a50231f82287b03d15c186472767c215035886f6", + "testharness" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https.html.headers": [ + "d83ed86fb9b5d159b9f380424887402edc96cb75", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt": [ + "0c9dd90cf3add58944350d3ca860e66941a805f1", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html": [ + "53b4263a70fd41bd044440abeddce3b9585e5850", + "testharness" + ], + "html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https.html.headers": [ + "d83ed86fb9b5d159b9f380424887402edc96cb75", + "support" + ], "html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html": [ - "65ec3b26aa0c6e7e5df857bde88f67d394af2e9e", + "d4005ac20d8d7d9b215fe73785d9a1a3466fcef3", "testharness" ], "html/cross-origin-opener-policy/popup-same-origin-non-initial-about-blank.https.html.headers": [ @@ -456957,56 +457431,116 @@ "559011a753fb7333312e49f7d67b4dfa3a7c7137", "support" ], - "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html": [ - "2f8ebc3be3fcc7e23e64c95d5ceaaf83dfa1f67f", + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt": [ + "18e67489fb18e0838ba8e4e9d4c523e4317d4970", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html": [ + "9f7d27b3c8dc381f893c6ccf84c463db7f503f9b", "testharness" ], - "html/cross-origin-opener-policy/popup-same-origin-unsafe-allow-outgoing.https.html.headers": [ - "a19f4400cea33a60c99807330704a23ee363b146", + "html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https.html.headers": [ + "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt": [ + "e97cc22ef60f4893381e1eff6103032c0b16cd7c", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html": [ + "c84219a80f5c83ca6e4dc244406db9f05461fa83", + "testharness" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https.html.headers": [ + "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt": [ + "dc7e841aa6ab7444c15228ff59a7f4abeee377c7", + "support" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html": [ + "b875cc2e0e4abbc215be36111a22414f72126138", + "testharness" + ], + "html/cross-origin-opener-policy/popup-same-origin-with-same-site.https.html.headers": [ + "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", "support" ], "html/cross-origin-opener-policy/popup-same-origin.https-expected.txt": [ "0d082385b18e4696af0a53b727bec932fb86af6b", "support" ], - "html/cross-origin-opener-policy/popup-same-origin.https.html": [ - "964011ff7621155446925010c143b025954a5a61", - "testharness" - ], - "html/cross-origin-opener-policy/popup-same-origin.https.html.headers": [ - "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", - "support" - ], "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https-expected.txt": [ "2dfbfd706e72c10acd53822964ef477939ea1385", "support" ], - "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https.html": [ - "18ee909d1865567706674b75b40a6615ef75908c", - "testharness" - ], - "html/cross-origin-opener-policy/popup-same-site-unsafe-allow-outgoing.https.html.headers": [ - "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", - "support" - ], "html/cross-origin-opener-policy/popup-same-site.https-expected.txt": [ "dd1e4548e8bd75f0610ce3fa58abc128264755c0", "support" ], - "html/cross-origin-opener-policy/popup-same-site.https.html": [ - "9a0db2765daeb445a892a8ece7347c6b97f24917", + "html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt": [ + "bdf30aaa9187d3b502f01aa79c155a7acb309dd0", + "support" + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https.html": [ + "5cbf5b4c20c9b89c5cf946ebeea1733fbfb57c2c", "testharness" ], - "html/cross-origin-opener-policy/popup-same-site.https.html.headers": [ - "34bd099a302f893f92586241ea38aac812bf28d0", + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt": [ + "3231f774581a659a284882ea78f3513bbd8b64a9", + "support" + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html": [ + "f8a4ebe71288d6071f3d644607132a32b0c63f79", + "testharness" + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https.html.headers": [ + "073ce7adfbd81cb7c0b2f91f96c8349b6677f26c", + "support" + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt": [ + "44aef0d5e6f30804874f513bad5000a1c66018af", + "support" + ], + "html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https.html": [ + "e38acf4fcb1e1d0b039894013ab56e011c5efa8f", + "testharness" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt": [ + "47b19291b0fae47662e13a702bf90577cefccf81", + "support" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https.html": [ + "d89398cd653de327a10ff53b58b29a62e422ffb8", + "testharness" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt": [ + "c94e230e32c5c16eab5c9a8af077598344962f53", + "support" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https.html": [ + "cb6fc02ac171f606cb00a315d327062d13f32e91", + "testharness" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt": [ + "082acda388562f62271ee2474c20532e72596b03", + "support" + ], + "html/cross-origin-opener-policy/popup-unspecified-with-same-site.https.html": [ + "6e0edfa04233865f802a12a3ad3c4f26d50866f7", + "testharness" + ], + "html/cross-origin-opener-policy/resources/call-functionCalledByOpenee.html": [ + "d0ff0b723e0f31c6ed635db95851769a598ce2a1", "support" ], "html/cross-origin-opener-policy/resources/common.js": [ - "53b80bb6e998e6f93a46176b58be4c016275ce0f", + "477bc6c948f29cc18dc987e828eb5799b4a946ab", "support" ], "html/cross-origin-opener-policy/resources/coop-coep.py": [ - "8691e1b59d3134ef210259ed9501d123c002f88c", + "e6f655ab728107e4bac31cd7748711f719b01bd3", "support" ], "html/cross-origin-opener-policy/resources/postback.html": [ @@ -458134,11 +458668,11 @@ "support" ], "html/dom/idlharness.worker-expected.txt": [ - "88f80ee37ace8c1b006bd7fd398cb365f3f24869", + "f03700f7dd9306e7cd01749ebf4b44ff35cf3a72", "support" ], "html/dom/idlharness.worker.js": [ - "b720d54f3d953633bd7abd1e73097a31a369e825", + "feddaf54c9235dbb766f79990f729c8e441cbbec", "testharness" ], "html/dom/interfaces.https-expected.txt": [ @@ -458246,7 +458780,7 @@ "testharness" ], "html/dom/usvstring-reflection.https.html": [ - "162d58c50c449da07912fbce7ffa9ad9b7674d0a", + "d3c90e593400c69c61d433898cd68cc55d633573", "testharness" ], "html/editing/activation/OWNERS": [ @@ -461901,6 +462435,10 @@ "6604450991a122e3e241e40b1b9e0516c525389d", "support" ], + "html/infrastructure/safe-passing-of-structured-data/resources/post-parent-type-error.html": [ + "d6713c4192e5721f7ad07bf5de1d14ced934f8cc", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html": [ "8902de49cfb10293ddb6246dc834268621e0dcad", "testharness" @@ -462229,8 +462767,12 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], + "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-extra.html": [ + "5ff10cbc10e8f39a80d25ad5db323e3746bf0bcc", + "testharness" + ], "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt": [ - "234a15f784020c698f26639b86c0ffddaabf647d", + "3247c6dba8c8d58d78956a92fa3d93b6ea0991cc", "support" ], "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js": [ @@ -462250,7 +462792,7 @@ "testharness" ], "html/infrastructure/safe-passing-of-structured-data/structuredclone_0.html": [ - "babf514bf9e4d7cd7807fde2c1be644508e17ef7", + "fbb48db03838addca28181629070d57b1ea81f24", "testharness" ], "html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt": [ @@ -463889,6 +464431,14 @@ "1f09e7e75f9126982a07902ae0693f9ea2fd5823", "support" ], + "html/rendering/the-details-element/summary-display-list-item-ref.html": [ + "31e98d3fdca8fff9fe88929c8075643fca3abb40", + "support" + ], + "html/rendering/the-details-element/summary-display-list-item.html": [ + "c2e96e987ea943e29626e0cfd013ef6d6cae3bbc", + "reftest" + ], "html/rendering/unmapped-attributes-expected.txt": [ "4179bfbb0420e5141741be44c2c7ea211b24247d", "support" @@ -467749,16 +468299,28 @@ "16e64214761bbcccbf2022ad4ba187037bbffced", "testharness" ], + "html/semantics/forms/constraints/form-validation-validity-patternMismatch-expected.txt": [ + "05bb339e782849a2bbd9a76fa5819cdf162b905c", + "support" + ], "html/semantics/forms/constraints/form-validation-validity-patternMismatch.html": [ - "d8677898ff135a7db42bc050d2d1dad582477af4", + "4ca64aac68983c50297fe48b5cb9423baabab4a4", "testharness" ], + "html/semantics/forms/constraints/form-validation-validity-rangeOverflow-expected.txt": [ + "c33b68b346418f55917cf50d82718fd77e0ac117", + "support" + ], "html/semantics/forms/constraints/form-validation-validity-rangeOverflow.html": [ - "fedf2ea4e4f0aa5018db5bb24ec3bf0e15333992", + "2f69407592ecf0502a75782f6094beaf9310986d", "testharness" ], + "html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-expected.txt": [ + "2afd27b370ed9f691caa540502cf608f0a08c598", + "support" + ], "html/semantics/forms/constraints/form-validation-validity-rangeUnderflow.html": [ - "8ac3aae1279c0f6df2203251aae26854ba551b57", + "c939a94c37e160f374445ec1def14137764e54d4", "testharness" ], "html/semantics/forms/constraints/form-validation-validity-stepMismatch.html": [ @@ -467778,7 +468340,7 @@ "testharness" ], "html/semantics/forms/constraints/form-validation-validity-valid-expected.txt": [ - "b0da38305f70073516805dba54b8fb5f0fda8413", + "85f81beb88241b6f1b4f15467dcc7ee06bcf8a2c", "support" ], "html/semantics/forms/constraints/form-validation-validity-valid.html": [ @@ -467786,11 +468348,11 @@ "testharness" ], "html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt": [ - "b4497dd9a754b12ba2d3a1e76ca03f00b828572c", + "6e95bca5f8a4650a7d349c07a86444ffde3b2c27", "support" ], "html/semantics/forms/constraints/form-validation-validity-valueMissing.html": [ - "2e1c666436a19bc759026ebf55df4a17073ecb5d", + "3229527fabc00880bd2f95d7aa4f494ce9884fa3", "testharness" ], "html/semantics/forms/constraints/form-validation-willValidate-expected.txt": [ @@ -468145,6 +468707,14 @@ "06218f4fc9e99efe2d87a9eb85582d3dc84434a1", "testharness" ], + "html/semantics/forms/the-button-element/button-submit-remove-children-jssubmit.html": [ + "26ce16dd2d0df51b4dad3e41e8b22b9ffa05ca48", + "testharness" + ], + "html/semantics/forms/the-button-element/button-submit-remove-children.html": [ + "1dc259564cadadb99105a329b62dc12eea6bd878", + "testharness" + ], "html/semantics/forms/the-button-element/button-type.html": [ "6cfd6687c707479600534de03156afa698daa314", "testharness" @@ -468533,10 +469103,18 @@ "bd49a15fc82136105c17818561cc1e8f7fbfe7ee", "testharness" ], + "html/semantics/forms/the-input-element/input-valueasdate.html": [ + "a958e991ec53a22413bc311d832bc28b3b4baccf", + "testharness" + ], "html/semantics/forms/the-input-element/input-valueasnumber-invalidstateerr.html": [ "a3187ff3fbca4252d701b30c761819f5075611cc", "testharness" ], + "html/semantics/forms/the-input-element/input-valueasnumber.html": [ + "321c981c74d2293694fecf18284126b089aca1c2", + "testharness" + ], "html/semantics/forms/the-input-element/input-width.html": [ "5278ff77e1e7523a74970c5b85a94e29e66ea8e4", "testharness" @@ -468602,7 +469180,7 @@ "testharness" ], "html/semantics/forms/the-input-element/radio.html": [ - "c37fa7acd0c705e4711be719b9f99ce4db929560", + "7dcc9a14a8980898917d8d771041bd691e99785f", "testharness" ], "html/semantics/forms/the-input-element/range-2.html": [ @@ -468694,7 +469272,7 @@ "testharness" ], "html/semantics/forms/the-input-element/valueMode.html": [ - "9525d3ca1feedb651b18fefed8391d3584f36189", + "5502011794fcfdcfae5161ca861448ceb503dc54", "testharness" ], "html/semantics/forms/the-input-element/week.html": [ @@ -469698,7 +470276,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/029-expected.txt": [ - "85700a1d9701871dc3ef9ece8ff7a8bf726e9626", + "ba3ee6fadde237a04272b5d07a52ec01adf9e1b8", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/029.html": [ @@ -469918,7 +470496,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt": [ - "7d8abb8d655abe2d819cd10716c2b01eadb62b77", + "f5f518350168d5e11cc9523eb4b98c0e676a4ba4", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/083.html": [ @@ -470050,7 +470628,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/116-expected.txt": [ - "3a4a0bf6fa97bf4f92753d94cb7f3fa93954fffb", + "eb072edc5011fd9dbe28d5aa562be8afb5e85c06", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/116.html": [ @@ -470102,7 +470680,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/128-expected.txt": [ - "2aa8b3ec5ef6c3d2ee9ae8686292ba44371844cb", + "4c6504ee207535b1b97fb81e196c5eb8a3aa075b", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/128.html": [ @@ -470178,7 +470756,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/146-expected.txt": [ - "daaabfd5ce8558d391e34eedaa1a2e9d82429504", + "8a61a7e534064be01350c19050ac244b4338f186", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/146.html": [ @@ -470190,7 +470768,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/execution-timing/148-expected.txt": [ - "f21ff12ccf20fd24db5021e64942d01be1fb7b35", + "bc08031fe89cbc5237632dedbd38cd0aa519d34d", "support" ], "html/semantics/scripting-1/the-script-element/execution-timing/148.html": [ @@ -470950,7 +471528,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt": [ - "4aef3b36069953a8a940dd41e3acc35d0967e3c0", + "1b30fce3bb5dfa5676796f14e7131f20e29023b9", "support" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html": [ @@ -470958,7 +471536,7 @@ "testharness" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt": [ - "7c539bf5b9e2e3bc35472c8597405808d3da094b", + "fdde0fa534cfde0e5bea2b572b8331cdadd77f3b", "support" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html": [ @@ -470982,7 +471560,7 @@ "support" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt": [ - "56747fec694ded23bdff5b0b1a16c9d1c8611559", + "d603140821e44b1edd5e5aa93cdfdac405e0dc5f", "support" ], "html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html": [ @@ -471794,7 +472372,7 @@ "testharness" ], "html/semantics/selectors/pseudo-classes/link-expected.txt": [ - "04b569307df27673f2b36392c089be6a367685fc", + "1dbb2a765754962ccfbeab13b1c134713927e351", "support" ], "html/semantics/selectors/pseudo-classes/link.html": [ @@ -471806,7 +472384,7 @@ "testharness" ], "html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt": [ - "4267e8a1fa246afb755fe20207a819f869beaa76", + "20388d91029d553a04e9a05cf05d5e6e68826492", "support" ], "html/semantics/selectors/pseudo-classes/readwrite-readonly-type-change.html": [ @@ -474390,7 +474968,7 @@ "testharness" ], "html/webappapis/update-rendering/child-document-raf-order-expected.txt": [ - "46bb22cb8fbd00692e75fb8ab43a7974535d6f3e", + "29fda633b47882ad97a57f0fc04fa51a48773572", "support" ], "html/webappapis/update-rendering/child-document-raf-order.html": [ @@ -474862,7 +475440,7 @@ "testharness" ], "import-maps/builtin-support.tentative/imported/resolving-builtins.tentative-expected.txt": [ - "a92b0600636bd8bb1bbb3586a122517f1bdc8d4f", + "cd370faaeeab5825b878d0789c6a86f7bdc08b05", "support" ], "import-maps/builtin-support.tentative/imported/resolving-builtins.tentative.html": [ @@ -474878,7 +475456,7 @@ "testharness" ], "import-maps/builtin-support.tentative/imported/resolving.tentative-expected.txt": [ - "39ebb09e8e672104425c908275bde416803a0c65", + "ec4b7209086a70af3918fc6995944e7dfef8420c", "support" ], "import-maps/builtin-support.tentative/imported/resolving.tentative.html": [ @@ -474929,10 +475507,6 @@ "cda42d06099f16f13e61e30394c230cbbb34f8c9", "support" ], - "import-maps/common/resolving.tentative-expected.txt": [ - "cf7a3a1cb66725cf44b4c8f819f9aa4c332befd5", - "support" - ], "import-maps/common/resolving.tentative.html": [ "c947232e06322addc60a08004c1f21d317647042", "testharness" @@ -475342,7 +475916,7 @@ "support" ], "infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini": [ - "c6f136d9715e86db9952dd6eac80b09b7782eed8", + "87726f492394955e3835a6a6675cae490669d5de", "support" ], "infrastructure/metadata/infrastructure/assumptions/document-fonts-ready.html.ini": [ @@ -476142,7 +476716,7 @@ "support" ], "interfaces/dom.idl": [ - "d1557a676ef0f7c458c8654c59ec713a42833d0a", + "f7a10d890ab892e990bf9a81b87884e54089dcaa", "support" ], "interfaces/element-timing.idl": [ @@ -476286,7 +476860,7 @@ "support" ], "interfaces/mst-content-hint.idl": [ - "15e17cf5364c83fc70bf373cd7f500c13b153b5f", + "f7d3f20e72364a1bf7df019e3115c34c10d811ba", "support" ], "interfaces/navigation-timing.idl": [ @@ -476370,11 +476944,11 @@ "support" ], "interfaces/reporting.idl": [ - "f5370e8f1e656acf7409dbda907ee9672d5e8ed1", + "d42f0bac59c2fa6d8f94402f7b6e1e29de379123", "support" ], "interfaces/requestidlecallback.idl": [ - "b485dc07805fe864cf79abd1ec11a7e3ffb68d41", + "c763b50bde782bb484564b49e25068fff88f782b", "support" ], "interfaces/resize-observer.idl": [ @@ -476474,7 +477048,7 @@ "support" ], "interfaces/web-nfc.idl": [ - "de23fac0c118c2a773a5e9627c6b1af99c861838", + "12ea9d58bc055ee57efb65ae1495ebf4301427a5", "support" ], "interfaces/web-share.idl": [ @@ -476486,7 +477060,7 @@ "support" ], "interfaces/webauthn.idl": [ - "29025f35eecb5c82b33ffcc7039c4a99f081f4e3", + "56c2856b19a76d85a0b0495d620c025247ad3f42", "support" ], "interfaces/webdriver.idl": [ @@ -476518,7 +477092,7 @@ "support" ], "interfaces/webrtc.idl": [ - "49ed6bb0333020a6eee8d5411ae88a4e3a7dbd9a", + "053afdcb13587543e7da6140e72101f3892a05a0", "support" ], "interfaces/webusb.idl": [ @@ -477258,7 +477832,7 @@ "testharness" ], "lint.whitelist": [ - "62644762ce2bce2cbf0c3c8527cac8384ce00256", + "425730feea72429b66926298d3716b8164648211", "support" ], "loading/lazyload/META.yml": [ @@ -479842,7 +480416,7 @@ "testharness" ], "mediacapture-record/MediaRecorder-stop.html": [ - "5dd9aa637305f1ac65208b0e5f956831b8c22cb4", + "1cc18f4c854d368bf3508ade3bcfd3514ca409ec", "testharness" ], "mediacapture-record/OWNERS": [ @@ -482801,6 +483375,10 @@ "98c88e66ea1ec137cdcf794c63a14d9af4b964b1", "testharness" ], + "mst-content-hint/idlharness.window-expected.txt": [ + "6f8ebbac7e4ff849dc49a7b5b8c24ccc6f4dfb3c", + "support" + ], "mst-content-hint/idlharness.window.js": [ "0d9137dc6fb91b1499d922e01d6ad96049f5757b", "testharness" @@ -483517,180 +484095,92 @@ "3b83b67facae74327e940c3784d6c9befdb48789", "support" ], - "offscreen-canvas/compositing/2d.composite.canvas.copy-expected.txt": [ - "58a567dcf4d41915ea8ef64b6a0e712901c379c0", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.copy.html": [ - "6cf8779ab0b2a1c822e3ccc1d26ff195c904516f", + "824e1ecaeaae675f87d5632d853be2b6c9f03692", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.copy.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.copy.worker.js": [ - "aa0f39dd2bcbdbf115729f7a245c5b14e9444100", + "13f85bc5f7907bbfc86bdeb89a3d5113c7b64b86", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-atop-expected.txt": [ - "112814897f3677e258863975a51402b5f61fbc22", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-atop.html": [ - "b086a5429bad0b316c37215508db707aef9e632f", + "49dc643f082ec3258a85782c89abf553551d8600", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-atop.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-atop.worker.js": [ - "18785d75070043f02066638501808344eb68a6e2", + "7cdac8753dd023e7e99b28e0009b8898159ddc98", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-in-expected.txt": [ - "962695ac7380d09a231a7ff186e11b9a14c00ad4", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-in.html": [ - "402f2c3931ad32689a53e43ce32a3b9a6d7b558c", + "647e4866f60753cb55b13402c69e9fe047d0de25", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-in.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-in.worker.js": [ - "a2e403bf77b3763c150b688da73841f8b48f078a", + "0fbfc761c5b30ffda449c8ec8f05e8e4d4b59217", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-out-expected.txt": [ - "df7512016e3f72e891bd499da8ab7aff3b7ebf87", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-out.html": [ - "bccc50aea397c2daa7e09404b3e2d66167ddf5fc", + "46114c6556557c9f3f81bf09e1758ac3a7a32066", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-out.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-out.worker.js": [ - "3ae91e39592d596470a3c3e93658f7830bc485ad", + "659d0efee46361851a67ffb466f57a61c41a2b42", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-over-expected.txt": [ - "62ba07e1cff346119223eeb2ab7da142b3a283db", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-over.html": [ - "8128e1108349414a1ece262ea01ae623257aedc3", + "a7cfc306c51ea7b73b47385f1b3cab5a3076d4d8", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.destination-over.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.destination-over.worker.js": [ - "35827d4ea9bdcb4f8300856de777c1ec0e73f051", + "648da78ce9bf62a6e896c5ab275343497923de71", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.lighter-expected.txt": [ - "5258d04309eda3036d11aa8c42acc92e7288d1ab", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.lighter.html": [ - "20083b575851ad6ca335190b1a5060f790094e98", + "15012f2232bb15b39a3108382778195c12317173", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.lighter.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.lighter.worker.js": [ - "474c299d1a245c969761647bb990dddf0db8afd1", + "5450fc31ca2de411af207d4df8a4d2c5458326aa", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-atop-expected.txt": [ - "e8e700147a2d084d6b25c00bb69f484a2ae88d83", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-atop.html": [ - "16fb9fb3c8747f77a8b1c76905cece22c41dae75", + "30afb49476296ff2770c78cad32d62b8f2285025", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-atop.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-atop.worker.js": [ - "689152ae6f4142bc9956949ce4b26734617f8bbf", + "8b8d183213cb6be19bd276cc6b5d5712194ed8c5", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-in-expected.txt": [ - "38cb1565c80a41e5f36f181eb6d067fc0c25dd45", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-in.html": [ - "bf69b2dc0a1b132e85afe3b439d6891a4a857620", + "73ae7b710e101cdae57afbc58d3de73f0b98418c", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-in.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-in.worker.js": [ - "d68068bd9f5741741987ac70143ff0dc36a5f2e0", + "a4b9a5b98aec554b69f6260de88a156de2021b1a", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-out-expected.txt": [ - "19f83f367cbe6814d0f17b75f84882d79429d495", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-out.html": [ - "21514d32e5ddf7a095ac513dfb80e4b4ea99e31a", + "5f9f3fa228b7b23466fae5e8fb3708c8c7d27d1c", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-out.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-out.worker.js": [ - "f30bcd163991dfbdb5beb9025da1d44fc335d72a", + "0fff033b09aff0acf38c2331b37cb9fe8b49df8a", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-over-expected.txt": [ - "7c405d38a153f4c34f816b3785cbee0642b7bd44", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-over.html": [ - "54810af7f953663d9b15fdee7b3a06e426f01f68", + "ed428466cfce6253ce6440e1d9e92ae52ee2dae3", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.source-over.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.source-over.worker.js": [ - "5a90aedc2c7ea1e8b08c1bb8e91c66a5956b524b", + "b0bc5c513454f563a47b6fbdeac62515ac3121e0", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.xor-expected.txt": [ - "b9910a20839ecd1b9b41f5acedcd4808427206d8", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.xor.html": [ - "1c5ada787d458fcefc58f53f9a8750aee87012da", + "2df51323328c181d5516079c323a20a903b667f6", "testharness" ], - "offscreen-canvas/compositing/2d.composite.canvas.xor.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.canvas.xor.worker.js": [ - "16d1e9be9b0a5a2f25167a9bfcbc1f0c83be448e", + "9fa550575c13f12daccc1b49d3f8b14c0861d867", "testharness" ], "offscreen-canvas/compositing/2d.composite.clip.copy.html": [ @@ -483821,36 +484311,20 @@ "aacc43c44599a49bd1debf01f1051568a7c6e27e", "testharness" ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.image-expected.txt": [ - "dad07e34aad2f83eb9197330598c97cd927d5c4a", - "support" - ], "offscreen-canvas/compositing/2d.composite.globalAlpha.image.html": [ - "2f7a5e684da46c4281d048efdf79d8e9be3bff29", + "5d586a191eef9bcd6d5f7880222bb614af95d7f2", "testharness" ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.image.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.globalAlpha.image.worker.js": [ - "143d2ee3a245322f4faea474426ca08bb67edb1d", + "f645a8e55640cc8fe501b0a819e60e99d272a166", "testharness" ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern-expected.txt": [ - "db39e6d7de127a72a52f5fee0b76de9629049d47", - "support" - ], "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern.html": [ - "c577b5bf9e9893d24b4a28b8d679f63f67568e2f", + "0c77965f7a8b50da5a62ea916b1ed3412cf9b5a9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/compositing/2d.composite.globalAlpha.imagepattern.worker.js": [ - "cc765b4731ec1cbbc940acb8c352d46184b8d2d5", + "8441dc275d5a15eefdc453120842552f935fc9c5", "testharness" ], "offscreen-canvas/compositing/2d.composite.globalAlpha.invalid.html": [ @@ -483869,180 +484343,92 @@ "5038d63da0caecd1e2bc4e9f656800ab35b2d808", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.copy-expected.txt": [ - "cf2e3b64893550335f8cac21877ae5cd2620f9db", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.copy.html": [ - "322f6cfd0a778a4164b8e7408fe85b47a868ed47", + "b4944a76c1059caeabf7ab42b1a592b03f38cedf", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.copy.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.copy.worker.js": [ - "b6f842569074b0591e0586a5cbe8dc8183dba1af", + "493ee0b4015aa5b77de2d7ed559f5727093145c2", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-atop-expected.txt": [ - "76d13832c91bcaedbccd3224b97d36217d1fc783", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-atop.html": [ - "3c54ac26fb5fc9d73c3cef3bed1ab75b99916995", + "79ecfcdf95f31f3684e7fcd18d39336d595fea55", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-atop.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-atop.worker.js": [ - "48f472bee8c203860d1542016c4b83d08bc0476b", + "d36ed50a0349d5864b6a423d1389c671acc403a9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-in-expected.txt": [ - "abb41e94d67c30ac6d25a2174b1cbd06a6d50c56", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-in.html": [ - "1edbcdcf46f47430fbaacf334705bfb805d31476", + "ef205f1b955ab1779cf5a7448a2a4f5f160e24ac", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-in.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-in.worker.js": [ - "622b35b7946e4a6ba6a258ad316f045706f8f16d", + "60eb61951cbc978b0a8500a854738cbf2a052e81", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-out-expected.txt": [ - "64d16e5869a206075c725ceb408b4b45412a33cd", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-out.html": [ - "e1d0cbad8ced8db0bd14e393c081ddd5866ea642", + "ecfeeed6bfdae2954c72624b7c17a33796864731", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-out.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-out.worker.js": [ - "52c142efc7ee34ca0eadd7366d153e9e632ef5bc", + "ee97dccf7bd306d1ee06ecc6d7068d9a55d27b9d", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-over-expected.txt": [ - "728700ca02c22f315ee00d3e6f529576366fed13", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-over.html": [ - "c591a6559f1f10cdbdff55e8f2636c4ee313fb9f", + "eb58b3159659e42acae71feb859a3ceb2bb9d905", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.destination-over.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.destination-over.worker.js": [ - "fb200df3ff46ff337d663301da17ddebc857a399", + "274c32c8906ac1ec74568bdf65428ed9cfde9bda", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.lighter-expected.txt": [ - "fc6a57e09b6edb082374724a5482ae0b4253cd90", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.lighter.html": [ - "4ba8cf7d39ceb507d98d327f14c90eb9c1d5c377", + "4935ca3c4114378113c0e5d85efd7fdb19e4244d", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.lighter.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.lighter.worker.js": [ - "212446e51264a04cd08dbb330698922924cc31f9", + "05e39f95649873687883483cca33fb9b962ce481", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-atop-expected.txt": [ - "6bf094a9f71217559a7d0fcc36122415814c4a9d", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-atop.html": [ - "15e057dbe57a0aa9bcf59ef632e71dccbb526902", + "93a527de24d984de6761404a79a091d94e6f5617", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-atop.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-atop.worker.js": [ - "82ca5794e4600a6d8ba15118d2066dcc770b670e", + "5fddfcfd8a879c0f01ed95d1a328be48a99d3819", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-in-expected.txt": [ - "c0e437e6d6e3ce040054207ddac274d23da8e54e", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-in.html": [ - "b8190d3662d09f97981ee13d20e31656a334d293", + "2519fe72d779b97fba1d51ef401f4ddb6b8625e4", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-in.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-in.worker.js": [ - "9169f57986dafdfc05a05980a029e6b25fb27943", + "a5ca8d92e9428d9027bd5798a13b254ac13fd9f9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-out-expected.txt": [ - "43eef647c254deb84798bf21a838fe2713e71ef2", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-out.html": [ - "7a305ba7d8832131a352de4e96ff9859a17a2b21", + "f57393b8c1b948fd7a39ceb29f4fbd3a8509adfb", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-out.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-out.worker.js": [ - "56cc13e6c139f18c2ba27622e25a1cfd0c5fbfbd", + "1038ec5bcfd849eaf976245bb466ab37b452fc09", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-over-expected.txt": [ - "e97acb4d5de288ae6ec8f0c6b6225de1f220469e", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-over.html": [ - "5a3a67647b45069c7dd508c15ecd0617f85ba0d1", + "96c5252eb48faae88cd64912ef44e405706d49f9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.source-over.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.source-over.worker.js": [ - "210af01ba54ed87bf74d6947d42bbf523f33c8da", + "55c0f0eb9c4bbf1c382252f73f49d3d5e6a3952a", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.xor-expected.txt": [ - "00f8c92e1156762fe38a838554069fcdaa1216f9", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.xor.html": [ - "b40cda82e8a3004a10981975f37f3a5dde15a0a5", + "6039275bf06b4a9236d56b6e765d9b4a746a6f62", "testharness" ], - "offscreen-canvas/compositing/2d.composite.image.xor.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/compositing/2d.composite.image.xor.worker.js": [ - "ed6b7df3eee147019ded79188630c7f69f018f8f", + "c4e20ffe51c4e2e129cfc9a9173f0c2780942c34", "testharness" ], "offscreen-canvas/compositing/2d.composite.operation.casesensitive.html": [ @@ -484333,84 +484719,44 @@ "6db1757d1b80117b51e82cbe6dcb8665247b8468", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.copy-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.copy.html": [ - "ae9196b7afd452be201c6ea794a4f875b7621df7", + "1e1cab64b72c8a10edb0fb5481c61fef143e3629", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.copy.worker-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.copy.worker.js": [ - "50f3c8256b739acb4a7e5682dc5a4e4b6d6f7d02", + "7019270cd696ed017d5076b460831757b207e5f2", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop.html": [ - "a1d9c33c6ed206e9aa131c210095a6af578c1d97", + "bc6ac3ee2c1ef1c6fdab546d773b60234f2d03ed", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop.worker-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-atop.worker.js": [ - "93bcd94c63235a3c4424e6ead372051175f3ea5b", + "aaae19827eebcd2321f49c2f685a244bbd9bf886", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in.html": [ - "2268f93885bdbbe5bee33972ffd357c532484a63", + "3410aa42ab9a5c103d15f34b44fbd21aac974007", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in.worker-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.destination-in.worker.js": [ - "7bf112ca944fa27c9d08f1067304f9b227da7880", + "140e21d8eadf4a21675db8c0a39e7a5f1c518750", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in.html": [ - "8f544237168bee0b2577561c3fcdcfa6b4b8d757", + "979f0aa93ed936fd79e125bf54aaf178e11a2ac9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in.worker-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.source-in.worker.js": [ - "600bc2f61595ea43ed3e1df56da621443ff4f33a", + "4a91470aa01152cc6d2010209bae666a6ed4af35", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out.html": [ - "d15616d6bc4036b0a03085eda3d2209e85700386", + "ce72032c582bb62a2ed43e8edf90cf130680df05", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out.worker-expected.txt": [ - "79b063c84931743cc5aa4e84fbf24dec0a3e34d9", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.image.source-out.worker.js": [ - "d027bf3c1178ead59641519555d59150f53c5e8e", + "4c054cb29dff36f30e63c506222dc372715e8f5d", "testharness" ], "offscreen-canvas/compositing/2d.composite.uncovered.nocontext.copy.html": [ @@ -484453,84 +484799,44 @@ "726c3a80c4997d7876c5e650fa3b17908a63b69c", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy.html": [ - "16d69485653d4df448a023fcc6460c427425ada1", + "84a538878f688d99ba4b5065844624a2fe0e8d74", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy.worker-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.copy.worker.js": [ - "5e2d6590fa47ef7ca4a46f928ba03446c26076f2", + "b8a2e203423867843c508f5eb0e71d3630d6bc16", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop.html": [ - "9f5b8e8751a9720249de944fe0f2d7ff3819b90f", + "c7c20bb392bb2bcafc0cb8a2df3cfb0210303683", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop.worker-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-atop.worker.js": [ - "7c4fb96a3722a9b9e6234a52920d4d7566caca02", + "a1a2eb8548f805ea87593e25e7028a5eeaa1a5f9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in.html": [ - "6c08dd1ae226b033498c916318cb04918bf298ea", + "5058c75bcd810ab2b8a1bd09ec13200d3f7a81d9", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in.worker-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.destination-in.worker.js": [ - "006268dcf6407a8040b8f5d7e314afea56738c6c", + "2ab713b941bec2d7d63c9f10a5fc78339ca9198d", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in.html": [ - "3cf0ac91c02914a189484adaa7d2ac579cf22a6d", + "4beb3fb24b472c35a57953803c7933698cb6bff5", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in.worker-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-in.worker.js": [ - "1472e20a2d1fcb0e95dfd14f86f034d092d7d56f", + "c4e6c85cd23076d60428e02418c0b9fea69fa94e", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out.html": [ - "7b8dd8ac35890fa01531cb616adb328302bef791", + "907c77aa46dd07ab4c3e2a5de1827d02c14fd0a3", "testharness" ], - "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out.worker-expected.txt": [ - "9228e4fbf30fd95b2beac87d0cd5c6eff0d5f8ec", - "support" - ], "offscreen-canvas/compositing/2d.composite.uncovered.pattern.source-out.worker.js": [ - "c9f71f237804e25903d67e5526faa122b1efbbf1", + "6abb66a951a0039e892d6fe27fcc8b54f2fedf81", "testharness" ], "offscreen-canvas/conformance-requirements/2d.coordinatespace.html": [ @@ -484565,164 +484871,84 @@ "9b08cc86257ff0e5220c23e3a76ffb8a4d7d8fa7", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg-expected.txt": [ - "3d26a8d0240e7f43bf5c997df45901ff9f7908e4", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg.html": [ - "44f33cf5e2ffe9b61a30d8c0617daadb9308d686", + "f3ede9a81eecfa09703599dce0c5389e24121c00", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.3arg.worker.js": [ - "a600e2f28f2cce1f903f13eb8aea221c8e97c512", + "6be6bdf96ee115bb8f2d9b330eb31446a555ca24", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg-expected.txt": [ - "377c9e8afa07cef3d91f41b15ccb57018eba0fe0", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg.html": [ - "d82aa2d45d2367dfaf3e68d4a5a0b8b7b85bc254", + "7671f3a493426c322286ddf758456e41e46e5722", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.5arg.worker.js": [ - "6fafc4e4f69b69eb83d24c5db899e4dad7660262", + "5917615f3978a334b57b491cb56968709e2a6757", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic-expected.txt": [ - "a85be1ac5d98614a688eb80d35f23253c991e493", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.html": [ - "44da5d5e5bbda3dde5b71d023b3f704a96e92fe0", + "829fc6b4a67458faf7bd766c8eb439bc89500227", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.worker.js": [ - "697449f6dfe6fdfba2c58ee33e871782523fae80", + "afa730b9f7cb0f07e8e37f7cc7210026999a5714", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos-expected.txt": [ - "9584dc3a89a111a7f287774301f21baf9da390b8", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.html": [ - "aad38fee72f09f0e4988df0643441747dfc6a51c", + "a01ace172a7a767bd8317b47c0c4a7a340e0fad7", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.worker.js": [ - "19f4bbcb30673856703231c1e5338121151e9520", + "687f0244f25b35a477c2131c70b54b7fb0399f1a", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize-expected.txt": [ - "f9894d2fb38be004d226bc2c63f77c745a81b4c0", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.html": [ - "ce7f835bc8d57e5cc0392a65c0448557da082ccc", + "ddea3857568db7ad0afd8d48606b91676ee5caca", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.worker.js": [ - "3b85461f71f7f0df332929aa569cc2c1b6c196ba", + "7f586ef0558e6ae0b4adfb80ef7bcd8f53828f30", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos-expected.txt": [ - "87d0d713e261a60441a59b087441342e05a072ee", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.html": [ - "c18a47ff34f241f975dab49b5a10ba11020527c0", + "6541d762bf1df8f0f76078888f7f1351578fa8b7", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.worker.js": [ - "8525ee99efa916c811c8709b164ac875eb87967d", + "7cefad92dd69a62f8264ddf58d2cb97c0472a975", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize-expected.txt": [ - "b9ea887140b9970eeef70097518b4fad8d874113", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html": [ - "4b43d5fb08eedf17783eb5787df588716cb956f7", + "3c718c8da45c8ca1eca4c325ef9f22a620d103c9", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.worker.js": [ - "d73e3b952dd14753314b354b224a40dd85b03b71", + "dac1c7a0a9ab58b27988020a2f27bbb9a5710a3a", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha-expected.txt": [ - "b728d91ee9e39940f1976d1e2731bde94ef2e5b4", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha.html": [ - "33b2502f65b0898811d4b79e3bff20b603b11723", + "f1a1f083232149929d0e6fd2778e18c7bac9eb33", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.alpha.worker.js": [ - "5f29c1a1cca110bb9aff7f683aec514e6ec21cbc", + "6828af9225e6e18f7295e6c7127904e3b295b8d1", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster-expected.txt": [ - "b14e146d235fd69e536a03b0e411ad848d69d387", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html": [ - "16e9f791b2a8e2b2f95ce15706de853c27a4cc1e", + "28708941b466146f46cd5f096f9201405d795409", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster.worker-expected.txt": [ - "b14e146d235fd69e536a03b0e411ad848d69d387", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.animated.poster.worker.js": [ - "c3b566e844a7a33a724dc362b632b114e50249e9", + "ce6e8ee4f55f21445c1a1476f08f2757d365e805", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken-expected.txt": [ - "83d48a08c4489f2008b61b603a859dce0edd60b0", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken.html": [ - "a64d20e731e80a59fda6845f9a373a630b7903a7", + "531376aaab7e50f94fb2a1416413a56ecb547063", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.broken.worker.js": [ - "63163bd60aaac084413f7daa09018a705236710b", + "4acc40b49e68b5e7ddfe675333a8abcdc91c683a", "testharness" ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.canvas.html": [ @@ -484733,132 +484959,68 @@ "3ff2dbecd7c958c4d51f8e8d1e3c49de71a74aa5", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip-expected.txt": [ - "bf1bea385aac0fec06452dd37ba54b388cf9d2a3", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip.html": [ - "51651e56f390d1174469778811d16f2b1f07f766", + "562a9c5d0b840d82773e6ce3bbb41b0b000929ea", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.clip.worker.js": [ - "90d0aad3ff8c61178e2934f7df104e7f1a3a050f", + "1741f15b6822c53ff8125063d3968878d4fad73f", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite-expected.txt": [ - "5c1a406e7cff68cf36899eb9418849298989962c", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite.html": [ - "ba56e366f5a8f1864ae3555582fb66ab3abbcc48", + "de37739993f99dff7739d785bede999b5da35f4e", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.composite.worker.js": [ - "09e3b3a00af164a01b2716e99c6008d32b937f89", + "eecc8914e3b5a039f9a298b0f4db4c1b89eeb09d", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource-expected.txt": [ - "28bfd4574f6be7b879b5fdc66952b9ae4fc4b4c4", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.html": [ - "49a88fab035f2c68dadabacfb73ff8eac9c44195", + "f90b41d3f30aa90b34adf477767494dc6c7afd9e", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.floatsource.worker.js": [ - "45398e83191593eb07af4481eeb2f70a1da14ecf", + "d154a12b0a6ce523b4b3fe30b5fae82a85b52501", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest-expected.txt": [ - "9617d8fa6f2f6ff8e64345880f367a40bc7d46a8", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest.html": [ - "9466738bcf5c221bf13b099b635fe1f634ad8c7d", + "d018e943d7739e2736bffe487f8883869cb44962", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest.worker-expected.txt": [ - "9617d8fa6f2f6ff8e64345880f367a40bc7d46a8", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedest.worker.js": [ - "284b45840677af97a04f2211dc485893d5776cc2", + "0185dd4a4529153038bd060404d7740598358fd9", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir-expected.txt": [ - "8ef68a351600a3314e361ae348efc15a6d589706", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir.html": [ - "4cbd37445c18f2deee6cc46950400f2f2765b87f", + "2f0a91dacc7cfa56a644ca3a89bf3526ee87a52f", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir.worker-expected.txt": [ - "8ef68a351600a3314e361ae348efc15a6d589706", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativedir.worker.js": [ - "00f0e7ec0661659ace3d69f7be306d86ffb4d6f6", + "b29cdad740ee0d27d43d8443c3d8a1a5a69e6dc6", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource-expected.txt": [ - "17b8650bee4218efd818566d8139bf829402f739", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource.html": [ - "66e9c2122312e6427746dcb27f235d8e191a078d", + "c2f78e5a952621be409f2377fd5213286b568705", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource.worker-expected.txt": [ - "17b8650bee4218efd818566d8139bf829402f739", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.negativesource.worker.js": [ - "0f24542d928568e45161cf128f43dab84c8b88ec", + "2171f692f5303ca6ceb8535850cd28e4a2edf5fd", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite-expected.txt": [ - "7279047229ef5d50fbff2b21f66ec80c632e8e0c", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite.html": [ - "9ca1a884b609bd2b745a1f1d39ec9db4225b3a89", + "c6bab2ea43df63d282882276c651936e2b4fd13a", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite.worker-expected.txt": [ - "7279047229ef5d50fbff2b21f66ec80c632e8e0c", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nonfinite.worker.js": [ - "f5d26785800a268867df360b90686fd1f9084dde", + "eaf58aa4909fd4b0434a33344671afd52e453933", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap-expected.txt": [ - "5f13a8070f46ecdda49eba7740631c5bd29593e5", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap.html": [ - "4d71c21bfb92adfd75a825df872be24d9ee9c5fa", + "f0dfb298f28a8cdf6eb0ca5d6c07e532e42587c8", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap.worker-expected.txt": [ - "5f13a8070f46ecdda49eba7740631c5bd29593e5", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.nowrap.worker.js": [ - "6f6b1e93a393064a7991a80d9e29211b6473144b", + "aab08771db443348d193238edc60c1e14d0425eb", "testharness" ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.null.html": [ @@ -484869,20 +485031,12 @@ "8ed0887ecd879783bd18e3eb82215a48f8db2285", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path-expected.txt": [ - "f621096bb20c24401b1223d8ba4af3db7f8a11df", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path.html": [ - "47763cdb434466c3b28dfa87249e0ff4d746810c", + "10daf12cd23e0ea254c6561c69a2898e706ee536", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.path.worker.js": [ - "ba8302b5e1e8a0d97c970a41619644cb942e00e0", + "45a082974904f12248bec16565ca6e276fc9b14d", "testharness" ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.self.1.html": [ @@ -484901,36 +485055,20 @@ "c6fe0dcd2a877d052bb3ba82a6ddf3f9fe8c71de", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg-expected.txt": [ - "cf858bbb307d7efed6e8a8bd8673569de77e7889", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg.html": [ - "ff83aa0330f7f37934833712f5055649c2d162df", + "72ba2ec7ba49bdd345b2524c29ab291b2cbe09f5", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg.worker-expected.txt": [ - "cf858bbb307d7efed6e8a8bd8673569de77e7889", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.svg.worker.js": [ - "382190e6cd31c4122b825424468a84b510903e57", + "50892c2b4a0af0b05667bc1cd36577e3c1c403a8", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform-expected.txt": [ - "7dd986dee7c0ecf6452b1d21c5df0894df785675", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform.html": [ - "2adcf02142233de19404eef6e2a965b7b07c5e8e", + "b782ba87e68abd39928aeeb9c0d3401699ce6f1b", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform.worker-expected.txt": [ - "2e526addd9d4933493ca15bb354a0c553a1fe436", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.transform.worker.js": [ - "5e1095bc74efbfddfd7fe8cc00cb244cf5721182", + "a4cb865dc1e550820d1225cceae605e2a15bfb1c", "testharness" ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.wrongtype.html": [ @@ -484949,36 +485087,20 @@ "1e9d63cf92b0353c88426cf4cd68e5a507333435", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt": [ - "693d3f6be35ca21de53be5f991257e4c7e477245", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.html": [ - "645e2c9711f5ea2448b237abc271571a9adc2d50", + "b941f3aa3aaa89322b40017d029274dcec264c85", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt": [ - "aa2f43c05f6bbc3544dbfa28e36c8505ab737e64", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html": [ - "a38e98208b7b5b5df0c46acafacbad4d512d4fd8", + "1abcb6abf495ae8f6959393dd3496d6041b6cc75", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.worker-expected.txt": [ - "aa2f43c05f6bbc3544dbfa28e36c8505ab737e64", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.worker.js": [ - "304acdc11732c3ee9c106587dcbf41fb7d270c68", + "cf472ac4179c9903261f8c72f11d49bc610778b9", "testharness" ], - "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt": [ - "693d3f6be35ca21de53be5f991257e4c7e477245", - "support" - ], "offscreen-canvas/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker.js": [ - "1e6f54f3882d40419c7f7d27c95f9b4c871e2c06", + "b3b6a59cb7af150863f483de43837eb914dfafc6", "testharness" ], "offscreen-canvas/drawing-rectangles-to-the-canvas/2d.clearRect.basic.html": [ @@ -486637,20 +486759,12 @@ "b8366536ae5cb8de5c20e70e1377589d10e7d50f", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image-expected.txt": [ - "c3717a1dcdda44f0accf062929f9b69c5a90f97c", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image.html": [ - "1e0585ec104e89885bb86fb384497efac19e8a74", + "c1e356519b36308191954bb3acfa494500631a61", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.image.worker.js": [ - "adf6b7d580253f9a499bfa6fbd474ebeb9e81e34", + "543aaef20f201433cbfe95744b06340806519459", "testharness" ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.basic.nocontext.html": [ @@ -486669,20 +486783,12 @@ "c015002c6ada142efd66e6c0d9f75876cb46b13a", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas-expected.txt": [ - "a6e51734c4dab7d2b95c685fb86a0152a20be720", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas.html": [ - "d3c8cd636b4baa840195c21fa4e3c17154d363e9", + "daf2fd268d9003b6b14ee9c0272f506f5e7ea19f", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.crosscanvas.worker.js": [ - "f660f213d6ae3d44bff95c0dc069e3dc25017102", + "ea719d423597b1a2794e5ff51f9c25e99dd8e195", "testharness" ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.image.null.html": [ @@ -486725,84 +486831,44 @@ "31d7462aaa45cfa96dff1587e3836a9a104556fa", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic-expected.txt": [ - "97307ab61f142d5c324113c465b42c994e314750", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html": [ - "ea5adcc8fe4b934bee37082f70a3c837c7b72575", + "ae3bdb2dba553a277d52e319e70f8cda1e542360", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.worker.js": [ - "042f0c61a715bf1c4b8be0e04b88bba89c45ff48", + "903cab7174a269486a9cc1c5cc66eb09cb10f2bb", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1-expected.txt": [ - "777447d1b2d48fd2dd4434c543a3c7ac62f391b7", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html": [ - "8fcab2b0c9ab3d6fb017e66311460dd242be544b", + "953861cde8cb4ce4ba1504fe95fc6de34e4b6ca1", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.worker.js": [ - "fae7427b58d120c745870c817b4facdb4912fe25", + "f8432144cdb4d21355ac8df785636ec158a3164c", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2-expected.txt": [ - "a75eeb014714c87f0739ef8c02e1467396b15750", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html": [ - "191f0bde3e189b9ac511ae4ab1900174dbff136b", + "f475aae99a369217a40e065f23acad53433c43a5", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.worker.js": [ - "5c6c5c1c21e3fcb091df9234a14334500c9698b6", + "abf6195c48a694d3a387459a7edc506de9ba81c2", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3-expected.txt": [ - "add81f90127902138fb240e427cce23736e254d5", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html": [ - "966fac841238aa0a01248736b025c4d96ad588fc", + "2c54ad40c58ebf3c3ff69caad36195ae7d489e45", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.worker.js": [ - "8cc326b733ac8175e1ea234029d5a58721de1657", + "a1a438af1eb6d861885df634ad9b0e39e44d229f", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside-expected.txt": [ - "b5f655ffe15c5716a2f7ad893acc19aab25d31bf", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html": [ - "7fbee4db8babecaf16a63c1e41263ae03ce71ff2", + "3a7374d9d3c4c86b7d67348a47ccc24b6ca82fce", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.worker.js": [ - "85594b6370eb85db023419c7df4c1695e72048f3", + "0b2c58d52e647f357deff50ab2fc208a8a6be0d2", "testharness" ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html": [ @@ -486813,196 +486879,100 @@ "d017f08306f2bf31321fbcc41a501142c99107c2", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image-expected.txt": [ - "feed82cad32a39437b7825d82e9593de07dafc1d", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html": [ - "02ffc97632e521144b82c9a76990a0ff8b1ec859", + "ca0bb3351443ca1ef15a4bf28dc1373d273a07af", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker-expected.txt": [ - "feed82cad32a39437b7825d82e9593de07dafc1d", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.orientation.image.worker.js": [ - "e365dd6bbec9fc0d92557756794d99ca88acbae5", + "f771b226cd7c6238722f091676118f078b235022", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic-expected.txt": [ - "52a356239707438710459e7152b3029b13865479", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html": [ - "8149d8938ea2b11a9a7aae8887b149b46cc0be3b", + "8fcfb71d376c8da43dbe856eac6d9c6726bd41e1", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js": [ - "d6bad4c2240e30198424fc75c1e54aa345ea1393", + "fa094c35b4830389d717c6c6a278ff10c0c313ee", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1-expected.txt": [ - "f3c93924019a37a72c0e28f4ce07d4f5a9871a1d", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html": [ - "63d30dba51ed1ca77311e5e7b19b1b74c3b63235", + "1a9731aa08b3c27ef9b2944385f4c263f6b6ae6b", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.worker.js": [ - "b31ebcb665642f147d240d0910fe5356330a9394", + "8ca59610fec063397fec0ba7cea6c8c384665b29", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2-expected.txt": [ - "d684589bc5dc7b510ec9c963b92c60b640e3d8a7", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html": [ - "404a51d727b90dc32bff93a2f12ec25d4d6f2344", + "63b1cac13b63499b453a7635302fec8116c56a50", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.worker.js": [ - "3ab6b4068af3de97218afc4954e11eecb38517ea", + "5ac23fecd91e9df4c35fbbafcd4e11e8d46ef433", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3-expected.txt": [ - "a04cb90deb189e6a16de4b68bdfc6d6bc4a887e3", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html": [ - "70028f7b9fbf2a5d3c8c2566d2b2635b737e55ac", + "7e14e00d6f3a9ea12404a1e4e35ec32be2c07af5", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.worker.js": [ - "3ae9dc9a7aa98993df946f57aeea609d196b22df", + "2b8941a0eb162b87a2a104d7b3d022c1c171e046", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside-expected.txt": [ - "c341eb3b497f400a2d184c69cbe2389907181914", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html": [ - "7af8e2dfe19b71056ebd2832c8b3eb155989b62c", + "862a80e7dc16fe9dd3df18e4b5605b74eed4a0cc", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.worker.js": [ - "3db708229dd930f0388b8f009c8c2a95c4a6542d", + "1d6fb4b9f7d5e9e12d57dabe6e9854cb9b6cb5cf", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic-expected.txt": [ - "1e66d620f38e9d52deb7798d103ba213feeca4f3", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html": [ - "45e36a403ca9a84d329081ff062de138b3a06a93", + "ccd6ca5841a012bc91c0affc882a166f04a0dc26", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.worker.js": [ - "209427ea824be71c82098da9671f121b313fbcb4", + "1dfa11a9a84ad9ff4ad33ba063f32bacb2805ba8", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1-expected.txt": [ - "aae596490e7a97cb14fd086d5474d964a3639ffb", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html": [ - "7818db33ec304467d4c96473c1395febf30eba61", + "b5fbeec3b7399c7e330e8b1e603094bb5dbe06ae", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.worker.js": [ - "080887b105138813674613b72f4d8cf95d1bd70d", + "3e07c9f9717af923736bd05b0052167740dca9fe", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside-expected.txt": [ - "faf86597c333474c6a33bd25fee34ce2d353fd79", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html": [ - "f2fcaac9cbf7091e39f4c766674854341a56ebc4", + "1805608d1ec242e5efb9b821ca82db5d42ce9728", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.worker.js": [ - "6c43646e1e9bfae724ad4ac90d88e97887f07c72", + "e2cb046d2883c31e9c11e10e158e4f7750699b41", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic-expected.txt": [ - "2f7779b6228696bf93e69bb80f85901e821dd979", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html": [ - "813f7f3a581abca6ecc753fb2c95f47318b38142", + "259c5a5d1780884e1f72d286b103dc58329c2b81", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.worker.js": [ - "d9f53a00eb414a6693e0d94dd10796a4723e4375", + "aa886ef9610cf152feb25152a0b3a13b108da455", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1-expected.txt": [ - "369a37f29e6960678ee966e8b87970a2f1020af7", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html": [ - "6102405784f0d252148f0df1988f72db74705c33", + "373fafea8a66ad6a4cfd6837c95cb572c348ecd6", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.worker.js": [ - "92c39e2f967b75c7a8cf62385b3df256b9663337", + "4fbedca9e73441c70e67e3273f303518103066c4", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside-expected.txt": [ - "8b87770d793a1e4f99b8f35a8297a44c59dcebbe", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html": [ - "67c4061c753af15266fd79c48145727b2da55975", + "1ef52dd8d108466f79bba52788706dac0b3f0654", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.worker.js": [ - "dd6d243ba5a46b44c5af47907532e03e66d8ff21", + "50a15179897ec0fea1ff00283cba81972d1feb61", "testharness" ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.case.html": [ @@ -487013,20 +486983,12 @@ "1f7557e483f0168a272e36073d160a58b21f40ba", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty-expected.txt": [ - "d9664a739e475c6ef9c97828cb3d889222e17e81", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty.html": [ - "426c069a446ca4337e100884c2bad2e681f96cb7", + "9f40fe695777d73f27bb84e7de9fe406becd31d2", "testharness" ], - "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty.worker-expected.txt": [ - "92bc07d144d736bc4cfdadde14cec3dbdfe10f88", - "support" - ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.empty.worker.js": [ - "5338663f9f5e33b8d51e6a4a0d0562bbef1acae6", + "a31afa7139b7f961ea07f16576bee0c334c38395", "testharness" ], "offscreen-canvas/fill-and-stroke-styles/2d.pattern.repeat.null.html": [ @@ -489121,100 +489083,52 @@ "606e852a1f36ad8c51e2d52266dd02b84e77c777", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.alpha-expected.txt": [ - "51d72c983826008bd4ef282ab82d628267e4fe3d", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.alpha.html": [ - "205e32de01c6b012989b042c4f8627dc69b93ed0", + "25ce1c1b107ba3ea2639e3e51c76ee5d0c69282a", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.alpha.worker-expected.txt": [ - "51d72c983826008bd4ef282ab82d628267e4fe3d", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.alpha.worker.js": [ - "b40be65f5cd34c533c03d353d428af74504ccf0a", + "17fc5a7dad337eef680fb37bf4a7e744bac95c1e", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.basic-expected.txt": [ - "330625fc4dba9b309ea34ad17e2c1567c54cc582", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.basic.html": [ - "9f16324a861413fbec0b8deb82a88b01e172147c", + "e1198acd10c18ee07ed4b9b0ed4da00f590b51a2", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.basic.worker-expected.txt": [ - "330625fc4dba9b309ea34ad17e2c1567c54cc582", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.basic.worker.js": [ - "e55f2d64c47f06bb0a84dbb812ded32c5824b361", + "45126a218f95ae28a35d318615b57a40af0ec7cb", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.scale-expected.txt": [ - "617393d7a140c889cf4f707bf48c20101653e5a3", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.scale.html": [ - "a1197f21828ca1924a76a12691bb6fadb1fdbc91", + "7f3057b60220d23f4e141e1a29e4ea72621385dd", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.scale.worker-expected.txt": [ - "617393d7a140c889cf4f707bf48c20101653e5a3", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.scale.worker.js": [ - "e1d6198f344e30b7c71137f0a63e66b2c82a3d34", + "9ca1d7948a05eb33550431f6744c7e5b18e7ea8e", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.section-expected.txt": [ - "c500dd6374a6b9e7e92f1eaf682764cf0ec590df", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.section.html": [ - "b3f9ab17f04dffa76bda6f8d7062ea7d12ba8743", + "1abc7558e12134821e008209481ebb6418953428", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.section.worker-expected.txt": [ - "c500dd6374a6b9e7e92f1eaf682764cf0ec590df", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.section.worker.js": [ - "a278f4666dc8c6e4c47b4a4c7f9afa2de9e81536", + "3b4deaa657d925f5ac3cb126fd34650ce2846e66", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.1-expected.txt": [ - "874688f6bd51abf37056e8c58c326adf82f3ca02", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.transparent.1.html": [ - "05c125a376fbc7815743913753f586b442a4c559", + "1d54ae599b7edcf3e92abdcc86ca97798a73c03a", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.1.worker-expected.txt": [ - "874688f6bd51abf37056e8c58c326adf82f3ca02", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.transparent.1.worker.js": [ - "599140ec83aa04a7e0d00b17ae000020968b36d1", + "76dc8ff58f641b384f88580e4cb0690c06920c86", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.2-expected.txt": [ - "96bf5c79d66f06f4c723810940c89e4a409b6eb7", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.transparent.2.html": [ - "32fa486b3f489622448cfef9fd96373220c9a2e4", + "2e2230b02bf56867978265a7da0176834400b46a", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.image.transparent.2.worker-expected.txt": [ - "96bf5c79d66f06f4c723810940c89e4a409b6eb7", - "support" - ], "offscreen-canvas/shadows/2d.shadow.image.transparent.2.worker.js": [ - "5b8862c0c8ae56721479bcc210efbebd644cee63", + "5f54763d129f42005cd64d185845bbebe0bea366", "testharness" ], "offscreen-canvas/shadows/2d.shadow.offset.negativeX.html": [ @@ -489257,68 +489171,36 @@ "f4c7c5bad8fd52496d6fefd091d90d1e4cae7c69", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.alpha-expected.txt": [ - "1cedb943de842646c80abf8d350d2706d5e4a297", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.alpha.html": [ - "3e55eb40003a92d6f01cfc96a6c32f4f211ed46c", + "3f11789c88adbec169a918567b11b0d2f8e2b159", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.alpha.worker-expected.txt": [ - "1cedb943de842646c80abf8d350d2706d5e4a297", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.alpha.worker.js": [ - "fc6fdbeb03e38ecd012b40777ea2800d2e37af59", + "616169f823cf10be0fe4fcd59317ad17c1446f07", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.basic-expected.txt": [ - "f4e0bf10073f93c4d500e85f39b0eb942420b61a", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.basic.html": [ - "d70f2fce6b3058ba2e391f87f106fcf2d68e0367", + "8c4ff934b93315692edaf21d78d1be3f7e9cf7d2", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.basic.worker-expected.txt": [ - "f4e0bf10073f93c4d500e85f39b0eb942420b61a", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.basic.worker.js": [ - "5c2a7c97f94da7ebcfc692f47b6cba20f74ad570", + "91e9fe9f1808566f7f4e8b6472a79056493de736", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1-expected.txt": [ - "f7660f8b6e3be82a0719779b7ad5eb7b3eceef4b", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1.html": [ - "29103ad6214f41ff12195a9554ae9e1616fd4918", + "26b50578c1e3801cb57c9e468614116f7f26b2ee", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1.worker-expected.txt": [ - "f7660f8b6e3be82a0719779b7ad5eb7b3eceef4b", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.transparent.1.worker.js": [ - "bf8781b3eda120c7f3b553a65e5f2cd01d1c456e", + "70ca9a8128dac8baf966080494225fe8677bab03", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2-expected.txt": [ - "c504a75f040466e0cf0baa5411ac85bade0eb074", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2.html": [ - "6509bae1f55867618e6cbac98e1eadce35e158f3", + "983b9ff1fac2ecde4f869e9c77ec7d496fd8af7c", "testharness" ], - "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2.worker-expected.txt": [ - "c504a75f040466e0cf0baa5411ac85bade0eb074", - "support" - ], "offscreen-canvas/shadows/2d.shadow.pattern.transparent.2.worker.js": [ - "8a2b7165e78e35b6e15ece3fbce50cb5e521f51a", + "db88180fc30d5758b99c891586fc9cbfc6218b54", "testharness" ], "offscreen-canvas/shadows/2d.shadow.stroke.basic.html": [ @@ -490646,7 +490528,7 @@ "support" ], "offscreen-canvas/tools/tests2d.yaml": [ - "6662668f37397145e93eee51e0e4be80f170278f", + "645d6847bdf670ff9e2adb4258a675c8a3d2d3a4", "support" ], "offscreen-canvas/transformations/2d.transformation.getTransform.html": [ @@ -492230,7 +492112,7 @@ "testharness" ], "pointerevents/pointerevent_pointercapture_in_frame-expected.txt": [ - "094b226e97b0d20e700116d3159b76acd5f2cd93", + "4d3d205c84983950b3a0cdee366d51ca0427f592", "support" ], "pointerevents/pointerevent_pointercapture_in_frame.html": [ @@ -492597,10 +492479,6 @@ "207d477697d823d6611b4d8dc6681b3e2fc90a73", "testharness" ], - "portals/csp/frame-ancestors.sub-expected.txt": [ - "b2bc79cd4f273400334a15c17029f8f0f20c23a6", - "support" - ], "portals/csp/frame-ancestors.sub.html": [ "57f1eb3d88c7b27a1ab82e66b06a7e7511bb0b1d", "testharness" @@ -505850,27 +505728,27 @@ "support" ], "remote-playback/cancel-watch-availability.html": [ - "e4b633066a4c0a257adc30996c8424a37b6a1b20", + "d83c8cecb006d738be1280f44d7d8d302f85003f", "testharness" ], "remote-playback/disable-remote-playback-cancel-watch-availability-throws.html": [ - "fdcc734346ed5825f572536877175f2c6dbddda5", + "bdd35d8101bdf0e4ae96e63de9f51b1ba6a7b5d4", "testharness" ], "remote-playback/disable-remote-playback-prompt-throws.html": [ - "7ddc2ad13f3691e1b40a89bf0494b06c6da8cb5d", + "076b1630606f658be2ee574fba2fb15d9f6741c0", "testharness" ], "remote-playback/disable-remote-playback-watch-availability-throws.html": [ - "3c21f017b48293f778eca1061a7215187fda9eac", + "1cec5278d522afd986a772eb3fffe11650b6b97d", "testharness" ], "remote-playback/idlharness.window.js": [ - "73bc998f7433be4ea77fc18a62c7445d9688d907", + "ba40f199633165111ab2bfd37624eb94871052d6", "testharness" ], "remote-playback/watch-availability-initial-callback.html": [ - "851558b06f211ac2cda5d38b1d447a2e0475586d", + "352321b06ae66c5a3e31c1d3d7cf40a5e3b4c460", "testharness" ], "reporting/META.yml": [ @@ -505890,7 +505768,7 @@ "testharness" ], "reporting/idlharness.any-expected.txt": [ - "55b27a0ceb464800e872eda9f44207f755d5beea", + "55ab8a9bd30bc2473b9faa72c0baf27e7dfdf298", "support" ], "reporting/idlharness.any.js": [ @@ -505898,7 +505776,7 @@ "testharness" ], "reporting/idlharness.any.worker-expected.txt": [ - "ce631f117aeb43da8384f991a9305c63bf527223", + "e8111491acd42a358ea2787985a7dd4e9d71b237", "support" ], "reporting/idlharness.window-expected.txt": [ @@ -506718,7 +506596,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "2c1724b7592eb1d6e66177544998abbec70fbfe6", + "be86dedd4d8877dcb01ade039c95cbb8f7acc99f", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -506818,7 +506696,7 @@ "support" ], "resources/testharness.js": [ - "f289e7797201d7d9fa569c2864649571bd50b54c", + "2c3664dfa6ab5518019dc6f2c27e275bb6a62a16", "support" ], "resources/testharness.js.headers": [ @@ -508654,7 +508532,7 @@ "testharness" ], "service-workers/service-worker/clients-matchall-client-types.https-expected.txt": [ - "2b0c2f8d3306460bc7a0131586e7ea90077767be", + "02cc3314f319289aa3ebae07632c6995fbc101e2", "support" ], "service-workers/service-worker/clients-matchall-client-types.https.html": [ @@ -508966,7 +508844,7 @@ "testharness" ], "service-workers/service-worker/fetch-request-xhr.https-expected.txt": [ - "a35475540690e3137be8b4f797b6c89eacea7789", + "0e1253a8bbebaad9196c3a869b940e2894d1113e", "support" ], "service-workers/service-worker/fetch-request-xhr.https.html": [ @@ -509265,6 +509143,10 @@ "417aa4ebec8380ec778bbe42f3ee8fb45649292f", "testharness" ], + "service-workers/service-worker/opaque-script.https.html": [ + "7d2121855dfa17649b81fd96aad03d93e85be22b", + "testharness" + ], "service-workers/service-worker/performance-timeline.https.html": [ "1fe19da53be6c460cae5f069794bbdee3f4a0da8", "testharness" @@ -510241,6 +510123,22 @@ "f31ac9b5c4ce372b182d53dd6690f1c3b498ecd1", "support" ], + "service-workers/service-worker/resources/opaque-script-frame.html": [ + "a57aacec7c6f32d9c321b99057032947c877e4b8", + "support" + ], + "service-workers/service-worker/resources/opaque-script-large.js": [ + "7e1c598efc5cf15f23789fefa0993e1d07ac214e", + "support" + ], + "service-workers/service-worker/resources/opaque-script-small.js": [ + "8b890985752fd01d47d8cb553d6dad945dbc00bb", + "support" + ], + "service-workers/service-worker/resources/opaque-script-sw.js": [ + "4d882c617d8dc6b790a51b82f3edeb65e7f18d22", + "support" + ], "service-workers/service-worker/resources/other.html": [ "b9f3504387722c4583a0904cb7b7f7a4f9706b71", "support" @@ -512590,7 +512488,7 @@ "support" ], "streams/readable-streams/async-iterator.any-expected.txt": [ - "b865fc8ee80255167091ee54605e5b0817929d3e", + "be95dffb73bad9bf995707cbda517703cdd24ddc", "support" ], "streams/readable-streams/async-iterator.any.js": [ @@ -512598,15 +512496,15 @@ "testharness" ], "streams/readable-streams/async-iterator.any.serviceworker-expected.txt": [ - "b865fc8ee80255167091ee54605e5b0817929d3e", + "be95dffb73bad9bf995707cbda517703cdd24ddc", "support" ], "streams/readable-streams/async-iterator.any.sharedworker-expected.txt": [ - "b865fc8ee80255167091ee54605e5b0817929d3e", + "be95dffb73bad9bf995707cbda517703cdd24ddc", "support" ], "streams/readable-streams/async-iterator.any.worker-expected.txt": [ - "b865fc8ee80255167091ee54605e5b0817929d3e", + "be95dffb73bad9bf995707cbda517703cdd24ddc", "support" ], "streams/readable-streams/bad-strategies.any.js": [ @@ -512678,7 +512576,7 @@ "testharness" ], "streams/readable-streams/general.any-expected.txt": [ - "0d1c378978b2ba8a48877c4107a6613b5615a322", + "f7b51c858917c4db94bcc6fd964f7222a7568b0e", "support" ], "streams/readable-streams/general.any.js": [ @@ -512686,15 +512584,15 @@ "testharness" ], "streams/readable-streams/general.any.serviceworker-expected.txt": [ - "0d1c378978b2ba8a48877c4107a6613b5615a322", + "f7b51c858917c4db94bcc6fd964f7222a7568b0e", "support" ], "streams/readable-streams/general.any.sharedworker-expected.txt": [ - "0d1c378978b2ba8a48877c4107a6613b5615a322", + "f7b51c858917c4db94bcc6fd964f7222a7568b0e", "support" ], "streams/readable-streams/general.any.worker-expected.txt": [ - "0d1c378978b2ba8a48877c4107a6613b5615a322", + "f7b51c858917c4db94bcc6fd964f7222a7568b0e", "support" ], "streams/readable-streams/patched-global.any-expected.txt": [ @@ -512722,7 +512620,7 @@ "testharness" ], "streams/readable-streams/tee.any-expected.txt": [ - "0ad673751f78d51577e9d92e2bc76552daf05a51", + "7fb3f0f3c3da685385830c599d2165be1212ff49", "support" ], "streams/readable-streams/tee.any.js": [ @@ -512730,15 +512628,15 @@ "testharness" ], "streams/readable-streams/tee.any.serviceworker-expected.txt": [ - "0ad673751f78d51577e9d92e2bc76552daf05a51", + "7fb3f0f3c3da685385830c599d2165be1212ff49", "support" ], "streams/readable-streams/tee.any.sharedworker-expected.txt": [ - "0ad673751f78d51577e9d92e2bc76552daf05a51", + "7fb3f0f3c3da685385830c599d2165be1212ff49", "support" ], "streams/readable-streams/tee.any.worker-expected.txt": [ - "0ad673751f78d51577e9d92e2bc76552daf05a51", + "7fb3f0f3c3da685385830c599d2165be1212ff49", "support" ], "streams/readable-streams/templated.any.js": [ @@ -512841,50 +512739,18 @@ "ed04b3c0a17fcd9902054e0d844171b9baa41c18", "testharness" ], - "streams/writable-streams/brand-checks.any-expected.txt": [ - "bd75d6787a2ffbb88a6cfb3ea018def0366ed7ea", - "support" - ], "streams/writable-streams/brand-checks.any.js": [ "17179e7936eda23a284e447bf9b877270016931d", "testharness" ], - "streams/writable-streams/brand-checks.any.serviceworker-expected.txt": [ - "bd75d6787a2ffbb88a6cfb3ea018def0366ed7ea", - "support" - ], - "streams/writable-streams/brand-checks.any.sharedworker-expected.txt": [ - "bd75d6787a2ffbb88a6cfb3ea018def0366ed7ea", - "support" - ], - "streams/writable-streams/brand-checks.any.worker-expected.txt": [ - "bd75d6787a2ffbb88a6cfb3ea018def0366ed7ea", - "support" - ], "streams/writable-streams/byte-length-queuing-strategy.any.js": [ "5edd41cc31d8d76d2cc91d7c5b2e850dc9ee43f1", "testharness" ], - "streams/writable-streams/close.any-expected.txt": [ - "1ec4c49d5b6830bb7aa0f3bd7bc9fa723fdd7e9f", - "support" - ], "streams/writable-streams/close.any.js": [ "0762b83e5d1476c5e70d89957e784fc9d2f80cd0", "testharness" ], - "streams/writable-streams/close.any.serviceworker-expected.txt": [ - "1ec4c49d5b6830bb7aa0f3bd7bc9fa723fdd7e9f", - "support" - ], - "streams/writable-streams/close.any.sharedworker-expected.txt": [ - "1ec4c49d5b6830bb7aa0f3bd7bc9fa723fdd7e9f", - "support" - ], - "streams/writable-streams/close.any.worker-expected.txt": [ - "1ec4c49d5b6830bb7aa0f3bd7bc9fa723fdd7e9f", - "support" - ], "streams/writable-streams/constructor.any-expected.txt": [ "408fdc9f5c05ed1571438cc6197bc5e34a7a7992", "support" @@ -512922,7 +512788,7 @@ "testharness" ], "streams/writable-streams/properties.any-expected.txt": [ - "8a7f4cbe4b06d1fe3a541e9443b59cb08bce36eb", + "0f5ae376b2a4a05a01690bbe9b0d462e2b8d6374", "support" ], "streams/writable-streams/properties.any.js": [ @@ -512930,15 +512796,15 @@ "testharness" ], "streams/writable-streams/properties.any.serviceworker-expected.txt": [ - "8a7f4cbe4b06d1fe3a541e9443b59cb08bce36eb", + "0f5ae376b2a4a05a01690bbe9b0d462e2b8d6374", "support" ], "streams/writable-streams/properties.any.sharedworker-expected.txt": [ - "8a7f4cbe4b06d1fe3a541e9443b59cb08bce36eb", + "0f5ae376b2a4a05a01690bbe9b0d462e2b8d6374", "support" ], "streams/writable-streams/properties.any.worker-expected.txt": [ - "8a7f4cbe4b06d1fe3a541e9443b59cb08bce36eb", + "0f5ae376b2a4a05a01690bbe9b0d462e2b8d6374", "support" ], "streams/writable-streams/reentrant-strategy.any.js": [ @@ -515970,7 +515836,7 @@ "support" ], "tools/ci/azure/install_chrome.yml": [ - "6bd5c2334ad4e3e4d5d6faaf8005f4e0b44cf1fe", + "fd650e80aaad309c8e983274d2b823bba91b1fb1", "support" ], "tools/ci/azure/install_edge.yml": [ @@ -515998,7 +515864,7 @@ "support" ], "tools/ci/azure/safari-technology-preview.rb": [ - "a3772b75e462194eb0de5ea2c7532a8248ec3d79", + "2d4912abbff674291e4e9497b0a37b6c6a9989c8", "support" ], "tools/ci/azure/system_info.yml": [ @@ -516230,7 +516096,7 @@ "support" ], "tools/manifest/sourcefile.py": [ - "800d1f981cc3b8a924351ada9ac303e300546474", + "2131c703e04dcbe8de3993df3123d8a342a22e95", "support" ], "tools/manifest/testpaths.py": [ @@ -520370,7 +520236,7 @@ "support" ], "tools/webdriver/webdriver/client.py": [ - "0c5bbff5629868fdc48a1a41cf882fabe5617c1b", + "cf4c5fd35fd98bb54ba248d1c1c31590310727ed", "support" ], "tools/webdriver/webdriver/error.py": [ @@ -520457,10 +520323,6 @@ "93301dd86b4ffe202902a492204eba6537fb50d5", "support" ], - "tools/wptrunner/.pytest_cache/.gitignore": [ - "c0f20ca787a7dd7347545b242857fd69e6ef2409", - "support" - ], "tools/wptrunner/LICENSE": [ "45896e6be2bd51f4b78e9703caefb9b672e10a55", "support" @@ -520594,11 +520456,11 @@ "support" ], "tools/wptrunner/wptrunner/browsers/firefox.py": [ - "b6ee0f4998e9a2189cfca99b3cce1a6b11ea858c", + "641e0daa89519eabb6d958e22334d69c075547e9", "support" ], "tools/wptrunner/wptrunner/browsers/firefox_android.py": [ - "fee528071f68843ab056f513295146685f8f78f4", + "d6c8c4796615c1d33f15eea861defe25d78df2ee", "support" ], "tools/wptrunner/wptrunner/browsers/ie.py": [ @@ -520622,7 +520484,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/servodriver.py": [ - "2953de18174ef75d505db0b8d518fe3339f7065e", + "02b796b7560385cd00902bbfc1b361a542249f85", "support" ], "tools/wptrunner/wptrunner/browsers/webkit.py": [ @@ -520682,7 +520544,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorservo.py": [ - "9eebfa59febf991bd41db25f2b02ea4c8c00195e", + "2b8e865fa9bd1f0f62a1b9cbd6f79ffd0bcb8d46", "support" ], "tools/wptrunner/wptrunner/executors/executorservodriver.py": [ @@ -520690,7 +520552,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executorwebdriver.py": [ - "9b5f39764025ebd912f9fd080ad05dd0deea827c", + "0b329210fc546f9ee50a8a4d0ae02133e3446106", "support" ], "tools/wptrunner/wptrunner/executors/executorwebkit.py": [ @@ -520781,6 +520643,10 @@ "aafc7d52250f62fdcd7025858f2273290c77d49e", "support" ], + "tools/wptrunner/wptrunner/process.py": [ + "26e11ddfc8758e95d7f5048596ab8cae4f4bb546", + "support" + ], "tools/wptrunner/wptrunner/products.py": [ "abd84094bb33dbd13b3594a7acbe8467512a99ce", "support" @@ -520854,7 +520720,7 @@ "support" ], "tools/wptrunner/wptrunner/webdriver_server.py": [ - "162ffae3fc93aeeb29a2535e829af45b9e15c1f3", + "7ee1911727652b31aabf3556ee82543afa0c3b32", "support" ], "tools/wptrunner/wptrunner/wptcommandline.py": [ @@ -521061,6 +520927,10 @@ "1b723b7bb3c5cebc0701e2393e334a1e99ce2ef3", "testharness" ], + "trusted-types/DOMParser-parseFromString-regression.tentative.https.html": [ + "30986e45d2671caec84879314b43891664dd10ae", + "testharness" + ], "trusted-types/DOMParser-parseFromString.tentative.html": [ "2dfc37686bca15431c216a50d29f9f9eed2782e0", "testharness" @@ -521146,7 +521016,7 @@ "testharness" ], "trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [ - "8608bcc24fed0fb050925bd52830db38082ae3b1", + "a78b3dbf0fd7a9532a45957970076cce16819231", "testharness" ], "trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html": [ @@ -521265,6 +521135,22 @@ "1bc33add09b4b34ce2cba21f488f8ed53345a27a", "support" ], + "trusted-types/empty-default-policy-report-only.tentative.html": [ + "1ba9c5ec18e5da33725aaa9499977930563c4ba9", + "testharness" + ], + "trusted-types/empty-default-policy-report-only.tentative.html.headers": [ + "fa87952ae486b3a902eca0257eadace8e25e881f", + "support" + ], + "trusted-types/empty-default-policy.tentative.html": [ + "2d3a10addbc25221babc37550e36acb8c7252a4b", + "testharness" + ], + "trusted-types/empty-default-policy.tentative.html.headers": [ + "1bc33add09b4b34ce2cba21f488f8ed53345a27a", + "support" + ], "trusted-types/eval-csp-no-tt.tentative.html": [ "e8ed57708ef158d36cff2c0d0883910c84bb75e8", "testharness" @@ -521302,7 +521188,7 @@ "support" ], "trusted-types/support/helper.sub.js": [ - "d13ad567a726f39299a7e7f58aeffec4ba90a908", + "20f56c3cbc7af094a7fd8db5d73b546804f8e9d0", "support" ], "trusted-types/support/navigation-report-only-support.html": [ @@ -521325,10 +521211,6 @@ "4079f7e9c7933cf9ee195fe0e7a54e0f56f184ab", "support" ], - "trusted-types/trusted-types-createHTMLDocument.tentative-expected.txt": [ - "000dc2bbc56f39e6adc7a90b5a76796434278818", - "support" - ], "trusted-types/trusted-types-createHTMLDocument.tentative.html": [ "6ab5f42d5ffd82ccc3bf5c9ea8916c2b2f810987", "testharness" @@ -525950,7 +525832,7 @@ "testharness" ], "wasm/webapi/contenttype.any-expected.txt": [ - "e224d4c5bf661f74b73e624843c6f8466aede65e", + "60a27f3ae95d4084d68c498dba2590a727aa2a29", "support" ], "wasm/webapi/contenttype.any.js": [ @@ -525958,15 +525840,15 @@ "testharness" ], "wasm/webapi/contenttype.any.serviceworker-expected.txt": [ - "e224d4c5bf661f74b73e624843c6f8466aede65e", + "60a27f3ae95d4084d68c498dba2590a727aa2a29", "support" ], "wasm/webapi/contenttype.any.sharedworker-expected.txt": [ - "e224d4c5bf661f74b73e624843c6f8466aede65e", + "60a27f3ae95d4084d68c498dba2590a727aa2a29", "support" ], "wasm/webapi/contenttype.any.worker-expected.txt": [ - "e224d4c5bf661f74b73e624843c6f8466aede65e", + "60a27f3ae95d4084d68c498dba2590a727aa2a29", "support" ], "wasm/webapi/empty-body.any-expected.txt": [ @@ -526066,7 +525948,7 @@ "testharness" ], "web-animations/animation-model/animation-types/addition-per-property-expected.txt": [ - "e86adfcc4b057135aac3056709f1d34083c2582a", + "665b9fb2227ee2b685c9e9a0fab39f8702a807aa", "support" ], "web-animations/animation-model/animation-types/addition-per-property.html": [ @@ -526078,7 +525960,7 @@ "testharness" ], "web-animations/animation-model/animation-types/interpolation-per-property-expected.txt": [ - "2f6eb6ada35a39b55ec87108c1f163f91384832b", + "b17015724a58e39da178dbc17300a7d8ed29ad0d", "support" ], "web-animations/animation-model/animation-types/interpolation-per-property.html": [ @@ -526182,7 +526064,7 @@ "testharness" ], "web-animations/interfaces/Animatable/getAnimations-expected.txt": [ - "eef153dad65b81bf1ead288523c0b83b205d9a6c", + "73798bbe9d93e6273ddb3df7fce52e9bd58a640c", "support" ], "web-animations/interfaces/Animatable/getAnimations.html": [ @@ -526282,7 +526164,7 @@ "testharness" ], "web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt": [ - "c247e2732bad5905bfe98076cfbb961329d2540c", + "dc321939a9040be52f84b7b4bc1ea2116904d7cf", "support" ], "web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html": [ @@ -526722,7 +526604,7 @@ "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "2da7ca91078aa5ec8232f5347fb276618dad3c3c", + "0e0f1a771394570747117980c824c133ca3b060d", "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https-expected.txt": [ @@ -526734,11 +526616,11 @@ "manual" ], "web-nfc/NDEFWriter_push.https-expected.txt": [ - "7c6b03b096f78c198b0d95dd4f6b87bc62ed011e", + "2b865d488d162b408d186028f09fabfbc2aabb32", "support" ], "web-nfc/NDEFWriter_push.https.html": [ - "cb6b3941410035c5c5736e13d59fbbfb85f0d4cc", + "bf7c1f86ad0b4fdf066b4bc4584f9409d840d823", "testharness" ], "web-nfc/OWNERS": [ @@ -528894,15 +528776,15 @@ "wdspec" ], "webdriver/tests/take_element_screenshot/__init__.py": [ - "9de8792460797f4a31ee50d112c7132a2c2714ad", + "9a82cc48eab7993dcd6588d89b5aae9ed4ebfc82", "support" ], "webdriver/tests/take_element_screenshot/iframe.py": [ - "242122f0b5e7359c364a8aa1da345fc3da15acf1", + "83f55deff753a4525839d3c0675acfb459f64395", "wdspec" ], "webdriver/tests/take_element_screenshot/screenshot.py": [ - "fd460b656ae307a289174f9180ecc9ed23f0da07", + "50d33a266db75f0fc918ac5fa6d1edc6e548385f", "wdspec" ], "webdriver/tests/take_element_screenshot/user_prompts.py": [ @@ -528910,11 +528792,11 @@ "wdspec" ], "webdriver/tests/take_screenshot/__init__.py": [ - "c07f8d167030d03abbb263ef08d8846bb7a71eba", + "f3001d946df56e58c4e3fa1319db12bf29f3e341", "support" ], "webdriver/tests/take_screenshot/iframe.py": [ - "4cf8ad06b56d8f44af06550af4c4a1b7715b908b", + "601c039d56de0aa2937ac73675ba59792cbdcd17", "wdspec" ], "webdriver/tests/take_screenshot/screenshot.py": [ @@ -528930,7 +528812,7 @@ "support" ], "webgpu/cts.html": [ - "6099f7318f12dc784f4009f6e659df4247afba61", + "5c529e90401ce3523ab210739da616047c93c8eb", "testharness" ], "webgpu/framework/allowed_characters.js": [ @@ -529038,7 +528920,7 @@ "support" ], "webgpu/framework/version.js": [ - "9d1c0810c9d3c3dde6de9182c6aec0e12a5f70e7", + "8dd830276b92cd74c0a911ff5e328cbfb50e4463", "support" ], "webgpu/runtime/helper/options.js": [ @@ -529105,6 +528987,10 @@ "ae92995aa6b73eadd52b3342ff6737b91b413431", "support" ], + "webgpu/suites/cts/copyImageBitmapToTexture.spec.js": [ + "c9b07e83a81bad7b809c8b80f754ba3dbbe1f0e1", + "support" + ], "webgpu/suites/cts/examples.spec.js": [ "e57de1bfc8d9cf0c8d2264b77e68b56c6c2659f8", "support" @@ -529118,11 +529004,11 @@ "support" ], "webgpu/suites/cts/gpu_test.js": [ - "67429b9a2551628ab3c8623570dfdfb79104d385", + "cf52a6cacf82581d3d04aa28f01d057c8118957d", "support" ], "webgpu/suites/cts/index.js": [ - "9fb8395d5b52521d3bf392410fe7cd67c64afe03", + "e566792357a874aa3fb106479179c26c0357c188", "support" ], "webgpu/suites/cts/resource_init/sampled_texture_clear.spec.js": [ @@ -530010,7 +529896,7 @@ "support" ], "webrtc/RTCPeerConnection-addIceCandidate-timing.https-expected.txt": [ - "ca6341dca4d65ca8328cbf052dff410238656901", + "16449ba0d5cd294c827afcb3b2ea99ea08478b8e", "support" ], "webrtc/RTCPeerConnection-addIceCandidate-timing.https.html": [ @@ -530498,7 +530384,7 @@ "testharness" ], "webrtc/idlharness.https.window-expected.txt": [ - "5edbe2136c0019abdbd8a1d1d1e3ee6cecdec0d8", + "0d03127c8e99240d4a4dcf4e342b06ddc89d7825", "support" ], "webrtc/idlharness.https.window.js": [ @@ -531910,7 +531796,7 @@ "testharness" ], "webstorage/storage_builtins-expected.txt": [ - "458ce31ac89b68e6b8d875bbf082fb1b224d8b5b", + "b5f739b304cffb7945590afd7a83ce19063a1fcf", "support" ], "webstorage/storage_builtins.html": [ @@ -535558,7 +535444,7 @@ "testharness" ], "webxr/xrInputSource_add_remove.https.html": [ - "4c50670c70ec87754a777cc0bcfe8272e794ca07", + "33264ddd68ab09e2ed6a596614116bd1225f2665", "testharness" ], "webxr/xrInputSource_emulatedPosition.https.html": [ @@ -536245,10 +536131,6 @@ "5c38505b6c86594ad82fa87c701ba8e619299344", "support" ], - "workers/constructors/SharedWorker/null-arguments-expected.txt": [ - "7b56d68f76dd448ef1953ee9220a3c5e4b1c2deb", - "support" - ], "workers/constructors/SharedWorker/null-arguments.html": [ "c516eed21546c27bc36533a5dcaa8bbb5af893ea", "testharness" @@ -536570,7 +536452,7 @@ "support" ], "workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt": [ - "23667a0f61a7985e3ceef4cefac4f64eb278e53e", + "37c3e3bb5cc2bb6abbd0637283bfe2dcf24bc9e1", "support" ], "workers/interfaces/SharedWorkerGlobalScope/onconnect.html": [ @@ -537093,10 +536975,6 @@ "48751dbe03bb0f7de23e26911ac7af5733c7d5f1", "support" ], - "workers/name-property-expected.txt": [ - "30d73f9b9d4b6e9a4e510d87a55f11f193eee631", - "support" - ], "workers/name-property.html": [ "ccc2a9de3a9c59acc19eefb247b1c92b78a52941", "testharness" @@ -537513,10 +537391,6 @@ "98e34cc3a69a17f31cf5b890744e5f9ca52559b5", "testharness" ], - "workers/shared-worker-name-via-options-expected.txt": [ - "f2bdb115de3cb52ff71816d0fc27dfd99900ab1d", - "support" - ], "workers/shared-worker-name-via-options.html": [ "1914d66db7489f6306c4365a4d7b7b9fb59fe00e", "testharness" @@ -538522,7 +538396,7 @@ "testharness" ], "xhr/open-during-abort-processing-expected.txt": [ - "83feafcec7c6fe4e4829a7889310006922f72a99", + "b1696850eba5979b66772b094433b9d988299ca0", "support" ], "xhr/open-during-abort-processing.htm": [
diff --git a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/sequence-conversion-expected.txt b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/sequence-conversion-expected.txt index 0f5f687..556a16b 100644 --- a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/sequence-conversion-expected.txt +++ b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/sequence-conversion-expected.txt
@@ -1,10 +1,10 @@ This is a testharness.js-based test. PASS An array PASS A generator -FAIL An array with an overridden Symbol.iterator assert_array_equals: property 0, expected 6 but got 1 +FAIL An array with an overridden Symbol.iterator assert_array_equals: expected property 0 to be 6 but got 1 (expected array [6, 7] got [1, 2]) PASS An object with an overriden Symbol.iterator -FAIL An array with an overridden Symbol.iterator on the prototype assert_array_equals: property 0, expected 11 but got 1 -FAIL An array with an overridden %ArrayIterator%.prototype.next assert_array_equals: property 0, expected 8 but got 1 +FAIL An array with an overridden Symbol.iterator on the prototype assert_array_equals: expected property 0 to be 11 but got 1 (expected array [11, 12] got [1, 2]) +FAIL An array with an overridden %ArrayIterator%.prototype.next assert_array_equals: expected property 0 to be 8 but got 1 (expected array [8, 9] got [1, 2]) PASS A holey array with fallback to an accessor on the prototype PASS A string array in sequence<sequence> or record Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt index 854efe3..9c767ace 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-fonts/animations/font-variation-settings-interpolation-expected.txt
@@ -176,30 +176,30 @@ PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.7) should be ['aaaa' 7, 'bbbb' 17, 'cccc' 27] PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (1.5) should be ['aaaa' 15, 'bbbb' 25, 'cccc' 35] -FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: property 0, expected "\"aaaa\" -15" but got "\"aaaa\" 30" -FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_array_equals: property 0, expected "\"aaaa\" 0" but got "\"aaaa\" 30" -FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: property 0, expected "\"aaaa\" 9" but got "\"aaaa\" 30" -FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: property 0, expected "\"aaaa\" 21" but got "\"aaaa\" 30" +FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: expected property 0 to be "\"aaaa\" -15" but got "\"aaaa\" 30" (expected array ["\"aaaa\" -15", "\"bbbb\" 5", "\"cccc\" 25"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_array_equals: expected property 0 to be "\"aaaa\" 0" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: expected property 0 to be "\"aaaa\" 9" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 9", "\"bbbb\" 13", "\"cccc\" 17"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: expected property 0 to be "\"aaaa\" 21" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 21", "\"bbbb\" 17", "\"cccc\" 13"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10] -FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: property 0, expected "\"aaaa\" 45" but got "\"aaaa\" 30" -FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: property 0, expected "\"aaaa\" -15" but got "\"aaaa\" 30" -FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_array_equals: property 0, expected "\"aaaa\" 0" but got "\"aaaa\" 30" -FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: property 0, expected "\"aaaa\" 9" but got "\"aaaa\" 30" -FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: property 0, expected "\"aaaa\" 21" but got "\"aaaa\" 30" +FAIL CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: expected property 0 to be "\"aaaa\" 45" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 45", "\"bbbb\" 25", "\"cccc\" 5"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: expected property 0 to be "\"aaaa\" -15" but got "\"aaaa\" 30" (expected array ["\"aaaa\" -15", "\"bbbb\" 5", "\"cccc\" 25"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] assert_array_equals: expected property 0 to be "\"aaaa\" 0" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: expected property 0 to be "\"aaaa\" 9" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 9", "\"bbbb\" 13", "\"cccc\" 17"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: expected property 0 to be "\"aaaa\" 21" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 21", "\"bbbb\" 17", "\"cccc\" 13"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) PASS CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10] -FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: property 0, expected "\"aaaa\" 45" but got "\"aaaa\" 30" -FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: property 0, expected "\"aaaa\" -15" but got "\"aaaa\" 0" +FAIL CSS Transitions with transition: all: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: expected property 0 to be "\"aaaa\" 45" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 45", "\"bbbb\" 25", "\"cccc\" 5"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: expected property 0 to be "\"aaaa\" -15" but got "\"aaaa\" 0" (expected array ["\"aaaa\" -15", "\"bbbb\" 5", "\"cccc\" 25"] got ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"]) PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] -FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: property 0, expected "\"aaaa\" 9" but got "\"aaaa\" 0" -FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: property 0, expected "\"aaaa\" 21" but got "\"aaaa\" 30" +FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: expected property 0 to be "\"aaaa\" 9" but got "\"aaaa\" 0" (expected array ["\"aaaa\" 9", "\"bbbb\" 13", "\"cccc\" 17"] got ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"]) +FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: expected property 0 to be "\"aaaa\" 21" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 21", "\"bbbb\" 17", "\"cccc\" 13"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) PASS CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10] -FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: property 0, expected "\"aaaa\" 45" but got "\"aaaa\" 30" -FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: property 0, expected "\"aaaa\" -15" but got "\"aaaa\" 0" +FAIL CSS Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: expected property 0 to be "\"aaaa\" 45" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 45", "\"bbbb\" 25", "\"cccc\" 5"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) +FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (-0.5) should be ['aaaa' -15, 'bbbb' 5, 'cccc' 25] assert_array_equals: expected property 0 to be "\"aaaa\" -15" but got "\"aaaa\" 0" (expected array ["\"aaaa\" -15", "\"bbbb\" 5", "\"cccc\" 25"] got ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"]) PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0) should be ['aaaa' 0, 'bbbb' 10, 'cccc' 20] -FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: property 0, expected "\"aaaa\" 9" but got "\"aaaa\" 0" -FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: property 0, expected "\"aaaa\" 21" but got "\"aaaa\" 30" +FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.3) should be ['aaaa' 9, 'bbbb' 13, 'cccc' 17] assert_array_equals: expected property 0 to be "\"aaaa\" 9" but got "\"aaaa\" 0" (expected array ["\"aaaa\" 9", "\"bbbb\" 13", "\"cccc\" 17"] got ["\"aaaa\" 0", "\"bbbb\" 10", "\"cccc\" 20"]) +FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (0.7) should be ['aaaa' 21, 'bbbb' 17, 'cccc' 13] assert_array_equals: expected property 0 to be "\"aaaa\" 21" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 21", "\"bbbb\" 17", "\"cccc\" 13"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) PASS Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1) should be ['aaaa' 30, 'bbbb' 20, 'cccc' 10] -FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: property 0, expected "\"aaaa\" 45" but got "\"aaaa\" 30" +FAIL Web Animations: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10, 'cccc' 20] to ['cccc' 10, 'bbbb' 20, 'aaaa' 30] at (1.5) should be ['aaaa' 45, 'bbbb' 25, 'cccc' 5] assert_array_equals: expected property 0 to be "\"aaaa\" 45" but got "\"aaaa\" 30" (expected array ["\"aaaa\" 45", "\"bbbb\" 25", "\"cccc\" 5"] got ["\"aaaa\" 30", "\"bbbb\" 20", "\"cccc\" 10"]) PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (-0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30] PASS CSS Transitions: property <font-variation-settings> from ['aaaa' 0, 'bbbb' 10] to ['aaaa' 10, 'bbbb' 20, 'cccc' 30] at (0.3) should be ['aaaa' 10, 'bbbb' 20, 'cccc' 30]
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt index 590e70e..af3a586 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-addListener-removeListener-expected.txt
@@ -1,9 +1,9 @@ This is a testharness.js-based test. PASS listeners are called when <iframe> is resized FAIL listeners are called correct number of times assert_equals: expected 1 but got 0 -FAIL listeners are called in order they were added assert_array_equals: lengths differ, expected 2 got 0 +FAIL listeners are called in order they were added assert_array_equals: lengths differ, expected array ["1st", "2nd"] length 2, got [] length 0 FAIL listener that was added twice is called only once assert_equals: expected 1 but got 0 -FAIL listeners are called in order their MQLs were created assert_array_equals: lengths differ, expected 2 got 0 +FAIL listeners are called in order their MQLs were created assert_array_equals: lengths differ, expected array ["mql1", "mql2"] length 2, got [] length 0 FAIL removing listener from one MQL doesn't remove it from all MQLs assert_equals: expected 1 but got 0 PASS MediaQueryList::removeListener removes added listener Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt b/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt index 6b8b5fe..a587c7d1 100644 --- a/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/MediaQueryList-extends-EventTarget-interop-expected.txt
@@ -6,6 +6,6 @@ FAIL removeEventListener (capture) doesn't remove listener added with addListener assert_equals: triggerMQLEvent expected 1 but got 0 PASS removeListener removes listener added with addEventListener FAIL removeListener doesn't remove listener added with addEventListener (capture) assert_equals: triggerMQLEvent expected 1 but got 0 -FAIL capturing event listener fires before non-capturing listener at target assert_array_equals: triggerMQLEvent lengths differ, expected 2 got 0 +FAIL capturing event listener fires before non-capturing listener at target assert_array_equals: triggerMQLEvent lengths differ, expected array ["addEventListener", "addListener"] length 2, got [] length 0 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/custom-elements/range-and-constructors-expected.txt b/third_party/blink/web_tests/external/wpt/custom-elements/range-and-constructors-expected.txt index 45bdc056..46ca349d 100644 --- a/third_party/blink/web_tests/external/wpt/custom-elements/range-and-constructors-expected.txt +++ b/third_party/blink/web_tests/external/wpt/custom-elements/range-and-constructors-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL Range.cloneContents should invoke constructor in tree order assert_array_equals: property 0, expected "root-0" but got "root-0-0" -FAIL Range.extractContents should invoke constructor in tree order assert_array_equals: property 0, expected "root-0" but got "root-0-0" +FAIL Range.cloneContents should invoke constructor in tree order assert_array_equals: expected property 0 to be "root-0" but got "root-0-0" (expected array ["root-0", "root-0-0", "root-1"] got ["root-0-0", "root-0", "root-1"]) +FAIL Range.extractContents should invoke constructor in tree order assert_array_equals: expected property 0 to be "root-0" but got "root-0-0" (expected array ["root-0", "root-0-0"] got ["root-0-0", "root-0"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-handlers-changed-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-handlers-changed-expected.txt index c3c943786..4e26515 100644 --- a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-handlers-changed-expected.txt +++ b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-handlers-changed-expected.txt
@@ -1,4 +1,18 @@ This is a testharness.js-based test. -FAIL Dispatch additional events inside an event listener assert_array_equals: actual_targets lengths differ, expected 17 got 16 +FAIL Dispatch additional events inside an event listener assert_array_equals: actual_targets lengths differ, expected array [object "[object Window]", Document node with 2 children, Element node <html><head><meta charset="utf-8"> +<title> Dispatch addit..., Element node <body><div id="log"></div> + +<table id="table" border="1" ..., Element node <table id="table" border="1" style="display: none"> + <..., Element node <tbody id="table-body"> + <tr id="table-row"> + <..., Element node <tr id="parent"> + <td id="target">Over the river, ..., Element node <td id="target">Over the river, Charlie</td>, [...], [...], [...], [...], [...], [...], [...], [...], [...]] length 17, got [object "[object Window]", Document node with 2 children, Element node <html><head><meta charset="utf-8"> +<title> Dispatch addit..., Element node <body><div id="log"></div> + +<table id="table" border="1" ..., Element node <table id="table" border="1" style="display: none"> + <..., Element node <tbody id="table-body"> + <tr id="table-row"> + <..., Element node <tr id="parent"> + <td id="target">Over the river, ..., Element node <td id="target">Over the river, Charlie</td>, [...], [...], [...], [...], [...], [...], [...], [...]] length 16 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-listener-order.window-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-listener-order.window-expected.txt index 46667c5..65eec96 100644 --- a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-listener-order.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-listener-order.window-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Event-dispatch-listener-order assert_array_equals: property 4, expected "capturing SPAN" but got "bubbling SPAN" +FAIL Event-dispatch-listener-order assert_array_equals: expected property 4 to be "capturing SPAN" but got "bubbling SPAN" (expected array ["capturing SECTION", "capturing DIV", "capturing #document-fragment", "capturing P", "capturing SPAN", "bubbling SPAN", "bubbling P", "bubbling #document-fragment", "bubbling DIV", "bubbling SECTION"] got ["capturing SECTION", "capturing DIV", "capturing #document-fragment", "capturing P", "bubbling SPAN", "capturing SPAN", "bubbling P", "bubbling #document-fragment", "bubbling DIV", "bubbling SECTION"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-order-at-target-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-order-at-target-expected.txt index 3db500e..ad4f3809 100644 --- a/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-order-at-target-expected.txt +++ b/third_party/blink/web_tests/external/wpt/dom/events/Event-dispatch-order-at-target-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Listeners are invoked in correct order (AT_TARGET phase) assert_array_equals: bubbles: true property 0, expected "capturing" but got "bubbling" +FAIL Listeners are invoked in correct order (AT_TARGET phase) assert_array_equals: bubbles: true expected property 0 to be "capturing" but got "bubbling" (expected array ["capturing", "bubbling"] got ["bubbling", "capturing"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/dom/events/EventTarget-dispatchEvent-expected.txt b/third_party/blink/web_tests/external/wpt/dom/events/EventTarget-dispatchEvent-expected.txt index 625adecb..0e719cd 100644 --- a/third_party/blink/web_tests/external/wpt/dom/events/EventTarget-dispatchEvent-expected.txt +++ b/third_party/blink/web_tests/external/wpt/dom/events/EventTarget-dispatchEvent-expected.txt
@@ -24,6 +24,6 @@ PASS If the event's dispatch flag is set, an InvalidStateError must be thrown. PASS Exceptions from event listeners must not be propagated. PASS Event listeners added during dispatch should be called -FAIL Capturing event listeners should be called before non-capturing ones assert_array_equals: property 1, expected 3 but got 2 +FAIL Capturing event listeners should be called before non-capturing ones assert_array_equals: expected property 1 to be 3 but got 2 (expected array [1, 3, 2] got [1, 2, 3]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt index 175aa9f99..cfab79c 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any-expected.txt
@@ -35,28 +35,28 @@ PASS "data:†,X" PASS "data:†/†,X" PASS "data:X,X" -FAIL "data:image/png,X X" assert_array_equals: lengths differ, expected 3 got 2 -FAIL "data:application/javascript,X X" assert_array_equals: lengths differ, expected 3 got 2 +FAIL "data:image/png,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 +FAIL "data:application/javascript,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 PASS "data:application/xml,X X" PASS "data:text/javascript,X X" PASS "data:text/plain,X X" -FAIL "data:unknown/unknown,X X" assert_array_equals: lengths differ, expected 3 got 2 +FAIL "data:unknown/unknown,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 FAIL "data:text/plain;a=\",\",X" assert_equals: expected "text/plain;a=\"\"" but got "text/plain" FAIL "data:text/plain;a=%2C,X" assert_equals: expected "text/plain;a=%2C" but got "text/plain" FAIL "data:;base64;base64,WA" assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII" PASS "data:x/x;base64;base64,WA" -FAIL "data:x/x;base64;charset=x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x/x;base64;charset=x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:x/x;base64;charset=x;base64,WA" -FAIL "data:x/x;base64;base64x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x/x;base64;base64x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:;base64,W%20A" PASS "data:;base64,W%0CA" PASS "data:x;base64x,WA" -FAIL "data:x;base64;x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x;base64;x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:x;base64=x,WA" PASS "data:; base64,WA" PASS "data:; base64,WA" PASS "data: ;charset=x ; base64,WA" -FAIL "data:;base64;,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:;base64;,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:;base64 ,WA" PASS "data:;base64 ,WA" FAIL "data:;base 64,WA" assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
diff --git a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt index 175aa9f99..cfab79c 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/fetch/data-urls/processing.any.worker-expected.txt
@@ -35,28 +35,28 @@ PASS "data:†,X" PASS "data:†/†,X" PASS "data:X,X" -FAIL "data:image/png,X X" assert_array_equals: lengths differ, expected 3 got 2 -FAIL "data:application/javascript,X X" assert_array_equals: lengths differ, expected 3 got 2 +FAIL "data:image/png,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 +FAIL "data:application/javascript,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 PASS "data:application/xml,X X" PASS "data:text/javascript,X X" PASS "data:text/plain,X X" -FAIL "data:unknown/unknown,X X" assert_array_equals: lengths differ, expected 3 got 2 +FAIL "data:unknown/unknown,X X" assert_array_equals: lengths differ, expected array [88, 32, 88] length 3, got object "88,88" length 2 FAIL "data:text/plain;a=\",\",X" assert_equals: expected "text/plain;a=\"\"" but got "text/plain" FAIL "data:text/plain;a=%2C,X" assert_equals: expected "text/plain;a=%2C" but got "text/plain" FAIL "data:;base64;base64,WA" assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII" PASS "data:x/x;base64;base64,WA" -FAIL "data:x/x;base64;charset=x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x/x;base64;charset=x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:x/x;base64;charset=x;base64,WA" -FAIL "data:x/x;base64;base64x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x/x;base64;base64x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:;base64,W%20A" PASS "data:;base64,W%0CA" PASS "data:x;base64x,WA" -FAIL "data:x;base64;x,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:x;base64;x,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:x;base64=x,WA" PASS "data:; base64,WA" PASS "data:; base64,WA" PASS "data: ;charset=x ; base64,WA" -FAIL "data:;base64;,WA" assert_array_equals: lengths differ, expected 2 got 1 +FAIL "data:;base64;,WA" assert_array_equals: lengths differ, expected array [87, 65] length 2, got object "88" length 1 PASS "data:;base64 ,WA" PASS "data:;base64 ,WA" FAIL "data:;base 64,WA" assert_equals: expected "text/plain" but got "text/plain;charset=US-ASCII"
diff --git a/third_party/blink/web_tests/external/wpt/fullscreen/api/document-exit-fullscreen-timing-manual-expected.txt b/third_party/blink/web_tests/external/wpt/fullscreen/api/document-exit-fullscreen-timing-manual-expected.txt index 1a274d0..c4f1bd6e4 100644 --- a/third_party/blink/web_tests/external/wpt/fullscreen/api/document-exit-fullscreen-timing-manual-expected.txt +++ b/third_party/blink/web_tests/external/wpt/fullscreen/api/document-exit-fullscreen-timing-manual-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Timing of fullscreenchange and resize events assert_array_equals: event order lengths differ, expected 2 got 1 +FAIL Timing of fullscreenchange and resize events assert_array_equals: event order lengths differ, expected array ["resize", "fullscreenchange"] length 2, got ["fullscreenchange"] length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/fullscreen/api/element-request-fullscreen-timing-manual-expected.txt b/third_party/blink/web_tests/external/wpt/fullscreen/api/element-request-fullscreen-timing-manual-expected.txt index f75028a..e754f2e 100644 --- a/third_party/blink/web_tests/external/wpt/fullscreen/api/element-request-fullscreen-timing-manual-expected.txt +++ b/third_party/blink/web_tests/external/wpt/fullscreen/api/element-request-fullscreen-timing-manual-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL Timing of fullscreenchange and resize events assert_array_equals: event order lengths differ, expected 2 got 1 +FAIL Timing of fullscreenchange and resize events assert_array_equals: event order lengths differ, expected array ["resize", "fullscreenchange"] length 2, got ["fullscreenchange"] length 1 PASS Timing of fullscreenerror event Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/unloading-documents/prompt/001-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/unloading-documents/prompt/001-expected.txt index 46992e4..4cbb9e6 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/unloading-documents/prompt/001-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/browsing-the-web/unloading-documents/prompt/001-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL beforeunload event order assert_array_equals: lengths differ, expected 3 got 2 +FAIL beforeunload event order assert_array_equals: lengths differ, expected array ["before src change", "beforeunload", "after src change"] length 3, got ["before src change", "after src change"] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_go_undefined-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_go_undefined-expected.txt index a3c4e21..0ee1cea 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_go_undefined-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/history_go_undefined-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL history.forward() with session history assert_array_equals: Pages opened during history navigation property 2, expected 2 but got 3 +FAIL history.forward() with session history assert_array_equals: Pages opened during history navigation expected property 2 to be 2 but got 3 (expected array [3, 2, 2] got [3, 2, 3]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual-expected.txt index bb62f55e4a..de8aaf9 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_history_unload_prompt_1-manual-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Traversing the history, prompt in before unload, navigation denied assert_array_equals: Pages opened during history navigation lengths differ, expected 1 got 2 +FAIL Traversing the history, prompt in before unload, navigation denied assert_array_equals: Pages opened during history navigation lengths differ, expected array [2] length 1, got [2, 1] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual-expected.txt index c96d403..41569f6 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1-manual-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Traversing the history, unload event is fired on doucment assert_array_equals: Pages opened during history navigation lengths differ, expected 1 got 2 +FAIL Traversing the history, unload event is fired on doucment assert_array_equals: Pages opened during history navigation lengths differ, expected array [2] length 1, got [2, 1] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/reload_document_write_onload-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/reload_document_write_onload-expected.txt index b643d9e..36c7d62 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/reload_document_write_onload-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/history/the-location-interface/reload_document_write_onload-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Reload document with document.written content written in load event assert_array_equals: lengths differ, expected 3 got 4 +FAIL Reload document with document.written content written in load event assert_array_equals: lengths differ, expected array ["original", "written", "written"] length 3, got ["original", "written", "original", "written"] length 4 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt index 571eb01..d2a2d32 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
@@ -45,12 +45,12 @@ FAIL Can only enumerate safelisted enumerable properties (cross-origin) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 FAIL Can only enumerate safelisted enumerable properties (same-origin + document.domain) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 FAIL Can only enumerate safelisted enumerable properties (cross-site) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 -FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13 -FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13 -FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected 16 got 13 -FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0 -FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0 -FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected 3 got 0 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-origin) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (same-origin + document.domain) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-site) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close"
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3-expected.txt index 4330773..883c407 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Removing iframe from document removes it from history assert_array_equals: property 2, expected 1 but got 2 +FAIL Removing iframe from document removes it from history assert_array_equals: expected property 2 to be 1 but got 2 (expected array [1, 2, 1] got [1, 2, 2]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4-expected.txt index 4330773..883c407 100644 --- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Removing iframe from document removes it from history assert_array_equals: property 2, expected 1 but got 2 +FAIL Removing iframe from document removes it from history assert_array_equals: expected property 2 to be 1 but got 2 (expected array [1, 2, 1] got [1, 2, 2]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt index 234a15f..3247c6d 100644 --- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -7,7 +7,7 @@ PASS JS-engine-created TypeError (cross-site iframe) PASS web API-created TypeError (worker) PASS web API-created TypeError (cross-site iframe) -FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:1984:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:584:22)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined -FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:1984:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:584:22)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2024:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:584:22)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined +FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n at Test.step (http://web-platform.test:8001/resources/testharness.js:2024:25)\n at async_test (http://web-platform.test:8001/resources/testharness.js:584:22)\n at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/029-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/029-expected.txt index 85700a1..ba3ee6f 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/029-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/029-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. -FAIL scheduler: javascript: URL in HREF assert_array_equals: property 2, expected "beforeunload event" but got "inline script #2" +FAIL scheduler: javascript: URL in HREF assert_array_equals: expected property 2 to be "beforeunload event" but got "inline script #2" (expected array ["inline script #1", "end script #1", "beforeunload event", "inline script #2"] got ["inline script #1", "end script #1", "inline script #2", "JS URL"]) -assert_array_equals: property 3, expected "beforeunload event" but got "JS URL" +assert_array_equals: expected property 3 to be "beforeunload event" but got "JS URL" (expected array ["inline script #1", "end script #1", "inline script #2", "beforeunload event"] got ["inline script #1", "end script #1", "inline script #2", "JS URL"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt index 7d8abb8..f5f51835 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/083-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL scheduler: event listener defined by script in a document in history assert_array_equals: lengths differ, expected 5 got 6 +FAIL scheduler: event listener defined by script in a document in history assert_array_equals: lengths differ, expected array ["inline script #1", "IFRAME script", "end script #1", "event: foo", "inline script #2"] length 5, got ["inline script #1", "IFRAME script", "end script #1", "event: foo", "event: foo", "inline script #2"] length 6 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/116-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/116-expected.txt index 3a4a0bf6..eb072ed 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/116-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/116-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL scheduler: adding script to head of frameset document assert_array_equals: property 0, expected "document.body: <FRAMESET>" but got "document.body: <BODY>" +FAIL scheduler: adding script to head of frameset document assert_array_equals: expected property 0 to be "document.body: <FRAMESET>" but got "document.body: <BODY>" (expected array ["document.body: <FRAMESET>"] got ["document.body: <BODY>"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/128-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/128-expected.txt index 2aa8b3ec..4c6504e 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/128-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/128-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL scheduler: appending script element to script assert_array_equals: property 1, expected "inline script #3" but got "inline script #2" +FAIL scheduler: appending script element to script assert_array_equals: expected property 1 to be "inline script #3" but got "inline script #2" (expected array ["inline script #1", "inline script #3", "inline script #2", "end inline script #2", "end inline script #1"] got ["inline script #1", "inline script #2", "end inline script #2", "inline script #3", "end inline script #1"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/146-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/146-expected.txt index daaabfd5..8a61a7e 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/146-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/146-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL scheduler: SVG script adding src attribute assert_array_equals: lengths differ, expected 1 got 0 +FAIL scheduler: SVG script adding src attribute assert_array_equals: lengths differ, expected array ["external script #1"] length 1, got [] length 0 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/148-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/148-expected.txt index f21ff12c..bc08031 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/148-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/148-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL scheduler: insert multiple inline scripts; first script deletes subsequent script assert_array_equals: lengths differ, expected 4 got 3 +FAIL scheduler: insert multiple inline scripts; first script deletes subsequent script assert_array_equals: lengths differ, expected array ["inline script #1", "inline script #2", "inline script #3", "inline script #4"] length 4, got ["inline script #1", "inline script #2", "inline script #4"] length 3 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt index 4aef3b3..1b30fce 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-3-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Test that unresolvable cycles lead to SyntaxError events on window and load events on script assert_array_equals: property 2, expected "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'" but got "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable.js'" +FAIL Test that unresolvable cycles lead to SyntaxError events on window and load events on script assert_array_equals: expected property 2 to be "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'" but got "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable.js'" (expected array ["Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 1, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 2, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 3] got ["Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 1, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable.js'", 2, "Uncaught SyntaxError: Detected cycle while resolving name 'x' in './cycle-unresolvable-a.js'", 3]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt index 7c539bf5..fdde0fa 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-4-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Test that loading a graph in which a module is already errored results in an error. assert_array_equals: property 2, expected "Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-4d.js' does not provide an export named 'something'" +FAIL Test that loading a graph in which a module is already errored results in an error. assert_array_equals: expected property 2 to be "Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-4d.js' does not provide an export named 'something'" (expected array ["Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 2] got ["Uncaught SyntaxError: The requested module './instantiation-error-4c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-4d.js' does not provide an export named 'something'", 2]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt index 56747fec..d60314082 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/instantiation-error-5-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Test that loading a graph in which a module is already errored results an error. assert_array_equals: property 2, expected "Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-5e.js' does not provide an export named 'something'" +FAIL Test that loading a graph in which a module is already errored results an error. assert_array_equals: expected property 2 to be "Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'" but got "Uncaught SyntaxError: The requested module './instantiation-error-5e.js' does not provide an export named 'something'" (expected array ["Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 2] got ["Uncaught SyntaxError: The requested module './instantiation-error-5c.js' does not provide an export named 'something'", 1, "Uncaught SyntaxError: The requested module './instantiation-error-5e.js' does not provide an export named 'something'", 2]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt index 04b56930..1dbb2a76 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/link-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL Only <a>s, <area>s and <link>s that have a href attribute match ':link' assert_array_equals: lengths differ, expected 7 got 3 -FAIL ':link' doesn't match elements whos href attribute has been removed assert_array_equals: lengths differ, expected 6 got 3 +FAIL Only <a>s, <area>s and <link>s that have a href attribute match ':link' assert_array_equals: lengths differ, expected array [Element node <link rel="author" title="Denis Ah-Kang" href="mailto:den..., Element node <link rel="help" href="https://html.spec.whatwg.org/multi..., Element node <link rel="stylesheet" href="non-existent.css" id="link3"..., Element node <a href="http://www.w3.org" id="link7"></a>, Element node <area href="http://www.w3.org" id="link8"></area>, Element node <link href="http://www.w3.org" id="link9"></link>, Element node <a href="http://[" id="link10"></a>] length 7, got object "[object NodeList]" length 3 +FAIL ':link' doesn't match elements whos href attribute has been removed assert_array_equals: lengths differ, expected array [Element node <link rel="author" title="Denis Ah-Kang" href="mailto:den..., Element node <link rel="help" href="https://html.spec.whatwg.org/multi..., Element node <link rel="stylesheet" href="non-existent.css" id="link3"..., Element node <a href="http://www.w3.org" id="link7"></a>, Element node <area href="http://www.w3.org" id="link8"></area>, Element node <a href="http://[" id="link10"></a>] length 6, got object "[object NodeList]" length 3 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt index 4267e8a..20388d9 100644 --- a/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt
@@ -1,21 +1,21 @@ This is a testharness.js-based test. PASS The :read-write pseudo-class must not match input elements to which the readonly attribute does not apply -FAIL The :read-only pseudo-class must match input elements to which the readonly attribute does not apply assert_array_equals: lengths differ, expected 10 got 0 -FAIL The :read-write pseudo-class must match input elements to which the readonly attribute applies, and that are mutable assert_array_equals: lengths differ, expected 1 got 2 +FAIL The :read-only pseudo-class must match input elements to which the readonly attribute does not apply assert_array_equals: lengths differ, expected array [Element node <input id="checkbox1" type="checkbox"></input>, Element node <input id="hidden1" type="hidden" value="abc"></input>, Element node <input id="range1" type="range"></input>, Element node <input id="color1" type="color"></input>, Element node <input id="radio1" type="radio"></input>, Element node <input id="file1" type="file"></input>, Element node <input id="submit1" type="submit"></input>, Element node <input id="image1" type="image"></input>, Element node <input id="button1" type="button" value="Button"></input>, Element node <input id="reset1" type="reset"></input>] length 10, got object "[object NodeList]" length 0 +FAIL The :read-write pseudo-class must match input elements to which the readonly attribute applies, and that are mutable assert_array_equals: lengths differ, expected array [Element node <input id="input1"></input>] length 1, got object "[object NodeList]" length 2 PASS The :read-only pseudo-class must not match input elements to which the readonly attribute applies, and that are mutable -FAIL The :read-write pseudo-class must not match input elements after the readonly attribute has been added assert_array_equals: lengths differ, expected 0 got 1 +FAIL The :read-write pseudo-class must not match input elements after the readonly attribute has been added assert_array_equals: lengths differ, expected array [] length 0, got object "[object NodeList]" length 1 PASS The :read-only pseudo-class must match input elements after the readonly attribute has been added -FAIL The :read-write pseudo-class must not match input elements after the readonly attribute has been removed assert_array_equals: lengths differ, expected 1 got 2 +FAIL The :read-write pseudo-class must not match input elements after the readonly attribute has been removed assert_array_equals: lengths differ, expected array [Element node <input id="input1"></input>] length 1, got object "[object NodeList]" length 2 PASS The :read-only pseudo-class must match input elements after the readonly attribute has been removed PASS The :read-write pseudo-class must match textarea elements that do not have a readonly attribute, and that are not disabled PASS The :read-only pseudo-class must match textarea elements that have a readonly attribute, or that are disabled PASS The :read-write pseudo-class must match textarea elements after the readonly attribute has been added PASS The :read-only pseudo-class must match textarea elements after the readonly attribute has been added -FAIL The :read-write pseudo-class must not match textarea elements that are disabled assert_array_equals: lengths differ, expected 1 got 2 -FAIL The :read-only pseudo-class must match textarea elements that are disabled assert_array_equals: lengths differ, expected 1 got 0 +FAIL The :read-write pseudo-class must not match textarea elements that are disabled assert_array_equals: lengths differ, expected array [Element node <textarea id="textarea3">textarea3</textarea>] length 1, got object "[object NodeList]" length 2 +FAIL The :read-only pseudo-class must match textarea elements that are disabled assert_array_equals: lengths differ, expected array [Element node <textarea disabled="" id="textarea4">textarea4</textarea>] length 1, got object "[object NodeList]" length 0 PASS The :read-write pseudo-class must match elements that are editable PASS The :read-only pseudo-class must not match elements that are editable -FAIL The :read-write pseudo-class must match elements that are editing hosts assert_array_equals: lengths differ, expected 2 got 1 -FAIL The :read-only pseudo-class must not match elements that are editing hosts assert_array_equals: lengths differ, expected 0 got 1 +FAIL The :read-write pseudo-class must match elements that are editing hosts assert_array_equals: lengths differ, expected array [Element node <p id="p1">paragraph1.</p>, Element node <p id="p2" contenteditable="">paragraph2.</p>] length 2, got object "[object NodeList]" length 1 +FAIL The :read-only pseudo-class must not match elements that are editing hosts assert_array_equals: lengths differ, expected array [] length 0, got object "[object NodeList]" length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/html/webappapis/update-rendering/child-document-raf-order-expected.txt b/third_party/blink/web_tests/external/wpt/html/webappapis/update-rendering/child-document-raf-order-expected.txt index 46bb22cb..29fda633 100644 --- a/third_party/blink/web_tests/external/wpt/html/webappapis/update-rendering/child-document-raf-order-expected.txt +++ b/third_party/blink/web_tests/external/wpt/html/webappapis/update-rendering/child-document-raf-order-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL Ordering of steps in "Update the Rendering" - child document requestAnimationFrame order assert_array_equals: expected order of notifications lengths differ, expected 3 got 6 +FAIL Ordering of steps in "Update the Rendering" - child document requestAnimationFrame order assert_array_equals: expected order of notifications lengths differ, expected array ["parent_raf", "first_child_raf", "second_child_raf"] length 3, got ["parent_raf", "second_child_raf", "first_child_raf", "parent_raf", "second_child_raf", "first_child_raf"] length 6 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/reporting.idl b/third_party/blink/web_tests/external/wpt/interfaces/reporting.idl index f5370e8f..d42f0bac 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/reporting.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/reporting.idl
@@ -33,33 +33,6 @@ typedef sequence<Report> ReportList; -[Exposed=(Window,Worker)] -interface DeprecationReportBody : ReportBody { - [Default] object toJSON(); - readonly attribute DOMString id; - readonly attribute Date? anticipatedRemoval; - readonly attribute DOMString message; - readonly attribute DOMString? sourceFile; - readonly attribute unsigned long? lineNumber; - readonly attribute unsigned long? columnNumber; -}; - -[Exposed=(Window,Worker)] -interface InterventionReportBody : ReportBody { - [Default] object toJSON(); - readonly attribute DOMString id; - readonly attribute DOMString message; - readonly attribute DOMString? sourceFile; - readonly attribute unsigned long? lineNumber; - readonly attribute unsigned long? columnNumber; -}; - -[Exposed=(Window,Worker)] -interface CrashReportBody : ReportBody { - [Default] object toJSON(); - readonly attribute DOMString? reason; -}; - dictionary GenerateTestReportParameters { required DOMString message; DOMString group = "default";
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl b/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl index 29025f35..56c2856 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webauthn.idl
@@ -236,10 +236,10 @@ UvmEntries uvm; }; -dictionary authenticatorBiometricPerfBounds{ +dictionary AuthenticatorBiometricPerfBounds { float FAR; float FRR; - }; +}; partial dictionary AuthenticationExtensionsClientInputs { boolean credProps;
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/webrtc.idl b/third_party/blink/web_tests/external/wpt/interfaces/webrtc.idl index badbe4d..053afdc 100644 --- a/third_party/blink/web_tests/external/wpt/interfaces/webrtc.idl +++ b/third_party/blink/web_tests/external/wpt/interfaces/webrtc.idl
@@ -588,7 +588,6 @@ constructor(RTCErrorInit init, optional DOMString message = ""); readonly attribute RTCErrorDetailType errorDetail; readonly attribute long? sdpLineNumber; - readonly attribute long? httpRequestStatusCode; readonly attribute long? sctpCauseCode; readonly attribute unsigned long? receivedAlert; readonly attribute unsigned long? sentAlert; @@ -597,7 +596,6 @@ dictionary RTCErrorInit { required RTCErrorDetailType errorDetail; long sdpLineNumber; - long httpRequestStatusCode; long sctpCauseCode; unsigned long receivedAlert; unsigned long sentAlert;
diff --git a/third_party/blink/web_tests/external/wpt/lint.whitelist b/third_party/blink/web_tests/external/wpt/lint.whitelist index 353922a..425730fee 100644 --- a/third_party/blink/web_tests/external/wpt/lint.whitelist +++ b/third_party/blink/web_tests/external/wpt/lint.whitelist
@@ -99,6 +99,7 @@ # Intentional use of print statements PRINT STATEMENT: dom/nodes/Document-createElement-namespace-tests/generate.py PRINT STATEMENT: encrypted-media/polyfill/make-polyfill-tests.py +PRINT STATEMENT: resources/test/conftest.py PRINT STATEMENT: webdriver/tests/support/helpers.py # semi-legitimate use of console.*
diff --git a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt index 094b226..4d3d205 100644 --- a/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt +++ b/third_party/blink/web_tests/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt
@@ -8,7 +8,7 @@ PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. PASS Test penpointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. -FAIL Test penpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. assert_array_equals: Received events: outerFrame received pointerdown,outerFrame received gotpointercapture,outerFrame received pointermove,innerFrame received pointerup lengths differ, expected 5 got 4 +FAIL Test penpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. assert_array_equals: Received events: outerFrame received pointerdown,outerFrame received gotpointercapture,outerFrame received pointermove,innerFrame received pointerup lengths differ, expected array ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "outerFrame received pointerup", "outerFrame received lostpointercapture"] length 5, got ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "innerFrame received pointerup"] length 4 PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/reporting/idlharness.any-expected.txt b/third_party/blink/web_tests/external/wpt/reporting/idlharness.any-expected.txt index 55b27a0..55ab8a9 100644 --- a/third_party/blink/web_tests/external/wpt/reporting/idlharness.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/reporting/idlharness.any-expected.txt
@@ -1,5 +1,4 @@ This is a testharness.js-based test. -Found 61 tests; 11 PASS, 50 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation FAIL ReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "ReportBody" expected property "ReportBody" missing @@ -28,38 +27,5 @@ PASS ReportingObserver interface: operation observe() PASS ReportingObserver interface: operation disconnect() PASS ReportingObserver interface: operation takeRecords() -FAIL DeprecationReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface object length assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface object name assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: operation toJSON() assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute id assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute anticipatedRemoval assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute message assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute sourceFile assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute lineNumber assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute columnNumber assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface object length assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface object name assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: operation toJSON() assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute id assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute message assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute sourceFile assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute lineNumber assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute columnNumber assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface object length assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface object name assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: operation toJSON() assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: attribute reason assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/reporting/idlharness.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/reporting/idlharness.any.worker-expected.txt index ce631f1..e8111491 100644 --- a/third_party/blink/web_tests/external/wpt/reporting/idlharness.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/reporting/idlharness.any.worker-expected.txt
@@ -1,5 +1,4 @@ This is a testharness.js-based test. -Found 61 tests; 2 PASS, 59 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation FAIL ReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "ReportBody" expected property "ReportBody" missing @@ -28,38 +27,5 @@ FAIL ReportingObserver interface: operation observe() assert_own_property: self does not have own property "ReportingObserver" expected property "ReportingObserver" missing FAIL ReportingObserver interface: operation disconnect() assert_own_property: self does not have own property "ReportingObserver" expected property "ReportingObserver" missing FAIL ReportingObserver interface: operation takeRecords() assert_own_property: self does not have own property "ReportingObserver" expected property "ReportingObserver" missing -FAIL DeprecationReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface object length assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface object name assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: operation toJSON() assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute id assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute anticipatedRemoval assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute message assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute sourceFile assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute lineNumber assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL DeprecationReportBody interface: attribute columnNumber assert_own_property: self does not have own property "DeprecationReportBody" expected property "DeprecationReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface object length assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface object name assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: operation toJSON() assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute id assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute message assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute sourceFile assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute lineNumber assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL InterventionReportBody interface: attribute columnNumber assert_own_property: self does not have own property "InterventionReportBody" expected property "InterventionReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface object assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface object length assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface object name assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: existence and properties of interface prototype object's @@unscopables property assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: operation toJSON() assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing -FAIL CrashReportBody interface: attribute reason assert_own_property: self does not have own property "CrashReportBody" expected property "CrashReportBody" missing Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/resources/testharness.js b/third_party/blink/web_tests/external/wpt/resources/testharness.js index f289e77..2c3664d 100644 --- a/third_party/blink/web_tests/external/wpt/resources/testharness.js +++ b/third_party/blink/web_tests/external/wpt/resources/testharness.js
@@ -1006,7 +1006,15 @@ seen.push(val); } if (Array.isArray(val)) { - return "[" + val.map(function(x) {return format_value(x, seen);}).join(", ") + "]"; + let output = "["; + if (val.beginEllipsis !== undefined) { + output += "…, "; + } + output += val.map(function(x) {return format_value(x, seen);}).join(", "); + if (val.endEllipsis !== undefined) { + output += ", …"; + } + return output + "]"; } switch (typeof val) { @@ -1178,25 +1186,57 @@ function assert_array_equals(actual, expected, description) { + const max_array_length = 20; + function shorten_array(arr, offset = 0) { + // Make ", …" only show up when it would likely reduce the length, not accounting for + // fonts. + if (arr.length < max_array_length + 2) { + return arr; + } + // By default we want half the elements after the offset and half before + // But if that takes us past the end of the array, we have more before, and + // if it takes us before the start we have more after. + const length_after_offset = Math.floor(max_array_length / 2); + let upper_bound = Math.min(length_after_offset + offset, arr.length); + const lower_bound = Math.max(upper_bound - max_array_length, 0); + + if (lower_bound === 0) { + upper_bound = max_array_length; + } + + const output = arr.slice(lower_bound, upper_bound); + if (lower_bound > 0) { + output.beginEllipsis = true; + } + if (upper_bound < arr.length) { + output.endEllipsis = true; + } + return output; + } + assert(typeof actual === "object" && actual !== null && "length" in actual, "assert_array_equals", description, "value is ${actual}, expected array", {actual:actual}); assert(actual.length === expected.length, "assert_array_equals", description, - "lengths differ, expected ${expected} got ${actual}", - {expected:expected.length, actual:actual.length}); + "lengths differ, expected array ${expected} length ${expectedLength}, got ${actual} length ${actualLength}", + {expected:shorten_array(expected, expected.length - 1), expectedLength:expected.length, + actual:shorten_array(actual, actual.length - 1), actualLength:actual.length + }); for (var i = 0; i < actual.length; i++) { assert(actual.hasOwnProperty(i) === expected.hasOwnProperty(i), "assert_array_equals", description, - "property ${i}, property expected to be ${expected} but was ${actual}", + "expected property ${i} to be ${expected} but was ${actual} (expected array ${arrayExpected} got ${arrayActual})", {i:i, expected:expected.hasOwnProperty(i) ? "present" : "missing", - actual:actual.hasOwnProperty(i) ? "present" : "missing"}); + actual:actual.hasOwnProperty(i) ? "present" : "missing", + arrayExpected:shorten_array(expected, i), arrayActual:shorten_array(actual, i)}); assert(same_value(expected[i], actual[i]), "assert_array_equals", description, - "property ${i}, expected ${expected} but got ${actual}", - {i:i, expected:expected[i], actual:actual[i]}); + "expected property ${i} to be ${expected} but got ${actual} (expected array ${arrayExpected} got ${arrayActual})", + {i:i, expected:expected[i], actual:actual[i], + arrayExpected:shorten_array(expected, i), arrayActual:shorten_array(actual, i)}); } } expose(assert_array_equals, "assert_array_equals"); @@ -1216,7 +1256,7 @@ "assert_array_approx_equals", description, "property ${i}, property expected to be ${expected} but was ${actual}", {i:i, expected:expected.hasOwnProperty(i) ? "present" : "missing", - actual:actual.hasOwnProperty(i) ? "present" : "missing"}); + actual:actual.hasOwnProperty(i) ? "present" : "missing"}); assert(typeof actual[i] === "number", "assert_array_approx_equals", description, "property ${i}, expected a number but got a ${type_actual}",
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-client-types.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-client-types.https-expected.txt index 2b0c2f8..02cc331 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-client-types.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/clients-matchall-client-types.https-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL Verify matchAll() with window client type assert_array_equals: property 2, expected "https://web-platform.test:8444/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html" but got "https://web-platform.test:8444/service-workers/service-worker/resources/url-modified-via-pushstate.html" +FAIL Verify matchAll() with window client type assert_array_equals: expected property 2 to be "https://web-platform.test:8444/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html" but got "https://web-platform.test:8444/service-workers/service-worker/resources/url-modified-via-pushstate.html" (expected array ["visible", true, "https://web-platform.test:8444/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html", "window", "nested"] got ["visible", true, "https://web-platform.test:8444/service-workers/service-worker/resources/url-modified-via-pushstate.html", "window", "nested"]) FAIL Verify matchAll() with {window, sharedworker, worker} client types promise_test: Unhandled rejection with value: object "Error: wait_for_state must be passed a ServiceWorker" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-xhr.https-expected.txt b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-xhr.https-expected.txt index a354755..0e1253a 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-xhr.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-xhr.https-expected.txt
@@ -1,9 +1,9 @@ This is a testharness.js-based test. PASS initialize global state -FAIL event.request has the expected headers for same-origin GET. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for same-origin GET. lengths differ, expected 1 got 3" -FAIL event.request has the expected headers for same-origin POST. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for same-origin POST. lengths differ, expected 2 got 4" -FAIL event.request has the expected headers for cross-origin GET. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for cross-origin GET. lengths differ, expected 1 got 3" -FAIL event.request has the expected headers for cross-origin POST. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for cross-origin POST. lengths differ, expected 2 got 4" +FAIL event.request has the expected headers for same-origin GET. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for same-origin GET. lengths differ, expected array ["accept"] length 1, got ["accept", "sec-ch-ua", "user-agent"] length 3" +FAIL event.request has the expected headers for same-origin POST. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for same-origin POST. lengths differ, expected array ["accept", "content-type"] length 2, got ["accept", "content-type", "sec-ch-ua", "user-agent"] length 4" +FAIL event.request has the expected headers for cross-origin GET. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for cross-origin GET. lengths differ, expected array ["accept"] length 1, got ["accept", "sec-ch-ua", "user-agent"] length 3" +FAIL event.request has the expected headers for cross-origin POST. promise_test: Unhandled rejection with value: object "Error: assert_array_equals: event.request has the expected headers for cross-origin POST. lengths differ, expected array ["accept", "content-type"] length 2, got ["accept", "content-type", "sec-ch-ua", "user-agent"] length 4" PASS FetchEvent#request.body contains XHR request data (string) PASS FetchEvent#request.body contains XHR request data (blob) PASS FetchEvent#request.method is set to XHR method
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any-expected.txt index b865fc8ee..be95dffb 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any-expected.txt
@@ -8,12 +8,12 @@ FAIL Async-iterating a closed stream never executes the loop body, but works fine promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async function promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating a partially consumed stream promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" -FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 FAIL Cancellation behavior when manually calling return(); preventCancel = false promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Cancellation behavior when manually calling return(); preventCancel = true promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Calling return() twice rejects promise_test: Unhandled rejection with value: object "TypeError: s[Symbol.asyncIterator] is not a function"
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.serviceworker-expected.txt index b865fc8ee..be95dffb 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.serviceworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.serviceworker-expected.txt
@@ -8,12 +8,12 @@ FAIL Async-iterating a closed stream never executes the loop body, but works fine promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async function promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating a partially consumed stream promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" -FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 FAIL Cancellation behavior when manually calling return(); preventCancel = false promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Cancellation behavior when manually calling return(); preventCancel = true promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Calling return() twice rejects promise_test: Unhandled rejection with value: object "TypeError: s[Symbol.asyncIterator] is not a function"
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.sharedworker-expected.txt index b865fc8ee..be95dffb 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.sharedworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.sharedworker-expected.txt
@@ -8,12 +8,12 @@ FAIL Async-iterating a closed stream never executes the loop body, but works fine promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async function promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating a partially consumed stream promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" -FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 FAIL Cancellation behavior when manually calling return(); preventCancel = false promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Cancellation behavior when manually calling return(); preventCancel = true promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Calling return() twice rejects promise_test: Unhandled rejection with value: object "TypeError: s[Symbol.asyncIterator] is not a function"
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.worker-expected.txt index b865fc8ee..be95dffb 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/async-iterator.any.worker-expected.txt
@@ -8,12 +8,12 @@ FAIL Async-iterating a closed stream never executes the loop body, but works fine promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating an empty but not closed/errored stream never executes the loop body and stalls the async function promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" FAIL Async-iterating a partially consumed stream promise_test: Unhandled rejection with value: object "TypeError: s is not async iterable" -FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected 3 got 0 -FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected 1 got 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when throwing inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when breaking inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = false assert_array_equals: cancel() should be called lengths differ, expected array ["pull", "cancel", undefined] length 3, got [] length 0 +FAIL Cancellation behavior when returning inside loop body; preventCancel = true assert_array_equals: cancel() should not be called lengths differ, expected array ["pull"] length 1, got [] length 0 FAIL Cancellation behavior when manually calling return(); preventCancel = false promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Cancellation behavior when manually calling return(); preventCancel = true promise_test: Unhandled rejection with value: object "TypeError: s.getIterator is not a function" FAIL Calling return() twice rejects promise_test: Unhandled rejection with value: object "TypeError: s[Symbol.asyncIterator] is not a function"
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any-expected.txt index 0d1c378..f7b51c8 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any-expected.txt
@@ -2,7 +2,7 @@ PASS ReadableStream can be constructed with no errors PASS ReadableStream can't be constructed with garbage PASS ReadableStream can't be constructed with an invalid type -FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected 8 got 7 +FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected array ["cancel", "constructor", "getIterator", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 8, got ["cancel", "constructor", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 7 PASS ReadableStream constructor should throw for non-function start arguments PASS ReadableStream constructor will not tolerate initial garbage as cancel argument PASS ReadableStream constructor will not tolerate initial garbage as pull argument
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.serviceworker-expected.txt index 0d1c378..f7b51c8 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.serviceworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.serviceworker-expected.txt
@@ -2,7 +2,7 @@ PASS ReadableStream can be constructed with no errors PASS ReadableStream can't be constructed with garbage PASS ReadableStream can't be constructed with an invalid type -FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected 8 got 7 +FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected array ["cancel", "constructor", "getIterator", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 8, got ["cancel", "constructor", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 7 PASS ReadableStream constructor should throw for non-function start arguments PASS ReadableStream constructor will not tolerate initial garbage as cancel argument PASS ReadableStream constructor will not tolerate initial garbage as pull argument
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.sharedworker-expected.txt index 0d1c378..f7b51c8 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.sharedworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.sharedworker-expected.txt
@@ -2,7 +2,7 @@ PASS ReadableStream can be constructed with no errors PASS ReadableStream can't be constructed with garbage PASS ReadableStream can't be constructed with an invalid type -FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected 8 got 7 +FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected array ["cancel", "constructor", "getIterator", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 8, got ["cancel", "constructor", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 7 PASS ReadableStream constructor should throw for non-function start arguments PASS ReadableStream constructor will not tolerate initial garbage as cancel argument PASS ReadableStream constructor will not tolerate initial garbage as pull argument
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.worker-expected.txt index 0d1c378..f7b51c8 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/general.any.worker-expected.txt
@@ -2,7 +2,7 @@ PASS ReadableStream can be constructed with no errors PASS ReadableStream can't be constructed with garbage PASS ReadableStream can't be constructed with an invalid type -FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected 8 got 7 +FAIL ReadableStream instances should have the correct list of properties assert_array_equals: should have all the correct properties lengths differ, expected array ["cancel", "constructor", "getIterator", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 8, got ["cancel", "constructor", "getReader", "locked", "pipeThrough", "pipeTo", "tee"] length 7 PASS ReadableStream constructor should throw for non-function start arguments PASS ReadableStream constructor will not tolerate initial garbage as cancel argument PASS ReadableStream constructor will not tolerate initial garbage as pull argument
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any-expected.txt index 0ad6737..7fb3f0f 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any-expected.txt
@@ -13,11 +13,11 @@ PASS ReadableStream teeing: closing the original should immediately close the branches PASS ReadableStream teeing: erroring the original should immediately error the branches PASS ReadableStreamTee should not use a modified ReadableStream constructor from the global object -FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 PASS ReadableStreamTee should only pull enough to fill the emptiest queue PASS ReadableStreamTee should not pull when original is already errored -FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.serviceworker-expected.txt index 0ad6737..7fb3f0f 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.serviceworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.serviceworker-expected.txt
@@ -13,11 +13,11 @@ PASS ReadableStream teeing: closing the original should immediately close the branches PASS ReadableStream teeing: erroring the original should immediately error the branches PASS ReadableStreamTee should not use a modified ReadableStream constructor from the global object -FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 PASS ReadableStreamTee should only pull enough to fill the emptiest queue PASS ReadableStreamTee should not pull when original is already errored -FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.sharedworker-expected.txt index 0ad6737..7fb3f0f 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.sharedworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.sharedworker-expected.txt
@@ -13,11 +13,11 @@ PASS ReadableStream teeing: closing the original should immediately close the branches PASS ReadableStream teeing: erroring the original should immediately error the branches PASS ReadableStreamTee should not use a modified ReadableStream constructor from the global object -FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 PASS ReadableStreamTee should only pull enough to fill the emptiest queue PASS ReadableStreamTee should not pull when original is already errored -FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.worker-expected.txt index 0ad6737..7fb3f0f 100644 --- a/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/streams/readable-streams/tee.any.worker-expected.txt
@@ -13,11 +13,11 @@ PASS ReadableStream teeing: closing the original should immediately close the branches PASS ReadableStream teeing: erroring the original should immediately error the branches PASS ReadableStreamTee should not use a modified ReadableStream constructor from the global object -FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee should not pull more chunks than can fit in the branch queue assert_array_equals: pull should only be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 PASS ReadableStreamTee should only pull enough to fill the emptiest queue PASS ReadableStreamTee should not pull when original is already errored -FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 -FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected 1 got 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 1 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while branch 2 is reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 +FAIL ReadableStreamTee stops pulling when original stream errors while both branches are reading assert_array_equals: pull should be called once lengths differ, expected array ["pull"] length 1, got ["pull", "pull"] length 2 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/tools/ci/azure/install_chrome.yml b/third_party/blink/web_tests/external/wpt/tools/ci/azure/install_chrome.yml index 6bd5c233..fd650e8 100644 --- a/third_party/blink/web_tests/external/wpt/tools/ci/azure/install_chrome.yml +++ b/third_party/blink/web_tests/external/wpt/tools/ci/azure/install_chrome.yml
@@ -1,6 +1,9 @@ steps: -# This is equivalent to `Homebrew/homebrew-cask-versions/google-chrome-dev`, -# but the raw URL is used to bypass caching. -- script: HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb +# The conflicting google-chrome and chromedriver casks are first uninstalled. +# The raw google-chrome-dev cask URL is used to bypass caching. +- script: | + HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall google-chrome || true + HOMEBREW_NO_AUTO_UPDATE=1 brew cask uninstall chromedriver || true + HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/google-chrome-dev.rb displayName: 'Install Chrome Dev' condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
diff --git a/third_party/blink/web_tests/external/wpt/tools/ci/azure/safari-technology-preview.rb b/third_party/blink/web_tests/external/wpt/tools/ci/azure/safari-technology-preview.rb index a3772b75..2d4912abb 100644 --- a/third_party/blink/web_tests/external/wpt/tools/ci/azure/safari-technology-preview.rb +++ b/third_party/blink/web_tests/external/wpt/tools/ci/azure/safari-technology-preview.rb
@@ -1,10 +1,10 @@ cask 'safari-technology-preview' do if MacOS.version <= :mojave - version '97,061-62396-20191217-bcf15e6a-ba77-4912-bd7a-5c136c6a9bb0' - sha256 '75678852258e1869daf69e853b345556fea05adcd5d71530501c3be584212830' + version '98,061-66319-20200108-e9d7f579-fba9-46c9-97fc-9445bed56df0' + sha256 '860305b6e60915a71a15fa6267c549e635a415db66c220d1deee6e482a50299c' else - version '97,061-62395-20191217-fd754f32-1f09-4449-8aab-ebb9ba1ab1c4' - sha256 'bfce6e57c4aad6b0423cabc54176de1e3115c656496a5a28dd91a7b78e16bf58' + version '98,061-66316-20200108-559ee008-6ff9-4219-8256-3c0464bbe29b' + sha256 '9bac3e5e278adfe817db69b976d4be0903d9903ae48d3d7d3744626b5c178f03' end url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg"
diff --git a/third_party/blink/web_tests/external/wpt/tools/webdriver/webdriver/client.py b/third_party/blink/web_tests/external/wpt/tools/webdriver/webdriver/client.py index 0c5bbff5..cf4c5fd 100644 --- a/third_party/blink/web_tests/external/wpt/tools/webdriver/webdriver/client.py +++ b/third_party/blink/web_tests/external/wpt/tools/webdriver/webdriver/client.py
@@ -738,6 +738,10 @@ return self.send_element_command("GET", "selected") @command + def screenshot(self): + return self.send_element_command("GET", "screenshot") + + @command def attribute(self, name): return self.send_element_command("GET", "attribute/%s" % name)
diff --git a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any-expected.txt b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any-expected.txt index e224d4c..60a27f3a 100644 --- a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any-expected.txt +++ b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any-expected.txt
@@ -14,10 +14,10 @@ FAIL Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming assert_unreached: Should have rejected: undefined Reached unreachable code FAIL Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming assert_unreached: Should have rejected: undefined Reached unreachable code PASS Response with Content-Type "application/wasm": compileStreaming -FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/wasm": compileStreaming -FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/WASM": compileStreaming -FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.serviceworker-expected.txt b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.serviceworker-expected.txt index e224d4c..60a27f3a 100644 --- a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.serviceworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.serviceworker-expected.txt
@@ -14,10 +14,10 @@ FAIL Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming assert_unreached: Should have rejected: undefined Reached unreachable code FAIL Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming assert_unreached: Should have rejected: undefined Reached unreachable code PASS Response with Content-Type "application/wasm": compileStreaming -FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/wasm": compileStreaming -FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/WASM": compileStreaming -FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.sharedworker-expected.txt b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.sharedworker-expected.txt index e224d4c..60a27f3a 100644 --- a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.sharedworker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.sharedworker-expected.txt
@@ -14,10 +14,10 @@ FAIL Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming assert_unreached: Should have rejected: undefined Reached unreachable code FAIL Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming assert_unreached: Should have rejected: undefined Reached unreachable code PASS Response with Content-Type "application/wasm": compileStreaming -FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/wasm": compileStreaming -FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/WASM": compileStreaming -FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.worker-expected.txt b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.worker-expected.txt index e224d4c..60a27f3a 100644 --- a/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.worker-expected.txt +++ b/third_party/blink/web_tests/external/wpt/wasm/webapi/contenttype.any.worker-expected.txt
@@ -14,10 +14,10 @@ FAIL Response with Content-Type "application/wasm;charset=UTF-8": compileStreaming assert_unreached: Should have rejected: undefined Reached unreachable code FAIL Response with Content-Type "application/wasm;charset=UTF-8": instantiateStreaming assert_unreached: Should have rejected: undefined Reached unreachable code PASS Response with Content-Type "application/wasm": compileStreaming -FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "application/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/wasm": compileStreaming -FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/wasm": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 PASS Response with Content-Type "APPLICATION/WASM": compileStreaming -FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected 0 got 1 +FAIL Response with Content-Type "APPLICATION/WASM": instantiateStreaming assert_array_equals: matching export keys lengths differ, expected array [] length 0, got ["increment"] length 1 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt index 2f6eb6a..b170157 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt +++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt
@@ -324,8 +324,8 @@ PASS font-variant-numeric uses discrete animation when animating between "lining-nums" and "oldstyle-nums" with keyframe easing PASS font-variation-settings (type: fontVariationSettings) has testInterpolation function PASS font-variation-settings supports animation as float -FAIL font-variation-settings supports animation as float with multiple tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms property 0, expected "\"wdth\" 2" but got "\"wdth\" 1" -FAIL font-variation-settings supports animation as float with multiple duplicate tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms property 0, expected "\"wdth\" 2" but got "\"wdth\" 1" +FAIL font-variation-settings supports animation as float with multiple tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms expected property 0 to be "\"wdth\" 2" but got "\"wdth\" 1" (expected array ["\"wdth\" 2", "\"wght\" 1.2"] got ["\"wdth\" 1", "\"wght\" 1.1"]) +FAIL font-variation-settings supports animation as float with multiple duplicate tags assert_array_equals: The computed values should be "wdth" 2,"wght" 1.2 at 250ms expected property 0 to be "\"wdth\" 2" but got "\"wdth\" 1" (expected array ["\"wdth\" 2", "\"wght\" 1.2"] got ["\"wdth\" 1", "\"wght\" 1.1"]) PASS font-variation-settings (type: discrete) has testInterpolation function PASS font-variation-settings uses discrete animation when animating between ""wght" 1.1, "wdth" 1" and ""wdth" 5" with linear easing PASS font-variation-settings uses discrete animation when animating between ""wght" 1.1, "wdth" 1" and ""wdth" 5" with effect easing
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt index eef153d..73798bb 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt +++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt
@@ -19,7 +19,7 @@ PASS Returns animations based on dynamic changes to individual animations' end delay PASS Returns animations based on dynamic changes to individual animations' iteration count PASS Returns animations based on dynamic changes to individual animations' current time -FAIL Does not return an animation that has been removed assert_array_equals: lengths differ, expected 1 got 2 +FAIL Does not return an animation that has been removed assert_array_equals: lengths differ, expected array [object "[object Animation]"] length 1, got [object "[object Animation]", object "[object Animation]"] length 2 FAIL Returns an animation that has been persisted promise_test: Unhandled rejection with value: object "TypeError: animA.persist is not a function" PASS Triggers a style change event Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt index c247e273..dc321939a 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt +++ b/third_party/blink/web_tests/external/wpt/web-animations/interfaces/DocumentOrShadowRoot/getAnimations-expected.txt
@@ -6,7 +6,7 @@ PASS Document.getAnimations() does not return an animation with a null target FAIL Document.getAnimations() returns animations on elements inside same-origin iframes assert_equals: expected 1 but got 0 FAIL ShadowRoot.getAnimations() return all animations in the shadow tree div.shadowRoot.getAnimations is not a function -FAIL Document.getAnimations() does NOT return animations in shadow trees assert_array_equals: getAnimations() called on Document does not return animations from shadow trees lengths differ, expected 0 got 1 +FAIL Document.getAnimations() does NOT return animations in shadow trees assert_array_equals: getAnimations() called on Document does not return animations from shadow trees lengths differ, expected array [] length 0, got [object "[object Animation]"] length 1 PASS Document.getAnimations() triggers a style change event Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/__init__.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/__init__.py index 9de87924..9a82cc4 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/__init__.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/__init__.py
@@ -1,12 +1,10 @@ -def element_rect(session, element): - return session.execute_script(""" - let {devicePixelRatio} = window; - let {left, top, width, height} = arguments[0].getBoundingClientRect(); +def element_dimensions(session, element): + return tuple(session.execute_script(""" + const {devicePixelRatio} = window; + let {width, height} = arguments[0].getBoundingClientRect(); - return { - x: Math.floor((left + window.pageXOffset) * devicePixelRatio), - y: Math.floor((top + window.pageYOffset) * devicePixelRatio), - width: Math.floor(width * devicePixelRatio), - height: Math.floor(height * devicePixelRatio), - }; - """, args=(element,)) + return [ + Math.floor(width * devicePixelRatio), + Math.floor(height * devicePixelRatio), + ]; + """, args=(element,)))
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/iframe.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/iframe.py index 242122f0..83f55def 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/iframe.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/iframe.py
@@ -4,21 +4,58 @@ from tests.support.image import png_dimensions from tests.support.inline import iframe, inline -from . import element_rect +from . import element_dimensions +DEFAULT_CONTENT = "<div id='content'>Lorem ipsum dolor sit amet.</div>" -DEFAULT_CSS_STYLE = """ +REFERENCE_CONTENT = "<div id='outer'>{}</div>".format(DEFAULT_CONTENT) +REFERENCE_STYLE = """ <style> - div, iframe { + #outer { display: block; - border: 1px solid blue; - width: 10em; - height: 10em; + margin: 0; + border: 0; + width: 200px; + height: 200px; + } + #content { + display: block; + margin: 0; + border: 0; + width: 100px; + height: 100px; + background: green; } </style> """ -DEFAULT_CONTENT = "<div>Lorem ipsum dolor sit amet.</div>" +OUTER_IFRAME_STYLE = """ + <style> + iframe { + display: block; + margin: 0; + border: 0; + width: 200px; + height: 200px; + } + </style> +""" + +INNER_IFRAME_STYLE = """ + <style> + body { + margin: 0; + } + div { + display: block; + margin: 0; + border: 0; + width: 100px; + height: 100px; + background: green; + } + </style> +""" def take_element_screenshot(session, element_id): @@ -31,24 +68,55 @@ ) +def test_frame_element(session): + # Create a reference element which looks exactly like the frame's content + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) + + # Capture the inner content as reference image + ref_el = session.find.css("#content", all=False) + ref_screenshot = ref_el.screenshot() + ref_dimensions = element_dimensions(session, ref_el) + + assert png_dimensions(ref_screenshot) == ref_dimensions + + # Capture the frame's element + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) + session.url = inline("""{0}{1}""".format(OUTER_IFRAME_STYLE, iframe(iframe_content))) + + frame = session.find.css("iframe", all=False) + session.switch_frame(frame) + div = session.find.css("div", all=False) + div_dimensions = element_dimensions(session, div) + assert div_dimensions == ref_dimensions + + response = take_element_screenshot(session, div.id) + div_screenshot = assert_success(response) + + assert png_dimensions(div_screenshot) == ref_dimensions + assert div_screenshot == ref_screenshot + + @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) def test_source_origin(session, url, domain): - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, DEFAULT_CONTENT)) - element = session.find.css("div", all=False) - rect = element_rect(session, element) + # Create a reference element which looks exactly like the iframe + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) - response = take_element_screenshot(session, element.id) + div = session.find.css("div", all=False) + div_dimensions = element_dimensions(session, div) + + response = take_element_screenshot(session, div.id) reference_screenshot = assert_success(response) - assert png_dimensions(reference_screenshot) == (rect["width"], rect["height"]) + assert png_dimensions(reference_screenshot) == div_dimensions - iframe_content = "<style>body {{ margin: 0; }}</style>{}".format(DEFAULT_CONTENT) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) session.url = inline("""{0}{1}""".format( - DEFAULT_CSS_STYLE, iframe(iframe_content, domain=domain))) + OUTER_IFRAME_STYLE, iframe(iframe_content, domain=domain))) + frame_element = session.find.css("iframe", all=False) - frame_rect = element_rect(session, frame_element) + frame_dimensions = element_dimensions(session, frame_element) response = take_element_screenshot(session, frame_element.id) screenshot = assert_success(response) - assert png_dimensions(screenshot) == (frame_rect["width"], frame_rect["height"]) + assert png_dimensions(screenshot) == frame_dimensions assert screenshot == reference_screenshot
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/screenshot.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/screenshot.py index fd460b65..50d33a2 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/screenshot.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_element_screenshot/screenshot.py
@@ -2,7 +2,7 @@ from tests.support.image import png_dimensions from tests.support.inline import inline -from . import element_rect +from . import element_dimensions def take_element_screenshot(session, element_id): @@ -32,9 +32,8 @@ def test_format_and_dimensions(session): session.url = inline("<input>") element = session.find.css("input", all=False) - rect = element_rect(session, element) response = take_element_screenshot(session, element.id) screenshot = assert_success(response) - assert png_dimensions(screenshot) == (rect["width"], rect["height"]) + assert png_dimensions(screenshot) == element_dimensions(session, element)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/__init__.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/__init__.py index c07f8d1..f3001d9 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/__init__.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/__init__.py
@@ -1,6 +1,18 @@ +def element_dimensions(session, element): + return tuple(session.execute_script(""" + const {devicePixelRatio} = window; + let {width, height} = arguments[0].getBoundingClientRect(); + + return [ + Math.floor(width * devicePixelRatio), + Math.floor(height * devicePixelRatio), + ]; + """, args=(element,))) + + def viewport_dimensions(session): return tuple(session.execute_script(""" - let {devicePixelRatio, innerHeight, innerWidth} = window; + const {devicePixelRatio, innerHeight, innerWidth} = window; return [ Math.floor(innerWidth * devicePixelRatio),
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/iframe.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/iframe.py index 66df6ec9..601c039d 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/iframe.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/take_screenshot/iframe.py
@@ -4,21 +4,58 @@ from tests.support.image import png_dimensions from tests.support.inline import iframe, inline -from . import viewport_dimensions +from . import element_dimensions, viewport_dimensions +DEFAULT_CONTENT = "<div id='content'>Lorem ipsum dolor sit amet.</div>" -DEFAULT_CSS_STYLE = """ +REFERENCE_CONTENT = "<div id='outer'>{}</div>".format(DEFAULT_CONTENT) +REFERENCE_STYLE = """ <style> - div, iframe { + #outer { display: block; - border: 1px solid blue; - width: 10em; - height: 10em; + margin: 0; + border: 0; + width: 200px; + height: 200px; + } + #content { + display: block; + margin: 0; + border: 0; + width: 100px; + height: 100px; + background: green; } </style> """ -DEFAULT_CONTENT = "<div>Lorem ipsum dolor sit amet.</div>" +OUTER_IFRAME_STYLE = """ + <style> + iframe { + display: block; + margin: 0; + border: 0; + width: 200px; + height: 200px; + } + </style> +""" + +INNER_IFRAME_STYLE = """ + <style> + body { + margin: 0; + } + div { + display: block; + margin: 0; + border: 0; + width: 100px; + height: 100px; + background: green; + } + </style> +""" def take_screenshot(session): @@ -27,8 +64,8 @@ def test_always_captures_top_browsing_context(session): - iframe_content = "<style>body {{ margin: 0; }}</style>{}".format(DEFAULT_CONTENT) - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, iframe(iframe_content))) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) + session.url = inline("""{0}{1}""".format(OUTER_IFRAME_STYLE, iframe(iframe_content))) response = take_screenshot(session) reference_screenshot = assert_success(response) @@ -40,20 +77,21 @@ response = take_screenshot(session) screenshot = assert_success(response) + assert png_dimensions(screenshot) == png_dimensions(reference_screenshot) assert screenshot == reference_screenshot @pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) -def test_source_origin(session, url, domain): - session.url = inline("""{0}{1}""".format(DEFAULT_CSS_STYLE, DEFAULT_CONTENT)) +def test_source_origin(session, domain): + session.url = inline("{0}{1}".format(REFERENCE_STYLE, REFERENCE_CONTENT)) response = take_screenshot(session) reference_screenshot = assert_success(response) assert png_dimensions(reference_screenshot) == viewport_dimensions(session) - iframe_content = "<style>body {{ margin: 0; }}</style>{}".format(DEFAULT_CONTENT) + iframe_content = "{0}{1}".format(INNER_IFRAME_STYLE, DEFAULT_CONTENT) session.url = inline("""{0}{1}""".format( - DEFAULT_CSS_STYLE, iframe(iframe_content, domain=domain))) + OUTER_IFRAME_STYLE, iframe(iframe_content, domain=domain))) response = take_screenshot(session) screenshot = assert_success(response)
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-addIceCandidate-timing.https-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-addIceCandidate-timing.https-expected.txt index ca6341d..16449ba0 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-addIceCandidate-timing.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/RTCPeerConnection-addIceCandidate-timing.https-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. PASS addIceCandidate is not resolved first if 2x setLocalDescription operations are pending -FAIL addIceCandidate and setLocalDescription are resolved in the correct order, as defined by the operations chain specification assert_array_equals: property 1, expected "setLocalDescription 2" but got "addIceCandidate" +FAIL addIceCandidate and setLocalDescription are resolved in the correct order, as defined by the operations chain specification assert_array_equals: expected property 1 to be "setLocalDescription 2" but got "addIceCandidate" (expected array ["setLocalDescription 1", "setLocalDescription 2", "addIceCandidate"] got ["setLocalDescription 1", "addIceCandidate", "setLocalDescription 2"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt index 5edbe21..0d03127 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 497 tests; 467 PASS, 30 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 496 tests; 466 PASS, 30 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS idl_test validation PASS Test driver for asyncInitCertificate @@ -491,7 +491,6 @@ PASS RTCError interface: existence and properties of interface prototype object's @@unscopables property PASS RTCError interface: attribute errorDetail PASS RTCError interface: attribute sdpLineNumber -PASS RTCError interface: attribute httpRequestStatusCode PASS RTCError interface: attribute sctpCauseCode PASS RTCError interface: attribute receivedAlert PASS RTCError interface: attribute sentAlert
diff --git a/third_party/blink/web_tests/external/wpt/webstorage/storage_builtins-expected.txt b/third_party/blink/web_tests/external/wpt/webstorage/storage_builtins-expected.txt index 458ce31..b5f739b 100644 --- a/third_party/blink/web_tests/external/wpt/webstorage/storage_builtins-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webstorage/storage_builtins-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -FAIL Builtins in localStorage assert_array_equals: b property 0, expected function "function key() { [native code] }" but got "key" -FAIL Builtins in sessionStorage assert_array_equals: b property 0, expected function "function key() { [native code] }" but got "key" +FAIL Builtins in localStorage assert_array_equals: b expected property 0 to be function "function key() { [native code] }" but got "key" (expected array [function "function key() { [native code] }", function "function getItem() { [native code] }", function "function setItem() { [native code] }", function "function removeItem() { [native code] }", function "function clear() { [native code] }"] got ["key", "getItem", "setItem", "removeItem", "clear"]) +FAIL Builtins in sessionStorage assert_array_equals: b expected property 0 to be function "function key() { [native code] }" but got "key" (expected array [function "function key() { [native code] }", function "function getItem() { [native code] }", function "function setItem() { [native code] }", function "function removeItem() { [native code] }", function "function clear() { [native code] }"] got ["key", "getItem", "setItem", "removeItem", "clear"]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt b/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt index 23667a0..37c3e3b 100644 --- a/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt +++ b/third_party/blink/web_tests/external/wpt/workers/interfaces/SharedWorkerGlobalScope/onconnect-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL onconnect assert_array_equals: property 1, expected "null" but got "[object Object]" +FAIL onconnect assert_array_equals: expected property 1 to be "null" but got "[object Object]" (expected array ["null", "null", "function", ""] got ["null", "[object Object]", "function", null]) Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/xhr/open-during-abort-processing-expected.txt b/third_party/blink/web_tests/external/wpt/xhr/open-during-abort-processing-expected.txt index 83feafc..b169685 100644 --- a/third_party/blink/web_tests/external/wpt/xhr/open-during-abort-processing-expected.txt +++ b/third_party/blink/web_tests/external/wpt/xhr/open-during-abort-processing-expected.txt
@@ -1,4 +1,4 @@ This is a testharness.js-based test. -FAIL XMLHttpRequest: open() during abort processing - abort() called from onloadstart assert_array_equals: lengths differ, expected 7 got 9 +FAIL XMLHttpRequest: open() during abort processing - abort() called from onloadstart assert_array_equals: lengths differ, expected array ["onloadstart readyState before abort() 1", "onreadystatechange readyState before open() 4", "onreadystatechange readyState after open() 1", "onloadstart readyState 1", "client.onabort 1", "readyState after abort() 1", "client.onload 4"] length 7, got ["onloadstart readyState before abort() 1", "onreadystatechange readyState before open() 4", "onreadystatechange readyState after open() 1", "onloadstart readyState 1", "upload.onabort 1", "upload.onloadend 1", "client.onabort 1", "readyState after abort() 1", "client.onload 4"] length 9 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/http/tests/devtools/console/console-format-es6-2-expected.txt b/third_party/blink/web_tests/http/tests/devtools/console/console-format-es6-2-expected.txt index f18db6f..01fe44c 100644 --- a/third_party/blink/web_tests/http/tests/devtools/console/console-format-es6-2-expected.txt +++ b/third_party/blink/web_tests/http/tests/devtools/console/console-format-es6-2-expected.txt
@@ -20,10 +20,10 @@ console-format-es6-2.js:16 [SetIterator] globals[4] SetIterator {41, {…}} -console-format-es6-2.js:15 SetIterator {41, {…}} +console-format-es6-2.js:15 SetIterator {41 => 41, {…} => {…}} console-format-es6-2.js:16 [SetIterator] globals[5] -SetIterator {41, {…}} +SetIterator {41 => 41, {…} => {…}} console-format-es6-2.js:15 MapIterator {{…}} console-format-es6-2.js:16 [MapIterator] globals[6]
diff --git a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-ui/click-gutter-breakpoint.js b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-ui/click-gutter-breakpoint.js index b8f9506..329741a 100644 --- a/third_party/blink/web_tests/http/tests/devtools/sources/debugger-ui/click-gutter-breakpoint.js +++ b/third_party/blink/web_tests/http/tests/devtools/sources/debugger-ui/click-gutter-breakpoint.js
@@ -47,6 +47,7 @@ async function runScript() { TestRunner.evaluateInPageWithTimeout('f2()'); await SourcesTestRunner.waitUntilPausedPromise(); + runtime.sharedInstance(Sources.JavaScriptBreakpointsSidebarPane).doUpdate(); await SourcesTestRunner.waitBreakpointSidebarPane(); SourcesTestRunner.dumpBreakpointSidebarPane('while paused'); SourcesTestRunner.completeDebuggerTest();
diff --git a/third_party/blink/web_tests/platform/android/webaudio/dom-exceptions-expected.txt b/third_party/blink/web_tests/platform/android/webaudio/dom-exceptions-expected.txt index 6d34db4..5a84566 100644 --- a/third_party/blink/web_tests/platform/android/webaudio/dom-exceptions-expected.txt +++ b/third_party/blink/web_tests/platform/android/webaudio/dom-exceptions-expected.txt
@@ -124,7 +124,7 @@ PASS < [invalid-offline-audio-context-parameters] All assertions passed. (total 5 assertions) PASS > [invalid-frame-length] PASS testContext = new OfflineAudioContext(1, -88200000000000, 44100) did not throw an exception. -PASS testContext.startRendering() rejected correctly with NotSupportedError: startRendering failed to create AudioBuffer(1, 1448390656, 44100). +PASS testContext.startRendering() rejected correctly with NotSupportedError: Failed to execute 'startRendering' on 'OfflineAudioContext': startRendering failed to create AudioBuffer(1, 1448390656, 44100). PASS < [invalid-frame-length] All assertions passed. (total 2 assertions) PASS > [waveshaper] PASS node.oversample = "9x" did not throw an exception.
diff --git a/third_party/blink/web_tests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png b/third_party/blink/web_tests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png index ff922e2..d551823a 100644 --- a/third_party/blink/web_tests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png +++ b/third_party/blink/web_tests/platform/linux/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png index 91ef2aa91..870aa92 100644 --- a/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png new file mode 100644 index 0000000..79b6e0e1 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png new file mode 100644 index 0000000..b6f6340 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png index 160ea2d..d0efbff 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png index 24ea3c6..5682c73 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png index 6b84ae4..206c123 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png index 8eff760b..6af37c0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index 145d3ac..823bb72 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png index 6a301fb..d39f73f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 9037c9c..2c32e3a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index 901a179..f14e395c 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png index 72b344f..392b838b 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 319f53ae..a8ed943f 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index b75995d..0bb0fb7 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index fba57fc..0fdfaee 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index f7b81ff..a26105a 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/hindi-spacing-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/hindi-spacing-expected.png index 9ddb46ca..d22d7a8 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/hindi-spacing-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/hindi-spacing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png index 0c9b0efc3..8d4bb1f0 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png index 3386275..33bc9d24 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png index 233d1e85..e2603aa 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/selection/mixed-directionality-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/updateNewFont-expected.png b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/updateNewFont-expected.png index 8ba72a55..ae77d83 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/text-antialias/updateNewFont-expected.png +++ b/third_party/blink/web_tests/platform/linux/virtual/text-antialias/updateNewFont-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png new file mode 100644 index 0000000..7d479d7 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png new file mode 100644 index 0000000..0e12fae0 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png new file mode 100644 index 0000000..ddf3ae17 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png new file mode 100644 index 0000000..b342357 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png new file mode 100644 index 0000000..3dc24da --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png new file mode 100644 index 0000000..062c160 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png new file mode 100644 index 0000000..17a4393 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png new file mode 100644 index 0000000..17a4393 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png new file mode 100644 index 0000000..d235912b --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png new file mode 100644 index 0000000..64203ed7 --- /dev/null +++ b/third_party/blink/web_tests/platform/linux/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.11/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt new file mode 100644 index 0000000..4d3d205 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.11/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt
@@ -0,0 +1,15 @@ +This is a testharness.js-based test. +PASS Test mousepointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. +PASS Test mousepointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. +PASS Test mousepointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test mousepointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +PASS Test touchpointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. +PASS Test touchpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. +PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +PASS Test penpointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. +FAIL Test penpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. assert_array_equals: Received events: outerFrame received pointerdown,outerFrame received gotpointercapture,outerFrame received pointermove,innerFrame received pointerup lengths differ, expected array ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "outerFrame received pointerup", "outerFrame received lostpointercapture"] length 5, got ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "innerFrame received pointerup"] length 4 +PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt new file mode 100644 index 0000000..ae0242c --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac10.12/external/wpt/pointerevents/pointerevent_pointercapture_in_frame-expected.txt
@@ -0,0 +1,15 @@ +This is a testharness.js-based test. +FAIL Test mousepointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. assert_array_equals: Received events: innerFrame received pointerdown,innerFrame received gotpointercapture,innerFrame received pointermove,innerFrame received pointerup,innerFrame received lostpointercapture lengths differ, expected array ["innerFrame received pointerdown", "innerFrame received gotpointercapture", "innerFrame received pointermove", "innerFrame received pointermove", "innerFrame received pointerup", "innerFrame received lostpointercapture"] length 6, got ["innerFrame received pointerdown", "innerFrame received gotpointercapture", "innerFrame received pointermove", "innerFrame received pointerup", "innerFrame received lostpointercapture"] length 5 +PASS Test mousepointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. +PASS Test mousepointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test mousepointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +PASS Test touchpointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. +PASS Test touchpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. +PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test touchpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +PASS Test penpointer capture in same-origin frame: Pointer down at inner frame and set pointer capture. +FAIL Test penpointer capture in same-origin frame: Pointer down at outer frame body and set pointer capture. assert_array_equals: Received events: outerFrame received pointerdown,outerFrame received gotpointercapture,outerFrame received pointermove,innerFrame received pointerup lengths differ, expected array ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "outerFrame received pointerup", "outerFrame received lostpointercapture"] length 5, got ["outerFrame received pointerdown", "outerFrame received gotpointercapture", "outerFrame received pointermove", "innerFrame received pointerup"] length 4 +PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at inner frame, then release on next pointermove. +PASS Test penpointer capture in same-origin frame: Pointerdown with set capture at outer frame, then release on next pointermove. +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png index 9e354f3..1d4ea36 100644 --- a/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png +++ b/third_party/blink/web_tests/platform/win/fast/hidpi/scrollbar-appearance-increase-device-scale-factor-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png index 8dead32..e5b8d5a 100644 --- a/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/invalidation/forms/submit-focus-by-mouse-then-keydown-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png new file mode 100644 index 0000000..45b6389 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom090-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png new file mode 100644 index 0000000..0c7aa00 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png b/third_party/blink/web_tests/platform/win/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png new file mode 100644 index 0000000..c083387 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/layout_ng_flex_box/css3/flexbox/button-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png new file mode 100644 index 0000000..c8ddef9 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow-expected.png new file mode 100644 index 0000000..8e15644 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png new file mode 100644 index 0000000..fb11c48 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png new file mode 100644 index 0000000..932f5931 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index 4adefc9..328dc8f 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png index a05aad54..9b4ea6c 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index 945f017..38a1413 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor150/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index eb23556..e4f0b3b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png index 8c357dd..1083dc32 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png index db615d8..33b91c7 100644 --- a/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/scalefactor200withzoom/fast/hidpi/static/validation-bubble-appearance-hidpi-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index bccf68f..edea03e 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index 7aaa1ca..b9ccdc8 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index 537bfda..2d1d84b 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/hindi-spacing-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/hindi-spacing-expected.png index af56f03..7d307c6 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/hindi-spacing-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/hindi-spacing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png index a157a43..ec93510 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png index 3315ee2..4c599a2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/international/unicode-bidi-plaintext-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/mixed-directionality-selection-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/mixed-directionality-selection-expected.png index 77da2273..34db8a2 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/mixed-directionality-selection-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/selection/mixed-directionality-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/text-antialias/updateNewFont-expected.png b/third_party/blink/web_tests/platform/win/virtual/text-antialias/updateNewFont-expected.png index 2af17ee5..abb2cca 100644 --- a/third_party/blink/web_tests/platform/win/virtual/text-antialias/updateNewFont-expected.png +++ b/third_party/blink/web_tests/platform/win/virtual/text-antialias/updateNewFont-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-expected.png new file mode 100644 index 0000000..95b569f --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png new file mode 100644 index 0000000..4ad508f8 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png new file mode 100644 index 0000000..4529d58 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLProgressElement/progress-element-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLProgressElement/progress-element-expected.png new file mode 100644 index 0000000..4edca46 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/dom/HTMLProgressElement/progress-element-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png new file mode 100644 index 0000000..df7330b --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/bad-xml-slash-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png new file mode 100644 index 0000000..d3a52946 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/entity-comment-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png new file mode 100644 index 0000000..4c28784 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/fast/parser/open-comment-in-textarea-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png new file mode 100644 index 0000000..7ec5c84 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-no-summary4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png new file mode 100644 index 0000000..c941480 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open-javascript-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png new file mode 100644 index 0000000..9bb660e --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open2-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png new file mode 100644 index 0000000..9bb660e --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-open4-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png new file mode 100644 index 0000000..fa58b375 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-summary-child-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png new file mode 100644 index 0000000..1ac5844 --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/web-components-v0-disabled/html/details_summary/details-replace-text-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png new file mode 100644 index 0000000..2e859d4 --- /dev/null +++ b/third_party/blink/web_tests/platform/win7/virtual/cascade/fast/forms/select-popup/popup-menu-appearance-zoom110-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png index 0188c46..fcf5ad4d 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/prefer_compositing_to_lcd_text/scrollbars/listbox-scrollbar-combinations-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png index b45a982c..918c7ac 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png index 09b2853..95060cf 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png index aa5c645..eca6e4b 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-disabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png index 5526b6c..ba02d54bb 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png index b202f39..e287e19 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/caps-lock-indicator-enabled-rtl-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/hindi-spacing-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/hindi-spacing-expected.png index bf608e5..acc0a47 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/hindi-spacing-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/hindi-spacing-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png index 75eb5e1a..eea1b57b 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/international/rtl-white-space-pre-wrap-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png index ed65178..569351f 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/selection/mixed-directionality-selection-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/updateNewFont-expected.png b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/updateNewFont-expected.png index 5b3b8ee..2f47f6f 100644 --- a/third_party/blink/web_tests/platform/win7/virtual/text-antialias/updateNewFont-expected.png +++ b/third_party/blink/web_tests/platform/win7/virtual/text-antialias/updateNewFont-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt new file mode 100644 index 0000000..d2a2d32 --- /dev/null +++ b/third_party/blink/web_tests/virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt
@@ -0,0 +1,94 @@ +This is a testharness.js-based test. +Found 90 tests; 45 PASS, 45 FAIL, 0 TIMEOUT, 0 NOTRUN. +PASS Basic sanity-checking (cross-origin) +PASS Basic sanity-checking (same-origin + document.domain) +PASS Basic sanity-checking (cross-site) +FAIL Only whitelisted properties are accessible cross-origin (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL Only whitelisted properties are accessible cross-origin (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL Only whitelisted properties are accessible cross-origin (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL Only whitelisted properties are usable as cross-origin this objects (cross-origin) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." +FAIL Only whitelisted properties are usable as cross-origin this objects (same-origin + document.domain) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." +FAIL Only whitelisted properties are usable as cross-origin this objects (cross-site) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." +PASS [[GetPrototypeOf]] should return null (cross-origin) +PASS [[GetPrototypeOf]] should return null (same-origin + document.domain) +PASS [[GetPrototypeOf]] should return null (cross-site) +FAIL [[SetPrototypeOf]] should return false (cross-origin) assert_throws: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +FAIL [[SetPrototypeOf]] should return false (same-origin + document.domain) assert_throws: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +FAIL [[SetPrototypeOf]] should return false (cross-site) assert_throws: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +PASS [[IsExtensible]] should return true for cross-origin objects (cross-origin) +PASS [[IsExtensible]] should return true for cross-origin objects (same-origin + document.domain) +PASS [[IsExtensible]] should return true for cross-origin objects (cross-site) +FAIL [[PreventExtensions]] should throw for cross-origin objects (cross-origin) assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +FAIL [[PreventExtensions]] should throw for cross-origin objects (same-origin + document.domain) assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +FAIL [[PreventExtensions]] should throw for cross-origin objects (cross-site) assert_throws: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected object "TypeError" ("TypeError") +FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (cross-origin) assert_equals: property descriptor for 0 should be enumerable expected true but got false +FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (same-origin + document.domain) assert_equals: property descriptor for 0 should be enumerable expected true but got false +FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (cross-site) assert_equals: property descriptor for 0 should be enumerable expected true but got false +PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (cross-origin) +PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (same-origin + document.domain) +PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (cross-site) +PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (cross-origin) +PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (same-origin + document.domain) +PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (cross-site) +PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (cross-origin) +PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (same-origin + document.domain) +PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (cross-site) +PASS [[Delete]] Should throw on cross-origin objects (cross-origin) +PASS [[Delete]] Should throw on cross-origin objects (same-origin + document.domain) +PASS [[Delete]] Should throw on cross-origin objects (cross-site) +PASS [[DefineOwnProperty]] Should throw for cross-origin objects (cross-origin) +PASS [[DefineOwnProperty]] Should throw for cross-origin objects (same-origin + document.domain) +PASS [[DefineOwnProperty]] Should throw for cross-origin objects (cross-site) +FAIL Can only enumerate safelisted enumerable properties (cross-origin) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 +FAIL Can only enumerate safelisted enumerable properties (same-origin + document.domain) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 +FAIL Can only enumerate safelisted enumerable properties (cross-site) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 +FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 +FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-origin) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" +FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (same-origin + document.domain) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" +FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-site) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" +FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (cross-origin) assert_equals: expected "then" but got "postMessage" +FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (same-origin + document.domain) assert_equals: expected "then" but got "postMessage" +FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (cross-site) assert_equals: expected "then" but got "postMessage" +PASS A and B jointly observe the same identity for cross-origin Window and Location (cross-origin) +PASS A and B jointly observe the same identity for cross-origin Window and Location (same-origin + document.domain) +PASS A and B jointly observe the same identity for cross-origin Window and Location (cross-site) +PASS Cross-origin functions get local Function.prototype (cross-origin) +PASS Cross-origin functions get local Function.prototype (same-origin + document.domain) +PASS Cross-origin functions get local Function.prototype (cross-site) +FAIL Cross-origin Window accessors get local Function.prototype (cross-origin) Cannot read property 'name' of undefined +FAIL Cross-origin Window accessors get local Function.prototype (same-origin + document.domain) Cannot read property 'name' of undefined +FAIL Cross-origin Window accessors get local Function.prototype (cross-site) Cannot read property 'name' of undefined +PASS Same-origin observers get different functions for cross-origin objects (cross-origin) +PASS Same-origin observers get different functions for cross-origin objects (same-origin + document.domain) +PASS Same-origin observers get different functions for cross-origin objects (cross-site) +FAIL Same-origin observers get different accessors for cross-origin Window (cross-origin) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined +FAIL Same-origin observers get different accessors for cross-origin Window (same-origin + document.domain) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined +FAIL Same-origin observers get different accessors for cross-origin Window (cross-site) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined +FAIL Same-origin observers get different accessors for cross-origin Location (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL Same-origin observers get different accessors for cross-origin Location (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL Same-origin observers get different accessors for cross-origin Location (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. +FAIL {}.toString.call() does the right thing on cross-origin objects (cross-origin) assert_equals: expected "[object Object]" but got "[object Location]" +FAIL {}.toString.call() does the right thing on cross-origin objects (same-origin + document.domain) assert_equals: expected "[object Object]" but got "[object Location]" +FAIL {}.toString.call() does the right thing on cross-origin objects (cross-site) assert_equals: expected "[object Object]" but got "[object Location]" +PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (cross-origin) +PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (same-origin + document.domain) +PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (cross-site) +PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (cross-origin) +PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (same-origin + document.domain) +PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (cross-site) +PASS Resolving a promise with a cross-origin location should work (cross-origin) +PASS Resolving a promise with a cross-origin location should work (same-origin + document.domain) +PASS Resolving a promise with a cross-origin location should work (cross-site) +PASS LenientThis behavior (cross-origin) +PASS LenientThis behavior (same-origin + document.domain) +PASS LenientThis behavior (cross-site) +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt index 6b44b93..99954d1 100644 --- a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt +++ b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt
@@ -1,6 +1,6 @@ This is a testharness.js-based test. FAIL addTrack: creates a transceiver for the sender assert_true: expected true got false -FAIL addTrack: "transceiver == {sender,receiver}" assert_array_equals: pc.getTransceivers() equals [transceiver] lengths differ, expected 1 got 0 +FAIL addTrack: "transceiver == {sender,receiver}" assert_array_equals: pc.getTransceivers() equals [transceiver] lengths differ, expected array [null] length 1, got [] length 0 FAIL addTrack: transceiver.sender is associated with the track promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'sender' of null" FAIL addTrack: transceiver.receiver has its own track promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'receiver' of null" FAIL addTrack: transceiver.receiver's track is muted promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'receiver' of null" @@ -14,7 +14,7 @@ PASS setRemoteDescription(offer): ontrack's stream.id is the same as stream.id FAIL setRemoteDescription(offer): ontrack fires with a transceiver. assert_true: trackEvent.transceiver instanceof RTCRtpTransceiver expected true got false FAIL setRemoteDescription(offer): transceiver.mid is the same on both ends promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'mid' of null" -FAIL setRemoteDescription(offer): "transceiver == {sender,receiver}" assert_array_equals: pc2.getTransceivers() equals [transceiver] lengths differ, expected 1 got 0 +FAIL setRemoteDescription(offer): "transceiver == {sender,receiver}" assert_array_equals: pc2.getTransceivers() equals [transceiver] lengths differ, expected array [null] length 1, got [] length 0 FAIL setRemoteDescription(offer): transceiver.direction is recvonly promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'direction' of null" FAIL setRemoteDescription(offer): transceiver.currentDirection is null promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'currentDirection' of null" FAIL setRemoteDescription(offer): transceiver.stopped is false promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stopped' of null"
diff --git a/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt b/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt index 0df498aa..f37a2a2 100644 --- a/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt +++ b/third_party/blink/web_tests/webaudio/dom-exceptions-expected.txt
@@ -131,7 +131,7 @@ PASS < [invalid-offline-audio-context-parameters] All assertions passed. (total 5 assertions) PASS > [invalid-frame-length] PASS testContext = new OfflineAudioContext(1, -88200000000000, 44100) did not throw an exception. -PASS testContext.startRendering() rejected correctly with NotSupportedError: startRendering failed to create AudioBuffer(1, 1448390656, 44100). +PASS testContext.startRendering() rejected correctly with NotSupportedError: Failed to execute 'startRendering' on 'OfflineAudioContext': startRendering failed to create AudioBuffer(1, 1448390656, 44100). PASS < [invalid-frame-length] All assertions passed. (total 2 assertions) PASS > [waveshaper] PASS node.oversample = "9x" did not throw an exception.
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 1798727..6faf0c4 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -13160,6 +13160,8 @@ <int value="0" label="D3D_FEATURE_LEVEL_UNKNOWN"/> <int value="1" label="D3D_FEATURE_LEVEL_12_0"/> <int value="2" label="D3D_FEATURE_LEVEL_12_1"/> + <int value="3" label="D3D_FEATURE_LEVEL_11_0"/> + <int value="4" label="D3D_FEATURE_LEVEL_11_1"/> </enum> <enum name="D3D9InitializeResult">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 5df8935..bdbe3b3 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -48877,6 +48877,34 @@ </summary> </histogram> +<histogram name="Extensions.ForceInstalledFetchTries" units="retries" + expires_after="2020-05-01"> + <owner>burunduk@chromium.org</owner> + <owner>swapnilgupta@google.com</owner> + <owner>poromov@chromium.org</owner> + <summary> + Number of fetch retries made when CRX fetch failed for enterprise policy + forced extensions. Recorded for each forced extension that failed to install + after 5 minutes with Extensions.ForceInstalledFailureReason2 equal to + CRX_FETCH_FAILED. + </summary> +</histogram> + +<histogram name="Extensions.ForceInstalledHttpErrorCode" + enum="HttpResponseCode" expires_after="2020-05-01"> + <owner>burunduk@chromium.org</owner> + <owner>swapnilgupta@google.com</owner> + <owner>poromov@chromium.org</owner> + <summary> + HTTP error code for the last retry attempt when CRX fetch failed for + enterprise policy forced extensions. Recorded for each forced extension that + failed to install after 5 minutes with + Extensions.ForceInstalledFailureReason2 equal to CRX_FETCH_FAILED and a HTTP + response code was received. HTTP response code is received only if there was + no network error. + </summary> +</histogram> + <histogram name="Extensions.ForceInstalledLoadTime" units="ms" expires_after="2020-05-01"> <owner>askaraitzhan@google.com</owner> @@ -48889,6 +48917,19 @@ </summary> </histogram> +<histogram name="Extensions.ForceInstalledNetworkErrorCode" + enum="NetErrorCodes" expires_after="2020-05-01"> + <owner>burunduk@chromium.org</owner> + <owner>swapnilgupta@google.com</owner> + <owner>poromov@chromium.org</owner> + <summary> + Network error code for the last retry attempt when CRX fetch failed for + enterprise policy forced extensions. Recorded for each forced extension that + failed to install after 5 minutes with + Extensions.ForceInstalledFailureReason2 equal to CRX_FETCH_FAILED. + </summary> +</histogram> + <histogram name="Extensions.ForceInstalledStage" enum="ExtensionInstallationStage" expires_after="2020-05-01"> <owner>askaraitzhan@google.com</owner> @@ -172936,7 +172977,10 @@ </histogram> <histogram name="Worker.TopLevelScript.OriginType.RequestUrl.DedicatedWorker" - enum="WorkerTopLevelScriptOriginType" expires_after="M76"> + enum="WorkerTopLevelScriptOriginType" expires_after="M80"> + <obsolete> + Removed Jan 2020. + </obsolete> <owner>hiroshige@chromium.org</owner> <owner>nhiroki@chromium.org</owner> <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index e31407c..aab1b72 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -6150,6 +6150,16 @@ Total time in foreground in milliseconds, recorded each time the page is backgrounded. </summary> + <aggregation> + <history> + <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> + <index fields="profile.system_ram"/> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> </metric> </event> @@ -6400,6 +6410,10 @@ <aggregation> <history> <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> + <index fields="profile.is_dominant_version"/> + <index fields="profile.is_latest_version"/> + <index fields="profile.system_ram"/> <statistics> <quantiles type="std-percentiles"/> </statistics> @@ -6574,6 +6588,18 @@ metric's integral value is 100x the fractional cumulative layout shift score described in the explainer. </summary> + <aggregation> + <history> + <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> + <index fields="profile.is_dominant_version"/> + <index fields="profile.is_latest_version"/> + <index fields="profile.system_ram"/> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> </metric> <metric name="LayoutInstability.CumulativeShiftScore.MainFrame"> <summary> @@ -6829,8 +6855,10 @@ <aggregation> <history> <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> <index fields="profile.is_dominant_version"/> <index fields="profile.is_latest_version"/> + <index fields="profile.system_ram"/> <statistics> <quantiles type="std-percentiles"/> </statistics> @@ -6858,6 +6886,18 @@ image) within viewport, across all frames. See http://bit.ly/fcp_plus_plus for more details. </summary> + <aggregation> + <history> + <index fields="profile.country"/> + <index fields="profile.country,profile.system_ram"/> + <index fields="profile.is_dominant_version"/> + <index fields="profile.is_latest_version"/> + <index fields="profile.system_ram"/> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> </metric> <metric name="PaintTiming.NavigationToLargestContentfulPaint.MainFrame"> <summary>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb index cfeed6b..527be129 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -80,7 +80,7 @@ <translation id="1847880352285315359">保存されました</translation> <translation id="1864756863218646478">ファイルが見つかりませんでした。</translation> <translation id="1921986354447415460">トルコ語-F キーボード</translation> -<translation id="1924372192547904021">「<ph name="DRIVE_NAME" />」のフォーマットが完了しました</translation> +<translation id="1924372192547904021">「<ph name="DRIVE_NAME" />」をフォーマットしました</translation> <translation id="1931134289871235022">スロバキア語</translation> <translation id="1933345018156373194">移動できませんでした。予期しないエラー: <ph name="ERROR_MESSAGE" /></translation> <translation id="1936717151811561466">フィンランド語</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_no.xtb b/ui/chromeos/translations/ui_chromeos_strings_no.xtb index 8690dbd..d6fe54e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_no.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_no.xtb
@@ -277,6 +277,7 @@ <translation id="4336032328163998280">Kopieringshandlingen mislyktes. <ph name="ERROR_MESSAGE" /></translation> <translation id="4364327530094270451">Melon</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4394214039309501350">Ekstern link</translation> <translation id="4425149324548788773">Min disk</translation> <translation id="4465830120256509958">Brasiliansk tastatur</translation> <translation id="4470564870223067757">Hangul 2-sett</translation>
diff --git a/ui/file_manager/integration_tests/file_manager/quick_view.js b/ui/file_manager/integration_tests/file_manager/quick_view.js index 851bb1df..26eaa0fe 100644 --- a/ui/file_manager/integration_tests/file_manager/quick_view.js +++ b/ui/file_manager/integration_tests/file_manager/quick_view.js
@@ -1261,7 +1261,8 @@ }; /** - * Tests checking the tabbing on jpeg files in Quick View. + * Tests the tab-index focus order when sending tab keys when an image file is + * shown in Quick View. */ testcase.openQuickViewTabIndexImage = async () => { const caller = getCaller(); @@ -1280,7 +1281,7 @@ // Open the file in Quick View. await openQuickView(appId, ENTRIES.smallJpeg.nameText); - // Prepare a list of tab-index queries. + // Prepare a list of tab-index focus queries. const tabQueries = [ {'query': ['#quick-view', '[aria-label="Back"]:focus']}, {'query': ['#quick-view', '[aria-label="Open"]:focus']}, @@ -1288,17 +1289,17 @@ {'query': ['#quick-view', '[aria-label="Back"]:focus']}, ]; - // Hit tab key to focus on the element. for (const query of tabQueries) { + // Make the browser dispatch a tab key event to FilesApp. const result = await sendTestMessage( {name: 'dispatchTabKey', shift: query.shift || false}); chrome.test.assertEq( result, 'tabKeyDispatched', 'Tab key dispatch failure'); - // Wait until we get the focus on the element + // Wait until we get the focus on the element. await remoteCall.waitForElement(appId, query.query); - // Make sure the events are handled correctly. + // Ensure all events have been processed before continuing. chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'requestAnimationFrame', appId, [])); }
diff --git a/ui/gfx/color_space.cc b/ui/gfx/color_space.cc index c1f69124..df1f1bf 100644 --- a/ui/gfx/color_space.cc +++ b/ui/gfx/color_space.cc
@@ -170,18 +170,27 @@ return; } } - - custom_transfer_params_[0] = fn.a; - custom_transfer_params_[1] = fn.b; - custom_transfer_params_[2] = fn.c; - custom_transfer_params_[3] = fn.d; - custom_transfer_params_[4] = fn.e; - custom_transfer_params_[5] = fn.f; - custom_transfer_params_[6] = fn.g; + transfer_params_[0] = fn.a; + transfer_params_[1] = fn.b; + transfer_params_[2] = fn.c; + transfer_params_[3] = fn.d; + transfer_params_[4] = fn.e; + transfer_params_[5] = fn.f; + transfer_params_[6] = fn.g; transfer_ = TransferID::CUSTOM; } // static +size_t ColorSpace::TransferParamCount(TransferID transfer) { + switch (transfer) { + case TransferID::CUSTOM: + return 7; + default: + return 0; + } +} + +// static int ColorSpace::GetNextId() { return g_color_space_id.GetNext(); } @@ -197,9 +206,9 @@ return false; } } - if (transfer_ == TransferID::CUSTOM) { - if (memcmp(custom_transfer_params_, other.custom_transfer_params_, - sizeof(custom_transfer_params_))) { + if (size_t param_count = TransferParamCount(transfer_)) { + if (memcmp(transfer_params_, other.transfer_params_, + param_count * sizeof(float))) { return false; } } @@ -250,10 +259,9 @@ if (primary_result > 0) return false; } - if (transfer_ == TransferID::CUSTOM) { - int transfer_result = - memcmp(custom_transfer_params_, other.custom_transfer_params_, - sizeof(custom_transfer_params_)); + if (size_t param_count = TransferParamCount(transfer_)) { + int transfer_result = memcmp(transfer_params_, other.transfer_params_, + param_count * sizeof(float)); if (transfer_result < 0) return true; if (transfer_result > 0) @@ -274,9 +282,10 @@ result ^= params[4]; result ^= params[8]; } - if (transfer_ == TransferID::CUSTOM) { + { + // Note that |transfer_params_| must be zero when they are unused. const uint32_t* params = - reinterpret_cast<const uint32_t*>(custom_transfer_params_); + reinterpret_cast<const uint32_t*>(transfer_params_); result ^= params[3]; result ^= params[6]; } @@ -799,13 +808,13 @@ bool ColorSpace::GetTransferFunction(skcms_TransferFunction* fn) const { if (transfer_ == TransferID::CUSTOM) { - fn->a = custom_transfer_params_[0]; - fn->b = custom_transfer_params_[1]; - fn->c = custom_transfer_params_[2]; - fn->d = custom_transfer_params_[3]; - fn->e = custom_transfer_params_[4]; - fn->f = custom_transfer_params_[5]; - fn->g = custom_transfer_params_[6]; + fn->a = transfer_params_[0]; + fn->b = transfer_params_[1]; + fn->c = transfer_params_[2]; + fn->d = transfer_params_[3]; + fn->e = transfer_params_[4]; + fn->f = transfer_params_[5]; + fn->g = transfer_params_[6]; return true; } else { return GetTransferFunction(transfer_, fn);
diff --git a/ui/gfx/color_space.h b/ui/gfx/color_space.h index 69703f6..da14393 100644 --- a/ui/gfx/color_space.h +++ b/ui/gfx/color_space.h
@@ -21,6 +21,11 @@ // These forward declarations are used to give IPC code friend access to private // fields of gfx::ColorSpace for the purpose of serialization and // deserialization. +namespace IPC { +template <class P> +struct ParamTraits; +} // namespace IPC + namespace mojo { template <class T, class U> struct StructTraits; @@ -92,7 +97,7 @@ IEC61966_2_1_HDR, // The same as LINEAR but is defined for all real values. LINEAR_HDR, - // A parametric transfer function defined by |custom_transfer_params_|. + // A parametric transfer function defined by |transfer_params_|. CUSTOM, LAST = CUSTOM, }; @@ -287,6 +292,7 @@ private: static void GetPrimaryMatrix(PrimaryID, skcms_Matrix3x3* to_XYZD50); static bool GetTransferFunction(TransferID, skcms_TransferFunction* fn); + static size_t TransferParamCount(TransferID); void SetCustomTransferFunction(const skcms_TransferFunction& fn); void SetCustomPrimaries(const skcms_Matrix3x3& to_XYZD50); @@ -299,11 +305,14 @@ // Only used if primaries_ is PrimaryID::CUSTOM. float custom_primary_matrix_[9] = {0, 0, 0, 0, 0, 0, 0, 0}; - // Only used if transfer_ is TransferID::CUSTOM. This array consists of the A - // through G entries of the skcms_TransferFunction structure in alphabetical - // order. - float custom_transfer_params_[7] = {0, 0, 0, 0, 0, 0, 0}; + // Parameters for the transfer function. The interpretation depends on + // |transfer_|. Only TransferParamCount() of these parameters are used, all + // others must be zero. + // - CUSTOM: Entries A through G of the skcms_TransferFunction structure in + // alphabetical order. + float transfer_params_[7] = {0, 0, 0, 0, 0, 0, 0}; + friend struct IPC::ParamTraits<gfx::ColorSpace>; friend struct mojo::StructTraits<gfx::mojom::ColorSpaceDataView, gfx::ColorSpace>; };
diff --git a/ui/gfx/ipc/color/gfx_param_traits.cc b/ui/gfx/ipc/color/gfx_param_traits.cc index 1f96e51..0c45fb2e 100644 --- a/ui/gfx/ipc/color/gfx_param_traits.cc +++ b/ui/gfx/ipc/color/gfx_param_traits.cc
@@ -11,54 +11,29 @@ void ParamTraits<gfx::ColorSpace>::Write(base::Pickle* m, const gfx::ColorSpace& p) { - WriteParam(m, p.GetPrimaryID()); - WriteParam(m, p.GetTransferID()); - WriteParam(m, p.GetMatrixID()); - WriteParam(m, p.GetRangeID()); - if (p.GetPrimaryID() == gfx::ColorSpace::PrimaryID::CUSTOM) { - skcms_Matrix3x3 custom_primary_matrix; - p.GetPrimaryMatrix(&custom_primary_matrix); - ParamTraits<skcms_Matrix3x3>::Write(m, custom_primary_matrix); - } - if (p.GetTransferID() == gfx::ColorSpace::TransferID::CUSTOM) { - skcms_TransferFunction custom_transfer_params; - p.GetTransferFunction(&custom_transfer_params); - ParamTraits<skcms_TransferFunction>::Write(m, custom_transfer_params); - } + WriteParam(m, p.primaries_); + WriteParam(m, p.transfer_); + WriteParam(m, p.matrix_); + WriteParam(m, p.range_); + WriteParam(m, p.custom_primary_matrix_); + WriteParam(m, p.transfer_params_); } bool ParamTraits<gfx::ColorSpace>::Read(const base::Pickle* m, base::PickleIterator* iter, gfx::ColorSpace* r) { - gfx::ColorSpace::PrimaryID primaries = gfx::ColorSpace::PrimaryID::INVALID; - if (!ReadParam(m, iter, &primaries)) + if (!ReadParam(m, iter, &r->primaries_)) return false; - gfx::ColorSpace::TransferID transfer = gfx::ColorSpace::TransferID::INVALID; - if (!ReadParam(m, iter, &transfer)) + if (!ReadParam(m, iter, &r->transfer_)) return false; - gfx::ColorSpace::MatrixID matrix = gfx::ColorSpace::MatrixID::INVALID; - if (!ReadParam(m, iter, &matrix)) + if (!ReadParam(m, iter, &r->matrix_)) return false; - gfx::ColorSpace::RangeID range = gfx::ColorSpace::RangeID::INVALID; - if (!ReadParam(m, iter, &range)) + if (!ReadParam(m, iter, &r->range_)) return false; - skcms_Matrix3x3 custom_primary_matrix; - if (primaries == gfx::ColorSpace::PrimaryID::CUSTOM && - !ParamTraits<skcms_Matrix3x3>::Read(m, iter, &custom_primary_matrix)) { + if (!ReadParam(m, iter, &r->custom_primary_matrix_)) return false; - } - skcms_TransferFunction custom_transfer_params; - if (transfer == gfx::ColorSpace::TransferID::CUSTOM && - !ParamTraits<skcms_TransferFunction>::Read(m, iter, - &custom_transfer_params)) { + if (!ReadParam(m, iter, &r->transfer_params_)) return false; - } - *r = gfx::ColorSpace( - primaries, transfer, matrix, range, - primaries == gfx::ColorSpace::PrimaryID::CUSTOM ? &custom_primary_matrix - : nullptr, - transfer == gfx::ColorSpace::TransferID::CUSTOM ? &custom_transfer_params - : nullptr); return true; }
diff --git a/ui/gfx/mojom/color_space.mojom b/ui/gfx/mojom/color_space.mojom index 2af7bcc5..645cd1e 100644 --- a/ui/gfx/mojom/color_space.mojom +++ b/ui/gfx/mojom/color_space.mojom
@@ -80,5 +80,5 @@ ColorSpaceMatrixID matrix; ColorSpaceRangeID range; array<float, 9> custom_primary_matrix; - array<float, 7> custom_transfer_params; + array<float, 7> transfer_params; };
diff --git a/ui/gfx/mojom/color_space_mojom_traits.cc b/ui/gfx/mojom/color_space_mojom_traits.cc index 83bd451..f8205b1 100644 --- a/ui/gfx/mojom/color_space_mojom_traits.cc +++ b/ui/gfx/mojom/color_space_mojom_traits.cc
@@ -26,8 +26,8 @@ return false; } { - base::span<float> matrix(out->custom_transfer_params_); - if (!input.ReadCustomTransferParams(&matrix)) + base::span<float> matrix(out->transfer_params_); + if (!input.ReadTransferParams(&matrix)) return false; } return true;
diff --git a/ui/gfx/mojom/color_space_mojom_traits.h b/ui/gfx/mojom/color_space_mojom_traits.h index 9997436..064e7883 100644 --- a/ui/gfx/mojom/color_space_mojom_traits.h +++ b/ui/gfx/mojom/color_space_mojom_traits.h
@@ -385,9 +385,8 @@ return input.custom_primary_matrix_; } - static base::span<const float> custom_transfer_params( - const gfx::ColorSpace& input) { - return input.custom_transfer_params_; + static base::span<const float> transfer_params(const gfx::ColorSpace& input) { + return input.transfer_params_; } static bool Read(gfx::mojom::ColorSpaceDataView data, gfx::ColorSpace* out);
diff --git a/weblayer/BUILD.gn b/weblayer/BUILD.gn index c517b20..9ae4f8b 100644 --- a/weblayer/BUILD.gn +++ b/weblayer/BUILD.gn
@@ -108,6 +108,8 @@ "browser/browser_context_impl.h", "browser/browser_main_parts_impl.cc", "browser/browser_main_parts_impl.h", + "browser/browser_process.cc", + "browser/browser_process.h", "browser/content_browser_client_impl.cc", "browser/content_browser_client_impl.h", "browser/download_manager_delegate_impl.cc", @@ -129,6 +131,8 @@ "browser/ssl_error_handler.h", "browser/ssl_host_state_delegate_impl.cc", "browser/ssl_host_state_delegate_impl.h", + "browser/system_network_context_manager.cc", + "browser/system_network_context_manager.h", "browser/tab_impl.cc", "browser/tab_impl.h", "browser/weblayer_browser_interface_binders.cc", @@ -210,6 +214,7 @@ "//components/crash/content/app", "//components/crash/content/browser", "//components/embedder_support:switches", + "//components/network_time", "//components/prefs", "//components/security_interstitials/content:security_interstitial_page", "//components/security_interstitials/content/renderer:security_interstitial_page_controller",
diff --git a/weblayer/browser/DEPS b/weblayer/browser/DEPS index 12982e9..d47f233 100644 --- a/weblayer/browser/DEPS +++ b/weblayer/browser/DEPS
@@ -10,6 +10,7 @@ "+components/autofill/core/common", "+components/crash/content/browser", "+components/embedder_support", + "+components/network_time", "+components/prefs", "+components/user_prefs", "+components/safe_browsing",
diff --git a/weblayer/browser/browser_main_parts_impl.cc b/weblayer/browser/browser_main_parts_impl.cc index 2ed9d4b..f025484 100644 --- a/weblayer/browser/browser_main_parts_impl.cc +++ b/weblayer/browser/browser_main_parts_impl.cc
@@ -22,6 +22,7 @@ #include "services/service_manager/embedder/result_codes.h" #include "ui/base/material_design/material_design_controller.h" #include "ui/base/resource/resource_bundle.h" +#include "weblayer/browser/browser_process.h" #include "weblayer/browser/webui/web_ui_controller_factory.h" #include "weblayer/public/main.h" @@ -87,6 +88,8 @@ } int BrowserMainPartsImpl::PreEarlyInitialization() { + browser_process_ = std::make_unique<BrowserProcess>(); + #if defined(USE_X11) ui::SetDefaultX11ErrorHandlers(); #endif
diff --git a/weblayer/browser/browser_main_parts_impl.h b/weblayer/browser/browser_main_parts_impl.h index ed40aa6..6e69015 100644 --- a/weblayer/browser/browser_main_parts_impl.h +++ b/weblayer/browser/browser_main_parts_impl.h
@@ -14,6 +14,7 @@ #include "content/public/common/main_function_params.h" namespace weblayer { +class BrowserProcess; struct MainParams; class BrowserMainPartsImpl : public content::BrowserMainParts { @@ -33,6 +34,8 @@ private: MainParams* params_; + std::unique_ptr<BrowserProcess> browser_process_; + // For running weblayer_browsertests. const content::MainFunctionParams main_function_params_; bool run_message_loop_ = true;
diff --git a/weblayer/browser/browser_process.cc b/weblayer/browser/browser_process.cc new file mode 100644 index 0000000..076fe49 --- /dev/null +++ b/weblayer/browser/browser_process.cc
@@ -0,0 +1,82 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "weblayer/browser/browser_process.h" + +#include "base/memory/ref_counted.h" +#include "base/time/default_clock.h" +#include "base/time/default_tick_clock.h" +#include "components/network_time/network_time_tracker.h" +#include "components/prefs/in_memory_pref_store.h" +#include "components/prefs/pref_registry_simple.h" +#include "components/prefs/pref_service.h" +#include "components/prefs/pref_service_factory.h" +#include "weblayer/browser/system_network_context_manager.h" + +namespace weblayer { + +namespace { +BrowserProcess* g_browser_process = nullptr; + +// Creates the PrefService that will be used as the browser process's local +// state. +std::unique_ptr<PrefService> CreatePrefService() { + auto pref_registry = base::MakeRefCounted<PrefRegistrySimple>(); + + PrefServiceFactory pref_service_factory; + pref_service_factory.set_user_prefs( + base::MakeRefCounted<InMemoryPrefStore>()); + + return pref_service_factory.Create(pref_registry); +} + +} // namespace + +BrowserProcess::BrowserProcess() { + g_browser_process = this; +} + +BrowserProcess::~BrowserProcess() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + g_browser_process = nullptr; + + SystemNetworkContextManager::DeleteInstance(); +} + +// static +BrowserProcess* BrowserProcess::GetInstance() { + return g_browser_process; +} + +PrefService* BrowserProcess::GetLocalState() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + if (!local_state_) + local_state_ = CreatePrefService(); + + return local_state_.get(); +} + +scoped_refptr<network::SharedURLLoaderFactory> +BrowserProcess::GetSharedURLLoaderFactory() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + return SystemNetworkContextManager::GetInstance() + ->GetSharedURLLoaderFactory(); +} + +network_time::NetworkTimeTracker* BrowserProcess::GetNetworkTimeTracker() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + if (!network_time_tracker_) { + network_time_tracker_ = std::make_unique<network_time::NetworkTimeTracker>( + base::WrapUnique(new base::DefaultClock()), + base::WrapUnique(new base::DefaultTickClock()), GetLocalState(), + GetSharedURLLoaderFactory()); + } + return network_time_tracker_.get(); +} + +} // namespace weblayer
diff --git a/weblayer/browser/browser_process.h b/weblayer/browser/browser_process.h new file mode 100644 index 0000000..a4e961a --- /dev/null +++ b/weblayer/browser/browser_process.h
@@ -0,0 +1,49 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBLAYER_BROWSER_BROWSER_PROCESS_H_ +#define WEBLAYER_BROWSER_BROWSER_PROCESS_H_ + +#include <memory> + +#include "base/macros.h" +#include "base/memory/scoped_refptr.h" +#include "base/sequence_checker.h" + +class PrefService; + +namespace network_time { +class NetworkTimeTracker; +} + +namespace network { +class SharedURLLoaderFactory; +} + +namespace weblayer { + +// Class that holds global state in the browser process. Should be used only on +// the UI thread. +class BrowserProcess { + public: + BrowserProcess(); + ~BrowserProcess(); + + static BrowserProcess* GetInstance(); + + PrefService* GetLocalState(); + scoped_refptr<network::SharedURLLoaderFactory> GetSharedURLLoaderFactory(); + network_time::NetworkTimeTracker* GetNetworkTimeTracker(); + + private: + std::unique_ptr<PrefService> local_state_; + std::unique_ptr<network_time::NetworkTimeTracker> network_time_tracker_; + SEQUENCE_CHECKER(sequence_checker_); + + DISALLOW_COPY_AND_ASSIGN(BrowserProcess); +}; + +} // namespace weblayer + +#endif // WEBLAYER_BROWSER_BROWSER_PROCESS_H_
diff --git a/weblayer/browser/content_browser_client_impl.cc b/weblayer/browser/content_browser_client_impl.cc index 8b0be1f..d62c8a3 100644 --- a/weblayer/browser/content_browser_client_impl.cc +++ b/weblayer/browser/content_browser_client_impl.cc
@@ -42,6 +42,7 @@ #include "weblayer/browser/i18n_util.h" #include "weblayer/browser/profile_impl.h" #include "weblayer/browser/ssl_error_handler.h" +#include "weblayer/browser/system_network_context_manager.h" #include "weblayer/browser/tab_impl.h" #include "weblayer/browser/weblayer_browser_interface_binders.h" #include "weblayer/browser/weblayer_content_browser_overlay_manifest.h" @@ -238,6 +239,16 @@ network::mojom::CryptConfigPtr config = network::mojom::CryptConfig::New(); content::GetNetworkService()->SetCryptConfig(std::move(config)); #endif + + // Create SystemNetworkContextManager if it has not been created yet. We need + // to set up global NetworkService state before anything else uses it and this + // is the first opportunity to initialize SystemNetworkContextManager with the + // NetworkService. + if (!SystemNetworkContextManager::HasInstance()) + SystemNetworkContextManager::CreateInstance(GetUserAgent()); + + SystemNetworkContextManager::GetInstance()->OnNetworkServiceCreated( + network_service); } std::vector<std::unique_ptr<blink::URLLoaderThrottle>>
diff --git a/weblayer/browser/system_network_context_manager.cc b/weblayer/browser/system_network_context_manager.cc new file mode 100644 index 0000000..3d75ad7 --- /dev/null +++ b/weblayer/browser/system_network_context_manager.cc
@@ -0,0 +1,124 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "weblayer/browser/system_network_context_manager.h" + +#include "content/public/browser/network_service_instance.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" + +namespace weblayer { + +namespace { + +// The global instance of the SystemNetworkContextmanager. +SystemNetworkContextManager* g_system_network_context_manager = nullptr; + +network::mojom::NetworkContextParamsPtr CreateDefaultNetworkContextParams( + const std::string& user_agent) { + network::mojom::NetworkContextParamsPtr network_context_params = + network::mojom::NetworkContextParams::New(); + network_context_params->user_agent = user_agent; + return network_context_params; +} + +} // namespace + +// static +SystemNetworkContextManager* SystemNetworkContextManager::CreateInstance( + const std::string& user_agent) { + DCHECK(!g_system_network_context_manager); + g_system_network_context_manager = + new SystemNetworkContextManager(user_agent); + return g_system_network_context_manager; +} + +// static +bool SystemNetworkContextManager::HasInstance() { + return !!g_system_network_context_manager; +} + +// static +SystemNetworkContextManager* SystemNetworkContextManager::GetInstance() { + if (!g_system_network_context_manager) { + // Initialize the network service, which will trigger + // ChromeContentBrowserClient::OnNetworkServiceCreated(), which calls + // CreateInstance() to initialize |g_system_network_context_manager|. + content::GetNetworkService(); + + // TODO(crbug.com/981057): There should be a DCHECK() here to make sure + // |g_system_network_context_manager| has been created, but that is not + // true in many unit tests. + } + + return g_system_network_context_manager; +} + +// static +void SystemNetworkContextManager::DeleteInstance() { + DCHECK(g_system_network_context_manager); + delete g_system_network_context_manager; + g_system_network_context_manager = nullptr; +} + +SystemNetworkContextManager::SystemNetworkContextManager( + const std::string& user_agent) + : user_agent_(user_agent) {} + +SystemNetworkContextManager::~SystemNetworkContextManager() = default; + +network::mojom::NetworkContext* +SystemNetworkContextManager::GetSystemNetworkContext() { + if (!system_network_context_ || !system_network_context_.is_connected()) { + // This should call into OnNetworkServiceCreated(), which will re-create + // the network service, if needed. There's a chance that it won't be + // invoked, if the NetworkContext has encountered an error but the + // NetworkService has not yet noticed its pipe was closed. In that case, + // trying to create a new NetworkContext would fail, anyways, and hopefully + // a new NetworkContext will be created on the next GetContext() call. + content::GetNetworkService(); + DCHECK(system_network_context_); + } + + return system_network_context_.get(); +} + +void SystemNetworkContextManager::OnNetworkServiceCreated( + network::mojom::NetworkService* network_service) { + // The system NetworkContext must be created first, since it sets + // |primary_network_context| to true. + network_service->CreateNetworkContext( + system_network_context_.BindNewPipeAndPassReceiver(), + CreateSystemNetworkContextManagerParams()); +} + +network::mojom::NetworkContextParamsPtr +SystemNetworkContextManager::CreateSystemNetworkContextManagerParams() { + network::mojom::NetworkContextParamsPtr network_context_params = + CreateDefaultNetworkContextParams(user_agent_); + content::UpdateCorsExemptHeader(network_context_params.get()); + + network_context_params->context_name = std::string("system"); + network_context_params->primary_network_context = true; + + return network_context_params; +} + +scoped_refptr<network::SharedURLLoaderFactory> +SystemNetworkContextManager::GetSharedURLLoaderFactory() { + if (!url_loader_factory_) { + auto url_loader_factory_params = + network::mojom::URLLoaderFactoryParams::New(); + url_loader_factory_params->process_id = network::mojom::kBrowserProcessId; + url_loader_factory_params->is_corb_enabled = false; + GetSystemNetworkContext()->CreateURLLoaderFactory( + url_loader_factory_.BindNewPipeAndPassReceiver(), + std::move(url_loader_factory_params)); + shared_url_loader_factory_ = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + url_loader_factory_.get()); + } + return shared_url_loader_factory_; +} + +} // namespace weblayer
diff --git a/weblayer/browser/system_network_context_manager.h b/weblayer/browser/system_network_context_manager.h new file mode 100644 index 0000000..b47238c --- /dev/null +++ b/weblayer/browser/system_network_context_manager.h
@@ -0,0 +1,71 @@ +// Copyright 2020 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBLAYER_BROWSER_SYSTEM_NETWORK_CONTEXT_MANAGER_H_ +#define WEBLAYER_BROWSER_SYSTEM_NETWORK_CONTEXT_MANAGER_H_ + +#include "base/memory/scoped_refptr.h" +#include "content/public/browser/cors_exempt_headers.h" +#include "mojo/public/cpp/bindings/remote.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/public/mojom/network_service.mojom.h" + +namespace network { +class SharedURLLoaderFactory; +} // namespace network + +namespace weblayer { + +// Manages a system-wide network context that's not tied to a profile. +class SystemNetworkContextManager { + public: + // Creates the global instance of SystemNetworkContextManager. + static SystemNetworkContextManager* CreateInstance( + const std::string& user_agent); + + // Checks if the global SystemNetworkContextManager has been created. + static bool HasInstance(); + + // Gets the global SystemNetworkContextManager instance. If it has not been + // created yet, NetworkService is called, which will cause the + // SystemNetworkContextManager to be created. + static SystemNetworkContextManager* GetInstance(); + + // Destroys the global SystemNetworkContextManager instance. + static void DeleteInstance(); + + ~SystemNetworkContextManager(); + + // Returns the System NetworkContext. Does any initialization of the + // NetworkService that may be needed when first called. + network::mojom::NetworkContext* GetSystemNetworkContext(); + + // Called when content creates a NetworkService. Creates the + // system NetworkContext, if the network service is enabled. + void OnNetworkServiceCreated(network::mojom::NetworkService* network_service); + + // Returns a SharedURLLoaderFactory owned by the SystemNetworkContextManager + // that is backed by the SystemNetworkContext. + scoped_refptr<network::SharedURLLoaderFactory> GetSharedURLLoaderFactory(); + + private: + explicit SystemNetworkContextManager(const std::string& user_agent); + + network::mojom::NetworkContextParamsPtr + CreateSystemNetworkContextManagerParams(); + + std::string user_agent_; + + mojo::Remote<network::mojom::URLLoaderFactory> url_loader_factory_; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + shared_url_loader_factory_; + + mojo::Remote<network::mojom::NetworkContext> system_network_context_; + + DISALLOW_COPY_AND_ASSIGN(SystemNetworkContextManager); +}; + +} // namespace weblayer + +#endif // WEBLAYER_BROWSER_SYSTEM_NETWORK_CONTEXT_MANAGER_H_
diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn index 4289652..2e50813 100644 --- a/weblayer/shell/android/BUILD.gn +++ b/weblayer/shell/android/BUILD.gn
@@ -194,3 +194,15 @@ shared_libraries = [ "//weblayer:libweblayer" ] } +group("weblayer_shell_wpt") { + testonly = true + data_deps = [ + ":weblayer_shell_apk", + ":weblayer_support_apk", + "//build/android:test_runner_py", + ] + set_sources_assignment_filter([ "#*" ]) + sources = read_file("//testing/scripts/run_android_wpt.pydeps", "list lines") + data = sources + data += [ "//third_party/blink/web_tests/external/" ] +}