diff --git a/DEPS b/DEPS index a9cd479..2bcdc7a8 100644 --- a/DEPS +++ b/DEPS
@@ -280,15 +280,15 @@ # 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': '7a78e3ff4f441c1ad66ecacd72778d4477c43ae2', + 'skia_revision': '6db6110a1089987cb9591b65994842d62ca100a2', # 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': '2f7630ac96f840c2e8a13214b8c9fc1ea0b9962f', + 'v8_revision': '724dc8eb3b40db5a282f32149e27fc04c68cde25', # 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': '3a52a79678235c744ee29df68ecf4d50ae2fb81a', + 'angle_revision': 'cd1b22eecd83f199bd3f67a579998f2a8922abc8', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -307,7 +307,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:8.20220707.0.1', + 'fuchsia_version': 'version:8.20220707.1.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -359,7 +359,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': '14588df18f4d1af52af90c50dfb607b87d9a16e6', + 'devtools_frontend_revision': 'ec0f408cb1745c663032154329a7ae757601d588', # 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. @@ -395,7 +395,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': '2c7440a13f5e4f346675fdb9b10fb2f596d9eb42', + 'dawn_revision': 'fcceb0ee8005fa73c5cb4155c87201800343e70d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -756,7 +756,7 @@ Var('chromium_git') + '/external/github.com/toji/webvr.info.git' + '@' + 'c58ae99b9ff9e2aa4c524633519570bf33536248', 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'ffdde49b4ac6259e557cb57edbb657654a321555', + 'url': Var('chromium_git') + '/website.git' + '@' + '47add2a82382c618c0de710f6df8fead7e56b434', }, 'src/ios/third_party/earl_grey2/src': { @@ -850,7 +850,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'zLEJ7J8ES8aUltFtEMr-rr9eiBH7mZYl3MF2GyxATUMC', + 'version': 'ALpCzmoEft3WDvcsFfK_wVqZWVuV5nS8f_9yPzqZbp8C', }, ], 'dep_type': 'cipd', @@ -872,7 +872,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'n6rPSBedk42fYygGfhwT2_mP408SHwAde6eObyCiAagC', + 'version': 'pwMBrXtwrUjDllTkOZjfWB0W1fBck71M-xo8M1CBz-cC', }, ], 'dep_type': 'cipd', @@ -929,7 +929,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': 'x3xDrUUA3TTUlYedTCdINv0MDmNCQJu_aTS-XuF56U0C', + 'version': '2PIre0lzgUsBMZAlMGDVj_noHBvi860uvfYkFtl_UQcC', }, ], 'condition': 'checkout_android', @@ -1564,7 +1564,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '84a3c77dcdf0c06d4b077a41e494a39024320b3a', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '3c4bdd0f331990d7fae52ae52f56f5762614cc33', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3', @@ -1734,7 +1734,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + 'a6bab72c7259ca3131b00a856cd9be23fc15bbd3', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'b22b095108cdd7af44eb380a716bc1ea6cf253ed', + Var('webrtc_git') + '/src.git' + '@' + '7b19036b80ef8377f8c479ae4bd0bd499362c218', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1807,7 +1807,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@534764589fef0c1bc4f76bf0fecbda745116eae7', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@f1f2db8e4623c8eb9afae5b2ecd760bdc4974e88', 'condition': 'checkout_src_internal', }, @@ -1859,7 +1859,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'n_c9biX-HJJrzT27UU5sT6Vo7Qfydr4A_KxwOGWq2iMC', + 'version': 'gNSSAdVa5JtNaO15xW6x6KoDOldWgGNOCIOEBgVNNb8C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/browser/aw_content_browser_client_receiver_bindings.cc b/android_webview/browser/aw_content_browser_client_receiver_bindings.cc index 45b65dad..6802e6a 100644 --- a/android_webview/browser/aw_content_browser_client_receiver_bindings.cc +++ b/android_webview/browser/aw_content_browser_client_receiver_bindings.cc
@@ -46,7 +46,7 @@ void CreateMediaDrmStorage( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<::media::mojom::MediaDrmStorage> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); if (render_frame_host->GetLastCommittedOrigin().opaque()) { DVLOG(1) << __func__ << ": Unique origin."; @@ -63,7 +63,7 @@ // The object will be deleted on connection error, or when the frame navigates // away. new cdm::MediaDrmStorageImpl( - render_frame_host, pref_service, base::BindRepeating(&CreateOriginId), + *render_frame_host, pref_service, base::BindRepeating(&CreateOriginId), base::BindRepeating(&AllowEmptyOriginIdCB), std::move(receiver)); } #endif // BUILDFLAG(ENABLE_MOJO_CDM)
diff --git a/ash/DEPS b/ash/DEPS index f6c934f..80a5424 100644 --- a/ash/DEPS +++ b/ash/DEPS
@@ -60,6 +60,7 @@ "-chromeos", # //ash can use chromeos components that sit below it in the dependency tree. "+chromeos/ash/components/human_presence", + "+chromeos/ash/components/local_search_service", "+chromeos/components/feature_usage", "+chromeos/components/quick_answers", "+chromeos/components/security_token_pin",
diff --git a/ash/components/arc/input_overlay/resources/com.robtopx.geometryjumplite.json b/ash/components/arc/input_overlay/resources/com.robtopx.geometryjumplite.json new file mode 100644 index 0000000..fbb23c52 --- /dev/null +++ b/ash/components/arc/input_overlay/resources/com.robtopx.geometryjumplite.json
@@ -0,0 +1,29 @@ +// Copyright 2022 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. + +{ + "tap": [ + { + "id": 0, + "input_sources": [ + "keyboard" + ], + "name": "jump", + "key": "Space", + "location": [ + { + "type": "position", + "anchor": [ + 0, + 0 + ], + "anchor_to_target": [ + 0.50013024, + 0.8707735 + ] + } + ] + } + ] +}
diff --git a/ash/components/arc/input_overlay/resources/input_overlay_resources.grd b/ash/components/arc/input_overlay/resources/input_overlay_resources.grd index 4bdff0d3..11ebea46 100644 --- a/ash/components/arc/input_overlay/resources/input_overlay_resources.grd +++ b/ash/components/arc/input_overlay/resources/input_overlay_resources.grd
@@ -44,6 +44,7 @@ <include name="IDR_IO_COM_TOHSOFT_ARASHI_NINJA_SHADOW" file="com.tohsoft.arashi.ninja.shadow.json" type="BINDATA" /> <include name="IDR_IO_COM_GAMEHIVECORP_TAPTITANS2" file="com.gamehivecorp.taptitans2.json" type="BINDATA" /> <include name="IDR_IO_COM_ODDROK_POWERHOVER" file="com.oddrok.powerhover.json" type="BINDATA" /> + <include name="IDR_IO_COM_ROBTOPX_GEOMETRYJUMPLITE" file="com.robtopx.geometryjumplite.json" type="BINDATA" /> </includes> </release> </grit>
diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb index ef7dede..6090fab2 100644 --- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb +++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_te.xtb
@@ -46,7 +46,7 @@ <translation id="2441202986792279177">విండోల మధ్య త్వరగా మారండి</translation> <translation id="2454251766545114447">డిస్ప్లేని దూరంగా జూమ్ చేస్తుంది</translation> <translation id="2478303094958140141">ChromeVox (ప్రసంగ రూప అభిప్రాయం) ఆన్ లేదా ఆఫ్ చేయండి</translation> -<translation id="2480851840841871861">Google అసిస్టెంట్ను తెరవండి</translation> +<translation id="2480851840841871861">Google Assistantను తెరవండి</translation> <translation id="2488661730534396940">ఎడమవైపు గల డెస్క్ను యాక్టివేట్ చేస్తుంది</translation> <translation id="2515586267016047495">Alt</translation> <translation id="2516999188535378855">Diagnostics యాప్ను తెరవండి</translation>
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 831b4196..41e2257 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">ወደ ቀኝ ይሸብልሉ</translation> <translation id="1774796056689732716">ቀን መቁጠሪያ፣ <ph name="CURRENT_MONTH_YEAR" />፣ በአሁኑ ጊዜ <ph name="DATE" /> ተመርጧል።</translation> <translation id="1787955149152357925">አጥፋ</translation> +<translation id="1797271123677381264">የይለፍ ቃል ረሱ</translation> <translation id="181103072419391116">የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />፣ በየእርስዎ አስተዳዳሪ የሚተዳደር</translation> <translation id="1812997170047690955">ማያ ገጼ ላይ ምን አለ?</translation> <translation id="1823873187264960516">ኤተርኔት፦ <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ኢተርኔት</translation> <translation id="4481530544597605423">ያልተጣመሩ መሣሪያዎች</translation> <translation id="4505050298327493054">ንቁ ዴስክ።</translation> +<translation id="450584155212756404">የገንቢ ሰርጥ</translation> <translation id="4513946894732546136">ግብረ መልስ</translation> <translation id="4518404433291145981">የእርስዎን Chromebook ለመክፈት መጀመሪያ ስልክዎን ይክፈቱ</translation> <translation id="4527045527269911712">የብሉቱዝ መሣሪያ «<ph name="DEVICE_NAME" />» ለመጣመር ፍቃድ ይፈልጋል።</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">በ<ph name="LOGOUT_TIME_LEFT" /> ውስጥ በራስ-ሰር ዘግተው እንዲወጡ ይደረጋሉ።</translation> <translation id="6064463340679478396">ፋይሉን በመጠቀም አጠናቅቄአለሁ</translation> <translation id="6073451960410192870">መቅረጽ አቁም</translation> +<translation id="6074087755403037157">የቅድመ-ይሁንታ ሰርጥ</translation> <translation id="6099678161144790572">ባለፈው ወር ውስጥ አርትዖት ተደርጓል</translation> <translation id="6103838137565245112">ሥርዓት</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> የንግግር ፋይሎች ወርደዋል</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">ከቆመበት ቀጥል</translation> <translation id="8203795194971602413">የቀኝ ጠቅታ</translation> <translation id="8209010265547628927">ዳግም አስጀምር</translation> +<translation id="8214996719228530800">የካናሪ ሰርጥ</translation> <translation id="8219451629189078428">በዚህ ጊዜ የእርስዎ Chromebook እንደበራ መቆየት እና ከኃይል ጋር መገናኘት አለበት። የባትሪ መሙያ ወይም የአስማሚ ገመዶች ከሁለቱም በእርስዎ Chromebook እና በኃይል መሰኪያው ላይ ሙሉ ለሙሉ መሰካታቸውን ያረጋግጡ። የእርስዎን Chromebook አያጥፉት።</translation> <translation id="8236042855478648955">የዕረፍት ጊዜ</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />፣ የስልክ ባትሪ <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 27ebc76..eccd2fe 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -153,6 +153,7 @@ <translation id="1771761307086386028">التمرير لليمين</translation> <translation id="1774796056689732716">التقويم، <ph name="CURRENT_MONTH_YEAR" />، التاريخ المُحدّد حاليًا هو <ph name="DATE" />.</translation> <translation id="1787955149152357925">غير مُفعَّل</translation> +<translation id="1797271123677381264">نسيت كلمة المرور</translation> <translation id="181103072419391116">قوة الإشارة <ph name="SIGNAL_STRENGTH" />، يديرها المشرف</translation> <translation id="1812997170047690955">ماذا يظهر على شاشتي؟</translation> <translation id="1823873187264960516">الإيثرنت: <ph name="ADDRESS" /></translation> @@ -610,6 +611,7 @@ <translation id="4479639480957787382">إيثرنت</translation> <translation id="4481530544597605423">الأجهزة التي تم إلغاء إقرانها</translation> <translation id="4505050298327493054">مكتب نشط</translation> +<translation id="450584155212756404">قناة مطوّري البرامج</translation> <translation id="4513946894732546136">ملاحظات</translation> <translation id="4518404433291145981">لفتح قفل جهاز Chromebook، افتح قفل هاتفك أولاً.</translation> <translation id="4527045527269911712">يريد جهاز بلوتوث "<ph name="DEVICE_NAME" />" الحصول على إذن للإقران.</translation> @@ -877,6 +879,7 @@ <translation id="6062360702481658777">سيتم تسجيل خروجك تلقائيًا في غضون <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">انتهيت من استخدام الملف.</translation> <translation id="6073451960410192870">إيقاف التسجيل</translation> +<translation id="6074087755403037157">قناة تجريبية</translation> <translation id="6099678161144790572">تم تعديله الشهر الماضي.</translation> <translation id="6103838137565245112">النظام</translation> <translation id="6114505516289286752">تم تنزيل ملفات اللغة <ph name="LANGUAGE" /> في ميزة "التعرّف على الكلام"</translation> @@ -1227,6 +1230,7 @@ <translation id="8200772114523450471">استئناف</translation> <translation id="8203795194971602413">النقر بالزر الأيمن</translation> <translation id="8209010265547628927">إعادة الضبط</translation> +<translation id="8214996719228530800">قناة إصدار Canary</translation> <translation id="8219451629189078428">يجب أن يكون جهاز Chromebook قيد التشغيل ومتّصلاً بمصدر طاقة خلال هذه المدة. ويجب توصيل كابلات الشاحن أو المحوِّل بشكل محكم بكلٍ من جهاز Chromebook والمقبس الكهربائي. يُرجى عدم إيقاف تشغيل جهاز Chromebook.</translation> <translation id="8236042855478648955">حان وقت الراحة</translation> <translation id="8247060538831475781">حالة الاتصال <ph name="CONNECTION_STATUS" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />، بطارية الهاتف <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_as.xtb b/ash/strings/ash_strings_as.xtb index 434575ac..11fea2b3 100644 --- a/ash/strings/ash_strings_as.xtb +++ b/ash/strings/ash_strings_as.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">সোঁফাললৈ স্ক্ৰ’ল কৰক</translation> <translation id="1774796056689732716">কেলেণ্ডাৰ, <ph name="CURRENT_MONTH_YEAR" />, বৰ্তমান <ph name="DATE" /> বাছনি কৰা হৈছে।</translation> <translation id="1787955149152357925">অফ আছে</translation> +<translation id="1797271123677381264">পাছৱৰ্ড পাহৰিলে</translation> <translation id="181103072419391116">ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে</translation> <translation id="1812997170047690955">মোৰ স্ক্ৰীণত কি আছে?</translation> <translation id="1823873187264960516">ইথাৰনেট: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ইথাৰনেট</translation> <translation id="4481530544597605423">যোৰা বিচ্ছিন্ন কৰা ডিভাইচসমূহ</translation> <translation id="4505050298327493054">সক্ৰিয় ডেস্ক৷</translation> +<translation id="450584155212756404">বিকাশকৰ্তাৰ চেনেল</translation> <translation id="4513946894732546136">মতামত</translation> <translation id="4518404433291145981">আপোনাৰ Chromebook আনলক কৰিবলৈ, প্ৰথমে আপোনাৰ ফ’নটো আনলক কৰক</translation> <translation id="4527045527269911712">ব্লুটুথ ডিভাইচ "<ph name="DEVICE_NAME" />"এ পেয়াৰ কৰিবলৈ অনুমতি বিচাৰে।</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">আপোনাক স্বয়ংক্ৰিয়ভাৱে <ph name="LOGOUT_TIME_LEFT" />ত ছাইন আউট কৰোৱা হ’ব।</translation> <translation id="6064463340679478396">ফাইলটো ব্যৱহাৰ কৰি হ’ল</translation> <translation id="6073451960410192870">ৰেকৰ্ডিং কৰা বন্ধ কৰক</translation> +<translation id="6074087755403037157">বিটা চেনেল</translation> <translation id="6099678161144790572">যোৱা মাহটোত সম্পাদনা কৰিছিল</translation> <translation id="6103838137565245112">ছিষ্টেম</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> কথনৰ ফাইল ডাউনল’ড কৰা হৈছে</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">পুনৰ আৰম্ভ কৰক</translation> <translation id="8203795194971602413">সোঁফালে ক্লিক</translation> <translation id="8209010265547628927">ৰিছেট কৰক</translation> +<translation id="8214996719228530800">Canary চেনেল</translation> <translation id="8219451629189078428">এই সময়ছোৱাত আপোনাৰ Chromebookটো অন হৈ থকা আৰু বিদ্যুৎ শক্তিৰ উৎসৰ লগত সংযোগ হৈ থকা আৱশ্যক। চাৰ্জাৰটো অথবা এডাপ্টৰ কে’বলসমূহ আপোনাৰ Chromebookটো আৰু পাৱাৰ আউটলেট উভয়তে ভালকৈ সংযোগ হৈ থকাটো নিশ্চিত কৰক। আপোনাৰ Chromebookটো অফ নকৰিব।</translation> <translation id="8236042855478648955">বিৰতিৰ সময়</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />, ফ’নৰ বেটাৰী <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_az.xtb b/ash/strings/ash_strings_az.xtb index 8a598c6d..a56e4563 100644 --- a/ash/strings/ash_strings_az.xtb +++ b/ash/strings/ash_strings_az.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Sağa sürüşdürün</translation> <translation id="1774796056689732716">Təqvim, <ph name="CURRENT_MONTH_YEAR" />, hazırda <ph name="DATE" /> seçilib.</translation> <translation id="1787955149152357925">Deaktiv</translation> +<translation id="1797271123677381264">Şifrəni unutmuşam</translation> <translation id="181103072419391116">Siqnal Gücü <ph name="SIGNAL_STRENGTH" />, Administratorunuz tərəfindən idarə olunur</translation> <translation id="1812997170047690955">Ekranımda nə var?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Ayrılmış cihazlar</translation> <translation id="4505050298327493054">Aktiv masa.</translation> +<translation id="450584155212756404">Gəlişim Kanalı</translation> <translation id="4513946894732546136">Geri əlaqə</translation> <translation id="4518404433291145981">Chromebook'u kiliddən çıxarmaq üçün əvvəlcə telefonunuzu kiliddən çıxarın</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" cihazı cütlənmək üçün icazə istəyir.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> ərzində avtomatik çıxış edəcəksiniz.</translation> <translation id="6064463340679478396">Fayldan istifadə bitib</translation> <translation id="6073451960410192870">Çəkməyi dayandırın</translation> +<translation id="6074087755403037157">Beta Kanalı</translation> <translation id="6099678161144790572">Keçən ay redaktə edilib</translation> <translation id="6103838137565245112">sistem</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> dilində danışıq faylları endirilib</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Davam edin</translation> <translation id="8203795194971602413">Sağ düymə</translation> <translation id="8209010265547628927">Sıfırlayın</translation> +<translation id="8214996719228530800">Kanarya Kanalı</translation> <translation id="8219451629189078428">Bu müddət ərzində Chromebook cihazınız yanılı və şəbəkəyə qoşulu vəziyətdə olmalıdır. Doldurma qurğusu və ya adapter naqillərinin həm Chromebook cihazınıza, həm də elektrik yuvasına tam şəkildə taxılı olduğundan əmin olun. Chromebook cihazını söndürməyin.</translation> <translation id="8236042855478648955">Fasilə vaxtı</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />, Telefonun Batareyası <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 723e3c39..e0ee80c 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Превъртане надясно</translation> <translation id="1774796056689732716">Календар, текущата дата е <ph name="CURRENT_MONTH_YEAR" />, а понастоящем е избрана <ph name="DATE" />.</translation> <translation id="1787955149152357925">Изкл.</translation> +<translation id="1797271123677381264">Забравена парола</translation> <translation id="181103072419391116">Сила на сигнала <ph name="SIGNAL_STRENGTH" />, управлява се от администратора ви</translation> <translation id="1812997170047690955">Какво има на екрана ми?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Несдвоени устройства</translation> <translation id="4505050298327493054">Активен работен кът.</translation> +<translation id="450584155212756404">Канал за програмисти</translation> <translation id="4513946894732546136">Отзиви</translation> <translation id="4518404433291145981">За да отключите своя Chromebook, първо отключете телефона си</translation> <translation id="4527045527269911712">Устройството с Bluetooth „<ph name="DEVICE_NAME" />“ иска разрешение за сдвояване.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Ще излезете автоматично след <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Приключих с използването на този файл</translation> <translation id="6073451960410192870">Спиране на записа</translation> +<translation id="6074087755403037157">Бета-канал</translation> <translation id="6099678161144790572">Редактирано през миналия месец</translation> <translation id="6103838137565245112">система</translation> <translation id="6114505516289286752">Файловете за говор на <ph name="LANGUAGE" /> бяха изтеглени</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Възобновяване</translation> <translation id="8203795194971602413">Кликване с десния бутон</translation> <translation id="8209010265547628927">Нулиране</translation> +<translation id="8214996719228530800">Канал Canary</translation> <translation id="8219451629189078428">През това време вашият Chromebook трябва да остане включен и свързан със захранването. Уверете се, че зарядното устройство или кабелите на адаптера са включени добре във вашия Chromebook и в електрическия контакт. Не изключвайте Chromebook.</translation> <translation id="8236042855478648955">Време е за почивка</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />, батерия на телефона <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index d38222a7..f4caf0d 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Nach rechts scrollen</translation> <translation id="1774796056689732716">Kalender, <ph name="CURRENT_MONTH_YEAR" />, momentan ist der <ph name="DATE" /> ausgewählt.</translation> <translation id="1787955149152357925">Aus</translation> +<translation id="1797271123677381264">Passwort vergessen</translation> <translation id="181103072419391116">Signalstärke bei <ph name="SIGNAL_STRENGTH" />, von deinem Administrator verwaltet</translation> <translation id="1812997170047690955">Was wird auf meinem Bildschirm angezeigt?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Entkoppelte Geräte</translation> <translation id="4505050298327493054">Aktiver Desktop.</translation> +<translation id="450584155212756404">Entwicklerversion</translation> <translation id="4513946894732546136">Feedback</translation> <translation id="4518404433291145981">Zum Entsperren des Chromebooks zuerst Smartphone entsperren</translation> <translation id="4527045527269911712">Das Bluetooth-Gerät "<ph name="DEVICE_NAME" />" bittet um Erlaubnis für Kopplung.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Du wirst in <ph name="LOGOUT_TIME_LEFT" /> automatisch abgemeldet.</translation> <translation id="6064463340679478396">Ich bin mit dieser Datei fertig</translation> <translation id="6073451960410192870">Aufnahme beenden</translation> +<translation id="6074087755403037157">Betaversion</translation> <translation id="6099678161144790572">Im letzten Monat bearbeitet</translation> <translation id="6103838137565245112">System</translation> <translation id="6114505516289286752">Sprachdateien auf <ph name="LANGUAGE" /> heruntergeladen</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Fortsetzen</translation> <translation id="8203795194971602413">Rechtsklick</translation> <translation id="8209010265547628927">Zurücksetzen</translation> +<translation id="8214996719228530800">Canary-Version</translation> <translation id="8219451629189078428">Dein Chromebook muss während dieses Zeitraums eingeschaltet und an eine Steckdose angeschlossen sein. Achte darauf, dass die Kabel des Ladegeräts oder Adapters ordnungsgemäß in dein Chromebook und die Steckdose eingesteckt sind. Schalte dein Chromebook nicht aus.</translation> <translation id="8236042855478648955">Zeit für eine Pause</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" />, Smartphone-Akku bei <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 90cc850c..b95d2d7b 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Desplazar hacia la derecha</translation> <translation id="1774796056689732716">Calendario, <ph name="CURRENT_MONTH_YEAR" />, se seleccionó <ph name="DATE" />.</translation> <translation id="1787955149152357925">No</translation> +<translation id="1797271123677381264">Olvidé mi contraseña</translation> <translation id="181103072419391116">Intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, administrada por tu administrador</translation> <translation id="1812997170047690955">¿Qué hay en mi pantalla?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -610,6 +611,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Dispositivos no sincronizados</translation> <translation id="4505050298327493054">Escritorio activo</translation> +<translation id="450584155212756404">Canal para desarrolladores</translation> <translation id="4513946894732546136">Comentario</translation> <translation id="4518404433291145981">Para desbloquear la Chromebook, primero desbloquea el teléfono</translation> <translation id="4527045527269911712">El dispositivo Bluetooth "<ph name="DEVICE_NAME" />" solicita permiso para sincronizarse.</translation> @@ -877,6 +879,7 @@ <translation id="6062360702481658777">Saldrás de la sesión automáticamente en <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Terminé de utilizar el archivo</translation> <translation id="6073451960410192870">Detener grabación</translation> +<translation id="6074087755403037157">Canal beta</translation> <translation id="6099678161144790572">Se editó el mes pasado</translation> <translation id="6103838137565245112">sistema</translation> <translation id="6114505516289286752">Se descargaron los archivos de voz en <ph name="LANGUAGE" /></translation> @@ -1227,6 +1230,7 @@ <translation id="8200772114523450471">Reanudar</translation> <translation id="8203795194971602413">Clic con botón derecho</translation> <translation id="8209010265547628927">Restablecer</translation> +<translation id="8214996719228530800">Canal de Canary</translation> <translation id="8219451629189078428">Durante ese período, la Chromebook deberá estar encendida y enchufada a una fuente de alimentación. Asegúrate de que el cable del cargador o adaptador esté conectado correctamente tanto a la Chromebook como al enchufe. No apagues la Chromebook.</translation> <translation id="8236042855478648955">Es hora de descansar</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />, nivel de batería del teléfono: <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 17ff7985..dca76dac 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Vieritä oikealle</translation> <translation id="1774796056689732716">Kalenteri, <ph name="CURRENT_MONTH_YEAR" />, <ph name="DATE" /> on valittuna</translation> <translation id="1787955149152357925">Pois päältä</translation> +<translation id="1797271123677381264">Salasana unohtui</translation> <translation id="181103072419391116">Signaalin vahvuus <ph name="SIGNAL_STRENGTH" />, järjestelmänvalvojan hallinnoima</translation> <translation id="1812997170047690955">Mitä näytölläni näkyy?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Laitteet ilman paria</translation> <translation id="4505050298327493054">Aktiivinen työpöytä</translation> +<translation id="450584155212756404">Kehittäjäversio</translation> <translation id="4513946894732546136">Palaute</translation> <translation id="4518404433291145981">Voit avata Chromebookin lukituksen avaamalla ensin puhelimesi</translation> <translation id="4527045527269911712">Bluetooth-laite <ph name="DEVICE_NAME" /> pyytää lupaa laiteparin muodostamiseen.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Sinut kirjataan ulos automaattisesti, aikaa jäljellä <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Haluan lopettaa tiedoston käytön</translation> <translation id="6073451960410192870">Lopeta tallennus</translation> +<translation id="6074087755403037157">Betaversio</translation> <translation id="6099678161144790572">Muokattu kuluneen kuukauden aikana</translation> <translation id="6103838137565245112">järjestelmä</translation> <translation id="6114505516289286752">Puhetiedostot (<ph name="LANGUAGE" />) ladattu</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Jatka</translation> <translation id="8203795194971602413">Klikkaus kakkospainikkeella</translation> <translation id="8209010265547628927">Nollaa</translation> +<translation id="8214996719228530800">Canary-versio</translation> <translation id="8219451629189078428">Chromebookin täytyy pysyä päällä ja yhdistettynä virtalähteeseen tänä aikana. Varmista, että laturin tai virtalähteen johdot on liitetty kunnolla sekä Chromebookiin että pistorasiaan. Älä sammuta Chromebookia.</translation> <translation id="8236042855478648955">Tauon paikka</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, signaalin vahvuus <ph name="SIGNAL_STRENGTH" />, puhelimen akun varaus <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_fr-CA.xtb b/ash/strings/ash_strings_fr-CA.xtb index e28985b..068f5d8 100644 --- a/ash/strings/ash_strings_fr-CA.xtb +++ b/ash/strings/ash_strings_fr-CA.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Faire défiler vers la droite</translation> <translation id="1774796056689732716">Agenda, <ph name="CURRENT_MONTH_YEAR" />, le <ph name="DATE" /> est actuellement sélectionné.</translation> <translation id="1787955149152357925">Désactivé</translation> +<translation id="1797271123677381264">Mot de passe oublié</translation> <translation id="181103072419391116">Force du signal : <ph name="SIGNAL_STRENGTH" />, géré par votre administrateur</translation> <translation id="1812997170047690955">Qu'y a-t-il sur mon écran?</translation> <translation id="1823873187264960516">Ethernet : <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Appareils dissociés</translation> <translation id="4505050298327493054">Bureau actif.</translation> +<translation id="450584155212756404">Version développeur</translation> <translation id="4513946894732546136">Commentaires</translation> <translation id="4518404433291145981">Pour déverrouiller votre Chromebook, déverrouillez d'abord votre téléphone</translation> <translation id="4527045527269911712">L'appareil Bluetooth « <ph name="DEVICE_NAME" /> » demande l'autorisation de s'associer.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Vous serez automatiquement déconnecté dans <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Fini d'utiliser le fichier</translation> <translation id="6073451960410192870">Arrêter l'enregistrement</translation> +<translation id="6074087755403037157">Version bêta</translation> <translation id="6099678161144790572">Modifié au cours du dernier mois</translation> <translation id="6103838137565245112">système</translation> <translation id="6114505516289286752">Fichiers vocaux en <ph name="LANGUAGE" /> téléchargés</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Reprendre</translation> <translation id="8203795194971602413">Clic droit</translation> <translation id="8209010265547628927">Réinitialiser</translation> +<translation id="8214996719228530800">Version Canary</translation> <translation id="8219451629189078428">Votre Chromebook doit rester allumé et branché sur une source d'alimentation pendant ce temps. Vérifiez que les câbles de l'adaptateur ou du chargeur sont bien branchés sur votre Chromebook et sur la prise de courant. N'éteignez pas votre Chromebook.</translation> <translation id="8236042855478648955">C'est le moment de prendre une pause</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" />, pile du téléphone <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index dd392722..0095337 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Vers la droite</translation> <translation id="1774796056689732716">Agenda, <ph name="CURRENT_MONTH_YEAR" />, le <ph name="DATE" /> est actuellement sélectionné.</translation> <translation id="1787955149152357925">Désactivé</translation> +<translation id="1797271123677381264">Mot de passe oublié</translation> <translation id="181103072419391116">Force du signal : <ph name="SIGNAL_STRENGTH" />, géré par votre administrateur</translation> <translation id="1812997170047690955">Éléments affichés à l'écran</translation> <translation id="1823873187264960516">Ethernet : <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet </translation> <translation id="4481530544597605423">Appareils dissociés</translation> <translation id="4505050298327493054">Bureau actif.</translation> +<translation id="450584155212756404">Version en développement</translation> <translation id="4513946894732546136">Commentaires</translation> <translation id="4518404433291145981">Pour déverrouiller votre Chromebook, déverrouillez d'abord votre téléphone</translation> <translation id="4527045527269911712">L'appareil Bluetooth "<ph name="DEVICE_NAME" />" demande l'autorisation de s'associer.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Vous allez être déconnecté automatiquement dans <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">J'ai terminé d'utiliser le fichier</translation> <translation id="6073451960410192870">Arrêter l'enregistrement</translation> +<translation id="6074087755403037157">Version bêta</translation> <translation id="6099678161144790572">Modifié le mois dernier</translation> <translation id="6103838137565245112">système</translation> <translation id="6114505516289286752">Fichiers vocaux en <ph name="LANGUAGE" /> téléchargés</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Reprendre</translation> <translation id="8203795194971602413">Clic droit</translation> <translation id="8209010265547628927">Réinitialiser</translation> +<translation id="8214996719228530800">Canal de publication de Canary</translation> <translation id="8219451629189078428">Votre Chromebook doit rester allumé et branché à une source d'alimentation pendant ce temps. Vérifiez que les câbles de l'adaptateur ou du chargeur sont bien branchés sur votre Chromebook et sur la prise électrique. N'éteignez pas votre Chromebook.</translation> <translation id="8236042855478648955">Une pause s'impose !</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" />, batterie du téléphone à <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_gl.xtb b/ash/strings/ash_strings_gl.xtb index 8e04899..a255412 100644 --- a/ash/strings/ash_strings_gl.xtb +++ b/ash/strings/ash_strings_gl.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Desprazarse á dereita</translation> <translation id="1774796056689732716">Calendario, <ph name="CURRENT_MONTH_YEAR" />; nestes momentos está seleccionada a data <ph name="DATE" />.</translation> <translation id="1787955149152357925">Desactivado</translation> +<translation id="1797271123677381264">Esquecín o contrasinal</translation> <translation id="181103072419391116">Intensidade do sinal do <ph name="SIGNAL_STRENGTH" />, xestionada polo teu administrador</translation> <translation id="1812997170047690955">Que se mostra na miña pantalla?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -610,6 +611,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Dispositivos desincronizados</translation> <translation id="4505050298327493054">Escritorio activo.</translation> +<translation id="450584155212756404">Canle Dev</translation> <translation id="4513946894732546136">Dános a túa opinión</translation> <translation id="4518404433291145981">Para desbloquear o Chromebook, primeiro desbloquea o teléfono</translation> <translation id="4527045527269911712">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" quere obter permiso para sincronizarse.</translation> @@ -877,6 +879,7 @@ <translation id="6062360702481658777">A túa sesión pecharase automaticamente en <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Xa rematei de utilizar o ficheiro</translation> <translation id="6073451960410192870">Deter gravación</translation> +<translation id="6074087755403037157">Canle Beta</translation> <translation id="6099678161144790572">Editouse durante o último mes</translation> <translation id="6103838137565245112">sistema</translation> <translation id="6114505516289286752">Descargáronse os ficheiros de voz en <ph name="LANGUAGE" /></translation> @@ -1227,6 +1230,7 @@ <translation id="8200772114523450471">Retomar</translation> <translation id="8203795194971602413">Clic co botón dereito</translation> <translation id="8209010265547628927">Restablecer</translation> +<translation id="8214996719228530800">Canle Canary</translation> <translation id="8219451629189078428">Durante este tempo, o Chromebook ten que permanecer acendido e enchufado. Asegúrate de que os cables do adaptador ou do cargador estean ben inseridos tanto no Chromebook como no enchufe. Non apagues o Chromebook.</translation> <translation id="8236042855478648955">É hora de que fagas unha pausa</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" />, batería do teléfono ao <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 89183201..f2eb958 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">જમણે સ્ક્રોલ કરો</translation> <translation id="1774796056689732716">કૅલેન્ડર, <ph name="CURRENT_MONTH_YEAR" />, હાલમાં <ph name="DATE" /> પસંદ કરેલી છે.</translation> <translation id="1787955149152357925">બંધ છે</translation> +<translation id="1797271123677381264">પાસવર્ડ ભૂલી ગયા</translation> <translation id="181103072419391116">સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે</translation> <translation id="1812997170047690955">મારી સ્ક્રીન પર શું છે?</translation> <translation id="1823873187264960516">ઇથરનેટ: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ઇથરનેટ</translation> <translation id="4481530544597605423">જોડીથી અલગ કરેલા ઉપકરણો</translation> <translation id="4505050298327493054">સક્રિય ડેસ્ક.</translation> +<translation id="450584155212756404">Dev ચૅનલ</translation> <translation id="4513946894732546136">પ્રતિસાદ</translation> <translation id="4518404433291145981">તમારી Chromebook અનલૉક કરવા માટે, પહેલાં તમારો ફોન અનલૉક કરો</translation> <translation id="4527045527269911712">Bluetooth ડિવાઇસ "<ph name="DEVICE_NAME" />" ને જોડી બનાવવા માટે પરવાનગી જોઈએ છે.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">તમે ઑટોમૅટિક રીતે <ph name="LOGOUT_TIME_LEFT" /> માં સાઇન આઉટ થઈ જશો.</translation> <translation id="6064463340679478396">ફાઇલનો વપરાશ પૂર્ણ થયો</translation> <translation id="6073451960410192870">રેકોર્ડિંગ બંધ કરો</translation> +<translation id="6074087755403037157">બીટા ચૅનલ</translation> <translation id="6099678161144790572">ગયા મહિને ફેરફાર કરવામાં આવ્યો હતો</translation> <translation id="6103838137565245112">સિસ્ટમ</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> સ્પીચ ફાઇલ ડાઉનલોડ કરી</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">રિઝ્યુમે</translation> <translation id="8203795194971602413">રાઇટ ક્લિક કરો</translation> <translation id="8209010265547628927">રીસેટ કરો</translation> +<translation id="8214996719228530800">Canary ચૅનલ</translation> <translation id="8219451629189078428">આ સમય દરમ્યાન, તમારું Chromebook ચાલુ રહેવું અને પાવરથી કનેક્ટ થયેલું હોવું આવશ્યક છે. ખાતરી કરો કે ચાર્જર અથવા અડૅપ્ટર કેબલ તમારા Chromebook અને પાવર આઉટલેટ, એમ બન્નેમાં યોગ્ય રીતે પ્લગ-ઇન કરવામાં આવ્યા હોય. તમારું Chromebook બંધ કરશો નહીં.</translation> <translation id="8236042855478648955">વિરામ લેવાનો સમય</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />, ફોનની બૅટરી <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index 26ece85..c0a8af2 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">גלילה ימינה</translation> <translation id="1774796056689732716">יומן, <ph name="CURRENT_MONTH_YEAR" />, התאריך שנבחר הוא <ph name="DATE" />.</translation> <translation id="1787955149152357925">כבוי</translation> +<translation id="1797271123677381264">שכחתי את הסיסמה</translation> <translation id="181103072419391116">עוצמת האות: <ph name="SIGNAL_STRENGTH" />, הרשת מנוהלת על ידי מנהל המערכת שלך</translation> <translation id="1812997170047690955">מה מופיע במסך שלי?</translation> <translation id="1823873187264960516">אתרנט: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">אתרנט</translation> <translation id="4481530544597605423">מכשירים לא מותאמים</translation> <translation id="4505050298327493054">שולחן עבודה וירטואלי פעיל.</translation> +<translation id="450584155212756404">Dev Channel</translation> <translation id="4513946894732546136">משוב</translation> <translation id="4518404433291145981">כדי לבטל את נעילת ה-Chromebook, קודם צריך לבטל את הנעילה של הטלפון</translation> <translation id="4527045527269911712">מכשיר ה-Bluetooth "<ph name="DEVICE_NAME" />" מבקש הרשאה לבצע התאמה.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">תבוצע יציאה באופן אוטומטי בעוד <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">סיימתי להשתמש בקובץ</translation> <translation id="6073451960410192870">הפסקת צילום הסרטון</translation> +<translation id="6074087755403037157">ערוץ בטא</translation> <translation id="6099678161144790572">נערך בחודש האחרון</translation> <translation id="6103838137565245112">מערכת</translation> <translation id="6114505516289286752">הורדת קובצי הדיבור של <ph name="LANGUAGE" /> הסתיימה</translation> @@ -1228,6 +1231,7 @@ <translation id="8200772114523450471">חידוש</translation> <translation id="8203795194971602413">לחיצה ימנית</translation> <translation id="8209010265547628927">איפוס</translation> +<translation id="8214996719228530800">ערוץ Canary</translation> <translation id="8219451629189078428">בפרק הזמן הזה, יש להקפיד להשאיר את ה-Chromebook פועל ומחובר לחשמל. יש לוודא שהכבלים של המטען או של המתאם מחוברים כראוי אל ה-Chromebook ואל שקע החשמל. אין לכבות את ה-Chromebook.</translation> <translation id="8236042855478648955">הגיע הזמן להפסקה</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />, סוללת הטלפון <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_ka.xtb b/ash/strings/ash_strings_ka.xtb index a3b555e..bcca125 100644 --- a/ash/strings/ash_strings_ka.xtb +++ b/ash/strings/ash_strings_ka.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">გადაადგილება მარჯვნივ</translation> <translation id="1774796056689732716">კალენდარი, <ph name="CURRENT_MONTH_YEAR" />, ამჟამად არჩეულია <ph name="DATE" />.</translation> <translation id="1787955149152357925">გამორთვა</translation> +<translation id="1797271123677381264">პაროლი დამავიწყდა</translation> <translation id="181103072419391116">სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />, მართავს თქვენი ადმინისტრატორი</translation> <translation id="1812997170047690955">რა არის ჩემს ეკრანზე?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ეთერნეთი</translation> <translation id="4481530544597605423">დაწყვილებაგაუქმებული მოწყობილობები</translation> <translation id="4505050298327493054">აქტიური სამუშაო მაგიდა.</translation> +<translation id="450584155212756404">შემუშავების არხი</translation> <translation id="4513946894732546136">უკუკავშირი</translation> <translation id="4518404433291145981">თქვენს Chromebook-ში შესასვლელად, პირველ რიგში, განბლოკეთ თქვენი ტელეფონი</translation> <translation id="4527045527269911712">Bluetooth მოწყობილობა „<ph name="DEVICE_NAME" />“ მოითხოვს დაწყვილების ნებართვას.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">თქვენ ავტომატურად გამოხვალთ ამ პერიოდში: <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">ამ ფაილის გამოყენება დავასრულე</translation> <translation id="6073451960410192870">ჩაწერის შეწყვეტა</translation> +<translation id="6074087755403037157">ბეტა არხი</translation> <translation id="6099678161144790572">თვის განმავლობაში რედაქტირებული</translation> <translation id="6103838137565245112">სისტემა</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> მეტყველების ფაილები ჩამოიტვირთა</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">გაგრძელება</translation> <translation id="8203795194971602413">მარჯვენა დაწკაპუნება</translation> <translation id="8209010265547628927">გადაყენება</translation> +<translation id="8214996719228530800">Canary არხი</translation> <translation id="8219451629189078428">თქვენი Chromebook ამ დროის განმავლობაში ჩართული და კვების წყაროსთან მიერთებული უნდა იყოს. დარწმუნდით, რომ დამტენის ან ადაპტერის კაბელები კარგად არის შეერთებული როგორც Chromebook-ში, ისე როზეტში. არ გამორთოთ Chromebook.</translation> <translation id="8236042855478648955">შესვენების დროა</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />, ტელეფონის ბატარეა: <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 2b86fd5..8d0b151a 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -910,7 +910,7 @@ <translation id="6284232397434400372">ರೆಸಲ್ಯೂಷನ್ ಬದಲಾಗಿದೆ</translation> <translation id="6288235558961782912">ಪೋಷಕರ ಅನುಮತಿಯ ಮೇರೆಗೆ <ph name="USER_EMAIL_ADDRESS" /> ಅನ್ನು ನಂತರ ಪುನಃ ಸೇರಿಸಬಹುದಾಗಿದೆ.</translation> <translation id="6291221004442998378">ಚಾರ್ಜ್ ಆಗುತ್ತಿಲ್ಲ</translation> -<translation id="6315170314923504164">Voice</translation> +<translation id="6315170314923504164">ಧ್ವನಿ</translation> <translation id="6330012934079202188">ಎಲ್ಲಾ ಡೆಸ್ಕ್ಗಳಿಂದ ವಿಂಡೋಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ, ಪ್ರಸ್ತುತ ಡೆಸ್ಕ್ನಿಂದ ವಿಂಡೋಗಳನ್ನು ತೋರಿಸಲು ಅಪ್ ಆ್ಯರೋ ಕೀ ಅನ್ನು ಒತ್ತಿ</translation> <translation id="6338485349199627913"><ph name="DISPLAY_NAME" /> ಎಂಬುದು <ph name="MANAGER" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾದ ಒಂದು ನಿರ್ವಹಿಸಿದ ಸೆಶನ್ ಆಗಿದೆ</translation> <translation id="6344138931392227467"><ph name="DEVICE_NAME" /> ಅನ್ನು ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
diff --git a/ash/strings/ash_strings_lo.xtb b/ash/strings/ash_strings_lo.xtb index a8791a1..1daaae81 100644 --- a/ash/strings/ash_strings_lo.xtb +++ b/ash/strings/ash_strings_lo.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">ເລື່ອນໄປຂວາ</translation> <translation id="1774796056689732716">ປະຕິທິນ, <ph name="CURRENT_MONTH_YEAR" />, ຕອນນີ້ເລືອກ <ph name="DATE" /> ຢູ່.</translation> <translation id="1787955149152357925">ປິດ</translation> +<translation id="1797271123677381264">ລືມລະຫັດຜ່ານ</translation> <translation id="181103072419391116">ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ</translation> <translation id="1812997170047690955">ມີຫຍັງຢູ່ໃນໜ້າຈໍຂອງຂ້ອຍ?</translation> <translation id="1823873187264960516">ອີເທີເນັດ: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ອີເທີເນັດ</translation> <translation id="4481530544597605423">ອຸປະກອນທີ່ບໍ່ໄດ້ຈັບຄູ່ກັນ</translation> <translation id="4505050298327493054">ໂຕະເຮັດວຽກທີ່ນຳໃຊ້ຢູ່.</translation> +<translation id="450584155212756404">ຊ່ອງຜູ້ພັດທະນາ</translation> <translation id="4513946894732546136">ຄໍາຄິດເຫັນ</translation> <translation id="4518404433291145981">ເພື່ອປົດລັອກ Chromebook ຂອງທ່ານ, ໃຫ້ປົດລັອກໂທລະສັບຂອງທ່ານ</translation> <translation id="4527045527269911712">ອຸປະກອນ Bluetooth "<ph name="DEVICE_NAME" />" ຢາກໄດ້ການອະນຸຍາດຈັບຄູ່.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">ທ່ານຈະຖືກອອກຈາກລະບົບໃນ <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">ໃຊ້ໄຟລ໌ແລ້ວໆ</translation> <translation id="6073451960410192870">ຢຸດການບັນທຶກ</translation> +<translation id="6074087755403037157">ຊ່ອງເບຕ້າ</translation> <translation id="6099678161144790572">ແກ້ໄຂເດືອນແລ້ວ</translation> <translation id="6103838137565245112">ລະບົບ</translation> <translation id="6114505516289286752">ດາວໂຫຼດໄຟລ໌ສຽງເວົ້າ <ph name="LANGUAGE" /> ແລ້ວ</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">ເລີ່ມຕົ້ນປິດເປີດໃໝ່</translation> <translation id="8203795194971602413">ຄລິກຂວາ</translation> <translation id="8209010265547628927">ຣີເຊັດ</translation> +<translation id="8214996719228530800">ຊ່ອງ Canary</translation> <translation id="8219451629189078428">ທ່ານຈຳເປັນຕ້ອງເປີດ Chromebook ຂອງທ່ານ ແລະ ສຽບປລັກໄວ້ຕະຫຼອດເວລາໃນລະຫວ່າງນີ້. ກວດໃຫ້ແນ່ໃຈວ່າໄດ້ສຽບສາຍສາກ ຫຼື ສາຍອະແດັບເຕີຄົບຖ້ວນແລ້ວ, ໃສ່ທັງ Chromebook ແລະ ເຕົ້າສຽບໄຟ. ຢ່າປິດ Chromebook ຂອງທ່ານ.</translation> <translation id="8236042855478648955">ເວລາພັກ</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />, ແບັດເຕີຣີໂທລະສັບ <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 56612de..5b6925a 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">उजवीकडे स्क्रोल करा</translation> <translation id="1774796056689732716">कॅलेंडर, <ph name="CURRENT_MONTH_YEAR" />, सध्या <ph name="DATE" /> निवडली आहे.</translation> <translation id="1787955149152357925">बंद करा</translation> +<translation id="1797271123677381264">पासवर्ड विसरलात</translation> <translation id="181103072419391116">सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />, तुमच्या अॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले</translation> <translation id="1812997170047690955">माझ्या स्क्रीनवर काय आहे?</translation> <translation id="1823873187264960516">इथरनेट: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">इथरनेट</translation> <translation id="4481530544597605423">जोडणी वेगळी केलेली डिव्हाइस</translation> <translation id="4505050298327493054">ॲक्टिव्ह डेस्क.</translation> +<translation id="450584155212756404">Dev चॅनल</translation> <translation id="4513946894732546136">फीडबॅक</translation> <translation id="4518404433291145981">तुमचे Chromebook अनलॉक करण्यासाठी, आधी तुमचा फोन अनलॉक करा</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" Bluetooth डिव्हाइस जोडण्यासाठी परवानगी घेऊ इच्छिते.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">तुम्हाला <ph name="LOGOUT_TIME_LEFT" /> मधून स्वयंचलितपणे साइन आउट केले जाईल.</translation> <translation id="6064463340679478396">फाइल वापरून झाली</translation> <translation id="6073451960410192870">रेकॉर्डिंग थांबवा</translation> +<translation id="6074087755403037157">बीटा चॅनल</translation> <translation id="6099678161144790572">मागील महिन्यात संपादित केलेली</translation> <translation id="6103838137565245112">सिस्टीम</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> च्या स्पीच फाइल डाउनलोड केल्या आहेत</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">रेझ्युमे</translation> <translation id="8203795194971602413">राइट क्लिक</translation> <translation id="8209010265547628927">रीसेट करा</translation> +<translation id="8214996719228530800">कॅनरी चॅनल</translation> <translation id="8219451629189078428">या कालावधी दरम्यान Chromebook सुरू असणे आणि पॉवरशी कनेक्ट केलेले असणे आवश्यक आहे. चार्जर किंवा अडॅप्टर केबल तुमचे Chromebook आणि पॉवर आउटलेट या दोन्ही गोष्टींशी पूर्णपणे प्लग इन केल्या असल्याची खात्री करा. तुमचे Chromebook बंद करू नका.</translation> <translation id="8236042855478648955">विश्रांतीची वेळ</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />, फोन बॅटरी <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index d212cb5..21b87611 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Tatal ke kanan</translation> <translation id="1774796056689732716">Kalendar, <ph name="CURRENT_MONTH_YEAR" />, pada masa ini <ph name="DATE" /> dipilih.</translation> <translation id="1787955149152357925">Mati</translation> +<translation id="1797271123677381264">Terlupa kata laluan</translation> <translation id="181103072419391116">Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />, Diurus oleh Pentadbir anda</translation> <translation id="1812997170047690955">Apakah yang terdapat pada skrin saya?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -610,6 +611,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Peranti dinyahganding</translation> <translation id="4505050298327493054">Meja aktif.</translation> +<translation id="450584155212756404">Saluran Pembangunan</translation> <translation id="4513946894732546136">Maklum balas</translation> <translation id="4518404433291145981">Untuk membuka kunci Chromebook anda, buka kunci telefon anda dahulu</translation> <translation id="4527045527269911712">Peranti Bluetooth "<ph name="DEVICE_NAME" />" ingin kebenaran untuk berpasangan.</translation> @@ -877,6 +879,7 @@ <translation id="6062360702481658777">Anda akan dilog keluar secara automatik dalam masa <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Selesai menggunakan fail</translation> <translation id="6073451960410192870">Hentikan rakaman</translation> +<translation id="6074087755403037157">Saluran beta</translation> <translation id="6099678161144790572">Diedit dalam bulan lepas</translation> <translation id="6103838137565245112">sistem</translation> <translation id="6114505516289286752">Fail pertuturan <ph name="LANGUAGE" /> dimuat turun</translation> @@ -1227,6 +1230,7 @@ <translation id="8200772114523450471">Sambung semula</translation> <translation id="8203795194971602413">Klik kanan</translation> <translation id="8209010265547628927">Tetapkan semula</translation> +<translation id="8214996719228530800">Saluran Canary</translation> <translation id="8219451629189078428">Chromebook anda perlu kekal hidup dan disambungkan kepada kuasa sepanjang tempoh ini. Pastikan kabel pengecas atau penyesuai telah dipalamkan sepenuhnya pada Chromebook dan soket kuasa anda. Jangan matikan Chromebook anda.</translation> <translation id="8236042855478648955">Masa rehat</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />, Bateri Telefon <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_ne.xtb b/ash/strings/ash_strings_ne.xtb index e6d88a5d..7c4dc61 100644 --- a/ash/strings/ash_strings_ne.xtb +++ b/ash/strings/ash_strings_ne.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">दायाँतिर स्क्रोल गर्नुहोस्</translation> <translation id="1774796056689732716">पात्रो, <ph name="CURRENT_MONTH_YEAR" />, हाल चयन गरिएको मिति: <ph name="DATE" />।</translation> <translation id="1787955149152357925">अफ छ</translation> +<translation id="1797271123677381264">पासवर्ड बिर्सनुभयो</translation> <translation id="181103072419391116">सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />, तपाईंका प्रशासकले व्यवस्थित गर्नुभएको छ</translation> <translation id="1812997170047690955">मेरो स्क्रिनमा के छ?</translation> <translation id="1823873187264960516">इथरनेट: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">इथरनेट</translation> <translation id="4481530544597605423">जोडा हटाइएका यन्त्रहरू</translation> <translation id="4505050298327493054">सक्रिय डेस्क।</translation> +<translation id="450584155212756404">डेभ च्यानल</translation> <translation id="4513946894732546136">पृष्ठपोषण</translation> <translation id="4518404433291145981">तपाईं आफ्नो Chromebook अनलक गर्न चाहनुहुन्छ भने सर्वप्रथम आफ्नो फोन अनलक गर्नुहोस्</translation> <translation id="4527045527269911712">ब्लुटूथ यन्त्र "<ph name="DEVICE_NAME" />" जोडिनको लागि अनुमति चाहन्छ।</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">तपाइँ <ph name="LOGOUT_TIME_LEFT" /> मा स्वचालित रूपमा साइन आउट हुनुहुनेछ।</translation> <translation id="6064463340679478396">यो फाइल प्रयोग गरिसकेँ</translation> <translation id="6073451960410192870">रेकर्ड गर्न छाड्नुहोस्</translation> +<translation id="6074087755403037157">बिटा च्यानल</translation> <translation id="6099678161144790572">गत महिना सम्पादन गरिएको</translation> <translation id="6103838137565245112">सिस्टम</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> भाषाका वाक् पहिचानसम्बन्धी फाइलहरू डाउनलोड गरिएका छन्</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">रिजुमी</translation> <translation id="8203795194971602413">दायाँ क्लिक गर्नुहोस्</translation> <translation id="8209010265547628927">रिसेट गर्नुहोस्</translation> +<translation id="8214996719228530800">क्यानरी च्यानल</translation> <translation id="8219451629189078428">त्यतिन्जेल तपाईंको Chromebook खुला हुनु पर्छ र बिजुलीको स्रोतमा जोडिएको हुनु पर्छ। चार्जर वा एड्याप्टर केबल तपाईंको Chromebook र पावर सकेट दुवैतिर राम्ररी जोडिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्। आफ्नो Chromebook बन्द नगर्नुहोला।</translation> <translation id="8236042855478648955">आराम गर्ने समय भयो</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />, फोनको ब्याट्री <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_or.xtb b/ash/strings/ash_strings_or.xtb index 1e6562c..9e9fbf6 100644 --- a/ash/strings/ash_strings_or.xtb +++ b/ash/strings/ash_strings_or.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">ଡାହାଣକୁ ସ୍କ୍ରୋଲ୍ କରନ୍ତୁ</translation> <translation id="1774796056689732716">କ୍ୟାଲେଣ୍ଡର, <ph name="CURRENT_MONTH_YEAR" />, ବର୍ତ୍ତମାନ <ph name="DATE" />କୁ ଚୟନ କରାଯାଇଛି।</translation> <translation id="1787955149152357925">ବନ୍ଦ ଅଛି</translation> +<translation id="1797271123677381264">ପାସୱାର୍ଡ ଭୁଲି ଯାଇଛନ୍ତି</translation> <translation id="181103072419391116">ସିଗ୍ନାଲ୍ର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" />, ଆପଣଙ୍କର ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ</translation> <translation id="1812997170047690955">ମୋ ସ୍କ୍ରିନ୍ରେ କ’ଣ ଅଛି?</translation> <translation id="1823873187264960516">ଇଥର୍ନେଟ୍: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ଇଥର୍ନେଟ୍</translation> <translation id="4481530544597605423">ଅନ୍ପେୟାର୍ ହୋଇଥିବା ଡିଭାଇସ୍ଗୁଡ଼ିକ</translation> <translation id="4505050298327493054">ସକ୍ରିୟ ଡେସ୍କ.</translation> +<translation id="450584155212756404">ଡେଭ ଚ୍ୟାନେଲ</translation> <translation id="4513946894732546136">Feedback</translation> <translation id="4518404433291145981">ଆପଣଙ୍କ Chromebookକୁ ଅନଲକ୍ କରିବା ପାଇଁ, ପ୍ରଥମେ ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ୍ କରନ୍ତୁ</translation> <translation id="4527045527269911712">"<ph name="DEVICE_NAME" />" ବ୍ଲୁଟୁଥ୍ ଡିଭାଇସ୍ ପେୟାର୍ କରିବାକୁ ଅନୁମତି ଚାହୁଁଛି।</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">ଆପଣ ସ୍ଵଚାଳିତ ଭାବେ <ph name="LOGOUT_TIME_LEFT" />ରେ ସାଇନ୍ ଆଉଟ୍ କରିବେ।</translation> <translation id="6064463340679478396">ଏହି ଫାଇଲକୁ ବ୍ୟବହାର କରିସାରିଛି</translation> <translation id="6073451960410192870">ରେକର୍ଡିଂ ବନ୍ଦ କରନ୍ତୁ</translation> +<translation id="6074087755403037157">ବିଟା ଚ୍ୟାନେଲ</translation> <translation id="6099678161144790572">ଗତ ମାସରେ ଏଡିଟ କରାଯାଇଛି</translation> <translation id="6103838137565245112">ସିଷ୍ଟମ</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> ସ୍ପିଚ୍ ଫାଇଲଗୁଡ଼ିକ ଡାଉନଲୋଡ୍ କରାଯାଇଛି</translation> @@ -1225,6 +1228,7 @@ <translation id="8200772114523450471">ସାରାଶଂ</translation> <translation id="8203795194971602413">ଡାହାଣ କ୍ଲିକ୍</translation> <translation id="8209010265547628927">ରିସେଟ କରନ୍ତୁ</translation> +<translation id="8214996719228530800">କାନାରି ଚ୍ୟାନେଲ</translation> <translation id="8219451629189078428">ଏହି ସମୟରେ ଆପଣଙ୍କ Chromebook ଚାଲୁ ରହି ପାୱାର୍ ସହିତ ସଂଯୁକ୍ତ ରହିବା ଆବଶ୍ୟକ। ଆପଣଙ୍କର ଉଭୟ Chromebook ଓ ପାୱାର୍ ଆଉଟଲେଟ୍ ସହ ଚାର୍ଜର କିମ୍ବା ଆଡପ୍ଟର କେବୁଲଗୁଡ଼ିକ ସମ୍ପୂର୍ଣ୍ଣ ରୂପେ ପ୍ଲଗ୍ ଇନ୍ ହୋଇଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ। ଆପଣଙ୍କ Chromebookକୁ ବନ୍ଦ କରନ୍ତୁ ନାହିଁ।</translation> <translation id="8236042855478648955">ବିରତିର ସମୟ ହୋଇଛି</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, ସିଗ୍ନାଲ୍ର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" />, ଫୋନ୍ ବ୍ୟାଟେରୀ <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 2d0f377f..a751378 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Rolar para a direita</translation> <translation id="1774796056689732716">Agenda, <ph name="CURRENT_MONTH_YEAR" />, a data <ph name="DATE" /> está selecionada.</translation> <translation id="1787955149152357925">Desativado</translation> +<translation id="1797271123677381264">Esqueci minha senha</translation> <translation id="181103072419391116"><ph name="SIGNAL_STRENGTH" /> de intensidade de sinal , gerenciada pelo seu administrador</translation> <translation id="1812997170047690955">O que está na minha tela?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Dispositivos não pareados</translation> <translation id="4505050298327493054">Espaço de trabalho ativo.</translation> +<translation id="450584155212756404">Canal de Desenvolvedor</translation> <translation id="4513946894732546136">Comentários</translation> <translation id="4518404433291145981">Para desbloquear o Chromebook, desbloqueie o smartphone</translation> <translation id="4527045527269911712">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" deseja permissão para realizar o pareamento.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Você sairá automaticamente em <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Terminei de usar o arquivo</translation> <translation id="6073451960410192870">Parar de gravar</translation> +<translation id="6074087755403037157">Canal Beta</translation> <translation id="6099678161144790572">Editado no último mês</translation> <translation id="6103838137565245112">sistema</translation> <translation id="6114505516289286752">Download de arquivos de fala em <ph name="LANGUAGE" /> concluído</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Retomar</translation> <translation id="8203795194971602413">Clicar com o botão direito</translation> <translation id="8209010265547628927">Redefinir</translation> +<translation id="8214996719228530800">Canal Canary</translation> <translation id="8219451629189078428">O Chromebook precisa ficar ligado e conectado à energia durante esse período. Verifique se os cabos do carregador ou adaptador estão completamente conectados, tanto ao Chromebook quanto à tomada. Não desligue o Chromebook.</translation> <translation id="8236042855478648955">Hora de fazer uma pausa</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />, bateria do smartphone em <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_sq.xtb b/ash/strings/ash_strings_sq.xtb index 823fcea..eaddc44 100644 --- a/ash/strings/ash_strings_sq.xtb +++ b/ash/strings/ash_strings_sq.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Lëviz djathtas</translation> <translation id="1774796056689732716">Kalendari, <ph name="CURRENT_MONTH_YEAR" />, aktualisht është zgjedhur <ph name="DATE" />.</translation> <translation id="1787955149152357925">Joaktive</translation> +<translation id="1797271123677381264">Harrova fjalëkalimin</translation> <translation id="181103072419391116">Fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />, menaxhuar nga administratori yt</translation> <translation id="1812997170047690955">Çfarë ka në ekranin tim?</translation> <translation id="1823873187264960516">Eternet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Eternet</translation> <translation id="4481530544597605423">Pajisjet e paçiftuara</translation> <translation id="4505050298327493054">Hapësira e punës aktive.</translation> +<translation id="450584155212756404">Kanali i zhvilluesve</translation> <translation id="4513946894732546136">Komente</translation> <translation id="4518404433291145981">Për të shkyçur Chromebook-un tënd, shkyç fillimisht telefonin</translation> <translation id="4527045527269911712">Pajisja me Bluetooth "<ph name="DEVICE_NAME" />" kërkon leje për çiftim.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Do të dalësh automatikisht për <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Përfundova me përdorimin e skedarit</translation> <translation id="6073451960410192870">Ndalo regjistrimin</translation> +<translation id="6074087755403037157">Kanali "Beta"</translation> <translation id="6099678161144790572">Modifikuar muajin e kaluar</translation> <translation id="6103838137565245112">sistemi</translation> <translation id="6114505516289286752">Skedarët e ligjërimit në <ph name="LANGUAGE" /> u shkarkuan</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Vazhdo</translation> <translation id="8203795194971602413">Klikimi me butonin djathtas</translation> <translation id="8209010265547628927">Rivendos</translation> +<translation id="8214996719228530800">Kanali i versionit Canary</translation> <translation id="8219451629189078428">Pajisja jote Chromebook ka nevojë të qëndrojë aktive dhe e lidhur me energjinë gjatë kësaj kohe. Sigurohu që karikuesi ose kabllot e përshtatësit të jenë plotësisht të lidhura si me pajisjen tënde Chromebook, ashtu dhe me prizën elektrike. Mos e fik pajisjen tënde Chromebook.</translation> <translation id="8236042855478648955">Koha për një pushim</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />, bateria e telefonit <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index 87706e6..c0da44b 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Scrolla åt höger</translation> <translation id="1774796056689732716">Kalender, <ph name="CURRENT_MONTH_YEAR" />, just nu är <ph name="DATE" /> markerat.</translation> <translation id="1787955149152357925">Av</translation> +<translation id="1797271123677381264">Glömt lösenordet</translation> <translation id="181103072419391116">Signalstyrka <ph name="SIGNAL_STRENGTH" />, hanteras av administratören</translation> <translation id="1812997170047690955">Vad visas på skärmen?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Frånkopplade enheter</translation> <translation id="4505050298327493054">Aktiv arbetsyta.</translation> +<translation id="450584155212756404">Kanal för utvecklare</translation> <translation id="4513946894732546136">Feedback</translation> <translation id="4518404433291145981">Du måste först låsa upp telefonen om du vill låsa upp Chromebook</translation> <translation id="4527045527269911712">Bluetooth-enheten <ph name="DEVICE_NAME" /> har begärt tillstånd för koppling.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Du loggas ut automatiskt om <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Jag är klar med filen</translation> <translation id="6073451960410192870">Sluta spela in</translation> +<translation id="6074087755403037157">Betakanal</translation> <translation id="6099678161144790572">Redigerades under den senaste månaden</translation> <translation id="6103838137565245112">system</translation> <translation id="6114505516289286752">Filerna för taligenkänning på <ph name="LANGUAGE" /> har laddats ned</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Återuppta</translation> <translation id="8203795194971602413">Högerklicka</translation> <translation id="8209010265547628927">Återställ</translation> +<translation id="8214996719228530800">Canary-kanal</translation> <translation id="8219451629189078428">Chromebook måste vara på och ansluten till en strömkälla under den tiden. Se till att kabeln på laddaren eller adaptern är ordentligt ansluten till Chromebook och eluttaget. Stäng inte av Chromebook.</translation> <translation id="8236042855478648955">Dags för en paus</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" />, telefonens batterinivå <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index e001bf8d..8453d961 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Sogeza kulia</translation> <translation id="1774796056689732716">Kalenda, <ph name="CURRENT_MONTH_YEAR" />, kwa sasa umechagua <ph name="DATE" />.</translation> <translation id="1787955149152357925">Yamezimwa</translation> +<translation id="1797271123677381264">Umesahau nenosiri</translation> <translation id="181103072419391116">Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />, Unadhibitiwa na Msimamizi wako</translation> <translation id="1812997170047690955">Kuna nini kwenye skrini yangu?</translation> <translation id="1823873187264960516">Ethaneti: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethaneti</translation> <translation id="4481530544597605423">Vifaa visivyooanishwa</translation> <translation id="4505050298327493054">Eneokazi linalotumika.</translation> +<translation id="450584155212756404">Kituo Kinachoendelea Kujengwa</translation> <translation id="4513946894732546136">Mwitiko</translation> <translation id="4518404433291145981">Ili ufungue Chromebook yako, fungua simu yako kwanza</translation> <translation id="4527045527269911712">Kifaa cha Bluetooth cha "<ph name="DEVICE_NAME" />" kinaomba idhini ya kuoanisha.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Utaondolewa kwenye akaunti kiotomatiki baada ya <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Nimemaliza kutumia faili</translation> <translation id="6073451960410192870">Acha kurekodi</translation> +<translation id="6074087755403037157">Kituo cha Beta</translation> <translation id="6099678161144790572">Ilibadilishwa mwezi uliopita</translation> <translation id="6103838137565245112">mfumo</translation> <translation id="6114505516289286752">Faili za matamshi za <ph name="LANGUAGE" /> zimepakuliwa</translation> @@ -1227,6 +1230,7 @@ <translation id="8200772114523450471">Endelea</translation> <translation id="8203795194971602413">Mbofyo wa kulia</translation> <translation id="8209010265547628927">Weka upya</translation> +<translation id="8214996719228530800">Kituo cha Toleo la Jaribio (Canary)</translation> <translation id="8219451629189078428">Chromebook yako inahitaji kubaki ikiwa imewashwa na kuunganishwa kwenye chaja wakati huu. Hakikisha kuwa kebo za adapta au chaja zimechomekwa kabisa kwenye Chromebook yako na soketi ya umeme. Usizime Chromebook yako.</translation> <translation id="8236042855478648955">Ni wakati wa kupumzika</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />, Betri ya Simu <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index f18c8e9..7584c0c 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">வலப்புறம் செல்</translation> <translation id="1774796056689732716">கேலெண்டர், <ph name="CURRENT_MONTH_YEAR" />, தற்போது <ph name="DATE" /> என்ற தேதி தேர்ந்தெடுக்கப்பட்டுள்ளது.</translation> <translation id="1787955149152357925">முடக்கு</translation> +<translation id="1797271123677381264">கடவுச்சொல் மறந்துவிட்டது</translation> <translation id="181103072419391116">சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />, உங்கள் நிர்வாகி நிர்வகிக்கிறார்</translation> <translation id="1812997170047690955">எனது திரையில் இருப்பவையா?</translation> <translation id="1823873187264960516">ஈதர்நெட்: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">ஈத்தர்நெட்</translation> <translation id="4481530544597605423">இணைக்காத சாதனங்கள்</translation> <translation id="4505050298327493054">செயலிலுள்ள டெஸ்க்.</translation> +<translation id="450584155212756404">டெவ் சேனல்</translation> <translation id="4513946894732546136">கருத்து</translation> <translation id="4518404433291145981">Chromebookகை திறக்க உங்கள் ஃபோனை அன்லாக் செய்க</translation> <translation id="4527045527269911712">புளூடூத் சாதனம் "<ph name="DEVICE_NAME" />", இணைப்பதற்கான அனுமதியை விரும்புகிறது.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> இல் தானாகவே வெளியேற்றப்படுவீர்கள்.</translation> <translation id="6064463340679478396">இதற்கு மேல் ஃபைலைப் பயன்படுத்தாதே</translation> <translation id="6073451960410192870">பதிவுசெய்வதை நிறுத்து</translation> +<translation id="6074087755403037157">பீட்டா அலைவரிசை</translation> <translation id="6099678161144790572">கடந்த மாதம் திருத்தப்பட்டது</translation> <translation id="6103838137565245112">சிஸ்டம்</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" /> மொழிக்கான பேச்சு அறிதல் ஃபைல்கள் பதிவிறக்கப்பட்டன</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation> <translation id="8203795194971602413">வலது கிளிக் செய்யும்</translation> <translation id="8209010265547628927">மீட்டமை</translation> +<translation id="8214996719228530800">Canary சேனல்</translation> <translation id="8219451629189078428">இந்தச் சமயத்தின்போது உங்கள் Chromebook ஆனில் இருப்பதுடன் பிளக் பாயிண்ட்டில் செருகப்பட்டிருக்கவும் வேண்டும். சார்ஜர், அடாப்டர் கேபிள்கள் போன்றவை உங்கள் Chromebook, பிளக் பாயிண்ட் ஆகிய இரண்டிலும் சரியாகச் செருகப்பட்டிருப்பதை உறுதிசெய்துகொள்ளவும். Chromebookகை ஆஃப் செய்ய வேண்டாம்.</translation> <translation id="8236042855478648955">இடைவேளைக்கான நேரம்</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />, மொபைல் பேட்டரி: <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 01047e32..e813bd5 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -262,7 +262,7 @@ <translation id="2501920221385095727">స్టిక్కీ కీలు</translation> <translation id="2509468283778169019">CAPS LOCK ఆన్లో ఉంది</translation> <translation id="2542089167727451762">మీ ప్రొఫైల్ ఫోటోను నొక్కండి</translation> -<translation id="255671100581129685">Google అసిస్టెంట్ పబ్లిక్ సెషన్లో అందుబాటులో లేదు.</translation> +<translation id="255671100581129685">Google Assistant పబ్లిక్ సెషన్లో అందుబాటులో లేదు.</translation> <translation id="256712445991462162">డాక్ చేసిన మాగ్నిఫైయర్</translation> <translation id="2570734079541893434">సెట్టింగ్లను మేనేజ్ చేయండి</translation> <translation id="2573588302192866788"><ph name="NAME" />ను కనెక్ట్ చేయడం సాధ్యపడలేదు</translation> @@ -663,7 +663,7 @@ <translation id="4774338217796918551">రేపు <ph name="COME_BACK_TIME" />కి తిరిగి రండి.</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> కోసం పాస్వర్డ్</translation> <translation id="4777825441726637019">Play Store</translation> -<translation id="4778095205580009397">Google అసిస్టెంట్ డెమో సెషన్లో అందుబాటులో లేదు.</translation> +<translation id="4778095205580009397">Google Assistant డెమో సెషన్లో అందుబాటులో లేదు.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">డిస్కనెక్ట్ చేయి</translation> <translation id="4814539958450445987">లాగిన్ స్క్రీన్</translation> @@ -678,7 +678,7 @@ <translation id="4872237917498892622">Alt+Search లేదా Shift</translation> <translation id="4881695831933465202">తెరువు</translation> <translation id="4889868803215848840">సూచనలను మెరుగుపరచడానికి ఆప్షనల్ ఫీడ్బ్యాక్ను అందించండి:</translation> -<translation id="4890187583552566966">Google అసిస్టెంట్ను మీ నిర్వాహకుడు నిలిపివేశారు.</translation> +<translation id="4890187583552566966">Google Assistantను మీ నిర్వాహకుడు నిలిపివేశారు.</translation> <translation id="4890408602550914571">మీ ఫోన్ సమీపంలోనే ఉండి, అలాగే బ్లూటూత్ ఆన్ చేయబడి ఉందని నిర్ధారించుకోండి.</translation> <translation id="4895488851634969361">బ్యాటరీ నిండింది.</translation> <translation id="490375751687810070">నిలువుగా ఉంది</translation> @@ -805,7 +805,7 @@ <translation id="5677928146339483299">బ్లాక్ చేయబడింది</translation> <translation id="5678564054339031017">వచ్చే వారాన్ని చూపించు</translation> <translation id="5679050765726761783">తక్కువ స్థాయి పవర్ అడాప్టర్ కనెక్ట్ చేయబడింది</translation> -<translation id="5682642926269496722">ప్రస్తుత వినియోగదారు ఖాతాలో Google అసిస్టెంట్ పని చేయదు.</translation> +<translation id="5682642926269496722">ప్రస్తుత వినియోగదారు ఖాతాలో Google Assistant పని చేయదు.</translation> <translation id="5689633613396158040">రాత్రి కాంతి ఫీచర్ అనేది తక్కువ కాంతి ఉన్న సందర్భాలలో మీ స్క్రీన్ను స్పష్టంగా చూడటాన్ని లేదా చదవడాన్ని మరింత సులభతరం చేస్తుంది. నైట్ లైట్ ఆన్ చేసే సమయాన్ని మార్చడానికి నొక్కండి లేదా దాన్ని పూర్తిగా ఆపివేయండి.</translation> <translation id="5691772641933328258">వేలిముద్ర గుర్తించబడలేదు</translation> <translation id="570390244361237317">అన్ని యాప్లు, అన్ని యాప్లను యాక్సెస్ చేయడానికి బాణం కీలతో నావిగేట్ చేయండి</translation> @@ -885,7 +885,7 @@ <translation id="6114505516289286752"><ph name="LANGUAGE" /> స్పీచ్ ఫైల్లు డౌన్లోడ్ చేయబడ్డాయి</translation> <translation id="6119360623251949462"><ph name="CHARGING_STATE" />. <ph name="BATTERY_SAVER_STATE" /></translation> <translation id="6121838516699723042"><ph name="FILENAME" /> డౌన్లోడ్ను నిర్ధారించండి</translation> -<translation id="612734058257491180">అతిథి సెషన్లో Google అసిస్టెంట్ పని చేయదు.</translation> +<translation id="612734058257491180">అతిథి సెషన్లో Google Assistant పని చేయదు.</translation> <translation id="6134259848159370930">మీ పరికరం, యాప్లు, సెట్టింగ్లు, వెబ్ను వెతకండి.</translation> <translation id="6137566720514957455"><ph name="USER_EMAIL_ADDRESS" /> కోసం 'డైలాగ్ను తీసివేయి'ని తెరవండి</translation> <translation id="6141988275892716286">డౌన్లోడ్ను నిర్ధారించండి</translation> @@ -1033,7 +1033,7 @@ <translation id="7026338066939101231">తరుగుదల</translation> <translation id="7029814467594812963">సెషన్ నిష్క్రమించు</translation> <translation id="7032161822340700104">కేవలం 6 టెంప్లేట్లకు మాత్రమే అనుమతి ఉంది. కొత్త టెంప్లేట్ను జోడించాలంటే ఒక పాత టెంప్లేట్ను తీసివేయాలి.</translation> -<translation id="703425375924687388"><ph name="QUERY_NAME" />, Google అసిస్టెంట్</translation> +<translation id="703425375924687388"><ph name="QUERY_NAME" />, Google Assistant</translation> <translation id="7042322267639375032">స్టేటస్ ప్రాంతాన్ని కుదించండి</translation> <translation id="7045033600005038336">టెంప్లేట్ను రీప్లేస్ చేయాలా?</translation> <translation id="7051244143160304048"><ph name="DEVICE_NAME" /> డిస్కనెక్ట్ అయింది</translation> @@ -1153,7 +1153,7 @@ <translation id="776344839111254542">అప్డేట్ వివరాలను వీక్షించడం కోసం క్లిక్ చేయండి</translation> <translation id="7780094051999721182">షార్ట్కట్లు</translation> <translation id="7780159184141939021">స్క్రీన్ను తిప్పండి</translation> -<translation id="7796353162336583443">గమనికను రాయడానికి, స్క్రీన్షాట్ను తీయడానికి, Google అసిస్టెంట్, లేజర్ పాయింటర్ లేదా భూతద్దాన్ని ఉపయోగించడానికి అరలో స్టైలస్ బటన్ను నొక్కండి.</translation> +<translation id="7796353162336583443">గమనికను రాయడానికి, స్క్రీన్షాట్ను తీయడానికి, Google Assistant, లేజర్ పాయింటర్ లేదా భూతద్దాన్ని ఉపయోగించడానికి అరలో స్టైలస్ బటన్ను నొక్కండి.</translation> <translation id="7796735576426975947">కొత్త నోటిఫికేషన్ దాచబడింది</translation> <translation id="7798302898096527229">రద్దు చేయడానికి Search లేదా Shiftను నొక్కండి.</translation> <translation id="7807067443225230855">శోధన మరియు అసిస్టెంట్</translation> @@ -1182,7 +1182,7 @@ <translation id="7911118814695487383">Linux</translation> <translation id="7930731167419639574">స్పీచ్ ఇప్పుడు పరికరంలోనే ప్రాసెస్ చేయబడింది, డిక్టేషన్ ఆఫ్లైన్లో పని చేస్తుంది</translation> <translation id="7932451802722951285">Google Calendarలో తెరవండి</translation> -<translation id="7933084174919150729">ప్రాథమిక ప్రొఫైల్కు మాత్రమే Google అసిస్టెంట్ అందుబాటులో ఉంటుంది.</translation> +<translation id="7933084174919150729">ప్రాథమిక ప్రొఫైల్కు మాత్రమే Google Assistant అందుబాటులో ఉంటుంది.</translation> <translation id="79341161159229895"><ph name="FIRST_PARENT_EMAIL" /> మరియు <ph name="SECOND_PARENT_EMAIL" /> ద్వారా ఖాతా నిర్వహించబడుతోంది</translation> <translation id="793716872548410480">మీ క్లిప్బోర్డ్ను చూడడానికి, <ph name="SHORTCUT_KEY_NAME" /> + V నొక్కండి. మీరు చివరగా కాపీ చేసిన 5 ఐటెమ్లు, మీ క్లిప్బోర్డ్లో సేవ్ చేయబడతాయి.</translation> <translation id="7942349550061667556">ఎరుపు</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index c3d45845..f24d188 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Прокрутити праворуч</translation> <translation id="1774796056689732716">Календар, <ph name="CURRENT_MONTH_YEAR" />, зараз вибрано <ph name="DATE" />.</translation> <translation id="1787955149152357925">Вимкнено</translation> +<translation id="1797271123677381264">Не пам’ятаю пароль</translation> <translation id="181103072419391116">Рівень сигналу – <ph name="SIGNAL_STRENGTH" />. Мережею керує адміністратор</translation> <translation id="1812997170047690955">Що на моєму екрані?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Відключені пристрої</translation> <translation id="4505050298327493054">Активний робочий стіл.</translation> +<translation id="450584155212756404">Версія для розробників</translation> <translation id="4513946894732546136">Відгуки</translation> <translation id="4518404433291145981">Щоб розблокувати Chromebook, спершу розблокуйте телефон.</translation> <translation id="4527045527269911712">Пристрою Bluetooth "<ph name="DEVICE_NAME" />" потрібен дозвіл на підключення.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Ви автоматично вийдете за <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Більше не використовувати цей файл</translation> <translation id="6073451960410192870">Припинити запис</translation> +<translation id="6074087755403037157">Бета-версія</translation> <translation id="6099678161144790572">Змінено минулого місяця</translation> <translation id="6103838137565245112">система</translation> <translation id="6114505516289286752">Файли живих субтитрів завантажено (<ph name="LANGUAGE" />)</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Відновити</translation> <translation id="8203795194971602413">Натиснути правою кнопкою</translation> <translation id="8209010265547628927">Скинути</translation> +<translation id="8214996719228530800">Версія Canary</translation> <translation id="8219451629189078428">Не вимикайте та не відключайте Chromebook від живлення впродовж цього часу. Переконайтеся, що кабелі зарядного пристрою або адаптера надійно під'єднано до вашого пристрою та розетки. Не вимикайте Chromebook.</translation> <translation id="8236042855478648955">Час зробити перерву</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, рівень сигналу – <ph name="SIGNAL_STRENGTH" />, рівень заряду акумулятора телефона – <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index cdee91e..4ec84ee2 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">Cuộn sang phải</translation> <translation id="1774796056689732716">Lịch, <ph name="CURRENT_MONTH_YEAR" />, đang chọn <ph name="DATE" />.</translation> <translation id="1787955149152357925">Tắt</translation> +<translation id="1797271123677381264">Quên mật khẩu</translation> <translation id="181103072419391116">Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />, Do quản trị viên của bạn quản lý</translation> <translation id="1812997170047690955">Trên màn hình của tôi có nội dung gì?</translation> <translation id="1823873187264960516">Ethernet: <ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">Ethernet</translation> <translation id="4481530544597605423">Thiết bị được hủy ghép nối</translation> <translation id="4505050298327493054">Không gian làm việc đang hoạt động.</translation> +<translation id="450584155212756404">Kênh nhà phát triển</translation> <translation id="4513946894732546136">Phản hồi</translation> <translation id="4518404433291145981">Để mở khóa Chromebook, hãy mở khóa điện thoại của bạn trước tiên</translation> <translation id="4527045527269911712">Thiết bị Bluetooth "<ph name="DEVICE_NAME" />"muốn được phép ghép nối.</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">Bạn sẽ tự động được đăng xuất sau <ph name="LOGOUT_TIME_LEFT" />.</translation> <translation id="6064463340679478396">Đã dùng xong tệp này</translation> <translation id="6073451960410192870">Dừng ghi</translation> +<translation id="6074087755403037157">Kênh thử nghiệm Beta</translation> <translation id="6099678161144790572">Chỉnh sửa tháng trước</translation> <translation id="6103838137565245112">hệ thống</translation> <translation id="6114505516289286752">Đã tải tệp mã chuyển lời nói thành văn bản <ph name="LANGUAGE" /> xuống</translation> @@ -1226,6 +1229,7 @@ <translation id="8200772114523450471">Tiếp tục</translation> <translation id="8203795194971602413">Nhấp chuột phải</translation> <translation id="8209010265547628927">Đặt lại</translation> +<translation id="8214996719228530800">Kênh Canary</translation> <translation id="8219451629189078428">Bạn cần phải luôn bật và kết nối Chromebook với nguồn điện trong thời gian này. Hãy đảm bảo bạn đã cắm chắc chắn cáp bộ sạc hoặc bộ đổi nguồn vào cả Chromebook lẫn ổ cắm điện. Không tắt Chromebook.</translation> <translation id="8236042855478648955">Giờ nghỉ giải lao</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />, Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />, Pin điện thoại <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 6f4d6b70..bd8b923b 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">向右滚动</translation> <translation id="1774796056689732716">日历,<ph name="CURRENT_MONTH_YEAR" />,目前所选日期为 <ph name="DATE" />。</translation> <translation id="1787955149152357925">关闭</translation> +<translation id="1797271123677381264">忘记了密码</translation> <translation id="181103072419391116">信号强度为 <ph name="SIGNAL_STRENGTH" />,由您的管理员管理</translation> <translation id="1812997170047690955">我屏幕上有什么内容?</translation> <translation id="1823873187264960516">以太网:<ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">以太网</translation> <translation id="4481530544597605423">未配对的设备</translation> <translation id="4505050298327493054">处于活动状态的桌面。</translation> +<translation id="450584155212756404">开发渠道</translation> <translation id="4513946894732546136">反馈</translation> <translation id="4518404433291145981">若要解锁 Chromebook,请先解锁您的手机</translation> <translation id="4527045527269911712">蓝牙设备“<ph name="DEVICE_NAME" />”需要配对许可。</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">您将在<ph name="LOGOUT_TIME_LEFT" />后自动退出。</translation> <translation id="6064463340679478396">已用完此文件</translation> <translation id="6073451960410192870">停止录制</translation> +<translation id="6074087755403037157">Beta 渠道</translation> <translation id="6099678161144790572">过去一个月内修改过</translation> <translation id="6103838137565245112">系统</translation> <translation id="6114505516289286752"><ph name="LANGUAGE" />语音识别结果文件已下载完毕</translation> @@ -1223,6 +1226,7 @@ <translation id="8200772114523450471">继续</translation> <translation id="8203795194971602413">点击鼠标右键</translation> <translation id="8209010265547628927">重置</translation> +<translation id="8214996719228530800">Canary 渠道</translation> <translation id="8219451629189078428">在此期间,您的 Chromebook 需要保持开机和通电状态。请确保充电器和适配器线缆都已完全插好 - 既已连接到您的 Chromebook,也已连接到电源插座。切勿关闭您的 Chromebook。</translation> <translation id="8236042855478648955">该休息了</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />,信号强度为 <ph name="SIGNAL_STRENGTH" />,剩余电量为 <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_zh-HK.xtb b/ash/strings/ash_strings_zh-HK.xtb index 9a9953c..cfffd084 100644 --- a/ash/strings/ash_strings_zh-HK.xtb +++ b/ash/strings/ash_strings_zh-HK.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">向右捲動</translation> <translation id="1774796056689732716">日曆,<ph name="CURRENT_MONTH_YEAR" />,目前揀咗 <ph name="DATE" />。</translation> <translation id="1787955149152357925">關閉</translation> +<translation id="1797271123677381264">忘記密碼</translation> <translation id="181103072419391116">訊號強度係 <ph name="SIGNAL_STRENGTH" />,由管理員管理</translation> <translation id="1812997170047690955">我嘅畫面上面有咩?</translation> <translation id="1823873187264960516">以太網:<ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">以太網絡</translation> <translation id="4481530544597605423">未配對的裝置</translation> <translation id="4505050298327493054">用緊嘅桌面。</translation> +<translation id="450584155212756404">開發人員版</translation> <translation id="4513946894732546136">意見反映</translation> <translation id="4518404433291145981">如要解鎖 Chromebook,請先解鎖手機</translation> <translation id="4527045527269911712">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限。</translation> @@ -875,6 +877,7 @@ <translation id="6062360702481658777">您將於 <ph name="LOGOUT_TIME_LEFT" />後自動登出。</translation> <translation id="6064463340679478396">不會再使用檔案</translation> <translation id="6073451960410192870">停止錄影</translation> +<translation id="6074087755403037157">Beta 版</translation> <translation id="6099678161144790572">上個月編輯過</translation> <translation id="6103838137565245112">系統</translation> <translation id="6114505516289286752">已下載<ph name="LANGUAGE" />語音檔案</translation> @@ -1224,6 +1227,7 @@ <translation id="8200772114523450471">繼續</translation> <translation id="8203795194971602413">按一下右鍵</translation> <translation id="8209010265547628927">重設</translation> +<translation id="8214996719228530800">Canary 版</translation> <translation id="8219451629189078428">Chromebook 在這段期間需要保持開啟並接上電源。請確保充電器或適配器連接線完全插入 Chromebook 和電源插座。請勿關閉 Chromebook。</translation> <translation id="8236042855478648955">休息時間到了</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />,訊號強度係 <ph name="SIGNAL_STRENGTH" />,手機電量係 <ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index a72ec1a9..86332a79 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -152,6 +152,7 @@ <translation id="1771761307086386028">向右捲動</translation> <translation id="1774796056689732716">日曆,<ph name="CURRENT_MONTH_YEAR" />,目前已選取 <ph name="DATE" />。</translation> <translation id="1787955149152357925">關閉</translation> +<translation id="1797271123677381264">忘記密碼</translation> <translation id="181103072419391116">訊號強度 <ph name="SIGNAL_STRENGTH" />,由系統管理員管理</translation> <translation id="1812997170047690955">我的畫面上有哪些內容?</translation> <translation id="1823873187264960516">乙太網路:<ph name="ADDRESS" /></translation> @@ -609,6 +610,7 @@ <translation id="4479639480957787382">乙太網路</translation> <translation id="4481530544597605423">解除配對的裝置</translation> <translation id="4505050298327493054">使用中的桌面。</translation> +<translation id="450584155212756404">開發人員版</translation> <translation id="4513946894732546136">意見回饋</translation> <translation id="4518404433291145981">如要解鎖 Chromebook,請先解鎖手機</translation> <translation id="4527045527269911712">藍牙裝置「<ph name="DEVICE_NAME" />」要求配對權限。</translation> @@ -876,6 +878,7 @@ <translation id="6062360702481658777">你將於 <ph name="LOGOUT_TIME_LEFT" />後自動登出。</translation> <translation id="6064463340679478396">不會再使用這個檔案</translation> <translation id="6073451960410192870">停止錄影</translation> +<translation id="6074087755403037157">Beta 版</translation> <translation id="6099678161144790572">過去一個月內編輯過</translation> <translation id="6103838137565245112">系統</translation> <translation id="6114505516289286752">已下載<ph name="LANGUAGE" />語音檔案</translation> @@ -1225,6 +1228,7 @@ <translation id="8200772114523450471">繼續</translation> <translation id="8203795194971602413">按右鍵</translation> <translation id="8209010265547628927">重設</translation> +<translation id="8214996719228530800">Canary 版</translation> <translation id="8219451629189078428">在這段期間內,你的 Chromebook 需要保持開啟並接上電源。請確認充電器或變壓器電源線已完全插入 Chromebook 和電源插座。請勿將 Chromebook 關機。</translation> <translation id="8236042855478648955">休息時間到了</translation> <translation id="8247060538831475781"><ph name="CONNECTION_STATUS" />,訊號強度 <ph name="SIGNAL_STRENGTH" />,手機電量:<ph name="BATTERY_STATUS" /></translation>
diff --git a/ash/webui/camera_app_ui/resources/utils/cca.py b/ash/webui/camera_app_ui/resources/utils/cca.py index d508fefc..bb52736 100755 --- a/ash/webui/camera_app_ui/resources/utils/cca.py +++ b/ash/webui/camera_app_ui/resources/utils/cca.py
@@ -134,7 +134,7 @@ run_node([ 'typescript/bin/tsc', '--project', - os.path.join(gen_dir, 'js/tsconfig.json'), + os.path.join(gen_dir, 'js/tsconfig_build_ts.json'), # For better debugging experience on DUT. '--inlineSourceMap', '--inlineSources',
diff --git a/ash/webui/help_app_ui/BUILD.gn b/ash/webui/help_app_ui/BUILD.gn index a2c755d..07d242b 100644 --- a/ash/webui/help_app_ui/BUILD.gn +++ b/ash/webui/help_app_ui/BUILD.gn
@@ -47,9 +47,9 @@ "//ash/webui/resources:help_app_kids_magazine_bundle_resources", "//ash/webui/resources:help_app_resources", "//ash/webui/web_applications", - "//chromeos/components/local_search_service/public/cpp", - "//chromeos/components/local_search_service/public/mojom", - "//chromeos/components/local_search_service/public/mojom:mojom_js", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service/public/mojom:mojom_js", "//chromeos/constants", "//chromeos/strings", "//chromeos/system", @@ -79,7 +79,7 @@ ":help_app_ui", "//ash/webui/help_app_ui/search:mojo_bindings", "//base/test:test_support", - "//chromeos/components/local_search_service/public/mojom:mojom", + "//chromeos/ash/components/local_search_service/public/mojom", "//mojo/public/cpp/bindings:bindings", "//testing/gtest", ]
diff --git a/ash/webui/help_app_ui/DEPS b/ash/webui/help_app_ui/DEPS index 4c138946..41c9e977 100644 --- a/ash/webui/help_app_ui/DEPS +++ b/ash/webui/help_app_ui/DEPS
@@ -7,7 +7,4 @@ "+components/content_settings/core/common", "+components/keyed_service/content", "+components/keyed_service/core", - - # TODO(https://crbug.com/1164001): Remove when these move to ash. - "+chromeos/components/local_search_service", ]
diff --git a/ash/webui/help_app_ui/help_app_manager.h b/ash/webui/help_app_ui/help_app_manager.h index 823d50f0..e45c572 100644 --- a/ash/webui/help_app_ui/help_app_manager.h +++ b/ash/webui/help_app_ui/help_app_manager.h
@@ -6,7 +6,7 @@ #define ASH_WEBUI_HELP_APP_UI_HELP_APP_MANAGER_H_ // TODO(https://crbug.com/1164001): remove and use forward declaration. -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "components/keyed_service/core/keyed_service.h" #include <memory>
diff --git a/ash/webui/help_app_ui/help_app_manager_factory.cc b/ash/webui/help_app_ui/help_app_manager_factory.cc index 64bee9c..81a64b4 100644 --- a/ash/webui/help_app_ui/help_app_manager_factory.cc +++ b/ash/webui/help_app_ui/help_app_manager_factory.cc
@@ -4,7 +4,7 @@ #include "ash/webui/help_app_ui/help_app_manager_factory.h" #include "ash/webui/help_app_ui/help_app_manager.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" namespace ash {
diff --git a/ash/webui/help_app_ui/help_app_ui.cc b/ash/webui/help_app_ui/help_app_ui.cc index 36e76869..ad85164 100644 --- a/ash/webui/help_app_ui/help_app_ui.cc +++ b/ash/webui/help_app_ui/help_app_ui.cc
@@ -15,9 +15,9 @@ #include "ash/webui/help_app_ui/search/search_handler.h" #include "ash/webui/help_app_ui/url_constants.h" #include "ash/webui/web_applications/webui_test_prod_util.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" -#include "chromeos/components/local_search_service/public/mojom/types.mojom.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/mojom/types.mojom.h" #include "chromeos/constants/chromeos_features.h" #include "chromeos/strings/grit/chromeos_strings.h" #include "components/content_settings/core/common/content_settings_types.h"
diff --git a/ash/webui/help_app_ui/help_app_ui.h b/ash/webui/help_app_ui/help_app_ui.h index 4763cd8..c673a3c 100644 --- a/ash/webui/help_app_ui/help_app_ui.h +++ b/ash/webui/help_app_ui/help_app_ui.h
@@ -10,7 +10,7 @@ #include "ash/webui/help_app_ui/help_app_ui.mojom.h" #include "ash/webui/help_app_ui/help_app_ui_delegate.h" #include "ash/webui/help_app_ui/search/search.mojom.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "mojo/public/cpp/bindings/receiver.h" #include "ui/webui/mojo_web_ui_controller.h"
diff --git a/ash/webui/help_app_ui/resources/BUILD.gn b/ash/webui/help_app_ui/resources/BUILD.gn index ed07a0b..90d40cbd 100644 --- a/ash/webui/help_app_ui/resources/BUILD.gn +++ b/ash/webui/help_app_ui/resources/BUILD.gn
@@ -33,8 +33,8 @@ copy("stage_generated") { sources = [ - "$target_gen_dir/../../../../chromeos/components/local_search_service/public/mojom/index.mojom-lite.js", - "$target_gen_dir/../../../../chromeos/components/local_search_service/public/mojom/types.mojom-lite.js", + "$target_gen_dir/../../../../chromeos/ash/components/local_search_service/public/mojom/index.mojom-lite.js", + "$target_gen_dir/../../../../chromeos/ash/components/local_search_service/public/mojom/types.mojom-lite.js", "$target_gen_dir/../../system_apps/public/js/message_pipe.m.js", "$target_gen_dir/../help_app_ui.mojom-lite.js", "$target_gen_dir/../search/search.mojom-lite.js", @@ -44,7 +44,7 @@ "//ash/webui/help_app_ui:mojo_bindings_js", "//ash/webui/help_app_ui/search:mojo_bindings_js__generator", "//ash/webui/system_apps/public/js:modulize", - "//chromeos/components/local_search_service/public/mojom:mojom_js__generator", + "//chromeos/ash/components/local_search_service/public/mojom:mojom_js__generator", ] } @@ -96,7 +96,7 @@ "//ash/webui/help_app_ui:mojo_bindings_js_library_for_compile", "//ash/webui/help_app_ui/search:mojo_bindings_js_library_for_compile", "//ash/webui/system_apps/public/js:message_pipe.m", - "//chromeos/components/local_search_service/public/mojom:mojom_js_library_for_compile", + "//chromeos/ash/components/local_search_service/public/mojom:mojom_js_library_for_compile", ] }
diff --git a/ash/webui/help_app_ui/search/search_handler.cc b/ash/webui/help_app_ui/search/search_handler.cc index baa2296..38c5a56 100644 --- a/ash/webui/help_app_ui/search/search_handler.cc +++ b/ash/webui/help_app_ui/search/search_handler.cc
@@ -11,7 +11,7 @@ #include "base/metrics/histogram_functions.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" namespace ash { namespace help_app {
diff --git a/ash/webui/help_app_ui/search/search_handler.h b/ash/webui/help_app_ui/search/search_handler.h index 3a07fad1..f76d43e 100644 --- a/ash/webui/help_app_ui/search/search_handler.h +++ b/ash/webui/help_app_ui/search/search_handler.h
@@ -10,8 +10,8 @@ #include "ash/webui/help_app_ui/search/search.mojom.h" #include "ash/webui/help_app_ui/search/search_tag_registry.h" #include "base/memory/weak_ptr.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/ash/webui/help_app_ui/search/search_tag_registry.cc b/ash/webui/help_app_ui/search/search_tag_registry.cc index 1e5cdd14..928a0d24 100644 --- a/ash/webui/help_app_ui/search/search_tag_registry.cc +++ b/ash/webui/help_app_ui/search/search_tag_registry.cc
@@ -9,7 +9,7 @@ #include "ash/webui/help_app_ui/search/search_metadata.h" #include "base/bind.h" #include "base/strings/string_number_conversions.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" namespace ash { namespace help_app {
diff --git a/ash/webui/help_app_ui/search/search_tag_registry.h b/ash/webui/help_app_ui/search/search_tag_registry.h index 7c0bdfa9..020964c6 100644 --- a/ash/webui/help_app_ui/search/search_tag_registry.h +++ b/ash/webui/help_app_ui/search/search_tag_registry.h
@@ -14,8 +14,8 @@ #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "base/observer_list_types.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "mojo/public/cpp/bindings/remote.h" namespace ash {
diff --git a/ash/webui/help_app_ui/search/search_tag_registry_unittest.cc b/ash/webui/help_app_ui/search/search_tag_registry_unittest.cc index 85be08ca..f104506 100644 --- a/ash/webui/help_app_ui/search/search_tag_registry_unittest.cc +++ b/ash/webui/help_app_ui/search/search_tag_registry_unittest.cc
@@ -7,7 +7,7 @@ #include "ash/webui/help_app_ui/search/search.mojom.h" #include "ash/webui/help_app_ui/search/search_metadata.h" #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "testing/gtest/include/gtest/gtest.h" namespace ash {
diff --git a/ash/webui/personalization_app/BUILD.gn b/ash/webui/personalization_app/BUILD.gn index f25079dc..b1d3bd4 100644 --- a/ash/webui/personalization_app/BUILD.gn +++ b/ash/webui/personalization_app/BUILD.gn
@@ -33,9 +33,9 @@ "//ash/webui/personalization_app/mojom", "//ash/webui/personalization_app/proto", "//ash/webui/resources:personalization_app_resources", - "//chromeos/components/local_search_service:local_search_service", - "//chromeos/components/local_search_service/public/cpp", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/strings", "//components/keyed_service/content", "//components/keyed_service/core", @@ -96,8 +96,8 @@ "//ash/constants:constants", "//ash/public/cpp:cpp", "//base/test:test_support", - "//chromeos/components/local_search_service/public/cpp:cpp", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/strings:strings_grit", "//components/prefs:test_support", "//mojo/public/cpp/bindings:bindings",
diff --git a/ash/webui/personalization_app/DEPS b/ash/webui/personalization_app/DEPS deleted file mode 100644 index 001e425..0000000 --- a/ash/webui/personalization_app/DEPS +++ /dev/null
@@ -1,4 +0,0 @@ -include_rules = [ - # TODO(https://crbug.com/1164001): Remove when these move to ash. - "+chromeos/components/local_search_service", -]
diff --git a/ash/webui/personalization_app/search/search_handler.cc b/ash/webui/personalization_app/search/search_handler.cc index b5e003e9..5c5c77b 100644 --- a/ash/webui/personalization_app/search/search_handler.cc +++ b/ash/webui/personalization_app/search/search_handler.cc
@@ -18,8 +18,8 @@ #include "base/check.h" #include "base/notreached.h" #include "base/strings/string_number_conversions.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "chromeos/strings/grit/chromeos_strings.h" #include "components/prefs/pref_service.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
diff --git a/ash/webui/personalization_app/search/search_handler.h b/ash/webui/personalization_app/search/search_handler.h index 11336cd..6e245bb 100644 --- a/ash/webui/personalization_app/search/search_handler.h +++ b/ash/webui/personalization_app/search/search_handler.h
@@ -14,8 +14,8 @@ #include "ash/webui/personalization_app/search/search_tag_registry.h" #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/ash/webui/personalization_app/search/search_handler_unittest.cc b/ash/webui/personalization_app/search/search_handler_unittest.cc index 7f9b3d41..64a63b7f 100644 --- a/ash/webui/personalization_app/search/search_handler_unittest.cc +++ b/ash/webui/personalization_app/search/search_handler_unittest.cc
@@ -25,8 +25,8 @@ #include "base/test/bind.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom-test-utils.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom-test-utils.h" #include "chromeos/constants/chromeos_features.h" #include "chromeos/strings/grit/chromeos_strings.h" #include "components/prefs/pref_registry_simple.h"
diff --git a/ash/webui/personalization_app/search/search_tag_registry.cc b/ash/webui/personalization_app/search/search_tag_registry.cc index 0763357..85170cc 100644 --- a/ash/webui/personalization_app/search/search_tag_registry.cc +++ b/ash/webui/personalization_app/search/search_tag_registry.cc
@@ -21,8 +21,8 @@ #include "base/callback_helpers.h" #include "base/no_destructor.h" #include "base/strings/string_number_conversions.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "chromeos/strings/grit/chromeos_strings.h" #include "components/prefs/pref_service.h" #include "ui/base/l10n/l10n_util.h"
diff --git a/ash/webui/personalization_app/search/search_tag_registry.h b/ash/webui/personalization_app/search/search_tag_registry.h index 6731ff1..ea2348d 100644 --- a/ash/webui/personalization_app/search/search_tag_registry.h +++ b/ash/webui/personalization_app/search/search_tag_registry.h
@@ -17,7 +17,7 @@ #include "base/observer_list.h" #include "base/observer_list_types.h" #include "base/scoped_observation.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "components/prefs/pref_change_registrar.h" #include "mojo/public/cpp/bindings/remote.h"
diff --git a/ash/webui/resources/BUILD.gn b/ash/webui/resources/BUILD.gn index 568d2ee..4c9b2dd 100644 --- a/ash/webui/resources/BUILD.gn +++ b/ash/webui/resources/BUILD.gn
@@ -175,7 +175,7 @@ "//ash/webui/help_app_ui/resources:browser_proxy_rollup", "//ash/webui/help_app_ui/resources:receiver_rollup", "//ash/webui/help_app_ui/search:mojo_bindings_js", - "//chromeos/components/local_search_service/public/mojom:mojom_js", + "//chromeos/ash/components/local_search_service/public/mojom:mojom_js", ] }
diff --git a/base/allocator/partition_allocator/page_allocator.h b/base/allocator/partition_allocator/page_allocator.h index 1052335..b21d602 100644 --- a/base/allocator/partition_allocator/page_allocator.h +++ b/base/allocator/partition_allocator/page_allocator.h
@@ -329,4 +329,35 @@ } // namespace partition_alloc +namespace base { + +// TODO(https://crbug.com/1288247): Remove these 'using' declarations once +// the migration to the new namespaces gets done. +using ::partition_alloc::AllocPages; +using ::partition_alloc::AllocPagesWithAlignOffset; +using ::partition_alloc::DecommitAndZeroSystemPages; +using ::partition_alloc::DecommitSystemPages; +using ::partition_alloc::DecommittedMemoryIsAlwaysZeroed; +using ::partition_alloc::DiscardSystemPages; +using ::partition_alloc::FreePages; +using ::partition_alloc::GetAllocPageErrorCode; +using ::partition_alloc::GetTotalMappedSize; +using ::partition_alloc::HasReservationForTesting; +using ::partition_alloc::NextAlignedWithOffset; +using ::partition_alloc::PageAccessibilityConfiguration; +using ::partition_alloc::PageAccessibilityDisposition; +using ::partition_alloc::PageTag; +using ::partition_alloc::RecommitSystemPages; +using ::partition_alloc::ReleaseReservation; +using ::partition_alloc::ReserveAddressSpace; +using ::partition_alloc::RoundDownToPageAllocationGranularity; +using ::partition_alloc::RoundDownToSystemPage; +using ::partition_alloc::RoundUpToPageAllocationGranularity; +using ::partition_alloc::RoundUpToSystemPage; +using ::partition_alloc::SetSystemPagesAccess; +using ::partition_alloc::TryRecommitSystemPages; +using ::partition_alloc::TrySetSystemPagesAccess; + +} // namespace base + #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PAGE_ALLOCATOR_H_
diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h index b4b9270..3c573caa 100644 --- a/base/allocator/partition_allocator/partition_alloc_forward.h +++ b/base/allocator/partition_allocator/partition_alloc_forward.h
@@ -62,6 +62,14 @@ } // namespace partition_alloc +namespace base { + +// TODO(https://crbug.com/1288247): Remove these 'using' declarations once +// the migration to the new namespaces gets done. +using ::partition_alloc::PartitionRoot; + +} // namespace base + // From https://clang.llvm.org/docs/AttributeReference.html#malloc: // // The malloc attribute indicates that the function acts like a system memory
diff --git a/base/allocator/partition_allocator/partition_oom.h b/base/allocator/partition_allocator/partition_oom.h index 4a521d25..56f4cf4f 100644 --- a/base/allocator/partition_allocator/partition_oom.h +++ b/base/allocator/partition_allocator/partition_oom.h
@@ -37,4 +37,24 @@ } // namespace partition_alloc +namespace base { + +// TODO(https://crbug.com/1288247): Remove these 'using' declarations once +// the migration to the new namespaces gets done. +using ::partition_alloc::OomFunction; + +namespace internal { + +using ::partition_alloc::internal::g_oom_handling_function; +using ::partition_alloc::internal::PartitionExcessiveAllocationSize; +#if !defined(ARCH_CPU_64_BITS) +using ::partition_alloc::internal::PartitionOutOfMemoryWithLargeVirtualSize; +using ::partition_alloc::internal:: + PartitionOutOfMemoryWithLotsOfUncommitedPages; +#endif + +} // namespace internal + +} // namespace base + #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_OOM_H_
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h index ea21b108..d28712c 100644 --- a/base/allocator/partition_allocator/partition_page.h +++ b/base/allocator/partition_allocator/partition_page.h
@@ -902,4 +902,23 @@ } // namespace partition_alloc::internal +namespace base::internal { + +// TODO(https://crbug.com/1288247): Remove these 'using' declarations once +// the migration to the new namespaces gets done. +using ::partition_alloc::internal::AllocationStateMap; +using ::partition_alloc::internal::CommittedStateBitmapSize; +using ::partition_alloc::internal::IterateSlotSpans; +using ::partition_alloc::internal::PartitionPage; +using ::partition_alloc::internal::PartitionSuperPageExtentEntry; +using ::partition_alloc::internal::PartitionSuperPageToExtent; +using ::partition_alloc::internal::PartitionSuperPageToMetadataArea; +using ::partition_alloc::internal::ReservedStateBitmapSize; +using ::partition_alloc::internal::SlotSpanMetadata; +using ::partition_alloc::internal::StateBitmapFromAddr; +using ::partition_alloc::internal::SuperPageStateBitmap; +using ::partition_alloc::internal::SuperPageStateBitmapAddr; + +} // namespace base::internal + #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_PAGE_H_
diff --git a/base/allocator/partition_allocator/partition_tls.h b/base/allocator/partition_allocator/partition_tls.h index f086ca6..5444a32 100644 --- a/base/allocator/partition_allocator/partition_tls.h +++ b/base/allocator/partition_allocator/partition_tls.h
@@ -140,4 +140,18 @@ } // namespace partition_alloc::internal +namespace base::internal { + +// TODO(https://crbug.com/1288247): Remove these 'using' declarations once +// the migration to the new namespaces gets done. +using ::partition_alloc::internal::PartitionTlsCreate; +using ::partition_alloc::internal::PartitionTlsGet; +using ::partition_alloc::internal::PartitionTlsKey; +using ::partition_alloc::internal::PartitionTlsSet; +#if BUILDFLAG(IS_WIN) +using ::partition_alloc::internal::PartitionTlsSetOnDllProcessDetach; +#endif // BUILDFLAG(IS_WIN) + +} // namespace base::internal + #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_PARTITION_TLS_H_
diff --git a/base/memory/discardable_shared_memory.cc b/base/memory/discardable_shared_memory.cc index c0a5b6e75..ca2629d 100644 --- a/base/memory/discardable_shared_memory.cc +++ b/base/memory/discardable_shared_memory.cc
@@ -486,7 +486,7 @@ DPLOG(ERROR) << "madvise() failed"; } #else // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) - partition_alloc::DiscardSystemPages( + DiscardSystemPages( static_cast<char*>(shared_memory_mapping_.memory()) + offset, length); #endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_NACL) }
diff --git a/base/memory/platform_shared_memory_mapper_win.cc b/base/memory/platform_shared_memory_mapper_win.cc index 72156806..92808ec8 100644 --- a/base/memory/platform_shared_memory_mapper_win.cc +++ b/base/memory/platform_shared_memory_mapper_win.cc
@@ -37,7 +37,7 @@ static_cast<DWORD>(offset >> 32), static_cast<DWORD>(offset), size); if (address) break; - partition_alloc::ReleaseReservation(); + ReleaseReservation(); } if (!address) { DPLOG(ERROR) << "Failed executing MapViewOfFile";
diff --git a/base/process/memory.cc b/base/process/memory.cc index 4e38617..be6cdfb 100644 --- a/base/process/memory.cc +++ b/base/process/memory.cc
@@ -52,7 +52,7 @@ namespace internal { bool ReleaseAddressSpaceReservation() { #if BUILDFLAG(USE_PARTITION_ALLOC) - return partition_alloc::ReleaseReservation(); + return ReleaseReservation(); #else return false; #endif
diff --git a/base/test/gtest_xml_util.cc b/base/test/gtest_xml_util.cc index fcdb2b9..fe60626 100644 --- a/base/test/gtest_xml_util.cc +++ b/base/test/gtest_xml_util.cc
@@ -278,9 +278,7 @@ } } - if (crashed) { - *crashed = (state != STATE_END); - } + *crashed = (state != STATE_END); return true; }
diff --git a/base/test/gtest_xml_util.h b/base/test/gtest_xml_util.h index 3775b78..1904d05 100644 --- a/base/test/gtest_xml_util.h +++ b/base/test/gtest_xml_util.h
@@ -14,8 +14,8 @@ // Produces a vector of test results based on GTest output file. // Returns true iff the output file exists and has been successfully parsed. -// On successful return and if non-null, |crashed| is set to true if the test -// results are valid but incomplete. +// On successful return |crashed| is set to true if the test results +// are valid but incomplete. [[nodiscard]] bool ProcessGTestOutput(const base::FilePath& output_file, std::vector<TestResult>* results, bool* crashed);
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc index d5e36e5..c676df61 100644 --- a/base/test/launcher/test_launcher.cc +++ b/base/test/launcher/test_launcher.cc
@@ -17,7 +17,6 @@ #include "base/bind.h" #include "base/clang_profiling_buildflags.h" #include "base/command_line.h" -#include "base/containers/adapters.h" #include "base/containers/contains.h" #include "base/environment.h" #include "base/files/file_enumerator.h" @@ -109,92 +108,6 @@ // Prefix indicating test is disabled, will not run unless specified. const char kDisabledTestPrefix[] = "DISABLED_"; -ResultWatcher::ResultWatcher(FilePath result_file, size_t num_tests) - : result_file_(std::move(result_file)), num_tests_(num_tests) {} - -bool ResultWatcher::PollUntilDone(TimeDelta timeout_per_test) { - CHECK(timeout_per_test.is_positive()); - TimeTicks batch_deadline = TimeTicks::Now() + num_tests_ * timeout_per_test; - TimeDelta time_to_next_check = timeout_per_test; - do { - if (WaitWithTimeout(time_to_next_check)) { - return true; - } - time_to_next_check = PollOnce(timeout_per_test); - } while (TimeTicks::Now() < batch_deadline && - time_to_next_check.is_positive()); - // The process may have exited or is about to exit. Give the process a grace - // period to exit on its own. - return WaitWithTimeout(TestTimeouts::tiny_timeout()); -} - -TimeDelta ResultWatcher::PollOnce(TimeDelta timeout_per_test) { - std::vector<TestResult> test_results; - // If the result watcher is unlucky enough to read the results while the - // runner process is writing an update, it is possible to read an incomplete - // XML entry, in which case `ProcessGTestOutput` will return false. - if (!ProcessGTestOutput(result_file_, &test_results, nullptr)) { - return TestTimeouts::tiny_timeout(); - } - Time latest_completion = LatestCompletionTimestamp(test_results); - // Didn't complete a single test before timeout, fail. - if (latest_completion.is_null()) { - return TimeDelta(); - } - // The gtest result writer gets timestamps from `Time::Now`. - TimeDelta time_since_latest_completion = Time::Now() - latest_completion; - // This heuristic attempts to prevent unrelated clock changes between the - // latest write and read from being falsely identified as a test timeout. - // For example, daylight savings time starting or ending can add an - // artificial delta of +1 or -1 hour to `time_since_latest_completion`. - if (time_since_latest_completion.is_negative() || - time_since_latest_completion > kDaylightSavingsThreshold) { - return timeout_per_test; - } - // Expect another test to complete no later than `timeout_per_test` after - // the latest completion. - return timeout_per_test - time_since_latest_completion; -} - -Time ResultWatcher::LatestCompletionTimestamp( - const std::vector<TestResult>& test_results) { - CHECK_LE(test_results.size(), num_tests_); - // Since the result file is append-only, timestamps should already be in - // ascending order. - for (const TestResult& result : Reversed(test_results)) { - if (result.completed()) { - Time test_start = result.timestamp.value_or(Time()); - return test_start + result.elapsed_time; - } - } - return Time(); -} - -// Watch results generated by a child test process. Wait for the child process -// to exit between result checks. -class ProcessResultWatcher : public ResultWatcher { - public: - ProcessResultWatcher(FilePath result_file, size_t num_tests, Process& process) - : ResultWatcher(result_file, num_tests), process_(process) {} - - // Get the exit code of the process, or -1 if the process has not exited yet. - int GetExitCode(); - - bool WaitWithTimeout(TimeDelta timeout) override; - - private: - Process& process_; - int exit_code_ = -1; -}; - -int ProcessResultWatcher::GetExitCode() { - return exit_code_; -} - -bool ProcessResultWatcher::WaitWithTimeout(TimeDelta timeout) { - return process_.WaitForExitWithTimeout(timeout, &exit_code_); -} - namespace { // Global tag for test runs where the results are unreliable for any reason. @@ -388,15 +301,13 @@ return new_command_line; } -// Launches a child process using |command_line|. If a test is still running -// after |timeout|, the child process is terminated and |*was_timeout| is set to -// true. Returns exit code of the process. +// Launches a child process using |command_line|. If the child process is still +// running after |timeout|, it is terminated and |*was_timeout| is set to true. +// Returns exit code of the process. int LaunchChildTestProcessWithOptions(const CommandLine& command_line, const LaunchOptions& options, int flags, - const FilePath& result_file, - TimeDelta timeout_per_test, - size_t num_tests, + TimeDelta timeout, TestLauncherDelegate* delegate, bool* was_timeout) { #if BUILDFLAG(IS_POSIX) @@ -545,13 +456,7 @@ { base::ScopedAllowBaseSyncPrimitivesForTesting allow_base_sync_primitives; - if (num_tests == 1) { - did_exit = process.WaitForExitWithTimeout(timeout_per_test, &exit_code); - } else { - ProcessResultWatcher result_watcher(result_file, num_tests, process); - did_exit = result_watcher.PollUntilDone(timeout_per_test); - exit_code = result_watcher.GetExitCode(); - } + did_exit = process.WaitForExitWithTimeout(timeout, &exit_code); } if (!did_exit) { @@ -654,9 +559,7 @@ ChildProcessResults DoLaunchChildTestProcess( const CommandLine& command_line, const FilePath& process_temp_dir, - const FilePath& result_file, - TimeDelta timeout_per_test, - size_t num_tests, + TimeDelta timeout, const TestLauncher::LaunchOptions& test_launch_options, bool redirect_stdio, TestLauncherDelegate* delegate) { @@ -725,8 +628,8 @@ #endif // !BUILDFLAG(IS_WIN) result.exit_code = LaunchChildTestProcessWithOptions( - command_line, options, test_launch_options.flags, result_file, - timeout_per_test, num_tests, delegate, &result.was_timeout); + command_line, options, test_launch_options.flags, timeout, delegate, + &result.was_timeout); if (redirect_stdio) { fflush(output_file.get()); @@ -1138,8 +1041,8 @@ options.flags = launcher_delegate_->GetLaunchOptions(); ChildProcessResults process_results = DoLaunchChildTestProcess( - new_command_line, child_temp_dir, result_file, - launcher_delegate_->GetTimeout(), test_names.size(), options, + new_command_line, child_temp_dir, + launcher_delegate_->GetTimeout() * test_names.size(), options, redirect_stdio_, launcher_delegate_); // Invoke ProcessTestResults on the original thread, not
diff --git a/base/test/launcher/test_launcher.h b/base/test/launcher/test_launcher.h index 67e1d8a..cbbcda4 100644 --- a/base/test/launcher/test_launcher.h +++ b/base/test/launcher/test_launcher.h
@@ -334,46 +334,6 @@ int repeats_per_iteration_ = 1; }; -// Watch a gtest XML result file for tests run in a batch to complete. -class ResultWatcher { - public: - ResultWatcher(FilePath result_file, size_t num_tests); - - // Poll the incomplete result file, blocking until the batch completes or a - // test timed out. Returns true iff no tests timed out. - bool PollUntilDone(TimeDelta timeout_per_test); - - // Wait and block for up to `timeout` before we poll the result file again. - // Returns true iff we should stop polling the results early. - virtual bool WaitWithTimeout(TimeDelta timeout) = 0; - - private: - // Read the results, check if a timeout occurred, and then return how long - // the polling loop should wait for. A nonpositive return value indicates a - // timeout (i.e., the next check is overdue). - // - // If a timeout did not occur, this method tries to schedule the next check - // for `timeout_per_test` since the last test completed. - TimeDelta PollOnce(TimeDelta timeout_per_test); - - // Get the timestamp of the test that completed most recently. If no tests - // have completed, return the null time. - Time LatestCompletionTimestamp(const std::vector<TestResult>& test_results); - - // Path to the results file. - FilePath result_file_; - - // The number of tests that run in this batch. - size_t num_tests_; - - // The maximum number of attempts to read the result file. - static constexpr size_t kReadRetryLimit = 5; - - // The threshold past which we attribute a large time since latest completion - // to daylight savings time instead of a timed out test. - static constexpr TimeDelta kDaylightSavingsThreshold = Minutes(50); -}; - // Return the number of parallel jobs to use, or 0U in case of error. size_t NumParallelJobs(unsigned int cores_per_job);
diff --git a/base/test/launcher/test_launcher_unittest.cc b/base/test/launcher/test_launcher_unittest.cc index 52341d40..1a30e5a 100644 --- a/base/test/launcher/test_launcher_unittest.cc +++ b/base/test/launcher/test_launcher_unittest.cc
@@ -25,7 +25,6 @@ #include "base/test/task_environment.h" #include "base/test/test_timeouts.h" #include "base/threading/thread_task_runner_handle.h" -#include "base/time/time_to_iso8601.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "testing/gmock/include/gmock/gmock.h" @@ -40,13 +39,6 @@ namespace base { namespace { -using ::testing::_; -using ::testing::DoAll; -using ::testing::Invoke; -using ::testing::InvokeWithoutArgs; -using ::testing::Return; -using ::testing::ReturnPointee; - TestResult GenerateTestResult(const std::string& test_name, TestResult::Status status, TimeDelta elapsed_td = Milliseconds(30), @@ -111,21 +103,14 @@ MOCK_METHOD0(GetBatchSize, size_t()); }; -class MockResultWatcher : public ResultWatcher { - public: - MockResultWatcher(FilePath result_file, size_t num_tests) - : ResultWatcher(result_file, num_tests) {} - - MOCK_METHOD(bool, WaitWithTimeout, (TimeDelta), (override)); -}; - // Using MockTestLauncher to test TestLauncher. // Test TestLauncher filters, and command line switches setup. class TestLauncherTest : public testing::Test { protected: TestLauncherTest() : command_line(new CommandLine(CommandLine::NO_PROGRAM)), - test_launcher(&delegate, 10) {} + test_launcher(&delegate, 10), + task_environment(base::test::TaskEnvironment::MainThreadType::IO) {} // Adds tests to be returned by the delegate. void AddMockedTests(std::string test_case_name, @@ -142,6 +127,7 @@ // Setup expected delegate calls, and which tests the delegate will return. void SetUpExpectCalls(size_t batch_size = 10) { + using ::testing::_; EXPECT_CALL(delegate, GetTests(_)) .WillOnce(::testing::DoAll(testing::SetArgPointee<0>(tests_), testing::Return(true))); @@ -164,32 +150,13 @@ std::unique_ptr<CommandLine> command_line; MockTestLauncher test_launcher; MockTestLauncherDelegate delegate; - base::test::TaskEnvironment task_environment{ - base::test::TaskEnvironment::MainThreadType::IO}; + base::test::TaskEnvironment task_environment; ScopedTempDir dir; private: std::vector<TestIdentifier> tests_; }; -class ResultWatcherTest : public testing::Test { - protected: - ResultWatcherTest() = default; - - FilePath CreateResultFile() { - FilePath result_file = dir.GetPath().AppendASCII("test_results.xml"); - WriteFile(result_file, - "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" - "<testsuites>\n" - " <testsuite>\n"); - return result_file; - } - - base::test::TaskEnvironment task_environment{ - base::test::TaskEnvironment::TimeSource::MOCK_TIME}; - ScopedTempDir dir; -}; - // Action to mock delegate invoking OnTestFinish on test launcher. ACTION_P3(OnTestResult, launcher, full_name, status) { TestResult result = GenerateTestResult(full_name, status); @@ -228,6 +195,7 @@ // When There are no tests, delegate should not be called. TEST_F(TestLauncherTest, EmptyTestSetPasses) { SetUpExpectCalls(); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)).Times(0); EXPECT_TRUE(test_launcher.Run(command_line.get())); } @@ -239,6 +207,7 @@ {"firstTest", "secondTest", "DISABLED_firstTestDisabled"}); SetUpExpectCalls(); std::vector<std::string> tests_names = {"Test.firstTest", "Test.secondTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -257,6 +226,7 @@ SetUpExpectCalls(); std::vector<std::string> tests_names = { "Test.PRE_PRE_firstTest", "Test.PRE_firstTest", "Test.firstTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -273,6 +243,7 @@ SetUpExpectCalls(); command_line->AppendSwitchASCII("gtest_filter", "Test*.first*"); std::vector<std::string> tests_names = {"Test.firstTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -290,6 +261,7 @@ command_line->AppendSwitchASCII("gtest_filter", "Test.firstTest"); std::vector<std::string> tests_names = {"Test.PRE_firstTest", "Test.firstTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -312,6 +284,7 @@ "Test.firstTest", "Test.thirdTest", }; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -327,6 +300,7 @@ SetUpExpectCalls(); // Unless --gtest-break-on-failure is specified, command_line->AppendSwitchASCII("gtest_repeat", "2"); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .Times(2) .WillRepeatedly(::testing::DoAll(OnTestResult( @@ -341,6 +315,7 @@ // Unless --gtest-break-on-failure is specified, command_line->AppendSwitchASCII("gtest_repeat", "4"); command_line->AppendSwitch("gtest_break_on_failure"); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .WillOnce(::testing::DoAll(OnTestResult(&test_launcher, "Test.firstTest", TestResult::TEST_SUCCESS))) @@ -356,6 +331,7 @@ AddMockedTests("Test", {"firstTest"}); SetUpExpectCalls(); command_line->AppendSwitchASCII("test-launcher-retry-limit", "2"); + using ::testing::_; std::vector<std::string> tests_names = {"Test.firstTest"}; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, @@ -375,6 +351,7 @@ AddMockedTests("Test", {"firstTest"}); SetUpExpectCalls(); command_line->AppendSwitchASCII("test-launcher-retry-limit", "2"); + using ::testing::_; std::vector<std::string> tests_names = {"Test.firstTest"}; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, @@ -396,6 +373,7 @@ GenerateTestResult("Test.PRE_PRE_firstTest", TestResult::TEST_SUCCESS), GenerateTestResult("Test.PRE_firstTest", TestResult::TEST_FAILURE), GenerateTestResult("Test.firstTest", TestResult::TEST_SUCCESS)}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .WillOnce(::testing::DoAll( OnTestResult(&test_launcher, "Test.PRE_PRE_firstTest", @@ -438,6 +416,7 @@ std::vector<TestResult> results = { GenerateTestResult("Test.PRE_FirstTest", TestResult::TEST_FAILURE), GenerateTestResult("Test.FirstTest", TestResult::TEST_SUCCESS)}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .WillOnce( ::testing::DoAll(OnTestResult(&test_launcher, "Test.PRE_FirstTest", @@ -468,6 +447,7 @@ std::vector<std::string> tests_names = {"DISABLED_TestDisabled.firstTest", "Test.firstTest", "Test.DISABLED_firstTestDisabled"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -489,6 +469,7 @@ "PRE_firstTest", "secondTest"}); SetUpExpectCalls(); std::vector<std::string> tests_names = {"Test.secondTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -502,6 +483,7 @@ TEST_F(TestLauncherTest, ExcessiveOutput) { AddMockedTests("Test", {"firstTest"}); SetUpExpectCalls(); + using ::testing::_; command_line->AppendSwitchASCII("test-launcher-retry-limit", "0"); command_line->AppendSwitchASCII("test-launcher-print-test-stdio", "never"); TestResult test_result = @@ -518,6 +500,7 @@ SetUpExpectCalls(); command_line->AppendSwitchASCII("test-launcher-print-test-stdio", "never"); command_line->AppendSwitchASCII("test-launcher-output-bytes-limit", "800000"); + using ::testing::_; TestResult test_result = GenerateTestResult("Test.firstTest", TestResult::TEST_SUCCESS, Milliseconds(30), std::string(500000, 'a')); @@ -538,6 +521,7 @@ AddMockedTests("Test", {"firstTest"}); SetUpExpectCalls(); command_line->AppendSwitchASCII("test-launcher-print-test-stdio", "always"); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .WillOnce(OnTestResult(&test_launcher, "Test.firstTest", TestResult::TEST_SUCCESS)); @@ -552,6 +536,7 @@ command_line->AppendSwitchASCII("test-launcher-shard-index", "0"); command_line->AppendSwitch("test-launcher-stable-sharding"); std::vector<std::string> tests_names = {"Test.firstTest", "Test.secondTest"}; + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess( _, testing::ElementsAreArray(tests_names.cbegin(), @@ -671,6 +656,7 @@ GenerateTestResult("Test.secondTest", TestResult::TEST_SUCCESS, Milliseconds(50), "output_second"); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .Times(2) .WillRepeatedly( @@ -725,6 +711,7 @@ GenerateTestResult("Test.DISABLED_Test", TestResult::TEST_SUCCESS, Milliseconds(50), "output_second"); + using ::testing::_; EXPECT_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) .WillOnce(OnTestResult(&test_launcher, test_result)); EXPECT_TRUE(test_launcher.Run(command_line.get())); @@ -759,6 +746,7 @@ // Test that the launcher creates a dedicated temp dir for a child proc and // cleans it up. TEST_F(TestLauncherTest, TestChildTempDir) { + using ::testing::_; AddMockedTests("Test", {"firstTest"}); SetUpExpectCalls(); ON_CALL(test_launcher, LaunchChildGTestProcess(_, _, _, _)) @@ -836,217 +824,6 @@ } } -// Verify that a result watcher can stop polling early when all tests complete. -TEST_F(ResultWatcherTest, PollCompletesQuickly) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\" />\n", - " <testcase name=\"B\" status=\"run\" time=\"0.500\" " - "classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\">\n", " </testcase>\n", - " <x-teststart name=\"C\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now() + Milliseconds(500)).c_str(), "\" />\n", - " <testcase name=\"C\" status=\"run\" time=\"0.500\" " - "classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now() + Milliseconds(500)).c_str(), "\">\n", - " </testcase>\n", " </testsuite>\n", "</testsuites>\n"}))); - - MockResultWatcher result_watcher(result_file, 2); - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .WillOnce(DoAll(InvokeWithoutArgs([&]() { - task_environment.AdvanceClock(Milliseconds(1500)); - }), - Return(true))); - - Time start = Time::Now(); - ASSERT_TRUE(result_watcher.PollUntilDone(Seconds(45))); - ASSERT_EQ(Time::Now() - start, Milliseconds(1500)); -} - -// Verify that a result watcher repeatedly checks the file for a batch of slow -// tests. Each test completes in 40s, which is just under the timeout of 45s. -TEST_F(ResultWatcherTest, PollCompletesSlowly) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\" />\n"}))); - - MockResultWatcher result_watcher(result_file, 10); - size_t checks = 0; - bool done = false; - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .Times(10) - .WillRepeatedly( - DoAll(Invoke([&](TimeDelta timeout) { - task_environment.AdvanceClock(timeout); - // Append a result with "time" (duration) as 40.000s and - // "timestamp" (test start) as `Now()` - 45s. - AppendToFile( - result_file, - StrCat({" <testcase name=\"B\" status=\"run\" " - "time=\"40.000\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now() - Seconds(45)).c_str(), - "\">\n", " </testcase>\n"})); - checks++; - if (checks == 10) { - AppendToFile(result_file, - " </testsuite>\n" - "</testsuites>\n"); - done = true; - } else { - // Append a preliminary result for the next test that - // started when the last test completed (i.e., `Now()` - 45s - // + 40s). - AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" " - "timestamp=\"", - TimeToISO8601(Time::Now() - Seconds(5)).c_str(), - "\" />\n"})); - } - }), - ReturnPointee(&done))); - - Time start = Time::Now(); - ASSERT_TRUE(result_watcher.PollUntilDone(Seconds(45))); - // The first check occurs 45s after the batch starts, so the sequence of - // events looks like: - // 00:00 - Test 1 starts - // 00:40 - Test 1 completes, test 2 starts - // 00:45 - Check 1 occurs - // 01:20 - Test 2 completes, test 3 starts - // 01:25 - Check 2 occurs - // 02:00 - Test 3 completes, test 4 starts - // 02:05 - Check 3 occurs - // ... - ASSERT_EQ(Time::Now() - start, Seconds(45 + 40 * 9)); -} - -// Verify that the result watcher identifies when a test times out. -TEST_F(ResultWatcherTest, PollTimeout) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\" />\n"}))); - - MockResultWatcher result_watcher(result_file, 10); - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .Times(2) - .WillRepeatedly( - DoAll(Invoke(&task_environment, &test::TaskEnvironment::AdvanceClock), - Return(false))); - - Time start = Time::Now(); - ASSERT_FALSE(result_watcher.PollUntilDone(Seconds(45))); - // Include a small grace period. - ASSERT_EQ(Time::Now() - start, Seconds(45) + TestTimeouts::tiny_timeout()); -} - -// Verify that the result watcher retries incomplete reads. -TEST_F(ResultWatcherTest, RetryIncompleteResultRead) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - // Opening "<summary>" tag is not closed. - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\" />\n", - " <testcase name=\"B\" status=\"run\" time=\"40.000\" " - "classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\">\n", - " <summary>"}))); - - MockResultWatcher result_watcher(result_file, 2); - size_t attempts = 0; - bool done = false; - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .Times(5) - .WillRepeatedly(DoAll(Invoke([&](TimeDelta timeout) { - task_environment.AdvanceClock(timeout); - // Don't bother writing the rest of the file when - // this test completes. - done = ++attempts >= 5; - }), - ReturnPointee(&done))); - - Time start = Time::Now(); - ASSERT_TRUE(result_watcher.PollUntilDone(Seconds(45))); - ASSERT_EQ(Time::Now() - start, - Seconds(45) + 4 * TestTimeouts::tiny_timeout()); -} - -// Verify that the result watcher continues polling with the base timeout when -// the clock jumps backward. -TEST_F(ResultWatcherTest, PollWithClockJumpBackward) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - // Cannot move the mock time source backward, so write future timestamps into - // the result file instead. - Time time_before_change = Time::Now() + Hours(1); - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(time_before_change).c_str(), "\" />\n", - " <testcase name=\"B\" status=\"run\" time=\"0.500\" " - "classname=\"A\" timestamp=\"", - TimeToISO8601(time_before_change).c_str(), "\">\n", - " </testcase>\n", - " <x-teststart name=\"C\" classname=\"A\" timestamp=\"", - TimeToISO8601(time_before_change + Milliseconds(500)).c_str(), - "\" />\n"}))); - - MockResultWatcher result_watcher(result_file, 2); - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .WillOnce( - DoAll(Invoke(&task_environment, &test::TaskEnvironment::AdvanceClock), - Return(false))) - .WillOnce( - DoAll(Invoke(&task_environment, &test::TaskEnvironment::AdvanceClock), - Return(true))); - - Time start = Time::Now(); - ASSERT_TRUE(result_watcher.PollUntilDone(Seconds(45))); - ASSERT_EQ(Time::Now() - start, Seconds(90)); -} - -// Verify that the result watcher continues polling with the base timeout when -// the clock jumps forward. -TEST_F(ResultWatcherTest, PollWithClockJumpForward) { - ASSERT_TRUE(dir.CreateUniqueTempDir()); - FilePath result_file = CreateResultFile(); - ASSERT_TRUE(AppendToFile( - result_file, - StrCat({" <x-teststart name=\"B\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\" />\n", - " <testcase name=\"B\" status=\"run\" time=\"0.500\" " - "classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now()).c_str(), "\">\n", " </testcase>\n", - " <x-teststart name=\"C\" classname=\"A\" timestamp=\"", - TimeToISO8601(Time::Now() + Milliseconds(500)).c_str(), - "\" />\n"}))); - task_environment.AdvanceClock(Hours(1)); - - MockResultWatcher result_watcher(result_file, 2); - EXPECT_CALL(result_watcher, WaitWithTimeout(_)) - .WillOnce( - DoAll(Invoke(&task_environment, &test::TaskEnvironment::AdvanceClock), - Return(false))) - .WillOnce( - DoAll(Invoke(&task_environment, &test::TaskEnvironment::AdvanceClock), - Return(true))); - - Time start = Time::Now(); - ASSERT_TRUE(result_watcher.PollUntilDone(Seconds(45))); - ASSERT_EQ(Time::Now() - start, Seconds(90)); -} - // Validate delegate sets batch size correctly. TEST_F(UnitTestLauncherDelegateTester, BatchSize) { UnitTestLauncherDelegate launcher_delegate(&defaultPlatform, 15u, true);
diff --git a/base/win/wmi.h b/base/win/wmi.h index 775dfcd5..add4935c 100644 --- a/base/win/wmi.h +++ b/base/win/wmi.h
@@ -32,11 +32,14 @@ // Enumeration of errors that can arise when connecting to a WMI server and // running a query. +// Do not change ordering. This enum is captured as `WmiQueryError` in +// enums.xml. enum class WmiError { kFailedToCreateInstance = 0, kFailedToConnectToWMI = 1, kFailedToSetSecurityBlanket = 2, kFailedToExecWMIQuery = 3, + kMaxValue = kFailedToExecWMIQuery }; // String used to connect to the CIMV2 WMI server.
diff --git a/build/config/mac/BUILD.gn b/build/config/mac/BUILD.gn index 8ee1760..fa114a57 100644 --- a/build/config/mac/BUILD.gn +++ b/build/config/mac/BUILD.gn
@@ -65,7 +65,7 @@ common_flags = [ "-isysroot", rebase_path(sysroot, root_build_dir), - "-mmacosx-version-min=$mac_deployment_target", + "-mmacos-version-min=$mac_deployment_target", ] asmflags = common_flags
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index d601e616..233de40f 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -8.20220706.3.1 +8.20220707.1.1
diff --git a/chrome/VERSION b/chrome/VERSION index 83844d4..8e5a57f 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=105 MINOR=0 -BUILD=5166 +BUILD=5167 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java index 5935d6d..958c80d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java
@@ -90,8 +90,10 @@ public void show(final Activity activity, final String helpContext, Profile profile, @Nullable String url) { RecordUserAction.record("MobileHelpAndFeedback"); - showFeedback(activity, profile, url, /* categoryTag= */ null, ScreenshotMode.DEFAULT, - helpContext); + new ChromeFeedbackCollector(activity, null /* categoryTag */, null /* description */, + new ScreenshotTask(activity), + new ChromeFeedbackCollector.InitParams(profile, url, helpContext), + collector -> show(activity, helpContext, collector), profile); } /**
diff --git a/chrome/app/resources/generated_resources_af.xtb b/chrome/app/resources/generated_resources_af.xtb index 4b61865..6eb34eb 100644 --- a/chrome/app/resources/generated_resources_af.xtb +++ b/chrome/app/resources/generated_resources_af.xtb
@@ -8311,7 +8311,6 @@ <translation id="9050666287014529139">Wagfrase</translation> <translation id="9052404922357793350">Hou aan blokkeer</translation> <translation id="9053563360605707198">Druk op albei kante</translation> -<translation id="9053893665344928494">Onthou my keuse</translation> <translation id="9055636786322918818">Laat RC4-enkripsie toe. As jy hierdie opsie gebruik, verhoog dit jou risiko aangesien die RC4-syfers onveilig is.</translation> <translation id="9056810968620647706">Geen passings is gevind nie.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> wil toegang tot die volgende inhoud hê:</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index 1e51ebc3..92ea939 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -381,6 +381,7 @@ <translation id="1374844444528092021">በ«<ph name="NETWORK_NAME" />» አውታረ መረብ የተፈለገው የእውቅና ማረጋገጫ ወይም አልተጫነም ወይም ከአሁን በኋላ እሴት ያለው አይደለም። እባክዎ አዲስ የእውቅና ማረጋገጫ ያግኙና እንደገና ለመገናኘት ይሞክሩ።</translation> <translation id="1375321115329958930">የተቀመጡ የይለፍ ቃላት</translation> <translation id="1375557162880614858">የChromeOS Flex አብሮገነብ የማያ ገጽ አንባቢ የሆነውን ChromeVox ማግበር ይፈልጋሉ?</translation> +<translation id="1375938286942050085">ውቅረት ተጠናቅቋል! ቀጥሎ መሣሪያዎን ለጨዋታ ዝግጁ ያድርጉ</translation> <translation id="137651782282853227">የተቀመጡ አድራሻዎች እዚህ ይታያሉ</translation> <translation id="1376771218494401509">&መስኮትን ሰይም...</translation> <translation id="1377600615067678409">ለአሁን ዝለለው</translation> @@ -395,6 +396,7 @@ <translation id="138784436342154190">ነባሪ የጅምር ገጽ ወደነበረበት ገጽ ይመለስ?</translation> <translation id="1388253969141979417">ማይክሮፎንዎን እንደሚጠቀሙበት ተፈቅዷል</translation> <translation id="1388728792929436380">ዝማኔዎች ሲጠናቀቁ <ph name="DEVICE_TYPE" /> ዳግም ይነሳል።</translation> +<translation id="1389601498324964367">በኮታ የሚተዳደር ማከማቻ</translation> <translation id="139013308650923562">በእርስዎ መሣሪያ ላይ የተገጠሙ ቅርጸ-ቁምፊዎችን እንዲጠቀሙ ተፈቅዷል</translation> <translation id="1390548061267426325">እንደ መደበኛ ትር ክፈት</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> ወደ <ph name="PRINTER_NAME" /> ለማተም አልተፈቀደለትም። እባክዎ አስተዳዳሪዎን ያነጋግሩ።</translation> @@ -1071,6 +1073,7 @@ <translation id="1992924914582925289">ከመሣሪያ አስወግድ</translation> <translation id="1994173015038366702">የጣቢያ ዩአርኤል</translation> <translation id="1995916364271252349">ጣቢያዎች ምን መረጃ (አካባቢ፣ ካሜራ፣ ብቅ-ባዮች እና ተጨማሪ) መጠቀምና ማሳየት እንደሚችሉ ይቆጣጠራል</translation> +<translation id="1997433994358798851">Chrome ከእርስዎ መሣሪያ ጋር ለመገናኘት ብሉቱዝን ለመጠቀም ፈቃድ ይፈልጋል</translation> <translation id="1997616988432401742">የእርስዎ እውቅና ማረጋገጫዎች</translation> <translation id="1999115740519098545">በሚነሳበት ጊዜ</translation> <translation id="2000419248597011803">ፍለጋዎችን ከአድራሻ አሞሌው እና ከፍለጋ ሳጥኑ እና አንዳንድ ኩኪዎችን ወደ ነባሪው የፍለጋ ፕሮግራምዎ ይልካል</translation> @@ -1733,6 +1736,7 @@ <translation id="25899519884572181">ከአንባቢ ሁነታ ውጣ</translation> <translation id="2593499352046705383">ከመጀመርዎ በፊት የውሂብዎ ምትኬ እንዳለዎት ያረጋግጡ። <ph name="DEVICE_OS" />ን መጫን የእርስዎን ደረቅ አንጻፊ ይደመስሳል። g.co/flex/InstallGuide ላይ የበለጠ ይወቁ።</translation> <translation id="2594999711683503743">በGoogle ይፈልጉ ወይም ዩአርኤል ይተይቡ</translation> +<translation id="2599048253926156421">የተጠቃሚው ስም ወደ ቅንጥብ ሰሌዳ ተቀድቷል</translation> <translation id="2602501489742255173">ለመጀመር በጣት ይጥረጉ</translation> <translation id="2603115962224169880">ኮምፒውተርን አጽዳ</translation> <translation id="2603355571917519942">Voice Match ዝግጁ ነው</translation> @@ -1956,6 +1960,7 @@ <translation id="2804043232879091219">ተለዋጩ አሳሽ ሊከፈት አይችልም</translation> <translation id="2804667941345577550">ክፍት ትሮችን ጨምሮ፣ ከዚህ ጣቢያ ዘግተው እንዲወጡ ይደረጋሉ</translation> <translation id="2804680522274557040">ካሜራ ጠፍቷል</translation> +<translation id="280518252911523675">የቀድሞ የይለፍ ቃልዎን ሳያስገቡ ከቀጠሉ የእርስዎ አካባቢያዊ ውሂብ ይሰረዛል። ይህን ተጠቃሚ እንደገና ለማዋቀር በGoogle መለያዎ ይገባሉ።</translation> <translation id="2805539617243680210">በሙሉ ተዘጋጅተዋል!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">መተግበሪያዎች</translation> @@ -3071,6 +3076,7 @@ <translation id="3895090224522145010">የKerberos ተጠቃሚ ስም</translation> <translation id="389521680295183045">የእርስዎን መሣሪያ በንቃት በሚጠቀሙበት ጊዜ ጣቢያዎች ለማወቅ ጥያቄ ማቅረብ ይችላሉ</translation> <translation id="3897298432557662720">{COUNT,plural, =1{አንድ ምስል}one{# ምስሎች}other{# ምስሎች}}</translation> +<translation id="3897746662269329507">የእርስዎ <ph name="DEVICE_TYPE" /> ለጨዋታ የተገነባ ነው። በመቶዎች የሚቆጠሩ አዳዲስ ጨዋታዎች ላይ የሚደርሱበት፣ የጨዋታ ቅናሾችን የሚመለከቱበት እና የጨዋታ ባህሪያትን የሚያገኙበት የያስሱ መተግበሪያ በቀጣይነት ይከፈታል።</translation> <translation id="3898233949376129212">የመሣሪያ ቋንቋ</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> የሚከተሉትን ማድረግ ይፈልጋል፦ <ph name="FIRST_PERMISSION" /> እና <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">የቁልፍ ሰሌዳን ይምረጡ</translation> @@ -3221,6 +3227,7 @@ <translation id="4033471457476425443">አዲስ አቃፊ ያክሉ</translation> <translation id="4033711848170683365">ይህ የአሰሳ ውሂብን እስከ መጨረሻው ከዚህ መሣሪያ ይሰርዘዋል። በዚህ መገለጫ ውስጥ ያሉት የGoogle መለያዎች በእርስዎ <ph name="DEVICE_TYPE" /> ላይ ባሉ ሌሎች መተግበሪያዎች ስራ ላይ ሊውሉ ይችላሉ። እነዚህን መለያዎች በ<ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> ውስጥ ማስወገድ ይችላሉ።</translation> <translation id="4033963223187371752">ደህንነታቸው የተጠበቀ ጣቢያዎች እንደ ምስሎች ወይም የድር ክፈፎች ያለ ደህንነታቸው ያልተጠበቀ ይዘትን ሊያካትቱ ይችሉ ይሆናል</translation> +<translation id="4034741552964543387">ያለ አካባቢያዊ ውሂብ ቀጥል</translation> <translation id="4034824040120875894">አታሚ</translation> <translation id="4035758313003622889">&ተግባር አስተዳዳሪ</translation> <translation id="4035877632587724847">አትፍቀድ</translation> @@ -3410,6 +3417,7 @@ <translation id="4242533952199664413">ቅንብሮችን ክፈት</translation> <translation id="4242577469625748426">የመምሪያ ቅንብሮች በዚህ መሣሪያ ላይ መጫን አልተሳካም፦ <ph name="VALIDATION_ERROR" />።</translation> <translation id="4243504193894350135">አታሚ ላፍታ ቆሟል</translation> +<translation id="424423026762293842">የእርስዎን አካባቢያዊ ውሂብ እነበረበት ይመልሱ</translation> <translation id="4244238649050961491">ተጨማሪ የስቲለስ መተግበሪያዎችን ያግኙ</translation> <translation id="4246980464509998944">ተጨማሪ አስተያየቶች፦</translation> <translation id="424726838611654458">ሁልጊዜ በAdobe Reader ክፈት</translation> @@ -4967,6 +4975,7 @@ <translation id="5792728279623964091">እባክዎ የእርስዎን የኃይል አዝራር መታ ያድርጉ</translation> <translation id="5793339252089865437">ዝማኔውን በተንቀሳቃሽ ስልክ አውታረ መረብዎ ካወረዱት ከገደብ በላይ ክፍያዎችን ሊያስከትል ይችላል።</translation> <translation id="5793420564274426163">የጥምር ማረጋገጫ</translation> +<translation id="5793430094159150686">የይለፍ ቃልዎ ተቀይሯል። የእርስዎን አካባቢያዊ ውሂብ እነበረበት ለመመለስ የቀድሞ የይለፍ ቃልዎን ማስገባት ያስፈልግዎታል።</translation> <translation id="5794034487966529952">ዴስክ <ph name="DESK_TITLE" /> <ph name="NUM_BROWSERS" /> ክፍት የአሳሽ መስኮቶች አሉት</translation> <translation id="5794414402486823030">ሁልጊዜ ከስርዓት ተመልካች ጋር ይክፈቱ</translation> <translation id="5794700615121138172">የተጋሩ የLinux አቃፊዎች</translation> @@ -5893,6 +5902,7 @@ <translation id="6700093763382332031">የተንቀሳቃሽ ስልክ ሲም ቁልፍ</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> ውሰድ</translation> <translation id="6701535245008341853">መገለጫውን ማግኘት አልተቻለም።</translation> +<translation id="6701824422332982935">እነዚህን ቅጥያዎች ለመጠቀም ገጹን እንደገና ይጫኑ</translation> <translation id="6702639462873609204">&አርትእ...</translation> <translation id="6703212423117969852">በኋላ ላይ በChrome ውስጥ እንደገና መሞከር ይችላሉ።</translation> <translation id="6703254819490889819">ምትኬ ወደነበረበት መልስ</translation> @@ -7120,6 +7130,7 @@ <translation id="7903742244674067440">የእነዚህን ዕውቅና ማረጋገጫ ባለሥልጣናት የሚለዩ የዕውቅና ማረጋገጫዎች በፋይሉ ላይ አለዎት</translation> <translation id="7903925330883316394">ፍጆታ፦ <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">በአውታረ መረብዎ ላይ የLinux ወደቦች ለሌሎች መሣሪያዎች የሚገኙ ያድርጓቸው።</translation> +<translation id="7906440585529721295">አካባቢያዊ ውሂብ የሚሰረዝ ይሆናል</translation> <translation id="7907837847548254634">ትኩረት በተደረገበት ነገር ላይ ፈጣን አጭር ማሳያን አሳይ</translation> <translation id="7908378463497120834">ይቅርታ፣ ቢያንስ አንድ በውጫዊ ማከማቻዎ ላይ ያለ ክፍልፍል ሊፈናጠጥ አልቻለም።</translation> <translation id="7909324225945368569">የእርስዎን መገለጫ ዳግም ይሰይሙ</translation> @@ -7463,6 +7474,7 @@ <translation id="822050276545350872">ከዚህ ጀምሮ ምንም መጠበቅ አያስፈልግም</translation> <translation id="8221491193165283816">ማሳወቂያዎችን ብዙውን ጊዜ ያግዳሉ። ይህን ጣቢያ ለእርስዎ እንዲያሳውቅዎት ለመፍቀድ፣ እዚህ ላይ ጠቅ ያድርጉ።</translation> <translation id="822347941086490485">የHID መሣሪያዎችን በማግኘት ላይ...</translation> +<translation id="8223573963214454788">ቀጥል እና ውሂብ ሰርዝ</translation> <translation id="8225046344534779393">የበይነመረብ ግንኙነትን ይፈትሹ</translation> <translation id="8225265270453771718">የመተግበሪያ መስኮት ያጋሩ</translation> <translation id="8226222018808695353">የተከለከለ</translation> @@ -7563,6 +7575,7 @@ <translation id="8314381333424235892">የጎደለ ወይም ያልተጫነ ቅጥያ</translation> <translation id="831440797644402910">ይህን አቃፊ መክፈት አልተቻለም</translation> <translation id="8314835274931377415">የማብሪያ/ማጥፊያ መዳረሻ ውቅረት ይጀምር?</translation> +<translation id="8317582043908962055">PDF ጽሁፍን ለይ</translation> <translation id="8317671367883557781">የአውታረ መረብ ግንኙነት ያክሉ</translation> <translation id="8319414634934645341">የተስፋፋ ቁልፍ አጠቃቀም</translation> <translation id="8321837372750396788">ይህ <ph name="DEVICE_TYPE" /> በ<ph name="MANAGER" /> ነው የሚተዳደረው።</translation> @@ -8297,7 +8310,6 @@ <translation id="9050666287014529139">የይለፍ ሐረግ</translation> <translation id="9052404922357793350">ማገድን ቀጥል</translation> <translation id="9053563360605707198">በሁለቱም ጎኖች ላይ አትም</translation> -<translation id="9053893665344928494">ምርጫዬን አስታውስ</translation> <translation id="9055636786322918818">የRC4 ምሥጠራን አስገድድ። የRC4 ምሥጠራዎች ለደህንነት አስተማማኝ ስላልሆኑ ይህን አማራጭ መጠቀም የእርስዎን አደጋ ይጨምራል።</translation> <translation id="9056810968620647706">ምንም ተዛማጆች አልተገኙም።</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> የሚከተለውን ይዘት መድረስ ይፈልጋል፡-</translation> @@ -8449,6 +8461,7 @@ <translation id="9203398526606335860">&መገለጫ መስራት ነቅቷል</translation> <translation id="9203904171912129171">መሣሪያ ይምረጡ</translation> <translation id="9206889157914079472">ከማያ ገጽ ቁልፍ በስቲለስ ማስታወሻ መጻፍ</translation> +<translation id="9208192193641542858">አካባቢያዊ ውሂብ በእርስዎ የቀድሞ የይለፍ ቃል የተጠበቀ ነው። የይለፍ ቃልዎን በቅርቡ ከቀየሩ የቀድሞ የይለፍ ቃልዎን እንደገና ይሞክሩ።</translation> <translation id="9209563766569767417">የLinux መያዣ ቅንብሩን በመፈተሽ ላይ</translation> <translation id="9209689095351280025">ጣቢያዎች እርስዎን በመላ ድር ላይ የሚከታተሉ ኩኪዎችን መጠቀም አይችሉም</translation> <translation id="9211177926627870898">ዝማኔ ያስፈልጋል</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index a59fe35..6579ed2 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -384,6 +384,7 @@ <translation id="1374844444528092021">الشهادة المطلوبة من الشبكة "<ph name="NETWORK_NAME" />" لم يتم تثبيتها أو لم تعد صالحة. يُرجى الحصول على شهادة جديدة وإعادة الاتصال من جديد.</translation> <translation id="1375321115329958930">كلمات المرور المحفوظة</translation> <translation id="1375557162880614858">هل تريد تفعيل قارئ الشاشة ChromeVox المضمّن لنظام التشغيل ChromeOS Flex؟</translation> +<translation id="1375938286942050085">اكتملت عملية إعداد جهازك وحان وقت تجهيزه لتشغيل أحدث الألعاب</translation> <translation id="137651782282853227">ستظهر هنا العناوين المحفوظة</translation> <translation id="1376771218494401509">تسمية &Window...</translation> <translation id="1377600615067678409">التخطي الآن</translation> @@ -398,6 +399,7 @@ <translation id="138784436342154190">هل تريد استعادة صفحة بدء التشغيل التلقائية؟</translation> <translation id="1388253969141979417">المواقع الإلكترونية التي يُسمح لها باستخدام الميكروفون</translation> <translation id="1388728792929436380">ستتم إعادة تشغيل جهاز <ph name="DEVICE_TYPE" /> عند اكتمال التحديثات.</translation> +<translation id="1389601498324964367">مساحة التخزين المُدارة وفقًا للحصص</translation> <translation id="139013308650923562">المواقع الإلكترونية التي يُسمح لها باستخدام أشكال الخط المثبَّتة على جهازك</translation> <translation id="1390548061267426325">فتح كعلامة تبويب عادية</translation> <translation id="1390907927270446471">غير مسموح لحساب <ph name="PROFILE_USERNAME" /> باستخدام الطابعة <ph name="PRINTER_NAME" />. يُرجى التواصل مع المشرف.</translation> @@ -1066,6 +1068,7 @@ <translation id="1992924914582925289">إزالة من الجهاز</translation> <translation id="1994173015038366702">عنوان URL للموقع</translation> <translation id="1995916364271252349">يمكنك التحكّم بالمعلومات التي يمكن للمواقع الإلكترونية استخدامها وعرضها (مثل معلومات الموقع الجغرافي، والكاميرا، والنوافذ المنبثقة، وغيرها).</translation> +<translation id="1997433994358798851">يحتاج Chrome إلى إذن لاستخدام البلوتوث للاتصال بجهازك.</translation> <translation id="1997616988432401742">شهاداتك</translation> <translation id="1999115740519098545">عند بدء التشغيل</translation> <translation id="2000419248597011803">يُرسِل بعض ملفات تعريف الارتباط وعمليات البحث من شريط العناوين ومربّع البحث إلى محرِّك البحث التلقائي.</translation> @@ -1727,6 +1730,7 @@ <translation id="25899519884572181">الخروج من وضع القارئ</translation> <translation id="2593499352046705383">احرص قبل البدء على الاحتفاظ بنسخة احتياطية من بياناتك. سيؤدي تثبيت نظام التشغيل <ph name="DEVICE_OS" /> إلى استبدال جميع البيانات على محرّك الأقراص الثابتة. تعرّف على مزيد من المعلومات على الرابط g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">البحث في Google أو كتابة عنوان URL</translation> +<translation id="2599048253926156421">تم نسخ اسم المستخدم إلى الحافظة.</translation> <translation id="2602501489742255173">مرِّر سريعًا للأعلى للبدء.</translation> <translation id="2603115962224169880">إزالة البرامج الضارة من جهاز الكمبيوتر</translation> <translation id="2603355571917519942">ميزة Voice Match جاهزة للاستخدام</translation> @@ -1951,6 +1955,7 @@ <translation id="2804043232879091219">تعذَّر فتح المتصفّح البديل</translation> <translation id="2804667941345577550">سيتم تسجيل خروجك من هذا الموقع الإلكتروني، بما في ذلك ضمن علامات التبويب المفتوحة.</translation> <translation id="2804680522274557040">تم إيقاف الكاميرا</translation> +<translation id="280518252911523675">ستُحذَف البيانات المُخزّنة على جهازك في حال المتابعة بدون إدخال كلمة المرور القديمة. لإعداد الملف الشخصي لهذا المستخدم مرّة أخرى، عليك تسجيل الدخول باستخدام حسابك على Google.</translation> <translation id="2805539617243680210">انتهت عملية الإعداد.</translation> <translation id="2805646850212350655">نظام ترميز الملفات لـ Microsoft</translation> <translation id="2805756323405976993">التطبيقات</translation> @@ -3067,6 +3072,7 @@ <translation id="3895090224522145010">اسم مستخدم Kerberos</translation> <translation id="389521680295183045">السماح للمواقع الإلكترونية بطلب إذن لمعرفة الأوقات التي تستخدم فيها الجهاز بشكل نشط</translation> <translation id="3897298432557662720">{COUNT,plural, =1{صورة واحدة}zero{# صورة}two{صورتان}few{# صور}many{# صورة}other{# صورة}}</translation> +<translation id="3897746662269329507">إنّ جهاز <ph name="DEVICE_TYPE" /> الخاص بك مُصمّم لتشغيل الألعاب. سيتم فتح تطبيق "استكشاف" بعد ذلك ليتيح لك الوصول إلى مئات الألعاب الجديدة والاطّلاع على عروض الألعاب والتعرُّف على ميزات الألعاب المتوفّرة على جهازك.</translation> <translation id="3898233949376129212">لغة الجهاز</translation> <translation id="3898327728850887246">يحتاج <ph name="SITE_NAME" /> إلى الإذنَين: <ph name="FIRST_PERMISSION" /> و<ph name="SECOND_PERMISSION" />.</translation> <translation id="389901847090970821">تحديد لوحة مفاتيح</translation> @@ -3214,6 +3220,7 @@ <translation id="4033471457476425443">إضافة مجلد جديد</translation> <translation id="4033711848170683365">سيؤدي هذا الإجراء إلى حذف بيانات التصفُّح من هذا الجهاز نهائيًا. قد يتم استخدام حسابات Google في هذا الملف الشخصي من خلال تطبيقات أخرى على الجهاز <ph name="DEVICE_TYPE" />. يمكنك إزالة هذه الحسابات من خلال <ph name="BEGIN_LINK" /> <ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">قد تضمِّن المواقع الإلكترونية الآمنة محتوى غير آمن، مثلًا صور أو إطارات ويب غير آمنة.</translation> +<translation id="4034741552964543387">المتابعة بدون البيانات المُخزّنة على الجهاز</translation> <translation id="4034824040120875894">الطابعة</translation> <translation id="4035758313003622889">مدير الم&هام</translation> <translation id="4035877632587724847">عدم السماح</translation> @@ -3405,6 +3412,7 @@ <translation id="4242533952199664413">فتح الإعدادات</translation> <translation id="4242577469625748426">تعذّر تثبيت إعدادات السياسة على الجهاز: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">الطابعة متوقفة مؤقتًا</translation> +<translation id="424423026762293842">استعادة البيانات المُخزّنة على الجهاز</translation> <translation id="4244238649050961491">العثور على المزيد من تطبيقات قلم الشاشة</translation> <translation id="4246980464509998944">التعليقات الإضافية:</translation> <translation id="424726838611654458">الفتح دائمًا باستخدام Adobe Reader</translation> @@ -4962,6 +4970,7 @@ <translation id="5792728279623964091">يُرجى النقر على زر التشغيل.</translation> <translation id="5793339252089865437">قد يؤدي تنزيل التحديث عبر شبكة الجوّال إلى تحصيل رسوم زائدة منك.</translation> <translation id="5793420564274426163">تأكيد الإقران</translation> +<translation id="5793430094159150686">تم تغيير كلمة المرور. لاستعادة بياناتك المُخزّنة على الجهاز، عليك إدخال كلمة المرور القديمة.</translation> <translation id="5794034487966529952">عدد نوافذ المتصفّح المفتوحة على سطح مكتب <ph name="DESK_TITLE" />: <ph name="NUM_BROWSERS" /></translation> <translation id="5794414402486823030">افتح دائمًا باستخدام عرض النظام</translation> <translation id="5794700615121138172">مجلدات نظام التشغيل Linux التي تمت مشاركتها</translation> @@ -5894,6 +5903,7 @@ <translation id="6700093763382332031">قفل شريحة SIM الخاص بشبكة الجوّال</translation> <translation id="6700480081846086223">إرسال <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">تعذر الحصول على الملف الشخصي.</translation> +<translation id="6701824422332982935">إعادة تحميل الصفحة لاستخدام هذه الإضافات</translation> <translation id="6702639462873609204">تعد&يل...</translation> <translation id="6703212423117969852">يمكنك إعادة المحاولة لاحقًا في Chrome.</translation> <translation id="6703254819490889819">استعادة النسخة الاحتياطية</translation> @@ -7122,6 +7132,7 @@ <translation id="7903742244674067440">لديك شهادات في الملف تحدد صلاحيات الشهادة هذه</translation> <translation id="7903925330883316394">الأداة: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">اجعل منافذ نظام التشغيل Linux متاحة لأجهزة أخرى على الشبكة.</translation> +<translation id="7906440585529721295">سيتم حذف البيانات المُخزّنة على الجهاز</translation> <translation id="7907837847548254634">تحديد سريع للعنصر الذي تم التركيز عليه</translation> <translation id="7908378463497120834">عذرًا، تعذر تركيب جزء واحد على الأقل من جهاز مساحة التخزين الخارجية.</translation> <translation id="7909324225945368569">إعادة تسمية ملفك الشخصي</translation> @@ -7461,6 +7472,7 @@ <translation id="822050276545350872">لا داعي للانتظار بعد الآن.</translation> <translation id="8221491193165283816">أنت تحظر الإشعارات عادةً. للسماح لهذا الموقع الإلكتروني بإرسال إشعارات لك، انقر هنا.</translation> <translation id="822347941086490485">جارٍ البحث عن أجهزة HID...</translation> +<translation id="8223573963214454788">المتابعة وحذف البيانات</translation> <translation id="8225046344534779393">يُرجى التحقق من الاتصال بالإنترنت.</translation> <translation id="8225265270453771718">مشاركة نافذة التطبيق</translation> <translation id="8226222018808695353">محظور </translation> @@ -7561,6 +7573,7 @@ <translation id="8314381333424235892">إضافة مفقودة أو غير مُثبتة</translation> <translation id="831440797644402910">يتعذّر فتح هذا المجلد</translation> <translation id="8314835274931377415">هل تريد بدء عملية إعداد ميزة "الوصول عبر مفتاح تحكّم"؟</translation> +<translation id="8317582043908962055">التعرُّف على النص في ملفات P&DF</translation> <translation id="8317671367883557781">إضافة اتصال شبكة</translation> <translation id="8319414634934645341">استخدام المفتاح الموسع</translation> <translation id="8321837372750396788">ستتم إدارة جهاز <ph name="DEVICE_TYPE" /> هذا من خلال <ph name="MANAGER" />.</translation> @@ -8298,7 +8311,6 @@ <translation id="9050666287014529139">عبارة المرور</translation> <translation id="9052404922357793350">متابعة الحظر</translation> <translation id="9053563360605707198">الطباعة على كلا الجانبين</translation> -<translation id="9053893665344928494">تذكَّر اختياري</translation> <translation id="9055636786322918818">فرض ترميز RC4: يؤدي استخدام هذا الخيار إلى زيادة المخاطر، لأن رموز RC4 غير آمنة.</translation> <translation id="9056810968620647706">لم يتم العثور على نتائج مطابقة.</translation> <translation id="9057007989365783744">هناك طلب من <ph name="SUPERVISED_USER_NAME" /> بالوصول إلى المحتوى التالي:</translation> @@ -8450,6 +8462,7 @@ <translation id="9203398526606335860">&التوصيف مفعّل</translation> <translation id="9203904171912129171">اختيار جهاز</translation> <translation id="9206889157914079472">تدوين الملاحظات باستخدام قلم الشاشة في وضع قفل الشاشة</translation> +<translation id="9208192193641542858">البيانات المُخزّنة على الجهاز محمية بكلمة مرور قديمة. في حال غيّرت كلمة المرور مؤخرًا، يمكنك تجربة استخدام كلمة المرور القديمة مرة أخرى.</translation> <translation id="9209563766569767417">جارٍ التحقُّق من إعداد حاوية نظام التشغيل Linux</translation> <translation id="9209689095351280025">لا يمكن للمواقع الإلكترونية استخدام ملفات تعريف الارتباط لتتبّع نشاط تصفحّك على الإنترنت.</translation> <translation id="9211177926627870898">التحديث مطلوب</translation>
diff --git a/chrome/app/resources/generated_resources_as.xtb b/chrome/app/resources/generated_resources_as.xtb index 5a8c0dd5..1acc77dc 100644 --- a/chrome/app/resources/generated_resources_as.xtb +++ b/chrome/app/resources/generated_resources_as.xtb
@@ -383,6 +383,7 @@ <translation id="1374844444528092021">নেটৱৰ্কে "<ph name="NETWORK_NAME" />" বিচৰা প্ৰমাণপত্ৰ হয়তো ইনষ্টল কৰা নাই বা সেইয়া এতিয়া আৰু মান্য নহয়। অনুগ্ৰহ কৰি এখন নতুন প্ৰমাণপত্ৰ লওক আৰু আকৌ সংযোগ কৰাৰ চেষ্টা কৰক।</translation> <translation id="1375321115329958930">ছেভ কৰি থোৱা পাছৱৰ্ড</translation> <translation id="1375557162880614858">আপুনি ChromeOS Flexৰ বিল্ট-ইন স্ক্ৰীন ৰীডাৰ, ChromeVox সক্ৰিয় কৰিবলৈ বিচাৰেনে?</translation> +<translation id="1375938286942050085">ছেটআপ সম্পূৰ্ণ হৈছে! আপোনাৰ ডিভাইচটো পৰৱৰ্তী গে’মিঙৰ বাবে সাজু কৰক</translation> <translation id="137651782282853227">ছেভ কৰি থোৱা ঠিকনাবোৰ ইয়াত দেখা যাব</translation> <translation id="1376771218494401509">ৱিণ্ডৰ নাম দিয়ক...</translation> <translation id="1377600615067678409">সদ্যহতে এৰি যাওক</translation> @@ -397,6 +398,7 @@ <translation id="138784436342154190">আৰম্ভণিতে খোল খোৱা ডিফ’ল্ট পৃষ্ঠাটো পুনঃস্থাপন কৰিবনে?</translation> <translation id="1388253969141979417">আপোনাৰ মাইক্ৰ’ফ’ন ব্যৱহাৰ কৰাৰ অনুমতি আছে</translation> <translation id="1388728792929436380">আপডে’টসমূহ সম্পূৰ্ণ হ’লে <ph name="DEVICE_TYPE" /> ৰিষ্টাৰ্ট হ’ব।</translation> +<translation id="1389601498324964367">কোটা পৰিচালিত ষ্ট’ৰেজ</translation> <translation id="139013308650923562">আপোনাৰ ডিভাইচত ইনষ্টল হৈ থকা ফণ্ট ব্যৱহাৰ কৰিবলৈ দিয়া হয়</translation> <translation id="1390548061267426325">নিয়মীয়া টেব হিচাপে খোলক</translation> <translation id="1390907927270446471"><ph name="PRINTER_NAME" />ত প্ৰিণ্ট কৰিবলৈ <ph name="PROFILE_USERNAME" />ৰ কৰ্তৃত্ব নাই। অনুগ্ৰহ কৰি আপোনাৰ প্ৰশাসকৰ সৈতে যোগাযোগ কৰক।</translation> @@ -1073,6 +1075,7 @@ <translation id="1992924914582925289">ডিভাইচটোৰ পৰা আঁতৰাওক</translation> <translation id="1994173015038366702">ছাইট URL</translation> <translation id="1995916364271252349">ছাইটসমূহে কি তথ্য ব্যৱহাৰ কৰিব আৰু দেখুৱাব পাৰে সেয়া নিয়ন্ত্ৰণ কৰে (অৱস্থান, কেমেৰা, পপ-আপ আৰু বহুতো)</translation> +<translation id="1997433994358798851">আপোনাৰ ডিভাইচটোৰ সৈতে সংযোগ হোৱাৰ বাবে ব্লুটুথ ব্যৱহাৰ কৰিবলৈ Chromeক অনুমতিৰ আৱশ্যক</translation> <translation id="1997616988432401742">আপোনাৰ প্ৰমাণপত্ৰ</translation> <translation id="1999115740519098545">আৰম্ভণি</translation> <translation id="2000419248597011803">আপোনাৰ ডিফ’ল্ট সন্ধান ইঞ্জিনলৈ ঠিকনা বাৰ আৰু সন্ধান বাকছৰ পৰা কিছুমান কুকি আৰু সন্ধান পঠিয়ায়</translation> @@ -1737,6 +1740,7 @@ <translation id="25899519884572181">ৰীডাৰ ম’ডৰ পৰা বাহিৰ হওক</translation> <translation id="2593499352046705383">আৰম্ভ কৰাৰ আগতে আপোনাৰ ওচৰত নিজৰ ডেটাৰ এটা বেকআপ থকাটো নিশ্চিত কৰক। <ph name="DEVICE_OS" /> ইনষ্টল কৰিলে আপোনাৰ হাৰ্ড ড্ৰাইভটো অ’ভাৰৰাইট কৰা হ’ব। g.co/flex/InstallGuideত অধিক জানক।</translation> <translation id="2594999711683503743">Googleত সন্ধান কৰক বা URL টাইপ কৰক</translation> +<translation id="2599048253926156421">ব্যৱহাৰকাৰীৰ নাম ক্লিপব’ৰ্ডলৈ প্ৰতিলিপি কৰা হ’ল</translation> <translation id="2602501489742255173">আৰম্ভ কৰিবলৈ ওপৰলৈ ছোৱাইপ কৰক</translation> <translation id="2603115962224169880">কম্পিউটাৰৰ ডেটা মচক</translation> <translation id="2603355571917519942">Voice Match সুবিধাটো সাজু আছে</translation> @@ -1959,6 +1963,7 @@ <translation id="2804043232879091219">বিকল্প ব্ৰাউজাৰটো খুলিব পৰা নগ'ল</translation> <translation id="2804667941345577550">খোলা থকা টেবসমূহকে ধৰি আপুনি এই ছাইটটোৰ পৰা ছাইন আউট হৈ যাব</translation> <translation id="2804680522274557040">কেমেৰা অফ কৰা আছে</translation> +<translation id="280518252911523675">যদি আপুনি আপোনাৰ পুৰণি পাছৱৰ্ডটো নিদিয়াকৈ অব্যাহত ৰাখে, আপোনাৰ স্থানীয় ডেটাখিনি মচা হ’ব। এই ব্যৱহাৰকাৰীগৰাকীক পুনৰ ছেট আপ কৰিবলৈ আপুনি নিজৰ Google একাউণ্টেৰে ছাইন ইন কৰিব।</translation> <translation id="2805539617243680210">আপুনি সম্পূৰ্ণ সাজু!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">এপ্</translation> @@ -3074,6 +3079,7 @@ <translation id="3895090224522145010">Kerberos ব্যৱহাৰকাৰীৰ নাম</translation> <translation id="389521680295183045">ছাইটে আপুনি নিজৰ ডিভাইচটো কেতিয়া সক্ৰিয়ভাৱে ব্যৱহাৰ কৰি থাকে সেয়া জানিবলৈ বিচাৰিব পাৰে</translation> <translation id="3897298432557662720">{COUNT,plural, =1{এখন প্ৰতিচ্ছবি}one{# খন প্ৰতিচ্ছবি}other{# খন প্ৰতিচ্ছবি}}</translation> +<translation id="3897746662269329507">আপোনাৰ <ph name="DEVICE_TYPE" />টো গে’মিঙৰ বাবে নিৰ্মাণ কৰা হৈছে। Explore এপ্টোৱে পৰৱৰ্তী পৃষ্ঠাখন খুলিব, য’ত আপুনি কেইবাশ শেহতীয়া গে’ম এক্সেছ কৰিব, গে’মিঙৰ অফাৰসমূহ চাব আৰু আপোনাৰ ডিভাইচৰ সৈতে অহা গে’মিঙৰ সুবিধাসমূহ বিচাৰি পাব পাৰে।</translation> <translation id="3898233949376129212">ডিভাইচৰ ভাষা</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" />এ এইকেইটা অনুমতি বিচাৰে: <ph name="FIRST_PERMISSION" /> আৰু <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">কীব’ৰ্ড বাছনি কৰক</translation> @@ -3223,6 +3229,7 @@ <translation id="4033471457476425443">নতুন ফ’ল্ডাৰ যোগ কৰক</translation> <translation id="4033711848170683365">এই কাৰ্যই এই ডিভাইচটোৰ পৰা ব্ৰাউজিঙৰ ডেটা স্থায়ীভাৱে মচি পেলাব। এই প্ৰ’ফাইলটোত থকা Google একাউণ্টসমূহ আপোনাৰ <ph name="DEVICE_TYPE" />ৰ অন্য এপে ব্যৱহাৰ কৰিব পাৰে। আপুনি <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />ত এই একাউণ্টসমূহ আঁতৰাব পাৰে।</translation> <translation id="4033963223187371752">সুৰক্ষিত ছাইটে প্ৰতিচ্ছবি অথবা ৱেব ফ্ৰে’মৰ দৰে অসুৰক্ষিত সমল এম্বেড কৰিব পাৰে</translation> +<translation id="4034741552964543387">স্থানীয় ডেটাৰ অবিহনে অব্যাহত ৰাখক</translation> <translation id="4034824040120875894">প্ৰিণ্টাৰ</translation> <translation id="4035758313003622889">&কাৰ্য পৰিচালক</translation> <translation id="4035877632587724847">অনুমতি নিদিব</translation> @@ -3414,6 +3421,7 @@ <translation id="4242533952199664413">ছেটিংসমূহ খোলক</translation> <translation id="4242577469625748426">ডিভাইচত নীতিৰ ছেটিং কৰিব পৰা নগ’ল: <ph name="VALIDATION_ERROR" />।</translation> <translation id="4243504193894350135">প্ৰিণ্টাৰ পজ হৈ আছে</translation> +<translation id="424423026762293842">আপোনাৰ স্থানীয় ডেটা পুনঃস্থাপন কৰক</translation> <translation id="4244238649050961491">অধিক ষ্টাইলাছ এপ্ বিচাৰি পাওক</translation> <translation id="4246980464509998944">অতিৰিক্ত মন্তব্য:</translation> <translation id="424726838611654458">সদায় Adobe Readerত খোলক</translation> @@ -4972,6 +4980,7 @@ <translation id="5792728279623964091">অনুগ্ৰহ কৰি, আপোনাৰ পাৱাৰ বুটামটো টিপক</translation> <translation id="5793339252089865437">আপুনি যদি আপডে'টটো ম'বাইল ডেটা ব্যৱহাৰ কৰি ডাউনল'ড কৰে, এইটোৰ বাবে অতিমাত্ৰা মাচুল ভৰিবলগীয়া হ'ব পাৰে।</translation> <translation id="5793420564274426163">নিশ্চিতকৰণৰ পেয়াৰ কৰক</translation> +<translation id="5793430094159150686">আপোনাৰ পাছৱৰ্ডটো সলনি কৰা হৈছে। আপোনাৰ স্থানীয় ডেটাখিনি পুনঃস্থাপন কৰইবলৈ, আপুনি নিজৰ পুৰণি পাছৱৰ্ডটো দিব লাগিব।</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" /> ডেস্কৰ <ph name="NUM_BROWSERS" /> খন ব্ৰাউজাৰৰ ৱিণ্ড' খোলা আছে</translation> <translation id="5794414402486823030">সদায় ছিষ্টেম ভিউৱাৰৰ জৰিয়তে খোলক</translation> <translation id="5794700615121138172">Linuxৰ শ্বেয়াৰ কৰা ফ’ল্ডাৰসমূহ</translation> @@ -5898,6 +5907,7 @@ <translation id="6700093763382332031">চেলুলাৰ ছিম লক</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> কাষ্ট কৰক</translation> <translation id="6701535245008341853">প্ৰ’ফাইল সংগ্ৰহ কৰিব পৰা নগ’ল।</translation> +<translation id="6701824422332982935">এই এক্সটেনশ্বনসমূহ ব্যৱহাৰ কৰিবলৈ পৃষ্ঠাখন পুনৰ ল’ড কৰক</translation> <translation id="6702639462873609204">&সম্পাদনা কৰক...</translation> <translation id="6703212423117969852">আপুনি পাছত Chromeত পুনৰ চেষ্টা কৰিব পাৰে।</translation> <translation id="6703254819490889819">বেকআপ পুনঃস্থাপন কৰক</translation> @@ -7124,6 +7134,7 @@ <translation id="7903742244674067440">সেই কর্তৃপক্ষক চিনাক্ত কৰা প্ৰমাণপত্ৰ আপোনাৰ ফাইলত আছে</translation> <translation id="7903925330883316394">ইউটিলিটি: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">আপোনাৰ নেটৱর্কৰ অন্য ডিভাইচসমূহত Linux প’ৰ্টসমূহ উপলব্ধ কৰাওক।</translation> +<translation id="7906440585529721295">স্থানীয় ডেটা মচা হ’ব</translation> <translation id="7907837847548254634">ফ’কাছ কৰা বস্তুটোত এটা তাৎক্ষণিক হাইলাইট দেখুৱাওক</translation> <translation id="7908378463497120834">ক্ষমা কৰিব, আপোনাৰ বাহ্যিক ষ্ট'ৰেজ ডিভাইচৰ অতি কমেও এটা পাৰ্টিশ্বন মাউণ্ট কৰিব পৰা নগ'ল।</translation> <translation id="7909324225945368569">আপোনাৰ প্ৰ’ফাইলটোৰ নতুন নাম দিয়ক</translation> @@ -7461,6 +7472,7 @@ <translation id="822050276545350872">ইয়াৰ পাছত, অপেক্ষা কৰাৰ প্ৰয়োজন নাই</translation> <translation id="8221491193165283816">আপুনি সাধাৰণতে জাননীসমূহ অৱৰোধ কৰে। এই ছাইটটোৱে আপোনাক জাননী দিয়াত অনুমতি দিবলৈ ইয়াত ক্লিক কৰক।</translation> <translation id="822347941086490485">HID ডিভাইচ বিচাৰি থকা হৈছে...</translation> +<translation id="8223573963214454788">অব্যাহত ৰাখক আৰু ডেটা মচক</translation> <translation id="8225046344534779393">ইণ্টাৰনেট সংযোগ পৰীক্ষা কৰক</translation> <translation id="8225265270453771718">কোনো এপ্লিকেশ্বন ৱিণ্ড’ শ্বেয়াৰ কৰক</translation> <translation id="8226222018808695353">(নিষিদ্ধ)</translation> @@ -7561,6 +7573,7 @@ <translation id="8314381333424235892">এক্সটেনশ্বনটো নাই আনইনষ্টল কৰা হৈছে</translation> <translation id="831440797644402910">এই ফ’ল্ডাৰটো খুলিব নোৱাৰে</translation> <translation id="8314835274931377415">ছুইচেৰে এক্সেছ কৰাৰ সুবিধাটো ছেট আপ কৰা আৰম্ভ কৰিবনে?</translation> +<translation id="8317582043908962055">পিডিএফ পাঠ চিনাক্ত কৰক</translation> <translation id="8317671367883557781">নেটৱর্ক সংযোগ যোগ কৰক</translation> <translation id="8319414634934645341">বিস্তাৰিত চাবিৰ ব্যৱহাৰ</translation> <translation id="8321837372750396788">এই <ph name="DEVICE_TYPE" />টো <ph name="MANAGER" />এ পৰিচালনা কৰিব।</translation> @@ -8295,7 +8308,6 @@ <translation id="9050666287014529139">পাছফ্ৰেজ</translation> <translation id="9052404922357793350">অৱৰোধ কৰাটো অব্যাহত ৰাখক</translation> <translation id="9053563360605707198">দুয়ো পিঠিতে প্ৰিণ্ট কৰক</translation> -<translation id="9053893665344928494">মোৰ পচন্দ মনত ৰাখিব</translation> <translation id="9055636786322918818">RC4 এনক্ৰিপশ্বন প্ৰয়োগ কৰক৷ RC4 চিপাৰসমূহ অসুৰক্ষিত হোৱাৰ বাবে এই বিকল্পটো ব্যৱহাৰ কৰা কার্যয়ে আপোনাৰ বিপদৰ সম্ভাৱনা বৃদ্ধি কৰে।</translation> <translation id="9056810968620647706">মিল থকা একো বিচাৰি পোৱা নগ’ল।</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" />এ তলত উল্লিখিত সমল এক্সেছ কৰিব বিচাৰে:</translation> @@ -8447,6 +8459,7 @@ <translation id="9203398526606335860">&প্ৰ’ফিলিং সক্ষম কৰা হৈছে</translation> <translation id="9203904171912129171">এটা ডিভাইচ বাছনি কৰক</translation> <translation id="9206889157914079472">লক স্ক্ৰীনৰ পৰা ষ্টাইলাছৰ টোকা লোৱাৰ সুবিধা</translation> +<translation id="9208192193641542858">স্থানীয় ডেটাখিনি আপোনাৰ পুৰণি পাছৱৰ্ডটোৱে সুৰক্ষিত কৰে। আপুনি যদি শেহতীয়াকৈ আপোনাৰ পাছৱৰ্ডটো সলনি কৰিছে, আপোনাৰ পুনৰ পুৰণি পাছৱৰ্ডটো ব্যৱহাৰ কৰক।</translation> <translation id="9209563766569767417">Linux কণ্টেইনাৰৰ ছেটআপ পৰীক্ষা কৰি থকা হৈছে</translation> <translation id="9209689095351280025">ছাইটসমূহে আপোনাক সমগ্ৰ ৱেবত ট্ৰেক কৰা কুকিসমূহ ব্যৱহাৰ কৰিব নোৱাৰে</translation> <translation id="9211177926627870898">আপডে'টৰ প্ৰয়োজন</translation>
diff --git a/chrome/app/resources/generated_resources_az.xtb b/chrome/app/resources/generated_resources_az.xtb index a764b4a..9732816 100644 --- a/chrome/app/resources/generated_resources_az.xtb +++ b/chrome/app/resources/generated_resources_az.xtb
@@ -378,6 +378,7 @@ <translation id="1374844444528092021">"<ph name="NETWORK_NAME" />" şəbəkəsi tərəfindən tələb olunan sertifikat ya quraşdırılmayıb, ya da daha etibarlı deyil. Lütfən, yeni sertifikat alın və yenidən qoşulmağa cəhd edin.</translation> <translation id="1375321115329958930">Saxlanılmış Parollar</translation> <translation id="1375557162880614858">ChromeOS Flex üçün daxili ekran oxuyucusu olan ChromeVox'u aktiv etmək istəyirsiniz?</translation> +<translation id="1375938286942050085">Ayarlama tamamlandı! Cihazınızı oyuna hazırlayın</translation> <translation id="137651782282853227">Yadda saxlanmış ünvanlar burada görünəcək</translation> <translation id="1376771218494401509">&Pəncərəyə ad verin...</translation> <translation id="1377600615067678409">İndilik keçin</translation> @@ -392,6 +393,7 @@ <translation id="138784436342154190">Defolt başlanğıc səhifə bərpa edilsin?</translation> <translation id="1388253969141979417">Mikrofonunuzdan istifadə etməyə icazə verilib</translation> <translation id="1388728792929436380">Güncəlləmələr tamamlanan kimi <ph name="DEVICE_TYPE" /> cihazı yenidən başladılacaq.</translation> +<translation id="1389601498324964367">Kvota ilə idarə edilən yaddaş</translation> <translation id="139013308650923562">Cihazınızda quraşdırılmış şriftləri istifadə etmək icazəsi verilir</translation> <translation id="1390548061267426325">Adi panel kimi açın</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> adlı şəxsin <ph name="PRINTER_NAME" /> ilə çap etmək icazəsi yoxdur. Administratorunuz ilə əlaqə saxlayın.</translation> @@ -1059,6 +1061,7 @@ <translation id="1992924914582925289">Cihazdan silin</translation> <translation id="1994173015038366702">Sayt URL-i</translation> <translation id="1995916364271252349">Saytların istifadə edə və göstərə biləcəyi məlumatlara (məkan, kamera, xəbərdarlıq pəncərələri və s.) nəzarət edir</translation> +<translation id="1997433994358798851">Chrome cihazınıza qoşulmaq üçün Bluetooth'dan istifadə etmək icazəsi tələb edir</translation> <translation id="1997616988432401742">Sertifikatlarınız</translation> <translation id="1999115740519098545">Başlanğıcda</translation> <translation id="2000419248597011803">Ünvan paneli və axtarış qutusundakı bəzi kuki və axtarışları defolt axtarış mühərrikinizə göndərin</translation> @@ -1723,6 +1726,7 @@ <translation id="25899519884572181">Oxucu rejimindən çıxın</translation> <translation id="2593499352046705383">Başlamadan əvvəl, datanızın yedəkləndiyinə əmin olun. <ph name="DEVICE_OS" /> quraşdırıldıqda sərt diskinizdəki bütün data əvəzlənəcəkdir. Ətraflı məlumat: g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Google'da axtarın və ya link yazın</translation> +<translation id="2599048253926156421">İstifadəçi adı mübadilə buferinə kopyalandı</translation> <translation id="2602501489742255173">Başlamaq üçün yuxarı sürüşdürün</translation> <translation id="2603115962224169880">Kompüteri təmizləyin</translation> <translation id="2603355571917519942">Voice Match hazırdır</translation> @@ -1945,6 +1949,7 @@ <translation id="2804043232879091219">Alternativ brauzeri açmaq mümkün olmadı</translation> <translation id="2804667941345577550">Açıq tablar da daxil olmaqla, bu saytdan çıxmış olacaqsınız</translation> <translation id="2804680522274557040">Kamera deaktivdir</translation> +<translation id="280518252911523675">Köhnə parolunuzu daxil etmədən davam etsəniz, lokal datanız silinəcək. Bu istifadəçini yenidən ayarlamaq üçün Google Hesabınızla daxil olacaqsınız.</translation> <translation id="2805539617243680210">Hər şey hazırdır!</translation> <translation id="2805646850212350655">Microsoft Şifrələmə Fayl Sistemi</translation> <translation id="2805756323405976993">Tətbiq</translation> @@ -3060,6 +3065,7 @@ <translation id="3895090224522145010">Kerberos istifadəçi adı</translation> <translation id="389521680295183045">Saytlar cihazınızdan nə zaman aktiv şəkildə istifadə etdiyinizi bilmək üçün icazə istəyə bilər</translation> <translation id="3897298432557662720">{COUNT,plural, =1{şəkil}other{# şəkil}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> cihazınız oyun üçün yaradılıb. Növbəti olaraq Araşdırma tətbiqi açıqlacaq - burada yüzlərlə ən son oyuna daxil ola, oyun təkliflərinə baxa və cihazınızla birlikdə gələn oyun funksiyalarını kəşf edə biləcəksiniz.</translation> <translation id="3898233949376129212">Cihazın dili</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> bunu etmək istəyir: <ph name="FIRST_PERMISSION" /> və <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Klaviatura seçin</translation> @@ -3210,6 +3216,7 @@ <translation id="4033471457476425443">Yeni qovluq əlavə edin</translation> <translation id="4033711848170683365">Bununla baxış datası bu cihazdan həmişəlik siləcək. Bu profildəki Google Hesabları <ph name="DEVICE_TYPE" /> cihazınızdakı digər tətbiqlər tərəfindən istifadə oluna bilər. Bu hesabları <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> bölməsində silə bilərsiniz.</translation> <translation id="4033963223187371752">Güvənli saytlar güvənli olmayan şəkillər və ya veb çərçivələr kimi məzmun yerləşdirə bilər</translation> +<translation id="4034741552964543387">Lokal data olmadan davam edin</translation> <translation id="4034824040120875894">Printer</translation> <translation id="4035758313003622889">Tapşırıq meneceri</translation> <translation id="4035877632587724847">İcazə verməyin</translation> @@ -3399,6 +3406,7 @@ <translation id="4242533952199664413">Ayarları açın</translation> <translation id="4242577469625748426">Cihazda siyasət ayarlarını quraşdırmaq uğursuz oldu: <ph name="VALIDATION_ERROR" /> .</translation> <translation id="4243504193894350135">Printer durdurulub</translation> +<translation id="424423026762293842">Lokal datanızı bərpa edin</translation> <translation id="4244238649050961491">Daha çox stiloqraf tətbiqləri axtarın</translation> <translation id="4246980464509998944">Əlavə şərhlər:</translation> <translation id="424726838611654458">Həmişə Adobe Reader'də açın</translation> @@ -4956,6 +4964,7 @@ <translation id="5792728279623964091">Yandırıb-söndürmə düyməsinə toxunun</translation> <translation id="5793339252089865437">Mobil şəbəkə ilə güncəlləməni endirsəniz, əlavə ödəniş tutulacaq.</translation> <translation id="5793420564274426163">Birləşdirmə Təsdiqi</translation> +<translation id="5793430094159150686">Parolunuz dəyişdi. Lokal datanızı bərpa etmək üçün köhnə parolunuzu daxil etməlisiniz.</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" /> masasında <ph name="NUM_BROWSERS" /> açıq brauzer pəncərəsi var</translation> <translation id="5794414402486823030">Həmişə sistem izləyici ilə açın</translation> <translation id="5794700615121138172">Linux'un paylaşılan qovluqları</translation> @@ -5878,6 +5887,7 @@ <translation id="6700093763382332031">Mobil SİM kart kilidi</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> yayımlayın</translation> <translation id="6701535245008341853">Profil əldə edilə bilmədi.</translation> +<translation id="6701824422332982935">Bu artırmalardan istifadə etmək üçün səhifəni yenidən yükləyin</translation> <translation id="6702639462873609204">&Düzəliş edin...</translation> <translation id="6703212423117969852">Sonra Chrome'da bir daha cəhd edə bilərsiniz.</translation> <translation id="6703254819490889819">Yedəkləməni bərpa edin</translation> @@ -7104,6 +7114,7 @@ <translation id="7903742244674067440">Bu sertifikat təşkilatlarını müəyyən edən sertifikatlarınız var</translation> <translation id="7903925330883316394">Utilit: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Linux portlarını şəbəkənizdə digər cihazlar üçün əlçatan edin.</translation> +<translation id="7906440585529721295">Lokal data silinəcək</translation> <translation id="7907837847548254634">Fokuslanmış obyektin üzərində sürətli vurğulama göstərin</translation> <translation id="7908378463497120834">Təəssüf ki, xarici yaddaş cihazınızdakı ən azı bir bölmə montaj edilə bilmədi.</translation> <translation id="7909324225945368569">Profilinizin adını dəyişdirin</translation> @@ -7441,6 +7452,7 @@ <translation id="822050276545350872">Bundan sonra gözləməyə ehtiyac yoxdur</translation> <translation id="8221491193165283816">Bildirişləri, adətən, bloklayırsınız. Bu saytın sizə bildirişlər göndərməsinə icazə vermək üçün buraya klikləyin.</translation> <translation id="822347941086490485">HID cihazları axtarılır...</translation> +<translation id="8223573963214454788">Davam edin və datanı silin</translation> <translation id="8225046344534779393">İnternet bağlantısını yoxlayın</translation> <translation id="8225265270453771718">Tətbiq pəncərəsini paylaşın</translation> <translation id="8226222018808695353">Qadağandır</translation> @@ -7541,6 +7553,7 @@ <translation id="8314381333424235892">Çatışmayan və ya sistemdən silinən artırma</translation> <translation id="831440797644402910">Bu qovluq açılmır</translation> <translation id="8314835274931377415">Keçirici ilə Giriş ayarlanması başladılsın?</translation> +<translation id="8317582043908962055">P&DF mətnini tanıyın</translation> <translation id="8317671367883557781">Şəbəkə bağlantısı əlavə edin</translation> <translation id="8319414634934645341">Genişləndirilmiş Açar İstifadəsi</translation> <translation id="8321837372750396788">Bu <ph name="DEVICE_TYPE" /> <ph name="MANAGER" /> tərəfindən idarə ediləcək.</translation> @@ -8272,7 +8285,6 @@ <translation id="9050666287014529139">Parol ifadəsi</translation> <translation id="9052404922357793350">Blok etməyə davam edin</translation> <translation id="9053563360605707198">Hər iki tərəfində çap edin</translation> -<translation id="9053893665344928494">Seçimi yadda saxlayın</translation> <translation id="9055636786322918818">RC4 şifrələməsini tətbiq edin. RC4 şifrələri təhlükəli olduğu üçün bu seçimdən istifadə etmək riski artırır.</translation> <translation id="9056810968620647706">Heç bir uyğunluq tapılmadı.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> aşağıdakı məzmuna giriş etmək istəyir:</translation> @@ -8424,6 +8436,7 @@ <translation id="9203398526606335860">&Profilləşdirmə aktivdir</translation> <translation id="9203904171912129171">Cihaz seçin</translation> <translation id="9206889157914079472">Kilid ekranından stilus ilə qeyd aparılması</translation> +<translation id="9208192193641542858">Lokal data köhnə parolunuzla qorunur. Parolunuzu bu yaxınlarda dəyişmisinizsə, köhnə parolunuzu yenidən sınayın.</translation> <translation id="9209563766569767417">Linux konteynerinin quraşdırılması yoxlanılır</translation> <translation id="9209689095351280025">Saytlar vebdə sizi izləyən kukilərdən istifadə edə bilmir</translation> <translation id="9211177926627870898">Güncəlləmə tələb olunur</translation>
diff --git a/chrome/app/resources/generated_resources_be.xtb b/chrome/app/resources/generated_resources_be.xtb index 2277dde4..c525eff 100644 --- a/chrome/app/resources/generated_resources_be.xtb +++ b/chrome/app/resources/generated_resources_be.xtb
@@ -8304,7 +8304,6 @@ <translation id="9050666287014529139">Фраза-пароль</translation> <translation id="9052404922357793350">Працягнуць блакіроўку</translation> <translation id="9053563360605707198">Друк на абодвух баках</translation> -<translation id="9053893665344928494">Запомніць мой выбар</translation> <translation id="9055636786322918818">Уключыць шыфраванне RC4. Выкарыстанне гэтага параметра павялічвае рызыкі з-за небяспечнасці шыфраў RC4.</translation> <translation id="9056810968620647706">Супадзенняў не знойдзена.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> запытвае доступ да наступнага змесціва:</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index fe88009..139e919b 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Сертификатът, който се изисква от мрежата „<ph name="NETWORK_NAME" />“, не е инсталиран или вече не е валиден. Моля, получете нов сертификат и опитайте пак да се свържете.</translation> <translation id="1375321115329958930">Запазени пароли</translation> <translation id="1375557162880614858">Искате ли да активирате ChromeVox – вградения екранен четец на ChromeOS Flex?</translation> +<translation id="1375938286942050085">Настройването завърши! Сега подгответе устройството си за игри</translation> <translation id="137651782282853227">Тук ще се покажат запазените адреси</translation> <translation id="1376771218494401509">Наименуване на &прозореца...</translation> <translation id="1377600615067678409">Пропускане засега</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Да се възстанови ли стандартната страница при стартиране?</translation> <translation id="1388253969141979417">Сайтове с разрешение за използване на микрофона ви</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ще се рестартира, когато актуализациите завършат.</translation> +<translation id="1389601498324964367">Хранилище, управлявано чрез квота</translation> <translation id="139013308650923562">Разрешено е използването на шрифтовете, инсталирани на устройството ви</translation> <translation id="1390548061267426325">Отваряне като нормален раздел</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> няма разрешение да отпечатва чрез <ph name="PRINTER_NAME" />. Моля, обърнете се към администратора си.</translation> @@ -1071,6 +1073,7 @@ <translation id="1992924914582925289">Премахване от устройството</translation> <translation id="1994173015038366702">URL адрес на сайт</translation> <translation id="1995916364271252349">Контролира каква информация могат да използват и показват сайтовете (местоположение, камера, изскачащи прозорци и др.)</translation> +<translation id="1997433994358798851">Chrome се нуждае от разрешение да използва Bluetooth, за да се свърже с устройството ви</translation> <translation id="1997616988432401742">Вашите сертификати</translation> <translation id="1999115740519098545">При стартиране</translation> <translation id="2000419248597011803">Изпраща някои „бисквитки“ и заявките за търсене от адресната лента и полето за търсене до стандартната ви търсеща машина</translation> @@ -1735,6 +1738,7 @@ <translation id="25899519884572181">Изход от режима за четене</translation> <translation id="2593499352046705383">Преди да започнете, уверете се, че имате резервно копие на данните си. При инсталирането на <ph name="DEVICE_OS" /> твърдият ви диск ще бъде презаписан. Научете повече на адрес g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Потърсете с Google или въведете URL адрес</translation> +<translation id="2599048253926156421">Потребителското име е копирано в буферната памет</translation> <translation id="2602501489742255173">Прекарайте пръст нагоре, за да започнете</translation> <translation id="2603115962224169880">Почистване на компютъра</translation> <translation id="2603355571917519942">Функцията Voice Match е готова за използване</translation> @@ -1958,6 +1962,7 @@ <translation id="2804043232879091219">Алтернативният браузър не можа да се отвори</translation> <translation id="2804667941345577550">Ще излезете от профила си в този сайт, включително в отворените раздели</translation> <translation id="2804680522274557040">Камерата е изключена</translation> +<translation id="280518252911523675">Ако продължите, без да въведете старата си парола, локалните ви данни ще бъдат изтрити. Ще влезете с профила си в Google, за да настроите този потребител отново.</translation> <translation id="2805539617243680210">Всичко е готово!</translation> <translation id="2805646850212350655">Шифроване на файлова система от Microsoft</translation> <translation id="2805756323405976993">Приложения</translation> @@ -3074,6 +3079,7 @@ <translation id="3895090224522145010">Потребителско име за Kerberos</translation> <translation id="389521680295183045">Сайтовете могат да извеждат запитване за разпознаване на това кога използвате устройството си активно</translation> <translation id="3897298432557662720">{COUNT,plural, =1{изображение}other{# изображения}}</translation> +<translation id="3897746662269329507">Устройството ви <ph name="DEVICE_TYPE" /> е създадено за игри. Сега ще се отвори приложението Explore. То ви дава възможност да осъществявате достъп до стотици от най-новите игри, да преглеждате оферти за тях и да откривате функции за игри, които се предлагат с устройството ви.</translation> <translation id="3898233949376129212">Език на устройството</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> иска да <ph name="FIRST_PERMISSION" /> и <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Изберете клавиатура</translation> @@ -3224,6 +3230,7 @@ <translation id="4033471457476425443">Добавяне на нова папка</translation> <translation id="4033711848170683365">Данните за сърфирането ще се изтрият за постоянно от това устройство. Профилите в Google в този потребителски профил може да се използват от други приложения на вашия <ph name="DEVICE_TYPE" />. Можете да премахнете тези профили от <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">В защитените сайтове може да има незащитено вградено съдържание, например изображения или мрежови рамки</translation> +<translation id="4034741552964543387">Продължаване без локални данни</translation> <translation id="4034824040120875894">Принтер</translation> <translation id="4035758313003622889">Мени&джър на задачите</translation> <translation id="4035877632587724847">Забраняване</translation> @@ -3415,6 +3422,7 @@ <translation id="4242533952199664413">Отваряне на настройките</translation> <translation id="4242577469625748426">Настройките за правила не бяха инсталирани успешно на устройството: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Принтерът е поставен на пауза</translation> +<translation id="424423026762293842">Възстановяване на локалните ви данни</translation> <translation id="4244238649050961491">Намиране на още приложения за писалка</translation> <translation id="4246980464509998944">Допълнителни коментари:</translation> <translation id="424726838611654458">Отваряне винаги в Adobe Reader</translation> @@ -4974,6 +4982,7 @@ <translation id="5792728279623964091">Моля, докоснете бутона за захранване</translation> <translation id="5793339252089865437">Ако изтеглите актуализацията през мобилната си мрежа, може да бъдете таксувани допълнително.</translation> <translation id="5793420564274426163">Потвърждение за сдвояване</translation> +<translation id="5793430094159150686">Паролата ви е променена. За да възстановите локалните си данни, трябва да въведете старата.</translation> <translation id="5794034487966529952">В работния кът „<ph name="DESK_TITLE" />“ има <ph name="NUM_BROWSERS" /> отворени прозорци на браузъра</translation> <translation id="5794414402486823030">Отваряне винаги със системния визуализатор</translation> <translation id="5794700615121138172">Споделяне на папки в Linux</translation> @@ -5898,6 +5907,7 @@ <translation id="6700093763382332031">Заключване на SIM картата за мобилна мрежа</translation> <translation id="6700480081846086223">Предаване на <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Потребителският профил не можа да се зареди.</translation> +<translation id="6701824422332982935">Презаредете страницата, за да използвате тези разширения</translation> <translation id="6702639462873609204">&Редактиране...</translation> <translation id="6703212423117969852">Можете да опитате отново по-късно в Chrome.</translation> <translation id="6703254819490889819">Възстановяване от резервно копие</translation> @@ -7125,6 +7135,7 @@ <translation id="7903742244674067440">Разполагате със сертификати, които идентифицират тези сертифициращи органи</translation> <translation id="7903925330883316394">Помощен процес: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Портовете в Linux да бъдат достъпни за други устройства в мрежата ви.</translation> +<translation id="7906440585529721295">Локалните данни ще бъдат изтрити</translation> <translation id="7907837847548254634">Бързо открояване на обекта, върху който е поставен фокусът</translation> <translation id="7908378463497120834">За съжаление поне един дял на външното ви устройство за съхранение не можа да бъде свързан.</translation> <translation id="7909324225945368569">Преименуване на потребителския ви профил</translation> @@ -7463,6 +7474,7 @@ <translation id="822050276545350872">Оттук нататък не се изисква чакане</translation> <translation id="8221491193165283816">Обикновено блокирате известията. Кликнете тук, за да разрешите на този сайт да ви изпраща известия.</translation> <translation id="822347941086490485">Търсят се HID устройства...</translation> +<translation id="8223573963214454788">Продължаване и изтриване на данните</translation> <translation id="8225046344534779393">Проверете връзката с интернет</translation> <translation id="8225265270453771718">Споделяне на прозорец на приложение</translation> <translation id="8226222018808695353">Забранено</translation> @@ -7563,6 +7575,7 @@ <translation id="8314381333424235892">Разширението липсва или е деинсталирано</translation> <translation id="831440797644402910">Папката не може да се отвори</translation> <translation id="8314835274931377415">Да започне ли настройването на „Достъп с превключване“?</translation> +<translation id="8317582043908962055">Разпознаване на текста в &PDF файла</translation> <translation id="8317671367883557781">Добавяне на мрежова връзка</translation> <translation id="8319414634934645341">Удължена употреба на ключа</translation> <translation id="8321837372750396788">Това устройство <ph name="DEVICE_TYPE" /> ще се управлява от <ph name="MANAGER" />.</translation> @@ -8296,7 +8309,6 @@ <translation id="9050666287014529139">Парола</translation> <translation id="9052404922357793350">Продължаване на блокирането</translation> <translation id="9053563360605707198">Двустранно отпечатване</translation> -<translation id="9053893665344928494">Запомняне на избора ми</translation> <translation id="9055636786322918818">Задължително прилагане на RC4 шифроване. Използването на тази опция увеличава риска, тъй като шифрите RC4 са несигурни.</translation> <translation id="9056810968620647706">Няма намерени съответствия.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> иска достъп до следното съдържание:</translation> @@ -8448,6 +8460,7 @@ <translation id="9203398526606335860">&Профилирането е активирано</translation> <translation id="9203904171912129171">Избор на устройство</translation> <translation id="9206889157914079472">Водене на бележки с писалка от заключения екран</translation> +<translation id="9208192193641542858">Локалните данни са защитени със старата ви парола. Ако наскоро сте променили паролата си, опитайте отново със старата.</translation> <translation id="9209563766569767417">Настройките на контейнера за Linux се проверяват</translation> <translation id="9209689095351280025">Сайтовете не могат да използват „бисквитки“, които ви следят в мрежата</translation> <translation id="9211177926627870898">Изисква се актуализация</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index 293351b..b8553d6 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -8316,7 +8316,6 @@ <translation id="9050666287014529139">পাসফ্রেজ</translation> <translation id="9052404922357793350">ব্লক করা চালিয়ে যান</translation> <translation id="9053563360605707198">দুটি দিকেই প্রিন্ট</translation> -<translation id="9053893665344928494">আমার পছন্দ মনে রাখুন</translation> <translation id="9055636786322918818">RC4 এনক্রিপশন চালু করুন। এই বিকল্পটির ব্যবহার ঝুঁকি বাড়ায় কারণ RC4 সাইফারটি নিরাপদ নয়।</translation> <translation id="9056810968620647706">কোন মিল খুঁজে পাওয়া যায় নি৷</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> নিচের কন্টেন্ট অ্যাক্সেস করতে চাইছে:</translation>
diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb index c189e6d..bf4ae38f 100644 --- a/chrome/app/resources/generated_resources_bs.xtb +++ b/chrome/app/resources/generated_resources_bs.xtb
@@ -8315,7 +8315,6 @@ <translation id="9050666287014529139">Zaporka</translation> <translation id="9052404922357793350">Nastavi blokirati</translation> <translation id="9053563360605707198">Štampaj obostrano</translation> -<translation id="9053893665344928494">Zapamti moj izbor</translation> <translation id="9055636786322918818">Nametni RC4 šifriranje. Koristeći ovu opciju povećavate rizik jer je RCR4 šifriranje nesigurno.</translation> <translation id="9056810968620647706">Nije pronađeno nijedno podudaranje.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> želi pristupiti sljedećem sadržaju:</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 587df28..c28d9f6 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -8281,7 +8281,6 @@ <translation id="9050666287014529139">Frase de contrasenya</translation> <translation id="9052404922357793350">Continua bloquejant</translation> <translation id="9053563360605707198">Imprimeix per les dues bandes</translation> -<translation id="9053893665344928494">Recorda la meva tria</translation> <translation id="9055636786322918818">Força l'encriptació RC4. L'ús d'aquesta opció augmenta el risc, ja que els xifratges RC4 no són segurs.</translation> <translation id="9056810968620647706">No s'ha trobat cap coincidència.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> vol accedir al contingut següent:</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 8eeddb0..c11b595b 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -8297,7 +8297,6 @@ <translation id="9050666287014529139">Heslová fráze</translation> <translation id="9052404922357793350">Pokračovat v blokování</translation> <translation id="9053563360605707198">Oboustranný tisk</translation> -<translation id="9053893665344928494">Zapamatovat si výběr</translation> <translation id="9055636786322918818">Vynutit šifrování RC4. Použití této možnosti zvyšuje riziko, protože šifry RC4 nejsou bezpečné.</translation> <translation id="9056810968620647706">Nebyly nalezeny žádné shody.</translation> <translation id="9057007989365783744">Uživatel <ph name="SUPERVISED_USER_NAME" /> žádá o přístup k následujícímu obsahu:</translation>
diff --git a/chrome/app/resources/generated_resources_cy.xtb b/chrome/app/resources/generated_resources_cy.xtb index 0fd5f4b4..585c9377 100644 --- a/chrome/app/resources/generated_resources_cy.xtb +++ b/chrome/app/resources/generated_resources_cy.xtb
@@ -8325,7 +8325,6 @@ <translation id="9050666287014529139">Cyfrinymadrodd</translation> <translation id="9052404922357793350">Parhau i rwystro</translation> <translation id="9053563360605707198">Argraffwch ar y ddwy ochr</translation> -<translation id="9053893665344928494">Cofio fy newis</translation> <translation id="9055636786322918818">Gorfodi amgryptio RC4. Mae defnyddio'r opsiwn hwn yn cynyddu'ch risg, gan fod y seiffrau RC4 yn anniogel.</translation> <translation id="9056810968620647706">Ni chanfuwyd unrhyw ganlyniadau sy'n cyfateb.</translation> <translation id="9057007989365783744">Mae <ph name="SUPERVISED_USER_NAME" /> am gael mynediad at y cynnwys canlynol:</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index ea6db35..8026e3b 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -8315,7 +8315,6 @@ <translation id="9050666287014529139">Adgangssætning</translation> <translation id="9052404922357793350">Fortsæt blokering</translation> <translation id="9053563360605707198">Udskriv på begge sider</translation> -<translation id="9053893665344928494">Husk mit valg</translation> <translation id="9055636786322918818">Gennemtving RC4-kryptering. Du løber en større risiko, hvis du vælger denne mulighed, da RC4-krypteringsalgoritmerne er usikre.</translation> <translation id="9056810968620647706">Der blev ikke fundet resultater.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> anmoder om adgang til følgende indhold:</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 8b305178..c470322 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">Das vom Netzwerk „<ph name="NETWORK_NAME" />“ benötigte Zertifikat ist entweder nicht installiert oder nicht mehr gültig. Bitte fordere ein neues Zertifikat an und versuche es erneut.</translation> <translation id="1375321115329958930">Gespeicherte Passwörter</translation> <translation id="1375557162880614858">Möchtest du ChromeVox, den integrierten Screenreader für Chrome OS Flex, aktivieren?</translation> +<translation id="1375938286942050085">Die Einrichtung ist abgeschlossen! Bereite dein Gerät als Nächstes aufs Gaming vor</translation> <translation id="137651782282853227">Hier werden gespeicherte Adressen angezeigt</translation> <translation id="1376771218494401509">Fenster &benennen…</translation> <translation id="1377600615067678409">Zunächst überspringen</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">"Beim Start"-Standardseite wiederherstellen?</translation> <translation id="1388253969141979417">Dürfen mein Mikrofon verwenden</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> wird neu gestartet, wenn die Updates abgeschlossen sind.</translation> +<translation id="1389601498324964367">Kontingentierter Speicherplatz</translation> <translation id="139013308650923562">Darf auf meinem Gerät installierte Schriftarten verwenden</translation> <translation id="1390548061267426325">In normalem Tab öffnen</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> ist nicht autorisiert, über den Drucker „<ph name="PRINTER_NAME" />“ zu drucken. Bitte wende dich an deinen Administrator.</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">Vom Gerät entfernen</translation> <translation id="1994173015038366702">Website-URL</translation> <translation id="1995916364271252349">Welche Informationen Websites nutzen und anzeigen dürfen (z. B. Standort, Kamera, Pop-ups)</translation> +<translation id="1997433994358798851">Chrome benötigt eine Berechtigung, um sich mit deinem Gerät über Bluetooth zu verbinden</translation> <translation id="1997616988432401742">Meine Zertifikate</translation> <translation id="1999115740519098545">Beim Start</translation> <translation id="2000419248597011803">Suchanfragen, die in die Adressleiste und das Suchfeld eingegeben wurden, sowie einige Cookies werden an deine Standardsuchmaschine gesendet</translation> @@ -1721,6 +1724,7 @@ <translation id="25899519884572181">Lesemodus deaktivieren</translation> <translation id="2593499352046705383">Erstelle vor der Installation auf jeden Fall ein Back-up deiner Daten. Wenn du <ph name="DEVICE_OS" /> installierst, werden die Daten auf deiner Festplatte überschrieben. Weitere Informationen findest du unter g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Bei Google suchen oder URL eingeben</translation> +<translation id="2599048253926156421">Nutzername in Zwischenablage kopiert</translation> <translation id="2602501489742255173">Zum Starten nach oben wischen</translation> <translation id="2603115962224169880">Computer bereinigen</translation> <translation id="2603355571917519942">Voice Match ist bereit</translation> @@ -1944,6 +1948,7 @@ <translation id="2804043232879091219">Der alternative Browser konnte nicht geöffnet werden</translation> <translation id="2804667941345577550">Du wirst von dieser Website abgemeldet, auch in offenen Tabs</translation> <translation id="2804680522274557040">Kamera ausgeschaltet</translation> +<translation id="280518252911523675">Wenn du fortfährst, ohne dein altes Passwort einzugeben, werden deine lokalen Daten gelöscht. Melde dich in diesem Fall mit deinem Google-Konto an, um diesen Nutzer noch einmal einzurichten.</translation> <translation id="2805539617243680210">Fertig!</translation> <translation id="2805646850212350655">Verschlüsselndes Microsoft-Dateisystem</translation> <translation id="2805756323405976993">Apps</translation> @@ -2532,7 +2537,7 @@ <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">Für diese Website sind keine Passwörter gespeichert</translation> <translation id="3404249063913988450">Bildschirmschoner aktivieren</translation> -<translation id="3405664148539009465">Schriftart anpassen</translation> +<translation id="3405664148539009465">Schriftarten anpassen</translation> <translation id="3405763860805964263">...</translation> <translation id="3406290648907941085">Dürfen Virtual-Reality-Geräte und ‑Daten verwenden</translation> <translation id="3406396172897554194">Anhand einer Sprache oder Eingabemethode suchen</translation> @@ -3059,6 +3064,7 @@ <translation id="3895090224522145010">Kerberos-Nutzername</translation> <translation id="389521680295183045">Websites dürfen nachfragen, ob sie Informationen zu meiner aktiven Nutzung dieses Geräts abrufen dürfen</translation> <translation id="3897298432557662720">{COUNT,plural, =1{ein Bild}other{# Bilder}}</translation> +<translation id="3897746662269329507">Dein <ph name="DEVICE_TYPE" /> eignet sich perfekt zum Spielen. Als Nächstes öffnet sich die App „Entdecken“. Dort kannst du auf Hunderte von aktuellen Spielen zugreifen, dir Gaming-Angebote ansehen und Gaming-Funktionen entdecken, die auf deinem Gerät verfügbar sind.</translation> <translation id="3898233949376129212">Sprache des Geräts</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> möchte: <ph name="FIRST_PERMISSION" /> und <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Tastatur auswählen</translation> @@ -3209,6 +3215,7 @@ <translation id="4033471457476425443">Neuen Ordner hinzufügen</translation> <translation id="4033711848170683365">Dadurch werden Browserdaten dauerhaft von diesem Gerät gelöscht. Die Google-Konten in diesem Profil können von anderen Apps auf deinem <ph name="DEVICE_TYPE" /> verwendet werden. Du kannst diese Konten unter <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> entfernen.</translation> <translation id="4033963223187371752">Sichere Websites können Inhalte wie Bilder oder Webframes einbetten, die nicht sicher sind</translation> +<translation id="4034741552964543387">Ohne lokale Daten fortfahren</translation> <translation id="4034824040120875894">Drucker</translation> <translation id="4035758313003622889">&Taskmanager</translation> <translation id="4035877632587724847">Nicht zulassen</translation> @@ -3400,6 +3407,7 @@ <translation id="4242533952199664413">Einstellungen öffnen</translation> <translation id="4242577469625748426">Fehler beim Installieren der Richtlinieneinstellungen auf dem Gerät: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Drucker pausiert</translation> +<translation id="424423026762293842">Lokale Daten wiederherstellen</translation> <translation id="4244238649050961491">Mehr Eingabestift-Apps suchen</translation> <translation id="4246980464509998944">Zusätzliche Kommentare:</translation> <translation id="424726838611654458">Immer mit Adobe Reader öffnen</translation> @@ -4955,6 +4963,7 @@ <translation id="5792728279623964091">Tippe auf die Ein/Aus-Taste</translation> <translation id="5793339252089865437">Wenn du das Update über dein Mobilfunknetz herunterlädst, können zusätzliche Gebühren anfallen.</translation> <translation id="5793420564274426163">Kopplung bestätigen</translation> +<translation id="5793430094159150686">Dein Passwort wurde geändert. Um deine lokalen Daten wiederherzustellen, musst du dein altes Passwort eingeben.</translation> <translation id="5794034487966529952">Auf dem Desktop „<ph name="DESK_TITLE" />“ sind <ph name="NUM_BROWSERS" /> Browserfenster geöffnet</translation> <translation id="5794414402486823030">Immer mit System Viewer öffnen</translation> <translation id="5794700615121138172">Freigegebene Linux-Ordner</translation> @@ -5878,6 +5887,7 @@ <translation id="6700093763382332031">Sperre für SIM-Karte</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> übertragen</translation> <translation id="6701535245008341853">Profil konnte nicht geladen werden.</translation> +<translation id="6701824422332982935">Seite aktualisieren, um diese Erweiterungen zu verwenden</translation> <translation id="6702639462873609204">&Bearbeiten...</translation> <translation id="6703212423117969852">Du kannst es später in Chrome noch einmal versuchen.</translation> <translation id="6703254819490889819">Sicherung wiederherstellen</translation> @@ -7104,6 +7114,7 @@ <translation id="7903742244674067440">Deine gespeicherten Zertifikate identifizieren diese Zertifizierungsstellen</translation> <translation id="7903925330883316394">Dienstprogramm: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Hier kannst du Linux-Ports für andere Geräte in deinem Netzwerk verfügbar machen.</translation> +<translation id="7906440585529721295">Lokale Daten werden gelöscht</translation> <translation id="7907837847548254634">Fokussiertes Element kurz hervorheben</translation> <translation id="7908378463497120834">Mindestens eine Partition auf deinem externen Speichergerät konnte nicht bereitgestellt werden.</translation> <translation id="7909324225945368569">Profil umbenennen</translation> @@ -7442,6 +7453,7 @@ <translation id="822050276545350872">Ab jetzt ist Schluss mit Warten</translation> <translation id="8221491193165283816">Normalerweise blockierst du Benachrichtigungen. Klicke hier, wenn du von dieser Website Benachrichtigungen erhalten möchtest.</translation> <translation id="822347941086490485">HID-Geräte werden gesucht…</translation> +<translation id="8223573963214454788">Fortfahren und Daten löschen</translation> <translation id="8225046344534779393">Internetverbindung prüfen</translation> <translation id="8225265270453771718">Anwendungsfenster freigeben</translation> <translation id="8226222018808695353">Unzulässig</translation> @@ -7542,6 +7554,7 @@ <translation id="8314381333424235892">Erweiterung fehlt oder wurde deinstalliert</translation> <translation id="831440797644402910">Dieser Ordner kann nicht geöffnet werden</translation> <translation id="8314835274931377415">Einrichtung des Schalterzugriffs starten?</translation> +<translation id="8317582043908962055">P&DF-Text erkennen</translation> <translation id="8317671367883557781">Netzwerkverbindung hinzufügen</translation> <translation id="8319414634934645341">Erweiterte Schlüsselverwendung</translation> <translation id="8321837372750396788">Dieses Gerät (<ph name="DEVICE_TYPE" />) wird nun von <ph name="MANAGER" /> verwaltet.</translation> @@ -8275,7 +8288,6 @@ <translation id="9050666287014529139">Passphrase</translation> <translation id="9052404922357793350">Weiterhin blockieren</translation> <translation id="9053563360605707198">Beidseitig drucken</translation> -<translation id="9053893665344928494">Meine Auswahl merken</translation> <translation id="9055636786322918818">RC4-Verschlüsselung durchsetzen. Mit dieser Option ist ein höheres Risiko verbunden, da RC4-Verschlüsselungen nicht sicher sind.</translation> <translation id="9056810968620647706">Keine Übereinstimmungen gefunden.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> möchte auf die folgenden Inhalte zugreifen:</translation> @@ -8427,6 +8439,7 @@ <translation id="9203398526606335860">&Profilerstellung aktiviert</translation> <translation id="9203904171912129171">Gerät auswählen</translation> <translation id="9206889157914079472">Notizen mit Eingabestift auf Sperrbildschirm</translation> +<translation id="9208192193641542858">Lokale Daten werden durch dein altes Passwort geschützt. Wenn du kürzlich dein Passwort geändert hast, versuche es noch einmal mit deinem alten Passwort.</translation> <translation id="9209563766569767417">Einrichtung des Linux-Containers wird geprüft</translation> <translation id="9209689095351280025">Websites können keine Cookies nutzen, die deine Webaktivitäten erfassen</translation> <translation id="9211177926627870898">Aktualisierung erforderlich</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index ef94a93..108216e 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -8310,7 +8310,6 @@ <translation id="9050666287014529139">Φράση πρόσβασής σας</translation> <translation id="9052404922357793350">Συνέχιση αποκλεισμού</translation> <translation id="9053563360605707198">Εκτύπωση και στις δύο πλευρές</translation> -<translation id="9053893665344928494">Απομνημόνευση της επιλογής μου</translation> <translation id="9055636786322918818">Να επιβάλλεται η κρυπτογράφηση RC4. Η χρήση αυτής της επιλογής αυξάνει τον κίνδυνο, επειδή η κρυπτογράφηση RC4 δεν είναι ασφαλής.</translation> <translation id="9056810968620647706">Δεν βρέθηκαν αντιστοιχίες.</translation> <translation id="9057007989365783744">Ο χρήστης <ph name="SUPERVISED_USER_NAME" /> θέλει να αποκτήσει πρόσβαση στο παρακάτω περιεχόμενο:</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index dbef1cb..c81ff17 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2332,7 +2332,7 @@ <translation id="3151562827395986343">Clear history, cookies, cache and more</translation> <translation id="3151786313568798007">Orientation</translation> <translation id="3152356229013609796">View, dismiss and reply to your phone's notifications</translation> -<translation id="3157387275655328056">Add to Reading List</translation> +<translation id="3157387275655328056">Add to reading list</translation> <translation id="3157931365184549694">Restore</translation> <translation id="3158033540161634471">Set up your fingerprint</translation> <translation id="3158770568048368350">This may cause your mobile network to briefly disconnect</translation> @@ -6091,7 +6091,7 @@ <translation id="686609795364435700">Quiet</translation> <translation id="686664946474413495">Colour temperature</translation> <translation id="6867086642466184030">Other apps are set to open the same links as <ph name="APP_NAME" />. This will disable <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />, <ph name="APP_NAME_4" /> and <ph name="NUMBER_OF_OTHER_APPS" /> other apps from opening supported links.</translation> -<translation id="6867400383614725881">New Incognito tab</translation> +<translation id="6867400383614725881">New incognito tab</translation> <translation id="6868934826811377550">See details.</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">The password that you entered was rejected by the server.</translation> @@ -8311,7 +8311,6 @@ <translation id="9050666287014529139">Passphrase</translation> <translation id="9052404922357793350">Continue blocking</translation> <translation id="9053563360605707198">Print on both sides</translation> -<translation id="9053893665344928494">Remember my choice</translation> <translation id="9055636786322918818">Enforce RC4 encryption. Using this option increases your risk, as the RC4 ciphers are insecure.</translation> <translation id="9056810968620647706">No matches were found.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> wants to access the following content:</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index e5feba4..3446095 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">El certificado que requiere la red "<ph name="NETWORK_NAME" />" no está instalado o ya no es válido. Obtén un nuevo certificado e intenta volver a conectarte.</translation> <translation id="1375321115329958930">Contraseñas guardadas</translation> <translation id="1375557162880614858">¿Deseas activar ChromeVox, el lector de pantalla integrado de Chrome OS Flex?</translation> +<translation id="1375938286942050085">Se completó la configuración; prepara tu dispositivo para jugar</translation> <translation id="137651782282853227">Las direcciones guardadas aparecerán aquí</translation> <translation id="1376771218494401509">Nombrar la &ventana…</translation> <translation id="1377600615067678409">Omitir por ahora</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">¿Deseas restaurar la página de inicio predeterminada?</translation> <translation id="1388253969141979417">Puede usar el micrófono</translation> <translation id="1388728792929436380">Cuando se completen las actualizaciones, se reiniciará el dispositivo <ph name="DEVICE_TYPE" />.</translation> +<translation id="1389601498324964367">Almacenamiento administrado por cuota</translation> <translation id="139013308650923562">Pueden usar las fuentes instaladas en el dispositivo</translation> <translation id="1390548061267426325">Abrir como pestaña normal</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> no se puede imprimir en <ph name="PRINTER_NAME" />. Comunícate con tu administrador.</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">Quitar del dispositivo</translation> <translation id="1994173015038366702">URL del sitio</translation> <translation id="1995916364271252349">Controla qué información pueden usar y mostrar los sitios (ubicación, cámara, ventanas emergentes y más)</translation> +<translation id="1997433994358798851">Chrome necesita permiso para conectarse a tu dispositivo mediante Bluetooth.</translation> <translation id="1997616988432401742">Tus certificados</translation> <translation id="1999115740519098545">Al iniciar</translation> <translation id="2000419248597011803">Envía algunas cookies y búsquedas de la barra de direcciones y del cuadro de búsqueda a tu motor de búsqueda predeterminado</translation> @@ -1721,6 +1724,7 @@ <translation id="25899519884572181">Salir del modo de lectura</translation> <translation id="2593499352046705383">Antes de comenzar, asegúrate de tener una copia de seguridad de los datos. Cuando instales <ph name="DEVICE_OS" />, se reemplazarán todos los datos de tu disco duro. Obtén más información en g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Buscar en Google o escribir una URL</translation> +<translation id="2599048253926156421">Se copió el nombre de usuario en el portapapeles</translation> <translation id="2602501489742255173">Desliza hacia arriba para comenzar</translation> <translation id="2603115962224169880">Limpiar la computadora</translation> <translation id="2603355571917519942">Voice Match está listo</translation> @@ -1944,6 +1948,7 @@ <translation id="2804043232879091219">No se pudo abrir el otro navegador</translation> <translation id="2804667941345577550">Saldrás de este sitio y de las pestañas abiertas</translation> <translation id="2804680522274557040">Se desactivó la cámara</translation> +<translation id="280518252911523675">Si continúas sin ingresar la contraseña anterior, se borrarán los datos locales. Para volver a configurar este usuario, deberás acceder con tu Cuenta de Google.</translation> <translation id="2805539617243680210">¡Todo listo!</translation> <translation id="2805646850212350655">Sistema de encriptación de archivos de Microsoft</translation> <translation id="2805756323405976993">Aplicaciones</translation> @@ -3059,6 +3064,7 @@ <translation id="3895090224522145010">Nombre de usuario de Kerberos</translation> <translation id="389521680295183045">Los sitios pueden solicitar permiso para saber en qué momento estás usando activamente el dispositivo</translation> <translation id="3897298432557662720">{COUNT,plural, =1{una imagen}other{# imágenes}}</translation> +<translation id="3897746662269329507">Tu <ph name="DEVICE_TYPE" /> se diseñó para los videojuegos. A continuación, se abrirá la app de Explorar, donde podrás acceder a cientos de juegos nuevos, ver ofertas y descubrir las funciones dedicadas para videojuegos que incluye tu dispositivo.</translation> <translation id="3898233949376129212">Idioma del dispositivo</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> desea hacer lo siguiente: <ph name="FIRST_PERMISSION" /> y <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Seleccionar teclado</translation> @@ -3209,6 +3215,7 @@ <translation id="4033471457476425443">Agregar carpeta nueva</translation> <translation id="4033711848170683365">Esta acción borrará permanentemente los datos de navegación de este dispositivo. Es posible que otras apps de tu <ph name="DEVICE_TYPE" /> utilicen las Cuentas de Google de este perfil. Puedes quitar esas cuentas en <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Es posible que los sitios seguros incluyan contenido no seguro, como ciertas imágenes o marcos web</translation> +<translation id="4034741552964543387">Continuar sin datos locales</translation> <translation id="4034824040120875894">Impresora</translation> <translation id="4035758313003622889">Adminis&trador de &tareas</translation> <translation id="4035877632587724847">No permitir</translation> @@ -3400,6 +3407,7 @@ <translation id="4242533952199664413">Abrir la configuración</translation> <translation id="4242577469625748426">Se produjo un error al instalar la configuración de la política en el dispositivo: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Se pausó la impresora</translation> +<translation id="424423026762293842">Restablece tus datos locales</translation> <translation id="4244238649050961491">Encontrar más apps para la pluma stylus</translation> <translation id="4246980464509998944">Comentarios adicionales:</translation> <translation id="424726838611654458">Abrir siempre en Adobe Reader</translation> @@ -4957,6 +4965,7 @@ <translation id="5792728279623964091">Presiona el botón de encendido</translation> <translation id="5793339252089865437">Si descargas la actualización mediante tu red móvil, es posible que se apliquen cargos por exceso de datos.</translation> <translation id="5793420564274426163">Confirmación de vinculación</translation> +<translation id="5793430094159150686">Se cambió tu contraseña. Para restablecer los datos locales, debes ingresar la contraseña anterior.</translation> <translation id="5794034487966529952">El escritorio <ph name="DESK_TITLE" /> tiene <ph name="NUM_BROWSERS" /> ventanas del navegador abiertas</translation> <translation id="5794414402486823030">Abrir siempre con el visualizador del sistema</translation> <translation id="5794700615121138172">Carpetas compartidas de Linux</translation> @@ -5881,6 +5890,7 @@ <translation id="6700093763382332031">Bloqueo de la SIM de red móvil</translation> <translation id="6700480081846086223">Transmitir <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">No se pudo obtener el perfil.</translation> +<translation id="6701824422332982935">Vuelve a cargar la página para usar estas extensiones</translation> <translation id="6702639462873609204">&Editar</translation> <translation id="6703212423117969852">Vuelve a intentarlo más tarde desde Chrome.</translation> <translation id="6703254819490889819">Restablecer la copia de seguridad</translation> @@ -7108,6 +7118,7 @@ <translation id="7903742244674067440">Tienes certificados archivados que identifican estas autoridades de certificación</translation> <translation id="7903925330883316394">Utilidad: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Haz que los puertos de Linux estén disponibles para otros dispositivos en tu red.</translation> +<translation id="7906440585529721295">Se borrarán los datos locales</translation> <translation id="7907837847548254634">Destacar brevemente el objeto enfocado</translation> <translation id="7908378463497120834">Lo sentimos, no se pudo activar al menos una partición en tu dispositivo de almacenamiento externo.</translation> <translation id="7909324225945368569">Cambia el nombre de tu perfil</translation> @@ -7446,6 +7457,7 @@ <translation id="822050276545350872">A partir de ahora, no tendrás que esperar</translation> <translation id="8221491193165283816">Por lo general, bloqueas las notificaciones. Si quieres permitir que este sitio las muestre, haz clic aquí.</translation> <translation id="822347941086490485">Buscando dispositivos HID…</translation> +<translation id="8223573963214454788">Continuar y borrar datos</translation> <translation id="8225046344534779393">Comprueba la conexión a Internet.</translation> <translation id="8225265270453771718">Compartir la ventana de una aplicación</translation> <translation id="8226222018808695353">Prohibido</translation> @@ -7546,6 +7558,7 @@ <translation id="8314381333424235892">Falta la extensión o no está instalada</translation> <translation id="831440797644402910">No se puede abrir esta carpeta</translation> <translation id="8314835274931377415">¿Deseas iniciar la configuración de Accesibilidad con interruptores?</translation> +<translation id="8317582043908962055">Reconocer texto de P&DF</translation> <translation id="8317671367883557781">Agregar conexión de red</translation> <translation id="8319414634934645341">Uso extendido de la clave</translation> <translation id="8321837372750396788"><ph name="MANAGER" /> administrará este dispositivo <ph name="DEVICE_TYPE" />.</translation> @@ -8279,7 +8292,6 @@ <translation id="9050666287014529139">Frase de contraseña</translation> <translation id="9052404922357793350">Seguir bloqueando</translation> <translation id="9053563360605707198">Imprimir de ambos lados</translation> -<translation id="9053893665344928494">Recordar mi selección</translation> <translation id="9055636786322918818">Aplica la encriptación RC4. Esta opción es riesgosa, ya que los cifrados RC4 son inseguros.</translation> <translation id="9056810968620647706">No se encontraron coincidencias.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> desea acceder al siguiente contenido:</translation> @@ -8431,6 +8443,7 @@ <translation id="9203398526606335860">&Perfiles activados</translation> <translation id="9203904171912129171">Seleccionar un dispositivo</translation> <translation id="9206889157914079472">Tomar notas con la pluma stylus cuando la pantalla está bloqueada</translation> +<translation id="9208192193641542858">Los datos locales están protegidos por tu contraseña anterior. Si cambiaste tu contraseña recientemente, vuelve a probar con la anterior.</translation> <translation id="9209563766569767417">Revisando la configuración del contenedor de Linux</translation> <translation id="9209689095351280025">Los sitios no pueden usar cookies para rastrearte en la Web</translation> <translation id="9211177926627870898">Actualización necesaria</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index 08110fe..70039d51 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -8294,7 +8294,6 @@ <translation id="9050666287014529139">Frase de contraseña</translation> <translation id="9052404922357793350">Seguir bloqueando</translation> <translation id="9053563360605707198">Imprimir en ambas caras</translation> -<translation id="9053893665344928494">Recordar mi selección</translation> <translation id="9055636786322918818">Fuerza el cifrado RC4. Esta opción aumenta el riesgo, ya que los algoritmos de cifrado de RC4 no son seguros.</translation> <translation id="9056810968620647706">No se ha encontrado ningún resultado coincidente.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> quiere acceder al siguiente contenido:</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 0220a4f..108a476 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -8301,7 +8301,6 @@ <translation id="9050666287014529139">Parool</translation> <translation id="9052404922357793350">Jätka blokeerimist</translation> <translation id="9053563360605707198">Prindi mõlemale poolele</translation> -<translation id="9053893665344928494">Jäta valik meelde</translation> <translation id="9055636786322918818">Jõustatakse RC4-krüpteerimine. Selle valiku kasutamine suurendab riski, kuna RC4-šifrid on ebaturvalised.</translation> <translation id="9056810968620647706">Vasteid ei leitud.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> soovib juurdepääsu järgmisele sisule:</translation>
diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb index 4b0867ad..406595c0 100644 --- a/chrome/app/resources/generated_resources_eu.xtb +++ b/chrome/app/resources/generated_resources_eu.xtb
@@ -8289,7 +8289,6 @@ <translation id="9050666287014529139">Pasaesaldia</translation> <translation id="9052404922357793350">Jarraitu blokeatzen</translation> <translation id="9053563360605707198">Inprimatu bi aldeetatik</translation> -<translation id="9053893665344928494">Gogoratu nire aukera</translation> <translation id="9055636786322918818">Aplikatu RC4 enkriptatzea. Aukera honek arriskua areagotzen du, RC4 enkriptatze-kateak ez baitira seguruak.</translation> <translation id="9056810968620647706">Ez da emaitzarik aurkitu.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> erabiltzaileak eduki hau atzitu nahi du:</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index d995b7f..943f36f 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -8310,7 +8310,6 @@ <translation id="9050666287014529139">گذرعبارت</translation> <translation id="9052404922357793350">ادامه مسدود کردن</translation> <translation id="9053563360605707198">چاپ دورو</translation> -<translation id="9053893665344928494">انتخاب من به خاطر سپرده شود</translation> <translation id="9055636786322918818">اجرای اجباری رمزگذاری RC4. استفاده از این گزینه احتمال خطر را بالا میبرد، زیرا رمزهای RC4 امن نیست.</translation> <translation id="9056810968620647706">مورد منطبقی یافت نشد.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> میخواهد به محتوای زیر دسترسی پیدا کند:</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 71d73d0..a3c206c4 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Verkon <ph name="NETWORK_NAME" /> vaatimaa varmennetta ei ole asennettu tai varmenne ei ole enää voimassa. Hanki uusi varmenne ja yritä muodostaa yhteys uudelleen.</translation> <translation id="1375321115329958930">Tallennetut salasanat</translation> <translation id="1375557162880614858">Haluatko aktivoida ChromeVoxin, ChromeOS Flexin sisäänrakennetun näytönlukijan?</translation> +<translation id="1375938286942050085">Käyttöönotto on valmis. Valmistele laite pelaamista varten</translation> <translation id="137651782282853227">Tässä näytetään tallennetut osoitteet.</translation> <translation id="1376771218494401509">Nimeä &ikkuna…</translation> <translation id="1377600615067678409">Ohita toistaiseksi</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Palautetaanko oletusaloitussivu?</translation> <translation id="1388253969141979417">Mikrofonin käyttö sallittu</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> käynnistyy uudelleen, kun päivitykset ovat valmiit.</translation> +<translation id="1389601498324964367">Kiintiöhallinnoitu tallennustila</translation> <translation id="139013308650923562">Laitteellesi asennettujen fonttien käyttäminen sallittu</translation> <translation id="1390548061267426325">Avaa tavallisella välilehdellä</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> on nyt valtuutettu tulostamaan: <ph name="PRINTER_NAME" />. Ota yhteyttä järjestelmänvalvojaasi.</translation> @@ -1074,6 +1076,7 @@ <translation id="1992924914582925289">Poista laitteelta</translation> <translation id="1994173015038366702">Sivuston URL-osoite</translation> <translation id="1995916364271252349">Koskee tietoja, joita sivustot voivat käyttää ja näyttää (sijainti, kamera, ponnahdusikkunat ja muut)</translation> +<translation id="1997433994358798851">Chrome tarvitsee Bluetoothin käyttöluvan muodostaakseen yhteyden laitteeseen</translation> <translation id="1997616988432401742">Omat varmenteet</translation> <translation id="1999115740519098545">Käynnistyksessä</translation> <translation id="2000419248597011803">Lähettää joitakin osoitekentän ja hakukentän kautta tehtyjä hakuja sekä joitakin evästeitä oletushakukoneellesi</translation> @@ -1241,7 +1244,7 @@ <translation id="2147218225094845757">Piilota sivupaneeli</translation> <translation id="2148219725039824548">Virhe jaon käyttöönotossa. Kyseistä jakoa ei löytynyt verkosta.</translation> <translation id="2148756636027685713">Alustus valmis</translation> -<translation id="2148892889047469596">Suoratoista välilehti</translation> +<translation id="2148892889047469596">Striimaa välilehti</translation> <translation id="2149973817440762519">Muokkaa kirjanmerkkiä</translation> <translation id="2150139952286079145">Hae kohteita</translation> <translation id="2150661552845026580">Lisätäänkö <ph name="EXTENSION_NAME" />?</translation> @@ -1738,6 +1741,7 @@ <translation id="25899519884572181">Poistu lukijatilasta</translation> <translation id="2593499352046705383">Varmista ennen aloittamista, että sinulla on varmuuskopio datastasi. Asentaminen (<ph name="DEVICE_OS" />) korvaa kiintolevysi sisällön. Lue lisää osoitteesta g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Hae Googlesta tai kirjoita URL-osoite</translation> +<translation id="2599048253926156421">Käyttäjätunnus kopioitu leikepöydälle</translation> <translation id="2602501489742255173">Aloita pyyhkäisemällä ylös</translation> <translation id="2603115962224169880">Puhdista tietokone</translation> <translation id="2603355571917519942">Voice Match on valmiina</translation> @@ -1961,6 +1965,7 @@ <translation id="2804043232879091219">Toisen selaimen avaaminen epäonnistui</translation> <translation id="2804667941345577550">Sinut kirjataan ulos tältä sivustolta, myös avoimilta välilehdiltä.</translation> <translation id="2804680522274557040">Kamera poistettiin käytöstä</translation> +<translation id="280518252911523675">Jos jatkat lisäämättä vanhaa salasanaasi, paikallinen datasi poistetaan. Käyttäjän lisääminen uudelleen edellyttää kirjautumista Google-tililläsi.</translation> <translation id="2805539617243680210">Kaikki on valmista.</translation> <translation id="2805646850212350655">Microsoftin tietojärjestelmän salaus</translation> <translation id="2805756323405976993">Sovellukset</translation> @@ -3076,6 +3081,7 @@ <translation id="3895090224522145010">Kerberos-käyttäjänimi</translation> <translation id="389521680295183045">Sivustot saavat pyytää luvan tietää, milloin käytät laitetta aktiivisesti</translation> <translation id="3897298432557662720">{COUNT,plural, =1{kuva}other{# kuvaa}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> on suunniteltu pelaamiseen. Seuraavaksi avautuu Explore-sovellus, jonka kautta voit pelata satoja uusimpia pelejä, löytää tarjouksia ja tutustua laitteen peliominaisuuksiin.</translation> <translation id="3898233949376129212">Laitteen kieli</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> haluaa <ph name="FIRST_PERMISSION" /> ja <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Valitse näppäimistö</translation> @@ -3223,6 +3229,7 @@ <translation id="4033471457476425443">Kansion lisääminen</translation> <translation id="4033711848170683365">Selausdata poistetaan pysyvästi tältä laitteelta. Tämän profiilin Google-tilit voivat olla käytössä muissa laitteen <ph name="DEVICE_TYPE" /> sovelluksissa. Voit poistaa tilit kohdasta <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Turvalliset sivustot voivat upottaa sisältöä, kuten kuvia ja verkkokehyksiä, jotka eivät ole turvallisia</translation> +<translation id="4034741552964543387">Jatka ilman paikallista dataa</translation> <translation id="4034824040120875894">Tulostin</translation> <translation id="4035758313003622889">&Tehtävänhallinta</translation> <translation id="4035877632587724847">Älä salli</translation> @@ -3414,6 +3421,7 @@ <translation id="4242533952199664413">Avaa asetukset</translation> <translation id="4242577469625748426">Käytäntöasetuksien asentaminen laitteelle epäonnistui: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Tulostin on keskeytetty</translation> +<translation id="424423026762293842">Palauta paikallinen data</translation> <translation id="4244238649050961491">Hae lisää näyttökynäsovelluksia</translation> <translation id="4246980464509998944">Lisähuomautuksia:</translation> <translation id="424726838611654458">Avaa aina Adobe Readerissa</translation> @@ -4972,6 +4980,7 @@ <translation id="5792728279623964091">Paina virtapainiketta</translation> <translation id="5793339252089865437">Lisämaksuja voidaan periä, jos lataat päivityksen mobiiliverkossa.</translation> <translation id="5793420564274426163">Laiteparin vahvistus</translation> +<translation id="5793430094159150686">Salasanasi on muuttunut. Sinun on lisättävä vanha salasanasi, jotta voit palauttaa paikallisen datan.</translation> <translation id="5794034487966529952">Työpöydällä <ph name="DESK_TITLE" /> on <ph name="NUM_BROWSERS" /> avointa selainikkunaa</translation> <translation id="5794414402486823030">Avaa aina järjestelmän katselusovelluksella</translation> <translation id="5794700615121138172">Linuxin jaetut kansiot</translation> @@ -5896,6 +5905,7 @@ <translation id="6700093763382332031">Mobiiliyhteyden SIM-lukitus</translation> <translation id="6700480081846086223">Suoratoista <ph name="HOST_NAME" />.</translation> <translation id="6701535245008341853">Profiilin noutaminen epäonnistui.</translation> +<translation id="6701824422332982935">Päivitä sivu, jotta voit käyttää näitä laajennuksia</translation> <translation id="6702639462873609204">Muokkaa...</translation> <translation id="6703212423117969852">Voit yrittää myöhemmin uudelleen Chromessa.</translation> <translation id="6703254819490889819">Palauta varmuuskopiosta</translation> @@ -7122,6 +7132,7 @@ <translation id="7903742244674067440">Olet tallentanut seuraavat varmenteen myöntäjät tunnistavat varmenteet</translation> <translation id="7903925330883316394">Apuohjelma: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Aseta Linux-portit muiden verkossasi olevien laitteiden saataville.</translation> +<translation id="7906440585529721295">Paikallinen data poistetaan</translation> <translation id="7907837847548254634">Korosta hetkeksi kohdistettu kohde</translation> <translation id="7908378463497120834">Ainakaan yhtä ulkoisen tallennustilan osioista ei voitu ottaa käyttöön.</translation> <translation id="7909324225945368569">Profiilin nimeäminen uudelleen</translation> @@ -7460,6 +7471,7 @@ <translation id="822050276545350872">Jatkossa et joudu odottamaan</translation> <translation id="8221491193165283816">Estät yleensä ilmoitukset. Voit antaa tälle sivustolle luvan lähettää ilmoituksia klikkaamalla tätä.</translation> <translation id="822347941086490485">Haetaan HID-laitteita…</translation> +<translation id="8223573963214454788">Jatka ja poista data</translation> <translation id="8225046344534779393">Tarkista internetyhteys</translation> <translation id="8225265270453771718">Jaa sovellusikkuna</translation> <translation id="8226222018808695353">Kielletty</translation> @@ -7560,6 +7572,7 @@ <translation id="8314381333424235892">Puuttuva tai virheellinen laajennus</translation> <translation id="831440797644402910">Kansion avaaminen epäonnistui</translation> <translation id="8314835274931377415">Aloitetaanko Kytkimen käytön käyttöönotto?</translation> +<translation id="8317582043908962055">Tunnista PDF-teksti</translation> <translation id="8317671367883557781">Lisää verkkoyhteys</translation> <translation id="8319414634934645341">Laajennettu avaimen käyttö</translation> <translation id="8321837372750396788"><ph name="MANAGER" /> ylläpitää tätä: <ph name="DEVICE_TYPE" />.</translation> @@ -8293,7 +8306,6 @@ <translation id="9050666287014529139">Tunnuslause</translation> <translation id="9052404922357793350">Estä edelleen</translation> <translation id="9053563360605707198">Tulosta molemmille puolille</translation> -<translation id="9053893665344928494">Muista valinta</translation> <translation id="9055636786322918818">Pakota RC4-salaus. Tämä valinta lisää riskejä, koska RC4-salaustekniikat ovat suojaamattomia.</translation> <translation id="9056810968620647706">Yhtään osumaa ei löytynyt.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> haluaa pääsyn seuraavaan sisältöön:</translation> @@ -8445,6 +8457,7 @@ <translation id="9203398526606335860">&Profilointi on käytössä</translation> <translation id="9203904171912129171">Valitse laite</translation> <translation id="9206889157914079472">Näyttökynä muistiinpanojen tekeminen lukitusnäytöllä</translation> +<translation id="9208192193641542858">Paikallinen data on suojattu vanhalla salasanallasi. Jos olet äskettäin vaihtanut salasanasi, kokeile vanhaa salasanaa uudelleen.</translation> <translation id="9209563766569767417">Tarkistetaan Linux-säilön asetuksia</translation> <translation id="9209689095351280025">Sivustot eivät voi seurata sinua verkossa evästeiden avulla</translation> <translation id="9211177926627870898">Päivitys vaaditaan</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 03778637..806b4f4 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -8317,7 +8317,6 @@ <translation id="9050666287014529139">Passphrase</translation> <translation id="9052404922357793350">Patuloy na i-block</translation> <translation id="9053563360605707198">Mag-print sa magkabilang bahagi</translation> -<translation id="9053893665344928494">Tandaan ang aking pinili</translation> <translation id="9055636786322918818">Ipatupad ang RC4 encryption. Magiging mas mapanganib para sa iyo kapag ginamit ang opsyong ito, dahil hindi secure ang mga RC4 cipher.</translation> <translation id="9056810968620647706">Walang nakitang tugma.</translation> <translation id="9057007989365783744">Gustong i-access ni <ph name="SUPERVISED_USER_NAME" /> ang sumusunod na content:</translation>
diff --git a/chrome/app/resources/generated_resources_fr-CA.xtb b/chrome/app/resources/generated_resources_fr-CA.xtb index ceb62df..518e97c 100644 --- a/chrome/app/resources/generated_resources_fr-CA.xtb +++ b/chrome/app/resources/generated_resources_fr-CA.xtb
@@ -381,6 +381,7 @@ <translation id="1374844444528092021">Le certificat requis par le réseau « <ph name="NETWORK_NAME" /> » n'est pas installé ou n'est plus valide. Veuillez obtenir un nouveau certificat et réessayer de vous connecter.</translation> <translation id="1375321115329958930">Mots de passe enregistrés</translation> <translation id="1375557162880614858">Voulez-vous activer ChromeVox, le lecteur d'écran intégré de Chrome OS Flex?</translation> +<translation id="1375938286942050085">La configuration est terminée! Préparez maintenant votre appareil pour le jeu</translation> <translation id="137651782282853227">Les adresses enregistrées s'afficheront ici</translation> <translation id="1376771218494401509">Nommer la &fenêtre…</translation> <translation id="1377600615067678409">Passer pour l'instant</translation> @@ -395,6 +396,7 @@ <translation id="138784436342154190">Restaurer la page de démarrage par défaut?</translation> <translation id="1388253969141979417">Autorisés à utiliser votre microphone</translation> <translation id="1388728792929436380">L'appareil <ph name="DEVICE_TYPE" /> redémarrera lorsque l'installation des mises à jour sera terminée.</translation> +<translation id="1389601498324964367">Espace de stockage géré par quota</translation> <translation id="139013308650923562">Autorisés à utiliser les polices installées sur votre appareil</translation> <translation id="1390548061267426325">Ouvrir dans un onglet ordinaire</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> n'est pas autorisé à imprimer de documents sur l'imprimante <ph name="PRINTER_NAME" />. Veuillez communiquer avec votre administrateur.</translation> @@ -1064,6 +1066,7 @@ <translation id="1992924914582925289">Retirer de l'appareil</translation> <translation id="1994173015038366702">URL du site</translation> <translation id="1995916364271252349">Gère les données que les sites peuvent utiliser et afficher (position, appareil photo, fenêtres contextuelles et plus)</translation> +<translation id="1997433994358798851">Chrome a besoin d'une autorisation pour utiliser le Bluetooth afin de se connecter à votre appareil</translation> <translation id="1997616988432401742">Vos certificats</translation> <translation id="1999115740519098545">Au démarrage</translation> <translation id="2000419248597011803">Envoie des témoins et des recherches à partir de la barre d'adresse et du champ de recherche à votre moteur de recherche par défaut</translation> @@ -1726,6 +1729,7 @@ <translation id="25899519884572181">Désactiver le mode Lecture</translation> <translation id="2593499352046705383">Avant de commencer, assurez-vous d'avoir une sauvegarde de vos données. L'installation de <ph name="DEVICE_OS" /> écrasera les données présentes sur votre disque dur. Apprenez-en plus à la page g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Effectuez une recherche sur Google ou entrez une adresse URL</translation> +<translation id="2599048253926156421">Nom d'utilisateur copié dans le presse-papiers</translation> <translation id="2602501489742255173">Glissez votre doigt vers le haut pour commencer</translation> <translation id="2603115962224169880">Nettoyer l'ordinateur</translation> <translation id="2603355571917519942">Voice Match est prête à être utilisée</translation> @@ -1949,6 +1953,7 @@ <translation id="2804043232879091219">Impossible d'ouvrir le navigateur secondaire</translation> <translation id="2804667941345577550">Vous serez déconnecté de ce site, y compris dans les onglets ouverts</translation> <translation id="2804680522274557040">Appareil photo désactivé</translation> +<translation id="280518252911523675">Si vous continuez sans entrer votre ancien mot de passe, vos données locales seront supprimées. Vous vous connecterez avec votre compte Google pour reconfigurer cet utilisateur.</translation> <translation id="2805539617243680210">Tout est en ordre!</translation> <translation id="2805646850212350655">Système de fichiers de chiffrement Microsoft</translation> <translation id="2805756323405976993">Applications</translation> @@ -3064,6 +3069,7 @@ <translation id="3895090224522145010">Nom d'utilisateur Kerberos</translation> <translation id="389521680295183045">Les sites peuvent demander à savoir quand vous utilisez activement votre appareil</translation> <translation id="3897298432557662720">{COUNT,plural, =1{une image}one{# image}other{# images}}</translation> +<translation id="3897746662269329507">Votre <ph name="DEVICE_TYPE" /> est conçu pour les jeux vidéo. L'application Explorer va s'ouvrir, et vous pourrez l'utiliser pour accéder à des centaines de jeux récents, voir les offres de jeux et découvrir les fonctionnalités de jeu fournies avec votre appareil.</translation> <translation id="3898233949376129212">Langue de l'appareil</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> veut : <ph name="FIRST_PERMISSION" /> et <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Sélectionner un clavier</translation> @@ -3214,6 +3220,7 @@ <translation id="4033471457476425443">Ajouter un dossier</translation> <translation id="4033711848170683365">Cette action entraînera la suppression définitive des données de navigation sur cet appareil. Les comptes Google de ce profil peuvent être utilisés par d'autres applications de votre <ph name="DEVICE_TYPE" />. Vous pouvez retirer ces comptes dans <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Les sites sécurisés peuvent intégrer du contenu comme des images ou des cadres Web non sécurisés</translation> +<translation id="4034741552964543387">Continuer sans données locales</translation> <translation id="4034824040120875894">Imprimante</translation> <translation id="4035758313003622889">Gestionnaire de &tâches</translation> <translation id="4035877632587724847">Ne pas autoriser</translation> @@ -3405,6 +3412,7 @@ <translation id="4242533952199664413">Ouvrir les paramètres</translation> <translation id="4242577469625748426">Échec de l'installation des paramètres des règles sur l'appareil : <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">L'imprimante est interrompue</translation> +<translation id="424423026762293842">Restaurer vos données locales</translation> <translation id="4244238649050961491">Rechercher d'autres applications de stylet</translation> <translation id="4246980464509998944">Autres commentaires :</translation> <translation id="424726838611654458">Toujours ouvrir dans Adobe Reader</translation> @@ -4962,6 +4970,7 @@ <translation id="5792728279623964091">Veuillez toucher l'interrupteur</translation> <translation id="5793339252089865437">Le téléchargement de la mise à jour par réseau cellulaire pourrait entraîner des frais supplémentaires.</translation> <translation id="5793420564274426163">Confirmation de l'association</translation> +<translation id="5793430094159150686">Votre mot de passe a changé. Pour restaurer vos données locales, vous devez entrer votre ancien mot de passe.</translation> <translation id="5794034487966529952">Il y a <ph name="NUM_BROWSERS" /> fenêtres de navigateur ouvertes sur le bureau <ph name="DESK_TITLE" /></translation> <translation id="5794414402486823030">Toujours ouvrir avec System Viewer</translation> <translation id="5794700615121138172">Dossiers partagés Linux</translation> @@ -5888,6 +5897,7 @@ <translation id="6700093763382332031">Verrouillage de module SIM, réseau cellulaire</translation> <translation id="6700480081846086223">Envoyer le contenu de <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Échec de chargement du profil.</translation> +<translation id="6701824422332982935">Actualiser la page pour utiliser ces extensions</translation> <translation id="6702639462873609204">&Modifier...</translation> <translation id="6703212423117969852">Vous pouvez réessayer plus tard dans Chrome.</translation> <translation id="6703254819490889819">Restaurer la sauvegarde</translation> @@ -7115,6 +7125,7 @@ <translation id="7903742244674067440">Vous disposez de certificats qui identifient ces autorités de certification</translation> <translation id="7903925330883316394">Utilitaire : <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Rendez les ports Linux accessibles aux autres appareils sur votre réseau.</translation> +<translation id="7906440585529721295">Les données locales seront supprimées</translation> <translation id="7907837847548254634">Mettre brièvement en évidence l'objet à l'écran</translation> <translation id="7908378463497120834">Nous sommes désolés, il y a au moins une partition sur votre périphérique externe qui n'est pas installable.</translation> <translation id="7909324225945368569">Renommer votre profil</translation> @@ -7452,6 +7463,7 @@ <translation id="822050276545350872">L'attente est désormais chose du passé</translation> <translation id="8221491193165283816">Vous bloquez habituellement les notifications. Pour autoriser ce site à vous envoyer des notifications, cliquez ici.</translation> <translation id="822347941086490485">Recherche d'appareils HID en cours…</translation> +<translation id="8223573963214454788">Continuer et supprimer des données</translation> <translation id="8225046344534779393">Vérifiez la connexion Internet</translation> <translation id="8225265270453771718">Partager la fenêtre d'une application</translation> <translation id="8226222018808695353">Interdit</translation> @@ -7552,6 +7564,7 @@ <translation id="8314381333424235892">Extension manquante ou désinstallée</translation> <translation id="831440797644402910">Impossible d'ouvrir ce dossier</translation> <translation id="8314835274931377415">Commencer la configuration de Switch Access?</translation> +<translation id="8317582043908962055">Reconnaître le texte en format PDF</translation> <translation id="8317671367883557781">Ajouter une connexion réseau</translation> <translation id="8319414634934645341">Utilisation étendue de la clé</translation> <translation id="8321837372750396788">Ce <ph name="DEVICE_TYPE" /> sera géré par <ph name="MANAGER" />.</translation> @@ -8286,7 +8299,6 @@ <translation id="9050666287014529139">Phrase de passe</translation> <translation id="9052404922357793350">Continuer le blocage</translation> <translation id="9053563360605707198">Imprimer sur les deux côtés</translation> -<translation id="9053893665344928494">Se souvenir de mon choix</translation> <translation id="9055636786322918818">Appliquer le chiffrement RC4. L'utilisation de cette option augmente les risques, car les chiffrements RC4 ne sont pas sécurisés.</translation> <translation id="9056810968620647706">Aucune correspondance trouvée</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> veut accéder au contenu suivant :</translation> @@ -8438,6 +8450,7 @@ <translation id="9203398526606335860">&Profilage activé</translation> <translation id="9203904171912129171">Sélectionner un appareil</translation> <translation id="9206889157914079472">Prise de notes avec un stylet à l'écran de verrouillage</translation> +<translation id="9208192193641542858">Les données locales sont protégées par votre ancien mot de passe. Si vous avez récemment changé votre mot de passe, réessayez avec l'ancien.</translation> <translation id="9209563766569767417">Vérification de la configuration du conteneur Linux en cours…</translation> <translation id="9209689095351280025">Les sites ne peuvent pas utiliser de témoins qui font le suivi de votre activité sur le Web</translation> <translation id="9211177926627870898">Mise à jour requise</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index 508ab99..ffc47a0 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -381,6 +381,7 @@ <translation id="1374844444528092021">Le certificat requis par le réseau "<ph name="NETWORK_NAME" />" n'est pas installé ou n'est plus valide. Veuillez obtenir un nouveau certificat et réessayer de vous connecter.</translation> <translation id="1375321115329958930">Mots de passe enregistrés</translation> <translation id="1375557162880614858">Voulez-vous activer ChromeVox, le lecteur d'écran intégré pour Chrome OS Flex ?</translation> +<translation id="1375938286942050085">La configuration est terminée ! Et si vous prépariez aussi votre appareil pour les jeux vidéo ?</translation> <translation id="137651782282853227">Les adresses enregistrées s'afficheront ici</translation> <translation id="1376771218494401509">Nommer la &fenêtre</translation> <translation id="1377600615067678409">Ignorer pour le moment</translation> @@ -395,6 +396,7 @@ <translation id="138784436342154190">Restaurer la page de démarrage par défaut ?</translation> <translation id="1388253969141979417">Autorisé à utiliser votre micro</translation> <translation id="1388728792929436380">Ce <ph name="DEVICE_TYPE" /> va redémarrer lorsque les mises à jour seront installées.</translation> +<translation id="1389601498324964367">Espace de stockage géré par quota</translation> <translation id="139013308650923562">Autorisés à utiliser les polices installées sur votre appareil</translation> <translation id="1390548061267426325">Ouvrir dans un onglet standard</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> n'est pas autorisé à imprimer sur <ph name="PRINTER_NAME" />. Veuillez contacter votre administrateur.</translation> @@ -1064,6 +1066,7 @@ <translation id="1992924914582925289">Supprimer de l'appareil</translation> <translation id="1994173015038366702">URL du site</translation> <translation id="1995916364271252349">Permet de contrôler les informations que les sites peuvent utiliser et afficher (position, appareil photo, fenêtres pop-up et plus)</translation> +<translation id="1997433994358798851">Vous devez autoriser Chrome à utiliser le Bluetooth pour se connecter à votre appareil</translation> <translation id="1997616988432401742">Vos certificats</translation> <translation id="1999115740519098545">Au démarrage</translation> <translation id="2000419248597011803">Envoie des cookies et des recherches effectuées à partir de la barre d'adresse et du champ de recherche à votre moteur de recherche par défaut</translation> @@ -1725,6 +1728,7 @@ <translation id="25899519884572181">Quitter le mode Lecteur</translation> <translation id="2593499352046705383">Avant de commencer, vérifiez que vous avez une copie de sauvegarde de vos données. L'installation de <ph name="DEVICE_OS" /> va écraser les données de votre disque dur. En savoir plus : g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Rechercher sur Google ou saisir une URL</translation> +<translation id="2599048253926156421">Nom d'utilisateur copié dans le presse-papiers</translation> <translation id="2602501489742255173">Balayez l'écran vers le haut pour démarrer</translation> <translation id="2603115962224169880">Nettoyer l'ordinateur</translation> <translation id="2603355571917519942">Voice Match est prêt</translation> @@ -1948,6 +1952,7 @@ <translation id="2804043232879091219">Impossible d'ouvrir le navigateur secondaire</translation> <translation id="2804667941345577550">Vous allez être déconnecté de ce site, y compris dans les onglets ouverts</translation> <translation id="2804680522274557040">Caméra désactivée</translation> +<translation id="280518252911523675">Si vous continuez sans saisir votre ancien mot de passe, vos données locales seront supprimées. Vous serez connecté à votre compte Google et vous devrez reconfigurer cet utilisateur.</translation> <translation id="2805539617243680210">Tout est prêt !</translation> <translation id="2805646850212350655">Système de fichiers de chiffrement Microsoft </translation> <translation id="2805756323405976993">Applications</translation> @@ -3063,6 +3068,7 @@ <translation id="3895090224522145010">Nom d'utilisateur Kerberos</translation> <translation id="389521680295183045">Les sites peuvent demander à savoir quand vous utilisez activement votre appareil</translation> <translation id="3897298432557662720">{COUNT,plural, =1{une image}one{# image}other{# images}}</translation> +<translation id="3897746662269329507">Votre <ph name="DEVICE_TYPE" /> est conçu pour les jeux vidéo. L'appli Explorer qui va s'ouvrir vous permet d'accéder à des centaines de jeux récents, mais aussi de découvrir des offres relatives aux jeux et des fonctionnalités intégrées à votre appareil.</translation> <translation id="3898233949376129212">Langue de l'appareil</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> souhaite obtenir les autorisations suivantes : <ph name="FIRST_PERMISSION" /> et <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Sélectionner un clavier</translation> @@ -3213,6 +3219,7 @@ <translation id="4033471457476425443">Ajouter un dossier</translation> <translation id="4033711848170683365">Cette action supprimera définitivement les données de navigation de cet appareil. Les comptes Google de ce profil pourront être utilisés par d'autres applis sur votre <ph name="DEVICE_TYPE" />. Vous pouvez supprimer ces comptes dans <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Les sites sécurisés peuvent intégrer du contenu tel que des images ou des cadres Web non sécurisés</translation> +<translation id="4034741552964543387">Continuer sans données locales</translation> <translation id="4034824040120875894">Imprimante</translation> <translation id="4035758313003622889">Gestionnaire de &tâches</translation> <translation id="4035877632587724847">Ne pas autoriser</translation> @@ -3404,6 +3411,7 @@ <translation id="4242533952199664413">Ouvrir les paramètres</translation> <translation id="4242577469625748426">Échec de l'installation des paramètres des règles sur l'appareil : <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Imprimante en veille</translation> +<translation id="424423026762293842">Restaurer vos données locales</translation> <translation id="4244238649050961491">Trouver plus d'applications de stylet</translation> <translation id="4246980464509998944">Autres commentaires :</translation> <translation id="424726838611654458">Toujours ouvrir dans Adobe Reader</translation> @@ -4292,7 +4300,7 @@ <translation id="5121130586824819730">Votre disque dur est saturé. Veuillez enregistrer à un autre emplacement ou libérer de l'espace sur le disque dur.</translation> <translation id="5123433949759960244">Basket-ball</translation> <translation id="5125751979347152379">URL incorrecte</translation> -<translation id="5125967981703109366">À propos de cette carte</translation> +<translation id="5125967981703109366">À propos de cette fiche</translation> <translation id="5126611267288187364">Afficher les modifications</translation> <translation id="5127242257756472928">Non autorisé à utiliser les infos au sujet de vos écrans pour ouvrir et placer des fenêtres</translation> <translation id="5127620150973591153">Code de connexion sécurisée : <ph name="TOKEN" /></translation> @@ -4962,6 +4970,7 @@ <translation id="5792728279623964091">Veuillez appuyer sur le bouton Marche/Arrêt</translation> <translation id="5793339252089865437">Si vous téléchargez la mise à jour via votre réseau mobile, cela peut entraîner des frais de dépassement.</translation> <translation id="5793420564274426163">Confirmation de l'association</translation> +<translation id="5793430094159150686">Votre mot de passe a été modifié. Pour restaurer vos données locales, vous devez saisir votre ancien mot de passe.</translation> <translation id="5794034487966529952"><ph name="NUM_BROWSERS" /> fenêtres de navigateur ouvertes sur le bureau <ph name="DESK_TITLE" /></translation> <translation id="5794414402486823030">Toujours ouvrir avec le lecteur système</translation> <translation id="5794700615121138172">Dossiers partagés par Linux</translation> @@ -5888,6 +5897,7 @@ <translation id="6700093763382332031">Verrouillage de la carte SIM sur mobile</translation> <translation id="6700480081846086223">Caster <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Impossible de charger le profil.</translation> +<translation id="6701824422332982935">Actualisez la page pour utiliser ces extensions</translation> <translation id="6702639462873609204">&Modifier...</translation> <translation id="6703212423117969852">Vous pouvez réessayer plus tard dans Chrome.</translation> <translation id="6703254819490889819">Restaurer une sauvegarde</translation> @@ -6626,7 +6636,7 @@ <translation id="744341768939279100">Créer un profil</translation> <translation id="744366959743242014">Chargement des données en cours. Cette opération peut prendre quelques secondes.</translation> <translation id="7443806024147773267">Accédez à vos mots de passe chaque fois que vous êtes connecté à votre compte Google</translation> -<translation id="7444970023873202833">Redécouvrez encore plus de souvenirs dans Google Photos</translation> +<translation id="7444970023873202833">Découvrez plus de souvenirs dans Google Photos</translation> <translation id="7444983668544353857">Désactiver <ph name="NETWORKDEVICE" /></translation> <translation id="7448430327655618736">Installer automatiquement des applications</translation> <translation id="7449381494541372002">démarrage…</translation> @@ -6943,10 +6953,10 @@ <translation id="7744192722284567281">Détecté lors d'une violation des données</translation> <translation id="7744649840067671761">Appuyez sur un nouveau contacteur ou une nouvelle touche du clavier pour commencer l'association. Appuyez sur un contacteur ou une touche associé(e) pour supprimer l'association.</translation> -<translation id="7746739418892731373">Vous voyez une sélection de photos et de vidéos de votre bibliothèque Google Photos. Vous pouvez contrôler ce qui s'affiche dans cette sélection sur <ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" />. +<translation id="7746739418892731373">Ceci est une sélection de photos et vidéos de votre bibliothèque Google Photos. Vous pouvez contrôler ce qui s'affiche sur <ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" />. <ph name="BREAK" /> <ph name="BREAK" /> - Vous pouvez gérer les paramètres de cette carte dans le menu associé ou voir plus d'options dans "Personnaliser Chrome".</translation> + Vous pouvez gérer les paramètres de cette fiche depuis son menu ou voir plus d'options dans "Personnaliser Chrome".</translation> <translation id="7750228210027921155">Mode PIP (Picture-in-Picture)</translation> <translation id="7751260505918304024">Tout afficher</translation> <translation id="7751619076382363711">Vous n'avez supprimé aucun site</translation> @@ -7115,6 +7125,7 @@ <translation id="7903742244674067440">Certains de vos certificats enregistrés identifient ces autorités de certification.</translation> <translation id="7903925330883316394">Utilitaire : <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Rendre les ports Linux disponibles pour les autres appareils de votre réseau.</translation> +<translation id="7906440585529721295">Les données locales seront supprimées</translation> <translation id="7907837847548254634">Mettre en surbrillance rapidement l'objet ciblé</translation> <translation id="7908378463497120834">Désolé, impossible d'installer au moins une partition de votre périphérique de stockage externe.</translation> <translation id="7909324225945368569">Renommer votre profil</translation> @@ -7453,6 +7464,7 @@ <translation id="822050276545350872">À partir de maintenant, plus besoin d'attendre</translation> <translation id="8221491193165283816">Les notifications sont bloquées par défaut. Pour autoriser ce site à vous envoyer des notifications, cliquez ici.</translation> <translation id="822347941086490485">Recherche d'périphériques HID…</translation> +<translation id="8223573963214454788">Continuer et supprimer les données</translation> <translation id="8225046344534779393">Vérifiez votre connexion Internet</translation> <translation id="8225265270453771718">Partager une fenêtre d'application</translation> <translation id="8226222018808695353">Interdit</translation> @@ -7553,6 +7565,7 @@ <translation id="8314381333424235892">Extension manquante ou non installée</translation> <translation id="831440797644402910">Impossible d'ouvrir ce dossier</translation> <translation id="8314835274931377415">Commencer la configuration de Switch Access ?</translation> +<translation id="8317582043908962055">Reconnaître du texte au format P&DF</translation> <translation id="8317671367883557781">Ajouter une connexion réseau</translation> <translation id="8319414634934645341">Utilisation étendue de la clé</translation> <translation id="8321837372750396788">Votre <ph name="DEVICE_TYPE" /> sera géré par <ph name="MANAGER" />.</translation> @@ -8287,7 +8300,6 @@ <translation id="9050666287014529139">Phrase secrète</translation> <translation id="9052404922357793350">Continuer de bloquer</translation> <translation id="9053563360605707198">Impression recto verso</translation> -<translation id="9053893665344928494">Mémoriser mon choix</translation> <translation id="9055636786322918818">Appliquez le chiffrement RC4. L'activation de cette option est risquée, car les algorithmes de chiffrement RC4 ne sont pas sécurisés.</translation> <translation id="9056810968620647706">Aucune correspondance trouvée</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> veut accéder au contenu suivant :</translation> @@ -8439,6 +8451,7 @@ <translation id="9203398526606335860">&Profilage activé</translation> <translation id="9203904171912129171">Sélectionner un appareil</translation> <translation id="9206889157914079472">Prise de notes avec le stylet depuis l'écran de verrouillage</translation> +<translation id="9208192193641542858">Les données locales sont protégées par votre ancien mot de passe. Si vous avez modifié votre mot de passe récemment, utilisez l'ancien.</translation> <translation id="9209563766569767417">Vérification de la configuration du conteneur Linux…</translation> <translation id="9209689095351280025">Les sites ne peuvent pas utiliser de cookies pour suivre votre activité sur le Web</translation> <translation id="9211177926627870898">Mise à jour requise</translation>
diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb index 13e45376..fe8a473 100644 --- a/chrome/app/resources/generated_resources_gl.xtb +++ b/chrome/app/resources/generated_resources_gl.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">O certificado requirido pola rede "<ph name="NETWORK_NAME" />" non está instalado ou xa non é válido. Obtén un novo certificado e tenta conectarte de novo.</translation> <translation id="1375321115329958930">Contrasinais gardados</translation> <translation id="1375557162880614858">Queres activar ChromeVox, o lector de pantalla integrado en Chrome OS Flex?</translation> +<translation id="1375938286942050085">Completouse a configuración. Agora prepara o dispositivo para xogar</translation> <translation id="137651782282853227">Os enderezos gardados aparecerán aquí</translation> <translation id="1376771218494401509">Nome da &ventá...</translation> <translation id="1377600615067678409">Omitir polo momento</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">Queres restaurar a páxina de inicio predeterminada?</translation> <translation id="1388253969141979417">Sitios que poden usar o micrófono</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> reiniciarase cando se completen as actualizacións.</translation> +<translation id="1389601498324964367">Almacenamento xestionado por cotas</translation> <translation id="139013308650923562">Sitios que teñen permiso para utilizar os tipos de letra instalados no dispositivo</translation> <translation id="1390548061267426325">Abrir como pestana normal</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> non ten a autorización necesaria para enviar documentos á impresora <ph name="PRINTER_NAME" />. Ponte en contacto co teu administrador.</translation> @@ -1062,6 +1064,7 @@ <translation id="1992924914582925289">Quitar do dispositivo</translation> <translation id="1994173015038366702">URL do sitio</translation> <translation id="1995916364271252349">Controla a información que poden utilizar e mostrar os sitios (localización, cámara, ventás emerxentes etc.)</translation> +<translation id="1997433994358798851">Para conectarse ao dispositivo, Chrome precisa permiso para usar o Bluetooth</translation> <translation id="1997616988432401742">Os teus certificados</translation> <translation id="1999115740519098545">No inicio</translation> <translation id="2000419248597011803">Envía buscas e cookies da barra de enderezos e da caixa de busca ao motor de busca predeterminado</translation> @@ -1723,6 +1726,7 @@ <translation id="25899519884572181">Saír do modo de lector</translation> <translation id="2593499352046705383">Antes de comezar, asegúrate de ter unha copia de seguranza dos teus datos. Ao instalar <ph name="DEVICE_OS" /> sobrescribirase a información da unidade de disco duro. Máis información en g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Realiza unha busca en Google ou escribe o URL</translation> +<translation id="2599048253926156421">Copiouse o nome do usuario no portapapeis</translation> <translation id="2602501489742255173">Pasa o dedo cara arriba para comezar</translation> <translation id="2603115962224169880">Fai limpeza no ordenador</translation> <translation id="2603355571917519942">A función Voice Match está lista</translation> @@ -1945,6 +1949,7 @@ <translation id="2804043232879091219">Non se puido abrir o navegador alternativo</translation> <translation id="2804667941345577550">Pecharase sesión neste sitio, aínda que o teñas aberto en pestanas</translation> <translation id="2804680522274557040">Desactivouse a cámara</translation> +<translation id="280518252911523675">Se continúas sen poñer o contrasinal antigo, eliminaranse os datos locais. Iniciarás sesión coa túa Conta de Google para volver configurar este usuario.</translation> <translation id="2805539617243680210">Todo listo</translation> <translation id="2805646850212350655">Sistema de ficheiros de cifrado de Microsoft</translation> <translation id="2805756323405976993">Aplicacións</translation> @@ -3060,6 +3065,7 @@ <translation id="3895090224522145010">Nome de usuario de Kerberos</translation> <translation id="389521680295183045">Os sitios poden pedirche permiso para saber cando estás utilizando o dispositivo de maneira activa</translation> <translation id="3897298432557662720">{COUNT,plural, =1{1 imaxe}other{# imaxes}}</translation> +<translation id="3897746662269329507">O dispositivo (<ph name="DEVICE_TYPE" />) está deseñado para xogar. Vaise abrir a aplicación Explorar. Nela poderás acceder a centos dos xogos máis recentes, ver ofertas de xogos e descubrir as funcións para xogar que ten o teu dispositivo.</translation> <translation id="3898233949376129212">Idioma do dispositivo</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> require permisos para: <ph name="FIRST_PERMISSION" /> e <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Selecciona un teclado</translation> @@ -3210,6 +3216,7 @@ <translation id="4033471457476425443">Engadir un cartafol novo</translation> <translation id="4033711848170683365">Con esta acción eliminaranse permanentemente os datos de navegación deste dispositivo. É posible que outras aplicacións do dispositivo (<ph name="DEVICE_TYPE" />) usen as Contas de Google deste perfil. Podes quitar esas contas en <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Os sitios seguros poden ter inserido contido non seguro (por exemplo, imaxes ou marcos web)</translation> +<translation id="4034741552964543387">Continuar sen datos locais</translation> <translation id="4034824040120875894">Impresora</translation> <translation id="4035758313003622889">Xestor de &tarefas</translation> <translation id="4035877632587724847">Non permitir</translation> @@ -3401,6 +3408,7 @@ <translation id="4242533952199664413">Abrir configuración</translation> <translation id="4242577469625748426">Non se puido instalar a configuración de política no dispositivo: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">A impresora está en pausa</translation> +<translation id="424423026762293842">Restaurar os datos locais</translation> <translation id="4244238649050961491">Buscar máis aplicacións de lapis óptico</translation> <translation id="4246980464509998944">Comentarios adicionais:</translation> <translation id="424726838611654458">Abrir sempre en Adobe Reader</translation> @@ -4956,6 +4964,7 @@ <translation id="5792728279623964091">Toca o botón de acendido.</translation> <translation id="5793339252089865437">Se descargas a actualización a través da rede de telefonía móbil, pódense producir cargos elevados.</translation> <translation id="5793420564274426163">Confirmación de vinculación</translation> +<translation id="5793430094159150686">O contrasinal cambiou. Para restaurar os datos locais, tes que poñer o antigo.</translation> <translation id="5794034487966529952">O escritorio <ph name="DESK_TITLE" /> ten abertas <ph name="NUM_BROWSERS" /> ventás do navegador</translation> <translation id="5794414402486823030">Abrir sempre co visualizador do sistema</translation> <translation id="5794700615121138172">Cartafoles compartidos de Linux</translation> @@ -5879,6 +5888,7 @@ <translation id="6700093763382332031">Bloqueo da SIM do móbil</translation> <translation id="6700480081846086223">Emitir <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Non se puido obter o perfil.</translation> +<translation id="6701824422332982935">Volve cargar a páxina para usar estas extensións</translation> <translation id="6702639462873609204">&Editar...</translation> <translation id="6703212423117969852">Podes tentalo de novo máis tarde en Chrome.</translation> <translation id="6703254819490889819">Restaurar copia de seguranza</translation> @@ -7105,6 +7115,7 @@ <translation id="7903742244674067440">Tes certificados arquivados que identifican estas entidades de certificación</translation> <translation id="7903925330883316394">Utilidade: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Fai que estean dispoñibles os portos Linux para outros dispositivos da túa rede.</translation> +<translation id="7906440585529721295">Eliminaranse os datos locais</translation> <translation id="7907837847548254634">Destacar brevemente obxecto seleccionado</translation> <translation id="7908378463497120834">Polo menos unha partición do dispositivo de almacenamento externo non se puido activar.</translation> <translation id="7909324225945368569">Cambiar nome de perfil</translation> @@ -7442,6 +7453,7 @@ <translation id="822050276545350872">De agora en diante xa non tes que esperar</translation> <translation id="8221491193165283816">Adoitas bloquear as notificacións. Para permitir que este sitio che envíe notificacións, fai clic aquí.</translation> <translation id="822347941086490485">Buscando dispositivos de interface humana…</translation> +<translation id="8223573963214454788">Continuar e eliminar datos</translation> <translation id="8225046344534779393">Comproba a conexión a Internet</translation> <translation id="8225265270453771718">Compartir unha ventá dunha aplicación</translation> <translation id="8226222018808695353">Non permitido</translation> @@ -7542,6 +7554,7 @@ <translation id="8314381333424235892">Falta a extensión ou non se instalou</translation> <translation id="831440797644402910">Non se pode abrir este cartafol</translation> <translation id="8314835274931377415">Queres iniciar a configuración de Acceso con interruptores?</translation> +<translation id="8317582043908962055">Recoñecer texto do PDF</translation> <translation id="8317671367883557781">Engadir conexión de rede</translation> <translation id="8319414634934645341">Uso ampliado de claves</translation> <translation id="8321837372750396788"><ph name="MANAGER" /> xestionará este dispositivo (<ph name="DEVICE_TYPE" />).</translation> @@ -8275,7 +8288,6 @@ <translation id="9050666287014529139">Frase de acceso</translation> <translation id="9052404922357793350">Continuar bloqueando</translation> <translation id="9053563360605707198">Imprimir nas dúas caras</translation> -<translation id="9053893665344928494">Lembrar a miña elección</translation> <translation id="9055636786322918818">Forza a encriptación RC4. Esta opción aumenta o risco, porque as cifraxes de RC4 non son seguras.</translation> <translation id="9056810968620647706">Non se encontraron coincidencias.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> quere acceder ao seguinte contido:</translation> @@ -8427,6 +8439,7 @@ <translation id="9203398526606335860">Creación de &perfís activada</translation> <translation id="9203904171912129171">Seleccionar un dispositivo</translation> <translation id="9206889157914079472">Tomar notas co lapis óptico desde a pantalla de inicio</translation> +<translation id="9208192193641542858">Os datos locais están protexidos co contrasinal antigo. Se cambiaches o contrasinal recentemente, tenta usar o antigo de novo.</translation> <translation id="9209563766569767417">Comprobando configuración do contedor de Linux</translation> <translation id="9209689095351280025">Os sitios non poden usar cookies para seguirte pola Web</translation> <translation id="9211177926627870898">Actualización obrigatoria</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index d68cd67..bad4f0f 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -381,6 +381,7 @@ <translation id="1374844444528092021">નેટવર્ક "<ph name="NETWORK_NAME" />" દ્વારા આવશ્યક પ્રમાણપત્ર કાં તો ઇન્સ્ટોલ કરેલું નથી અથવા માન્ય નહીં હોય. કૃપા કરીને એક નવું પ્રમાણપત્ર લો અને ફરીથી કનેક્ટ કરવાનો પ્રયાસ કરો.</translation> <translation id="1375321115329958930">સાચવેલા પાસવર્ડ્સ</translation> <translation id="1375557162880614858">શું તમે ChromeOS Flex માટેનું બિલ્ટ-ઇન સ્ક્રીન રીડર, ChromeVox સક્રિય કરવા માગો છો?</translation> +<translation id="1375938286942050085">સેટઅપ પૂર્ણ થયું! આગલી ગેમ રમવા માટે, તમારું ડિવાઇસ તૈયાર કરો</translation> <translation id="137651782282853227">સાચવેલા સરનામાં અહીં દેખાશે</translation> <translation id="1376771218494401509">નામ અને વિંડો…</translation> <translation id="1377600615067678409">હાલ પૂરતું છોડો</translation> @@ -395,6 +396,7 @@ <translation id="138784436342154190">ડિફૉલ્ટ શરૂઆતના પેજને રિસ્ટોર કરીએ?</translation> <translation id="1388253969141979417">તમારા માઇક્રોફોનનો ઉપયોગ કરવાની મંજૂરી છે</translation> <translation id="1388728792929436380">અપડેટ પૂર્ણ થશે ત્યારે તમારું <ph name="DEVICE_TYPE" /> ફરી શરૂ થશે.</translation> +<translation id="1389601498324964367">ક્વોટા દ્વારા મેનેજ કરેલો સ્ટોરેજ</translation> <translation id="139013308650923562">તમારા ડિવાઇસ પર ઇન્સ્ટૉલ કરેલા ફૉન્ટનો ઉપયોગ કરવાની મંજૂરી છે</translation> <translation id="1390548061267426325">નિયમિત ટૅબ તરીકે ખોલો</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> <ph name="PRINTER_NAME" /> પર પ્રિન્ટ કરવા માટે અધિકૃત નથી. કૃપા કરીને તમારા વ્યવસ્થાપકનો સંપર્ક કરો.</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">ડિવાઇસમાંથી કાઢી નાખો</translation> <translation id="1994173015038366702">સાઈટ URL</translation> <translation id="1995916364271252349">સાઇટ કઈ માહિતીનો ઉપયોગ કરી શકે અને કઈ માહિતી બતાવી શકે તે નિયંત્રિત કરો (સ્થાન, કૅમેરા, પૉપ-અપ અને અન્ય ઘણું)</translation> +<translation id="1997433994358798851">તમારા ડિવાઇસ સાથે કનેક્ટ થવા માટે, Chromeને બ્લૂટૂથનો ઉપયોગ કરવાની પરવાનગીની જરૂર છે</translation> <translation id="1997616988432401742">તમારા પ્રમાણપત્રો</translation> <translation id="1999115740519098545">સ્ટાર્ટઅપ પર</translation> <translation id="2000419248597011803">ઍડ્રેસ બાર અને શોધ બૉક્સમાંથી કેટલીક કુકી અને શોધને તમારા ડિફૉલ્ટ શોધ એન્જિન પર મોકલે છે</translation> @@ -1722,6 +1725,7 @@ <translation id="25899519884572181">રીડર મોડમાંથી બહાર નીકળો</translation> <translation id="2593499352046705383">શરૂ કરતા પહેલાં, ખાતરી કરો કે તમારી પાસે તમારા ડેટાનું બૅકઅપ ઉપલબ્ધ છે. <ph name="DEVICE_OS" />ને ઇન્સ્ટૉલ કરવાથી, તમારી હાર્ડ ડ્રાઇવ ઓવરરાઇટ થઈ જશે. g.co/flex/InstallGuide પર વધુ જાણો.</translation> <translation id="2594999711683503743">Googleમાં શોધો અથવા URL ટાઇપ કરો</translation> +<translation id="2599048253926156421">વપરાશકર્તાનું નામ ક્લિપબોર્ડ પર કૉપિ કર્યું</translation> <translation id="2602501489742255173">શરૂ કરવા માટે ઉપર સ્વાઇપ કરો</translation> <translation id="2603115962224169880">કમ્પ્યુટર સાફ કરો</translation> <translation id="2603355571917519942">Voice Match તૈયાર છે</translation> @@ -1945,6 +1949,7 @@ <translation id="2804043232879091219">વૈકલ્પિક બ્રાઉઝર ખોલી શકાયું નથી</translation> <translation id="2804667941345577550">ખુલ્લા ટૅબ સહિત, આ સાઇટમાંથી તમને સાઇન આઉટ કરવામાં આવશે</translation> <translation id="2804680522274557040">કૅમેરા બંધ કર્યો</translation> +<translation id="280518252911523675">જો તમે તમારો જૂનો પાસવર્ડ દાખલ કર્યા વિના આગળ વધશો, તો તમારો સ્થાનિક ડેટા ડિલીટ કરવામાં આવશે. આ વપરાશકર્તાનું ફરીથી સેટઅપ કરવા માટે, તમે તમારા Google એકાઉન્ટ વડે સાઇન ઇન કરશો.</translation> <translation id="2805539617243680210">આગળ વધવા માટે તમે સંપૂર્ણ રીતે સજ્જ છો!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">ઍપ</translation> @@ -3060,6 +3065,7 @@ <translation id="3895090224522145010">Kerberosનું વપરાશકર્તાનામ</translation> <translation id="389521680295183045">તમે સક્રિય રીતે તમારા ડિવાઇસનો ઉપયોગ ક્યારે કરો છો, તે જાણકારી મેળવવા માટે સાઇટ પૂછી શકે છે</translation> <translation id="3897298432557662720">{COUNT,plural, =1{એક છબી}one{# છબી}other{# છબી}}</translation> +<translation id="3897746662269329507">તમારું <ph name="DEVICE_TYPE" /> ગેમ રમવા માટે બનાવવામાં આવ્યું છે. આગળ વધવાથી Explore ઍપ ખુલશે કે જ્યાં તમે સેંકડો લેટેસ્ટ ગેમ ઍક્સેસ કરી શકો છો, ગેમ રમવાની ઑફરો જોઈ શકો છો અને તમારા ડિવાઇસ સાથે આવતી ગેમ રમવાની સુવિધાઓ શોધી શકો છો.</translation> <translation id="3898233949376129212">ડિવાઇસની ભાષા</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" />ની પરવાનગી માગે છે: <ph name="FIRST_PERMISSION" /> અને <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">કીબોર્ડ પસંદ કરો</translation> @@ -3210,6 +3216,7 @@ <translation id="4033471457476425443">નવું ફોલ્ડર ઉમેરો</translation> <translation id="4033711848170683365">આને કારણે બ્રાઉઝિંગ ડેટા આ ડિવાઇસમાંથી કાયમી રીતે ડિલીટ થઈ જશે. તમારી <ph name="DEVICE_TYPE" /> પર અન્ય ઍપ દ્વારા કદાચ આ પ્રોફાઇલમાંના Google એકાઉન્ટનો ઉપયોગ કરવામાં આવી શકે. તમે <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />માં જઈને આ એકાઉન્ટ કાઢી નાખી શકો છો.</translation> <translation id="4033963223187371752">સુરક્ષિત સાઇટ છબીઓ અથવા વેબ ફ્રેમ જેવું અસુરક્ષિત કન્ટેન્ટ શામેલ કરી શકે છે</translation> +<translation id="4034741552964543387">સ્થાનિક ડેટા વિના આગળ વધો</translation> <translation id="4034824040120875894">પ્રિન્ટર</translation> <translation id="4035758313003622889">&કાર્ય વ્યવસ્થાપક</translation> <translation id="4035877632587724847">મંજૂરી આપશો નહીં</translation> @@ -3401,6 +3408,7 @@ <translation id="4242533952199664413">સેટિંગ ખોલો</translation> <translation id="4242577469625748426">આ ડિવાઇસ પર પૉલિસી સેટિંગ ઇન્સ્ટોલ કરવામાં નિષ્ફળ ગયું: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">પ્રિન્ટર થોભાવેલું છે</translation> +<translation id="424423026762293842">તમારો સ્થાનિક ડેટા રિસ્ટોર કરો</translation> <translation id="4244238649050961491">વધુ સ્ટાઇલસ ઍપ મેમરીનો શોધો</translation> <translation id="4246980464509998944">વધારાની કૉમેન્ટ:</translation> <translation id="424726838611654458">હંમેશાં Adobe Reader માં ખોલો</translation> @@ -4959,6 +4967,7 @@ <translation id="5792728279623964091">કૃપા કરીને તમારા પાવર બટન પર ટૅપ કરો</translation> <translation id="5793339252089865437">જો તમે તમારા મોબાઇલ નેટવર્ક પરથી અપડેટ ડાઉનલોડ કરો છો, તો આના કારણે વધારાનો શુલ્ક વસૂલવામાં આવી શકે છે.</translation> <translation id="5793420564274426163">જોડાણનું કન્ફર્મેશન</translation> +<translation id="5793430094159150686">તમારો પાસવર્ડ બદલાઈ ગયો છે. તમારા સ્થાનિક ડેટાને રિસ્ટોર કરવા માટે, તમારે તમારો જૂનો પાસવર્ડ દાખલ કરવો જરૂરી છે.</translation> <translation id="5794034487966529952">ડેસ્ક <ph name="DESK_TITLE" />માં <ph name="NUM_BROWSERS" /> બ્રાઉઝર વિન્ડો ખુલ્લી છે</translation> <translation id="5794414402486823030">હંમેશા સિસ્ટમ દર્શક સાથે ખોલો</translation> <translation id="5794700615121138172">Linuxએ શેર કરેલા ફોલ્ડરો</translation> @@ -5886,6 +5895,7 @@ <translation id="6700093763382332031">સેલ્યુલર સિમ લૉક</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> કાસ્ટ કરો</translation> <translation id="6701535245008341853">પ્રોફાઇલ મેળવી શકાઈ નથી.</translation> +<translation id="6701824422332982935">આ એક્સ્ટેન્શનનો ઉપયોગ કરવા માટે પેજને ફરીથી લોડ કરો</translation> <translation id="6702639462873609204">&સંપાદિત કરો...</translation> <translation id="6703212423117969852">તમે પછીથી Chromeમાં જઈને ફરી પ્રયાસ કરી શકો છો.</translation> <translation id="6703254819490889819">બૅકઅપ રિસ્ટોર કરો</translation> @@ -7112,6 +7122,7 @@ <translation id="7903742244674067440">તમારી પાસે ફાઇલ પર પ્રમાણપત્રો છે જે આ પ્રમાણપત્ર અધિકારીઓને ઓળખે છે</translation> <translation id="7903925330883316394">ઉપયોગિતા: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">તમારા નેટવર્ક પરના અન્ય ડિવાઇસ માટે Linux પોર્ટને ઉપલબ્ધ કરાવો.</translation> +<translation id="7906440585529721295">સ્થાનિક ડેટા ડિલીટ કરવામાં આવશે</translation> <translation id="7907837847548254634">જેના પર ફોકસ કરેલું હોય તે ઑબ્જેક્ટ વિશે ઝડપી હાઇલાઇટ બતાવો</translation> <translation id="7908378463497120834">માફ કરશો, તમારા બાહ્ય સ્ટોરેજ ઉપકરણ પર ઓછામાં ઓછું એક પાર્ટિશન માઉન્ટ કરી શકાયું નથી.</translation> <translation id="7909324225945368569">તમારી પ્રોફાઇલનું નામ બદલો</translation> @@ -7445,6 +7456,7 @@ <translation id="822050276545350872">હવેથી રાહ જોવાની કોઈ જરૂર નહીં પડે</translation> <translation id="8221491193165283816">તમે સામાન્ય રીતે નોટિફિકેશનને બ્લૉક કરો છો. આ સાઇટને તમને નોટિફિકેશન આપવાની મંજૂરી આપવા માટે, અહીં ક્લિક કરો.</translation> <translation id="822347941086490485">HID ડિવાઇસ શોધી રહ્યાં છીએ...</translation> +<translation id="8223573963214454788">આગળ વધો અને ડેટા ડિલીટ કરો</translation> <translation id="8225046344534779393">ઇન્ટરનેટ કનેક્શન ચેક કરો</translation> <translation id="8225265270453771718">ઍપ્લિકેશન વિંડો શેર કરો</translation> <translation id="8226222018808695353">પ્રતિબંધિત</translation> @@ -7545,6 +7557,7 @@ <translation id="8314381333424235892">એક્સ્ટેંશન ખૂટે છે અથવા અનઇન્સ્ટૉલ કરેલું છે</translation> <translation id="831440797644402910">આ ફોલ્ડર ખોલી શકાતું નથી</translation> <translation id="8314835274931377415">સ્વિચ ઍક્સેસનું સેટઅપ શરૂ કરીએ?</translation> +<translation id="8317582043908962055">P&DF ટેક્સ્ટને ઓળખો</translation> <translation id="8317671367883557781">નેટવર્ક કનેક્શન ઉમેરો</translation> <translation id="8319414634934645341">વિસ્તૃત કી ઉપયોગ</translation> <translation id="8321837372750396788">આ <ph name="DEVICE_TYPE" />ને <ph name="MANAGER" /> દ્વારા મેનેજ કરવામાં આવશે.</translation> @@ -8279,7 +8292,6 @@ <translation id="9050666287014529139">પાસફ્રેઝ</translation> <translation id="9052404922357793350">બ્લૉક કરવાનું ચાલુ રાખો</translation> <translation id="9053563360605707198">બન્ને બાજુએ પ્રિન્ટ કરો</translation> -<translation id="9053893665344928494">મારી પસંદગી યાદ રાખો</translation> <translation id="9055636786322918818">RC4 એન્ક્રિપ્શન લાગુ કરો. આનાથી વિકલ્પનો ઉપયોગ કરવાનું તમારું જોખમ વધે છે, કારણ કે RC4 સાઇફર અસુરક્ષિત હોય છે.</translation> <translation id="9056810968620647706">કોઈ મેળ મળ્યાં નથી.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> નીચેનું કન્ટેન્ટ ઍક્સેસ કરવા માગે છે:</translation> @@ -8431,6 +8443,7 @@ <translation id="9203398526606335860">&પ્રોફાઇલિંગ સક્ષમ</translation> <translation id="9203904171912129171">ઉપકરણ પસંદ કરો</translation> <translation id="9206889157914079472">લૉક સ્ક્રીનમાંથી સ્ટાઇલસ વડે નોંધ લેવાના સેટિંગ</translation> +<translation id="9208192193641542858">સ્થાનિક ડેટા તમારા જૂના પાસવર્ડ વડે સુરક્ષિત છે. જો તમે તમારો પાસવર્ડ તાજેતરમાં બદલ્યો હોય, તો તમારા જૂના પાસવર્ડને ફરીથી અજમાવી જુઓ.</translation> <translation id="9209563766569767417">Linux કન્ટેનરનું સેટઅપ ચેક કરી રહ્યાં છીએ</translation> <translation id="9209689095351280025">સાઇટ તમને વેબ પર બધે ટ્રૅક કરતી કુકીનો ઉપયોગ કરી શકશે નહીં</translation> <translation id="9211177926627870898">અપડેટ જરૂરી છે</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index eef2e46..e0d73b0 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -157,7 +157,7 @@ <translation id="1147322039136785890">अब <ph name="SUPERVISED_USER_NAME" /> इस डिवाइस का इस्तेमाल कर सकते हैं</translation> <translation id="1147991416141538220">ऐक्सेस मांगने के लिए, इस डिवाइस के एडमिन से संपर्क करें.</translation> <translation id="1148063863818152153">आपके डिवाइस का ईआईडी नंबर</translation> -<translation id="1148624853678088576">आप बिल्कुल तैयार हैं!</translation> +<translation id="1148624853678088576">आप बिलकुल तैयार हैं!</translation> <translation id="1149401351239820326">समाप्ति माह</translation> <translation id="1149483087970735785">सहायक टेक्नोलॉजी की सेटिंग पर जाएं</translation> <translation id="1149725087019908252"><ph name="FILE_NAME" /> स्कैन हो रही है</translation> @@ -1967,7 +1967,7 @@ <translation id="2804667941345577550">आपको इस साइट और खुले हुए टैब से साइन आउट कर दिया जाएगा</translation> <translation id="2804680522274557040">कैमरा बंद किया गया</translation> <translation id="280518252911523675">अगर आप पुराना पासवर्ड डाले बिना ही इस प्रक्रिया को जारी रखें, तो आपका स्थानीय डेटा मिट जाएगा. इस उपयोगकर्ता प्रोफ़ाइल को दोबारा सेट अप करने के लिए, अपने Google खाते से साइन इन करें.</translation> -<translation id="2805539617243680210">अब आप बिल्कुल तैयार हैं!</translation> +<translation id="2805539617243680210">अब आप बिलकुल तैयार हैं!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">ऐप्स</translation> <translation id="2805760958323556153">नीति का ExtensionInstallForcelist मान अमान्य है. कृपया अपने एडमिन से संपर्क करें.</translation> @@ -5760,7 +5760,7 @@ <translation id="6551739526055143276">इसे Family Link से मैनेज किया जाता है</translation> <translation id="655384502888039633"><ph name="USER_COUNT" /> उपयोगकर्ता</translation> <translation id="655483977608336153">दोबारा कोशिश करें</translation> -<translation id="6555432686520421228">सभी उपयोगकर्ता खातों को हटाएं और अपने <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवाइस को बिल्कुल नया जैसा बनाने के लिए रीसेट करें.</translation> +<translation id="6555432686520421228">सभी उपयोगकर्ता खातों को हटाएं और अपने <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवाइस को बिलकुल नया जैसा बनाने के लिए रीसेट करें.</translation> <translation id="6555604601707417276">Linux का बैक अप वापस लाया गया</translation> <translation id="6555810572223193255">क्लीनअप अभी उपलब्ध नहीं है</translation> <translation id="6556866813142980365">फिर से करें</translation> @@ -6797,7 +6797,7 @@ <translation id="758895749110326677">Chromebook पर गेमिंग को बेहतर बनाने में मदद करें</translation> <translation id="7589461650300748890">अरे, सुनिए. सतर्क रहें.</translation> <translation id="7593653750169415785">आपने कुछ सूचनाओं को अस्वीकार कर दिया, इसलिए यह अपने आप ब्लॉक हो गया है</translation> -<translation id="7594725637786616550">पावरवॉश आपके <ph name="DEVICE_TYPE" /> को बिल्कुल नए जैसा रीसेट कर देगा.</translation> +<translation id="7594725637786616550">पावरवॉश आपके <ph name="DEVICE_TYPE" /> को बिलकुल नए जैसा रीसेट कर देगा.</translation> <translation id="7595453277607160340">Android ऐप्लिकेशन का इस्तेमाल करने और आपका <ph name="DEVICE_TYPE" /> ठीक से काम करता रहे, इसके लिए फिर से साइन इन करें और अपडेट करें.</translation> <translation id="7595547011743502844"><ph name="ERROR" /> (गड़बड़ी कोड <ph name="ERROR_CODE" />).</translation> <translation id="7598466960084663009">कंप्यूटर फिर से चालू करें</translation> @@ -7184,7 +7184,7 @@ <translation id="7946586320617670168">शुरुआती जगह सुरक्षित होनी चाहिए</translation> <translation id="794676567536738329">अनुमतियों की पुष्टि करें</translation> <translation id="7947962633355574091">वीडियो के पते को कॉ&पी करें</translation> -<translation id="7947964080535614577">आम तौर पर, साइटें विज्ञापन दिखाती हैं, ताकि कॉन्टेंट या सेवाएं बिल्कुल मुफ़्त में उपलब्ध कराई जा सकें. हालांकि, कुछ साइटें तंग या गुमराह करने वाले विज्ञापन दिखाती हैं.</translation> +<translation id="7947964080535614577">आम तौर पर, साइटें विज्ञापन दिखाती हैं, ताकि कॉन्टेंट या सेवाएं बिलकुल मुफ़्त में उपलब्ध कराई जा सकें. हालांकि, कुछ साइटें तंग या गुमराह करने वाले विज्ञापन दिखाती हैं.</translation> <translation id="7948407723851303488"><ph name="DOMAIN_NAME" /> के सभी पेज</translation> <translation id="7950629216186736592">वजह: एलबीएस की सुविधा सिर्फ़ http://, https://, और file:// से शुरू होने वाले यूआरएल के साथ काम करती है.</translation> <translation id="7951265006188088697">Google Pay के पैसे चुकाने के तरीके को जोड़ने या प्रबंधित करने के लिए, अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> पर जाएं</translation> @@ -7828,7 +7828,7 @@ <translation id="8588868914509452556"><ph name="WINDOW_TITLE" /> - VR हेडसेट को दिखा रहा है</translation> <translation id="8590375307970699841">स्वचालित अपडेट सेट अप करें</translation> <translation id="8591783563402255548">1 सेकंड</translation> -<translation id="8592141010104017453">सूचनाएं बिल्कुल न दिखाएं</translation> +<translation id="8592141010104017453">सूचनाएं बिलकुल न दिखाएं</translation> <translation id="859246725979739260">इस साइट को, आपकी जगह की जानकारी ऐक्सेस करने से रोका गया है.</translation> <translation id="8593121833493516339">इस्तेमाल और निदान से जुड़ा डेटा भेजें. Google को निदान, डिवाइस, और ऐप्लिकेशन के इस्तेमाल से जुड़ा डेटा अपने आप भेजकर, अपने बच्चे के Android अनुभव को बेहतर बनाने में मदद करें. इसका इस्तेमाल आपके बच्चे की पहचान करने के लिए नहीं किया जाएगा. यह सिस्टम और ऐप्लिकेशन की स्थिरता और दूसरे सुधारों में मदद करेगा. कुछ एग्रीगेट डेटा Google ऐप्लिकेशन और पार्टनर, जैसे कि Android डेवलपरों की भी मदद करेगा. अगर आपके बच्चे के लिए दूसरी 'वेब और ऐप्लिकेशन गतिविधि' सेटिंग चालू है, तो यह डेटा उसके Google खाते में सेव किया जा सकता है. <ph name="BEGIN_LINK1" />ज़्यादा जानें<ph name="END_LINK1" /></translation> <translation id="8594908476761052472">वीडियो कैप्चर करें</translation> @@ -8151,7 +8151,7 @@ <translation id="8890170499370378450">हो सकता है कि आपको मोबाइल डेटा का शुल्क देना पड़े</translation> <translation id="8890516388109605451">स्रोत</translation> <translation id="8890529496706615641">प्रोफ़ाइल का नाम नहीं बदला जा सका. कृपया फिर से कोशिश करें या तकनीकी सहायता पाने के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करें.</translation> -<translation id="8892168913673237979">बिल्कुल तैयार है!</translation> +<translation id="8892168913673237979">बिलकुल तैयार है!</translation> <translation id="8893801527741465188">अनइंस्टॉल पूरा हुआ</translation> <translation id="8893928184421379330">क्षमा करें, डिवाइस <ph name="DEVICE_LABEL" /> की पहचान नहीं हो सकी.</translation> <translation id="8894761918470382415">सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) के लिए डेटा ऐक्सेस सुरक्षा</translation> @@ -8312,7 +8312,6 @@ <translation id="9050666287014529139">पासफ़्रेज़ (लंबा पासवर्ड)</translation> <translation id="9052404922357793350">ब्लॉक करना जारी रखें</translation> <translation id="9053563360605707198">दोनों तरफ़ प्रिंट करें</translation> -<translation id="9053893665344928494">मेरी पसंद याद रखें</translation> <translation id="9055636786322918818">RC4 सुरक्षा लागू करें. इस विकल्प का इस्तेमाल करने से आपका खतरा बढ़ जाता है, क्योंकि RC4 सिफ़र सुरक्षित नहीं होते हैं.</translation> <translation id="9056810968620647706">कोई मिलान नहीं मिले.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> को यह कॉन्टेंट ऐक्सेस करना है:</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 5cb267f..542622e 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -8300,7 +8300,6 @@ <translation id="9050666287014529139">Zaporka</translation> <translation id="9052404922357793350">Nastavi blokirati</translation> <translation id="9053563360605707198">Ispis s obje strane</translation> -<translation id="9053893665344928494">Zapamti odabir</translation> <translation id="9055636786322918818">Provođenje AES i RC4 šifriranja. Upotreba te opcije izlaže vas većoj opasnosti jer RC4 šifre nisu sigurne.</translation> <translation id="9056810968620647706">Nisu pronađeni nikakvi rezultati.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> želi pristupiti sljedećem sadržaju:</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 575aacfa..8b096636 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -8309,7 +8309,6 @@ <translation id="9050666287014529139">Összetett jelszó</translation> <translation id="9052404922357793350">Letiltás fenntartása</translation> <translation id="9053563360605707198">Nyomtatás mindkét oldalra</translation> -<translation id="9053893665344928494">Jegyezze meg a döntésemet</translation> <translation id="9055636786322918818">Az RC4 titkosítás kényszerítése. A beállítás használata növeli a kockázatot, mivel az RC4-kódok nem biztonságosak.</translation> <translation id="9056810968620647706">Nincs találat.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> hozzá szeretne férni a következő tartalomhoz:</translation>
diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb index 7507ace1..b25d7e1 100644 --- a/chrome/app/resources/generated_resources_hy.xtb +++ b/chrome/app/resources/generated_resources_hy.xtb
@@ -8294,7 +8294,6 @@ <translation id="9050666287014529139">Անցաբառ</translation> <translation id="9052404922357793350">Շարունակել արգելափակումը</translation> <translation id="9053563360605707198">Տպել երկու կողմին</translation> -<translation id="9053893665344928494">Հիշել իմ ընտրությունը</translation> <translation id="9055636786322918818">Օգտագործել RC4 գաղտնագրումը։ Այս տարբերակի օգտագործումն ապահով չէ, քանի որ RC4 գաղտնագրերը հուսալի չեն։</translation> <translation id="9056810968620647706">Համընկնումներ չեն գտնվել:</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" />-ին անհրաժեշտ է հետևյալ բովանդակությունն օգտագործելու թույլտվություն՝</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index 05250ae..f2b38b51 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -8311,7 +8311,6 @@ <translation id="9050666287014529139">Frasa sandi</translation> <translation id="9052404922357793350">Lanjutkan pemblokiran</translation> <translation id="9053563360605707198">Print di kedua sisi</translation> -<translation id="9053893665344928494">Ingat pilihan saya</translation> <translation id="9055636786322918818">Terapkan enkripsi RC4. Penggunaan opsi ini akan meningkatkan risiko, karena cipher RC4 tidak aman.</translation> <translation id="9056810968620647706">Tidak ditemukan kecocokan.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ingin mengakses konten berikut:</translation>
diff --git a/chrome/app/resources/generated_resources_is.xtb b/chrome/app/resources/generated_resources_is.xtb index 4b6f950..c8203db5 100644 --- a/chrome/app/resources/generated_resources_is.xtb +++ b/chrome/app/resources/generated_resources_is.xtb
@@ -8313,7 +8313,6 @@ <translation id="9050666287014529139">Aðgangsorð</translation> <translation id="9052404922357793350">Halda áfram að útiloka</translation> <translation id="9053563360605707198">Prenta á báðum hliðum</translation> -<translation id="9053893665344928494">Muna hvað ég valdi</translation> <translation id="9055636786322918818">Þvinga RC4-dulkóðun. Þessi valkostur felur í sér meiri áhættu, þar sem RC4-dulmálslyklar eru óöruggir.</translation> <translation id="9056810968620647706">Engar samsvaranir fundust.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> vill fá aðgang að eftirfarandi efni:</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index f475a63..8fd48d7 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -8279,7 +8279,6 @@ <translation id="9050666287014529139">Passphrase</translation> <translation id="9052404922357793350">Continua a bloccare</translation> <translation id="9053563360605707198">Stampa su entrambe le facciate</translation> -<translation id="9053893665344928494">Memorizza la mia scelta</translation> <translation id="9055636786322918818">Applica la crittografia RC4. Se scegli di utilizzare quest'opzione vai incontro a un rischio maggiore, in quanto le crittografie RC4 non sono sicure.</translation> <translation id="9056810968620647706">Nessuna corrispondenza trovata.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> richiede l'accesso ai seguenti contenuti:</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 478a4252..d380e6f 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -384,6 +384,7 @@ <translation id="1374844444528092021">האישור הנדרש על ידי הרשת "<ph name="NETWORK_NAME" />" אינו מותקן או שכבר אינו חוקי. יש לקבל אישור חדש ולנסות להתחבר שוב.</translation> <translation id="1375321115329958930">סיסמאות שמורות</translation> <translation id="1375557162880614858">רוצה להפעיל את ChromeVox, קורא המסך המובנה של ChromeOS Flex?</translation> +<translation id="1375938286942050085">ההגדרה הושלמה. עכשיו אפשר להכין את המכשיר לגיימינג</translation> <translation id="137651782282853227">כאן יופיעו הכתובות ששמרת</translation> <translation id="1376771218494401509">מתן &שם לחלון…</translation> <translation id="1377600615067678409">דילוג לעת עתה</translation> @@ -398,6 +399,7 @@ <translation id="138784436342154190">לשחזר את דף הפתיחה שהוגדר כברירת המחדל?</translation> <translation id="1388253969141979417">מורשים להשתמש במיקרופון</translation> <translation id="1388728792929436380">המכשיר <ph name="DEVICE_TYPE" /> יופעל מחדש אחרי שהעדכונים יושלמו.</translation> +<translation id="1389601498324964367">אחסון בניהול לפי מכסה</translation> <translation id="139013308650923562">יש הרשאה להשתמש בגופנים שמותקנים במכשיר</translation> <translation id="1390548061267426325">פתיחה ככרטיסייה רגילה</translation> <translation id="1390907927270446471">ל<ph name="PROFILE_USERNAME" /> אין הרשאה להדפיס ב-<ph name="PRINTER_NAME" />. צריך לפנות למנהל המערכת.</translation> @@ -1074,6 +1076,7 @@ <translation id="1992924914582925289">הסרה מהמכשיר</translation> <translation id="1994173015038366702">כתובת אתר</translation> <translation id="1995916364271252349">בדף הזה אפשר לשלוט על המידע שאתרים יכולים להשתמש בו ולהציג אותו (מיקום, מצלמה, חלונות קופצים ועוד)</translation> +<translation id="1997433994358798851">כדי להתחבר למכשיר, נדרשת ל-Chrome הרשאה להשתמש ב-Bluetooth</translation> <translation id="1997616988432401742">האישורים שלך</translation> <translation id="1999115740519098545">כשפותחים את הדפדפן</translation> <translation id="2000419248597011803">שליחה של חלק מקובצי ה-Cookie והחיפושים משורת כתובת האתר ומתיבת החיפוש אל מנוע החיפוש שהוגדר כברירת מחדל</translation> @@ -1738,6 +1741,7 @@ <translation id="25899519884572181">יציאה ממצב קורא</translation> <translation id="2593499352046705383">לפני שמתחילים, צריך לוודא שיש גיבוי של הנתונים. התקנת <ph name="DEVICE_OS" /> תחליף את כל הנתונים שבכונן הקשיח שלך. מידע נוסף זמין בכתובת g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">זה המקום לחפש את מה שמעניין או להקליד כתובת של אתר ספציפי</translation> +<translation id="2599048253926156421">שם המשתמש הועתק ללוח</translation> <translation id="2602501489742255173">יש להחליק כלפי מעלה כדי להתחיל</translation> <translation id="2603115962224169880">ניקוי המחשב</translation> <translation id="2603355571917519942">התכונה Voice Match מוכנה</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">לא ניתן לפתוח את הדפדפן החלופי</translation> <translation id="2804667941345577550">המערכת תוציא אותך מהאתר הזה, כולל בכרטיסיות הפתוחות</translation> <translation id="2804680522274557040">המצלמה מושבתת</translation> +<translation id="280518252911523675">המשך ללא הזנת הסיסמה הישנה יגרום למחיקת הנתונים המקומיים. עליך להיכנס באמצעות חשבון Google שלך כדי להגדיר את המשתמש הזה שוב.</translation> <translation id="2805539617243680210">הכול מוכן!</translation> <translation id="2805646850212350655">מערכת קבצים מצפינה של Microsoft</translation> <translation id="2805756323405976993">אפליקציות</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">שם משתמש ב-Kerberos</translation> <translation id="389521680295183045">אתרים יכולים לבקש הרשאה לדעת מתי המכשיר הזה משמש אותך באופן פעיל</translation> <translation id="3897298432557662720">{COUNT,plural, =1{תמונה}two{# תמונות}many{# תמונות}other{# תמונות}}</translation> +<translation id="3897746662269329507">מכשיר <ph name="DEVICE_TYPE" /> מיועד למשחקים. בשלב הבא, תיפתח האפליקציה 'מה חדש ב-Chromebook', ובה תהיה לך גישה למאות משחקים עדכניים, למבצעים על משחקים ולתכונות הגיימינג של המכשיר.</translation> <translation id="3898233949376129212">שפת המכשיר</translation> <translation id="3898327728850887246">האתר <ph name="SITE_NAME" /> מבקש את ההרשאות הבאות: <ph name="FIRST_PERMISSION" /> וגם <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">בחירת מקלדת</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">הוספת תיקייה חדשה</translation> <translation id="4033711848170683365">הפעולה הזו תמחק באופן סופי את נתוני הגלישה במכשיר הזה. יכול להיות שיש אפליקציות אחרות ב-<ph name="DEVICE_TYPE" /> שלך שמחוברות לחשבונות Google שבפרופיל הזה. כדי להסיר את החשבונות האלה, צריך להיכנס אל <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">באתרים מאובטחים מוטמע לפעמים תוכן לא מאובטח, כמו תמונות או מסגרות של אתרים</translation> +<translation id="4034741552964543387">המשך ללא הנתונים המקומיים</translation> <translation id="4034824040120875894">מדפסת</translation> <translation id="4035758313003622889">&מנהל המשימות</translation> <translation id="4035877632587724847">אין אישור</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">פתיחת ההגדרות</translation> <translation id="4242577469625748426">התקנת הגדרות המדיניות במכשיר: <ph name="VALIDATION_ERROR" /> נכשלה.</translation> <translation id="4243504193894350135">המדפסת מושהית</translation> +<translation id="424423026762293842">שחזור הנתונים המקומיים</translation> <translation id="4244238649050961491">חיפוש עוד אפליקציות לשימוש בסטיילוס</translation> <translation id="4246980464509998944">הערות נוספות:</translation> <translation id="424726838611654458">פתיחה תמיד ב-Adobe Reader</translation> @@ -4976,6 +4984,7 @@ <translation id="5792728279623964091">יש להקיש על לחצן ההפעלה</translation> <translation id="5793339252089865437">אם הורדת העדכון מתבצעת ברשת סלולרית, ייתכן שהיא תהיה כרוכה בתשלום על חריגה.</translation> <translation id="5793420564274426163">אישור ההתאמה</translation> +<translation id="5793430094159150686">הסיסמה שלך השתנתה. כדי לשחזר את הנתונים המקומיים, עליך להזין את הסיסמה הישנה שלך.</translation> <translation id="5794034487966529952">בשולחן העבודה הווירטואלי <ph name="DESK_TITLE" /> יש <ph name="NUM_BROWSERS" /> חלונות פתוחים של הדפדפן</translation> <translation id="5794414402486823030">תמיד לפתוח באמצעות מציג המערכת</translation> <translation id="5794700615121138172">תיקיות משותפות של Linux</translation> @@ -5904,6 +5913,7 @@ <translation id="6700093763382332031">נעילת כרטיס ה-SIM הסלולרי</translation> <translation id="6700480081846086223">העברה של <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">לא ניתן לקבל פרופיל.</translation> +<translation id="6701824422332982935">צריך לטעון מחדש את הדף כדי להשתמש בתוספים האלה</translation> <translation id="6702639462873609204">&עריכה...</translation> <translation id="6703212423117969852">אפשר לנסות שוב מאוחר יותר ב‑Chrome.</translation> <translation id="6703254819490889819">שחזור הגיבוי</translation> @@ -7130,6 +7140,7 @@ <translation id="7903742244674067440">יש לך אישורים בקובץ המזהים רשויות אישורים אלה</translation> <translation id="7903925330883316394">תוכנית שירות: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">הגדרת יציאות Linux שזמינות למכשירים אחרים ברשת.</translation> +<translation id="7906440585529721295">הנתונים המקומיים יימחקו</translation> <translation id="7907837847548254634">הוספה חטופה של מסגרת סביב אובייקטים שמתמקדים בהם</translation> <translation id="7908378463497120834">מצטערים, לא ניתן להעלות לפחות מחיצה אחת במכשיר האחסון החיצוני שלך.</translation> <translation id="7909324225945368569">שינוי שם הפרופיל</translation> @@ -7470,6 +7481,7 @@ <translation id="822050276545350872">מעכשיו, לא יהיה צורך להמתין יותר</translation> <translation id="8221491193165283816">הבחירה שלך היא בדרך כלל לחסום התראות. כדי לאפשר לאתר הזה להציג התראות יש ללחוץ כאן.</translation> <translation id="822347941086490485">מתבצע חיפוש של מכשירי HID...</translation> +<translation id="8223573963214454788">המשך ומחיקת הנתונים</translation> <translation id="8225046344534779393">צריך לבדוק את החיבור לאינטרנט</translation> <translation id="8225265270453771718">שיתוף חלון של אפליקציה</translation> <translation id="8226222018808695353">אסור</translation> @@ -7570,6 +7582,7 @@ <translation id="8314381333424235892">התוסף חסר או לא מותקן</translation> <translation id="831440797644402910">לא ניתן לפתוח את התיקייה הזו</translation> <translation id="8314835274931377415">להתחיל בהגדרה של גישה באמצעות מתג?</translation> +<translation id="8317582043908962055">זיהוי טקסט ב-P&DF</translation> <translation id="8317671367883557781">הוספת חיבור רשת</translation> <translation id="8319414634934645341">שימוש מורחב במפתח</translation> <translation id="8321837372750396788">מכשיר <ph name="DEVICE_TYPE" /> זה ינוהל על ידי <ph name="MANAGER" />.</translation> @@ -8305,7 +8318,6 @@ <translation id="9050666287014529139">ביטוי סיסמה</translation> <translation id="9052404922357793350">המשך חסימה</translation> <translation id="9053563360605707198">הדפסה על שני הצדדים</translation> -<translation id="9053893665344928494">לזכור את הבחירה הזו</translation> <translation id="9055636786322918818">אכיפה של הצפנת RC4. שימוש באפשרות הזו מגדילה את הסיכון, כי הצפנות RC4 אינן מאובטחות.</translation> <translation id="9056810968620647706">לא נמצאו התאמות.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> רוצה לקבל גישה לתוכן הבא:</translation> @@ -8457,6 +8469,7 @@ <translation id="9203398526606335860">&יצירת פרופילים מופעלת</translation> <translation id="9203904171912129171">בחירת מכשיר</translation> <translation id="9206889157914079472">כתיבת הערות באמצעות סטיילוס במסך הנעילה</translation> +<translation id="9208192193641542858">הנתונים המקומיים מוגנים באמצעות הסיסמה הישנה שלך. אם שינית לאחרונה את הסיסמה, עליך לנסות להיכנס שוב עם הסיסמה הישנה.</translation> <translation id="9209563766569767417">המערכת בודקת את הגדרות הקונטיינר של Linux</translation> <translation id="9209689095351280025">אתרים לא יכולים להשתמש בקובצי cookie שעוקבים אחריך באינטרנט</translation> <translation id="9211177926627870898">נדרש עדכון</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index 855d1f04..6df4fd6 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -3293,7 +3293,7 @@ <translation id="4116704186509653070">もう一度開く</translation> <translation id="4117714603282104018">タッチパッドの触覚フィードバック</translation> <translation id="4118579674665737931">デバイスを再起動してもう一度お試しください。</translation> -<translation id="412022815379960229">ログインすれば常に、Google フォトの「思い出」の写真を見ることができます。</translation> +<translation id="412022815379960229">ログインすれば、いつでも Google フォトの「思い出」の写真を見ることができます。</translation> <translation id="4120388883569225797">このセキュリティ キーはリセットできません</translation> <translation id="4120817667028078560">パスが長すぎます</translation> <translation id="4124823734405044952">セキュリティ キーがリセットされました</translation> @@ -6918,10 +6918,10 @@ <translation id="7744047395460924128">印刷履歴の表示</translation> <translation id="7744192722284567281">データ侵害で漏洩</translation> <translation id="7744649840067671761">新しいスイッチかキーボードのキーを押すと割り当てを開始できます。割り当て済みのスイッチかキーを押すと割り当てが解除されます。</translation> -<translation id="7746739418892731373">Google フォト ライブラリの写真と動画のハイライトが表示されています。ハイライトに何を表示するかは、<ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" /> で管理できます。 +<translation id="7746739418892731373">Google フォト ライブラリの写真と動画のハイライトが表示されます。ハイライトに何を表示するかは、<ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" /> で制御できます。 <ph name="BREAK" /> <ph name="BREAK" /> - カードメニューからこのカードの設定を管理することや、[Chrome をカスタマイズ] でその他のオプションを見ることができます。</translation> + カードメニューからこのカードの設定を管理することができ、[Chrome をカスタマイズ] でその他のオプションを確認できます。</translation> <translation id="7750228210027921155">ピクチャー イン ピクチャー</translation> <translation id="7751260505918304024">すべて表示</translation> <translation id="7751619076382363711">削除されたサイトはありません</translation> @@ -8260,7 +8260,6 @@ <translation id="9050666287014529139">パスフレーズ</translation> <translation id="9052404922357793350">引き続きブロックする</translation> <translation id="9053563360605707198">両面に印刷する</translation> -<translation id="9053893665344928494">選択内容を保存</translation> <translation id="9055636786322918818">RC4 暗号化を適用します。なお RC4 暗号は安全でないため、このオプションを使用するとリスクが高まります。</translation> <translation id="9056810968620647706">一致する項目が見つかりません。</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> さんが次のコンテンツへのアクセスをリクエストしています:</translation>
diff --git a/chrome/app/resources/generated_resources_ka.xtb b/chrome/app/resources/generated_resources_ka.xtb index d6b140e..9edef7f0 100644 --- a/chrome/app/resources/generated_resources_ka.xtb +++ b/chrome/app/resources/generated_resources_ka.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">„<ph name="NETWORK_NAME" />“ ქსელის მიერ მოთხოვნილი სერთიფიკატი ან არ არის დაყენებული ან აღარ მოქმედებს. გთხოვთ, მიიღოთ ახალი სერტიფიკატი და ხელახლა სცადოთ დაკავშირება.</translation> <translation id="1375321115329958930">შენახული პაროლები</translation> <translation id="1375557162880614858">გსურთ, გაააქტიუროთ ChromeVox, ChromeOS Flex-ში ჩაშენებული ეკრანის წამკითხველი?</translation> +<translation id="1375938286942050085">პარამეტრების დაყენება დასრულდა! მომდევნო ეტაპზე თქვენს მოწყობილობას თამაშისთვის მოამზადებთ</translation> <translation id="137651782282853227">შენახული მისამართები აქ გამოჩნდება</translation> <translation id="1376771218494401509">&ფანჯრის დასათაურება...</translation> <translation id="1377600615067678409">გამოტოვება</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">გსურთ ნაგულისხმევი გაშვების გვერდის აღდგენა?</translation> <translation id="1388253969141979417">თქვენი მიკროფონის გამოყენება დაშვებულია</translation> <translation id="1388728792929436380">განახლებების დასრულების შემდეგ <ph name="DEVICE_TYPE" /> გადაიტვირთება.</translation> +<translation id="1389601498324964367">კვოტირებული მეხსიერება</translation> <translation id="139013308650923562">დაშვებულია თქვენს მოწყობილობაზე დაინსტალირებული შრიფტების გამოყენება</translation> <translation id="1390548061267426325">ჩვეულებრივი ჩანართის სახით გახსნა</translation> <translation id="1390907927270446471">მომხმარებელს (<ph name="PROFILE_USERNAME" />) არ აქვს <ph name="PRINTER_NAME" />-ის მეშვეობით ამობეჭდვის უფლება. მიმართეთ თქვენს ადმინისტრატორს.</translation> @@ -1063,6 +1065,7 @@ <translation id="1992924914582925289">მოწყობილობიდან ამოშლა</translation> <translation id="1994173015038366702">საიტის URL</translation> <translation id="1995916364271252349">აკონტროლებს, რა ტიპის ინფორმაციის გამოყენება და ჩვენება შეუძლია საიტებს (მდებარეობა, კამერა, ამომხტარი ფანჯრები და ა.შ.)</translation> +<translation id="1997433994358798851">Chrome საჭიროებს ნებართვას, თქვენს მოწყობილობასთან დასაკავშირებლად Bluetooth რომ გამოიყენოს</translation> <translation id="1997616988432401742">თქვენი სერტიფიკატები</translation> <translation id="1999115740519098545">ჩატვირთვისას</translation> <translation id="2000419248597011803">თქვენს ნაგულისხმევ საძიებო სისტემას უგზავნის ზოგიერთ ქუქი-ჩანაწერს და საძიებო მოთხოვნებს მისამართთა ზოლიდან ან საძიებო ველიდან</translation> @@ -1724,6 +1727,7 @@ <translation id="25899519884572181">წამკითხველის რეჟიმიდან გასვლა</translation> <translation id="2593499352046705383">დაწყებამდე დარწმუნდით, რომ თქვენი მონაცემების სარეზერვო ასლი გაქვთ შექმნილი. <ph name="DEVICE_OS" />-ის ინსტალაციის შემთხვევაში, თქვენი მყარი დისკი გადაიწერება. დამატებითი ინფორმაცია ხელმისაწვდომია მისამართზე g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">მოიძიეთ Google-ში, ან აკრიფეთ URL</translation> +<translation id="2599048253926156421">მომხმარებლის სახელი დაკოპირდა გაცვლის ბუფერში</translation> <translation id="2602501489742255173">დასაწყებად გადაფურცლეთ ზემოთ</translation> <translation id="2603115962224169880">კომპიუტერის გასუფთავება</translation> <translation id="2603355571917519942">Voice Match მზადაა</translation> @@ -1947,6 +1951,7 @@ <translation id="2804043232879091219">ალტერნატიული ბრაუზერის გახსნა ვერ მოხერხდა</translation> <translation id="2804667941345577550">თქვენ გამოხვალთ ამ საიტიდან, მათ შორის, გახსნილ ჩანართებზე</translation> <translation id="2804680522274557040">კამერა გამორთულია</translation> +<translation id="280518252911523675">თუ ძველი პაროლის შეყვანის გარეშე გააგრძელებთ, თქვენი ადგილობრივი მონაცემები წაიშლება. ამ მომხმარებლის ხელახლა დასაყენებლად თქვენი Google ანგარიშით შეხვალთ.</translation> <translation id="2805539617243680210">ყველაფერი მზადაა!</translation> <translation id="2805646850212350655">Microsoft დაშიფვრის ფაილის სისტემა</translation> <translation id="2805756323405976993">პროგრამები</translation> @@ -3062,6 +3067,7 @@ <translation id="3895090224522145010">Kerberos მომხმარებლის სახელი</translation> <translation id="389521680295183045">საიტებს შეუძლია ნებართვის მოთხოვნა, რომ გაიგოს, როდის იყენებთ აქტიურად თქვენს მოწყობილობას</translation> <translation id="3897298432557662720">{COUNT,plural, =1{სურათი}other{# სურათი}}</translation> +<translation id="3897746662269329507">თქვენი <ph name="DEVICE_TYPE" /> შექმნილია თამაშისთვის. მომდევნო ეტაპზე გაიხსნება გაცნობის აპი, რომლიდანაც წვდომა გექნებათ ასობით უახლეს თამაშზე, იხილავთ თამაშებთან დაკავშირებულ შემოთავაზებებს და გაეცნობით თამაშისთვის განკუთვნილ ფუნქციებს, რომლებიც თქვენს მოწყობილობას მოჰყვება.</translation> <translation id="3898233949376129212">მოწყობილობის ენა</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" />-ს სურს: <ph name="FIRST_PERMISSION" /> და <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">აირჩიეთ კლავიატურა</translation> @@ -3212,6 +3218,7 @@ <translation id="4033471457476425443">ახალი საქაღალდის დამატება</translation> <translation id="4033711848170683365">ეს მოქმედება სამუდამოდ წაშლის დათვალიერების მონაცემებს ამ მოწყობილობიდან. ამ პროფილში არსებული Google ანგარიშები შეიძლება გამოიყენებოდეს სხვა აპების მიერ თქვენს <ph name="DEVICE_TYPE" />-ზე. ამ ანგარიშების ამოსაშლელად გადადით აქ: <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">დაცულ საიტებს შეუძლია ისეთი კონტენტის ჩაშენება, როგორიცაა დაუცველი სურათები თუ ვებ-ფრეიმები</translation> +<translation id="4034741552964543387">გაგრძელება ადგილობრივი მონაცემების გარეშე</translation> <translation id="4034824040120875894">პრინტერი</translation> <translation id="4035758313003622889">&ამოცანების მმართველი</translation> <translation id="4035877632587724847">არ დაიშვას</translation> @@ -3403,6 +3410,7 @@ <translation id="4242533952199664413">პარამეტრების გახსნა</translation> <translation id="4242577469625748426">მოწყობილობაზე ვერ განხორციელდა პოლიტიკის პარამეტრების ინსტალაცია: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">პრინტერმა შეაჩერა მუშაობა</translation> +<translation id="424423026762293842">აღადგინეთ თქვენი ადგილობრივი მონაცემები</translation> <translation id="4244238649050961491">სტილუსის მეტი აპის პოვნა</translation> <translation id="4246980464509998944">დამატებითი კომენტარები:</translation> <translation id="424726838611654458">ყოველთვის გაიხსნას Adobe Reader-ში</translation> @@ -4960,6 +4968,7 @@ <translation id="5792728279623964091">შეეხეთ ელკვების ღილაკს</translation> <translation id="5793339252089865437">განახლების მობილური ქსელის მეშვეობით ჩამოტვირთვამ შეიძლება გამოიწვიოს ლიმიტის გადახარჯვასთან დაკავშირებული ხარჯები.</translation> <translation id="5793420564274426163">დაწყვილების დასტური</translation> +<translation id="5793430094159150686">თქვენი პაროლი შეიცვალა. ადგილობრივი მონაცემების აღსადგენად თქვენი ძველი პაროლი უნდა შეიყვანოთ.</translation> <translation id="5794034487966529952">სამუშაო დაფაზე <ph name="DESK_TITLE" /> გახსნილია ბრაუზერის <ph name="NUM_BROWSERS" /> ფანჯარა</translation> <translation id="5794414402486823030">ყოველთვის გახსნა სისტემის დამთვალიერებლით</translation> <translation id="5794700615121138172">Linux-ის გაზიარებული საქაღალდეები</translation> @@ -5884,6 +5893,7 @@ <translation id="6700093763382332031">SIM ბარათის დაბლოკვა ფიჭური ქსელის მეშვეობით</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" />-ის ტრანსლირება</translation> <translation id="6701535245008341853">პროფილის მიღება ვერ მოხერხდა.</translation> +<translation id="6701824422332982935">ამ გაფართოებების გამოსაყენებლად გადატვირთეთ გვერდი</translation> <translation id="6702639462873609204">&რედაქტირება...</translation> <translation id="6703212423117969852">შეგიძლიათ მოგვიანებით ხელახლა ცადოთ Chrome-იდან.</translation> <translation id="6703254819490889819">სარეზერვო ასლით აღდგენა</translation> @@ -7110,6 +7120,7 @@ <translation id="7903742244674067440">თქვენ შენახული გაქვთ სერტიფიკატები, რომლებიც ქვემოთ ჩამოთვლილი სერტიფიკატთა ცენტრების ამოცნობას ახორციელებს</translation> <translation id="7903925330883316394">უტილიტა: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Linux-ის პორტების ხელმისაწვდომობის დაშვება თქვენს ქსელში არსებულ სხვა მოწყობილობებზე.</translation> +<translation id="7906440585529721295">ადგილობრივი მონაცემები წაიშლება</translation> <translation id="7907837847548254634">ფოკუსში მოქცეული ობიექტის ხანმოკლე გამოყოფის ჩვენება</translation> <translation id="7908378463497120834">უკაცრავად, მინიმუმ ერთი დანაყოფი გარე საცავის მოწყობილობაზე ვერ მიმაგრდა.</translation> <translation id="7909324225945368569">გადაარქვით სახელი თქვენს პროფილს</translation> @@ -7447,6 +7458,7 @@ <translation id="822050276545350872">ამიერიდან ლოდინი აღარ მოგიწევთ</translation> <translation id="8221491193165283816">როგორც წესი, თქვენ ბლოკავთ შეტყობინებებს. ამ საიტისგან შეტყობინებების მისაღებად დააწკაპუნეთ აქ.</translation> <translation id="822347941086490485">მიმდინარეობს HID მოწყობილობების პოვნა…</translation> +<translation id="8223573963214454788">გაგრძელება და მონაცემების წაშლა</translation> <translation id="8225046344534779393">შეამოწმეთ კავშირი ინტერნეტთან</translation> <translation id="8225265270453771718">აპლიკაციის ფანჯრის გაზიარება</translation> <translation id="8226222018808695353">აკრძალული</translation> @@ -7547,6 +7559,7 @@ <translation id="8314381333424235892">ნაკლული ან დაუინსტალირებელი გაფართოება</translation> <translation id="831440797644402910">ამ საქაღალდის გახსნა ვერ მოხერხდა</translation> <translation id="8314835274931377415">გსურთ, დაიწყოთ გადამრთველით წვდომის დაყენება?</translation> +<translation id="8317582043908962055">P&DF ტექსტის ამოცნობა</translation> <translation id="8317671367883557781">ქსელის კავშირის დამატება</translation> <translation id="8319414634934645341">გაფართოებული კოდის გამოყენება</translation> <translation id="8321837372750396788">ამ <ph name="DEVICE_TYPE" />-ის მმართველი იქნება <ph name="MANAGER" />.</translation> @@ -8280,7 +8293,6 @@ <translation id="9050666287014529139">საიდუმლო ფრაზა</translation> <translation id="9052404922357793350">დაბლოკვის გაგრძელება</translation> <translation id="9053563360605707198">ორივე მხარეს ბეჭდვა</translation> -<translation id="9053893665344928494">ჩემი არჩევანის დამახსოვრება</translation> <translation id="9055636786322918818">RC4 დაშიფვრის იძულებით გააქტიურება. ამ ვარიანტის გამოყენება ზრდის საფრთხის წინაშე რისკს, ვინაიდან RC4 შიფრატორები დაუცველია.</translation> <translation id="9056810968620647706">შედეგები ვერ მოიძებნა.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ითხოვს შემდეგ კონტენტზე წვდომას:</translation> @@ -8432,6 +8444,7 @@ <translation id="9203398526606335860">&პროფილირება ჩართულია</translation> <translation id="9203904171912129171">აირჩიეთ მოწყობილობა</translation> <translation id="9206889157914079472">სტილუსით ჩანიშვნა ჩაკეტილი ეკრანიდან</translation> +<translation id="9208192193641542858">ადგილობრივი მონაცემები დაცულია თქვენი ძველი პაროლის მეშვეობით. თუ პაროლი ახლახან შეცვალეთ, ცადეთ თქვენი ძველი პაროლის მითითება.</translation> <translation id="9209563766569767417">მიმდინარეობს Linux-ის კონტეინერის დაყენება</translation> <translation id="9209689095351280025">საიტები ვერ გამოიყენებს ქუქი-ჩანაწერებს ვებში თქვენთვის თვალის მისადევნებლად</translation> <translation id="9211177926627870898">საჭიროა განახლება</translation>
diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb index fe22186..335bfcf1 100644 --- a/chrome/app/resources/generated_resources_kk.xtb +++ b/chrome/app/resources/generated_resources_kk.xtb
@@ -8273,7 +8273,6 @@ <translation id="9050666287014529139">Құпия фраза</translation> <translation id="9052404922357793350">Тыйым салуды жалғастыру</translation> <translation id="9053563360605707198">Екі бетіне басып шығару</translation> -<translation id="9053893665344928494">Таңдауымды есте сақтау</translation> <translation id="9055636786322918818">RC4 шифрлауын күшіне енгізу. RC4 шифрлары қауіпті болғандықтан, бұл параметрді пайдалану қауіпті арттырады.</translation> <translation id="9056810968620647706">Сәйкестіктер табылмады.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> келесі мазмұнға рұқсат сұрайды:</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 2a2cfd1..602b055 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -8312,7 +8312,6 @@ <translation id="9050666287014529139">ឃ្លាសម្ងាត់</translation> <translation id="9052404922357793350">បន្តទប់ស្កាត់</translation> <translation id="9053563360605707198">បោះពុម្ពទាំងសងខាង</translation> -<translation id="9053893665344928494">ចងចាំជម្រើសរបស់ខ្ញុំ</translation> <translation id="9055636786322918818">អនុវត្តការអិុនគ្រីប RC4 ។ ការប្រើប្រាស់ជម្រើសនេះបង្កើនហានិភ័យ ពីព្រោះប្រព័ន្ធកូដសម្ងាត់ RC4 មិនមានសុវត្ថិភាពនោះទេ។</translation> <translation id="9056810968620647706">គ្មានរបស់ត្រូវគ្នាបានរកឃើញទេ។</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ចង់ចូលប្រើខ្លឹមសារខាងក្រោម៖</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index 54fa16e..e09284c 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -8305,7 +8305,6 @@ <translation id="9050666287014529139">ಪಾಸ್ಫ್ರೇಸ್</translation> <translation id="9052404922357793350">ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation> <translation id="9053563360605707198">ಎರಡೂ ಬದಿಗಳಲ್ಲಿ ಮುದ್ರಿಸಿ</translation> -<translation id="9053893665344928494">ನನ್ನ ಆಯ್ಕೆಯನ್ನು ನೆನಪಿಡಿ</translation> <translation id="9055636786322918818">RC4 ಎನ್ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ಜಾರಿಗೊಳಿಸಿ. RC4 ಸೈಫರ್ಗಳು ಅಸುರಕ್ಷಿತವಾಗಿರುವುದರಿಂದ ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸುವುದು ನಿಮ್ಮ ಅಪಾಯವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.</translation> <translation id="9056810968620647706">ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಗಳು ಕಂಡುಬಂದಿಲ್ಲ.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ಅವರು ಈ ಕೆಳಗಿನ ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತಿದ್ದಾರೆ:</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index d342148..cab9651f 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -3323,7 +3323,7 @@ <translation id="4116704186509653070">다시 열기</translation> <translation id="4117714603282104018">터치패드 햅틱 반응</translation> <translation id="4118579674665737931">기기를 재부팅한 후 다시 시도해 주세요.</translation> -<translation id="412022815379960229">로그인할 때마다 Google 포토에서 나의 소중한 추억들과 다시 만나세요.</translation> +<translation id="412022815379960229">로그인할 때마다 Google 포토에서 소중한 추억들을 만나보세요.</translation> <translation id="4120388883569225797">보안 키를 재설정할 수 없습니다.</translation> <translation id="4120817667028078560">경로가 너무 김</translation> <translation id="4124823734405044952">보안 키가 재설정되었습니다.</translation> @@ -6964,7 +6964,7 @@ <translation id="7744192722284567281">정보 유출에 포함됨</translation> <translation id="7744649840067671761">할당을 시작하려면 새 스위치 또는 키보드 키를 누르세요. 할당을 삭제하려면 할당된 스위치 또는 키를 누르세요.</translation> -<translation id="7746739418892731373">Google 사진 라이브러리의 사진 및 동영상 하이라이트입니다. <ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" />에서 하이라이트에 표시되는 항목을 제어할 수 있습니다. +<translation id="7746739418892731373">Google 포토 라이브러리의 사진 및 동영상 하이라이트입니다. <ph name="BEGIN_LINK" />photos.google.com/settings<ph name="END_LINK" />에서 하이라이트에 표시되는 항목을 제어할 수 있습니다. <ph name="BREAK" /> <ph name="BREAK" /> 카드 메뉴에서 카드 설정을 관리하거나 Chrome 맞춤설정에서 추가 옵션을 볼 수 있습니다.</translation> @@ -8311,7 +8311,6 @@ <translation id="9050666287014529139">암호</translation> <translation id="9052404922357793350">차단 계속</translation> <translation id="9053563360605707198">양면에 인쇄</translation> -<translation id="9053893665344928494">내 선택 기억하기</translation> <translation id="9055636786322918818">RC4 암호화를 적용합니다. RC4 암호화는 안전하지 않으므로 이 옵션을 사용하면 보안 위험도가 높아집니다.</translation> <translation id="9056810968620647706">일치하는 항목이 없습니다.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" />님이 다음 콘텐츠 액세스하려고 합니다.</translation>
diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb index 7d765fa..5ac9165d 100644 --- a/chrome/app/resources/generated_resources_ky.xtb +++ b/chrome/app/resources/generated_resources_ky.xtb
@@ -8310,7 +8310,6 @@ <translation id="9050666287014529139">Купуя сөз айкашы</translation> <translation id="9052404922357793350">Бөгөттөөнү улантуу</translation> <translation id="9053563360605707198">Эки жагына тең басып чыгаруу</translation> -<translation id="9053893665344928494">Тандаган нерсемди эстеп кал</translation> <translation id="9055636786322918818">RC4 шифрлөөнү иштетүү. RC4 шифрлери кооптуу болгондуктан, бул параметрди колдонуу коркунучту жогорулатат.</translation> <translation id="9056810968620647706">Эч нерсе табылган жок.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> төмөнкү мазмунга киргени жатат:</translation>
diff --git a/chrome/app/resources/generated_resources_lo.xtb b/chrome/app/resources/generated_resources_lo.xtb index 62241af..6d3ae588 100644 --- a/chrome/app/resources/generated_resources_lo.xtb +++ b/chrome/app/resources/generated_resources_lo.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">ໃບຢັ້ງຢືນທີ່ເຄືອຂ່າຍຕ້ອງການ "<ph name="NETWORK_NAME" />" ບໍ່ໄດ້ຖືກຕິດຕັ້ງ ຫຼືໃຊ້ບໍ່ໄດ້ອີກ. ກະລຸນາເອົາໃບຢັ້ງຢືນໃໝ່ ແລະລອງເຊື່ອມຕໍ່ອີກ.</translation> <translation id="1375321115329958930">ລະຫັດຜ່ານທີ່ບັນທຶກໄວ້</translation> <translation id="1375557162880614858">ທ່ານຕ້ອງການເປີດນຳໃຊ້ ChromeVox, ໂປຣແກຣມອ່ານໜ້າຈໍທີ່ມີມາໃນຕົວສຳລັບ ChromeOS Flex ບໍ່?</translation> +<translation id="1375938286942050085">ການຕັ້ງຄ່າສຳເລັດແລ້ວ! ກຽມອຸປະກອນຂອງທ່ານໃຫ້ພ້ອມສຳລັບການຫຼິ້ນເກມຕໍ່ໄປ</translation> <translation id="137651782282853227">ທີ່ຢູ່ທີ່ບັນທຶກໄວ້ຈະປາກົດຢູ່ບ່ອນນີ້</translation> <translation id="1376771218494401509">ຊື່ ແລະ ໜ້າຈໍ...</translation> <translation id="1377600615067678409">ຂ້າມໄປດຽວນີ້</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">ກູ້ຄືນໜ້າເລີ່ມຕົ້ນຕາມຄ່າເລີ່ມຕົ້ນບໍ?</translation> <translation id="1388253969141979417">ໄດ້ຮັບອະນຸຍາດໃຫ້ໃຊ້ໄມໂຄຣໂຟນຂອງທ່ານ</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> ຈະຣີສະຕາດເມື່ອການອັບເດດສຳເລັດແລ້ວ.</translation> +<translation id="1389601498324964367">ບ່ອນຈັດເກັບຂໍ້ມູນທີ່ມີການຈັດການໂຄຕາ</translation> <translation id="139013308650923562">ອະນຸຍາດໃຫ້ໃຊ້ຟອນທີ່ຕິດຕັ້ງຢູ່ອຸປະກອນຂອງທ່ານໄດ້</translation> <translation id="1390548061267426325">ເປີດເປັນແຖບທໍາມະດາ</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> ບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ພິມຫາ <ph name="PRINTER_NAME" />. ກະລຸນາຕິດຕໍ່ຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ.</translation> @@ -1072,6 +1074,7 @@ <translation id="1992924914582925289">ລຶບອອກຈາກອຸປະກອນ</translation> <translation id="1994173015038366702">URL ເວັບໄຊທ໌</translation> <translation id="1995916364271252349">ຄວບຄຸມວ່າເວັບໄຊສາມາດໃຊ້ ແລະ ສະແດງຂໍ້ມູນໃດໄດ້ (ສະຖານທີ່, ກ້ອງ, ປັອບອັບ ແລະ ອື່ນໆອີກ)</translation> +<translation id="1997433994358798851">Chrome ຕ້ອງການການອະນຸຍາດເພື່ອໃຊ້ Bluetooth ເພື່ອເຊື່ອມຕໍ່ກັບອຸປະກອນຂອງທ່ານ</translation> <translation id="1997616988432401742">ໃບຢັ້ງຢືນຂອງທ່ານ</translation> <translation id="1999115740519098545">ຢູ່ໃນຕອນເລີ່ມຕົ້ນ</translation> <translation id="2000419248597011803">ສົ່ງບາງຄຸກກີ້ ແລະ ການຊອກຫາຈາກແຖບທີ່ຢູ່ ແລະ ກ່ອງຊອກຫາໄປໃຫ້ໂປຣແກຣມຊອກຫາເລີ່ມຕົ້ນຂອງທ່ານ</translation> @@ -1738,6 +1741,7 @@ <translation id="25899519884572181">ອອກຈາກໂໝດຜູ້ອ່ານ</translation> <translation id="2593499352046705383">ກ່ອນການເລີ່ມຕົ້ນ, ໃຫ້ກວດສອບວ່າທ່ານໄດ້ສຳຮອງຂໍ້ມູນຂອງທ່ານໄວ້ແລ້ວ. ການຕິດຕັ້ງ <ph name="DEVICE_OS" /> ຈະຂຽນທັບຂໍ້ມູນໃນຮາດໄດຣຟ໌ຂອງທ່ານ. ສຶກສາເພີ່ມເຕີມຢູ່ g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">ຊອກຫາໃນ Google ຫຼື ພິມ URL</translation> +<translation id="2599048253926156421">ສຳເນົາຊື່ຜູ້ໃຊ້ໄປໃສ່ຄລິບບອດແລ້ວ</translation> <translation id="2602501489742255173">ປັດຂຶ້ນເພື່ອເລີ່ມຕົ້ນ</translation> <translation id="2603115962224169880">ອະນາໄມຄອມພິວເຕີ</translation> <translation id="2603355571917519942">Voice Match ພ້ອມແລ້ວ</translation> @@ -1961,6 +1965,7 @@ <translation id="2804043232879091219">ບໍ່ສາມາດເປີດໂປຣແກຣມທ່ອງເວັບສຳຮອງໄດ້</translation> <translation id="2804667941345577550">ທ່ານຈະຖືກນຳອອກຈາກລະບົບເວັບໄຊນີ້, ຮວມທັງໃນແຖບທີ່ເປີດຢູ່</translation> <translation id="2804680522274557040">ປິດກ້ອງຖ່າຍຮູບແລ້ວ</translation> +<translation id="280518252911523675">ຖ້າທ່ານສືບຕໍ່ໂດຍບໍ່ໄດ້ປ້ອນລະຫັດເກົ່າໃສ່, ຂໍ້ມູນພາຍໃນຂອງທ່ານຈະຖືກລຶບ. ທ່ານຈະຕ້ອງເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ Google ຂອງທ່ານ ເພື່ອຕັ້ງຜູ້ໃຊ້ນີ້ອີກຄັ້ງ.</translation> <translation id="2805539617243680210">ທ່ານພ້ອມໝົດແລ້ວ!</translation> <translation id="2805646850212350655">ລະບົບໄຟລ໌ການໃສ່ລະຫັດ Microsoft</translation> <translation id="2805756323405976993">ແອັບ</translation> @@ -3076,6 +3081,7 @@ <translation id="3895090224522145010">ຊື່ຜູ້ໃຊ້ Kerberos</translation> <translation id="389521680295183045">ເວັບໄຊສາມາດຂໍຂໍ້ມູນວ່າທ່ານກຳລັງໃຊ້ອຸປະກອນຂອງທ່ານຢູ່ບໍ່</translation> <translation id="3897298432557662720">{COUNT,plural, =1{ຮູບ}other{# ຮູບ}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> ຂອງທ່ານຖືກສ້າງມາເພື່ອການຫຼິ້ນເກມ. ແອັບ Explore ຈະເປີດຂຶ້ນຕໍ່ໄປ ເຊິ່ງທ່ານສາມາດເຂົ້າເຖິງຫຼາຍຮ້ອຍເກມຫຼ້າສຸດ, ເບິ່ງຂໍ້ສະເໜີຂອງການຫຼິ້ນເກມ ແລະ ຄົ້ນພົບຄຸນສົມບັດຂອງເກມທີ່ມາກັບອຸປະກອນຂອງທ່ານ.</translation> <translation id="3898233949376129212">ພາສາຂອງອຸປະກອນ</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> ຕ້ອງການ: <ph name="FIRST_PERMISSION" /> ແລະ <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">ເລືອກແປ້ນພິມ</translation> @@ -3226,6 +3232,7 @@ <translation id="4033471457476425443">ເພີ່ມໂຟນເດີໃໝ່</translation> <translation id="4033711848170683365">ນີ້ຈະລຶບຂໍ້ມູນການນຳໃຊ້ອອກຈາກອຸປະກອນນີ້ຖາວອນ. ບັນຊີ Google ໃນໂປຣໄຟລ໌ນີ້ອາດຖືກໃຊ້ໂດຍແອັບອື່ນຢູ່ <ph name="DEVICE_TYPE" /> ຂອງທ່ານ. ທ່ານສາມາດລຶບບັນຊີເຫຼົ່ານີ້ອອກໄດ້ໃນ <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">ເວັບໄຊທີ່ເຂົ້າລະຫັດອາດຝັງເນື້ອຫາ ເຊັ່ນ: ກອບຮູບ ຫຼື ເວັບທີ່ບໍ່ປອດໄພ</translation> +<translation id="4034741552964543387">ສືບຕໍ່ໂດຍບໍ່ມີຂໍ້ມູນພາຍໃນ</translation> <translation id="4034824040120875894">ເຄື່ອງພິມ</translation> <translation id="4035758313003622889">ຕົວຈັດການໜ້າວຽກ</translation> <translation id="4035877632587724847">ບໍ່ອະນຸຍາດ</translation> @@ -3417,6 +3424,7 @@ <translation id="4242533952199664413">ເປີດການຕັ້ງຄ່າ</translation> <translation id="4242577469625748426">ຕິດຕັ້ງການຕັ້ງຄ່ານະໂຍບາຍຢູ່ໃນເຄື່ອງນີ້ບໍ່ສໍາເລັດ: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">ເຄື່ອງພິມຢຸດເຮັດວຽກຊົ່ວຄາວ</translation> +<translation id="424423026762293842">ກູ້ຄືນຂໍ້ມູນພາຍໃນຂອງທ່ານ</translation> <translation id="4244238649050961491">ຊອກຫາແອັບປາຍປາກກາເພີ່ມເຕີມ</translation> <translation id="4246980464509998944">ຄໍາເຫັນເພີ່ມເຕີມ:</translation> <translation id="424726838611654458">ເປີດຢູ່ໃນ Adobe Reader</translation> @@ -4974,6 +4982,7 @@ <translation id="5792728279623964091">ກະລຸນາແຕະປຸ່ມປິດເປີດເຄື່ອງຂອງທ່ານ</translation> <translation id="5793339252089865437">ຖ້າທ່ານດາວໂຫຼດການອັບເດດຜ່ານເຄືອຂ່າຍມືຖືຂອງທ່ານ, ມັນອາດຈະເຮັດໃຫ້ເກີດການຮຽກເກັບເງິນເພີ່ມເຕີມ.</translation> <translation id="5793420564274426163">ການຢືນຢັນການຈັບຄູ່</translation> +<translation id="5793430094159150686">ລະຫັດຜ່ານຂອງທ່ານໄດ້ຮັບການປ່ຽນແປງແລ້ວ. ເພື່ອກູ້ຄືນຂໍ້ມູນພາຍໃນຂອງທ່ານ, ທ່ານຈະຕ້ອງປ້ອນລະຫັດຜ່ານເກົ່າຂອງທ່ານເຂົ້າ.</translation> <translation id="5794034487966529952">ໂຕະ <ph name="DESK_TITLE" /> ມີ <ph name="NUM_BROWSERS" /> ໜ້າຈໍໂປຣແກຣມທ່ອງເວັບເປີດຢູ່</translation> <translation id="5794414402486823030">ເປີດກັບຕົວເບິ່ງລະບົບທຸກຄັ້ງ</translation> <translation id="5794700615121138172">ໂຟນເດີທີ່ແບ່ງປັນຂອງ Linux</translation> @@ -5898,6 +5907,7 @@ <translation id="6700093763382332031">ການລັອກ SIM ມືຖື</translation> <translation id="6700480081846086223">ຄາສທ໌ <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">ບໍ່ສາມາດເອົາໂປຣໄຟລ໌ໄດ້.</translation> +<translation id="6701824422332982935">ໂຫຼດໜ້າຄືນໃໝ່ເພື່ອໃຊ້ສ່ວນຂະຫຍາຍເຫຼົ່ານີ້</translation> <translation id="6702639462873609204">ແກ້ໄຂ...</translation> <translation id="6703212423117969852">ທ່ານສາມາດລອງໃໝ່ພາຍຫຼັງໄດ້ໃນ Chrome.</translation> <translation id="6703254819490889819">ກູ້ຂໍ້ມູນສຳຮອງຄືນມາ</translation> @@ -7124,6 +7134,7 @@ <translation id="7903742244674067440">ທ່ານມີໃບຢັ້ງຢືນຢູ່ໃນໄຟລ໌ທີ່ລະບຸໜ່ວຍງານອອກໃບຢັ້ງຢືນເຫຼົ່ານີ້</translation> <translation id="7903925330883316394">ການໃຊ້ປະໂຫຍດ: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">ເຮັດໃຫ້ຜອດ Linux ໃຊ້ໄດ້ສຳລັບອຸປະກອນອື່ນໃນເຄືອຂ່າຍຂອງທ່ານ.</translation> +<translation id="7906440585529721295">ຂໍ້ມູນພາຍໃນຈະຖືກລຶບ</translation> <translation id="7907837847548254634">ສະແດງໄຮໄລ້ດ່ວນໃນວັດຖຸທີ່ໂຟກັສ</translation> <translation id="7908378463497120834">ຂໍອະໄພ, ຢ່າງໜ້ອຍສ່ວນແບ່ງໜຶ່ງຢູ່ໃນອຸປະກອນເກັບຂໍ້ມູນທາງນອກຂອງທ່ານບໍ່ສາມາດຕໍ່ໄດ້.</translation> <translation id="7909324225945368569">ປ່ຽນຊື່ໂປຣໄຟລ໌ຂອງທ່ານ</translation> @@ -7461,6 +7472,7 @@ <translation id="822050276545350872">ນັບຈາກນີ້ໄປ, ບໍ່ຈຳເປັນຕ້ອງລໍຖ້າແລ້ວ</translation> <translation id="8221491193165283816">ໂດຍປົກກະຕິແລ້ວທ່ານບລັອກການແຈ້ງເຕືອນ. ເພື່ອອະນຸຍາດໃຫ້ເວັບໄຊນີ້ແຈ້ງເຕືອນທ່ານ, ກະລຸນາຄລິກບ່ອນນີ້.</translation> <translation id="822347941086490485">ກຳລັງຊອກຫາອຸປະກອນ HID...</translation> +<translation id="8223573963214454788">ສືບຕໍ່ ແລະ ລຶບຂໍ້ມູນ</translation> <translation id="8225046344534779393">ກວດເບິ່ງການເຊື່ອມຕໍ່ອິນເຕີເນັດ</translation> <translation id="8225265270453771718">ແບ່ງປັນໜ້າຈໍແອັບພລິເຄຊັນ</translation> <translation id="8226222018808695353">ຫ້າມແລ້ວ</translation> @@ -7561,6 +7573,7 @@ <translation id="8314381333424235892">ສ່ວນຂະຫຍາຍບໍ່ເຫັນ ຫຼື ບໍ່ໄດ້ຕິດຕັ້ງ</translation> <translation id="831440797644402910">ບໍ່ສາມາດເປີດໂຟນເດີນີ້ໄດ້</translation> <translation id="8314835274931377415">ເລີ່ມການຕັ້ງຄ່າການເຂົ້າເຖິງດ້ວຍສະວິດບໍ?</translation> +<translation id="8317582043908962055">ຮັບຮູ້ຂໍ້ຄວາມ PDF</translation> <translation id="8317671367883557781">ເພີ່ມການເຊື່ອມຕໍ່ເຄືອຂ່າຍ</translation> <translation id="8319414634934645341">ການໃຊ້ຄີບອດຂະຫຍາຍ</translation> <translation id="8321837372750396788"><ph name="DEVICE_TYPE" /> ນີ້ຈະຖືກຈັດການໂດຍ <ph name="MANAGER" />.</translation> @@ -8294,7 +8307,6 @@ <translation id="9050666287014529139">ວະລີຜ່ານ</translation> <translation id="9052404922357793350">ສືບຕໍ່ບລັອກໄວ້</translation> <translation id="9053563360605707198">ພິມທັງສອງດ້ານ</translation> -<translation id="9053893665344928494">ຈື່ການເລືອກຂອງຂ້ອຍ</translation> <translation id="9055636786322918818">ບັງຄັບໃຊ້ການເຂົ້າລະຫັດ RC4. ການໃຊ້ຕົວເລືອກນີ້ເພີ່ມຄວາມສ່ຽງຂອງທ່ານ ເພາະວ່າລະຫັດລັບ RC4 ບໍ່ປອດໄພ.</translation> <translation id="9056810968620647706">ບໍ່ພົບການຈັບຄູ່ອັນໃດ.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ຕ້ອງການເຂົ້າເຖິງເນື້ອຫາຕໍ່ໄປນີ້:</translation> @@ -8446,6 +8458,7 @@ <translation id="9203398526606335860">ການສ້າງໂປຣໄຟລ໌ເປີດໃຊ້ງານແລ້ວ</translation> <translation id="9203904171912129171">ເລືອກອຸປະກອນ</translation> <translation id="9206889157914079472">ຈົດບັນທຶກດ້ວຍປາຍປາກກາຈາກໜ້າຈໍລັອກ</translation> +<translation id="9208192193641542858">ຂໍ້ມູນພາຍໃນແມ່ນໄດ້ຮັບການປົກປ້ອງດ້ວຍລະຫັດຜ່ານຂອງທ່ານເອງ. ຖ້າທ່ານໄດ້ປ່ຽນລະຫັດຜ່ານໃນມໍ່ໆນີ້, ໃຫ້ລອງໃສ່ລະຫັດຜ່ານເກົ່າຂອງທ່ານອີກຄັ້ງ.</translation> <translation id="9209563766569767417">ກຳລັງກວດການຕັ້ງຄ່າກ່ອງບັນຈຸ Linux</translation> <translation id="9209689095351280025">ເວັບໄຊບໍ່ສາມາດໃຊ້ຄຸກກີ້ທີ່ຕິດຕາມທ່ານໃນທົ່ວເວັບໄຊໄດ້</translation> <translation id="9211177926627870898">ຈຳເປັນຕ້ອງອັບເດດ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index f19674a..96b9b0a 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -8324,7 +8324,6 @@ <translation id="9050666287014529139">Slaptafrazė</translation> <translation id="9052404922357793350">Toliau blokuoti</translation> <translation id="9053563360605707198">Spausdinti abiejose pusėse</translation> -<translation id="9053893665344928494">Prisiminti mano pasirinkimą</translation> <translation id="9055636786322918818">Taikyti RC4 šifruotę. Naudojant šią parinktį padidėja rizika, nes RC4 šifrai nesaugūs.</translation> <translation id="9056810968620647706">Nerasta jokių atitikčių.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> nori prieigos prie toliau nurodyto turinio:</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index 74d97021f..45623ad9 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -8299,7 +8299,6 @@ <translation id="9050666287014529139">Ieejas frāze</translation> <translation id="9052404922357793350">Turpināt bloķēt</translation> <translation id="9053563360605707198">Drukāt abās pusēs</translation> -<translation id="9053893665344928494">Atcerēties manu izvēli</translation> <translation id="9055636786322918818">Piemērot RC4 šifrēšanu. Ja izmantosiet šo opciju, palielināsies risks, jo RC4 šifri nav droši.</translation> <translation id="9056810968620647706">Atbilstoši rezultāti nav atrasti.</translation> <translation id="9057007989365783744">Lietotājs <ph name="SUPERVISED_USER_NAME" /> vēlas piekļūt šādam saturam:</translation>
diff --git a/chrome/app/resources/generated_resources_mk.xtb b/chrome/app/resources/generated_resources_mk.xtb index 1ba1542..7aae07b4 100644 --- a/chrome/app/resources/generated_resources_mk.xtb +++ b/chrome/app/resources/generated_resources_mk.xtb
@@ -8317,7 +8317,6 @@ <translation id="9050666287014529139">Пристапна фраза</translation> <translation id="9052404922357793350">Продолжи со блокирање</translation> <translation id="9053563360605707198">Двострано печатење</translation> -<translation id="9053893665344928494">Запомни го мојот избор</translation> <translation id="9055636786322918818">Наметнете RC4-шифрирање. Ако ја користите опцијава, ви се зголемува ризикот бидејќи RC4-шифрите се небезбедни.</translation> <translation id="9056810968620647706">Не се најдени совпаѓања.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> сака да пристапи до следниве содржини:</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index bd27e809..36d7088 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -8293,7 +8293,6 @@ <translation id="9050666287014529139">പാസ്ഫ്രെയ്സ്</translation> <translation id="9052404922357793350">ബ്ലോക്ക് ചെയ്യുന്നത് തുടരുക</translation> <translation id="9053563360605707198">രണ്ട് വശങ്ങളിലും പ്രിന്റ് ചെയ്യുക</translation> -<translation id="9053893665344928494">എന്റെ ചോയ്സ് ഓർമ്മിക്കുക</translation> <translation id="9055636786322918818">RC4 എൻക്രിപ്ഷൻ നടപ്പിലാക്കുക. RC4 രഹസ്യലിപി സുരക്ഷിതമല്ലാത്തതിനാൽ ഈ ഓപ്ഷൻ ഉപയോഗിക്കുന്നത് അപകടസാധ്യത വർദ്ധിപ്പിക്കുന്നു.</translation> <translation id="9056810968620647706">പൊരുത്തങ്ങളൊന്നും കണ്ടെത്തിയില്ല.</translation> <translation id="9057007989365783744">ചുവടെയുള്ള ഉള്ളടക്കം ആക്സസ് ചെയ്യാൻ <ph name="SUPERVISED_USER_NAME" /> ആഗ്രഹിക്കുന്നു:</translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index 479d11d9..bd3363c 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -8301,7 +8301,6 @@ <translation id="9050666287014529139">Нэвтрэх хэллэг</translation> <translation id="9052404922357793350">Үргэлжлүүлэн хориглох</translation> <translation id="9053563360605707198">Хоёр тал дээр хэвлэх</translation> -<translation id="9053893665344928494">Миний сонголтыг санах</translation> <translation id="9055636786322918818">RC4 шифрлэлтийг мөрдүүлнэ үү. RC4 цифр нь аюултай учир энэхүү сонголтыг ашигласнаар таны эрсдэлийг нэмэгдүүлнэ.</translation> <translation id="9056810968620647706">Ямар ч таарах зүйл олдсонгүй.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> нь дараах контентод хандахыг хүсэж байна:</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 74dd180..61bdd56 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">नेटवर्क "<ph name="NETWORK_NAME" />" द्वारे आवश्यक सर्टिफिकेट एकतर स्थापित झाले नाही किंवा यापुढे वैध नाही. कृपया एक नवीन सर्टिफिकेट मिळवा आणि पुन्हा कनेक्ट करण्याचा प्रयत्न करा.</translation> <translation id="1375321115329958930">सेव्ह केलेले पासवर्ड</translation> <translation id="1375557162880614858">तुम्हाला ChromeOS Flex साठी बिल्ट-इन स्क्रीन रीडर असलेले ChromeVox अॅक्टिव्हेट करायचे आहे का?</translation> +<translation id="1375938286942050085">सेटअप पूर्ण झाले आहे! तुमचे डिव्हाइस पुढील गेमिंगसाठी तयार करा</translation> <translation id="137651782282853227">सेव्ह केलेले पत्ते येथे दिसून येतील</translation> <translation id="1376771218494401509">नाव आणि विंडो...</translation> <translation id="1377600615067678409">सध्यासाठी वगळा</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">डीफॉल्ट स्टार्टअप पेज रिस्टोअर करायचे?</translation> <translation id="1388253969141979417">तुमचा मायक्रोफोन वापरण्याची अनुमती आहे</translation> <translation id="1388728792929436380">अपडेट पूर्ण झाल्यावर <ph name="DEVICE_TYPE" /> रीस्टार्ट होईल.</translation> +<translation id="1389601498324964367">कोट्याद्वारे व्यवस्थापित स्टोरेज</translation> <translation id="139013308650923562">तुमच्या डिव्हाइसवर इंस्टॉल केलेले फाँट वापरण्याची अनुमती द्या</translation> <translation id="1390548061267426325">नियमित टॅब म्हणून उघडा</translation> <translation id="1390907927270446471"><ph name="PRINTER_NAME" /> वर प्रिंट करण्यासाठी<ph name="PROFILE_USERNAME" /> ना परवानगी नाही. कृपया तुमच्या अॅडमिनिस्ट्रेटरशी संपर्क साधा.</translation> @@ -1074,6 +1076,7 @@ <translation id="1992924914582925289">डिव्हाइसमधून काढून टाका</translation> <translation id="1994173015038366702">साइट URL</translation> <translation id="1995916364271252349">साइट कोणती माहिती वापरू आणि दाखवू शकतात ते नियंत्रित करते (स्थान, कॅमेरा, पॉप-अप आणि बरेच काही)</translation> +<translation id="1997433994358798851">तुमच्या डिव्हाइसशी कनेक्ट करण्यासाठी ब्लूटूथ वापरण्याकरिता Chrome ला परवानगीची आवश्यकता आहे</translation> <translation id="1997616988432401742">तुमची प्रमाणपत्रे</translation> <translation id="1999115740519098545">स्टार्टअप वर</translation> <translation id="2000419248597011803">ॲड्रेस बार आणि सर्च बॉक्समधून तुमच्या डीफॉल्ट शोध इंजिनला काही कुकीज आणि शोध पाठवते</translation> @@ -1738,6 +1741,7 @@ <translation id="25899519884572181">वाचक मोडमधून बाहेर पडा</translation> <translation id="2593499352046705383">सुरुवात करण्यापूर्वी, तुम्ही तुमच्या सर्व डेटाचा बॅकअप घेतला आहे याची खात्री करा. <ph name="DEVICE_OS" /> हे इंस्टॉल केल्याने, तुमची हार्ड ड्राइव्ह ओव्हरराइट होईल. g.co/flex/InstallGuide येथे अधिक जाणून घ्या.</translation> <translation id="2594999711683503743">Google वर शोधा किंवा URL टाइप करा</translation> +<translation id="2599048253926156421">वापरकर्ता नाव क्लिपबोर्डवर कॉपी केले</translation> <translation id="2602501489742255173">सुरू करण्यासाठी वर स्वाइप करा</translation> <translation id="2603115962224169880">काँप्युटर साफ करा</translation> <translation id="2603355571917519942">Voice Match तयार आहे</translation> @@ -1961,6 +1965,7 @@ <translation id="2804043232879091219">पर्यायी ब्राउझर उघडता आला नाही</translation> <translation id="2804667941345577550">उघड्या असलेल्या टॅबच्या समावेशासह तुम्हाला या साइटमधून साइन आउट केले जाईल.</translation> <translation id="2804680522274557040">कॅमेरा बंद केला आहे</translation> +<translation id="280518252911523675">तुम्ही तुमचा जुना पासवर्ड एंटर न करता पुढे सुरू ठेवल्यास, तुमचा स्थानिक डेटा हटवला जाईल. हा वापरकर्ता पुन्हा सेट करण्यासाठी, तुम्ही तुमचे Google खाते वापरून साइन इन कराल.</translation> <translation id="2805539617243680210">तुम्ही पूर्णपणे तयार आहात!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">ॲप्लिकेशन</translation> @@ -3076,6 +3081,7 @@ <translation id="3895090224522145010">Kerberos वापरकर्ता नाव</translation> <translation id="389521680295183045">तुम्ही तुमचे डिव्हाइस सक्रियपणे कधी वापरता त्याबद्दल जाणून घेण्यासाठी साइट विचारू शकतात</translation> <translation id="3897298432557662720">{COUNT,plural, =1{इमेज}other{# इमेज}}</translation> +<translation id="3897746662269329507">तुमचे <ph name="DEVICE_TYPE" /> गेमिंगसाठी तयार केलेले आहे. पुढे Explore अॅप उघडेल, ज्यामध्ये तुम्ही शेकडो नवीनतम गेम अॅक्सेस करू शकता, गेमिंगच्या ऑफर पाहू शकता आणि तुमच्या डिव्हाइसमध्ये असलेली गेमिंगसंबंधित वैशिष्ट्ये पाहू शकता.</translation> <translation id="3898233949376129212">डिव्हाइसची भाषा</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> ला हे करायचे आहे: <ph name="FIRST_PERMISSION" /> आणि <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">कीबोर्ड निवडा</translation> @@ -3226,6 +3232,7 @@ <translation id="4033471457476425443">नवीन फोल्डर जोडा</translation> <translation id="4033711848170683365">यामुळे या डिव्हाइसवरून ब्राउझिंग डेटा कायमचा हटवला जाईल. या प्रोफाइलमधील Google खाती इतर अॅप्सद्वारे तुमच्या <ph name="DEVICE_TYPE" /> वर वापरली जाऊ शकतात. तुम्ही ही खाती <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> येथे हटवू शकता.</translation> <translation id="4033963223187371752">सुरक्षित साइट या इमेज किंवा वेब फ्रेम यांसारखा सुरक्षित नसलेला आशय एम्बेड करू शकतात</translation> +<translation id="4034741552964543387">स्थानिक डेटाशिवाय पुढे सुरू ठेवा</translation> <translation id="4034824040120875894">प्रिंटर</translation> <translation id="4035758313003622889">&कार्य व्यवस्थापक</translation> <translation id="4035877632587724847">अनुमती देऊ नका</translation> @@ -3415,6 +3422,7 @@ <translation id="4242533952199664413">सेटिंग्ज उघडा</translation> <translation id="4242577469625748426">डिव्हाइसवर धोरण सेटिंग्ज इंस्टॉल करण्यात अयशस्वी: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">प्रिंटर थांबवला आहे</translation> +<translation id="424423026762293842">तुमचा स्थानिक डेटा रिस्टोअर करा</translation> <translation id="4244238649050961491">अधिक स्टायलस अॅप्स शोधा</translation> <translation id="4246980464509998944">अतिरिक्त टिप्पण्या:</translation> <translation id="424726838611654458">Adobe Reader मध्ये नेहमी उघडा</translation> @@ -4973,6 +4981,7 @@ <translation id="5792728279623964091">कृपया तुमच्या पॉवर बटणावर टॅप करा</translation> <translation id="5793339252089865437">तुम्ही तुमच्या मोबाइल नेटवर्कवरून अपडेट डाउनलोड केल्यास, याचा परिणाम म्हणून अतिरिक्त शुल्क आकारले जाऊ शकते.</translation> <translation id="5793420564274426163">पेअर करण्याशी संबंधित कंफर्मेशन</translation> +<translation id="5793430094159150686">तुमचा पासवर्ड बदलला आहे. तुमचा स्थानिक डेटा रिस्टोअर करण्यासाठी, तुम्ही तुमचा जुना पासवर्ड एंटर करणे आवश्यक आहे.</translation> <translation id="5794034487966529952">डेस्क <ph name="DESK_TITLE" /> वर <ph name="NUM_BROWSERS" /> ब्राउझर विंडो सुरू आहेत</translation> <translation id="5794414402486823030">नेहमी सिस्टम दर्शकासह उघडा</translation> <translation id="5794700615121138172">Linux ने शेअर केलेले फोल्डर</translation> @@ -5898,6 +5907,7 @@ <translation id="6700093763382332031">मोबाइल सिम लॉक</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> कास्ट करा</translation> <translation id="6701535245008341853">प्रोफाइल मिळविणे शक्य नाही.</translation> +<translation id="6701824422332982935">ही एक्स्टेंशन वापरण्यासाठी पेज रीलोड करा</translation> <translation id="6702639462873609204">&संपादन...</translation> <translation id="6703212423117969852">तुम्ही Chrome मध्ये नंतर पुन्हा प्रयत्न करू शकता.</translation> <translation id="6703254819490889819">बॅकअप रिस्टोअर करा</translation> @@ -7123,6 +7133,7 @@ <translation id="7903742244674067440">तुमच्याकडे फाइलवर अशी सर्टिफिकेट आहेत जी या सर्टिफिकेट अधिकार्यांची ओळख पटवतात</translation> <translation id="7903925330883316394">उयुक्तता: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">तुमच्या नेटवर्कवरील इतर डिव्हाइसना Linux पोर्ट उपलब्ध करून द्या.</translation> +<translation id="7906440585529721295">स्थानिक डेटा हटवला जाईल</translation> <translation id="7907837847548254634">फोकस केलेल्या ऑब्जेक्टवर झटपट हायलाइट दाखवा</translation> <translation id="7908378463497120834">सॉरी, तुमच्या बाह्य डिव्हाइस स्टोरेजमधील कमीत कमी एक विभाग बसविला जाऊ शकत नाही.</translation> <translation id="7909324225945368569">तुमच्या प्रोफाइलचे नाव बदला</translation> @@ -7461,6 +7472,7 @@ <translation id="822050276545350872">इथून पुढे, प्रतीक्षा करण्याची आवश्यकता नाही</translation> <translation id="8221491193165283816">तुम्ही सहसा सूचना ब्लॉक करता. या साइटला तुम्हाला सूचित करू देण्यासाठी, येथे क्लिक करा.</translation> <translation id="822347941086490485">HID डिव्हाइस शोधत आहे…</translation> +<translation id="8223573963214454788">पुढे सुरू ठेवा आणि डेटा हटवा</translation> <translation id="8225046344534779393">इंटरनेट कनेक्शन तपासा</translation> <translation id="8225265270453771718">ॲप्लिकेशन विंडो शेअर करा</translation> <translation id="8226222018808695353">निषिद्ध केलेले</translation> @@ -7561,6 +7573,7 @@ <translation id="8314381333424235892">गहाळ किंवा अनइंस्टॉल केलेले एक्स्टेंशन</translation> <translation id="831440797644402910">हे फोल्डर उघडू शकत नाही</translation> <translation id="8314835274931377415">स्विच अॅक्सेसचा सेटअप सुरू करायचा आहे का?</translation> +<translation id="8317582043908962055">P&DF मजकूर ओळखा</translation> <translation id="8317671367883557781">नेटवर्क कनेक्शन जोडा</translation> <translation id="8319414634934645341">विस्तारित की वापर</translation> <translation id="8321837372750396788">हे <ph name="DEVICE_TYPE" /> <ph name="MANAGER" /> द्वारे व्यवस्थापित केले जाईल.</translation> @@ -8295,7 +8308,6 @@ <translation id="9050666287014529139">सांकेतिक पासफ्रेझ</translation> <translation id="9052404922357793350">ब्लॉक करणे सुरू ठेवा</translation> <translation id="9053563360605707198">दोन्ही बाजूंवर प्रिंट करा</translation> -<translation id="9053893665344928494">माझी निवड लक्षात ठेवा</translation> <translation id="9055636786322918818">RC4 एंक्रिप्शन लागू करा. हा पर्याय वापरल्याने तुमचा धोका वाढतो, कारण RC4 सायफर असुरक्षित आहेत.</translation> <translation id="9056810968620647706">जुळण्या आढळल्या नाहीत.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ला खालील आशय ॲक्सेस करायचा आहे:</translation> @@ -8447,6 +8459,7 @@ <translation id="9203398526606335860">&प्रोफाइलिंग सक्षम</translation> <translation id="9203904171912129171">एक डिव्हाइस निवडा</translation> <translation id="9206889157914079472">लॉक स्क्रीनवरून स्टायलस टिपा घेणे</translation> +<translation id="9208192193641542858">स्थानिक डेटा तुमच्या जुन्या पासवर्डने संरक्षित केलेला आहे. तुम्ही अलीकडेच तुमचा पासवर्ड बदलला असल्यास, पुन्हा जुना पासवर्ड वापरून पहा.</translation> <translation id="9209563766569767417">Linux कंटेनर सेटअप तपासत आहे</translation> <translation id="9209689095351280025">साइट संपूर्ण वेबवर तुमचा माग ठेवणाऱ्या कुकी वापरू शकत नाहीत</translation> <translation id="9211177926627870898">अपडेट आवश्यक</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 927d1c3..fba4406 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Sijil yang diperlukan oleh rangkaian "<ph name="NETWORK_NAME" />" sama ada tidak dipasang atau tidak lagi sah. Sila dapatkan sijil baharu dan cuba menyambung semula.</translation> <translation id="1375321115329958930">Kata Laluan Disimpan</translation> <translation id="1375557162880614858">Adakah anda mahu mengaktifkan ChromeVox, pembaca skrin terbina dalam untuk Chrome OS Flex?</translation> +<translation id="1375938286942050085">Persediaan selesai! Sediakan peranti anda untuk permainan</translation> <translation id="137651782282853227">Alamat yang disimpan akan kelihatan di sini</translation> <translation id="1376771218494401509">Namakan &Tetingkap...</translation> <translation id="1377600615067678409">Langkau pada masa ini</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Pulihkan halaman permulaan lalai?</translation> <translation id="1388253969141979417">Dibenarkan untuk menggunakan mikrofon anda</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> akan dimulakan semula apabila kemaskinian selesai.</translation> +<translation id="1389601498324964367">Storan terurus kuota</translation> <translation id="139013308650923562">Dibenarkan untuk menggunakan fon yang dipasang pada peranti anda</translation> <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> tidak diizinkan untuk mencetak ke <ph name="PRINTER_NAME" />. Sila hubungi pentadbir anda.</translation> @@ -1075,6 +1077,7 @@ <translation id="1992924914582925289">Alih keluar daripada peranti</translation> <translation id="1994173015038366702">URL tapak</translation> <translation id="1995916364271252349">Mengawal jenis maklumat yang boleh digunakan dan ditunjukkan oleh tapak (lokasi, kamera, tetingkap timbul dan pelbagai lagi)</translation> +<translation id="1997433994358798851">Chrome memerlukan kebenaran untuk menggunakan Bluetooth untuk menyambung ke peranti anda</translation> <translation id="1997616988432401742">Sijil anda</translation> <translation id="1999115740519098545">Pada permulaan</translation> <translation id="2000419248597011803">Menghantar beberapa kuki dan carian daripada bar alamat dan kotak carian ke enjin carian lalai anda</translation> @@ -1739,6 +1742,7 @@ <translation id="25899519884572181">Keluar daripada mod pembaca</translation> <translation id="2593499352046705383">Sebelum bermula, pastikan data anda sudah disandarkan. Pemasangan <ph name="DEVICE_OS" /> akan menulis ganti pemacu keras anda. Ketahui lebih lanjut di g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Cari Google atau taipkan URL</translation> +<translation id="2599048253926156421">Nama pengguna disalin kepada papan keratan</translation> <translation id="2602501489742255173">Leret ke atas untuk memulakan</translation> <translation id="2603115962224169880">Bersihkan komputer</translation> <translation id="2603355571917519942">Voice Match sudah sedia</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">Penyemak imbas alternatif tidak boleh dibuka</translation> <translation id="2804667941345577550">Anda akan dilog keluar daripada tapak ini, termasuk dalam tab yang terbuka</translation> <translation id="2804680522274557040">Kamera dimatikan</translation> +<translation id="280518252911523675">Jika anda meneruskan proses tanpa memasukkan kata laluan lama anda, data setempat anda akan dipadamkan. Anda akan log masuk dengan Google Account anda untuk menyediakan pengguna ini sekali lagi.</translation> <translation id="2805539617243680210">Anda sudah bersedia!</translation> <translation id="2805646850212350655">Sistem Fail Penyulitan Microsoft</translation> <translation id="2805756323405976993">Apl</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">Nama pengguna Kerberos</translation> <translation id="389521680295183045">Laman boleh meminta untuk mengetahui waktu anda aktif menggunakan peranti</translation> <translation id="3897298432557662720">{COUNT,plural, =1{satu imej}other{# imej}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> anda dibina untuk permainan. Seterusnya apl Teroka akan dibuka, yang membolehkan anda mengakses ratusan permainan terbaharu, melihat tawaran permainan dan menemukan ciri permainan yang disertakan dengan peranti anda.</translation> <translation id="3898233949376129212">Bahasa peranti</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> ingin: <ph name="FIRST_PERMISSION" /> dan <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Pilih papan kekunci</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">Tambahkan folder baharu</translation> <translation id="4033711848170683365">Tindakan ini akan memadamkan data semakan imbas anda daripada peranti ini selama-lamanya. Google Account dalam profil ini mungkin digunakan oleh apl lain pada <ph name="DEVICE_TYPE" /> anda. Anda boleh mengalih keluar akaun ini dalam <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Laman selamat mungkin membenamkan kandungan seperti imej atau bingkai web yang tidak selamat</translation> +<translation id="4034741552964543387">Teruskan tanpa data setempat</translation> <translation id="4034824040120875894">Pencetak</translation> <translation id="4035758313003622889">&Pengurus tugas</translation> <translation id="4035877632587724847">Jangan benarkan</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">Buka tetapan</translation> <translation id="4242577469625748426">Gagal memasang tetapan dasar pada peranti: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Pencetak dijeda</translation> +<translation id="424423026762293842">Pulihkan data setempat anda</translation> <translation id="4244238649050961491">Dapatkan lagi apl stilus</translation> <translation id="4246980464509998944">Ulasan tambahan:</translation> <translation id="424726838611654458">Sentiasa buka dalam Adobe Reader</translation> @@ -4976,6 +4984,7 @@ <translation id="5792728279623964091">Sila ketik butang kuasa anda</translation> <translation id="5793339252089865437">Jika anda memuat turun kemas kini melalui rangkaian mudah alih, anda mungkin akan dikenakan caj lebihan.</translation> <translation id="5793420564274426163">Pengesahan Gandingan</translation> +<translation id="5793430094159150686">Kata laluan anda telah ditukar. Untuk memulihkan data setempat anda, anda perlu memasukkan kata laluan lama anda.</translation> <translation id="5794034487966529952">Meja <ph name="DESK_TITLE" /> mempunyai <ph name="NUM_BROWSERS" /> tetingkap penyemak imbas yang terbuka</translation> <translation id="5794414402486823030">Sentiasa buka dengan alat lihat sistem</translation> <translation id="5794700615121138172">Folder kongsi Linux</translation> @@ -5900,6 +5909,7 @@ <translation id="6700093763382332031">Kunci SIM Selular</translation> <translation id="6700480081846086223">Hantar <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Tidak boleh mendapatkan profil.</translation> +<translation id="6701824422332982935">Muat semula halaman untuk menggunakan sambungan ini</translation> <translation id="6702639462873609204">&Edit...</translation> <translation id="6703212423117969852">Anda boleh mencuba lagi kemudian dalam Chrome.</translation> <translation id="6703254819490889819">Pulihkan sandaran</translation> @@ -7127,6 +7137,7 @@ <translation id="7903742244674067440">Anda mempunyai sijil pada fail yang mengenal pasti pihak berkuasa sijil ini</translation> <translation id="7903925330883316394">Utiliti: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Jadikan port Linux tersedia kepada peranti lain pada rangkaian anda.</translation> +<translation id="7906440585529721295">Data setempat akan dipadamkan</translation> <translation id="7907837847548254634">Tunjukkan sorotan pantas pada objek yang difokuskan</translation> <translation id="7908378463497120834">Maaf, sekurang-kurangnya satu pemetakan pada peranti storan luaran anda tidak boleh dilekapkan.</translation> <translation id="7909324225945368569">Namakan semula profil anda</translation> @@ -7465,6 +7476,7 @@ <translation id="822050276545350872">Mulai sekarang, anda tidak perlu menunggu</translation> <translation id="8221491193165283816">Anda biasanya menyekat pemberitahuan. Untuk membenarkan tapak ini memberitahu anda, klik di sini.</translation> <translation id="822347941086490485">Mencari peranti HID...</translation> +<translation id="8223573963214454788">Teruskan dan padam data</translation> <translation id="8225046344534779393">Semak sambungan Internet</translation> <translation id="8225265270453771718">Kongsi tetingkap aplikasi</translation> <translation id="8226222018808695353">Dilarang</translation> @@ -7565,6 +7577,7 @@ <translation id="8314381333424235892">Sambungan tiada atau dinyahpasang</translation> <translation id="831440797644402910">Tidak dapat membuka folder ini</translation> <translation id="8314835274931377415">Mulakan persediaan Akses Suis?</translation> +<translation id="8317582043908962055">Kenali teks PDF</translation> <translation id="8317671367883557781">Tambahkan sambungan rangkaian</translation> <translation id="8319414634934645341">Penggunaan Penting Dilanjutkan</translation> <translation id="8321837372750396788"><ph name="DEVICE_TYPE" /> ini akan diurus oleh <ph name="MANAGER" />.</translation> @@ -8299,7 +8312,6 @@ <translation id="9050666287014529139">Frasa laluan</translation> <translation id="9052404922357793350">Teruskan menyekat</translation> <translation id="9053563360605707198">Cetak pada kedua-dua belah halaman</translation> -<translation id="9053893665344928494">Ingat pilihan saya</translation> <translation id="9055636786322918818">Kuat kuasakan penyulitan RC4. Penggunaan pilihan ini akan meningkatkan risiko anda, kerana sifer RC4 tidak selamat.</translation> <translation id="9056810968620647706">Tiada padanan dijumpai.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> mahu mengakses kandungan berikut:</translation> @@ -8451,6 +8463,7 @@ <translation id="9203398526606335860">&Dayakan pemprofilan</translation> <translation id="9203904171912129171">Pilih peranti</translation> <translation id="9206889157914079472">Pengambilan nota stilus daripada skrin kunci</translation> +<translation id="9208192193641542858">Data setempat dilindungi oleh kata laluan lama anda. Jika anda menukar kata laluan anda baru-baru ini, cuba semula kata laluan lama anda.</translation> <translation id="9209563766569767417">Menyemak persediaan bekas Linux</translation> <translation id="9209689095351280025">Tapak tidak dapat menggunakan kuki untuk menjejaki anda merentas web</translation> <translation id="9211177926627870898">Kemas kini diperlukan</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index eb6119b..4642f6c 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -8305,7 +8305,6 @@ <translation id="9050666287014529139">စကားစုဝှက်</translation> <translation id="9052404922357793350">ဆက်ပိတ်ထားရန်</translation> <translation id="9053563360605707198">နှစ်ဘက်စလုံးတွင် ပုံနှိပ်ထုတ်ရန်</translation> -<translation id="9053893665344928494">ကျွန်ုပ်၏ ရွေးချယ်မှုကို မှတ်ထားရန်</translation> <translation id="9055636786322918818">RC4 အသွင်ဝှက်ခြင်းကို သုံးရန်။ RC4 အသွင်ဝှက်ခြင်းသည် လုံခြုံမှုမရှိသည့်အတွက် အန္တရာယ်ပိုရှိစေနိုင်ပါသည်။</translation> <translation id="9056810968620647706">တိုက်ဆိုင်တာ မတွေ့ရပါ။</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> သည် အောက်ပါ အကြောင်းအရာကို သုံးလိုသည်-</translation>
diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb index b0987c7..9eb00d1 100644 --- a/chrome/app/resources/generated_resources_ne.xtb +++ b/chrome/app/resources/generated_resources_ne.xtb
@@ -378,6 +378,7 @@ <translation id="1374844444528092021">नेटवर्क "<ph name="NETWORK_NAME" />" का लागि चाहिने प्रमाणपत्र की त स्थापना गरिएको छैन वा उप्रान्त मान्य छैन । कृपया नयाँ प्रमाणपत्र प्राप्त गरी पुनः जडान प्रयास गर्नुहोस्।</translation> <translation id="1375321115329958930">सुरक्षित गरिएका पासवर्डहरू</translation> <translation id="1375557162880614858">तपाईं ChromeOS Flex मा पहिले नै इन्स्टल गरिएको ChromeVox नामक स्क्रिन रिडर एक्टिभेट गर्न चाहनुहुन्छ?</translation> +<translation id="1375938286942050085">सेटअप गर्ने कार्य पूरा भयो! अब आफ्नो डिभाइस गेमिङका लागि तयार पार्नुहोस्</translation> <translation id="137651782282853227">सुरक्षित गरिएका पासवर्डहरू यहाँ देखापर्ने छन्</translation> <translation id="1376771218494401509">यो &विन्डोको नाम राख्नुहोस्...</translation> <translation id="1377600615067678409">अहिलेको लागि छाड्नुहोस्</translation> @@ -392,6 +393,7 @@ <translation id="138784436342154190">डिफल्ट सुरुवात पृष्ठलाई पुनर्स्थापना गर्ने हो?</translation> <translation id="1388253969141979417">तपाईंको माइक्रोफोन प्रयोग गर्ने अनुमति दिइएका साइटहरू</translation> <translation id="1388728792929436380">अपडेट पूरा भएपछि <ph name="DEVICE_TYPE" /> रिस्टार्ट हुने छ।</translation> +<translation id="1389601498324964367">कोटाका आधारमा व्यवस्थापन गरिएको भण्डारण</translation> <translation id="139013308650923562">तपाईंको डिभाइसमा इन्स्टल गरिएका फन्ट प्रयोग गर्न दिइएका साइटहरू</translation> <translation id="1390548061267426325">नियमित ट्याबको रूपमा खोल्नुहोस्</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> लाई <ph name="PRINTER_NAME" /> मार्फत प्रिन्ट गर्ने अनुमति दिइएको छैन। कृपया आफ्ना एड्मिनलाई सम्पर्क गर्नुहोस्।</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">यन्त्रबाट हटाउनुहोस्</translation> <translation id="1994173015038366702">साइट URL</translation> <translation id="1995916364271252349">साइटहरूले के कस्ता जानकारी (स्थान, क्यामेरा, पप-अप र अन्य कुरा) प्रयोग गर्न र देखाउन पाउँछन् भन्ने कुरा नियन्त्रण गर्छ</translation> +<translation id="1997433994358798851">Chrome लाई तपाईंको डिभाइसमा कनेक्ट हुन ब्लुटुथ प्रयोग गर्ने अनुमति दिनु पर्ने हुन्छ</translation> <translation id="1997616988432401742">तपाईंका प्रमाणपत्रहरू</translation> <translation id="1999115740519098545">सुरूवातमा</translation> <translation id="2000419248597011803">यसले ठेगाना पट्टी र खोज बाकसका केही कुकी र खोजहरूलाई तपाईंको डिफल्ट खोज इन्जिनमा पठाउँछ</translation> @@ -1721,6 +1724,7 @@ <translation id="25899519884572181">पाठक मोडबाट बाहिर निस्कनुहोस्</translation> <translation id="2593499352046705383">सुरु गर्नुअघि आफ्नो डेटा ब्याकअप गर्न नभुल्नुहोस्। तपाईंले <ph name="DEVICE_OS" /> इन्स्टल गर्नुभयो भने तपाईंको हार्ड ड्राइभमा भएका सबै डेटा ओभरराइट हुने छन्। g.co/flex/InstallGuide मा गई थप जान्नुहोस्।</translation> <translation id="2594999711683503743">Google मा खोज्नुहोस् वा URL टाइप गर्नुहोस्</translation> +<translation id="2599048253926156421">युजरनेम क्लिपबोर्डमा कपी गरियो</translation> <translation id="2602501489742255173">सुरु गर्न माथितिर स्वाइप गर्नुहोस्</translation> <translation id="2603115962224169880">कम्प्युटरमा ठाउँ खाली गर्नुहोस्</translation> <translation id="2603355571917519942">Voice Match तयार छ</translation> @@ -1944,6 +1948,7 @@ <translation id="2804043232879091219">वैकल्पिक ब्राउजर खोल्न सकिएन</translation> <translation id="2804667941345577550">तपाईंलाई खुला ट्याबहरूलगायत यस साइटबाट साइन आउट गरिने छ</translation> <translation id="2804680522274557040">क्यामेरा निष्क्रिय पारियो</translation> +<translation id="280518252911523675">तपाईंले आफ्नो पुरानो पासवर्ड नहालिकन जारी राख्नुभयो भने तपाईंको लोकल डेटा मेटाइने छ। तपाईं यी प्रयोगकर्ताको प्रोफाइल फेरि सेटअप गर्न चाहनुहुन्छ भने तपाईंले आफ्नो Google खातामार्फत साइन इन गर्नु पर्ने हुन्छ।</translation> <translation id="2805539617243680210">तपाईं पूर्ण रूपमा तयार हुनुहुन्छ!</translation> <translation id="2805646850212350655">Microsoft गुप्तिकरण फाइल प्रणाली</translation> <translation id="2805756323405976993">एप्स</translation> @@ -3060,6 +3065,7 @@ <translation id="3895090224522145010">Kerberos को युजरनेम</translation> <translation id="389521680295183045">साइटहरूले तपाईं आफ्नो यन्त्र चलाउँदै हुनुहुन्छ कि हुनुहुन्न भन्ने कुराको जानकारी माग्न सक्छन्</translation> <translation id="3897298432557662720">{COUNT,plural, =1{एउटा फोटो}other{# वटा फोटो}}</translation> +<translation id="3897746662269329507">तपाईंको <ph name="DEVICE_TYPE" /> गेमिङका लागि बनाइएको हो। एक्स्प्लोर एप खुलेपछि तपाईं सयौँ नयाँ गेम खेल्न, गेमिङसम्बन्धी अफरहरू हेर्न र तपाईंको डिभाइससँगै प्राप्त हुने गेम खेल्ने सुविधाहरूका बारेमा जान्न सक्नुहुन्छ।</translation> <translation id="3898233949376129212">यन्त्रको भाषा</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> निम्न कुराहरू गर्न चाहन्छ: <ph name="FIRST_PERMISSION" /> र <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">किबोर्ड चयन गर्नुहोस्</translation> @@ -3209,6 +3215,7 @@ <translation id="4033471457476425443">नयाँ फोल्डर थप्नुहोस्</translation> <translation id="4033711848170683365">तपाईंले यसो गर्नुभयो भने यो डिभाइसमा भएको ब्राउजिङ डेटा सदाका लागि मेटाइने छ। तपाईंको <ph name="DEVICE_TYPE" /> मा इन्स्टल गरिएका अन्य एपहरूले यो प्रोफाइलमा लिंक गरिएका Google खाताहरू प्रयोग गर्न सक्छन्। तपाईं <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> मा गई यी खाताहरू हटाउन सक्नुहुन्छ।</translation> <translation id="4033963223187371752">सुरक्षित साइटहरूले असुरक्षित खालका फोटो वा वेब फ्रेम जस्ता सामग्री इम्बेड गर्न सक्छन्</translation> +<translation id="4034741552964543387">लोकल डेटाविनै जारी राख्नुहोस्</translation> <translation id="4034824040120875894">प्रिन्टर</translation> <translation id="4035758313003622889">&कार्य व्यवस्थापक</translation> <translation id="4035877632587724847">अनुमति नदिनुहोस्</translation> @@ -3400,6 +3407,7 @@ <translation id="4242533952199664413">सेटिङहरू खोल्नुहोस्</translation> <translation id="4242577469625748426">यन्त्रमा नीति सेटिङहरू स्थापना गर्न असफल भयो। <ph name="VALIDATION_ERROR" />।</translation> <translation id="4243504193894350135">प्रिन्टर केही समयका लागि रोकिएको छ</translation> +<translation id="424423026762293842">आफ्नो लोकल डेटा रिस्टोर गर्नुहोस्</translation> <translation id="4244238649050961491">स्टाइलस सम्बन्धी थप एपहरू भेट्टाउनुहोस्</translation> <translation id="4246980464509998944">थप टिप्पणीहरू:</translation> <translation id="424726838611654458">सँधै Adobe Reader मा खोल्नुहोस्</translation> @@ -4957,6 +4965,7 @@ <translation id="5792728279623964091">कृपया आफ्नो पावर बटनमा ट्याप गर्नुहोस्</translation> <translation id="5793339252089865437">तपाईंले अद्यावधिक डाउनलोड गर्दा आफ्नो मोबाइल नेटवर्कमार्फत गर्नुभयो भने अधिक शुल्क लाग्न सक्छ।</translation> <translation id="5793420564274426163">कनेक्ट भएको कुराको पुष्टि</translation> +<translation id="5793430094159150686">तपाईंको पासवर्ड बदलिएको छ। तपाईं आफ्नो लोकल डेटा रिस्टोर गर्न चाहनुहुन्छ भने तपाईंले आफ्नो पुरानो पासवर्ड हाल्नु पर्ने हुन्छ।</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" /> नामक डेस्कमा ब्राउजरका <ph name="NUM_BROWSERS" /> वटा विन्डो खोलिएका छन्</translation> <translation id="5794414402486823030">प्रणाली दर्शकमार्फत सधैं खोल्नुहोस्</translation> <translation id="5794700615121138172">Linux बाट सेयर गरिएका फोल्डरहरू</translation> @@ -5880,6 +5889,7 @@ <translation id="6700093763382332031">सेलुलर SIM लक</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> cast गर्नुहोस्</translation> <translation id="6701535245008341853">प्रोफाइल प्राप्त गर्न सकिएन।</translation> +<translation id="6701824422332982935">यी एक्स्टेन्सनहरू प्रयोग गर्न यो पेज रिलोड गर्नुहोस्</translation> <translation id="6702639462873609204">&सम्पादन गर्नुहोस्...</translation> <translation id="6703212423117969852">तपाईं पछि Chrome मार्फत फेरि प्रयास गर्न सक्नुहुन्छ।</translation> <translation id="6703254819490889819">ब्याकअप रिस्टोर गर्नुहोस्</translation> @@ -7107,6 +7117,7 @@ <translation id="7903742244674067440">तपाईँसँग फाइलमा यी प्रमाणपत्रका प्रधिकरणहरूको पहिचान गर्ने प्रमाणपत्रहरू छन्</translation> <translation id="7903925330883316394">उपयोगिता: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">आफ्नो नेटवर्कका अन्य डिभाइसमा Linux का पोर्टहरू उपलब्ध गराउनुहोस्।</translation> +<translation id="7906440585529721295">लोकल डेटा मेटाइने छ</translation> <translation id="7907837847548254634">केन्द्रित गरिएको वस्तुलाई तुरुन्तै हाइलाइट गरी देखाउनुहोस्</translation> <translation id="7908378463497120834">माफ गर्नुहोला, तपाईंको भण्डारण साधनको कम्तीमा एक भाग माउन्ट हुन सकेन ।</translation> <translation id="7909324225945368569">आफ्नो प्रोफाइलको नाम बदल्नुहोस्</translation> @@ -7444,6 +7455,7 @@ <translation id="822050276545350872">तपाईंले अबदेखि कुर्नु पर्दैन</translation> <translation id="8221491193165283816">तपाईं सामान्यतया सूचनाहरूमाथि रोक लगाउनुहुन्छ। यो साइटलाई तपाईंलाई सूचना पठाउन अनुमति दिन यहाँ क्लिक गर्नुहोस्।</translation> <translation id="822347941086490485">HID यन्त्रहरू पत्ता लगाइँदै छ...</translation> +<translation id="8223573963214454788">जारी राख्नुहोस् र डेटा मेटाउनुहोस्</translation> <translation id="8225046344534779393">इन्टरनेट कनेक्सन जाँच्नुहोस्</translation> <translation id="8225265270453771718">एपसम्बन्धी विन्डो सेयर गर्नुहोस्</translation> <translation id="8226222018808695353">निषेध गरिएको</translation> @@ -7544,6 +7556,7 @@ <translation id="8314381333424235892">छुटेको वा स्थापना रद्द गरिएको विस्तार</translation> <translation id="831440797644402910">यो फोल्डर खोल्न सकिएन</translation> <translation id="8314835274931377415">"स्विच एक्सेस" सेटअप गर्न थाल्ने हो?</translation> +<translation id="8317582043908962055">P&DF मा भएको टेक्स्ट चिन्नुहोस्</translation> <translation id="8317671367883557781">नेटवर्क जडान थप्नुहोस्</translation> <translation id="8319414634934645341">विस्तारित कुञ्जी प्रयोग</translation> <translation id="8321837372750396788"><ph name="MANAGER" /> ले यो <ph name="DEVICE_TYPE" /> व्यवस्थापन गर्ने छ।</translation> @@ -8277,7 +8290,6 @@ <translation id="9050666287014529139">पासफ्रेज</translation> <translation id="9052404922357793350">रोक लगाइराख्नुहोस्</translation> <translation id="9053563360605707198">दुवैतिर प्रिन्ट गर्नुहोस्</translation> -<translation id="9053893665344928494">मेरो छनोट सम्झनुहोस्</translation> <translation id="9055636786322918818">RC4 इन्क्रिप्सन लागू गर्नुहोस्। RC4 साइफरहरू असुरक्षित हुने हुनाले यो विकल्पको प्रयोग गर्नुले तपाईंको जोखिममा वृद्धि हुन्छ।</translation> <translation id="9056810968620647706">जोडाहरू भेटिएन।</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> निम्न सामग्री हेर्न चाहनुहुन्छ:</translation> @@ -8429,6 +8441,7 @@ <translation id="9203398526606335860">&प्रोफाइलिङ सक्षम भयो</translation> <translation id="9203904171912129171">कुनै यन्त्र चयन गर्नुहोस्</translation> <translation id="9206889157914079472">स्टाइलस प्रयोग गरी लक स्क्रिनबाट टिपोट लिने कार्य</translation> +<translation id="9208192193641542858">तपाईंको पुरानो पासवर्डमार्फत लोकल डेटा सुरक्षित गरिएको छ। तपाईंले हालसालै आफ्नो पासवर्ड बदल्नुभएको छ भने आफ्नो पुरानो पासवर्ड फेरि प्रयोग गरी हेर्नुहोस्।</translation> <translation id="9209563766569767417">Linux कन्टेनरको सेटअप जाँच गरिँदै छ</translation> <translation id="9209689095351280025">साइटहरूले वेबमा तपाईंलाई ट्र्याक गर्ने कुकीहरू प्रयोग गर्न सक्दैनन्</translation> <translation id="9211177926627870898">अद्यावधिक गर्नु पर्ने हुन्छ</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index d35132f..5d0ac91 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -8286,7 +8286,6 @@ <translation id="9050666287014529139">Wachtwoordzin</translation> <translation id="9052404922357793350">Doorgaan met blokkeren</translation> <translation id="9053563360605707198">Dubbelzijdig afdrukken</translation> -<translation id="9053893665344928494">Mijn keuze onthouden</translation> <translation id="9055636786322918818">RC4-versleuteling afdwingen. Als je deze optie gebruikt, loop je meer risico, aangezien RC4-codering onbeveiligd is.</translation> <translation id="9056810968620647706">Geen overeenkomsten gevonden.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> wil toegang tot de volgende content:</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index f4fea8f..84aa2955 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -8300,7 +8300,6 @@ <translation id="9050666287014529139">Passordfrase</translation> <translation id="9052404922357793350">Fortsett blokkering</translation> <translation id="9053563360605707198">Skriv ut på begge sider</translation> -<translation id="9053893665344928494">Husk valget mitt</translation> <translation id="9055636786322918818">Start håndheving av RC4-kryptering. Hvis du bruker dette alternativet, øker risikoen, ettersom RC4-chiffere ikke er sikre.</translation> <translation id="9056810968620647706">Finner ingen treff.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> vil ha tilgang til følgende innhold:</translation>
diff --git a/chrome/app/resources/generated_resources_or.xtb b/chrome/app/resources/generated_resources_or.xtb index c7b9b56..a017b7ac 100644 --- a/chrome/app/resources/generated_resources_or.xtb +++ b/chrome/app/resources/generated_resources_or.xtb
@@ -381,6 +381,7 @@ <translation id="1374844444528092021">ନେଟ୍ୱର୍କ "<ph name="NETWORK_NAME" />" ପାଇଁ ଆବଶ୍ୟକ ସାର୍ଟିଫିକେଟ୍ ଇନ୍ଷ୍ଟଲ୍ କରାଯାଇନାହିଁ ନହେଲେ ଏହା ଆଉ ବୈଧ ନାହିଁ। ଦୟାକରି, ଏକ ନୂଆ ସାର୍ଟିଫିକେଟ୍ ପ୍ରାପ୍ତ କରନ୍ତୁ ଏବଂ ପୁଣି ସଂଯୋଗ କରିବାକୁ ଚେଷ୍ଟାକରନ୍ତୁ।</translation> <translation id="1375321115329958930">ସେଭ୍ କରାଯାଇଥିବା ପାସ୍ୱର୍ଡଗୁଡ଼ିକ</translation> <translation id="1375557162880614858">ଆପଣ ChromeOS Flex ପାଇଁ ବିଲ୍ଟ-ଇନ ସ୍କ୍ରିନ ରିଡର, ChromeVoxକୁ ସକ୍ରିୟ କରିବାକୁ ଚାହୁଁଛନ୍ତି?</translation> +<translation id="1375938286942050085">ସେଟଅପ ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି! ପରବର୍ତ୍ତୀ ଗେମିଂ ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସକୁ ପ୍ରସ୍ତୁତ କରନ୍ତୁ</translation> <translation id="137651782282853227">ସେଭ୍ କରାଯାଇଥିବା ଠିକଣାଗୁଡ଼ିକ ଏଠାରେ ଦୃଶ୍ୟମାନ ହେବ</translation> <translation id="1376771218494401509">ୱିଣ୍ଡୋର ନାମ ଦିଅନ୍ତୁ...</translation> <translation id="1377600615067678409">ବର୍ତ୍ତମାନ ପାଇଁ ଛାଡ଼ିଦିଅନ୍ତୁ</translation> @@ -395,6 +396,7 @@ <translation id="138784436342154190">ଡିଫଲ୍ଟ ଷ୍ଟାର୍ଟଅପ୍ ପୃଷ୍ଠାକୁ ରିଷ୍ଟୋର୍ କରିବେ?</translation> <translation id="1388253969141979417">ଆପଣଙ୍କ ମାଇକ୍ରୋଫୋନ୍ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="1388728792929436380">ଅପଡେଟଗୁଡ଼ିକ ସମ୍ପୂର୍ଣ୍ଣ ହେଲେ <ph name="DEVICE_TYPE" /> ପୁଣି ରିଷ୍ଟାର୍ଟ ହେବ।</translation> +<translation id="1389601498324964367">କୋଟା-ପରିଚାଳିତ ଷ୍ଟୋରେଜ</translation> <translation id="139013308650923562">ଆପଣଙ୍କ ଡିଭାଇସରେ ଇନଷ୍ଟଲ୍ କରାଯାଇଥିବା ଫଣ୍ଟଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ଦିଆଯାଇଛି</translation> <translation id="1390548061267426325">ନିୟମିତ ଟାବ୍ ଭାବରେ ଖୋଲନ୍ତୁ</translation> <translation id="1390907927270446471"><ph name="PRINTER_NAME" />ରେ ପ୍ରିଣ୍ଟ କରିବା ପାଇଁ <ph name="PROFILE_USERNAME" />କୁ ଅଧିକାର ଦିଆଯାଇ ନାହିଁ। ଦୟାକରି ଆପଣଙ୍କ ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ସହ ଯୋଗାଯୋଗ କରନ୍ତୁ।</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">ଡିଭାଇସରୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> <translation id="1994173015038366702">ସାଇଟ୍ URL</translation> <translation id="1995916364271252349">ସାଇଟଗୁଡ଼ିକ କେଉଁ ସୂଚନା ବ୍ୟବହାର କରିପାରିବ ଏବଂ ଦେଖାଇପାରିବ ତାହା ନିୟନ୍ତ୍ରଣ କରେ (ଲୋକେସନ୍, କ୍ୟାମେରା, ପପ୍-ଅପଗୁଡ଼ିକ ଏବଂ ଆହୁରି ଅନେକ କିଛି)</translation> +<translation id="1997433994358798851">ଆପଣଙ୍କ ଡିଭାଇସ ସହ କନେକ୍ଟ କରିବାକୁ Bluetooth ବ୍ୟବହାର କରିବା ପାଇଁ Chrome ଅନୁମତି ଆବଶ୍ୟକ କରେ</translation> <translation id="1997616988432401742">ଆପଣଙ୍କ ସାର୍ଟିଫିକେଟ୍</translation> <translation id="1999115740519098545">ଆରମ୍ଭ ପୃଷ୍ଠାରେ</translation> <translation id="2000419248597011803">ଆପଣଙ୍କର ଡିଫଲ୍ଟ ସନ୍ଧାନ ଇଞ୍ଜିନ୍କୁ ଠିକଣା ବାର୍ ଏବଂ ସନ୍ଧାନ ବାକ୍ସରୁ କିଛି କୁକୀ ଏବଂ ସନ୍ଧାନ ପଠାନ୍ତୁ</translation> @@ -1722,6 +1725,7 @@ <translation id="25899519884572181">ରିଡର୍ ମୋଡରୁ ବାହାରି ଯାଆନ୍ତୁ</translation> <translation id="2593499352046705383">ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ, ଆପଣଙ୍କ ପାଖରେ ଆପଣଙ୍କ ଡାଟାର ଏକ ବ୍ୟାକଅପ ଅଛି ବୋଲି ସୁନିଶ୍ଚିତ କରନ୍ତୁ। <ph name="DEVICE_OS" /> ଇନଷ୍ଟଲ କଲେ ଆପଣଙ୍କ ହାର୍ଡ ଡ୍ରାଇଭରେ ଥିବା ସମସ୍ତ ଡାଟା ଓଭରରାଇଟ ହୋଇଯିବ। g.co/flex/InstallGuideରେ ଅଧିକ ଜାଣନ୍ତୁ।</translation> <translation id="2594999711683503743">Googleରେ ସନ୍ଧାନ କରନ୍ତୁ କିମ୍ବା URL ଟାଇପ୍ କରନ୍ତୁ</translation> +<translation id="2599048253926156421">ଉପଯୋଗକର୍ତ୍ତାନାମ କ୍ଲିପବୋର୍ଡକୁ କପି କରାଯାଇଛି</translation> <translation id="2602501489742255173">ଆରମ୍ଭ କରିବା ପାଇଁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ</translation> <translation id="2603115962224169880">କମ୍ପ୍ୟୁଟର୍ ଖାଲି କରନ୍ତୁ</translation> <translation id="2603355571917519942">Voice Match ପ୍ରସ୍ତୁତ ଅଛି</translation> @@ -1945,6 +1949,7 @@ <translation id="2804043232879091219">ବିକଳ୍ପ ବ୍ରାଉଜର୍ ଖୋଲାଯାଇପାରିଲା ନାହିଁ</translation> <translation id="2804667941345577550">ଖୋଲାଥିବା ଟାବ୍ଗୁଡ଼ିକ ସମେତ ଆପଣ ଏହି ସାଇଟ୍ରୁ ସାଇନ୍ ଆଉଟ୍ ହୋଇଯିବେ।</translation> <translation id="2804680522274557040">କ୍ୟାମେରା ବନ୍ଦ କରାଯାଇଛି</translation> +<translation id="280518252911523675">ଯଦି ଆପଣ ଆପଣଙ୍କ ପୁରୁଣା ପାସୱାର୍ଡ ନଲେଖି ଜାରି ରଖନ୍ତି, ତେବେ ଆପଣଙ୍କର ସ୍ଥାନୀୟ ଡାଟା ଡିଲିଟ ହୋଇଯିବ। ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କୁ ପୁଣି ସେଟ ଅପ କରିବାକୁ ଆପଣ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ ମାଧ୍ୟମରେ ସାଇନ ଇନ କରିବେ।</translation> <translation id="2805539617243680210">ଆପଣ ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପ୍ରସ୍ତୁତ ଅଛନ୍ତି!</translation> <translation id="2805646850212350655">Microsoft ଏନ୍କ୍ରିପ୍ଟିଂ ଫାଇଲ୍ ସିଷ୍ଟମ୍</translation> <translation id="2805756323405976993">ଆପ୍ସ</translation> @@ -3060,6 +3065,7 @@ <translation id="3895090224522145010">Kerberos ଉପଯୋଗକର୍ତ୍ତାନାମ</translation> <translation id="389521680295183045">ଆପଣ କେତେବେଳେ ଆପଣଙ୍କ ଡିଭାଇସକୁ ସକ୍ରିୟ ଭାବରେ ବ୍ୟବହାର କରୁଛନ୍ତି ତାହା ଜାଣିବାକୁ ସାଇଟଗୁଡ଼ିକ ପଚାରିପାରେ</translation> <translation id="3897298432557662720">{COUNT,plural, =1{ଏକ ଛବି}other{#ଟି ଛବି}}</translation> +<translation id="3897746662269329507">ଗେମିଂ ପାଇଁ ଆପଣଙ୍କ <ph name="DEVICE_TYPE" /> ତିଆରି କରାଯାଇଛି। ତା'ପରେ Explore ଆପ ଖୋଲିବ ଯେଉଁଠାରେ ଆପଣ ଶତାଧିକ ନୀବନତମ ଗେମକୁ ଆକ୍ସେସ କରିପାରିବେ, ଗେମିଂ ଅଫରକୁ ଦେଖିପାରିବେ ଏବଂ ଆପଣଙ୍କ ଡିଭାଇସ ସହ ଆସିଥିବା ଗେମିଂ ଫିଚରଗୁଡ଼ିକୁ ଡିସ୍କଭର କରିପାରିବେ।</translation> <translation id="3898233949376129212">ଡିଭାଇସର ଭାଷା</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> ଏହା ଚାହୁଁଛି: <ph name="FIRST_PERMISSION" /> ଏବଂ <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">କୀ'ବୋର୍ଡ୍ ଚୟନ କରନ୍ତୁ</translation> @@ -3209,6 +3215,7 @@ <translation id="4033471457476425443">ନୂଆ ଫୋଡ୍ଲର୍ ଯୋଗ କରନ୍ତୁ</translation> <translation id="4033711848170683365">ଏହି ଡିଭାଇସରୁ ବ୍ରାଉଜିଂ ଡାଟାକୁ ଏହା ସ୍ଥାୟୀରୂପେ ଡିଲିଟ କରିଦେବ। ଏହି ପ୍ରୋଫାଇଲରେ ଥିବା Google ଆକାଉଣ୍ଟଗୁଡ଼ିକ ଆପଣଙ୍କ <ph name="DEVICE_TYPE" />ରେ ଥିବା ଅନ୍ୟ ଆପ୍ସ ଦ୍ୱାରା ବ୍ୟବହୃତ ହୋଇପାରେ। ଆପଣ <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />ରେ ଏହି ଆକାଉଣ୍ଟଗୁଡ଼ିକୁ କାଢ଼ିପାରିବେ।</translation> <translation id="4033963223187371752">ସୁରକ୍ଷିତ ନଥିବା ଛବି କିମ୍ବା ୱେବ୍ ଫ୍ରେମଗୁଡ଼ିକ ପରି ବିଷୟବସ୍ତୁକୁ ସୁରକ୍ଷିତ ସାଇଟଗୁଡ଼ିକ ଏମ୍ବେଡ୍ କରିପାରେ</translation> +<translation id="4034741552964543387">ସ୍ଥାନୀୟ ଡାଟା ବିନା ଜାରି ରଖନ୍ତୁ</translation> <translation id="4034824040120875894">ପ୍ରିଣ୍ଟର୍</translation> <translation id="4035758313003622889">&ଟାସ୍କ ପରିଚାଳକ</translation> <translation id="4035877632587724847">ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ</translation> @@ -3400,6 +3407,7 @@ <translation id="4242533952199664413">ସେଟିଂସ୍ ଖୋଲନ୍ତୁ</translation> <translation id="4242577469625748426">ଡିଭାଇସ୍ରେ ନୀତି ସେଟିଂସ୍ ଇନ୍ଷ୍ଟଲ୍ କରିବାରେ ବିଫଳ ହୋଇଛି: <ph name="VALIDATION_ERROR" />।</translation> <translation id="4243504193894350135">ପ୍ରିଣ୍ଟରକୁ ବିରତ କରାଯାଇଛି</translation> +<translation id="424423026762293842">ଆପଣଙ୍କ ସ୍ଥାନୀୟ ଡାଟା ରିଷ୍ଟୋର କରନ୍ତୁ</translation> <translation id="4244238649050961491">ଆହୁରି ଷ୍ଟାଇଲସ୍ ଆପ୍ଗୁଡ଼ିକ ଖୋଜନ୍ତୁ</translation> <translation id="4246980464509998944">ଅତିରିକ୍ତ ମନ୍ତବ୍ୟଗୁଡ଼ିକ:</translation> <translation id="424726838611654458">ସର୍ବଦା Adobe Readerରେ ଖୋଲନ୍ତୁ</translation> @@ -4956,6 +4964,7 @@ <translation id="5792728279623964091">ଦୟାକରି ଆପଣଙ୍କର ପାୱର୍ ବଟନ୍କୁ ଟାପ୍ କରନ୍ତୁ</translation> <translation id="5793339252089865437">ଯଦି ଆପଣ ଆପଣଙ୍କ ମୋବାଇଲ୍ ନେଟ୍ୱର୍କରେ ଅପ୍ଡେଟ୍ ଡାଉନ୍ଲୋଡ୍ କରନ୍ତି, ତେବେ ଆପଣଙ୍କୁ ଅତିରିକ୍ତ ଶୁଳ୍କ ଦେବାକୁ ପଡ଼ିପାରେ।</translation> <translation id="5793420564274426163">ପେୟାର କରିବାର ସୁନିଶ୍ଚିତକରଣ</translation> +<translation id="5793430094159150686">ଆପଣଙ୍କ ପାସୱାର୍ଡ ପରିବର୍ତ୍ତନ ହୋଇଛି। ଆପଣଙ୍କ ସ୍ଥାନୀୟ ଡାଟା ରିଷ୍ଟୋର କରିବାକୁ ଆପଣ ଆପଣଙ୍କ ପୁରୁଣା ପାସୱାର୍ଡ ଲେଖିବା ଆବଶ୍ୟକ।</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" /> ଡେସ୍କରେ <ph name="NUM_BROWSERS" />ଟି ବ୍ରାଉଜର୍ ୱିଣ୍ଡୋ ଖୋଲା ଅଛି</translation> <translation id="5794414402486823030">ସର୍ବଦା ସିଷ୍ଟମ୍ ଭ୍ୟୁଅର୍ ସାହାଯ୍ୟରେ ଖୋଲନ୍ତୁ</translation> <translation id="5794700615121138172">Linux ଦ୍ୱାରା ସେୟାର୍ କରାଯାଇଥିବା ଫୋଲ୍ଡରଗୁଡ଼ିକ</translation> @@ -5881,6 +5890,7 @@ <translation id="6700093763382332031">ସେଲ୍ୟୁଲାର୍ SIM ଲକ୍</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" /> କାଷ୍ଟ କରନ୍ତୁ</translation> <translation id="6701535245008341853">ପ୍ରୋଫାଇଲ୍ ମିଳିଲା ନାହିଁ</translation> +<translation id="6701824422332982935">ଏହି ଏକ୍ସଟେନସନଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବା ପାଇଁ ପୃଷ୍ଠାକୁ ପୁଣି ଲୋଡ କରନ୍ତୁ</translation> <translation id="6702639462873609204">&ଏଡିଟ୍ କରନ୍ତୁ...</translation> <translation id="6703212423117969852">ଆପଣ ପରେ Chromeରେ ଚେଷ୍ଟା କରିପାରିବେ।</translation> <translation id="6703254819490889819">ବ୍ୟାକଅପକୁ ରିଷ୍ଟୋର କରନ୍ତୁ</translation> @@ -7107,6 +7117,7 @@ <translation id="7903742244674067440">ଫାଇଲ୍ରେ ଆପଣଙ୍କର ସାର୍ଟିଫିକେଟ୍ ଅଛି ଯାହା ଏହି ସାର୍ଟିଫିକେଟ୍ଗୁଡ଼ିକର ପ୍ରାଧିକରଣ ଚିହ୍ନଟ କରିଥାଏ</translation> <translation id="7903925330883316394">ଉପଯୋଗିତାଗୁଡିକ: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">ଆପଣଙ୍କ ନେଟୱାର୍କରେ ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ Linux ପୋର୍ଟଗୁଡ଼ିକ ଉପଲବ୍ଧ କରାନ୍ତୁ।</translation> +<translation id="7906440585529721295">ସ୍ଥାନୀୟ ଡାଟାକୁ ଡିଲିଟ କରାଯିବ</translation> <translation id="7907837847548254634">ଫୋକସ୍ କରାଯାଇଥିବା ଅବଜେକ୍ଟ ଉପରେ ଏକ ଦ୍ରୁତ ହାଇଲାଇଟ୍ ଦେଖାନ୍ତୁ</translation> <translation id="7908378463497120834">ଆମେ ଦୁଃଖିତ, ଆପଣଙ୍କର ଏକ୍ସଟର୍ନଲ୍ ଷ୍ଟୋରେଜ୍ ଡିଭାଇସ୍ର ଅତି କମ୍ରେ ଗୋଟିଏ ଭାଗ ମାଉଣ୍ଟ କରାଯାଇପାରିଲା ନାହିଁ।</translation> <translation id="7909324225945368569">ଆପଣଙ୍କ ପ୍ରୋଫାଇଲର ନାମ ବଦଳାନ୍ତୁ</translation> @@ -7443,6 +7454,7 @@ <translation id="822050276545350872">ଏହା ପରେ, ଅପେକ୍ଷା କରିବା ଆଉ ଆବଶ୍ୟକ ନାହିଁ</translation> <translation id="8221491193165283816">ଆପଣ ସାଧାରଣତଃ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତି। ଏହି ସାଇଟ୍କୁ ଆପଣଙ୍କୁ ସୂଚିତ କରିବା ସୁବିଧା ଦେବା ପାଇଁ, ଏଠାରେ କ୍ଲିକ୍ କରନ୍ତୁ।</translation> <translation id="822347941086490485">HID ଡିଭାଇସଗୁଡ଼ିକୁ ଖୋଜାଯାଉଛି…</translation> +<translation id="8223573963214454788">ଜାରି ରଖନ୍ତୁ ଏବଂ ଡାଟା ଡିଲିଟ କରନ୍ତୁ</translation> <translation id="8225046344534779393">ଇଣ୍ଟରନେଟ କନେକ୍ସନ ଯାଞ୍ଚ କରନ୍ତୁ</translation> <translation id="8225265270453771718">ଏକ ଆପ୍ଲିକେସନ୍ ୱିଣ୍ଡୋ ସେୟାର୍ କରନ୍ତୁ</translation> <translation id="8226222018808695353">ନିଷିଦ୍ଧ</translation> @@ -7543,6 +7555,7 @@ <translation id="8314381333424235892">ଅନୁପଲବ୍ଧ ବା ଇନ୍ଷ୍ଟଲ୍ ହୋଇନଥିବା ଏକ୍ସଟେନ୍ସନ୍</translation> <translation id="831440797644402910">ଏହି ଫୋଲ୍ଡର୍ ଖୋଲି ପାରିବ ନାହିଁ</translation> <translation id="8314835274931377415">ସ୍ୱିଚ ଆକ୍ସେସ ସେଟଅପ ଆରମ୍ଭ କରିବେ?</translation> +<translation id="8317582043908962055">P&DF ଟେକ୍ସଟକୁ ଚିହ୍ନଟ କରନ୍ତୁ</translation> <translation id="8317671367883557781">ନେଟ୍ୱାର୍କ ସଂଯୋଗ ଯୋଗ କରନ୍ତୁ</translation> <translation id="8319414634934645341">ପ୍ରସାରିତ କୀ'ର ବ୍ୟବହାର</translation> <translation id="8321837372750396788">ଏହି <ph name="DEVICE_TYPE" />, <ph name="MANAGER" /> ଦ୍ୱାରା ପରିଚାଳିତ ହେବ।</translation> @@ -8276,7 +8289,6 @@ <translation id="9050666287014529139">ପାସ୍ଫ୍ରେଜ୍</translation> <translation id="9052404922357793350">ଅବରୋଧ କରିବା ଜାରି ରଖନ୍ତୁ</translation> <translation id="9053563360605707198">ଉଭୟ ପାର୍ଶ୍ୱରେ ପ୍ରିଣ୍ଟ କରନ୍ତୁ</translation> -<translation id="9053893665344928494">ମୋ ପସନ୍ଦକୁ ମନେରଖନ୍ତୁ</translation> <translation id="9055636786322918818">RC4 ଏନ୍କ୍ରିପସନ୍.ଲାଗୁ କରନ୍ତୁ। RC4 ସାଇଫର୍ଗୁଡ଼ିକ ଅସୁରକ୍ଷିତ ଥିବାରୁ ଏହି ବିକଳ୍ପର ବ୍ୟବହାର ଆପଣଙ୍କର ବିପଦ ବଢ଼ାଇଥାଏ।</translation> <translation id="9056810968620647706">କୌଣସି ମେଳ ମିଳିଲା ନାହିଁ</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ନିମ୍ନୋକ୍ତ ବିଷୟବସ୍ତୁକୁ ଆକ୍ସେସ କରିବାକୁ ଚାହେଁ:</translation> @@ -8428,6 +8440,7 @@ <translation id="9203398526606335860">&ପ୍ରଫାଇଲିଂ ସକ୍ଷମ କରାଗଲା</translation> <translation id="9203904171912129171">ଏକ ଡିଭାଇସ୍ ଚୟନ କରନ୍ତୁ</translation> <translation id="9206889157914079472">ଲକ୍ ସ୍କ୍ରିନରୁ ଷ୍ଟାଇଲସ୍ ନୋଟ୍-ଲେଖିବା ସୁବିଧା</translation> +<translation id="9208192193641542858">ସ୍ଥାନୀୟ ଡାଟା ଆପଣଙ୍କ ପୁରୁଣା ପାସୱାର୍ଡ ଦ୍ୱାରା ସୁରକ୍ଷିତ ଅଟେ। ଯଦି ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କ ପାସୱାର୍ଡକୁ ପରିବର୍ତ୍ତନ କରିଛନ୍ତି, ତେବେ ଆପଣଙ୍କର ପୁରୁଣା ପାସୱାର୍ଡ ପୁଣି ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ।</translation> <translation id="9209563766569767417">Linux କଣ୍ଟେନର୍ ସେଟଅପ୍ ଯାଞ୍ଚ କରାଯାଉଛି</translation> <translation id="9209689095351280025">ସାଇଟଗୁଡ଼ିକ ସମଗ୍ର ୱେବରେ ଆପଣଙ୍କୁ ଟ୍ରାକ୍ କରୁଥିବା କୁକୀଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ</translation> <translation id="9211177926627870898">ଅପଡେଟ୍ କରିବା ଦରକାର</translation>
diff --git a/chrome/app/resources/generated_resources_pa.xtb b/chrome/app/resources/generated_resources_pa.xtb index e7749f5..df03b35 100644 --- a/chrome/app/resources/generated_resources_pa.xtb +++ b/chrome/app/resources/generated_resources_pa.xtb
@@ -8313,7 +8313,6 @@ <translation id="9050666287014529139">ਪਾਸਫਰੇਜ਼</translation> <translation id="9052404922357793350">ਬਲਾਕ ਕਰਨਾ ਜਾਰੀ ਰੱਖੋ</translation> <translation id="9053563360605707198">ਦੋਵੇਂ ਪਾਸੇ ਪ੍ਰਿੰਟ ਕਰੋ</translation> -<translation id="9053893665344928494">ਮੇਰੀ ਪਸੰਦ ਯਾਦ ਰੱਖੋ</translation> <translation id="9055636786322918818">RC4 ਇਨਕ੍ਰਿਪਸ਼ਨ ਲਾਜ਼ਮੀ ਬਣਾਓ। ਇਸ ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰਨਾ, RC4 ciphers ਦੇ ਅਸੁਰੱਖਿਅਤ ਹੋਣ ਕਰਕੇ ਤੁਹਾਡੇ ਜੋਖਮ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।</translation> <translation id="9056810968620647706">ਕੋਈ ਮੇਲ ਨਹੀਂ ਮਿਲੇ ਸਨ।</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ਅੱਗੇ ਦਿੱਤੀ ਸਮੱਗਰੀ ਤੱਕ ਪਹੁੰਚ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ:</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 78a906d..0c142af 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -8286,7 +8286,6 @@ <translation id="9050666287014529139">Hasło</translation> <translation id="9052404922357793350">Nadal blokuj</translation> <translation id="9053563360605707198">Drukuj obustronnie</translation> -<translation id="9053893665344928494">Zapamiętaj mój wybór</translation> <translation id="9055636786322918818">Wymusza szyfrowanie RC4. Używanie tej opcji jest ryzykowne, ponieważ szyfrowanie RC4 nie zapewnia bezpieczeństwa.</translation> <translation id="9056810968620647706">Nie znaleziono żadnych dopasowań.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> chce uzyskać dostęp do tych treści:</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 50fdf3a..b4793ae 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -383,6 +383,7 @@ <translation id="1374844444528092021">O certificado exigido pela rede "<ph name="NETWORK_NAME" />" não está instalado ou não é mais válido. Obtenha um novo certificado e tente se conectar novamente.</translation> <translation id="1375321115329958930">Senhas salvas</translation> <translation id="1375557162880614858">Você quer ativar o ChromeVox, o leitor de tela integrado do ChromeOS Flex?</translation> +<translation id="1375938286942050085">A configuração está concluída. Nas próximas etapas vamos preparar o dispositivo para jogos</translation> <translation id="137651782282853227">Os endereços salvos são exibidos aqui</translation> <translation id="1376771218494401509">Nomear a janela…</translation> <translation id="1377600615067678409">Ignorar por enquanto</translation> @@ -397,6 +398,7 @@ <translation id="138784436342154190">Restaurar página de inicialização padrão?</translation> <translation id="1388253969141979417">Permitir o uso do microfone</translation> <translation id="1388728792929436380">O <ph name="DEVICE_TYPE" /> será reiniciado quando as atualizações forem concluídas.</translation> +<translation id="1389601498324964367">Armazenamento gerenciado por cotas</translation> <translation id="139013308650923562">Com autorização para usar as fontes instaladas no dispositivo</translation> <translation id="1390548061267426325">Abrir como guia normal</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> não tem autorização para imprimir com a <ph name="PRINTER_NAME" />. Entre em contato com o administrador.</translation> @@ -1076,6 +1078,7 @@ <translation id="1992924914582925289">Remover do dispositivo</translation> <translation id="1994173015038366702">URL do site</translation> <translation id="1995916364271252349">Controla quais informações os sites podem usar e mostrar (local, câmera, pop-ups, entre outros)</translation> +<translation id="1997433994358798851">O Chrome precisa de permissão para usar o Bluetooth para se conectar ao dispositivo</translation> <translation id="1997616988432401742">Seus certificados</translation> <translation id="1999115740519098545">Inicialização</translation> <translation id="2000419248597011803">Envia alguns cookies e pesquisas da barra de endereço e da caixa de pesquisa para seu mecanismo de pesquisa padrão.</translation> @@ -1740,6 +1743,7 @@ <translation id="25899519884572181">Sair do modo leitor</translation> <translation id="2593499352046705383">Antes de começar, confira se você fez backup dos dados. A instalação do <ph name="DEVICE_OS" /> limpa todo o disco rígido. Saiba mais em g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Pesquisar no Google ou digitar o URL</translation> +<translation id="2599048253926156421">Nome de usuário copiado para a área de transferência</translation> <translation id="2602501489742255173">Deslize para cima para começar</translation> <translation id="2603115962224169880">Limpar o computador</translation> <translation id="2603355571917519942">O Voice Match está pronto</translation> @@ -1963,6 +1967,7 @@ <translation id="2804043232879091219">Não foi possível abrir o navegador alternativo</translation> <translation id="2804667941345577550">Sua conta será desconectada desse site, inclusive nas guias abertas</translation> <translation id="2804680522274557040">Câmera desativada</translation> +<translation id="280518252911523675">Se você continuar sem inserir a senha antiga, seus dados locais vão ser excluídos. Vai ser necessário fazer login com sua Conta do Google para configurar este usuário novamente.</translation> <translation id="2805539617243680210">Tudo pronto</translation> <translation id="2805646850212350655">Sistema de arquivos com criptografia da Microsoft</translation> <translation id="2805756323405976993">Apps</translation> @@ -3079,6 +3084,7 @@ <translation id="3895090224522145010">Nome de usuário do Kerberos</translation> <translation id="389521680295183045">Os sites podem pedir para saber quando você está usando o dispositivo ativamente</translation> <translation id="3897298432557662720">{COUNT,plural, =1{uma imagem}one{# imagem}other{# imagens}}</translation> +<translation id="3897746662269329507">O <ph name="DEVICE_TYPE" /> foi feito para jogos. O app Explorar vai ser aberto em seguida para você acessar centenas de jogos recentes, conferir ofertas e os recursos do dispositivo para jogos.</translation> <translation id="3898233949376129212">Idioma do dispositivo</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> quer <ph name="FIRST_PERMISSION" /> e <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Selecionar teclado</translation> @@ -3229,6 +3235,7 @@ <translation id="4033471457476425443">Adicionar nova pasta</translation> <translation id="4033711848170683365">Esta ação vai excluir permanentemente os dados de navegação deste dispositivo. As Contas do Google relacionadas a este perfil ainda podem ser usadas por outros apps no <ph name="DEVICE_TYPE" />. Acesse <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> para remover essas contas.</translation> <translation id="4033963223187371752">Sites seguros podem incorporar conteúdo não seguro, como imagens ou frames da Web</translation> +<translation id="4034741552964543387">Continuar sem dados locais</translation> <translation id="4034824040120875894">Impressora</translation> <translation id="4035758313003622889">&Gerenciador de tarefas</translation> <translation id="4035877632587724847">Não permitir</translation> @@ -3420,6 +3427,7 @@ <translation id="4242533952199664413">Abrir configurações.</translation> <translation id="4242577469625748426">Falha ao instalar configurações da política no dispositivo: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">A impressora está pausada</translation> +<translation id="424423026762293842">Restaurar seus dados locais</translation> <translation id="4244238649050961491">Encontrar mais apps para usar com a stylus</translation> <translation id="4246980464509998944">Outros comentários:</translation> <translation id="424726838611654458">Sempre abrir com o Adobe Reader</translation> @@ -4979,6 +4987,7 @@ <translation id="5792728279623964091">Toque no botão liga/desliga</translation> <translation id="5793339252089865437">Se você fizer o download da atualização pela rede móvel, poderá receber cobranças adicionais.</translation> <translation id="5793420564274426163">Confirmação de pareamento</translation> +<translation id="5793430094159150686">Sua senha foi alterada. Para restaurar os dados locais, digite a senha antiga.</translation> <translation id="5794034487966529952">O espaço de trabalho <ph name="DESK_TITLE" /> tem <ph name="NUM_BROWSERS" /> janelas do navegador abertas</translation> <translation id="5794414402486823030">Sempre abrir com visualizador do sistema</translation> <translation id="5794700615121138172">Pastas compartilhadas do Linux</translation> @@ -5905,6 +5914,7 @@ <translation id="6700093763382332031">Bloqueio do chip da rede celular</translation> <translation id="6700480081846086223">Transmitir <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Não foi possível obter o perfil.</translation> +<translation id="6701824422332982935">Atualize a página para usar as extensões</translation> <translation id="6702639462873609204">&Editar...</translation> <translation id="6703212423117969852">Tente novamente mais tarde no Chrome.</translation> <translation id="6703254819490889819">Restaurar backup</translation> @@ -7132,6 +7142,7 @@ <translation id="7903742244674067440">Você tem certificados no arquivo que identificam estas autoridades de certificação</translation> <translation id="7903925330883316394">Utilitário: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Disponibilize portas do Linux para outros dispositivos na sua rede.</translation> +<translation id="7906440585529721295">Os dados locais vão ser excluídos</translation> <translation id="7907837847548254634">Mostrar um destaque rápido no objeto focalizado</translation> <translation id="7908378463497120834">Ao menos uma partição no seu dispositivo de armazenamento externo não pôde ser montada.</translation> <translation id="7909324225945368569">Renomeie seu perfil</translation> @@ -7470,6 +7481,7 @@ <translation id="822050276545350872">Chega de ficar esperando</translation> <translation id="8221491193165283816">Você geralmente bloqueia notificações. Para permitir que esse site envie notificações, clique aqui.</translation> <translation id="822347941086490485">Procurando dispositivos HID…</translation> +<translation id="8223573963214454788">Continuar e excluir dados</translation> <translation id="8225046344534779393">Verifique a conexão com a Internet</translation> <translation id="8225265270453771718">Compartilhar uma janela de aplicativo</translation> <translation id="8226222018808695353">Proibido</translation> @@ -7570,6 +7582,7 @@ <translation id="8314381333424235892">Extensão ausente ou não instalada</translation> <translation id="831440797644402910">Não é possível abrir esta pasta</translation> <translation id="8314835274931377415">Iniciar a configuração do acesso com interruptor?</translation> +<translation id="8317582043908962055">Reconhecer texto em P&DF</translation> <translation id="8317671367883557781">Adicionar conexão de rede</translation> <translation id="8319414634934645341">Uso estendido de chave</translation> <translation id="8321837372750396788">Este <ph name="DEVICE_TYPE" /> será gerenciado por <ph name="MANAGER" />.</translation> @@ -8304,7 +8317,6 @@ <translation id="9050666287014529139">Senha</translation> <translation id="9052404922357793350">Continuar bloqueando</translation> <translation id="9053563360605707198">Imprimir dos dois lados</translation> -<translation id="9053893665344928494">Lembrar minha escolha</translation> <translation id="9055636786322918818">Aplicar a codificação RC4. O uso dessa opção é mais arriscado, porque as criptografias RC4 não são seguras.</translation> <translation id="9056810968620647706">Nenhuma correspondência foi encontrada.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> que acessar o seguinte conteúdo:</translation> @@ -8456,6 +8468,7 @@ <translation id="9203398526606335860">&Criação de perfil ativada</translation> <translation id="9203904171912129171">Selecione um dispositivo</translation> <translation id="9206889157914079472">Anotações na tela de bloqueio com a stylus</translation> +<translation id="9208192193641542858">Os dados locais são protegidos pela senha antiga. Se você mudou a senha recentemente, tente usar a antiga mais uma vez.</translation> <translation id="9209563766569767417">Verificando a configuração do contêiner Linux</translation> <translation id="9209689095351280025">Os sites não podem usar cookies que rastreiem você pela Web</translation> <translation id="9211177926627870898">Atualização necessária</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index a773582..8eaf3b8 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -6077,7 +6077,7 @@ <translation id="686609795364435700">Baixo</translation> <translation id="686664946474413495">Temperatura da cor</translation> <translation id="6867086642466184030">Outras apps estão definidas para abrir os mesmos links que a app <ph name="APP_NAME" />. Isto irá impedir que as apps <ph name="APP_NAME_2" />, <ph name="APP_NAME_3" />, <ph name="APP_NAME_4" /> e mais <ph name="NUMBER_OF_OTHER_APPS" /> apps abram links suportados.</translation> -<translation id="6867400383614725881">Novo separador de navegação anónima</translation> +<translation id="6867400383614725881">Novo separador anónimo</translation> <translation id="6868934826811377550">Ver detalhes</translation> <translation id="6871644448911473373">Serviço de resposta de OCSP: <ph name="LOCATION" /></translation> <translation id="6872781471649843364">A palavra-passe introduzida foi rejeitada pelo servidor.</translation> @@ -6515,7 +6515,7 @@ <translation id="7332053360324989309">Trabalhador dedicado: <ph name="SCRIPT_URL" /></translation> <translation id="7334274148831027933">Ativar lupa ancorada</translation> <translation id="7335974957018254119">Utilizar o corretor ortográfico para</translation> -<translation id="7336799713063880535">Notific. bloqueadas.</translation> +<translation id="7336799713063880535">Notific. bloqueadas</translation> <translation id="7338630283264858612">O número de série do dispositivo é inválido.</translation> <translation id="7339763383339757376">PKCS #7, certificado único</translation> <translation id="7339785458027436441">Verificar a ortografia durante a escrita</translation> @@ -8297,7 +8297,6 @@ <translation id="9050666287014529139">Frase de acesso</translation> <translation id="9052404922357793350">Continuar a bloquear</translation> <translation id="9053563360605707198">Imprimir de ambos os lados</translation> -<translation id="9053893665344928494">Memorizar a minha escolha</translation> <translation id="9055636786322918818">Aplicar a encriptação RC4. A utilização desta opção aumenta o seu risco, uma vez que as cifras RC4 são inseguras.</translation> <translation id="9056810968620647706">Não foram encontradas correspondências.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> pretende aceder ao seguinte conteúdo:</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 16e3b62..c11187d7 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -8298,7 +8298,6 @@ <translation id="9050666287014529139">Expresie de acces</translation> <translation id="9052404922357793350">Continuă blocarea</translation> <translation id="9053563360605707198">Printează pe ambele părți</translation> -<translation id="9053893665344928494">Reține alegerea mea</translation> <translation id="9055636786322918818">Aplică criptarea RC4. Folosirea acestei opțiuni îți mărește riscul, deoarece suitele de codificare RC4 sunt nesecurizate.</translation> <translation id="9056810968620647706">Nu s-a găsit nicio potrivire.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> vrea să acceseze următorul conținut:</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index ded4c75..613fe7a 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -8304,7 +8304,6 @@ <translation id="9050666287014529139">Кодовая фраза</translation> <translation id="9052404922357793350">Продолжать блокировать</translation> <translation id="9053563360605707198">Печать на обеих сторонах</translation> -<translation id="9053893665344928494">Запомнить</translation> <translation id="9055636786322918818">Использовать шифрование по алгоритму RC4. Этот вариант небезопасен, так как потоковый шифр RC4 ненадежен.</translation> <translation id="9056810968620647706">Ничего не найдено.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> хочет получить доступ к следующему контенту:</translation>
diff --git a/chrome/app/resources/generated_resources_si.xtb b/chrome/app/resources/generated_resources_si.xtb index 472274597..19ed43c 100644 --- a/chrome/app/resources/generated_resources_si.xtb +++ b/chrome/app/resources/generated_resources_si.xtb
@@ -8298,7 +8298,6 @@ <translation id="9050666287014529139">රහස්වැකිය</translation> <translation id="9052404922357793350">දිගටම අවහිර කරන්න</translation> <translation id="9053563360605707198">දෙපැත්තේම මුද්රණ කරන්න</translation> -<translation id="9053893665344928494">මගේ තේරීම මතක තබා ගන්න</translation> <translation id="9055636786322918818">RC4 සංකේතනය බලාත්මක කරන්න. RC4 කේතාංක ආරක්ෂිත නොවන නිසා, මෙම විකල්පය භාවිතය ඔබගේ අවදානම වැඩි කරයි.</translation> <translation id="9056810968620647706">ගැලපීම් හමු නොවීය.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> හට පහත අන්තර්ගතයට ප්රවේශ වීමට අවශ්යයි:</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index d2a4c9a..6cb1f98b 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -8302,7 +8302,6 @@ <translation id="9050666287014529139">Prístupová fráza</translation> <translation id="9052404922357793350">Pokračovať v blokovaní</translation> <translation id="9053563360605707198">Obojstranná tlač</translation> -<translation id="9053893665344928494">Zapamätať si výber</translation> <translation id="9055636786322918818">Vynúťte šifrovanie RC4. Šifry RC4 sú nezabezpečené, takže použitím tejto možnosti zvýšite riziko.</translation> <translation id="9056810968620647706">Nenašli sa žiadne zhody.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> požaduje prístup k nasledujúcemu obsahu:</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 3dfc63bc..590d767 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -8325,7 +8325,6 @@ <translation id="9050666287014529139">Geslo</translation> <translation id="9052404922357793350">Blokiraj še naprej</translation> <translation id="9053563360605707198">Tiskanje na obeh straneh</translation> -<translation id="9053893665344928494">Zapomni si mojo izbiro</translation> <translation id="9055636786322918818">Vsili šifriranje RC4. Če uporabite to možnosti, je tveganje večje, saj šifriranje RC4 ni varno.</translation> <translation id="9056810968620647706">Ni ujemanj.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> želi dostopati do te vsebine:</translation>
diff --git a/chrome/app/resources/generated_resources_sq.xtb b/chrome/app/resources/generated_resources_sq.xtb index 78dc07f..fcfa655 100644 --- a/chrome/app/resources/generated_resources_sq.xtb +++ b/chrome/app/resources/generated_resources_sq.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">Certifikata që kërkohet nga rrjeti "<ph name="NETWORK_NAME" />" nuk është e instaluar ose nuk është më e vlefshme. Merr një certifikatë tjetër dhe provo sërish lidhjen.</translation> <translation id="1375321115329958930">Fjalëkalimet e ruajtura</translation> <translation id="1375557162880614858">Dëshiron të aktivizosh ChromeVox, lexuesin e integruar të ekranit për Chrome OS Flex?</translation> +<translation id="1375938286942050085">Konfigurimi përfundoi! Përgatite pajisjen për lojërat më pas</translation> <translation id="137651782282853227">Adresat e ruajtura do të shfaqen këtu</translation> <translation id="1376771218494401509">Dritarja e &emrit...</translation> <translation id="1377600615067678409">Kapërceje tani</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">Të restaurohet faqja e parazgjedhur e nisjes?</translation> <translation id="1388253969141979417">Lejohen të përdorin mikrofonin tënd</translation> <translation id="1388728792929436380">Pajisja <ph name="DEVICE_TYPE" /> do të riniset kur të përfundojnë përditësimet.</translation> +<translation id="1389601498324964367">Hapësira ruajtëse me kuotat e menaxhuara</translation> <translation id="139013308650923562">Lejohen që të përdorin fontet e instaluara në pajisjen tënde</translation> <translation id="1390548061267426325">Hape si skedë të zakonshme</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> nuk është autorizuar të printojë te <ph name="PRINTER_NAME" />. Kontakto me administratorin tënd.</translation> @@ -1060,6 +1062,7 @@ <translation id="1992924914582925289">Hiqe nga pajisja</translation> <translation id="1994173015038366702">URL-ja e sajtit</translation> <translation id="1995916364271252349">Kontrollo çfarë mund të përdorin dhe shfaqin sajtet (vendndodhja, kamera, dritaret kërcyese etj.)</translation> +<translation id="1997433994358798851">Chrome ka nevojë për leje për të përdorur Bluetooth-in për t'u lidhur me pajisjen tënde</translation> <translation id="1997616988432401742">Certifikatat e tua</translation> <translation id="1999115740519098545">Në nisje</translation> <translation id="2000419248597011803">Dërgon disa kuki dhe kërkime nga shiriti i adresës dhe kutia e kërkimit te motori yt i parazgjedhur i kërkimit</translation> @@ -1722,6 +1725,7 @@ <translation id="25899519884572181">Dil nga modaliteti i lexuesit</translation> <translation id="2593499352046705383">Përpara se të fillosh, sigurohu që të kesh rezervuar të dhënat e tua. Instalimi i <ph name="DEVICE_OS" /> do të mbishkruajë diskun e ngurtë. Mëso më shumë në g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Kërko në Google ose shkruaj URL-në</translation> +<translation id="2599048253926156421">Emri i përdoruesit u kopjua te kujtesa e fragmenteve</translation> <translation id="2602501489742255173">Rrëshqit shpejt lart për të filluar</translation> <translation id="2603115962224169880">Pastro kompjuterin</translation> <translation id="2603355571917519942">Voice Match është gati</translation> @@ -1944,6 +1948,7 @@ <translation id="2804043232879091219">Shfletuesi alternativ nuk mund të hapej</translation> <translation id="2804667941345577550">Do të nxirresh nga ky sajt, duke përfshirë edhe në skedat e hapura</translation> <translation id="2804680522274557040">Kamera është çaktivizuar</translation> +<translation id="280518252911523675">Nëse vazhdon pa futur fjalëkalimin tënd të vjetër, të dhënat e tua lokale do të fshihen. Do të identifikohesh me "Llogarinë tënde të Google" për ta konfiguruar përsëri këtë përdorues.</translation> <translation id="2805539617243680210">Je plotësisht gati!</translation> <translation id="2805646850212350655">Sistemi i skedarëve të enkriptimit të Microsoft</translation> <translation id="2805756323405976993">Aplikacionet</translation> @@ -3059,6 +3064,7 @@ <translation id="3895090224522145010">Emri i përdoruesit i Kerberos</translation> <translation id="389521680295183045">Sajtet mund të kërkojnë të dinë kur e përdor pajisjen tënde në mënyrë aktive</translation> <translation id="3897298432557662720">{COUNT,plural, =1{një imazh}other{# imazhe}}</translation> +<translation id="3897746662269329507">Pajisja jote <ph name="DEVICE_TYPE" /> është ndërtuar për lojëra. Më pas do të hapet aplikacioni "Eksploro", ku mund të qasesh në qindra prej lojërave më të fundit, mund të shikosh oferta për lojërat dhe të zbulosh veçoritë e lojërave që janë të përfshira në pajisjen tënde.</translation> <translation id="3898233949376129212">Gjuha e pajisjes</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> kërkon që: <ph name="FIRST_PERMISSION" /> dhe <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Zgjidh tastierën</translation> @@ -3209,6 +3215,7 @@ <translation id="4033471457476425443">Shto dosje të re</translation> <translation id="4033711848170683365">Kjo do të fshijë përgjithmonë të dhënat e shfletimit nga kjo pajisje. "Llogaritë e Google" në këtë profil mund të përdoren nga aplikacionet e tjera në pajisjen tënde <ph name="DEVICE_TYPE" />. Mund t'i heqësh këto llogari te <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Sajtet e sigurta mund të integrojnë përmbajtje si imazhet ose kornizat e uebit që nuk janë të sigurta</translation> +<translation id="4034741552964543387">Vazhdo pa të dhënat lokale</translation> <translation id="4034824040120875894">Printeri</translation> <translation id="4035758313003622889">&Menaxheri i detyrave</translation> <translation id="4035877632587724847">Mos lejo</translation> @@ -3400,6 +3407,7 @@ <translation id="4242533952199664413">Hap cilësimet</translation> <translation id="4242577469625748426">Dështoi në instalimin e cilësimeve në këtë pajisje: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Printeri është vendosur në pauzë</translation> +<translation id="424423026762293842">Restauro të dhënat e tua lokale</translation> <translation id="4244238649050961491">Gjej më shumë aplikacione të stilolapsit</translation> <translation id="4246980464509998944">Komentet shtesë:</translation> <translation id="424726838611654458">Hape gjithmonë në Adobe Reader</translation> @@ -4957,6 +4965,7 @@ <translation id="5792728279623964091">Trokit te butoni i energjisë</translation> <translation id="5793339252089865437">Nëse e shkarkon përditësimin nëpërmjet rrjetit celular, kjo mund të shkaktojë tarifa të tepërta.</translation> <translation id="5793420564274426163">Konfirmimi i çiftimit</translation> +<translation id="5793430094159150686">Fjalëkalimi yt është ndryshuar. Për të restauruar të dhënat e tua lokale, duhet të futësh fjalëkalimin tënd të vjetër.</translation> <translation id="5794034487966529952">Tavolina e punës "<ph name="DESK_TITLE" />" ka <ph name="NUM_BROWSERS" /> dritare të shfletuesit të hapura</translation> <translation id="5794414402486823030">Gjithmonë hape me shikuesin e sistemit</translation> <translation id="5794700615121138172">Skedarët e ndarë të Linux</translation> @@ -5881,6 +5890,7 @@ <translation id="6700093763382332031">Kyçja e kartës celulare SIM</translation> <translation id="6700480081846086223">Transmeto <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Nuk mundi të gjente profil.</translation> +<translation id="6701824422332982935">Ringarko faqen për të përdorur këto shtesa</translation> <translation id="6702639462873609204">&Redakto...</translation> <translation id="6703212423117969852">Mund ta provosh përsëri më vonë në Chrome.</translation> <translation id="6703254819490889819">Restauro rezervimin</translation> @@ -7106,6 +7116,7 @@ <translation id="7903742244674067440">Ke certifikata në skedar që identifikojnë këto autoritete të certifikatave</translation> <translation id="7903925330883316394">Softueri ndihmës: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Ofroji portat e Linux për pajisjet e tjera në rrjetin tënd.</translation> +<translation id="7906440585529721295">Të dhënat lokale do të fshihen</translation> <translation id="7907837847548254634">Shfaq një theksim të shpejtë të objektit të fokusuar</translation> <translation id="7908378463497120834">Na vjen keq, të paktën një pjesë në pajisjen e hapësirës ruajtëse të jashtme nuk mund të montohej.</translation> <translation id="7909324225945368569">Riemërto profilin tënd</translation> @@ -7443,6 +7454,7 @@ <translation id="822050276545350872">Nga tani e në vijim, nuk kërkohet më të presësh</translation> <translation id="8221491193165283816">Ti i bllokon zakonisht njoftimet. Për ta lejuar këtë sajt që të të njoftojë, kliko këtu.</translation> <translation id="822347941086490485">Po gjen pajisje HID...</translation> +<translation id="8223573963214454788">Vazhdo dhe fshi të dhënat</translation> <translation id="8225046344534779393">Kontrollo lidhjen me internetin</translation> <translation id="8225265270453771718">Ndaj një dritare të aplikacionit</translation> <translation id="8226222018808695353">Ndalohet</translation> @@ -7543,6 +7555,7 @@ <translation id="8314381333424235892">Shtesa mungon ose është çinstaluar</translation> <translation id="831440797644402910">Kjo dosje nuk mund të hapet</translation> <translation id="8314835274931377415">Të niset konfigurimi i "Qasjes me çelës"?</translation> +<translation id="8317582043908962055">Dallo tekstin në skedarin P&DF</translation> <translation id="8317671367883557781">Shto lidhje rrjeti</translation> <translation id="8319414634934645341">Përdorimi i zgjeruar i çelësit</translation> <translation id="8321837372750396788">Kjo pajisje <ph name="DEVICE_TYPE" /> do të menaxhohet nga <ph name="MANAGER" />.</translation> @@ -8276,7 +8289,6 @@ <translation id="9050666287014529139">Shprehje kalimi</translation> <translation id="9052404922357793350">Vazhdo bllokimin</translation> <translation id="9053563360605707198">Printo në të dyja anët</translation> -<translation id="9053893665344928494">Kujtoje zgjedhjen time</translation> <translation id="9055636786322918818">Zbato enkriptimin RC4. Përdorimi i këtij opsioni rrit rrezikun për ty, pasi shifrat RC4 nuk janë të sigurta.</translation> <translation id="9056810968620647706">Nuk u gjet asnjë përputhje.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> kërkon të ketë qasje në përmbajtjen e mëposhtme:</translation> @@ -8428,6 +8440,7 @@ <translation id="9203398526606335860">&Profilizimi u aktivizua</translation> <translation id="9203904171912129171">Zgjidh një pajisje</translation> <translation id="9206889157914079472">Mbajtja e shënimeve me stilolaps nga ekrani i kyçjes</translation> +<translation id="9208192193641542858">Të dhënat lokale janë të mbrojtura nga fjalëkalimi yt i vjetër. Nëse e ke ndryshuar fjalëkalimin së fundi, provo përsëri fjalëkalimin e vjetër.</translation> <translation id="9209563766569767417">Po kontrollon konfigurimin e kontejnerit të Linux</translation> <translation id="9209689095351280025">Sajtet nuk mund të përdorin kuki që të monitorojnë nëpër ueb</translation> <translation id="9211177926627870898">Kërkohet përditësimi</translation>
diff --git a/chrome/app/resources/generated_resources_sr-Latn.xtb b/chrome/app/resources/generated_resources_sr-Latn.xtb index 755c157..2d07bcf3 100644 --- a/chrome/app/resources/generated_resources_sr-Latn.xtb +++ b/chrome/app/resources/generated_resources_sr-Latn.xtb
@@ -8299,7 +8299,6 @@ <translation id="9050666287014529139">Pristupna fraza</translation> <translation id="9052404922357793350">Nastavi sa blokiranjem</translation> <translation id="9053563360605707198">Štampaj dvostrano</translation> -<translation id="9053893665344928494">Zapamti izbor</translation> <translation id="9055636786322918818">Primenjuje RC4 šifrovanje. Korišćenje ove opcije vas izlaže većem riziku jer su RC4 šifre nebezbedne.</translation> <translation id="9056810968620647706">Nije pronađeno nijedno podudaranje.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> želi da pristupa sledećem sadržaju:</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index ecd17295..fd35c96 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -8299,7 +8299,6 @@ <translation id="9050666287014529139">Приступна фраза</translation> <translation id="9052404922357793350">Настави са блокирањем</translation> <translation id="9053563360605707198">Штампај двострано</translation> -<translation id="9053893665344928494">Запамти избор</translation> <translation id="9055636786322918818">Примењује RC4 шифровање. Коришћење ове опције вас излаже већем ризику јер су RC4 шифре небезбедне.</translation> <translation id="9056810968620647706">Није пронађено ниједно подударање.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> жели да приступа следећем садржају:</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 3cfe421..cc895c0 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Det certifikat som krävs av nätverket <ph name="NETWORK_NAME" /> är inte installerat eller inte längre giltigt. Hämta ett nytt certifikat och försök ansluta igen.</translation> <translation id="1375321115329958930">Sparade lösenord</translation> <translation id="1375557162880614858">Vill du aktivera ChromeVox, den inbyggda skärmläsaren för ChromeOS Flex?</translation> +<translation id="1375938286942050085">Konfigureringen är klar. Nu kan du göra klart enheten för spel.</translation> <translation id="137651782282853227">Sparade adresser visas här</translation> <translation id="1376771218494401509">Namnge fönstret …</translation> <translation id="1377600615067678409">Hoppa över nu</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Vill du återställa standardinställningen för startfliken?</translation> <translation id="1388253969141979417">Får använda mikrofonen</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> startas om när uppdateringarna har slutförts.</translation> +<translation id="1389601498324964367">Kvothanterad lagring</translation> <translation id="139013308650923562">Har tillåtelse att använda teckensnitt som har installerats på enheten</translation> <translation id="1390548061267426325">Öppna som en vanlig flik</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> har inte behörighet att skriva ut på <ph name="PRINTER_NAME" />. Kontakta administratören.</translation> @@ -1075,6 +1077,7 @@ <translation id="1992924914582925289">Ta bort från enheten</translation> <translation id="1994173015038366702">Webbadress</translation> <translation id="1995916364271252349">Styr vilken information webbplatser kan använda och visa (plats, kamera, popup-fönster med mera)</translation> +<translation id="1997433994358798851">Chrome behöver behörighet för att ansluta till enheten via Bluetooth</translation> <translation id="1997616988432401742">Dina certifikat</translation> <translation id="1999115740519098545">Vid start</translation> <translation id="2000419248597011803">Skickar vissa cookies och sökningar från adressfältet och sökrutan till standardsökmotorn</translation> @@ -1739,6 +1742,7 @@ <translation id="25899519884572181">Avsluta läsarläget</translation> <translation id="2593499352046705383">Kontrollera att du har en säkerhetskopia av din data innan du börjar. All data på hårddisken skrivs över när du installerar <ph name="DEVICE_OS" />. Läs mer på g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Sök på Google eller skriv webbadressen</translation> +<translation id="2599048253926156421">Användarnamnet har kopierats till urklipp</translation> <translation id="2602501489742255173">Kom igång genom att svepa uppåt</translation> <translation id="2603115962224169880">Rensa upp på datorn</translation> <translation id="2603355571917519942">Voice Match har konfigurerats</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">Det gick inte att öppna den andra webbläsaren</translation> <translation id="2804667941345577550">Du loggas ut från den här webbplatsen, även på öppna flikar</translation> <translation id="2804680522274557040">Kamera har inaktiverats</translation> +<translation id="280518252911523675">Om du fortsätter utan att ange det gamla lösenordet raderas den lokala datan. Du måste logga in med Google-kontot om du vill konfigurera användaren igen.</translation> <translation id="2805539617243680210">Nu är det klart.</translation> <translation id="2805646850212350655">Microsofts krypterande filsystem</translation> <translation id="2805756323405976993">Appar</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">Användarnamn för Kerberos</translation> <translation id="389521680295183045">Webbplatser kan begära tillstånd att få veta om du använder enheten aktivt</translation> <translation id="3897298432557662720">{COUNT,plural, =1{en bild}other{# bilder}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> är byggd för spel. Nu öppnas appen Utforska där du kan få åtkomst till hundratals av de senaste spelen, se spelerbjudanden och upptäcka spelfunktioner som hör till enheten.</translation> <translation id="3898233949376129212">Enhetens språk</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> vill <ph name="FIRST_PERMISSION" /> och <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Välj tangentbord</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">Lägg till ny mapp</translation> <translation id="4033711848170683365">All webbinformation raderas permanent från den här enheten. Google-konton i den här profilen kanske används i andra appar på din <ph name="DEVICE_TYPE" />. Du kan ta bort dessa konton via <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Säkra webbplatser kan ha inbäddat innehåll som bilder eller ramar som inte är säkra</translation> +<translation id="4034741552964543387">Fortsätt utan lokal data</translation> <translation id="4034824040120875894">Skrivare</translation> <translation id="4035758313003622889">&Aktivitetshanteraren</translation> <translation id="4035877632587724847">Tillåt inte</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">Öppna Inställningar</translation> <translation id="4242577469625748426">Det gick inte att installera policyinställningar på enheten: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Skrivaren har pausats</translation> +<translation id="424423026762293842">Återställ lokal data</translation> <translation id="4244238649050961491">Hitta fler appar för e-penna</translation> <translation id="4246980464509998944">Fler kommentarer:</translation> <translation id="424726838611654458">Öppna alltid i Adobe Reader</translation> @@ -4976,6 +4984,7 @@ <translation id="5792728279623964091">Tryck på strömbrytaren</translation> <translation id="5793339252089865437">Om du laddar ned uppdateringen via mobilnätverket kan det leda till avgifter för överskriden förbrukningsgräns.</translation> <translation id="5793420564274426163">Bekräftelse av parkoppling</translation> +<translation id="5793430094159150686">Ditt lösenord har ändrats. Du måste ange ditt gamla lösenord för att återställa lokal data.</translation> <translation id="5794034487966529952">Skrivbordet <ph name="DESK_TITLE" /> har <ph name="NUM_BROWSERS" /> webbläsarfönster öppna</translation> <translation id="5794414402486823030">Öppna alltid med systemets visningsprogram</translation> <translation id="5794700615121138172">Delade mappar i Linux</translation> @@ -5900,6 +5909,7 @@ <translation id="6700093763382332031">Lås för SIM-kortet</translation> <translation id="6700480081846086223">Casta <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Profilen kunde inte hämtas.</translation> +<translation id="6701824422332982935">Läs in sidan igen för att använda tilläggen</translation> <translation id="6702639462873609204">&Redigera ...</translation> <translation id="6703212423117969852">Du kan försöka igen senare i Chrome.</translation> <translation id="6703254819490889819">Återställ säkerhetskopia</translation> @@ -7127,6 +7137,7 @@ <translation id="7903742244674067440">Du har sparade certifikat som identifierar dessa certifikatutfärdare</translation> <translation id="7903925330883316394">Verktyg: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Gör Linux-portar tillgängliga för andra enheter på nätverket.</translation> +<translation id="7906440585529721295">Lokal data raderas</translation> <translation id="7907837847548254634">Visa en snabb markering av objektet i fokus</translation> <translation id="7908378463497120834">Minst en partition på den externa lagringsenheten kunde inte monteras.</translation> <translation id="7909324225945368569">Byt namn på profilen</translation> @@ -7465,6 +7476,7 @@ <translation id="822050276545350872">I fortsättningen behöver du inte vänta</translation> <translation id="8221491193165283816">Du blockerar aviseringar. Klicka här om du vill tillåta aviseringar från webbplatsen.</translation> <translation id="822347941086490485">Söker efter HID-enheter …</translation> +<translation id="8223573963214454788">Fortsätt och radera data</translation> <translation id="8225046344534779393">Kontrollera internetanslutningen</translation> <translation id="8225265270453771718">Dela ett appfönster</translation> <translation id="8226222018808695353">Förbjuden</translation> @@ -7565,6 +7577,7 @@ <translation id="8314381333424235892">Tillägget saknas eller har avinstallerats</translation> <translation id="831440797644402910">Det går inte att öppna den här mappen</translation> <translation id="8314835274931377415">Vill du starta konfigureringsguiden för brytarstyrning?</translation> +<translation id="8317582043908962055">Känn igen P&DF-text</translation> <translation id="8317671367883557781">Lägg till nätverksanslutning</translation> <translation id="8319414634934645341">Utökad nyckelanvändning</translation> <translation id="8321837372750396788">Denna <ph name="DEVICE_TYPE" /> hanteras av <ph name="MANAGER" />.</translation> @@ -8298,7 +8311,6 @@ <translation id="9050666287014529139">Lösenfras</translation> <translation id="9052404922357793350">Fortsätt blockera</translation> <translation id="9053563360605707198">Dubbelsidig utskrift</translation> -<translation id="9053893665344928494">Kom ihåg mitt val</translation> <translation id="9055636786322918818">Tillämpa RC4-kryptering. Det här alternativet är mer riskabelt eftersom RC4-chiffer är osäkra.</translation> <translation id="9056810968620647706">Inga träffar hittades.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> vill få åtkomst till följande innehåll:</translation> @@ -8450,6 +8462,7 @@ <translation id="9203398526606335860">&Profilering aktiverad</translation> <translation id="9203904171912129171">Välj en enhet</translation> <translation id="9206889157914079472">Anteckna med e-penna på låsskärmen</translation> +<translation id="9208192193641542858">Lokal data skyddas med ditt gamla lösenord. Om du nyligen har ändrat lösenordet kan du försöka att logga in med det gamla lösenordet igen.</translation> <translation id="9209563766569767417">Linux-behållarens konfiguration kontrolleras</translation> <translation id="9209689095351280025">Webbplatser kan inte använda cookies som spårar dig på webben</translation> <translation id="9211177926627870898">Uppdatering krävs</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index c2d9e1a..0e2df3a5 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Cheti kinachohitajika na mtandao "<ph name="NETWORK_NAME" />" hakijasakinishwa au sio halali tena. Tafadhali pata cheti kipya na ujaribu kuunganisha tena.</translation> <translation id="1375321115329958930">Manenosiri Yaliyohifadhiwa</translation> <translation id="1375557162880614858">Je, ungependa kuwasha ChromeVox, kisoma skrini kilichojumuishwa ndani ya kifaa kwa ajili ya ChromeOS Flex?</translation> +<translation id="1375938286942050085">Uwekaji mipangilio umekamilika! Andaa kifaa chako kwa ajili ya michezo ya video inayofuata</translation> <translation id="137651782282853227">Anwani zilizohifadhiwa zitaonekana hapa</translation> <translation id="1376771218494401509">Lipe &Dirisha jina...</translation> <translation id="1377600615067678409">Ruka kwa sasa</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Ungependa kurejesha ukurasa unaoanza chaguomsingi?</translation> <translation id="1388253969141979417">Zinazoruhusiwa kutumia maikrofoni yako</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> itazima kisha kuwaka wakati mchakato wa kusasisha utakamilika.</translation> +<translation id="1389601498324964367">Nafasi ya hifadhi inayodhibitiwa</translation> <translation id="139013308650923562">Zinazoruhusiwa kutumia fonti zilizosakinishwa kwenye kifaa chako</translation> <translation id="1390548061267426325">Fungua kama Kichupo cha Kawaida</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> hajaidhinishwa kuchapisha kwenye <ph name="PRINTER_NAME" />. Tafadhali wasiliana na msimamizi wako.</translation> @@ -1071,6 +1073,7 @@ <translation id="1992924914582925289">Ondoa kwenye kifaa</translation> <translation id="1994173015038366702">URL ya Tovuti</translation> <translation id="1995916364271252349">Hudhibiti maelezo ambayo tovuti zinaweza kuonyesha na kutumia (mahali, kamera, madirisha ibukizi na zaidi)</translation> +<translation id="1997433994358798851">Chrome inahitaji ruhusa ili itumie Bluetooth kuunganisha kifaa chako</translation> <translation id="1997616988432401742">Vyeti vyako</translation> <translation id="1999115740519098545">Wakati wa kuanza</translation> <translation id="2000419248597011803">Hutuma baadhi ya vidakuzi na utafutaji kutoka kwenye sehemu ya anwani na kisanduku cha kutafutia kwenye mtambo wako chaguomsingi wa kutafuta</translation> @@ -1736,6 +1739,7 @@ <translation id="25899519884572181">Funga hali ya kisomaji</translation> <translation id="2593499352046705383">Kabla hujaanza, hakikisha kwamba una nakala ya data yako. Hatua ya kusakinisha <ph name="DEVICE_OS" /> itafuta data yote iliyo kwenye diski kuu yako. Pata maelezo zaidi kwenye g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Tafuta kwenye Google au charaza URL</translation> +<translation id="2599048253926156421">Jina la mtumiaji limenakiliwa kwenye ubao wa kunakili</translation> <translation id="2602501489742255173">Telezesha kidole kuelekea juu ili uanze</translation> <translation id="2603115962224169880">Futa programu hatari kwenye kompyuta yako</translation> <translation id="2603355571917519942">Voice Match iko tayari</translation> @@ -1959,6 +1963,7 @@ <translation id="2804043232879091219">Tumeshindwa kufungua kivinjari mbadala</translation> <translation id="2804667941345577550">Utaondolewa kwenye akaunti ya tovuti hii, ikiwemo vichupo ambavyo umefungua</translation> <translation id="2804680522274557040">Kamera imezimwa</translation> +<translation id="280518252911523675">Iwapo utaendelea bila kuweka nenosiri lako la awali, data yako iliyo kwenye kifaa itafutwa. Utaingia katika akaunti ukitumia akaunti yako ya Google ili uweke tena mipangilio ya mtumiaji huyu.</translation> <translation id="2805539617243680210">Kila kitu kiko tayari!</translation> <translation id="2805646850212350655">Mfumo wa Microsoft wa Usimbaji wa Faili</translation> <translation id="2805756323405976993">Programu</translation> @@ -3074,6 +3079,7 @@ <translation id="3895090224522145010">Jina la mtumiaji wa Kerberos</translation> <translation id="389521680295183045">Tovuti zinaweza kuomba ruhusa ya kujua wakati unatumia kifaa chako</translation> <translation id="3897298432557662720">{COUNT,plural, =1{picha}other{Picha #}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> yako imeundwa maalum kwa ajili ya michezo ya video. Programu ya Gundua itafunguka ambapo utaweza kufikia mamia ya michezo mipya, kuona ofa za michezo ya video na kufahamu vipengele vya michezo vilivyojumuishwa kwenye kifaa chako.</translation> <translation id="3898233949376129212">Lugha inayotumika kwenye kifaa</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> inataka: <ph name="FIRST_PERMISSION" /> na <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Chagua kibodi</translation> @@ -3224,6 +3230,7 @@ <translation id="4033471457476425443">Ongeza folda mpya</translation> <translation id="4033711848170683365">Hatua hii itafuta kabisa data ya kuvinjari kwenye kifaa hiki. Huenda Akaunti za Google zilizo kwenye wasifu huu zikatumiwa na programu zingine kwenye <ph name="DEVICE_TYPE" /> yako. Unaweza kuondoa akaunti hizi katika sehemu ya <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Huenda tovuti salama zikapachika maudhui kama vile picha au fremu za wavuti zisizo salama</translation> +<translation id="4034741552964543387">Endelea bila kurejesha data iliyo kwenye kifaa</translation> <translation id="4034824040120875894">Printa</translation> <translation id="4035758313003622889">&Kidhibiti cha shughuli</translation> <translation id="4035877632587724847">Usiruhusu</translation> @@ -3413,6 +3420,7 @@ <translation id="4242533952199664413">Fungua mipangilio</translation> <translation id="4242577469625748426">Imeshindwa kusakinisha mipangilio ya sera kwenye kifaa: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Printa imesitishwa</translation> +<translation id="424423026762293842">Rejesha data yako iliyo kwenye kifaa</translation> <translation id="4244238649050961491">Pata programu zaidi za stylus</translation> <translation id="4246980464509998944">Maoni mengine:</translation> <translation id="424726838611654458">Fungua katika Adobe Reader wakati wowote</translation> @@ -4971,6 +4979,7 @@ <translation id="5792728279623964091">Tafadhali gusa kitufe chako cha kuwasha/kuzima</translation> <translation id="5793339252089865437">Iwapo unapakua sasisho kupitia mtandao wa simu, huenda utatozwa zaidi.</translation> <translation id="5793420564274426163">Uthibitisho wa Kuoanisha</translation> +<translation id="5793430094159150686">Nenosiri lako limebadilishwa. Ili urejeshe data yako iliyo kwenye kifaa, utahitaji kuweka nenosiri lako la awali.</translation> <translation id="5794034487966529952">Eneokazi la <ph name="DESK_TITLE" /> lina madirisha <ph name="NUM_BROWSERS" /> ya kivinjari yaliyofunguliwa</translation> <translation id="5794414402486823030">Fungua ukitumia kitazamaji cha mfumo wakati wowote</translation> <translation id="5794700615121138172">Folda zinazoshirikiwa za Linux</translation> @@ -5895,6 +5904,7 @@ <translation id="6700093763382332031">Kufunga SIM ya Mtandao wa Simu</translation> <translation id="6700480081846086223">Tuma <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Haikuweza kupata maelezo wasifu.</translation> +<translation id="6701824422332982935">Pakia upya ukurasa ili utumie viendelezi hivi</translation> <translation id="6702639462873609204">&Hariri...</translation> <translation id="6703212423117969852">Unaweza kujaribu tena baadaye kwenye Chrome.</translation> <translation id="6703254819490889819">Rejesha hifadhi ya nakala</translation> @@ -7123,6 +7133,7 @@ <translation id="7903742244674067440">Una vyeti kwenye faili vinavyotambua mamlaka ya vyeti hivi</translation> <translation id="7903925330883316394">Kitumizi: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Fanya milango ya Linux ipatikane kwenye vifaa vingine katika mtandao wako.</translation> +<translation id="7906440585529721295">Data iliyo kwenye kifaa itafutwa</translation> <translation id="7907837847548254634">Onyesha kwa kifupi kipengee kilichoangaziwa</translation> <translation id="7908378463497120834">Samahani, angalau sehemu moja kwenye kifaa chako cha hifadhi ya nje haingeweza kuangikwa.</translation> <translation id="7909324225945368569">Badilisha jina la wasifu wako</translation> @@ -7461,6 +7472,7 @@ <translation id="822050276545350872">Kuanzia hapa na kuendelea, hutahitaji kusubiri</translation> <translation id="8221491193165283816">Huwa unazuia arifa. Ili uruhusu tovuti hii ikuarifu, bofya hapa.</translation> <translation id="822347941086490485">Inatafuta vifaa vya HID...</translation> +<translation id="8223573963214454788">Endelea na ufute data</translation> <translation id="8225046344534779393">Kagua muunganisho wa intaneti</translation> <translation id="8225265270453771718">Shiriki dirisha la programu</translation> <translation id="8226222018808695353">Hairuhusiwi</translation> @@ -7561,6 +7573,7 @@ <translation id="8314381333424235892">Kiendelezi kinakosekana au hakijasakinishwa</translation> <translation id="831440797644402910">Haiwezi kufungua folda hii</translation> <translation id="8314835274931377415">Ungependa kuanza kuweka mipangilio ya Kufikia Kupitia Swichi?</translation> +<translation id="8317582043908962055">Tambua maandishi ya PDF</translation> <translation id="8317671367883557781">Ongeza muunganisho wa mtandao</translation> <translation id="8319414634934645341">Matumizi ya Ziada ya Ufunguo</translation> <translation id="8321837372750396788"><ph name="DEVICE_TYPE" /> hii itadhibitiwa na <ph name="MANAGER" />.</translation> @@ -8294,7 +8307,6 @@ <translation id="9050666287014529139">Kaulisiri</translation> <translation id="9052404922357793350">Endelea kuzuia</translation> <translation id="9053563360605707198">Chapisha kwenye pande zote mbili</translation> -<translation id="9053893665344928494">Kumbuka chaguo langu</translation> <translation id="9055636786322918818">Wezesha usimbaji wa RC4. Hatua ya kutumia chaguo hili huongeza uwezekano wa hatari kwa kuwa misimbo ya RC4 si salama.</translation> <translation id="9056810968620647706">Hakuna zinazolingana zilizopatikana.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> angependa kufikia maudhui yafuatayo:</translation> @@ -8446,6 +8458,7 @@ <translation id="9203398526606335860">&Uwekaji maelezo mafupi umewezeshwa</translation> <translation id="9203904171912129171">Chagua kifaa</translation> <translation id="9206889157914079472">Kuandika madokezo kwa kutumia Stylus wakati skrini imefungwa</translation> +<translation id="9208192193641542858">Data iliyo kwenye kifaa inalindwa kwa kutumia nenosiri lako la awali. Iwapo hivi karibuni ulibadilisha nenosiri lako, jaribu kuweka tena nenosiri lako la awali.</translation> <translation id="9209563766569767417">Inakagua mipangilio ya metadata ya Linux</translation> <translation id="9209689095351280025">Tovuti haziwezi kutumia vidakuzi vinavyokufuatilia kwenye wavuti</translation> <translation id="9211177926627870898">Sasisho linahitajika</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index 2af04f5..11d9f39 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">"<ph name="NETWORK_NAME" />" நெட்வொர்க்குக்குத் தேவைப்படும் சான்றிதழானது நிறுவப்படாமலோ இனி செல்லுபடியாகாத நிலையிலோ உள்ளது. புதிய சான்றிதழைப் பெற்று, மீண்டும் இணைக்க முயலவும்.</translation> <translation id="1375321115329958930">சேமிக்கப்பட்ட கடவுச்சொற்கள்</translation> <translation id="1375557162880614858">ChromeOS Flexஸின் உள்ளமைந்த ஸ்கிரீன் ரீடரான ChromeVoxஸை இயக்க விரும்புகிறீர்களா?</translation> +<translation id="1375938286942050085">அமைவு நிறைவடைந்தது! அடுத்து உங்கள் சாதனத்தை கேமிங்கிற்குத் தயாராக்குங்கள்</translation> <translation id="137651782282853227">சேமித்த முகவரிகள் இங்கே தோன்றும்</translation> <translation id="1376771218494401509">சாளரத்திற்குப் பெயரிடுக...</translation> <translation id="1377600615067678409">இப்போது தவிர்</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">இயல்புத் துவக்கப் பக்கத்தை மீட்டமைக்கவா?</translation> <translation id="1388253969141979417">மைக்ரோஃபோனைப் பயன்படுத்த அனுமதிக்கப்பட்டுள்ள தளங்கள்</translation> <translation id="1388728792929436380">புதுப்பிப்புகள் முடிந்தவுடன் <ph name="DEVICE_TYPE" /> சாதனம் மீண்டும் தொடங்கும்.</translation> +<translation id="1389601498324964367">ஒதுக்கீட்டின் அடிப்படையில் நிர்வகிக்கப்படும் சேமிப்பகம்</translation> <translation id="139013308650923562">சாதனத்தில் நிறுவப்பட்டுள்ள எழுத்து வடிவங்களைப் பயன்படுத்த அனுமதியுள்ள தளங்கள்</translation> <translation id="1390548061267426325">வழக்கமான தாவலாகத் திற</translation> <translation id="1390907927270446471"><ph name="PRINTER_NAME" /> இல் பிரிண்ட் செய்ய <ph name="PROFILE_USERNAME" /> அங்கீகரிக்கப்படவில்லை. உங்கள் நிர்வாகியைத் தொடர்புகொள்ளவும்.</translation> @@ -1075,6 +1077,7 @@ <translation id="1992924914582925289">சாதனத்திலிருந்து அகற்று</translation> <translation id="1994173015038366702">தள URL</translation> <translation id="1995916364271252349">தளங்கள் எந்தத் தகவல்களைப் பயன்படுத்தலாம், எதைக் காட்டலாம் (இருப்பிடம், கேமரா, பாப்-அப் மற்றும் பல) என்பதைக் கட்டுப்படுத்தும்</translation> +<translation id="1997433994358798851">சாதனத்துடன் இணைப்பதற்காக புளூடூத்தைப் பயன்படுத்த Chromeமிற்கு அனுமதி தேவை</translation> <translation id="1997616988432401742">உங்கள் சான்றிதழ்கள்</translation> <translation id="1999115740519098545">தொடக்கத்தில்</translation> <translation id="2000419248597011803">முகவரிப் பட்டியிலிருந்தும், தேடல் பெட்டியிலிருந்தும் சில குக்கீகளையும் தேடல்களையும் உங்கள் இயல்புத் தேடல் இன்ஜினுக்கு அனுப்பும்</translation> @@ -1739,6 +1742,7 @@ <translation id="25899519884572181">படித்தல் பயன்முறையிலிருந்து வெளியேறு</translation> <translation id="2593499352046705383">தொடங்குவதற்கு முன்பு, தரவு காப்புப் பிரதி எடுக்கப்பட்டிருப்பதை உறுதிசெய்துகொள்ளவும். <ph name="DEVICE_OS" /> ஐ நிறுவினால் உங்கள் ஹார்டு டிரைவில் உள்ளவை மாற்றியமைக்கப்படும். g.co/flex/InstallGuide என்ற தளத்தில் மேலும் அறிக.</translation> <translation id="2594999711683503743">Googleளில் தேடவும் அல்லது URLலை உள்ளிடவும்</translation> +<translation id="2599048253926156421">பயனர்பெயர் கிளிப்போர்டுக்கு நகலெடுக்கப்பட்டது</translation> <translation id="2602501489742255173">தொடங்குவதற்கு, மேல்நோக்கி ஸ்வைப் செய்யவும்</translation> <translation id="2603115962224169880">கம்ப்யூட்டரை மீட்டமைக்கவும்</translation> <translation id="2603355571917519942">Voice Match தயாராக உள்ளது</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">மாற்று உலாவியைத் திறக்க முடியவில்லை</translation> <translation id="2804667941345577550">திறந்துள்ள தாவல்களிலிருந்து உட்பட இந்தத் தளத்திலிருந்து வெளியேற்றப்படுவீர்கள்</translation> <translation id="2804680522274557040">கேமரா முடக்கப்பட்டுள்ளது</translation> +<translation id="280518252911523675">பழைய கடவுச்சொல்லை வழங்காமல் தொடர்ந்தால் உங்கள் அகத் தரவு நீக்கப்படும். இந்தப் பயனர் சுயவிவரத்தை மீண்டும் அமைக்க நீங்கள் Google கணக்கில் உள்நுழைய வேண்டும்.</translation> <translation id="2805539617243680210">பயன்படுத்தத் தயாராகிவிட்டீர்கள்!</translation> <translation id="2805646850212350655">Microsoft Encrypting File System</translation> <translation id="2805756323405976993">ஆப்ஸ்</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">Kerberos பயனர்பெயர்</translation> <translation id="389521680295183045">சாதனத்தில் நான் செயலில் இருப்பது குறித்து அறிந்துகொள்ள தளங்கள் அனுமதி கேட்க வேண்டும்</translation> <translation id="3897298432557662720">{COUNT,plural, =1{ஒரு படத்தை}other{# படங்களை}}</translation> +<translation id="3897746662269329507">உங்கள் <ph name="DEVICE_TYPE" /> கேமிங்கிற்காக உருவாக்கப்பட்டுள்ளது. அடுத்ததாக Explore ஆப்ஸ் திறக்கும். இதில் நூற்றுக்கணக்கான புதிய கேம்களை அணுகலாம், கேமிங் ஆஃபர்களைப் பார்க்கலாம், உங்கள் சாதனத்தின் கேமிங் அம்சங்களைக் கண்டறியலாம்.</translation> <translation id="3898233949376129212">சாதனத்தின் மொழி</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> இந்த அனுமதிகளைக் கோருகிறது: <ph name="FIRST_PERMISSION" /> & <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">கீபோர்டைத் தேர்ந்தெடுக்கவும்</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">புதிய ஃபோல்டரைச் சேர்</translation> <translation id="4033711848170683365">உலாவிய தரவு இந்தச் சாதனத்திலிருந்து நிரந்தரமாக நீக்கப்படும். இந்தச் சுயவிவரத்தில் உள்ள Google கணக்குகளை உங்கள் <ph name="DEVICE_TYPE" /> இல் உள்ள வேறு ஆப்ஸ் பயன்படுத்தக்கூடும். இந்தக் கணக்குகளை <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" /> என்பதற்குச் சென்று அகற்றலாம்.</translation> <translation id="4033963223187371752">பாதுகாப்பு இல்லாத படங்கள், இணைய ஃபிரேம்கள் போன்ற உள்ளடக்கத்தைப் பாதுகாக்கப்பட்ட தளங்கள் உட்பொதிக்கலாம்</translation> +<translation id="4034741552964543387">அகத் தரவு இல்லாமல் தொடர்க</translation> <translation id="4034824040120875894">பிரிண்டர்</translation> <translation id="4035758313003622889">&பணி நிர்வாகி</translation> <translation id="4035877632587724847">வேண்டாம்</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">அமைப்புகளைத் திற</translation> <translation id="4242577469625748426">சாதனத்தில் கொள்கை அமைப்புகளை நிறுவுவதில் தோல்வி: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">பிரிண்டர் இடைநிறுத்தப்பட்டது</translation> +<translation id="424423026762293842">அகத் தரவை மீட்டமைத்தல்</translation> <translation id="4244238649050961491">மேலும் ஸ்டைலஸ் பயன்பாடுகளைக் கண்டறிக</translation> <translation id="4246980464509998944">கூடுதல் கருத்துகள்:</translation> <translation id="424726838611654458">எப்போதும் Adobe Reader இல் திற</translation> @@ -4977,6 +4985,7 @@ <translation id="5792728279623964091">பவர் பட்டனைத் தட்டவும்</translation> <translation id="5793339252089865437">புதுப்பிப்பை மொபைல் நெர்ட்வொர்க் மூலம் பதிவிறக்கினால் கூடுதல் கட்டணங்கள் வசூலிக்கப்படலாம்.</translation> <translation id="5793420564274426163">இணைத்தலை உறுதிப்படுத்தல்</translation> +<translation id="5793430094159150686">உங்கள் கடவுச்சொல் மாற்றப்பட்டது. அகத் தரவை மீட்டெடுக்க பழைய கடவுச்சொல்லை வழங்க வேண்டும்.</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" /> டெஸ்க்கில் <ph name="NUM_BROWSERS" /> உலாவிச் சாளரங்கள் திறந்துள்ளன</translation> <translation id="5794414402486823030">எப்போதும் சிஸ்டம் வியூவரைக் கொண்டு திற</translation> <translation id="5794700615121138172">Linux பகிர்ந்த ஃபோல்டர்கள்</translation> @@ -5901,6 +5910,7 @@ <translation id="6700093763382332031">செல்லுலார் சிம்மைப் பூட்டு</translation> <translation id="6700480081846086223"><ph name="HOST_NAME" />ஐ அலைபரப்பு</translation> <translation id="6701535245008341853">சுயவிவரத்தைப் பெற முடியவில்லை.</translation> +<translation id="6701824422332982935">இந்த நீட்டிப்புகளைப் பயன்படுத்த பக்கத்தை ரெஃப்ரெஷ் செய்யவும்</translation> <translation id="6702639462873609204">&திருத்து...</translation> <translation id="6703212423117969852">Chromeமில் பின்னர் மீண்டும் முயலவும்.</translation> <translation id="6703254819490889819">காப்புப் பிரதியை மீட்டெடு</translation> @@ -7128,6 +7138,7 @@ <translation id="7903742244674067440">இந்தச் சான்றிதழ் அங்கீகரிப்பாளர்களை அடையாளங்காணும் சான்றிதழ்கள் ஃபைலில் உள்ளன</translation> <translation id="7903925330883316394">கருவி: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">உங்கள் நெட்வொர்க்கிலுள்ள பிற சாதனங்களுக்கு Linux போர்ட்டுகள் கிடைக்குமாறு செய்யலாம்.</translation> +<translation id="7906440585529721295">அகத் தரவு நீக்கப்படும்</translation> <translation id="7907837847548254634">ஃபோக்கஸ் செய்யப்படும் பொருள் தெளிவாகத் தெரியும்படி விரைவான ஹைலைட்டைக் காட்டு</translation> <translation id="7908378463497120834">உங்கள் வெளிப்புற சேகரிப்பு சாதனத்தில் குறைந்தபட்சம் ஒரு பிரிவினை இருந்தாலும் அதை ஏற்ற முடியாது. மன்னிக்கவும்.</translation> <translation id="7909324225945368569">உங்கள் சுயவிவரத்தின் புதிய பெயர்</translation> @@ -7466,6 +7477,7 @@ <translation id="822050276545350872">இனிமேல் காத்திருக்க வேண்டியதில்லை</translation> <translation id="8221491193165283816">பொதுவாக அறிவிப்புகளைத் தடுத்துள்ளீர்கள். இந்தத் தளம் அறிவிப்புகளை வழங்கச் செய்ய, இங்கே கிளிக் செய்யவும்.</translation> <translation id="822347941086490485">HID சாதனங்களைத் தேடுகிறது...</translation> +<translation id="8223573963214454788">தரவை நீக்கித் தொடர்க</translation> <translation id="8225046344534779393">இணைய இணைப்பைச் சரிபார்க்கவும்</translation> <translation id="8225265270453771718">ஆப்ஸ் சாளரத்தைப் பகிருங்கள்</translation> <translation id="8226222018808695353">தடுக்கப்பட்டது</translation> @@ -7566,6 +7578,7 @@ <translation id="8314381333424235892">விடுபட்ட அல்லது நிறுவல் நீக்கப்பட்ட நீட்டிப்பு</translation> <translation id="831440797644402910">இந்த ஃபோல்டரைத் திறக்க முடியாது</translation> <translation id="8314835274931377415">சுவிட்ச் அணுகல் அமைவைத் தொடங்கவா?</translation> +<translation id="8317582043908962055">P&DF ஃபைலில் வார்த்தைகளைக் கண்டறி</translation> <translation id="8317671367883557781">நெட்வொர்க் இணைப்பைச் சேர்</translation> <translation id="8319414634934645341">நீட்டிக்கப்பட்ட விசைப் பயன்பாடு</translation> <translation id="8321837372750396788">இனி இந்த <ph name="DEVICE_TYPE" /> சாதனத்தை <ph name="MANAGER" /> நிர்வகிக்கும்.</translation> @@ -8299,7 +8312,6 @@ <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation> <translation id="9052404922357793350">தடுப்பதைத் தொடர்</translation> <translation id="9053563360605707198">இரண்டு பக்கங்களிலும் அச்சிடு</translation> -<translation id="9053893665344928494">எனது தேர்வை நினைவில்கொள்</translation> <translation id="9055636786322918818">RC4 என்க்ரிப்ஷனைச் செயல்படுத்தும். RC4 சைஃபர்கள் பாதுகாப்பற்றவை என்பதால், இந்த விருப்பத்தைப் பயன்படுத்துவது, உங்கள் அபாயத்தை அதிகரிக்கும்.</translation> <translation id="9056810968620647706">பொருத்தங்கள் கண்டறியப்படவில்லை.</translation> <translation id="9057007989365783744">பின்வரும் உள்ளடக்கத்தை <ph name="SUPERVISED_USER_NAME" /> அணுக விரும்புகிறார்:</translation> @@ -8451,6 +8463,7 @@ <translation id="9203398526606335860">&சுயவிவரமாக்கம் இயக்கப்பட்டது</translation> <translation id="9203904171912129171">சாதனத்தைத் தேர்ந்தெடுக்கவும்</translation> <translation id="9206889157914079472">ஸ்டைலஸ் மூலம் பூட்டுத் திரையில் குறிப்பெடுத்தல்</translation> +<translation id="9208192193641542858">அகத் தரவு உங்கள் பழைய கடவுச்சொல்லால் பாதுகாக்கப்படுகிறது. சமீபத்தில் கடவுச்சொல்லை மாற்றியிருந்தால் பழைய கடவுச்சொல்லைப் பயன்படுத்தி முயலவும்.</translation> <translation id="9209563766569767417">Linux கண்டெய்னர் அமைவைச் சரிபார்க்கிறது</translation> <translation id="9209689095351280025">உங்கள் இணைய நடவடிக்கைகளைக் கண்காணிக்கும் குக்கீகளைத் தளங்களால் பயன்படுத்த முடியாது</translation> <translation id="9211177926627870898">புதுப்பிப்பு தேவை</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 7392bd9..209f36a 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -1557,7 +1557,7 @@ <translation id="2428510569851653187">ట్యాబ్ క్రాష్ అయిన సమయంలో మీరు ఏం చేస్తున్నారో వివరించండి</translation> <translation id="2428939361789119025">Wi-Fiను ఆఫ్ చేయండి</translation> <translation id="2428978615149723410">ఈ కార్ట్లు</translation> -<translation id="2431027948063157455">Google అసిస్టెంట్ను లోడ్ చేయడం సాధ్యపడలేదు, దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> +<translation id="2431027948063157455">Google Assistantను లోడ్ చేయడం సాధ్యపడలేదు, దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేసుకుని మళ్లీ ప్రయత్నించండి.</translation> <translation id="243179355394256322">మీ సంస్థ అధికారిక యూజర్లకు మాత్రమే పరికర నమోదును పరిమితం చేస్తుంది. ఈ యూజర్కు పరికరాలను ఎన్రోల్ చేసే అధికారం లేదు. దయచేసి అడ్మిన్ కన్సోల్ యూజర్ల విభాగంలోని యూజర్ "Google Meet హార్డ్వేర్ను ఎన్రోల్ చేయి" అడ్మినిస్ట్రేటర్ ప్రత్యేక హక్కును కలిగి ఉన్నారని నిర్ధారించుకోండి.</translation> <translation id="243275146591958220">డౌన్లోడ్ను రద్దు చేయండి</translation> <translation id="2433452467737464329">పేజీని స్వీయ రీఫ్రెష్ చేయడానికి URLలో ప్రశ్న పరామితిని జోడించండి: chrome://network/?refresh=<sec></translation> @@ -8306,7 +8306,6 @@ <translation id="9050666287014529139">రహస్య పదబంధం</translation> <translation id="9052404922357793350">బ్లాక్ చేయడాన్ని కొనసాగించు</translation> <translation id="9053563360605707198">రెండు వైపులా ముద్రించు</translation> -<translation id="9053893665344928494">నా ఎంపికను గుర్తుంచుకో</translation> <translation id="9055636786322918818">RC4 ఎన్క్రిప్షన్ను అమలు చేయండి. ఈ ఎంపికను ఉపయోగించడం వలన RC4 సైఫర్లు అసురక్షితమైనవి కాబట్టి మీకు హాని పెరుగుతుంది.</translation> <translation id="9056810968620647706">పోలికలు ఏవీ దొరకలేదు.</translation> <translation id="9057007989365783744">కింది కంటెంట్ను <ph name="SUPERVISED_USER_NAME" /> యాక్సెస్ చేయాలనుకుంటున్నారు:</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 8d2908d..bee22fa 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -8291,7 +8291,6 @@ <translation id="9050666287014529139">ข้อความรหัสผ่าน</translation> <translation id="9052404922357793350">บล็อกต่อไป</translation> <translation id="9053563360605707198">พิมพ์ทั้ง 2 ด้าน</translation> -<translation id="9053893665344928494">จดจำตัวเลือกของฉัน</translation> <translation id="9055636786322918818">บังคับใช้การเข้ารหัส RC4 การใช้ตัวเลือกนี้เป็นการเพิ่มความเสี่ยงเนื่องจากการเข้ารหัส RC4 นั้นไม่ปลอดภัย</translation> <translation id="9056810968620647706">ไม่พบรายการที่ตรงกัน</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> ต้องการเข้าถึงเนื้อหาต่อไปนี้</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index ee5a41e1..095edb4 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -8292,7 +8292,6 @@ <translation id="9050666287014529139">Parola</translation> <translation id="9052404922357793350">Engellemeye devam et</translation> <translation id="9053563360605707198">Her iki yüze yazdır</translation> -<translation id="9053893665344928494">Seçimimi hatırla</translation> <translation id="9055636786322918818">RC4 şifrelemesini uygula. RC4 şifreleri güvenli olmadığından bu seçeneğin kullanılması, riskinizi artırır.</translation> <translation id="9056810968620647706">Eşleştirme bulunamadı.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> aşağıdaki içeriğe erişmek istiyor:</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index ea18308..86db7edc 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -385,6 +385,7 @@ <translation id="1374844444528092021">Сертифікат, який вимагає мережа "<ph name="NETWORK_NAME" />", не встановлено або він більше не дійсний. Отримайте новий сертифікат і повторіть спробу під’єднатися.</translation> <translation id="1375321115329958930">Збережені паролі</translation> <translation id="1375557162880614858">Активувати ChromeVox, вбудовану програму зчитування з екрана для ОС Chrome Flex?</translation> +<translation id="1375938286942050085">Налаштування завершено! Підготуйте пристрій до ігор</translation> <translation id="137651782282853227">Тут відображатимуться збережені адреси</translation> <translation id="1376771218494401509">Додати &назву вікна…</translation> <translation id="1377600615067678409">Наразі пропустити</translation> @@ -399,6 +400,7 @@ <translation id="138784436342154190">Відновити стартову сторінку за умовчанням?</translation> <translation id="1388253969141979417">Дозволено використовувати мікрофон</translation> <translation id="1388728792929436380">Пристрій <ph name="DEVICE_TYPE" /> перезапуститься після оновлення.</translation> +<translation id="1389601498324964367">Сховище з квотами</translation> <translation id="139013308650923562">Дозволено використовувати шрифти, установлені на пристрої</translation> <translation id="1390548061267426325">Відкрити як звичайну вкладку</translation> <translation id="1390907927270446471">Користувач <ph name="PROFILE_USERNAME" /> не має дозволу друкувати через принтер "<ph name="PRINTER_NAME" />". Зв’яжіться з адміністратором.</translation> @@ -1078,6 +1080,7 @@ <translation id="1992924914582925289">Видалити з пристрою</translation> <translation id="1994173015038366702">URL-адреса сайту</translation> <translation id="1995916364271252349">Контролює, яку інформацію можуть використовувати й показувати сайти (місцезнаходження, камера, спливаючі вікна тощо)</translation> +<translation id="1997433994358798851">Веб-переглядачу Chrome потрібен дозвіл використовувати Bluetooth, щоб підключитися до вашого пристрою.</translation> <translation id="1997616988432401742">Ваші сертифікати</translation> <translation id="1999115740519098545">Після запуску</translation> <translation id="2000419248597011803">Надсилає деякі файли cookie й пошукові запити з адресного рядка та вікна пошуку в пошукову систему за умовчанням</translation> @@ -1742,6 +1745,7 @@ <translation id="25899519884572181">Вийти з режиму читання</translation> <translation id="2593499352046705383">Перш ніж почати, переконайтеся, що ви створили резервну копію даних. Під час встановлення ОС <ph name="DEVICE_OS" /> буде перезаписано всі дані жорсткого диска. Докладніше: g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Пошукайте в Google або введіть URL-адресу</translation> +<translation id="2599048253926156421">Ім’я користувача скопійовано в буфер обміну</translation> <translation id="2602501489742255173">Гортайте вгору, щоб почати</translation> <translation id="2603115962224169880">Очистити комп’ютер</translation> <translation id="2603355571917519942">Voice Match налаштовано</translation> @@ -1965,6 +1969,7 @@ <translation id="2804043232879091219">Не вдалося відкрити альтернативний веб-переглядач</translation> <translation id="2804667941345577550">Ви вийдете з облікового запису на цьому сайті, зокрема у відкритих вкладках</translation> <translation id="2804680522274557040">Камеру вимкнено</translation> +<translation id="280518252911523675">Якщо ви продовжите, не ввівши старий пароль, локальні дані буде видалено. Щоб знову налаштувати цей профіль, потрібно ввійти в обліковий запис Google.</translation> <translation id="2805539617243680210">Готово!</translation> <translation id="2805646850212350655">Система шифрування файлів Microsoft</translation> <translation id="2805756323405976993">Додатки</translation> @@ -3080,6 +3085,7 @@ <translation id="3895090224522145010">Ім'я користувача Kerberos</translation> <translation id="389521680295183045">Сайти можуть запитувати, чи ви активно використовуєте пристрій</translation> <translation id="3897298432557662720">{COUNT,plural, =1{зображення}one{# зображення}few{# зображення}many{# зображень}other{# зображення}}</translation> +<translation id="3897746662269329507">Ваш пристрій <ph name="DEVICE_TYPE" /> створено для ігор. Далі відкриється додаток Можливості, де ви знайдете сотні найновіших ігор, спеціальні пропозиції та інформацію про ігрові можливості пристрою.</translation> <translation id="3898233949376129212">Мова пристрою</translation> <translation id="3898327728850887246">Сайту <ph name="SITE_NAME" /> потрібен дозвіл, щоб <ph name="FIRST_PERMISSION" /> та <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Виберіть клавіатуру</translation> @@ -3230,6 +3236,7 @@ <translation id="4033471457476425443">Додати нову папку</translation> <translation id="4033711848170683365">Дані веб-перегляду буде видалено з цього пристрою назавжди. Облікові записи Google із цього профілю можуть використовувати інші додатки на вашому пристрої <ph name="DEVICE_TYPE" />. Ви можете вилучити ці облікові записи в меню <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Безпечні сайти можуть вбудовувати незахищений контент (як-от зображення чи веб-фрейми)</translation> +<translation id="4034741552964543387">Продовжити без локальних даних</translation> <translation id="4034824040120875894">Принтер</translation> <translation id="4035758313003622889">&Диспетчер завдань</translation> <translation id="4035877632587724847">Не дозволяти</translation> @@ -3421,6 +3428,7 @@ <translation id="4242533952199664413">Відкрити налаштування</translation> <translation id="4242577469625748426">Помилка встановлення налаштувань правил на пристрої: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Принтер призупинено</translation> +<translation id="424423026762293842">Відновіть локальні дані</translation> <translation id="4244238649050961491">Більше додатків із використанням стилуса</translation> <translation id="4246980464509998944">Додаткові коментарі:</translation> <translation id="424726838611654458">Завжди відкривати в Adobe Reader</translation> @@ -4977,6 +4985,7 @@ <translation id="5792728279623964091">Натисніть кнопку живлення</translation> <translation id="5793339252089865437">Завантаження оновлень через мобільну мережу може призвести до стягнення значно вищої плати.</translation> <translation id="5793420564274426163">Підтвердження підключення</translation> +<translation id="5793430094159150686">Ваш пароль змінено. Щоб відновити локальні дані, потрібно ввести старий пароль.</translation> <translation id="5794034487966529952">На робочому столі "<ph name="DESK_TITLE" />" відкрито стільки вікон веб-переглядача: <ph name="NUM_BROWSERS" /></translation> <translation id="5794414402486823030">Завжди відкривати за допомогою системного переглядача</translation> <translation id="5794700615121138172">Спільні папки Linux</translation> @@ -5906,6 +5915,7 @@ <translation id="6700093763382332031">Блокування SIM-карти</translation> <translation id="6700480081846086223">Транслювати <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Не вдалося завантажити профіль.</translation> +<translation id="6701824422332982935">Щоб використовувати ці розширення, оновіть сторінку</translation> <translation id="6702639462873609204">&Редагувати...</translation> <translation id="6703212423117969852">Спробуйте пізніше у веб-переглядачі Chrome.</translation> <translation id="6703254819490889819">Відновити резервну копію</translation> @@ -7133,6 +7143,7 @@ <translation id="7903742244674067440">У вас є сертифікати, які ідентифікують ці центри сертифікації</translation> <translation id="7903925330883316394">Службовий додаток: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Порти Linux стануть доступними для інших пристроїв у вашій мережі.</translation> +<translation id="7906440585529721295">Локальні дані буде видалено</translation> <translation id="7907837847548254634">Ненадовго виділяти вибраний об'єкт</translation> <translation id="7908378463497120834">На жаль, підключити принаймні один розділ пристрою зовнішньої пам’яті неможливо.</translation> <translation id="7909324225945368569">Перейменувати профіль</translation> @@ -7471,6 +7482,7 @@ <translation id="822050276545350872">Надалі більше не доведеться чекати</translation> <translation id="8221491193165283816">Зазвичай ви блокуєте сповіщення. Натисніть тут, щоб дозволити сайту показувати їх.</translation> <translation id="822347941086490485">Пошук пристроїв HID…</translation> +<translation id="8223573963214454788">Продовжити й видалити дані</translation> <translation id="8225046344534779393">Перевірте інтернет-з’єднання</translation> <translation id="8225265270453771718">Поділитися вікном додатка</translation> <translation id="8226222018808695353">Заборонено</translation> @@ -7571,6 +7583,7 @@ <translation id="8314381333424235892">Розширення відсутнє або його видалено</translation> <translation id="831440797644402910">Не вдається відкрити цю папку</translation> <translation id="8314835274931377415">Почати налаштування кнопкового доступу?</translation> +<translation id="8317582043908962055">Розпізнати текст із файлу у форматі PDF</translation> <translation id="8317671367883557781">Додати з’єднання з мережею</translation> <translation id="8319414634934645341">Використання розширеного ключа</translation> <translation id="8321837372750396788">Цим пристроєм <ph name="DEVICE_TYPE" /> керуватиме <ph name="MANAGER" />.</translation> @@ -8307,7 +8320,6 @@ <translation id="9050666287014529139">Парольна фраза</translation> <translation id="9052404922357793350">Продовжити блокування</translation> <translation id="9053563360605707198">Друкувати на обох сторонах</translation> -<translation id="9053893665344928494">Запам’ятати мій вибір</translation> <translation id="9055636786322918818">Застосовує шифрування RC4. Використання цієї опції підвищує ризик, оскільки шифри RC4 ненадійні.</translation> <translation id="9056810968620647706">Збігів не знайдено.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> хоче отримати доступ до контенту нижче:</translation> @@ -8459,6 +8471,7 @@ <translation id="9203398526606335860">&Профілювання ввімкнено</translation> <translation id="9203904171912129171">Виберіть пристрій</translation> <translation id="9206889157914079472">Створення нотаток на заблокованому екрані за допомогою стилуса</translation> +<translation id="9208192193641542858">Локальні дані захищено старим паролем. Якщо ви нещодавно змінювали пароль, спробуйте ввести старий.</translation> <translation id="9209563766569767417">Перевірка налаштувань контейнера Linux</translation> <translation id="9209689095351280025">Сайти не можуть використовувати файли cookie, щоб відстежувати ваші дії в Інтернеті</translation> <translation id="9211177926627870898">Потрібне оновлення</translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 3f07355f..57526c7 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -8293,7 +8293,6 @@ <translation id="9050666287014529139">پاس فریز</translation> <translation id="9052404922357793350">مسدود کرنا جاری رکھیں</translation> <translation id="9053563360605707198">دونوں طرف پرنٹ کریں</translation> -<translation id="9053893665344928494">میری پسند یاد رکھیں</translation> <translation id="9055636786322918818">RC4 مرموز کاری کو نافذ کریں۔ اس اختیار کے استعمال سے آپ کا خطرہ بڑھ جاتا ہے، کیوں کہ RC4 سائفرز غیر محفوظ ہیں۔</translation> <translation id="9056810968620647706">کوئی مماثلتیں نہیں ملیں۔</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> درج ذیل مواد تک رسائی حاصل کرنا چاہتا ہے:</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 6fec60f..5be1f1f4 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -8296,7 +8296,6 @@ <translation id="9050666287014529139">Kodli ibora</translation> <translation id="9052404922357793350">Bloklanaversin</translation> <translation id="9053563360605707198">Ikki tarafiga chop etish</translation> -<translation id="9053893665344928494">Tanlovim eslab qolinsin</translation> <translation id="9055636786322918818">RC4 shifrlash usulidan majburiy foydalanish. RC4 shifrlari himoyasizroq, shuning uchun bu usulni tanlash xavfliroq bo‘lishi mumkin.</translation> <translation id="9056810968620647706">Hech narsa topilmadi.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> quyidagi kontentga ruxsat olmoqchi:</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index 89f3c07..0cb2cce 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">Chứng chỉ yêu cầu bởi mạng "<ph name="NETWORK_NAME" />" chưa được cài đặt hoặc không còn hợp lệ. Vui lòng nhận chứng chỉ mới và thử kết nối lại.</translation> <translation id="1375321115329958930">Mật khẩu đã lưu</translation> <translation id="1375557162880614858">Bạn có muốn kích hoạt ChromeVox (trình đọc màn hình tích hợp cho ChromeOS Flex) không?</translation> +<translation id="1375938286942050085">Đã thiết lập xong! Tiếp theo, hãy chuẩn bị sẵn thiết bị để chơi trò chơi</translation> <translation id="137651782282853227">Địa chỉ đã lưu sẽ xuất hiện ở đây</translation> <translation id="1376771218494401509">Đặt tên cho &cửa sổ...</translation> <translation id="1377600615067678409">Bỏ qua ngay bây giờ</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">Khôi phục trang khởi động mặc định?</translation> <translation id="1388253969141979417">Được phép sử dụng micrô</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> sẽ khởi động lại khi cập nhật xong.</translation> +<translation id="1389601498324964367">Bộ nhớ được quản lý theo hạn mức</translation> <translation id="139013308650923562">Cho phép sử dụng phông chữ đã cài đặt trên thiết bị của bạn</translation> <translation id="1390548061267426325">Mở dưới dạng thẻ thông thường</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> không được phép in bằng <ph name="PRINTER_NAME" />. Vui lòng liên hệ với quản trị viên của bạn.</translation> @@ -1075,6 +1077,7 @@ <translation id="1992924914582925289">Xóa khỏi thiết bị</translation> <translation id="1994173015038366702">URL trang web</translation> <translation id="1995916364271252349">Kiểm soát thông tin mà các trang web có thể dùng và hiển thị (vị trí, máy ảnh, cửa sổ bật lên và thông tin khác)</translation> +<translation id="1997433994358798851">Chrome cần có quyền sử dụng Bluetooth để kết nối với thiết bị của bạn</translation> <translation id="1997616988432401742">Chứng chỉ của bạn</translation> <translation id="1999115740519098545">Khi khởi động</translation> <translation id="2000419248597011803">Gửi một số cookie và nội dung tìm kiếm từ thanh địa chỉ cũng như hộp tìm kiếm tới công cụ tìm kiếm mặc định</translation> @@ -1739,6 +1742,7 @@ <translation id="25899519884572181">Thoát khỏi chế độ đọc</translation> <translation id="2593499352046705383">Trước khi bắt đầu, hãy đảm bảo rằng bạn đã sao lưu dữ liệu. Quá trình cài đặt <ph name="DEVICE_OS" /> sẽ ghi đè lên ổ đĩa cứng. Tìm hiểu thêm tại g.co/flex/InstallGuide.</translation> <translation id="2594999711683503743">Tìm kiếm trên Google hoặc nhập URL</translation> +<translation id="2599048253926156421">Đã sao chép tên người dùng vào bảng nhớ tạm</translation> <translation id="2602501489742255173">Vuốt lên để bắt đầu</translation> <translation id="2603115962224169880">Dọn dẹp máy tính</translation> <translation id="2603355571917519942">Voice Match đã sẵn sàng</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">Không thể mở trình duyệt thay thế</translation> <translation id="2804667941345577550">Bạn sẽ bị đăng xuất khỏi trang web này, bao gồm cả các thẻ đang mở</translation> <translation id="2804680522274557040">Đã tắt máy ảnh</translation> +<translation id="280518252911523675">Nếu bạn tiếp tục mà không nhập mật khẩu cũ, dữ liệu cục bộ của bạn sẽ bị xoá. Bạn sẽ cần đăng nhập bằng Tài khoản Google để thiết lập lại hồ sơ người dùng này.</translation> <translation id="2805539617243680210">Bạn đã hoàn tất!</translation> <translation id="2805646850212350655">Hệ thống Tệp Mã hóa của Microsoft</translation> <translation id="2805756323405976993">Ứng dụng</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">Tên người dùng Kerberos</translation> <translation id="389521680295183045">Trang web có thể xin phép phát hiện khi bạn đang dùng thiết bị của mình</translation> <translation id="3897298432557662720">{COUNT,plural, =1{một hình ảnh}other{# hình ảnh}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> có thiết kế đặc biệt phù hợp cho bạn chơi trò chơi. Tiếp theo, ứng dụng Khám phá sẽ mở ra. Trên ứng dụng này, bạn có thể truy cập hàng trăm trò chơi mới nhất, xem các ưu đãi về trò chơi và khám phá các tính năng chơi trò chơi đi kèm với thiết bị của bạn.</translation> <translation id="3898233949376129212">Ngôn ngữ của thiết bị</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> muốn: <ph name="FIRST_PERMISSION" /> và <ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">Chọn bàn phím</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">Thêm thư mục mới</translation> <translation id="4033711848170683365">Thao tác này sẽ xoá vĩnh viễn dữ liệu duyệt web của bạn khỏi thiết bị. Các tài khoản Google trong hồ sơ này có thể được các ứng dụng khác trên <ph name="DEVICE_TYPE" /> của bạn sử dụng. Bạn có thể xoá các tài khoản này trong phần <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Các trang web an toàn có thể nhúng nội dung như hình ảnh hoặc khung web không an toàn</translation> +<translation id="4034741552964543387">Tiếp tục mà không có dữ liệu cục bộ</translation> <translation id="4034824040120875894">Máy in</translation> <translation id="4035758313003622889">&Trình quản lý tác vụ</translation> <translation id="4035877632587724847">Không cho phép</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">Mở phần cài đặt</translation> <translation id="4242577469625748426">Không thể cài đặt các cài đặt chính sách trên thiết bị: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4243504193894350135">Máy in đã tạm dừng</translation> +<translation id="424423026762293842">Khôi phục dữ liệu cục bộ của bạn</translation> <translation id="4244238649050961491">Tìm thêm ứng dụng bút cảm ứng</translation> <translation id="4246980464509998944">Nhận xét bổ sung:</translation> <translation id="424726838611654458">Luôn mở trong Adobe Reader</translation> @@ -4976,6 +4984,7 @@ <translation id="5792728279623964091">Vui lòng nhấn vào nút nguồn</translation> <translation id="5793339252089865437">Nếu tải bản cập nhật này xuống qua mạng di động, thì bạn có thể phải trả phí phát sinh.</translation> <translation id="5793420564274426163">Xác nhận ghép nối</translation> +<translation id="5793430094159150686">Mật khẩu của bạn đã thay đổi. Để khôi phục dữ liệu cục bộ, bạn cần nhập mật khẩu cũ của mình.</translation> <translation id="5794034487966529952">Không gian làm việc <ph name="DESK_TITLE" /> có <ph name="NUM_BROWSERS" /> cửa sổ trình duyệt đang mở</translation> <translation id="5794414402486823030">Luôn mở bằng trình xem hệ thống</translation> <translation id="5794700615121138172">Thư mục do Linux chia sẻ</translation> @@ -5900,6 +5909,7 @@ <translation id="6700093763382332031">Khóa SIM di động</translation> <translation id="6700480081846086223">Truyền <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">Không thể tải hồ sơ.</translation> +<translation id="6701824422332982935">Tải lại trang để sử dụng các tiện ích này</translation> <translation id="6702639462873609204">&Chỉnh sửa...</translation> <translation id="6703212423117969852">Bạn có thể thử lại sau trên Chrome.</translation> <translation id="6703254819490889819">Khôi phục bản sao lưu</translation> @@ -7127,6 +7137,7 @@ <translation id="7903742244674067440">Bạn có các chứng chỉ trên tệp có thể nhận dạng các tổ chức cấp chứng chỉ này</translation> <translation id="7903925330883316394">Tiện ích: <ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">Cho phép các thiết bị khác trên mạng của bạn sử dụng cổng Linux.</translation> +<translation id="7906440585529721295">Dữ liệu cục bộ sẽ bị xoá</translation> <translation id="7907837847548254634">Làm nổi bật đối tượng được đặt tiêu điểm trong giây lát</translation> <translation id="7908378463497120834">Rất tiếc, ít nhất một phân vùng trên thiết bị lưu trữ bên ngoài của bạn không thể kết nối được.</translation> <translation id="7909324225945368569">Đổi tên hồ sơ của bạn</translation> @@ -7465,6 +7476,7 @@ <translation id="822050276545350872">Từ đây trở đi, bạn không cần phải chờ đợi nữa</translation> <translation id="8221491193165283816">Bạn thường chặn các thông báo. Để cho phép trang web này thông báo cho bạn, hãy nhấp vào đây.</translation> <translation id="822347941086490485">Đang tìm thiết bị HID...</translation> +<translation id="8223573963214454788">Tiếp tục và xoá dữ liệu</translation> <translation id="8225046344534779393">Kiểm tra kết nối Internet</translation> <translation id="8225265270453771718">Chia sẻ cửa sổ ứng dụng</translation> <translation id="8226222018808695353">Bị cấm</translation> @@ -7565,6 +7577,7 @@ <translation id="8314381333424235892">Thiếu hoặc chưa cài đặt tiện ích</translation> <translation id="831440797644402910">Không thể mở thư mục này</translation> <translation id="8314835274931377415">Bắt đầu quá trình thiết lập tính năng Tiếp cận bằng công tắc?</translation> +<translation id="8317582043908962055">Nhận dạng văn bản PDF</translation> <translation id="8317671367883557781">Thêm kết nối mạng</translation> <translation id="8319414634934645341">Sử dụng Khoá Mở rộng</translation> <translation id="8321837372750396788"><ph name="DEVICE_TYPE" /> này sẽ do <ph name="MANAGER" /> quản lý.</translation> @@ -8298,7 +8311,6 @@ <translation id="9050666287014529139">Cụm mật khẩu</translation> <translation id="9052404922357793350">Tiếp tục chặn</translation> <translation id="9053563360605707198">In trên hai mặt</translation> -<translation id="9053893665344928494">Ghi nhớ lựa chọn của tôi</translation> <translation id="9055636786322918818">Thực thi mã hóa RC4. Việc sử dụng tùy chọn này sẽ làm gia tăng rủi ro vì các thuật toán mã hóa RC4 là không an toàn.</translation> <translation id="9056810968620647706">Không tìm thấy kết quả phù hợp nào.</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" /> muốn truy cập nội dung sau:</translation> @@ -8450,6 +8462,7 @@ <translation id="9203398526606335860">&Bật cấu hình</translation> <translation id="9203904171912129171">Chọn thiết bị</translation> <translation id="9206889157914079472">Ghi chú bằng bút cảm ứng trên màn hình khóa</translation> +<translation id="9208192193641542858">Dữ liệu cục bộ được bảo vệ bằng mật khẩu cũ của bạn. Nếu gần đây bạn mới đổi mật khẩu, hãy thử lại bằng mật khẩu cũ đó.</translation> <translation id="9209563766569767417">Đang kiểm tra quá trình thiết lập vùng chứa Linux</translation> <translation id="9209689095351280025">Các trang web không thể dùng cookie theo dõi bạn trên web</translation> <translation id="9211177926627870898">Yêu cầu cập nhật</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index d03cb70..0f105ab0 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">网络“<ph name="NETWORK_NAME" />”所需的证书尚未安装或已无效。请获取新的证书并尝试重新连接。</translation> <translation id="1375321115329958930">已保存的密码</translation> <translation id="1375557162880614858">您想为 ChromeOS Flex 启用 ChromeVox(内置屏幕阅读器)吗?</translation> +<translation id="1375938286942050085">设置完毕!准备好您的设备,畅享接下来的精彩游戏</translation> <translation id="137651782282853227">已保存的地址将显示在这里</translation> <translation id="1376771218494401509">为窗口命名(&W)…</translation> <translation id="1377600615067678409">暂时跳过</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">要恢复默认启动页吗?</translation> <translation id="1388253969141979417">允许使用您的麦克风</translation> <translation id="1388728792929436380">待更新完毕后,<ph name="DEVICE_TYPE" /> 将会重启。</translation> +<translation id="1389601498324964367">通过配额管理的存储空间</translation> <translation id="139013308650923562">可以使用您设备上安装的字体</translation> <translation id="1390548061267426325">在常规标签页中打开</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" />无权通过“<ph name="PRINTER_NAME" />”进行打印。请与您的管理员联系。</translation> @@ -1056,6 +1058,7 @@ <translation id="1992924914582925289">从设备中移除</translation> <translation id="1994173015038366702">网站网址</translation> <translation id="1995916364271252349">控制网站可以使用和显示什么信息(如位置信息、摄像头、弹出式窗口及其他)</translation> +<translation id="1997433994358798851">Chrome 需要获得使用蓝牙的权限,才能连接到您的设备</translation> <translation id="1997616988432401742">您的证书</translation> <translation id="1999115740519098545">启动时</translation> <translation id="2000419248597011803">将一些 Cookie 以及地址栏和搜索框中的搜索字词发送给您的默认搜索引擎</translation> @@ -1716,6 +1719,7 @@ <translation id="25899519884572181">退出阅读器模式</translation> <translation id="2593499352046705383">在开始之前,请确保已备份数据。安装 <ph name="DEVICE_OS" /> 会覆盖您的硬盘。如需了解详情,请访问 g.co/flex/InstallGuide。</translation> <translation id="2594999711683503743">使用 Google 执行搜索,或者输入网址</translation> +<translation id="2599048253926156421">用户名已复制到剪贴板</translation> <translation id="2602501489742255173">向上滑动即可开始使用</translation> <translation id="2603115962224169880">清理计算机</translation> <translation id="2603355571917519942">Voice Match 已设置完毕</translation> @@ -1938,6 +1942,7 @@ <translation id="2804043232879091219">无法打开替代浏览器</translation> <translation id="2804667941345577550">您将会自动退出这个网站(包括打开的标签页)</translation> <translation id="2804680522274557040">摄像头已关闭</translation> +<translation id="280518252911523675">如果您在没输入旧密码的情况下继续操作,您的本地数据将被删除。您需要使用您的 Google 帐号登录,才能再次设置此用户。</translation> <translation id="2805539617243680210">您已设置完毕!</translation> <translation id="2805646850212350655">Microsoft 加密文件系统</translation> <translation id="2805756323405976993">应用</translation> @@ -3053,6 +3058,7 @@ <translation id="3895090224522145010">Kerberos 用户名</translation> <translation id="389521680295183045">网站可以询问能否了解您何时在主动使用自己的设备</translation> <translation id="3897298432557662720">{COUNT,plural, =1{1 张图片}other{# 张图片}}</translation> +<translation id="3897746662269329507">您的 <ph name="DEVICE_TYPE" /> 专为游戏打造。接下来系统会打开“探索”应用,以便您从中获取数百款最新游戏、查看游戏优惠,以及发现设备自带的游戏功能。</translation> <translation id="3898233949376129212">设备语言</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> 想获得以下权限:<ph name="FIRST_PERMISSION" />和<ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">选择键盘</translation> @@ -3202,6 +3208,7 @@ <translation id="4033471457476425443">添加新文件夹</translation> <translation id="4033711848170683365">此操作会将相关浏览数据从该设备上永久删除。这份个人资料名下的 Google 帐号可能会被您 <ph name="DEVICE_TYPE" /> 上的其他应用使用。若要移除这些帐号,请前往<ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />。</translation> <translation id="4033963223187371752">安全网站可能会内嵌不安全的内容,例如图片或 Web 框架</translation> +<translation id="4034741552964543387">继续,不恢复本地数据</translation> <translation id="4034824040120875894">打印机</translation> <translation id="4035758313003622889">任务管理器(&T)</translation> <translation id="4035877632587724847">不允许</translation> @@ -3393,6 +3400,7 @@ <translation id="4242533952199664413">打开“设置”</translation> <translation id="4242577469625748426">无法在设备上安装策略设置:<ph name="VALIDATION_ERROR" />。</translation> <translation id="4243504193894350135">打印机已暂停运行</translation> +<translation id="424423026762293842">恢复本地数据</translation> <translation id="4244238649050961491">查找更多触控笔应用</translation> <translation id="4246980464509998944">其他评论:</translation> <translation id="424726838611654458">始终用Adobe Reader打开</translation> @@ -4946,6 +4954,7 @@ <translation id="5792728279623964091">请点按您的电源按钮</translation> <translation id="5793339252089865437">如果您通过移动网络下载更新,则可能需要支付超额费用。</translation> <translation id="5793420564274426163">配对确认</translation> +<translation id="5793430094159150686">您的密码已更改。若要恢复本地数据,您需输入旧密码。</translation> <translation id="5794034487966529952">桌面“<ph name="DESK_TITLE" />”打开了 <ph name="NUM_BROWSERS" /> 个浏览器窗口</translation> <translation id="5794414402486823030">始终使用系统查看器打开</translation> <translation id="5794700615121138172">Linux 共享文件夹</translation> @@ -5869,6 +5878,7 @@ <translation id="6700093763382332031">移动网络 SIM 卡锁定</translation> <translation id="6700480081846086223">投射 <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">无法获取个人资料。</translation> +<translation id="6701824422332982935">若要使用以下扩展程序,请重新加载此页面</translation> <translation id="6702639462873609204">修改(&E)...</translation> <translation id="6703212423117969852">您可以稍后在 Chrome 中重试。</translation> <translation id="6703254819490889819">恢复备份</translation> @@ -7095,6 +7105,7 @@ <translation id="7903742244674067440">您有证书可标识以下证书授权中心</translation> <translation id="7903925330883316394">实用程序:<ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">使 Linux 端口可供您网络上的其他设备使用。</translation> +<translation id="7906440585529721295">本地数据将被删除</translation> <translation id="7907837847548254634">短暂地突出显示焦点对象</translation> <translation id="7908378463497120834">抱歉,您的外部存储设备上至少有一个分区无法加载。</translation> <translation id="7909324225945368569">重命名您的个人资料</translation> @@ -7433,6 +7444,7 @@ <translation id="822050276545350872">从现在开始,无需再等待</translation> <translation id="8221491193165283816">您通常会屏蔽通知。要允许此网站向您发送通知,请点击此处。</translation> <translation id="822347941086490485">正在查找 HID 设备…</translation> +<translation id="8223573963214454788">继续并删除数据</translation> <translation id="8225046344534779393">请检查互联网连接状况</translation> <translation id="8225265270453771718">共享应用窗口</translation> <translation id="8226222018808695353">已被禁止</translation> @@ -7533,6 +7545,7 @@ <translation id="8314381333424235892">扩展程序缺失或已卸载</translation> <translation id="831440797644402910">无法打开此文件夹</translation> <translation id="8314835274931377415">开始进行开关控制设置?</translation> +<translation id="8317582043908962055">识别 PDF 文本(&D)</translation> <translation id="8317671367883557781">添加网络连接</translation> <translation id="8319414634934645341">扩展密钥用法</translation> <translation id="8321837372750396788">此 <ph name="DEVICE_TYPE" /> 将由 <ph name="MANAGER" /> 管理。</translation> @@ -8266,7 +8279,6 @@ <translation id="9050666287014529139">密码</translation> <translation id="9052404922357793350">继续拦截</translation> <translation id="9053563360605707198">双面打印</translation> -<translation id="9053893665344928494">记住我的选择</translation> <translation id="9055636786322918818">强制执行 RC4 加密。选中此选项会令您面临更大的风险,因为 RC4 加密不安全。</translation> <translation id="9056810968620647706">未找到匹配项。</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" />想访问以下内容:</translation> @@ -8418,6 +8430,7 @@ <translation id="9203398526606335860">分析已启用(&P)</translation> <translation id="9203904171912129171">选择设备</translation> <translation id="9206889157914079472">在锁定屏幕上使用触控笔记事</translation> +<translation id="9208192193641542858">本地数据受旧密码保护。如果您最近更改了密码,请用旧密码重试。</translation> <translation id="9209563766569767417">正在检查 Linux 容器设置</translation> <translation id="9209689095351280025">网站无法使用 Cookie 来跟踪您在网上的活动</translation> <translation id="9211177926627870898">需要更新</translation>
diff --git a/chrome/app/resources/generated_resources_zh-HK.xtb b/chrome/app/resources/generated_resources_zh-HK.xtb index 41c30e5e..c00df8d4 100644 --- a/chrome/app/resources/generated_resources_zh-HK.xtb +++ b/chrome/app/resources/generated_resources_zh-HK.xtb
@@ -382,6 +382,7 @@ <translation id="1374844444528092021">網絡「<ph name="NETWORK_NAME" />」要求的憑證尚未安裝或已經無效。請取得新憑證,然後嘗試重新連線。</translation> <translation id="1375321115329958930">已儲存的密碼</translation> <translation id="1375557162880614858">要啟用 ChromeOS Flex 內置的螢幕閱讀器 ChromeVox 嗎?</translation> +<translation id="1375938286942050085">設定完成!備妥裝置以進行接下來的遊戲</translation> <translation id="137651782282853227">已儲存的地址會在這裡顯示</translation> <translation id="1376771218494401509">為視窗命名…(&W)</translation> <translation id="1377600615067678409">暫時略過</translation> @@ -396,6 +397,7 @@ <translation id="138784436342154190">要將起始網頁還原至預設值嗎?</translation> <translation id="1388253969141979417">已允許使用麥克風</translation> <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> 將在更新完成時重新啟動。</translation> +<translation id="1389601498324964367">以配額管理的儲存空間</translation> <translation id="139013308650923562">可以使用裝置上安裝的字型</translation> <translation id="1390548061267426325">在一般分頁中開啟</translation> <translation id="1390907927270446471">「<ph name="PROFILE_USERNAME" />」無權透過「<ph name="PRINTER_NAME" />」列印。請聯絡您的管理員。</translation> @@ -1075,6 +1077,7 @@ <translation id="1992924914582925289">從裝置中移除</translation> <translation id="1994173015038366702">網站網址</translation> <translation id="1995916364271252349">控制網站可使用和顯示的資料 (位置、攝錄機和彈出式視窗等等)</translation> +<translation id="1997433994358798851">Chrome 需要權限才能使用藍牙連線至你的裝置</translation> <translation id="1997616988432401742">您的憑證</translation> <translation id="1999115740519098545">起始螢幕</translation> <translation id="2000419248597011803">將部分 Cookie,以及網址列和搜尋框中的搜尋內容傳送至預設搜尋引擎</translation> @@ -1739,6 +1742,7 @@ <translation id="25899519884572181">離開閱讀器模式</translation> <translation id="2593499352046705383">開始操作前,請確認資料已備份。安裝 <ph name="DEVICE_OS" /> 會覆寫硬碟的資料。請前往 g.co/flex/InstallGuide 以瞭解詳情。</translation> <translation id="2594999711683503743">搜尋 Google 或輸入網址</translation> +<translation id="2599048253926156421">使用者名稱已複製到剪貼簿</translation> <translation id="2602501489742255173">向上滑動即可開始</translation> <translation id="2603115962224169880">清理電腦</translation> <translation id="2603355571917519942">Voice Match 已準備就緒</translation> @@ -1962,6 +1966,7 @@ <translation id="2804043232879091219">無法開啟替代瀏覽器</translation> <translation id="2804667941345577550">您將會從此網站 (包括在開啟的分頁) 登出。</translation> <translation id="2804680522274557040">相機已關閉</translation> +<translation id="280518252911523675">如果在沒有輸入舊密碼的情況下繼續操作,系統將刪除本機資料。你必須登入 Google 帳戶才能再次設定這位使用者。</translation> <translation id="2805539617243680210">大功告成!</translation> <translation id="2805646850212350655">Microsoft 加密檔案系統</translation> <translation id="2805756323405976993">應用程式</translation> @@ -3077,6 +3082,7 @@ <translation id="3895090224522145010">Kerberos 使用者名稱</translation> <translation id="389521680295183045">網站可以要求偵測您使用裝置的時間</translation> <translation id="3897298432557662720">{COUNT,plural, =1{1 張圖片}other{# 張圖片}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> 是專為遊戲量身打造。「探索」應用程式會隨即開啟,方便你存取數百款最新遊戲、查看遊戲優惠,並探索裝置內建的遊戲功能。</translation> <translation id="3898233949376129212">裝置語言</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> 需要你批准:<ph name="FIRST_PERMISSION" />同埋<ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">選取鍵盤</translation> @@ -3227,6 +3233,7 @@ <translation id="4033471457476425443">新增資料夾</translation> <translation id="4033711848170683365">這會永久刪除此裝置上的瀏覽資料。<ph name="DEVICE_TYPE" /> 上的其他應用程式可能會使用此設定檔中的 Google 帳戶。您可在 <ph name="BEGIN_LINK" />「<ph name="SETTING_SECTION" />」>「<ph name="ACCOUNTS_SECTION" />」<ph name="END_LINK" /> 移除這些帳戶。</translation> <translation id="4033963223187371752">即使是安全的網站,仍有可能嵌入不安全的圖片或網站頁框等內容</translation> +<translation id="4034741552964543387">繼續但不使用本機資料</translation> <translation id="4034824040120875894">打印機</translation> <translation id="4035758313003622889">工作管理員(&T)</translation> <translation id="4035877632587724847">不允許</translation> @@ -3418,6 +3425,7 @@ <translation id="4242533952199664413">開啟設定</translation> <translation id="4242577469625748426">無法在裝置上安裝政策設定:<ph name="VALIDATION_ERROR" />。</translation> <translation id="4243504193894350135">打印機已暫停</translation> +<translation id="424423026762293842">還原本機資料</translation> <translation id="4244238649050961491">尋找更多觸控筆應用程式</translation> <translation id="4246980464509998944">其他意見:</translation> <translation id="424726838611654458">永遠在 Adobe Reader 中開啟</translation> @@ -4974,6 +4982,7 @@ <translation id="5792728279623964091">請輕按您的開關按鈕</translation> <translation id="5793339252089865437">如果您透過流動網絡下載更新,可能需要支付超額費用。</translation> <translation id="5793420564274426163">配對確認</translation> +<translation id="5793430094159150686">你的密碼已變更。如要還原本機資料,你必須輸入舊密碼。</translation> <translation id="5794034487966529952"><ph name="DESK_TITLE" />電腦開咗 <ph name="NUM_BROWSERS" /> 個瀏覽器視窗</translation> <translation id="5794414402486823030">一律使用系統檢視器開啟</translation> <translation id="5794700615121138172">Linux 共用資料夾</translation> @@ -5898,6 +5907,7 @@ <translation id="6700093763382332031">流動網絡 SIM 卡鎖定</translation> <translation id="6700480081846086223">投放 <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">無法取得設定檔。</translation> +<translation id="6701824422332982935">重新載入頁面以使用這些擴充功能</translation> <translation id="6702639462873609204">編輯(&E)…</translation> <translation id="6703212423117969852">您稍後可在 Chrome 再試一次。</translation> <translation id="6703254819490889819">還原備份</translation> @@ -7125,6 +7135,7 @@ <translation id="7903742244674067440">您的檔案具備可以識別這些憑證授權的憑證</translation> <translation id="7903925330883316394">程式:<ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">將 Linux 連接埠提供給網絡上的其他裝置使用。</translation> +<translation id="7906440585529721295">本機資料將遭到刪除</translation> <translation id="7907837847548254634">快速突顯焦點物件</translation> <translation id="7908378463497120834">很抱歉,您的外部儲存裝置上至少有一個分區無法掛載。</translation> <translation id="7909324225945368569">重新命名設定檔</translation> @@ -7463,6 +7474,7 @@ <translation id="822050276545350872">從此無需再等</translation> <translation id="8221491193165283816">您通常會封鎖通知。如要允許此網站向您傳送通知,請按這裡。</translation> <translation id="822347941086490485">正在尋找 HID 裝置…</translation> +<translation id="8223573963214454788">繼續並刪除資料</translation> <translation id="8225046344534779393">檢查互聯網連線</translation> <translation id="8225265270453771718">分享應用程式視窗</translation> <translation id="8226222018808695353">禁止</translation> @@ -7563,6 +7575,7 @@ <translation id="8314381333424235892">缺少或未安裝擴充程式</translation> <translation id="831440797644402910">無法開啟此資料夾</translation> <translation id="8314835274931377415">要開始設定按鈕控制功能嗎?</translation> +<translation id="8317582043908962055">識別 P&DF 文字</translation> <translation id="8317671367883557781">新增網絡連線</translation> <translation id="8319414634934645341">擴充金鑰使用方法</translation> <translation id="8321837372750396788">此 <ph name="DEVICE_TYPE" /> 將由 <ph name="MANAGER" /> 管理。</translation> @@ -8296,7 +8309,6 @@ <translation id="9050666287014529139">複雜密碼</translation> <translation id="9052404922357793350">繼續封鎖</translation> <translation id="9053563360605707198">雙面列印</translation> -<translation id="9053893665344928494">記住我的選擇</translation> <translation id="9055636786322918818">強制執行 RC4 加密。由於 RC4 加密不安全,因此使用此選項會提高風險。</translation> <translation id="9056810968620647706">找不到相符的項目。</translation> <translation id="9057007989365783744">「<ph name="SUPERVISED_USER_NAME" />」要求存取以下內容:</translation> @@ -8448,6 +8460,7 @@ <translation id="9203398526606335860">分析已啟用(&P)</translation> <translation id="9203904171912129171">選取裝置</translation> <translation id="9206889157914079472">在上鎖畫面使用觸控筆筆記功能</translation> +<translation id="9208192193641542858">本機資料受舊密碼保護。如果你最近變更了密碼,請重新輸入舊密碼。</translation> <translation id="9209563766569767417">正在檢查 Linux 容器設定</translation> <translation id="9209689095351280025">網站不能使用 Cookie 追蹤您的網絡活動</translation> <translation id="9211177926627870898">必須更新</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index e40670c..c6fc8ec 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -380,6 +380,7 @@ <translation id="1374844444528092021">網路「<ph name="NETWORK_NAME" />」要求的憑證尚未安裝或已經無效。請取得新憑證,然後嘗試重新連線。</translation> <translation id="1375321115329958930">已儲存的密碼</translation> <translation id="1375557162880614858">是否要啟動 ChromeOS Flex 內建的螢幕閱讀器 ChromeVox?</translation> +<translation id="1375938286942050085">設定完成!備妥裝置以進行接下來的遊戲</translation> <translation id="137651782282853227">你所儲存的地址會顯示在這裡</translation> <translation id="1376771218494401509">命名視窗...(&W)</translation> <translation id="1377600615067678409">暫時略過</translation> @@ -394,6 +395,7 @@ <translation id="138784436342154190">要還原預設起始網頁嗎?</translation> <translation id="1388253969141979417">可以使用麥克風</translation> <translation id="1388728792929436380">「<ph name="DEVICE_TYPE" />」會在更新完成時重新啟動。</translation> +<translation id="1389601498324964367">以配額管理的儲存空間</translation> <translation id="139013308650923562">可以使用裝置上安裝的字型</translation> <translation id="1390548061267426325">在一般分頁中開啟</translation> <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> 未獲授權,因此無法透過「<ph name="PRINTER_NAME" />」列印。請與管理員聯絡。</translation> @@ -1063,6 +1065,7 @@ <translation id="1992924914582925289">從裝置中移除</translation> <translation id="1994173015038366702">網站網址</translation> <translation id="1995916364271252349">控管網站可以使用和顯示的資訊 (位置資訊、攝影機和彈出式視窗等等)</translation> +<translation id="1997433994358798851">Chrome 需要權限才能使用藍牙連線至你的裝置</translation> <translation id="1997616988432401742">您的憑證</translation> <translation id="1999115740519098545">起始畫面</translation> <translation id="2000419248597011803">將網址列和搜尋框中的部分 Cookie 和搜尋字詞傳送給你的預設搜尋引擎</translation> @@ -1724,6 +1727,7 @@ <translation id="25899519884572181">結束閱讀器模式</translation> <translation id="2593499352046705383">開始操作前,請確認資料已備份。安裝 <ph name="DEVICE_OS" /> 會覆寫硬碟的資料。如要瞭解詳情,請前往 g.co/flex/InstallGuide。</translation> <translation id="2594999711683503743">搜尋 Google 或輸入網址</translation> +<translation id="2599048253926156421">使用者名稱已複製到剪貼簿</translation> <translation id="2602501489742255173">向上滑動即可開始使用</translation> <translation id="2603115962224169880">清理電腦</translation> <translation id="2603355571917519942">現在可以使用 Voice Match 了</translation> @@ -1833,7 +1837,7 @@ <translation id="270921614578699633">平均取樣數:</translation> <translation id="2709516037105925701">自動填入</translation> <translation id="2710101514844343743">使用狀況與診斷資料</translation> -<translation id="271033894570825754">新</translation> +<translation id="271033894570825754">全新</translation> <translation id="2711073837061989559">試用</translation> <translation id="2712173769900027643">要求權限</translation> <translation id="2713106313042589954">關閉攝影機</translation> @@ -1947,6 +1951,7 @@ <translation id="2804043232879091219">無法開啟替代瀏覽器</translation> <translation id="2804667941345577550">系統會將你登出這個網站 (這項操作會套用到所有已開啟的分頁)。</translation> <translation id="2804680522274557040">攝影機已關閉</translation> +<translation id="280518252911523675">如果在沒有輸入舊密碼的情況下繼續操作,系統將刪除本機資料。你必須登入 Google 帳戶才能再次設定這位使用者。</translation> <translation id="2805539617243680210">大功告成!</translation> <translation id="2805646850212350655">Microsoft 加密檔案系統</translation> <translation id="2805756323405976993">應用程式</translation> @@ -3062,6 +3067,7 @@ <translation id="3895090224522145010">Kerberos 使用者名稱</translation> <translation id="389521680295183045">網站可以要求偵測你使用裝置的時間</translation> <translation id="3897298432557662720">{COUNT,plural, =1{1 張圖片}other{# 張圖片}}</translation> +<translation id="3897746662269329507"><ph name="DEVICE_TYPE" /> 是專為遊戲量身打造。「探索」應用程式會隨即開啟,方便你存取數百款最新遊戲、查看遊戲優惠,並探索裝置內建的遊戲功能。</translation> <translation id="3898233949376129212">裝置語言</translation> <translation id="3898327728850887246"><ph name="SITE_NAME" /> 要求<ph name="FIRST_PERMISSION" />以及<ph name="SECOND_PERMISSION" /></translation> <translation id="389901847090970821">選取鍵盤</translation> @@ -3211,6 +3217,7 @@ <translation id="4033471457476425443">新增資料夾</translation> <translation id="4033711848170683365">這項操作會將瀏覽資料從這部裝置中永久刪除。<ph name="DEVICE_TYPE" /> 上的其他應用程式可能會使用這個設定檔中的 Google 帳戶。如要移除這些帳戶,請依序點選<ph name="BEGIN_LINK" />「<ph name="SETTING_SECTION" />」>「<ph name="ACCOUNTS_SECTION" />」<ph name="END_LINK" />。</translation> <translation id="4033963223187371752">即使是安全的網站,仍有可能嵌入不安全的圖片或網站頁框等內容</translation> +<translation id="4034741552964543387">繼續但不使用本機資料</translation> <translation id="4034824040120875894">印表機</translation> <translation id="4035758313003622889">工作管理員(&T)</translation> <translation id="4035877632587724847">不允許</translation> @@ -3402,6 +3409,7 @@ <translation id="4242533952199664413">開啟設定</translation> <translation id="4242577469625748426">無法在裝置上安裝政策設定:<ph name="VALIDATION_ERROR" />。</translation> <translation id="4243504193894350135">印表機已暫停運作</translation> +<translation id="424423026762293842">還原本機資料</translation> <translation id="4244238649050961491">尋找其他觸控筆應用程式</translation> <translation id="4246980464509998944">其他意見:</translation> <translation id="424726838611654458">一律在 Adobe Reader 中開啟</translation> @@ -4763,7 +4771,7 @@ <ph name="BEGIN_PARAGRAPH2" />即使關閉這項功能,你的裝置仍然可以傳送基本服務 (例如系統更新與安全服務) 所需的資訊。<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />裝置擁有者如要管理這項功能,可依序前往 [設定] > [進階] > [自動將診斷資料和使用情況資料傳送給 Google]。<ph name="END_PARAGRAPH3" /> <ph name="BEGIN_PARAGRAPH4" />如果你另外開啟了「網路和應用程式活動」設定,這項資料可能會儲存在你的 Google 帳戶中。如要查看/刪除你的資料,或是變更帳戶設定,請前往 account.google.com。<ph name="END_PARAGRAPH4" /></translation> -<translation id="5585019845078534178">卡片</translation> +<translation id="5585019845078534178">資訊卡</translation> <translation id="5585118885427931890">無法建立書籤資料夾。</translation> <translation id="558563010977877295">開啟某個特定網頁或一組網頁</translation> <translation id="5585898376467608182">你的裝置儲存空間不足。使用「<ph name="APP_NAME" />」至少需要 <ph name="MINIMUM_SPACE" /> 的可用空間。如要增加可用空間,請刪除裝置中的檔案。</translation> @@ -4957,6 +4965,7 @@ <translation id="5792728279623964091">請輕觸電源按鈕</translation> <translation id="5793339252089865437">如果你透過行動網路下載更新,可能會產生超額傳輸費用。</translation> <translation id="5793420564274426163">配對確認</translation> +<translation id="5793430094159150686">你的密碼已變更。如要還原本機資料,你必須輸入舊密碼。</translation> <translation id="5794034487966529952">「<ph name="DESK_TITLE" />」電腦已開啟 <ph name="NUM_BROWSERS" /> 個瀏覽器視窗</translation> <translation id="5794414402486823030">一律使用系統檢視器開啟</translation> <translation id="5794700615121138172">Linux 共用資料夾</translation> @@ -5880,6 +5889,7 @@ <translation id="6700093763382332031">行動數據 SIM 卡鎖定</translation> <translation id="6700480081846086223">投放 <ph name="HOST_NAME" /></translation> <translation id="6701535245008341853">無法取得設定檔。</translation> +<translation id="6701824422332982935">重新載入頁面以使用這些擴充功能</translation> <translation id="6702639462873609204">編輯(&E)...</translation> <translation id="6703212423117969852">你稍後可以在 Chrome 中再試一次。</translation> <translation id="6703254819490889819">還原備份內容</translation> @@ -7107,6 +7117,7 @@ <translation id="7903742244674067440">您儲存了這些憑證授權單位的識別憑證</translation> <translation id="7903925330883316394">公用程式:<ph name="UTILITY_TYPE" /></translation> <translation id="7904526211178107182">將 Linux 連接埠提供給網路上的其他裝置使用。</translation> +<translation id="7906440585529721295">本機資料將遭到刪除</translation> <translation id="7907837847548254634">在聚焦的物件上顯示短暫的醒目效果</translation> <translation id="7908378463497120834">很抱歉,你的外部儲存裝置上至少有一個分割區無法掛載。</translation> <translation id="7909324225945368569">重新命名設定檔</translation> @@ -7445,6 +7456,7 @@ <translation id="822050276545350872">從此不必再等待</translation> <translation id="8221491193165283816">你通常會封鎖通知。如要允許這個網站傳送通知給你,請按這裡。</translation> <translation id="822347941086490485">正在尋找 HID 裝置…</translation> +<translation id="8223573963214454788">繼續並刪除資料</translation> <translation id="8225046344534779393">檢查網際網路連線</translation> <translation id="8225265270453771718">分享應用程式視窗</translation> <translation id="8226222018808695353">已禁止</translation> @@ -7545,6 +7557,7 @@ <translation id="8314381333424235892">缺少或未安裝擴充功能</translation> <translation id="831440797644402910">無法開啟這個資料夾</translation> <translation id="8314835274931377415">要開始設定切換控制功能嗎?</translation> +<translation id="8317582043908962055">識別 P&DF 文字</translation> <translation id="8317671367883557781">新增網路連線</translation> <translation id="8319414634934645341">擴充金鑰使用方法</translation> <translation id="8321837372750396788">這部 <ph name="DEVICE_TYPE" /> 將由 <ph name="MANAGER" /> 管理。</translation> @@ -8278,7 +8291,6 @@ <translation id="9050666287014529139">通關密語</translation> <translation id="9052404922357793350">繼續封鎖</translation> <translation id="9053563360605707198">雙面列印</translation> -<translation id="9053893665344928494">記住我的選擇</translation> <translation id="9055636786322918818">強制執行 RC4 加密。由於 RC4 加密不安全,使用這個加密選項會提高風險。</translation> <translation id="9056810968620647706">找不到相符項目。</translation> <translation id="9057007989365783744"><ph name="SUPERVISED_USER_NAME" />想存取下列內容:</translation> @@ -8430,6 +8442,7 @@ <translation id="9203398526606335860">分析已啟用(&P)</translation> <translation id="9203904171912129171">選取裝置</translation> <translation id="9206889157914079472">在螢幕鎖定狀態下使用觸控筆做筆記</translation> +<translation id="9208192193641542858">本機資料受舊密碼保護。如果你最近變更了密碼,請重新輸入舊密碼。</translation> <translation id="9209563766569767417">正在檢查 Linux 容器設定</translation> <translation id="9209689095351280025">網站無法使用 Cookie 來追蹤你在網路上的活動</translation> <translation id="9211177926627870898">必須更新</translation>
diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb index 0f73ca5a..179f86b1 100644 --- a/chrome/app/resources/generated_resources_zu.xtb +++ b/chrome/app/resources/generated_resources_zu.xtb
@@ -8315,7 +8315,6 @@ <translation id="9050666287014529139">Umushwana wokungena</translation> <translation id="9052404922357793350">Qhubeka uvimbele</translation> <translation id="9053563360605707198">Phrinta kuzinhlangothi zombili</translation> -<translation id="9053893665344928494">Khumbula ukukhetha kwami</translation> <translation id="9055636786322918818">Phoqelela ukubethelwa kwe-RC4. Ukusebenzisa le nketho kukhulisa ubucayi bakho, njengoba ama-chipers e-RC4 awaphephile.</translation> <translation id="9056810968620647706">Akukho ukufana okutholiwe.</translation> <translation id="9057007989365783744">I-<ph name="SUPERVISED_USER_NAME" /> ifuna ukufinyelela okuqukethwe okulandelayo:</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index a0ef348..51fa151 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -5145,14 +5145,14 @@ "//chromeos/ash/components/dbus/update_engine", "//chromeos/ash/components/dbus/userdataauth:userdataauth", "//chromeos/ash/components/dbus/userdataauth:userdataauth_proto", + "//chromeos/ash/components/local_search_service", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/ash/components/memory", "//chromeos/ash/services/assistant/public/cpp", "//chromeos/ash/services/cros_healthd/public/cpp", "//chromeos/ash/services/cros_healthd/public/mojom", "//chromeos/components/feature_usage", - "//chromeos/components/local_search_service", - "//chromeos/components/local_search_service/public/cpp:cpp", - "//chromeos/components/local_search_service/public/mojom", "//chromeos/components/onc", "//chromeos/components/quick_answers", "//chromeos/components/sync_wifi",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 8e7ce23..4beea75 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -8738,6 +8738,14 @@ kOsCrOS | kOsLacros, FEATURE_VALUE_TYPE(apps::features::kLinkCapturingAutoDisplayIntentPicker)}, #endif // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) + {"enable-biometric-authentication-in-settings", + flag_descriptions::kEnableBiometricAuthenticationInSettingsName, + flag_descriptions::kEnableBiometricAuthenticationInSettingsDescription, + kOsMac | kOsWin, + FEATURE_VALUE_TYPE( + password_manager::features::kEnableBiometricAuthenticationInSettings)}, +#endif // NOTE: Adding a new flag requires adding a corresponding entry to enum // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
diff --git a/chrome/browser/accessibility/live_caption_speech_recognition_host.cc b/chrome/browser/accessibility/live_caption_speech_recognition_host.cc index 09109800..9561c95 100644 --- a/chrome/browser/accessibility/live_caption_speech_recognition_host.cc +++ b/chrome/browser/accessibility/live_caption_speech_recognition_host.cc
@@ -25,13 +25,14 @@ content::RenderFrameHost* frame_host, mojo::PendingReceiver<media::mojom::SpeechRecognitionRecognizerClient> receiver) { + CHECK(frame_host); // The object is bound to the lifetime of |host| and the mojo // connection. See DocumentService for details. - new LiveCaptionSpeechRecognitionHost(frame_host, std::move(receiver)); + new LiveCaptionSpeechRecognitionHost(*frame_host, std::move(receiver)); } LiveCaptionSpeechRecognitionHost::LiveCaptionSpeechRecognitionHost( - content::RenderFrameHost* frame_host, + content::RenderFrameHost& frame_host, mojo::PendingReceiver<media::mojom::SpeechRecognitionRecognizerClient> receiver) : DocumentService<media::mojom::SpeechRecognitionRecognizerClient>( @@ -97,7 +98,7 @@ #endif content::WebContents* LiveCaptionSpeechRecognitionHost::GetWebContents() { - return content::WebContents::FromRenderFrameHost(render_frame_host()); + return content::WebContents::FromRenderFrameHost(&render_frame_host()); } LiveCaptionController*
diff --git a/chrome/browser/accessibility/live_caption_speech_recognition_host.h b/chrome/browser/accessibility/live_caption_speech_recognition_host.h index 71926c6..04481c1 100644 --- a/chrome/browser/accessibility/live_caption_speech_recognition_host.h +++ b/chrome/browser/accessibility/live_caption_speech_recognition_host.h
@@ -34,15 +34,10 @@ media::mojom::SpeechRecognitionRecognizerClient>, public content::WebContentsObserver { public: - explicit LiveCaptionSpeechRecognitionHost( - content::RenderFrameHost* frame_host, - mojo::PendingReceiver<media::mojom::SpeechRecognitionRecognizerClient> - pending_receiver); LiveCaptionSpeechRecognitionHost(const LiveCaptionSpeechRecognitionHost&) = delete; LiveCaptionSpeechRecognitionHost& operator=( const LiveCaptionSpeechRecognitionHost&) = delete; - ~LiveCaptionSpeechRecognitionHost() override; // static static void Create( @@ -68,6 +63,12 @@ #endif private: + explicit LiveCaptionSpeechRecognitionHost( + content::RenderFrameHost& frame_host, + mojo::PendingReceiver<media::mojom::SpeechRecognitionRecognizerClient> + pending_receiver); + ~LiveCaptionSpeechRecognitionHost() override; + // Returns the WebContents if it exists. If it does not exist, sets the // RenderFrameHost reference to nullptr and returns nullptr. content::WebContents* GetWebContents();
diff --git a/chrome/browser/accessibility/live_caption_unavailability_notifier.cc b/chrome/browser/accessibility/live_caption_unavailability_notifier.cc index cca178ea..d6da4f7 100644 --- a/chrome/browser/accessibility/live_caption_unavailability_notifier.cc +++ b/chrome/browser/accessibility/live_caption_unavailability_notifier.cc
@@ -34,13 +34,14 @@ content::RenderFrameHost* frame_host, mojo::PendingReceiver<media::mojom::MediaFoundationRendererNotifier> receiver) { + CHECK(frame_host); // The object is bound to the lifetime of |frame_host| and the mojo // connection. See DocumentService for details. - new LiveCaptionUnavailabilityNotifier(frame_host, std::move(receiver)); + new LiveCaptionUnavailabilityNotifier(*frame_host, std::move(receiver)); } LiveCaptionUnavailabilityNotifier::LiveCaptionUnavailabilityNotifier( - content::RenderFrameHost* frame_host, + content::RenderFrameHost& frame_host, mojo::PendingReceiver<media::mojom::MediaFoundationRendererNotifier> receiver) : DocumentService<media::mojom::MediaFoundationRendererNotifier>( @@ -52,7 +53,7 @@ context_ = CaptionBubbleContextBrowser::Create(web_contents); Profile* profile = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()); profile_prefs_ = profile->GetPrefs(); pref_change_registrar_ = std::make_unique<PrefChangeRegistrar>(); @@ -79,13 +80,13 @@ } content::WebContents* LiveCaptionUnavailabilityNotifier::GetWebContents() { - return content::WebContents::FromRenderFrameHost(render_frame_host()); + return content::WebContents::FromRenderFrameHost(&render_frame_host()); } LiveCaptionController* LiveCaptionUnavailabilityNotifier::GetLiveCaptionController() { Profile* profile = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()); if (!profile) return nullptr; @@ -115,7 +116,7 @@ silenced_sites_list.begin(), silenced_sites_list.end(), [&](const base::Value& value) { return value.GetString() == - render_frame_host()->GetLastCommittedOrigin().Serialize(); + render_frame_host().GetLastCommittedOrigin().Serialize(); }); return it != silenced_sites_list.end(); @@ -148,16 +149,16 @@ CaptionBubbleErrorType error_type, bool checked) { PrefService* prefs = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()) + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()) ->GetPrefs(); ListPrefUpdate update( prefs, prefs::kLiveCaptionMediaFoundationRendererErrorSilenced); if (checked) { - update->Append(render_frame_host()->GetLastCommittedOrigin().Serialize()); + update->Append(render_frame_host().GetLastCommittedOrigin().Serialize()); } else { update->EraseListValueIf([&](const base::Value& value) { return value.GetString() == - render_frame_host()->GetLastCommittedOrigin().Serialize(); + render_frame_host().GetLastCommittedOrigin().Serialize(); }); } } @@ -165,9 +166,9 @@ void LiveCaptionUnavailabilityNotifier:: OnMediaFoundationRendererErrorClicked() { Profile* profile = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()); chrome::ShowSiteSettings( - profile, render_frame_host()->GetLastCommittedOrigin().GetURL()); + profile, render_frame_host().GetLastCommittedOrigin().GetURL()); } void LiveCaptionUnavailabilityNotifier::
diff --git a/chrome/browser/accessibility/live_caption_unavailability_notifier.h b/chrome/browser/accessibility/live_caption_unavailability_notifier.h index 66da970e..9e9e59bc 100644 --- a/chrome/browser/accessibility/live_caption_unavailability_notifier.h +++ b/chrome/browser/accessibility/live_caption_unavailability_notifier.h
@@ -33,15 +33,10 @@ media::mojom::MediaFoundationRendererNotifier>, public media::mojom::MediaFoundationRendererObserver { public: - LiveCaptionUnavailabilityNotifier( - content::RenderFrameHost* frame_host, - mojo::PendingReceiver<media::mojom::MediaFoundationRendererNotifier> - pending_receiver); LiveCaptionUnavailabilityNotifier(const LiveCaptionUnavailabilityNotifier&) = delete; LiveCaptionUnavailabilityNotifier& operator=( const LiveCaptionUnavailabilityNotifier&) = delete; - ~LiveCaptionUnavailabilityNotifier() override; // static static void Create( @@ -55,6 +50,12 @@ observer) override; private: + LiveCaptionUnavailabilityNotifier( + content::RenderFrameHost& frame_host, + mojo::PendingReceiver<media::mojom::MediaFoundationRendererNotifier> + pending_receiver); + ~LiveCaptionUnavailabilityNotifier() override; + friend class LiveCaptionUnavailabilityNotifierTest; content::WebContents* GetWebContents();
diff --git a/chrome/browser/accessibility/live_caption_unavailability_notifier_unittest.cc b/chrome/browser/accessibility/live_caption_unavailability_notifier_unittest.cc index e18fa2b..a164aee 100644 --- a/chrome/browser/accessibility/live_caption_unavailability_notifier_unittest.cc +++ b/chrome/browser/accessibility/live_caption_unavailability_notifier_unittest.cc
@@ -51,7 +51,7 @@ // The LiveCaptionUnavailabilityNotifier is self-owned and is reset upon the // destruction of the mojo connection. notifier_ = - new LiveCaptionUnavailabilityNotifier(main_rfh(), std::move(receiver)); + new LiveCaptionUnavailabilityNotifier(*main_rfh(), std::move(receiver)); } private:
diff --git a/chrome/browser/android/webapk/webapk_ukm_recorder.cc b/chrome/browser/android/webapk/webapk_ukm_recorder.cc index e1e9cae0..e512e2f8 100644 --- a/chrome/browser/android/webapk/webapk_ukm_recorder.cc +++ b/chrome/browser/android/webapk/webapk_ukm_recorder.cc
@@ -15,6 +15,7 @@ #include "url/gurl.h" using base::android::JavaParamRef; +using PassKey = base::PassKey<WebApkUkmRecorder>; namespace { @@ -34,8 +35,8 @@ if (!manifest_url.is_valid()) return; - ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl(manifest_url); + ukm::SourceId source_id = ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl( + PassKey(), manifest_url); // All installs through this method are browser-installs (ie, they should all // use the "browser" distributor). @@ -54,8 +55,8 @@ if (!manifest_url.is_valid()) return; - ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl(manifest_url); + ukm::SourceId source_id = ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl( + PassKey(), manifest_url); ukm::builders::WebAPK_SessionEnd(source_id) .SetDistributor(distributor) .SetAppVersion(version_code) @@ -71,8 +72,8 @@ if (!manifest_url.is_valid()) return; - ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl(manifest_url); + ukm::SourceId source_id = ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl( + PassKey(), manifest_url); ukm::builders::WebAPK_Visit(source_id) .SetDistributor(distributor) .SetAppVersion(version_code) @@ -89,8 +90,8 @@ int64_t installed_duration_ms) { // UKM metric |launch_count| parameter is enum. '2' indicates >= 2 launches. launch_count = base::clamp<int64_t>(launch_count, 0, 2); - ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl(manifest_url); + ukm::SourceId source_id = ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl( + PassKey(), manifest_url); ukm::builders::WebAPK_Uninstall(source_id) .SetDistributor(distributor) .SetAppVersion(version_code) @@ -106,8 +107,8 @@ if (!manifest_url.is_valid()) return; - ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl(manifest_url); + ukm::SourceId source_id = ukm::UkmRecorder::GetSourceIdForWebApkManifestUrl( + PassKey(), manifest_url); ukm::builders::PWA_Visit(source_id).SetWebAPKableSiteVisit(1).Record( ukm::UkmRecorder::Get()); }
diff --git a/chrome/browser/apps/app_service/launch_utils.cc b/chrome/browser/apps/app_service/launch_utils.cc index f9cedb3..2b1314ce 100644 --- a/chrome/browser/apps/app_service/launch_utils.cc +++ b/chrome/browser/apps/app_service/launch_utils.cc
@@ -349,6 +349,21 @@ } #if BUILDFLAG(IS_CHROMEOS_ASH) +arc::mojom::WindowInfoPtr MakeArcWindowInfo(WindowInfoPtr window_info) { + if (!window_info) { + return nullptr; + } + + arc::mojom::WindowInfoPtr arc_window_info = arc::mojom::WindowInfo::New(); + arc_window_info->window_id = window_info->window_id; + arc_window_info->state = window_info->state; + arc_window_info->display_id = window_info->display_id; + if (window_info->bounds.has_value()) { + arc_window_info->bounds = std::move(window_info->bounds); + } + return arc_window_info; +} + arc::mojom::WindowInfoPtr MakeArcWindowInfo( apps::mojom::WindowInfoPtr window_info) { if (!window_info) {
diff --git a/chrome/browser/apps/app_service/launch_utils.h b/chrome/browser/apps/app_service/launch_utils.h index 4b9fb58..23130724 100644 --- a/chrome/browser/apps/app_service/launch_utils.h +++ b/chrome/browser/apps/app_service/launch_utils.h
@@ -88,6 +88,9 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) // Helper to convert apps::mojom::WindowInfoPtr to arc::mojom::WindowInfoPtr. +arc::mojom::WindowInfoPtr MakeArcWindowInfo(WindowInfoPtr window_info); + +// TODO(crbug.com/1253250): Remove. Prefer the non mojom MakeArcWindowInfo. arc::mojom::WindowInfoPtr MakeArcWindowInfo( apps::mojom::WindowInfoPtr window_info); #endif // BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.cc b/chrome/browser/apps/app_service/publishers/arc_apps.cc index d32a2dde..932b3439 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.cc +++ b/chrome/browser/apps/app_service/publishers/arc_apps.cc
@@ -49,7 +49,6 @@ #include "components/app_restore/full_restore_save_handler.h" #include "components/app_restore/full_restore_utils.h" #include "components/arc/common/intent_helper/arc_intent_helper_package.h" -#include "components/services/app_service/public/cpp/app_launch_util.h" #include "components/services/app_service/public/cpp/app_types.h" #include "components/services/app_service/public/cpp/icon_types.h" #include "components/services/app_service/public/cpp/intent.h" @@ -222,66 +221,66 @@ } absl::optional<arc::UserInteractionType> GetUserInterationType( - apps::mojom::LaunchSource launch_source) { + apps::LaunchSource launch_source) { auto user_interaction_type = arc::UserInteractionType::NOT_USER_INITIATED; switch (launch_source) { // kUnknown is not set anywhere, this case is not valid. - case apps::mojom::LaunchSource::kUnknown: + case apps::LaunchSource::kUnknown: return absl::nullopt; - case apps::mojom::LaunchSource::kFromChromeInternal: + case apps::LaunchSource::kFromChromeInternal: user_interaction_type = arc::UserInteractionType::NOT_USER_INITIATED; break; - case apps::mojom::LaunchSource::kFromAppListGrid: + case apps::LaunchSource::kFromAppListGrid: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LAUNCHER; break; - case apps::mojom::LaunchSource::kFromAppListGridContextMenu: + case apps::LaunchSource::kFromAppListGridContextMenu: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LAUNCHER_CONTEXT_MENU; break; - case apps::mojom::LaunchSource::kFromAppListQuery: + case apps::LaunchSource::kFromAppListQuery: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LAUNCHER_SEARCH; break; - case apps::mojom::LaunchSource::kFromAppListQueryContextMenu: + case apps::LaunchSource::kFromAppListQueryContextMenu: user_interaction_type = arc::UserInteractionType:: APP_STARTED_FROM_LAUNCHER_SEARCH_CONTEXT_MENU; break; - case apps::mojom::LaunchSource::kFromAppListRecommendation: + case apps::LaunchSource::kFromAppListRecommendation: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LAUNCHER_SUGGESTED_APP; break; - case apps::mojom::LaunchSource::kFromParentalControls: + case apps::LaunchSource::kFromParentalControls: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_SETTINGS; break; - case apps::mojom::LaunchSource::kFromShelf: + case apps::LaunchSource::kFromShelf: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_SHELF; break; - case apps::mojom::LaunchSource::kFromFileManager: + case apps::LaunchSource::kFromFileManager: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_FILE_MANAGER; break; - case apps::mojom::LaunchSource::kFromLink: + case apps::LaunchSource::kFromLink: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_LINK; break; - case apps::mojom::LaunchSource::kFromOmnibox: + case apps::LaunchSource::kFromOmnibox: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_OMNIBOX; break; - case apps::mojom::LaunchSource::kFromSharesheet: + case apps::LaunchSource::kFromSharesheet: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_SHARESHEET; break; - case apps::mojom::LaunchSource::kFromFullRestore: + case apps::LaunchSource::kFromFullRestore: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_FULL_RESTORE; break; - case apps::mojom::LaunchSource::kFromSmartTextContextMenu: + case apps::LaunchSource::kFromSmartTextContextMenu: user_interaction_type = arc::UserInteractionType:: APP_STARTED_FROM_SMART_TEXT_SELECTION_CONTEXT_MENU; break; - case apps::mojom::LaunchSource::kFromOtherApp: + case apps::LaunchSource::kFromOtherApp: user_interaction_type = arc::UserInteractionType::APP_STARTED_FROM_OTHER_APP; break; @@ -475,6 +474,25 @@ // Sets the session id for |window_info|. If the full restore feature is // disabled, or the session id has been set, returns |window_info|. Otherwise, // fetches a new ARC session id, and sets to window_id for |window_info|. +apps::WindowInfoPtr SetSessionId(apps::WindowInfoPtr window_info) { + if (!window_info) { + window_info = std::make_unique<apps::WindowInfo>(); + window_info->display_id = display::kInvalidDisplayId; + } + + if (window_info->window_id != -1) { + return window_info; + } + + window_info->window_id = + ::full_restore::FullRestoreSaveHandler::GetInstance()->GetArcSessionId(); + return window_info; +} + +// Sets the session id for |window_info|. If the full restore feature is +// disabled, or the session id has been set, returns |window_info|. Otherwise, +// fetches a new ARC session id, and sets to window_id for |window_info|. +// TODO(crbug.com/1253250): Remove. Prefer the non mojom SetSessionId. apps::mojom::WindowInfoPtr SetSessionId( apps::mojom::WindowInfoPtr window_info) { if (!window_info) { @@ -703,6 +721,33 @@ } } +void ArcApps::Launch(const std::string& app_id, + int32_t event_flags, + LaunchSource launch_source, + WindowInfoPtr window_info) { + auto user_interaction_type = GetUserInterationType(launch_source); + if (!user_interaction_type.has_value()) { + return; + } + + if (app_id == arc::kPlayStoreAppId && + apps_util::IsHumanLaunch(launch_source)) { + arc::RecordPlayStoreLaunchWithinAWeek(profile_->GetPrefs(), + /*launched=*/true); + } + + auto new_window_info = SetSessionId(std::move(window_info)); + int32_t session_id = new_window_info->window_id; + int64_t display_id = new_window_info->display_id; + + arc::LaunchApp(profile_, app_id, event_flags, user_interaction_type.value(), + MakeArcWindowInfo(std::move(new_window_info))); + + full_restore::SaveAppLaunchInfo( + profile_->GetPath(), std::make_unique<app_restore::AppLaunchInfo>( + app_id, event_flags, session_id, display_id)); +} + void ArcApps::LaunchAppWithParams(AppLaunchParams&& params, LaunchCallback callback) { auto event_flags = apps::GetEventFlags(params.disposition, @@ -768,7 +813,8 @@ int32_t event_flags, apps::mojom::LaunchSource launch_source, apps::mojom::WindowInfoPtr window_info) { - auto user_interaction_type = GetUserInterationType(launch_source); + auto user_interaction_type = GetUserInterationType( + ConvertMojomLaunchSourceToLaunchSource(launch_source)); if (!user_interaction_type.has_value()) { return; } @@ -798,7 +844,8 @@ apps::mojom::LaunchSource launch_source, apps::mojom::WindowInfoPtr window_info, LaunchAppWithIntentCallback callback) { - auto user_interaction_type = GetUserInterationType(launch_source); + auto user_interaction_type = GetUserInterationType( + ConvertMojomLaunchSourceToLaunchSource(launch_source)); if (!user_interaction_type.has_value()) { std::move(callback).Run(/*success=*/false); return;
diff --git a/chrome/browser/apps/app_service/publishers/arc_apps.h b/chrome/browser/apps/app_service/publishers/arc_apps.h index 14eccd9..ef69756 100644 --- a/chrome/browser/apps/app_service/publishers/arc_apps.h +++ b/chrome/browser/apps/app_service/publishers/arc_apps.h
@@ -36,6 +36,7 @@ #include "components/arc/intent_helper/arc_intent_helper_bridge.h" #include "components/arc/intent_helper/arc_intent_helper_observer.h" #include "components/keyed_service/core/keyed_service.h" +#include "components/services/app_service/public/cpp/app_launch_util.h" #include "components/services/app_service/public/cpp/instance_registry.h" #include "components/services/app_service/public/cpp/publisher_base.h" #include "components/services/app_service/public/mojom/app_service.mojom.h" @@ -104,6 +105,10 @@ int32_t size_hint_in_dip, bool allow_placeholder_icon, apps::LoadIconCallback callback) override; + void Launch(const std::string& app_id, + int32_t event_flags, + LaunchSource launch_source, + WindowInfoPtr window_info); void LaunchAppWithParams(AppLaunchParams&& params, LaunchCallback callback) override; void LaunchShortcut(const std::string& app_id,
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index f79d6b93..71b479e7 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -1836,12 +1836,12 @@ "//chromeos/ash/components/dbus/virtual_file_provider", "//chromeos/ash/components/dbus/vm_plugin_dispatcher", "//chromeos/ash/components/hibernate:buildflags", + "//chromeos/ash/components/local_search_service/public/cpp", "//chromeos/ash/components/oobe_quick_start", "//chromeos/ash/services/assistant/public/cpp", "//chromeos/ash/services/cros_healthd/private/cpp", "//chromeos/components/cdm_factory_daemon:cdm_factory_daemon_browser", "//chromeos/components/disks:prefs", - "//chromeos/components/local_search_service/public/cpp", "//chromeos/components/mojo_bootstrap", "//chromeos/components/sensors", "//chromeos/components/sync_wifi",
diff --git a/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc b/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc index b5bcdc0..a0fb4ed 100644 --- a/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc +++ b/chrome/browser/ash/accessibility/select_to_speak_browsertest.cc
@@ -32,6 +32,7 @@ #include "content/public/browser/notification_service.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" +#include "extensions/browser/browsertest_util.h" #include "extensions/browser/extension_host.h" #include "extensions/browser/extension_host_test_helper.h" #include "extensions/browser/notification_types.h" @@ -86,6 +87,24 @@ ASSERT_TRUE( ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL))); + + // Select to speak loads part of itself (eventually all of itself) via a + // dynamic import. This means that the background page signals a load event + // prior to the import being fully finished. Wait for it here. + std::string script = + R"JS( + (async function() { + await import("/select_to_speak/select_to_speak_main.js"); + window.domAutomationController.send('ok'); + })(); + )JS"; + + std::string result = + extensions::browsertest_util::ExecuteScriptInBackgroundPage( + browser()->profile(), extension_misc::kSelectToSpeakExtensionId, + script, + extensions::browsertest_util::ScriptUserActivation::kDontActivate); + ASSERT_EQ(result, "ok"); } void SetUpInProcessBrowserTestFixture() override {
diff --git a/chrome/browser/ash/arc/input_overlay/input_overlay_resources_util.cc b/chrome/browser/ash/arc/input_overlay/input_overlay_resources_util.cc index 5ff859b6..5c0c9d55 100644 --- a/chrome/browser/ash/arc/input_overlay/input_overlay_resources_util.cc +++ b/chrome/browser/ash/arc/input_overlay/input_overlay_resources_util.cc
@@ -29,22 +29,27 @@ {"com.androbaby.original2048", IDR_IO_COM_ANDROBABY_ORIGINAL2048}, {"com.estoty.game2048", IDR_IO_COM_ESTOTY_GAME2048}, {"com.s2apps.game2048", IDR_IO_COM_S2APPS_GAME2048}, - {"com.aldagames.zombero.bullet.hell", IDR_IO_COM_ALDAGAMES_ZOMBERO_BULLET_HELL}, + {"com.aldagames.zombero.bullet.hell", + IDR_IO_COM_ALDAGAMES_ZOMBERO_BULLET_HELL}, {"games.lightheart.mrautofire", IDR_IO_GAMES_LIGHTHEART_MRAUTOFIRE}, {"com.yuriychechulin.throwio", IDR_IO_COM_YURIYCHECHULIN_THROWIO}, {"com.azurgames.stackball", IDR_IO_COM_AZURGAMES_STACKBALL}, {"com.hiroba.helix", IDR_IO_COM_HIROBA_HELIX}, - {"com.match3blaster.DropStackBallFall", IDR_IO_COM_MATCH3BLASTER_DROPSTACKBALLFALL}, + {"com.match3blaster.DropStackBallFall", + IDR_IO_COM_MATCH3BLASTER_DROPSTACKBALLFALL}, {"com.stack.ball.destroy.wood", IDR_IO_COM_STACK_BALL_DESTROY_WOOD}, {"com.twist.stackball", IDR_IO_COM_TWIST_STACKBALL}, {"com.NikSanTech.FireDots3D", IDR_IO_COM_NIKSANTECH_FIREDOTS3D}, {"com.nama.stackball", IDR_IO_COM_NAMA_STACKBALL}, {"com.stack.ball.crush", IDR_IO_COM_STACK_BALL_CRUSH}, - {"com.elegant.stack.ball.blast.crush", IDR_IO_COM_ELEGANT_STACK_BALL_BLAST_CRUSH}, + {"com.elegant.stack.ball.blast.crush", + IDR_IO_COM_ELEGANT_STACK_BALL_BLAST_CRUSH}, {"com.Stellar.StackFall", IDR_IO_COM_STELLAR_STACKFALL}, - {"com.tohsoft.arashi.ninja.shadow", IDR_IO_COM_TOHSOFT_ARASHI_NINJA_SHADOW}, + {"com.tohsoft.arashi.ninja.shadow", + IDR_IO_COM_TOHSOFT_ARASHI_NINJA_SHADOW}, {"com.gamehivecorp.taptitans2", IDR_IO_COM_GAMEHIVECORP_TAPTITANS2}, {"com.oddrok.powerhover", IDR_IO_COM_ODDROK_POWERHOVER}, + {"com.robtopx.geometryjumplite", IDR_IO_COM_ROBTOPX_GEOMETRYJUMPLITE}, }; auto it = resource_id_map.find(package_name);
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc index b8fc3fc..7382369 100644 --- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc +++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -202,12 +202,12 @@ #include "chromeos/ash/components/dbus/session_manager/fake_session_manager_client.h" #include "chromeos/ash/components/dbus/session_manager/session_manager_client.h" #include "chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "chromeos/ash/components/network/fast_transition_observer.h" #include "chromeos/ash/components/network/network_cert_loader.h" #include "chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h" #include "chromeos/ash/services/cros_healthd/private/cpp/data_collector.h" #include "chromeos/ash/services/cros_healthd/public/cpp/service_connection.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "chromeos/components/sensors/ash/sensor_hal_dispatcher.h" #include "chromeos/dbus/constants/cryptohome_key_delegate_constants.h" #include "chromeos/dbus/dbus_thread_manager.h"
diff --git a/chrome/browser/ash/crosapi/chrome_app_kiosk_service_ash.h b/chrome/browser/ash/crosapi/chrome_app_kiosk_service_ash.h index ed29f5c..82b1a3e 100644 --- a/chrome/browser/ash/crosapi/chrome_app_kiosk_service_ash.h +++ b/chrome/browser/ash/crosapi/chrome_app_kiosk_service_ash.h
@@ -12,8 +12,9 @@ namespace crosapi { -// The ash-chrome implementation of the DownloadController crosapi interface. -// This is where ash-chrome receives information on download events from lacros. +// The ash-chrome implementation of the ChromeAppKioskService crosapi interface. +// This is used to forward the APIs provided by ChromeKioskLaunchController to +// Lacros. // This class must only be used from the main thread. class ChromeAppKioskServiceAsh : public mojom::ChromeAppKioskService { public: @@ -22,12 +23,12 @@ ChromeAppKioskServiceAsh& operator=(const ChromeAppKioskServiceAsh&) = delete; ~ChromeAppKioskServiceAsh() override; - // Bind this receiver for `mojom::DownloadController`. This is used by + // Bind this receiver for `mojom::ChromeAppKioskService`. This is used by // crosapi. void BindReceiver( mojo::PendingReceiver<mojom::ChromeAppKioskService> receiver); - // mojom::DownloadController: + // mojom::ChromeAppKioskService: void BindLaunchController( mojo::PendingRemote<mojom::ChromeKioskLaunchController> launch_controller) override;
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc index 8e562ac..36031ec8 100644 --- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc +++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_impl.cc
@@ -196,9 +196,9 @@ const bool is_last_request, data_decoder::DataDecoder::ValueOrError result) { // Extract results for the request. - if (result.value) { - SendResponse( - UnpackJsonResponse(*result.value, start_index, is_last_request)); + if (result.value && result.value->is_list()) { + SendResponse(UnpackJsonResponse(result.value->GetList(), start_index, + is_last_request)); // Only start the next request after finishing the current one. This method // will also reset the internal state if there is no more request. ProcessNextServerRequest();
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_test_utils.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_test_utils.cc index d63f51fc..d29f4e1 100644 --- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_test_utils.cc +++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_test_utils.cc
@@ -97,15 +97,15 @@ } bool AreRequestsEqual(const std::string& json_a, const std::string& json_b) { - const std::unique_ptr<base::Value> dict_a = - base::JSONReader::ReadDeprecated(json_a); - const std::unique_ptr<base::Value> dict_b = - base::JSONReader::ReadDeprecated(json_b); + absl::optional<base::Value> parsed_a = base::JSONReader::Read(json_a); + absl::optional<base::Value> parsed_b = base::JSONReader::Read(json_b); + base::Value::Dict& dict_a = parsed_a->GetDict(); + base::Value::Dict& dict_b = parsed_b->GetDict(); const absl::optional<double> rate_a = - dict_a->FindDoublePath(kSpeechFactorPath); + dict_a.FindDoubleByDottedPath(kSpeechFactorPath); const absl::optional<double> rate_b = - dict_b->FindDoublePath(kSpeechFactorPath); + dict_b.FindDoubleByDottedPath(kSpeechFactorPath); // Speech rates should have only one decimal digit. if (!HasOneDecimalDigit(rate_a) || !HasOneDecimalDigit(rate_b)) return false; @@ -114,9 +114,9 @@ return false; // Compare the dicts without the speech rates. - dict_a->RemovePath(kSpeechFactorPath); - dict_b->RemovePath(kSpeechFactorPath); - return *dict_a == *dict_b; + dict_a.RemoveByDottedPath(kSpeechFactorPath); + dict_b.RemoveByDottedPath(kSpeechFactorPath); + return dict_a == dict_b; } } // namespace enhanced_network_tts
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.cc index f5d4cdf..1f25a69 100644 --- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.cc +++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.cc
@@ -187,11 +187,9 @@ return mojom::TtsResponse::NewErrorCode(error_code); } -mojom::TtsResponsePtr UnpackJsonResponse(const base::Value& json_data, +mojom::TtsResponsePtr UnpackJsonResponse(const base::Value::List& list_data, const int start_index, const bool is_last_request) { - base::Value::ConstListView list_data = json_data.GetListDeprecated(); - // Depending on the size of input text (n), the list size should be 1 + 2n. // The first item in the list is "metadata", then each input text has one // dictionary for "text" and another dictionary for "audio". Since we only @@ -216,29 +214,27 @@ // ... // ] std::vector<mojom::TimingInfoPtr> timing_infos; - const base::Value& text_dict = list_data[1]; - const base::Value* timing_info_ptr = - text_dict.FindListPath("text.timingInfo"); - if (timing_info_ptr == nullptr) { + const base::Value::Dict& text_dict = list_data[1].GetDict(); + const base::Value::List* timing_info_list = + text_dict.FindListByDottedPath("text.timingInfo"); + if (timing_info_list == nullptr) { DVLOG(1) << "HTTP response for Enhance Network TTS has unexpected timing " "info data."; return GetResultOnError(mojom::TtsRequestError::kReceivedUnexpectedData); } - base::Value::ConstListView timing_info_list = - timing_info_ptr->GetListDeprecated(); - for (size_t i = 0; i < timing_info_list.size(); ++i) { - const base::Value& timing_info = timing_info_list[i]; - const std::string* timing_info_text_ptr = timing_info.FindStringKey("text"); + for (size_t i = 0; i < timing_info_list->size(); ++i) { + const base::Value::Dict& timing_info = (*timing_info_list)[i].GetDict(); + const std::string* timing_info_text_ptr = timing_info.FindString("text"); const std::string* timing_info_timeoffset_ptr = - timing_info.FindStringPath("location.timeLocation.timeOffset"); + timing_info.FindStringByDottedPath("location.timeLocation.timeOffset"); const std::string* timing_info_duration_ptr = - timing_info.FindStringPath("location.timeLocation.duration"); + timing_info.FindStringByDottedPath("location.timeLocation.duration"); // If the first item in the timing_info_list does not have a text offset, // we default that to 0. If the first item starts with whitespaces, the // server will send back the text offset for the item. absl::optional<int> timing_info_text_offset = - timing_info.FindIntPath("location.textLocation.offset"); + timing_info.FindIntByDottedPath("location.textLocation.offset"); if (timing_info_text_offset == absl::nullopt && i == 0) { timing_info_text_offset = 0; } @@ -255,8 +251,9 @@ } // Decode audio data. - const base::Value& audio_dict = list_data[2]; - const std::string* audio_bytes_ptr = audio_dict.FindStringPath("audio.bytes"); + const base::Value::Dict& audio_dict = list_data[2].GetDict(); + const std::string* audio_bytes_ptr = + audio_dict.FindStringByDottedPath("audio.bytes"); if (audio_bytes_ptr == nullptr) { DVLOG(1) << "HTTP response for Enhance Network TTS has unexpected audio " "bytes data.";
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.h b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.h index c9bc844..8d4dd87 100644 --- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.h +++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils.h
@@ -39,7 +39,7 @@ // Unpack the JSON audio data from the server response. The data corresponds to // the text piece that has the |start_index| in the original input utterance. // |last_request| indicates if this is the last JSON data we expect. -mojom::TtsResponsePtr UnpackJsonResponse(const base::Value& json_data, +mojom::TtsResponsePtr UnpackJsonResponse(const base::Value::List& list_data, const int start_index, const bool last_request);
diff --git a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils_unittest.cc b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils_unittest.cc index 5d0fca9c..e87f05d 100644 --- a/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils_unittest.cc +++ b/chrome/browser/ash/enhanced_network_tts/enhanced_network_tts_utils_unittest.cc
@@ -146,18 +146,17 @@ TEST_F(EnhancedNetworkTtsUtilsTest, UnpackJsonResponseSucceed) { const std::vector<uint8_t> response_data = {1, 2, 5}; const std::string server_response = CreateServerResponse(response_data); - const std::unique_ptr<base::Value> json = - base::JSONReader::ReadDeprecated(server_response); + absl::optional<base::Value> json = base::JSONReader::Read(server_response); - mojom::TtsResponsePtr result = UnpackJsonResponse(*json, 0 /* start_index */, - true /* is_last_request */); + mojom::TtsResponsePtr result = UnpackJsonResponse( + json->GetList(), 0 /* start_index */, true /* is_last_request */); EXPECT_TRUE(result->is_data()); EXPECT_EQ(result->get_data()->audio, std::vector<uint8_t>({1, 2, 5})); EXPECT_TRUE(result->get_data()->last_data); EXPECT_EQ(result->get_data()->time_info[0]->text_offset, 0u); - result = UnpackJsonResponse(*json, 4 /* start_index */, + result = UnpackJsonResponse(json->GetList(), 4 /* start_index */, true /* is_last_request */); EXPECT_TRUE(result->is_data()); @@ -165,7 +164,7 @@ EXPECT_TRUE(result->get_data()->last_data); EXPECT_EQ(result->get_data()->time_info[0]->text_offset, 4u); - result = UnpackJsonResponse(*json, 4 /* start_index */, + result = UnpackJsonResponse(json->GetList(), 4 /* start_index */, false /* is_last_request */); EXPECT_TRUE(result->is_data()); @@ -177,11 +176,10 @@ TEST_F(EnhancedNetworkTtsUtilsTest, UnpackJsonResponseFailsWithWrongResponseFormat) { const std::string encoded_response = "[{}, {}, {}]"; - const std::unique_ptr<base::Value> json = - base::JSONReader::ReadDeprecated(encoded_response); + absl::optional<base::Value> json = base::JSONReader::Read(encoded_response); - mojom::TtsResponsePtr result = UnpackJsonResponse(*json, 0 /* start_index */, - true /* is_last_request */); + mojom::TtsResponsePtr result = UnpackJsonResponse( + json->GetList(), 0 /* start_index */, true /* is_last_request */); EXPECT_TRUE(result->is_error_code()); EXPECT_EQ(result->get_error_code(), @@ -195,11 +193,10 @@ const std::string encoded_data(response_data.begin(), response_data.end()); const std::string encoded_response = base::StringPrintf(kTemplateResponse, encoded_data.c_str()); - const std::unique_ptr<base::Value> json = - base::JSONReader::ReadDeprecated(encoded_response); + absl::optional<base::Value> json = base::JSONReader::Read(encoded_response); - mojom::TtsResponsePtr result = UnpackJsonResponse(*json, 0 /* start_index */, - true /* is_last_request */); + mojom::TtsResponsePtr result = UnpackJsonResponse( + json->GetList(), 0 /* start_index */, true /* is_last_request */); EXPECT_TRUE(result->is_error_code()); EXPECT_EQ(result->get_error_code(),
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc index 3b2b218e..d956af8 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc +++ b/chrome/browser/ash/file_manager/file_manager_browsertest_base.cc
@@ -258,10 +258,10 @@ std::vector<std::unique_ptr<struct TestEntryInfo>> entries; // Converts |value| to an AddEntriesMessage: true on success. - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, AddEntriesMessage* message) { base::JSONValueConverter<AddEntriesMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } // Registers AddEntriesMessage member info to the |converter|. @@ -675,10 +675,10 @@ } struct ExpectFileTasksMessage { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, ExpectFileTasksMessage* message) { base::JSONValueConverter<ExpectFileTasksMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -712,10 +712,10 @@ }; struct GetHistogramCountMessage { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, GetHistogramCountMessage* message) { base::JSONValueConverter<GetHistogramCountMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -730,10 +730,10 @@ }; struct GetTotalHistogramSum { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, GetTotalHistogramSum* message) { base::JSONValueConverter<GetTotalHistogramSum> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -746,10 +746,10 @@ }; struct ExpectHistogramTotalCountMessage { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, ExpectHistogramTotalCountMessage* message) { base::JSONValueConverter<ExpectHistogramTotalCountMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -765,10 +765,10 @@ }; struct GetUserActionCountMessage { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, GetUserActionCountMessage* message) { base::JSONValueConverter<GetUserActionCountMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -781,10 +781,10 @@ }; struct GetLocalPathMessage { - static bool ConvertJSONValue(const base::DictionaryValue& value, + static bool ConvertJSONValue(const base::Value::Dict& value, GetLocalPathMessage* message) { base::JSONValueConverter<GetLocalPathMessage> converter; - return converter.Convert(value, message); + return converter.Convert(base::Value(value.Clone()), message); } static void RegisterJSONConverter( @@ -2228,11 +2228,15 @@ // If the message in JSON format has no command, ignore it // but note a reply is required: use std::string(). - const auto json = base::JSONReader::ReadDeprecated(message.message); - const base::DictionaryValue* dictionary = nullptr; + absl::optional<base::Value> json = base::JSONReader::Read(message.message); + if (!json) { + message.function->Reply(std::string()); + continue; + } + + base::Value::Dict* dictionary = json->GetIfDict(); const std::string* command = nullptr; - if (!json || !json->GetAsDictionary(&dictionary) || - !(command = dictionary->FindStringKey("name"))) { + if (!dictionary || !(command = dictionary->FindString("name"))) { message.function->Reply(std::string()); continue; } @@ -2254,7 +2258,7 @@ // NO_THREAD_SAFETY_ANALYSIS: Locking depends on runtime commands, the static // checker cannot assess it. void FileManagerBrowserTestBase::OnCommand(const std::string& name, - const base::DictionaryValue& value, + const base::Value::Dict& value, std::string* output) NO_THREAD_SAFETY_ANALYSIS { const Options options = GetOptions(); @@ -2286,7 +2290,7 @@ } if (name == "showItemInFolder") { - const std::string* relative_path = value.FindStringKey("localPath"); + const std::string* relative_path = value.FindString("localPath"); ASSERT_TRUE(relative_path); base::FilePath full_path = file_manager::util::GetMyFilesFolderForProfile(profile()); @@ -2311,16 +2315,16 @@ } if (name == "launchFileManagerSwa") { - const std::string* launch_dir = value.FindStringKey("launchDir"); - base::DictionaryValue arg_value; + const std::string* launch_dir = value.FindString("launchDir"); + base::Value::Dict arg_value; if (launch_dir) - arg_value.SetStringKey("currentDirectoryURL", *launch_dir); + arg_value.Set("currentDirectoryURL", *launch_dir); - const std::string* type = value.FindStringKey("type"); + const std::string* type = value.FindString("type"); if (type) - arg_value.SetStringKey("type", *type); + arg_value.Set("type", *type); std::string search; - if (arg_value.FindKey("currentDirectoryURL") || arg_value.FindKey("type")) { + if (launch_dir || type) { std::string json_args; base::JSONWriter::Write(arg_value, &json_args); search = base::StrCat( @@ -2377,7 +2381,7 @@ } if (name == "expectWindowURL") { - const std::string* expected_url = value.FindStringKey("expectedUrl"); + const std::string* expected_url = value.FindString("expectedUrl"); EXPECT_TRUE(expected_url); for (auto* web_contents : GetAllWebContents()) { const std::string& url = web_contents->GetVisibleURL().spec(); @@ -2397,9 +2401,9 @@ // this, which would potentially create a security vulnerability, we // short-circuit sending messages by directly invoking dedicated function in // Files SWA. - const std::string* data = value.FindStringKey("data"); + const std::string* data = value.FindString("data"); ASSERT_TRUE(data); - const std::string* app_id = value.FindStringKey("appId"); + const std::string* app_id = value.FindString("appId"); content::WebContents* web_contents; if (app_id && !app_id->empty()) { @@ -2425,11 +2429,11 @@ } if (name == "getWindowsSWA") { - absl::optional<bool> is_swa = value.FindBoolKey("isSWA"); + absl::optional<bool> is_swa = value.FindBool("isSWA"); ASSERT_TRUE(is_swa.has_value()); ASSERT_TRUE(is_swa.value()); - base::DictionaryValue dictionary; + base::Value::Dict dictionary; int counter = 0; for (auto* web_contents : GetAllWebContents()) { @@ -2441,7 +2445,7 @@ for (const auto& pair : swa_web_contents_) { if (pair.second == web_contents) { app_id = pair.first; - dictionary.SetStringPath(app_id, app_id); + dictionary.SetByDottedPath(app_id, app_id); found = true; break; } @@ -2450,7 +2454,7 @@ if (!found) { app_id = base::StrCat({"unknow-id-", base::NumberToString(counter++)}); - dictionary.SetStringPath(app_id, app_id); + dictionary.SetByDottedPath(app_id, app_id); } } } @@ -2464,12 +2468,12 @@ bool found = false; web_contents->GetPrimaryMainFrame()->ForEachRenderFrameHost( base::BindRepeating( - [](const base::DictionaryValue& value, bool& found, + [](const base::Value::Dict& value, bool& found, std::string* output, content::RenderFrameHost* frame) { const url::Origin origin = frame->GetLastCommittedOrigin(); if (origin.GetURL() == ash::file_manager::kChromeUIFileManagerUntrustedURL) { - const std::string* script = value.FindStringKey("data"); + const std::string* script = value.FindString("data"); EXPECT_TRUE(script); CHECK(ExecuteScriptAndExtractString(frame, *script, output)); found = true; @@ -2512,8 +2516,8 @@ const auto downloads_root = util::GetDownloadsMountPointName(profile()) + "/Downloads"; - base::DictionaryValue dictionary; - dictionary.SetStringKey("downloads", "/" + downloads_root); + base::Value::Dict dictionary; + dictionary.Set("downloads", "/" + downloads_root); if (!profile()->IsGuestSession()) { auto* drive_integration_service = @@ -2521,12 +2525,12 @@ if (drive_integration_service->IsMounted()) { const auto drive_mount_name = drive_integration_service->GetMountPointPath().BaseName(); - dictionary.SetStringKey( - "drive", base::StrCat({"/", drive_mount_name.value(), "/root"})); + dictionary.Set("drive", + base::StrCat({"/", drive_mount_name.value(), "/root"})); } if (android_files_volume_) { - dictionary.SetStringKey("android_files", - "/" + util::GetAndroidFilesMountPointName()); + dictionary.Set("android_files", + "/" + util::GetAndroidFilesMountPointName()); } } base::JSONWriter::Write(dictionary, output); @@ -2547,9 +2551,9 @@ if (*origin.rbegin() == '/') // Strip origin trailing '/'. origin.resize(origin.length() - 1); - base::DictionaryValue dictionary; - dictionary.SetStringKey("url", url.spec()); - dictionary.SetStringKey("origin", origin); + base::Value::Dict dictionary; + dictionary.Set("url", url.spec()); + dictionary.Set("origin", origin); base::JSONWriter::Write(dictionary, output); return; @@ -2649,7 +2653,7 @@ if (name == "mountFakeUsb" || name == "mountFakeUsbEmpty" || name == "mountFakeUsbDcim") { std::string file_system = "ext4"; - const std::string* file_system_param = value.FindStringKey("filesystem"); + const std::string* file_system_param = value.FindString("filesystem"); if (file_system_param) { file_system = *file_system_param; } @@ -2813,7 +2817,7 @@ } if (name == "setDriveEnabled") { - absl::optional<bool> enabled = value.FindBoolKey("enabled"); + absl::optional<bool> enabled = value.FindBool("enabled"); ASSERT_TRUE(enabled.has_value()); profile()->GetPrefs()->SetBoolean(drive::prefs::kDisableDrive, !enabled.value()); @@ -2821,7 +2825,7 @@ } if (name == "setPdfPreviewEnabled") { - absl::optional<bool> enabled = value.FindBoolKey("enabled"); + absl::optional<bool> enabled = value.FindBool("enabled"); ASSERT_TRUE(enabled.has_value()); profile()->GetPrefs()->SetBoolean(prefs::kPluginsAlwaysOpenPdfExternally, !enabled.value()); @@ -2829,7 +2833,7 @@ } if (name == "setCrostiniEnabled") { - absl::optional<bool> enabled = value.FindBoolKey("enabled"); + absl::optional<bool> enabled = value.FindBool("enabled"); ASSERT_TRUE(enabled.has_value()); profile()->GetPrefs()->SetBoolean(crostini::prefs::kCrostiniEnabled, enabled.value()); @@ -2837,14 +2841,14 @@ } if (name == "setCrostiniRootAccessAllowed") { - absl::optional<bool> enabled = value.FindBoolKey("enabled"); + absl::optional<bool> enabled = value.FindBool("enabled"); ASSERT_TRUE(enabled.has_value()); crostini_features_.set_root_access_allowed(enabled.value()); return; } if (name == "setCrostiniExportImportAllowed") { - absl::optional<bool> enabled = value.FindBoolKey("enabled"); + absl::optional<bool> enabled = value.FindBool("enabled"); ASSERT_TRUE(enabled.has_value()); crostini_features_.set_export_import_ui_allowed(enabled.value()); return; @@ -2859,9 +2863,9 @@ } if (name == "clickNotificationButton") { - const std::string* extension_id = value.FindStringKey("extensionId"); + const std::string* extension_id = value.FindString("extensionId"); ASSERT_TRUE(extension_id); - const std::string* notification_id = value.FindStringKey("notificationId"); + const std::string* notification_id = value.FindString("notificationId"); ASSERT_TRUE(notification_id); const std::string delegate_id = *extension_id + "-" + *notification_id; @@ -2869,7 +2873,7 @@ display_service_->GetNotification(delegate_id); EXPECT_TRUE(notification); - absl::optional<int> index = value.FindIntKey("index"); + absl::optional<int> index = value.FindInt("index"); ASSERT_TRUE(index); display_service_->SimulateClick(NotificationHandler::Type::EXTENSION, delegate_id, *index, absl::nullopt); @@ -2877,7 +2881,7 @@ } if (name == "launchProviderExtension") { - const std::string* manifest = value.FindStringKey("manifest"); + const std::string* manifest = value.FindString("manifest"); ASSERT_TRUE(manifest); LaunchExtension(base::FilePath(FILE_PATH_LITERAL( "ui/file_manager/integration_tests/testing_provider")), @@ -2894,8 +2898,7 @@ if (name == "dispatchTabKey") { // Read optional modifier parameter |shift|. - absl::optional<bool> shift_opt = value.FindBoolKey("shift"); - bool shift = shift_opt.value_or(false); + bool shift = value.FindBool("shift").value_or(false); int flag = shift ? ui::EF_SHIFT_DOWN : 0; ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_TAB, flag); @@ -2905,11 +2908,11 @@ } if (name == "simulateClick") { - absl::optional<int> click_x = value.FindIntKey("clickX"); - absl::optional<int> click_y = value.FindIntKey("clickY"); + absl::optional<int> click_x = value.FindInt("clickX"); + absl::optional<int> click_y = value.FindInt("clickY"); ASSERT_TRUE(click_x); ASSERT_TRUE(click_y); - const std::string* app_id = value.FindStringKey("appId"); + const std::string* app_id = value.FindString("appId"); ASSERT_TRUE(app_id); const Options& options = GetOptions(); @@ -2928,7 +2931,7 @@ } if (name == "getAppWindowId") { - const std::string* window_url = value.FindStringKey("windowUrl"); + const std::string* window_url = value.FindString("windowUrl"); ASSERT_TRUE(window_url); const auto& app_windows = @@ -2948,7 +2951,7 @@ } if (name == "hasSwaStarted") { - const std::string* swa_app_id = value.FindStringKey("swaAppId"); + const std::string* swa_app_id = value.FindString("swaAppId"); ASSERT_TRUE(swa_app_id); *output = "false"; @@ -2974,7 +2977,7 @@ } if (name == "countAppWindows") { - const std::string* app_id = value.FindStringKey("appId"); + const std::string* app_id = value.FindString("appId"); ASSERT_TRUE(app_id); const auto& app_windows = @@ -2990,11 +2993,11 @@ } if (name == "runJsInAppWindow") { - const std::string* window_id_str = value.FindStringKey("windowId"); + const std::string* window_id_str = value.FindString("windowId"); ASSERT_TRUE(window_id_str); int window_id = 0; ASSERT_TRUE(base::StringToInt(*window_id_str, &window_id)); - const std::string* script = value.FindStringKey("script"); + const std::string* script = value.FindString("script"); ASSERT_TRUE(script); const auto& app_windows = @@ -3078,7 +3081,7 @@ } if (name == "switchLanguage") { - const std::string* language = value.FindStringKey("language"); + const std::string* language = value.FindString("language"); ASSERT_TRUE(language); base::RunLoop run_loop; ash::locale_util::SwitchLanguage( @@ -3208,12 +3211,12 @@ bool FileManagerBrowserTestBase::HandleGuestOsCommands( const std::string& name, - const base::DictionaryValue& value, + const base::Value::Dict& value, std::string* output) { if (name == "registerMountableGuest") { - auto* displayName = value.GetDict().FindString("displayName"); - auto* canMount = value.GetDict().Find("canMount"); - auto* vmType = value.GetDict().FindString("vmType"); + const std::string* displayName = value.FindString("displayName"); + const base::Value* canMount = value.Find("canMount"); + const std::string* vmType = value.FindString("vmType"); CHECK(displayName != nullptr); // TODO(davidmunro): Merge with in-constructor derivation. // auto id = guest_os::GuestId(guest_os::VmType::UNKNOWN, *displayName, @@ -3238,7 +3241,7 @@ } if (name == "unregisterMountableGuest") { int id; - auto* str = value.GetDict().FindString("guestId"); + const std::string* str = value.FindString("guestId"); CHECK(str != nullptr); CHECK(base::StringToInt(*str, &id)); auto* registry = guest_os::GuestOsService::GetForProfile(profile()) @@ -3248,7 +3251,7 @@ } if (name == "unmountGuest") { int id; - auto* str = value.GetDict().FindString("guestId"); + const std::string* str = value.FindString("guestId"); CHECK(str != nullptr); CHECK(base::StringToInt(*str, &id)); auto* registry = guest_os::GuestOsService::GetForProfile(profile())
diff --git a/chrome/browser/ash/file_manager/file_manager_browsertest_base.h b/chrome/browser/ash/file_manager/file_manager_browsertest_base.h index d456b6a..9ca9876 100644 --- a/chrome/browser/ash/file_manager/file_manager_browsertest_base.h +++ b/chrome/browser/ash/file_manager/file_manager_browsertest_base.h
@@ -196,13 +196,13 @@ // Process test extension command |name|, with arguments |value|. Write the // results to |output|. void OnCommand(const std::string& name, - const base::DictionaryValue& value, + const base::Value::Dict& value, std::string* output); // Checks if the command is a GuestOs one. If so, handles it and returns // true, otherwise it returns false. bool HandleGuestOsCommands(const std::string& name, - const base::DictionaryValue& value, + const base::Value::Dict& value, std::string* output); // Called during setup if needed, to create a drive integration service for
diff --git a/chrome/browser/ash/file_manager/url_util_unittest.cc b/chrome/browser/ash/file_manager/url_util_unittest.cc index 85c91b5c..0ee0e31 100644 --- a/chrome/browser/ash/file_manager/url_util_unittest.cc +++ b/chrome/browser/ash/file_manager/url_util_unittest.cc
@@ -26,7 +26,7 @@ // Parse a JSON query string into a base::Value. base::Value ParseJsonQueryString(const std::string& query) { const std::string json = base::UnescapeBinaryURLComponent(query); - std::unique_ptr<base::Value> value = base::JSONReader::ReadDeprecated(json); + absl::optional<base::Value> value = base::JSONReader::Read(json); return value ? std::move(*value) : base::Value(); }
diff --git a/chrome/browser/ash/login/demo_mode/demo_extensions_external_loader.cc b/chrome/browser/ash/login/demo_mode/demo_extensions_external_loader.cc index 06313bc0..b6c85bc 100644 --- a/chrome/browser/ash/login/demo_mode/demo_extensions_external_loader.cc +++ b/chrome/browser/ash/login/demo_mode/demo_extensions_external_loader.cc
@@ -46,8 +46,7 @@ return absl::nullopt; } - std::unique_ptr<base::Value> prefs_value = - base::JSONReader::ReadDeprecated(prefs_str); + absl::optional<base::Value> prefs_value = base::JSONReader::Read(prefs_str); if (!prefs_value) { LOG(ERROR) << "Unable to parse demo extensions prefs."; return absl::nullopt; @@ -58,7 +57,7 @@ return absl::nullopt; } - return base::Value::FromUniquePtrValue(std::move(prefs_value)); + return prefs_value; } } // namespace
diff --git a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc index 0c65a19..22b213e 100644 --- a/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc +++ b/chrome/browser/ash/login/enrollment/auto_enrollment_controller.cc
@@ -566,12 +566,7 @@ ReportTimeoutUMA(AutoEnrollmentControllerTimeoutReport::kTimeoutFRE); } - // Reset state. - if (client_) { - // Cancelling the `client_` allows it to determine whether - // its protocol finished before login was complete. - client_.release()->CancelAndDeleteSoon(); - } + client_.reset(); // Make sure to nuke pending `client_` start sequences. client_start_weak_factory_.InvalidateWeakPtrs();
diff --git a/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc b/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc index 23ebc64..9df9935c 100644 --- a/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc +++ b/chrome/browser/ash/login/enterprise_enrollment_browsertest.cc
@@ -243,16 +243,14 @@ test::OobeJS().ExpectVisiblePath(kAdUnlockConfigurationStep); } - void CheckAttributeValue(const base::Value* config_value, + void CheckAttributeValue(const std::string* config_value, const std::string& default_value, const std::string& js_element) { - std::string expected_value(default_value); - if (config_value) - expected_value = config_value->GetString(); + std::string expected_value(config_value ? *config_value : default_value); test::OobeJS().ExpectTrue(js_element + " === '" + expected_value + "'"); } - void CheckAttributeValueAndDisabled(const base::Value* config_value, + void CheckAttributeValueAndDisabled(const std::string* config_value, const std::string& default_value, const std::string& js_element) { CheckAttributeValue(config_value, default_value, js_element + ".value"); @@ -262,13 +260,12 @@ // Checks pattern attribute on the machine name input field. If `config_value` // is nullptr the attribute should be undefined. - void CheckPatternAttribute(const base::Value* config_value) { + void CheckPatternAttribute(const std::string* config_value) { if (config_value) { std::string escaped_pattern; // Escape regex pattern. - EXPECT_TRUE(base::EscapeJSONString(config_value->GetString(), - false /* put_in_quotes */, - &escaped_pattern)); + EXPECT_TRUE(base::EscapeJSONString( + *config_value, false /* put_in_quotes */, &escaped_pattern)); test::OobeJS().ExpectTrue(test::GetOobeElementPath(kAdMachineNameInput) + ".pattern === '" + escaped_pattern + "'"); } else { @@ -283,42 +280,41 @@ // input fields are set correctly. Also checks if there is a "Custom" option // which does not set any fields. void CheckPossibleConfiguration(const std::string& configuration) { - std::unique_ptr<base::ListValue> options = - base::ListValue::From(base::JSONReader::ReadDeprecated( - configuration, - base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS)); - base::DictionaryValue custom_option; - custom_option.SetKey("name", base::Value("Custom")); - options->Append(std::move(custom_option)); - for (size_t i = 0; i < options->GetListDeprecated().size(); ++i) { - const base::Value& option = options->GetListDeprecated()[i]; + absl::optional<base::Value> parsed_json = base::JSONReader::Read( + configuration, base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS); + DCHECK(parsed_json); + base::Value::List& options = parsed_json->GetList(); + base::Value::Dict custom_option; + custom_option.Set("name", "Custom"); + options.Append(std::move(custom_option)); + for (size_t i = 0; i < options.size(); ++i) { + const base::Value::Dict& option = options[i].GetDict(); // Select configuration value. test::OobeJS().SelectElementInPath(base::NumberToString(i), kAdConfigurationSelect); - CheckAttributeValue( - option.FindKeyOfType("name", base::Value::Type::STRING), "", - test::GetOobeElementPath(kAdConfigurationSelect) + - ".selectedOptions[0].label"); + CheckAttributeValue(option.FindString("name"), "", + test::GetOobeElementPath(kAdConfigurationSelect) + + ".selectedOptions[0].label"); CheckAttributeValueAndDisabled( - option.FindKeyOfType("ad_username", base::Value::Type::STRING), "", + option.FindString("ad_username"), "", test::GetOobeElementPath(kAdUsernameInput)); CheckAttributeValueAndDisabled( - option.FindKeyOfType("ad_password", base::Value::Type::STRING), "", + option.FindString("ad_password"), "", test::GetOobeElementPath(kAdPasswordInput)); CheckAttributeValueAndDisabled( - option.FindKeyOfType("computer_ou", base::Value::Type::STRING), "", + option.FindString("computer_ou"), "", test::GetOobeElementPath(kAdMachineOrgUnitInput)); CheckAttributeValueAndDisabled( - option.FindKeyOfType("encryption_types", base::Value::Type::STRING), - "strong", test::GetOobeElementPath(kAdEncryptionTypesSelect)); + option.FindString("encryption_types"), "strong", + test::GetOobeElementPath(kAdEncryptionTypesSelect)); - CheckPatternAttribute(option.FindKeyOfType( - "computer_name_validation_regex", base::Value::Type::STRING)); + CheckPatternAttribute( + option.FindString("computer_name_validation_regex")); } }
diff --git a/chrome/browser/ash/login/reporting/login_logout_reporter_browsertest.cc b/chrome/browser/ash/login/reporting/login_logout_reporter_browsertest.cc deleted file mode 100644 index fa248065..0000000 --- a/chrome/browser/ash/login/reporting/login_logout_reporter_browsertest.cc +++ /dev/null
@@ -1,156 +0,0 @@ -// Copyright 2022 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 <string> -#include <vector> - -#include "ash/components/login/auth/auth_status_consumer.h" -#include "ash/components/login/auth/key.h" -#include "ash/components/login/auth/stub_authenticator_builder.h" -#include "ash/components/login/auth/user_context.h" -#include "ash/components/settings/cros_settings_names.h" -#include "ash/public/cpp/login_screen_test_api.h" -#include "base/run_loop.h" -#include "chrome/browser/ash/login/session/user_session_manager_test_api.h" -#include "chrome/browser/ash/login/test/fake_gaia_mixin.h" -#include "chrome/browser/ash/login/test/login_manager_mixin.h" -#include "chrome/browser/ash/login/test/session_manager_state_waiter.h" -#include "chrome/browser/ash/policy/core/device_policy_cros_browser_test.h" -#include "chrome/browser/policy/messaging_layer/proto/synced/login_logout_event.pb.h" -#include "chromeos/dbus/missive/missive_client.h" -#include "components/account_id/account_id.h" -#include "components/reporting/proto/synced/record.pb.h" -#include "components/reporting/proto/synced/record_constants.pb.h" -#include "content/public/test/browser_test.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" - -using chromeos::MissiveClient; -using reporting::Destination; -using reporting::Priority; -using reporting::Record; -using testing::Eq; -using testing::SizeIs; - -namespace ash::reporting { - -class LoginLogoutReporterBrowserTest - : public policy::DevicePolicyCrosBrowserTest { - public: - LoginLogoutReporterBrowserTest() = default; - - LoginLogoutReporterBrowserTest(const LoginLogoutReporterBrowserTest&) = - delete; - LoginLogoutReporterBrowserTest& operator=( - const LoginLogoutReporterBrowserTest&) = delete; - - void SetUpStubAuthenticatorAndAttemptLogin( - AuthFailure::FailureReason failure_reason = AuthFailure::NONE) { - const UserContext user_context = - LoginManagerMixin::CreateDefaultUserContext(test_user_); - - auto authenticator_builder = - std::make_unique<StubAuthenticatorBuilder>(user_context); - if (failure_reason != AuthFailure::NONE) { - authenticator_builder->SetUpAuthFailure(failure_reason); - } - - test::UserSessionManagerTestApi(UserSessionManager::GetInstance()) - .InjectAuthenticatorBuilder(std::move(authenticator_builder)); - - const std::string& password = user_context.GetKey()->GetSecret(); - LoginScreenTestApi::SubmitPassword(test_user_.account_id, password, - /*check_if_submittable=*/true); - } - - protected: - void SetIsReportLoginLogoutPolicyEnabled(bool enabled) { - policy_helper() - ->device_policy() - ->payload() - .mutable_device_reporting() - ->set_report_login_logout(enabled); - policy_helper()->RefreshPolicyAndWaitUntilDeviceSettingsUpdated( - {ash::kReportDeviceLoginLogout}); - } - - std::vector<Record> GetLoginLogoutRecords( - const std::vector<Record>& all_records) { - std::vector<Record> login_logout_records; - for (const Record& record : all_records) { - if (record.destination() == Destination::LOGIN_LOGOUT_EVENTS) { - login_logout_records.push_back(record); - } - } - return login_logout_records; - } - - const LoginManagerMixin::TestUserInfo test_user_{ - AccountId::FromUserEmailGaiaId(FakeGaiaMixin::kFakeUserEmail, - FakeGaiaMixin::kFakeUserGaiaId)}; - - LoginManagerMixin login_manager_{&mixin_host_, {test_user_}}; -}; - -IN_PROC_BROWSER_TEST_F(LoginLogoutReporterBrowserTest, LoginSuccessful) { - SetIsReportLoginLogoutPolicyEnabled(true); - - SetUpStubAuthenticatorAndAttemptLogin(); - test::WaitForPrimaryUserSessionStart(); - base::RunLoop().RunUntilIdle(); - - ASSERT_TRUE(MissiveClient::Get()); - MissiveClient::TestInterface* const fake_missive = - MissiveClient::Get()->GetTestInterface(); - ASSERT_TRUE(fake_missive); - - const std::vector<Record>& security_records = - fake_missive->GetEnqueuedRecords(Priority::SECURITY); - - ASSERT_FALSE(security_records.empty()); - std::vector<Record> login_logout_records = - GetLoginLogoutRecords(security_records); - ASSERT_THAT(login_logout_records, SizeIs(1)); - - LoginLogoutRecord record_data; - ASSERT_TRUE(record_data.ParseFromString(login_logout_records[0].data())); - EXPECT_THAT(record_data.session_type(), - Eq(LoginLogoutSessionType::REGULAR_USER_SESSION)); - EXPECT_FALSE(record_data.has_affiliated_user()); - ASSERT_TRUE(record_data.has_login_event()); - EXPECT_FALSE(record_data.login_event().has_failure()); -} - -IN_PROC_BROWSER_TEST_F(LoginLogoutReporterBrowserTest, DISABLED_LoginFailed) { - SetIsReportLoginLogoutPolicyEnabled(true); - - SetUpStubAuthenticatorAndAttemptLogin( - AuthFailure::COULD_NOT_MOUNT_CRYPTOHOME); - base::RunLoop().RunUntilIdle(); - - ASSERT_TRUE(MissiveClient::Get()); - MissiveClient::TestInterface* const fake_missive = - MissiveClient::Get()->GetTestInterface(); - ASSERT_TRUE(fake_missive); - - const std::vector<Record>& security_records = - fake_missive->GetEnqueuedRecords(Priority::SECURITY); - - ASSERT_FALSE(security_records.empty()); - std::vector<Record> login_logout_records = - GetLoginLogoutRecords(security_records); - ASSERT_THAT(login_logout_records, SizeIs(1)); - - LoginLogoutRecord record_data; - ASSERT_TRUE(record_data.ParseFromString(security_records[0].data())); - EXPECT_THAT(record_data.session_type(), - Eq(LoginLogoutSessionType::REGULAR_USER_SESSION)); - EXPECT_FALSE(record_data.has_affiliated_user()); - ASSERT_TRUE(record_data.has_login_event()); - ASSERT_TRUE(record_data.login_event().has_failure()); - EXPECT_THAT(record_data.login_event().failure().reason(), - LoginFailureReason::AUTHENTICATION_ERROR); -} - -} // namespace ash::reporting
diff --git a/chrome/browser/ash/login/signin/device_id_browsertest.cc b/chrome/browser/ash/login/signin/device_id_browsertest.cc index 7380dbe..69319670 100644 --- a/chrome/browser/ash/login/signin/device_id_browsertest.cc +++ b/chrome/browser/ash/login/signin/device_id_browsertest.cc
@@ -148,12 +148,11 @@ if (!base::ReadFileToString(GetRefreshTokenToDeviceIdMapFilePath(), &file_contents)) return; - std::unique_ptr<base::Value> value( - base::JSONReader::ReadDeprecated(file_contents)); - base::DictionaryValue* dictionary; - EXPECT_TRUE(value->GetAsDictionary(&dictionary)); + absl::optional<base::Value> value = base::JSONReader::Read(file_contents); + EXPECT_TRUE(value->is_dict()); + base::Value::Dict& dictionary = value->GetDict(); FakeGaia::RefreshTokenToDeviceIdMap map; - for (auto item : dictionary->DictItems()) { + for (auto item : dictionary) { ASSERT_TRUE(item.second.is_string()); map[item.first] = item.second.GetString(); } @@ -161,10 +160,10 @@ } void SaveRefreshTokenToDeviceIdMap() { - base::DictionaryValue dictionary; + base::Value::Dict dictionary; for (const auto& kv : fake_gaia_.fake_gaia()->refresh_token_to_device_id_map()) - dictionary.SetKey(kv.first, base::Value(kv.second)); + dictionary.Set(kv.first, kv.second); std::string json; EXPECT_TRUE(base::JSONWriter::Write(dictionary, &json)); EXPECT_TRUE(base::WriteFile(GetRefreshTokenToDeviceIdMapFilePath(), json));
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client.h b/chrome/browser/ash/policy/enrollment/auto_enrollment_client.h index cb366e4..2b61b5f 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client.h +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client.h
@@ -103,10 +103,6 @@ // called by consumers when they become aware of environment changes (such as // captive portal setup being complete). virtual void Retry() = 0; - - // Cancels any pending requests. |progress_callback_| will not be invoked. - // |this| will delete itself. - virtual void CancelAndDeleteSoon() = 0; }; } // namespace policy
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc index e7c14043..1558fad 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.cc
@@ -13,7 +13,6 @@ #include "base/memory/ptr_util.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" -#include "base/threading/thread_task_runner_handle.h" #include "chrome/browser/ash/login/enrollment/auto_enrollment_controller.h" #include "chrome/browser/ash/policy/enrollment/auto_enrollment_state_message_processor.h" #include "chrome/browser/ash/policy/enrollment/private_membership/psm_rlwe_dmserver_client.h" @@ -100,6 +99,107 @@ std::string server_backed_state_key_hash_; }; +enum class AutoEnrollmentClientImpl::ServerStateRetrievalResult { + // Indicates that request has been successful and server state is available. + kSuccess = 0, + // Indicates a connection error during request. + kConnectionError = 1, + // Indicates an invalid response from server. + kServerError = 2, +}; + +// Responsible fro resolving server state status for both force re-enrollment +// and initial enrollment. +class AutoEnrollmentClientImpl::ServerStateRetriever { + public: + using CompletionCallback = + base::OnceCallback<void(ServerStateRetrievalResult)>; + + ServerStateRetriever( + DeviceManagementService* device_management_service, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + PrefService* local_state, + const std::string& device_id, + const std::string& uma_suffix, + std::unique_ptr<AutoEnrollmentStateMessageProcessor> + state_download_message_processor) + : device_management_service_(device_management_service), + url_loader_factory_(url_loader_factory), + local_state_(local_state), + device_id_(device_id), + uma_suffix_(uma_suffix), + state_download_message_processor_( + std::move(state_download_message_processor)) {} + + ServerStateRetriever(const ServerStateRetriever&) = delete; + ServerStateRetriever& operator=(const ServerStateRetriever&) = delete; + + void Start(CompletionCallback callback) { StartImpl(std::move(callback)); } + + absl::optional<AutoEnrollmentState> GetAutoEnrollmentStateIfObtained() const { + if (!device_state_available_) { + return absl::nullopt; + } + + const DeviceStateMode device_state_mode = GetDeviceStateMode(); + switch (device_state_mode) { + case RESTORE_MODE_NONE: + return AUTO_ENROLLMENT_STATE_NO_ENROLLMENT; + case RESTORE_MODE_DISABLED: + return AUTO_ENROLLMENT_STATE_DISABLED; + case RESTORE_MODE_REENROLLMENT_REQUESTED: + case RESTORE_MODE_REENROLLMENT_ENFORCED: + case INITIAL_MODE_ENROLLMENT_ENFORCED: + return AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT; + case RESTORE_MODE_REENROLLMENT_ZERO_TOUCH: + case INITIAL_MODE_ENROLLMENT_ZERO_TOUCH: + return AUTO_ENROLLMENT_STATE_TRIGGER_ZERO_TOUCH; + } + } + + // TODO(crbug.com/1294843): Cleanup once refactoring is done. + void Reset() { + request_job_.reset(); + completion_callback_.Reset(); + device_state_available_ = false; + } + + // TODO(crbug.com/1294843): Cleanup once refactoring is done. + bool IsInProgress() const { return request_job_ != nullptr; } + + private: + // TODO(crbug.com/1294843): Move the definition here. + void StartImpl(CompletionCallback callback); + + // TODO(crbug.com/1294843): Move the definition here. + void HandleRequestCompletion(DeviceManagementService::Job* job, + DeviceManagementStatus status, + int net_error, + const em::DeviceManagementResponse& response); + + void RunCallback(ServerStateRetrievalResult result) { + DCHECK(completion_callback_); + std::move(completion_callback_).Run(result); + } + + DeviceManagementService* device_management_service_; + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; + PrefService* local_state_; + const std::string device_id_; + const std::string uma_suffix_; + + // Whether the download of server-kept device state completed successfully. + bool device_state_available_ = false; + + std::unique_ptr<DeviceManagementService::Job> request_job_; + + // Fills and parses state retrieval request / response. + std::unique_ptr<AutoEnrollmentStateMessageProcessor> + state_download_message_processor_; + + CompletionCallback completion_callback_; +}; + AutoEnrollmentClientImpl::FactoryImpl::FactoryImpl() {} AutoEnrollmentClientImpl::FactoryImpl::~FactoryImpl() {} @@ -112,14 +212,18 @@ const std::string& server_backed_state_key, int power_initial, int power_limit) { + const std::string device_id = base::GenerateGUID(); return base::WrapUnique(new AutoEnrollmentClientImpl( progress_callback, device_management_service, local_state, url_loader_factory, std::make_unique<DeviceIdentifierProviderFRE>(server_backed_state_key), - AutoEnrollmentStateMessageProcessor::CreateForFRE( - server_backed_state_key), - power_initial, power_limit, kUMASuffixFRE, - /*private_set_membership_helper=*/nullptr)); + std::make_unique<ServerStateRetriever>( + device_management_service, url_loader_factory, local_state, device_id, + kUMASuffixFRE, + AutoEnrollmentStateMessageProcessor::CreateForFRE( + server_backed_state_key)), + device_id, power_initial, power_limit, kUMASuffixFRE, + /*psm_rlwe_dmserver_client=*/nullptr)); } std::unique_ptr<AutoEnrollmentClient> @@ -133,13 +237,17 @@ int power_initial, int power_limit, std::unique_ptr<PsmRlweDmserverClient> psm_rlwe_dmserver_client) { + const std::string device_id = base::GenerateGUID(); return base::WrapUnique(new AutoEnrollmentClientImpl( progress_callback, device_management_service, local_state, url_loader_factory, /*device_identifier_provider_fre=*/nullptr, - AutoEnrollmentStateMessageProcessor::CreateForInitialEnrollment( - device_serial_number, device_brand_code), - power_initial, power_limit, kUMASuffixInitialEnrollment, + std::make_unique<ServerStateRetriever>( + device_management_service, url_loader_factory, local_state, device_id, + kUMASuffixInitialEnrollment, + AutoEnrollmentStateMessageProcessor::CreateForInitialEnrollment( + device_serial_number, device_brand_code)), + device_id, power_initial, power_limit, kUMASuffixInitialEnrollment, std::move(psm_rlwe_dmserver_client))); } @@ -168,7 +276,7 @@ state_ = AUTO_ENROLLMENT_STATE_PENDING; modulus_updates_received_ = 0; has_server_state_ = false; - device_state_available_ = false; + server_state_retriever_->Reset(); NextStep(); } @@ -177,28 +285,9 @@ RetryStep(); } -void AutoEnrollmentClientImpl::CancelAndDeleteSoon() { - // Regardless of PSM execution, only check if neither Hash dance request (i.e. - // DeviceAutoEnrollmentRequest), nor device state request - // (i.e.DeviceInitialEnrollmentStateRequest or DeviceStateRetrievalRequest) is - // in progress. - if (!request_job_) { - // Regardless of PsmHelper client execution, the AutoEnrollmentClientImpl - // isn't running, just delete it and it will delete PsmHelper immediately. - delete this; - } else { - // Client still running, but our owner isn't interested in the result - // anymore. Wait until the protocol completes to measure the extra time - // needed. - time_extra_start_ = base::TimeTicks::Now(); - progress_callback_.Reset(); - } -} - void AutoEnrollmentClientImpl::OnConnectionChanged( network::mojom::ConnectionType type) { - if (type != network::mojom::ConnectionType::CONNECTION_NONE && - !progress_callback_.is_null()) { + if (type != network::mojom::ConnectionType::CONNECTION_NONE) { RetryStep(); } } @@ -209,8 +298,8 @@ PrefService* local_state, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<DeviceIdentifierProviderFRE> device_identifier_provider_fre, - std::unique_ptr<AutoEnrollmentStateMessageProcessor> - state_download_message_processor, + std::unique_ptr<ServerStateRetriever> server_state_retriever, + const std::string& device_id, int power_initial, int power_limit, std::string uma_suffix, @@ -218,8 +307,7 @@ : progress_callback_(callback), state_(AUTO_ENROLLMENT_STATE_IDLE), has_server_state_(false), - device_state_available_(false), - device_id_(base::GenerateGUID()), + device_id_(device_id), current_power_(power_initial), power_limit_(power_limit), modulus_updates_received_(0), @@ -228,8 +316,7 @@ url_loader_factory_(url_loader_factory), device_identifier_provider_fre_( std::move(device_identifier_provider_fre)), - state_download_message_processor_( - std::move(state_download_message_processor)), + server_state_retriever_(std::move(server_state_retriever)), psm_rlwe_dmserver_client_(std::move(psm_rlwe_dmserver_client)), uma_suffix_(uma_suffix) { DCHECK_LE(current_power_, power_limit_); @@ -279,12 +366,12 @@ bool AutoEnrollmentClientImpl::ShouldSendDeviceStateRequest() const { return has_server_state_.has_value() && has_server_state_.value() && - !device_state_available_; + !server_state_retriever_->GetAutoEnrollmentStateIfObtained(); } bool AutoEnrollmentClientImpl::RetryStep() { // If there is a pending request job, let it finish. - if (request_job_) + if (request_job_ || server_state_retriever_->IsInProgress()) return true; if (IsClientForInitialEnrollment()) { @@ -391,11 +478,7 @@ void AutoEnrollmentClientImpl::ReportProgress(AutoEnrollmentState state) { state_ = state; - if (progress_callback_.is_null()) { - base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this); - } else { - progress_callback_.Run(state_); - } + progress_callback_.Run(state_); } void AutoEnrollmentClientImpl::NextStep() { @@ -403,23 +486,13 @@ return; // Protocol finished successfully, report result. - const DeviceStateMode device_state_mode = GetDeviceStateMode(); - switch (device_state_mode) { - case RESTORE_MODE_NONE: - ReportProgress(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); - break; - case RESTORE_MODE_DISABLED: - ReportProgress(AUTO_ENROLLMENT_STATE_DISABLED); - break; - case RESTORE_MODE_REENROLLMENT_REQUESTED: - case RESTORE_MODE_REENROLLMENT_ENFORCED: - case INITIAL_MODE_ENROLLMENT_ENFORCED: - ReportProgress(AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT); - break; - case RESTORE_MODE_REENROLLMENT_ZERO_TOUCH: - case INITIAL_MODE_ENROLLMENT_ZERO_TOUCH: - ReportProgress(AUTO_ENROLLMENT_STATE_TRIGGER_ZERO_TOUCH); - break; + const auto auto_enrollment_state_result = + server_state_retriever_->GetAutoEnrollmentStateIfObtained(); + if (auto_enrollment_state_result) { + ReportProgress(auto_enrollment_state_result.value()); + } else { + DCHECK(!ShouldSendDeviceStateRequest()); + ReportProgress(AUTO_ENROLLMENT_STATE_NO_ENROLLMENT); } } @@ -483,16 +556,28 @@ void AutoEnrollmentClientImpl::SendDeviceStateRequest() { ReportProgress(AUTO_ENROLLMENT_STATE_PENDING); + server_state_retriever_->Start( + base::BindOnce(&AutoEnrollmentClientImpl::OnStateRetrievalCompleted, + base::Unretained(this))); +} + +void AutoEnrollmentClientImpl::ServerStateRetriever::StartImpl( + CompletionCallback callback) { + DCHECK(!request_job_); + DCHECK(callback); + DCHECK(!completion_callback_); + DCHECK(!device_state_available_); + + completion_callback_ = std::move(callback); + std::unique_ptr<DMServerJobConfiguration> config = std::make_unique<DMServerJobConfiguration>( device_management_service_, state_download_message_processor_->GetJobType(), device_id_, /*critical=*/false, DMAuth::NoAuth(), /*oauth_token=*/absl::nullopt, url_loader_factory_, - base::BindRepeating( - &AutoEnrollmentClientImpl::HandleRequestCompletion, - base::Unretained(this), - &AutoEnrollmentClientImpl::OnDeviceStateRequestCompletion)); + base::BindRepeating(&ServerStateRetriever::HandleRequestCompletion, + base::Unretained(this))); state_download_message_processor_->FillRequest(config->request()); request_job_ = device_management_service_->CreateJob(std::move(config)); @@ -512,14 +597,9 @@ -net_error); request_job_.reset(); - // Abort if CancelAndDeleteSoon has been called meanwhile. - if (progress_callback_.is_null()) { - base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this); - } else { - ReportProgress(status == DM_STATUS_REQUEST_FAILED - ? AUTO_ENROLLMENT_STATE_CONNECTION_ERROR - : AUTO_ENROLLMENT_STATE_SERVER_ERROR); - } + ReportProgress(status == DM_STATUS_REQUEST_FAILED + ? AUTO_ENROLLMENT_STATE_CONNECTION_ERROR + : AUTO_ENROLLMENT_STATE_SERVER_ERROR); return; } @@ -592,10 +672,7 @@ LOG(WARNING) << "Received has_state=" << has_server_state_.value(); progress = true; - // Report timing if hash dance finished successfully and if the caller is - // still interested in the result. - if (!progress_callback_.is_null()) - RecordHashDanceSuccessTimeHistogram(); + RecordHashDanceSuccessTimeHistogram(); } // Bucket download done, update UMA. @@ -603,16 +680,51 @@ return progress; } -bool AutoEnrollmentClientImpl::OnDeviceStateRequestCompletion( +void AutoEnrollmentClientImpl::OnStateRetrievalCompleted( + ServerStateRetrievalResult result) { + switch (result) { + case ServerStateRetrievalResult::kSuccess: + NextStep(); + break; + case ServerStateRetrievalResult::kConnectionError: + ReportProgress(AUTO_ENROLLMENT_STATE_CONNECTION_ERROR); + break; + case ServerStateRetrievalResult::kServerError: + ReportProgress(AUTO_ENROLLMENT_STATE_SERVER_ERROR); + break; + } +} + +void AutoEnrollmentClientImpl::ServerStateRetriever::HandleRequestCompletion( DeviceManagementService::Job* job, DeviceManagementStatus status, int net_error, const em::DeviceManagementResponse& response) { + DCHECK(request_job_); + DCHECK(completion_callback_); + + request_job_.reset(); + + base::UmaHistogramSparse(kUMAHashDanceRequestStatus + uma_suffix_, status); + // TODO(crbug.com/1312919): Check `status` for specific errors. + if (status != DM_STATUS_SUCCESS) { + LOG(ERROR) << "Auto enrollment error: " << status; + if (status == DM_STATUS_REQUEST_FAILED) + base::UmaHistogramSparse(kUMAHashDanceNetworkErrorCode + uma_suffix_, + -net_error); + RunCallback(status == DM_STATUS_REQUEST_FAILED + ? ServerStateRetrievalResult::kConnectionError + : ServerStateRetrievalResult::kServerError); + return; + } + absl::optional<AutoEnrollmentStateMessageProcessor::ParsedResponse> parsed_response_opt = state_download_message_processor_->ParseResponse(response); - if (!parsed_response_opt) - return false; + if (!parsed_response_opt) { + RunCallback(ServerStateRetrievalResult::kServerError); + return; + } AutoEnrollmentStateMessageProcessor::ParsedResponse parsed_response = std::move(parsed_response_opt.value()); @@ -644,8 +756,9 @@ parsed_response.license_type.value_or(std::string()))); } local_state_->CommitPendingWrite(); + device_state_available_ = true; - return true; + RunCallback(ServerStateRetrievalResult::kSuccess); } bool AutoEnrollmentClientImpl::IsIdHashInProtobuf( @@ -673,8 +786,6 @@ // The minimum time can't be 0, must be at least 1. static const base::TimeDelta kMin = base::Milliseconds(1); static const base::TimeDelta kMax = base::Minutes(5); - // However, 0 can still be sampled. - static const base::TimeDelta kZero = base::Milliseconds(0); static const int kBuckets = 50; base::TimeTicks now = base::TimeTicks::Now(); @@ -688,14 +799,6 @@ base::UmaHistogramCustomTimes(kUMAHashDanceBucketDownloadTime + uma_suffix_, delta, kMin, kMax, kBuckets); } - base::TimeDelta delta = kZero; - if (!time_extra_start_.is_null()) - delta = now - time_extra_start_; - // This samples |kZero| when there was no need for extra time, so that we can - // measure the ratio of users that succeeded without needing a delay to the - // total users going through OOBE. - base::UmaHistogramCustomTimes(kUMAHashDanceExtraTime + uma_suffix_, delta, - kMin, kMax, kBuckets); } void AutoEnrollmentClientImpl::RecordHashDanceSuccessTimeHistogram() {
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h index 6840aea..e1b089b 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl.h
@@ -12,7 +12,6 @@ #include "base/memory/scoped_refptr.h" #include "base/time/time.h" #include "chrome/browser/ash/policy/enrollment/auto_enrollment_client.h" -#include "chrome/browser/ash/policy/enrollment/private_membership/private_membership_rlwe_client.h" #include "chrome/browser/ash/policy/enrollment/private_membership/psm_rlwe_dmserver_client.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/device_management_service.h" @@ -29,8 +28,6 @@ namespace policy { -class AutoEnrollmentStateMessageProcessor; - // Interacts with the device management service and determines whether this // machine should automatically enter the Enterprise Enrollment screen during // OOBE. @@ -84,7 +81,6 @@ void Start() override; void Retry() override; - void CancelAndDeleteSoon() override; // network::NetworkConnectionTracker::NetworkConnectionObserver: void OnConnectionChanged(network::mojom::ConnectionType type) override; @@ -96,6 +92,11 @@ int, const enterprise_management::DeviceManagementResponse&); + // Responsible for resolving server state status for both Forced Re-Enrollment + // (FRE) and Initial Enrollment. + class ServerStateRetriever; + enum class ServerStateRetrievalResult; + AutoEnrollmentClientImpl( const ProgressCallback& progress_callback, DeviceManagementService* device_management_service, @@ -103,8 +104,8 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<DeviceIdentifierProviderFRE> device_identifier_provider_fre, - std::unique_ptr<AutoEnrollmentStateMessageProcessor> - state_download_message_processor, + std::unique_ptr<ServerStateRetriever> server_state_retriever, + const std::string& device_id, int power_initial, int power_limit, std::string uma_suffix, @@ -171,12 +172,9 @@ int net_error, const enterprise_management::DeviceManagementResponse& response); - // Parses the server response to a device state request. - bool OnDeviceStateRequestCompletion( - DeviceManagementService::Job* job, - DeviceManagementStatus status, - int net_error, - const enterprise_management::DeviceManagementResponse& response); + // Handles result of server state retrieval request. Proceeds to the next + // step on success. Reports failure otherwise. + void OnStateRetrievalCompleted(ServerStateRetrievalResult result); // Returns true if the identifier hash provided by // |device_identifier_provider_fre_| is contained in |hashes|. @@ -206,9 +204,6 @@ // Holds the cached PSM execution result. absl::optional<PsmRlweDmserverClient::ResultHolder> psm_result_holder_; - // Whether the download of server-kept device state completed successfully. - bool device_state_available_; - // Randomly generated device id for the auto-enrollment requests. std::string device_id_; @@ -239,9 +234,8 @@ // Specifies the device identifier for FRE and its corresponding hash. std::unique_ptr<DeviceIdentifierProviderFRE> device_identifier_provider_fre_; - // Fills and parses state retrieval request / response. - std::unique_ptr<AutoEnrollmentStateMessageProcessor> - state_download_message_processor_; + // Sends server state retrieval request and parses response. Reports results. + std::unique_ptr<ServerStateRetriever> server_state_retriever_; // Obtains the device state using PSM protocol. Handles all communications // related to PSM protocol with DMServer. @@ -250,10 +244,7 @@ // Times used to determine the duration of the protocol, and the extra time // needed to complete after the signin was complete. // If |hash_dance_time_start_| is not null, the protocol is still running. - // If |time_extra_start_| is not null, the protocol is still running but our - // owner has relinquished ownership. base::TimeTicks hash_dance_time_start_; - base::TimeTicks time_extra_start_; // The time when the bucket download part of the protocol started. base::TimeTicks time_start_bucket_download_;
diff --git a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc index ee5df6b..2711eb8 100644 --- a/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc +++ b/chrome/browser/ash/policy/enrollment/auto_enrollment_client_impl_unittest.cc
@@ -1241,111 +1241,6 @@ kDisabledMessage, kNotWithLicense, kNoLicenseType); } -TEST_F(AutoEnrollmentClientImplTest, CancelAndDeleteSoonWithPendingRequest) { - DeviceManagementService::JobForTesting job; - ServerWillReplyAsync(&job); - EXPECT_FALSE(job.IsActive()); - client()->Start(); - base::RunLoop().RunUntilIdle(); - ASSERT_TRUE(job.IsActive()); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); - - // Cancel while a request is in flight. - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - release_client()->CancelAndDeleteSoon(); - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - - // The client cleans itself up once a reply is received. - service_->SendJobResponseNow(&job, net::OK, - DeviceManagementService::kServiceUnavailable, - em::DeviceManagementResponse()); - EXPECT_FALSE(job.IsActive()); - // The DeleteSoon task has been posted: - EXPECT_FALSE(base::CurrentThread::Get()->IsIdleForTesting()); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); -} - -TEST_F(AutoEnrollmentClientImplTest, NetworkChangedAfterCancelAndDeleteSoon) { - DeviceManagementService::JobForTesting job; - ServerWillReplyAsync(&job); - EXPECT_FALSE(job.IsActive()); - client()->Start(); - base::RunLoop().RunUntilIdle(); - ASSERT_TRUE(job.IsActive()); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); - - // Cancel while a request is in flight. - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - AutoEnrollmentClientImpl* client = release_client(); - client->CancelAndDeleteSoon(); - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - - // Network change events are ignored while a request is pending. - client->OnConnectionChanged( - network::mojom::ConnectionType::CONNECTION_ETHERNET); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); - - // The client cleans itself up once a reply is received. - service_->SendJobResponseNow(&job, net::OK, - DeviceManagementService::kServiceUnavailable, - em::DeviceManagementResponse()); - EXPECT_FALSE(job.IsActive()); - // The DeleteSoon task has been posted: - EXPECT_FALSE(base::CurrentThread::Get()->IsIdleForTesting()); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); - - // Network changes that have been posted before are also ignored: - client->OnConnectionChanged( - network::mojom::ConnectionType::CONNECTION_ETHERNET); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_PENDING); -} - -TEST_F(AutoEnrollmentClientImplTest, CancelAndDeleteSoonAfterCompletion) { - InSequence sequence; - ServerWillReply(/*modulus=*/-1, /*with_hashes=*/true, /*with_id_hash=*/true); - ServerWillSendState( - "example.com", - em::DeviceStateRetrievalResponse::RESTORE_MODE_REENROLLMENT_ENFORCED, - kDisabledMessage, kNotWithLicense, - em::DeviceInitialEnrollmentStateResponse::NOT_EXIST); - client()->Start(); - base::RunLoop().RunUntilIdle(); - EXPECT_EQ(auto_enrollment_job_type_, - DeviceManagementService::JobConfiguration::TYPE_AUTO_ENROLLMENT); - EXPECT_EQ(state_retrieval_job_type_, GetExpectedStateRetrievalJobType()); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_TRIGGER_ENROLLMENT); - VerifyServerBackedState("example.com", - kDeviceStateRestoreModeReEnrollmentEnforced, - kDisabledMessage, kNotWithLicense, kNoLicenseType); - - // The client will delete itself immediately if there are no pending - // requests. - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - release_client()->CancelAndDeleteSoon(); - base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); -} - -TEST_F(AutoEnrollmentClientImplTest, CancelAndDeleteSoonAfterNetworkFailure) { - ServerWillFail(net::OK, DeviceManagementService::kServiceUnavailable); - client()->Start(); - base::RunLoop().RunUntilIdle(); - ExpectHashDanceRequestStatusHistogram(DM_STATUS_TEMPORARY_UNAVAILABLE, - /*dm_status_count=*/1); - EXPECT_EQ(DeviceManagementService::JobConfiguration::TYPE_AUTO_ENROLLMENT, - failed_job_type_); - EXPECT_EQ(state_, AUTO_ENROLLMENT_STATE_SERVER_ERROR); - - // The client will delete itself immediately if there are no pending - // requests. - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); - release_client()->CancelAndDeleteSoon(); - base::RunLoop().RunUntilIdle(); - EXPECT_TRUE(base::CurrentThread::Get()->IsIdleForTesting()); -} - TEST_F(AutoEnrollmentClientImplTest, NetworkFailureThenRequireUpdatedModulus) { // This test verifies that if the first request fails due to a network // problem then the second request will correctly handle an updated
diff --git a/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.cc b/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.cc index 28074d4..508f86e 100644 --- a/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.cc +++ b/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.cc
@@ -61,10 +61,6 @@ void FakeAutoEnrollmentClient::Retry() {} -void FakeAutoEnrollmentClient::CancelAndDeleteSoon() { - delete this; -} - void FakeAutoEnrollmentClient::SetState(AutoEnrollmentState target_state) { state_ = target_state; progress_callback_.Run(state_);
diff --git a/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.h b/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.h index ee77aadb..a9dd8a1 100644 --- a/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.h +++ b/chrome/browser/ash/policy/enrollment/fake_auto_enrollment_client.h
@@ -71,9 +71,6 @@ void Start() override; // Note: |Retry| is currently a no-op in |FakeAutoEnrollmentClient|. void Retry() override; - // Note: |CancelAndDeleteSoon| currently immediately deletes this - // |FakeAutoEnrollmentClinet|. - void CancelAndDeleteSoon() override; // Sets the state and notifies the |ProgressCallback| passed to the // constructor.
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager.cc index 426a92b..de20f95 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager.cc
@@ -19,8 +19,8 @@ #include "chrome/browser/ash/hats/hats_notification_controller.h" #include "chrome/browser/ash/web_applications/personalization_app/enterprise_policy_delegate_impl.h" #include "chrome/browser/profiles/profile.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "components/prefs/pref_service.h" #include "content/public/browser/browser_context.h"
diff --git a/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager_factory.cc b/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager_factory.cc index aaf232c..3f45da9 100644 --- a/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager_factory.cc +++ b/chrome/browser/ash/web_applications/personalization_app/personalization_app_manager_factory.cc
@@ -5,7 +5,7 @@ #include "chrome/browser/ash/web_applications/personalization_app/personalization_app_manager_factory.h" #include "chrome/browser/ash/web_applications/personalization_app/personalization_app_manager.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "content/public/browser/browser_context.h"
diff --git a/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate.cc b/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate.cc index 6913dce..f803591 100644 --- a/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate.cc +++ b/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate.cc
@@ -42,24 +42,26 @@ end_action_callback_ = std::move(end_action_callback); start_dom_checks_callback_ = std::move(start_dom_checks_callback); - GenericPasswordChangeSpecification spec; - if (!spec.ParseFromString(action.info().action_payload())) { - DLOG(ERROR) << "unable to parse GenericPasswordChangeSpecification"; + if (!action.info().has_generic_password_change_specification()) { + DLOG(ERROR) << "Action is not of type GenericPasswordChangeSpecification"; EndAction(false); return; } - - switch (spec.specification_case()) { + GenericPasswordChangeSpecification generic_password_change_specification = + action.info().generic_password_change_specification(); + switch (generic_password_change_specification.specification_case()) { case GenericPasswordChangeSpecification::SpecificationCase::kBasePrompt: - HandleBasePrompt(spec.base_prompt()); + HandleBasePrompt(generic_password_change_specification.base_prompt()); break; case GenericPasswordChangeSpecification::SpecificationCase:: kUseGeneratedPasswordPrompt: - HandleGeneratedPasswordPrompt(spec.use_generated_password_prompt()); + HandleGeneratedPasswordPrompt(generic_password_change_specification + .use_generated_password_prompt()); break; case GenericPasswordChangeSpecification::SpecificationCase:: kUpdateSidePanel: - HandleUpdateSidePanel(spec.update_side_panel()); + HandleUpdateSidePanel( + generic_password_change_specification.update_side_panel()); break; case GenericPasswordChangeSpecification::SpecificationCase:: SPECIFICATION_NOT_SET:
diff --git a/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate_unittest.cc b/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate_unittest.cc index bde5c27c..6442935 100644 --- a/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate_unittest.cc +++ b/chrome/browser/autofill_assistant/password_change/apc_external_action_delegate_unittest.cc
@@ -108,7 +108,8 @@ autofill_assistant::external::Action action; autofill_assistant::password_change::GenericPasswordChangeSpecification spec; *spec.mutable_base_prompt() = proto; - spec.SerializeToString(action.mutable_info()->mutable_action_payload()); + *action.mutable_info()->mutable_generic_password_change_specification() = + spec; return action; } @@ -121,7 +122,8 @@ autofill_assistant::external::Action action; autofill_assistant::password_change::GenericPasswordChangeSpecification spec; *spec.mutable_use_generated_password_prompt() = proto; - spec.SerializeToString(action.mutable_info()->mutable_action_payload()); + *action.mutable_info()->mutable_generic_password_change_specification() = + spec; return action; } @@ -132,7 +134,8 @@ autofill_assistant::external::Action action; autofill_assistant::password_change::GenericPasswordChangeSpecification spec; *spec.mutable_update_side_panel() = proto; - spec.SerializeToString(action.mutable_info()->mutable_action_payload()); + *action.mutable_info()->mutable_generic_password_change_specification() = + spec; return action; }
diff --git a/chrome/browser/cart/commerce_hint_service.cc b/chrome/browser/cart/commerce_hint_service.cc index 324225d..9754070 100644 --- a/chrome/browser/cart/commerce_hint_service.cc +++ b/chrome/browser/cart/commerce_hint_service.cc
@@ -71,11 +71,11 @@ : public content::DocumentService<mojom::CommerceHintObserver> { public: explicit CommerceHintObserverImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::CommerceHintObserver> receiver, base::WeakPtr<CommerceHintService> service) : DocumentService(render_frame_host, std::move(receiver)), - binding_url_(render_frame_host->GetLastCommittedURL()), + binding_url_(render_frame_host.GetLastCommittedURL()), service_(std::move(service)) {} ~CommerceHintObserverImpl() override = default; @@ -207,9 +207,10 @@ void CommerceHintService::BindCommerceHintObserver( content::RenderFrameHost* host, mojo::PendingReceiver<mojom::CommerceHintObserver> receiver) { + CHECK(host); // The object is bound to the lifetime of |host| and the mojo // connection. See DocumentService for details. - new CommerceHintObserverImpl(host, std::move(receiver), + new CommerceHintObserverImpl(*host, std::move(receiver), weak_factory_.GetWeakPtr()); }
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index a58dc02..ed7f51f 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -269,7 +269,7 @@ #include "chrome/browser/ui/webui/settings/ash/search/search.mojom.h" #include "chrome/browser/ui/webui/settings/ash/search/user_action_recorder.mojom.h" #include "chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "chromeos/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom.h" #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" // nogncheck #include "chromeos/services/network_health/public/mojom/network_diagnostics.mojom.h" // nogncheck
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 17bbdd06..a8edb364 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -297,6 +297,7 @@ "//chromeos/ash/components/dbus/vm_plugin_dispatcher", "//chromeos/ash/components/dbus/vm_plugin_dispatcher:proto", "//chromeos/ash/components/hibernate:buildflags", + "//chromeos/ash/components/local_search_service/public/cpp", "//chromeos/ash/components/memory", "//chromeos/ash/components/network/portal_detector", "//chromeos/ash/components/oobe_quick_start", @@ -309,7 +310,6 @@ "//chromeos/components/cdm_factory_daemon:cdm_factory_daemon_browser", "//chromeos/components/disks:prefs", "//chromeos/components/feature_usage", - "//chromeos/components/local_search_service/public/cpp:cpp", "//chromeos/components/mojo_bootstrap", "//chromeos/components/onc", "//chromeos/components/quick_answers",
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn b/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn index 876cc1d..d6e1ea7 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn +++ b/chrome/browser/chromeos/extensions/telemetry/api/BUILD.gn
@@ -22,6 +22,8 @@ "diagnostics_api_converters.h", "hardware_info_delegate.cc", "hardware_info_delegate.h", + "remote_probe_service_strategy.cc", + "remote_probe_service_strategy.h", "telemetry_api.cc", "telemetry_api.h", "telemetry_api_converters.cc",
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate.cc b/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate.cc index 41e0ff24..4e13237 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate.cc +++ b/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/callback.h" +#include "base/containers/flat_set.h" #include "base/memory/ptr_util.h" #include "base/values.h" #include "chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.h" @@ -34,9 +35,10 @@ namespace { -std::string OnGetManufacturer(const std::string& expected_manufacturer, - std::string actual_manufacturer) { - return actual_manufacturer == expected_manufacturer +std::string OnGetManufacturer( + base::flat_set<std::string> expected_manufacturers, + std::string actual_manufacturer) { + return expected_manufacturers.contains(actual_manufacturer) ? "" : "This extension is not allowed to access the API on this " "device"; @@ -135,7 +137,7 @@ void VerifyManufacturer(const extensions::Extension* extension, CanAccessApiCallback callback) { const auto extension_info = GetChromeOSExtensionInfoForId(extension->id()); - const std::string& expected_manufacturer = extension_info.manufacturer; + const auto expected_manufacturers = extension_info.manufacturers; // We can expect VerifyManufacturer() to be called at most once for the // lifetime of the ApiGuardDelegateImpl because CanAccessApi() can be called @@ -144,7 +146,7 @@ // is safe to instantiate |hardware_info_delegate_| here (vs in the ctor). hardware_info_delegate_ = HardwareInfoDelegate::Factory::Create(); hardware_info_delegate_->GetManufacturer( - base::BindOnce(&OnGetManufacturer, expected_manufacturer) + base::BindOnce(&OnGetManufacturer, expected_manufacturers) .Then(std::move(callback))); }
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate_unittest.cc b/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate_unittest.cc index 153d0aa1..50b54035 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate_unittest.cc +++ b/chrome/browser/chromeos/extensions/telemetry/api/api_guard_delegate_unittest.cc
@@ -49,12 +49,18 @@ }; const std::vector<ExtensionInfoTestParams> kAllExtensionInfoTestParams{ + // Make sure the Google extension is allowed for every OEM. ExtensionInfoTestParams( /*extension_id=*/"gogonhoemckpdpadfnjnpgbjpbjnodgc", /*pwa_page_url=*/"https://www.google.com", /*matches_origin=*/"*://www.google.com/*", - /*manufacturer=*/"HP"), // TODO(http://b/237059912): Refactor this as - // soon as it becomes a set. + /*manufacturer=*/"HP"), + ExtensionInfoTestParams( + /*extension_id=*/"gogonhoemckpdpadfnjnpgbjpbjnodgc", + /*pwa_page_url=*/"https://www.google.com", + /*matches_origin=*/"*://www.google.com/*", + /*manufacturer=*/"ASUS"), + // Make sure the extensions of each OEM are allowed on their device. ExtensionInfoTestParams( /*extension_id=*/"alnedpmllcfpgldkagbfbjkloonjlfjb", /*pwa_page_url=*/"https://hpcs-appschr.hpcloud.hp.com", @@ -227,7 +233,7 @@ OpenPwaUrlAndSetCertificateWithStatus(/*cert_status=*/net::OK); // Make sure device manufacturer is not allowed. - SetDeviceManufacturer("GOOGLE"); + SetDeviceManufacturer("NOT_ALLOWED"); auto api_guard_delegate = ApiGuardDelegate::Factory::Create(); base::test::TestFuture<std::string> future; @@ -338,7 +344,7 @@ OpenPwaUrlAndSetCertificateWithStatus(/*cert_status=*/net::OK); // Make sure device manufacturer is not allowed. - SetDeviceManufacturer("GOOGLE"); + SetDeviceManufacturer("NOT_ALLOWED"); auto api_guard_delegate = ApiGuardDelegate::Factory::Create(); base::test::TestFuture<std::string> future;
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.cc b/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.cc index 370f723..e854fe03 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.cc +++ b/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.cc
@@ -18,6 +18,7 @@ #include "base/strings/string_util.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" +#include "chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h" namespace chromeos { @@ -84,11 +85,12 @@ HardwareInfoDelegate::Factory::~Factory() = default; HardwareInfoDelegate::HardwareInfoDelegate() - : probe_service_(ash::ProbeService::Factory::Create( - remote_probe_service_.BindNewPipeAndPassReceiver())) {} + : remote_probe_service_strategy_(RemoteProbeServiceStrategy::Create()) {} +HardwareInfoDelegate::~HardwareInfoDelegate() = default; -HardwareInfoDelegate::~HardwareInfoDelegate() { - remote_probe_service_.reset(); +mojo::Remote<ash::health::mojom::ProbeService>& +HardwareInfoDelegate::GetRemoteService() { + return remote_probe_service_strategy_->GetRemoteService(); } // GetManufacturer tries to get the manufacturer (or OEM name) from @@ -101,7 +103,7 @@ auto fallback = base::BindOnce(&HardwareInfoDelegate::FallbackHandler, base::Unretained(this), std::move(done_cb)); auto cb = base::BindOnce(&OnGetSystemInfo).Then(std::move(fallback)); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kSystem}, std::move(cb)); }
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.h b/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.h index 80bf985..7214702 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.h +++ b/chrome/browser/chromeos/extensions/telemetry/api/hardware_info_delegate.h
@@ -11,6 +11,7 @@ #include "ash/webui/telemetry_extension_ui/mojom/probe_service.mojom.h" #include "ash/webui/telemetry_extension_ui/services/probe_service.h" #include "base/callback.h" +#include "chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h" namespace chromeos { @@ -48,8 +49,9 @@ void FallbackHandler(ManufacturerCallback done_cb, std::string probe_service_result); - mojo::Remote<ash::health::mojom::ProbeService> remote_probe_service_; - std::unique_ptr<ash::health::mojom::ProbeService> probe_service_; + mojo::Remote<ash::health::mojom::ProbeService>& GetRemoteService(); + + std::unique_ptr<RemoteProbeServiceStrategy> remote_probe_service_strategy_; }; } // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.cc b/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.cc new file mode 100644 index 0000000..2bd5daab --- /dev/null +++ b/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.cc
@@ -0,0 +1,47 @@ +// Copyright 2022 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/extensions/telemetry/api/remote_probe_service_strategy.h" + +#include <memory> + +#include "ash/webui/telemetry_extension_ui/mojom/probe_service.mojom.h" +#include "ash/webui/telemetry_extension_ui/services/probe_service.h" +#include "mojo/public/cpp/bindings/remote.h" + +namespace chromeos { + +namespace { + +class RemoteProbeServiceStrategyAsh : public RemoteProbeServiceStrategy { + public: + RemoteProbeServiceStrategyAsh() + : probe_service_(ash::ProbeService::Factory::Create( + remote_probe_service_.BindNewPipeAndPassReceiver())) {} + + ~RemoteProbeServiceStrategyAsh() override = default; + + // RemoteProbeServiceStrategy override: + mojo::Remote<ash::health::mojom::ProbeService>& GetRemoteService() override { + return remote_probe_service_; + } + + private: + mojo::Remote<ash::health::mojom::ProbeService> remote_probe_service_; + + std::unique_ptr<ash::health::mojom::ProbeService> probe_service_; +}; + +} // namespace + +// static +std::unique_ptr<RemoteProbeServiceStrategy> +RemoteProbeServiceStrategy::Create() { + return std::make_unique<RemoteProbeServiceStrategyAsh>(); +} + +RemoteProbeServiceStrategy::RemoteProbeServiceStrategy() = default; +RemoteProbeServiceStrategy::~RemoteProbeServiceStrategy() = default; + +} // namespace chromeos
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h b/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h new file mode 100644 index 0000000..8f95e0a --- /dev/null +++ b/chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h
@@ -0,0 +1,34 @@ +// Copyright 2022 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_EXTENSIONS_TELEMETRY_API_REMOTE_PROBE_SERVICE_STRATEGY_H_ +#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_REMOTE_PROBE_SERVICE_STRATEGY_H_ + +#include <memory> + +#include "ash/webui/telemetry_extension_ui/mojom/probe_service.mojom.h" +#include "mojo/public/cpp/bindings/remote.h" + +namespace chromeos { + +// A class that provides an interface for accessing a probe service mojo remote. +// Allows for multiple implementations depending on whether this is running in +// Ash or LaCros. +class RemoteProbeServiceStrategy { + public: + static std::unique_ptr<RemoteProbeServiceStrategy> Create(); + + RemoteProbeServiceStrategy(); + RemoteProbeServiceStrategy(const RemoteProbeServiceStrategy&) = delete; + RemoteProbeServiceStrategy& operator=(const RemoteProbeServiceStrategy&) = + delete; + virtual ~RemoteProbeServiceStrategy(); + + virtual mojo::Remote<ash::health::mojom::ProbeService>& + GetRemoteService() = 0; +}; + +} // namespace chromeos + +#endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_TELEMETRY_API_REMOTE_PROBE_SERVICE_STRATEGY_H_
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc index 4cc7690..6d83fad1 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc +++ b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.cc
@@ -10,9 +10,9 @@ #include <string> #include <utility> -#include "ash/webui/telemetry_extension_ui/services/probe_service.h" #include "base/bind.h" #include "base/values.h" +#include "chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h" #include "chrome/browser/chromeos/extensions/telemetry/api/telemetry_api_converters.h" #include "chrome/common/chromeos/extensions/api/telemetry.h" #include "extensions/common/permissions/permissions_data.h" @@ -22,11 +22,15 @@ // TelemetryApiFunctionBase ---------------------------------------------------- TelemetryApiFunctionBase::TelemetryApiFunctionBase() - : probe_service_(ash::ProbeService::Factory::Create( - remote_probe_service_.BindNewPipeAndPassReceiver())) {} + : remote_probe_service_strategy_(RemoteProbeServiceStrategy::Create()) {} TelemetryApiFunctionBase::~TelemetryApiFunctionBase() = default; +mojo::Remote<ash::health::mojom::ProbeService>& +TelemetryApiFunctionBase::GetRemoteService() { + return remote_probe_service_strategy_->GetRemoteService(); +} + // OsTelemetryGetBatteryInfoFunction ------------------------------------------- OsTelemetryGetBatteryInfoFunction::OsTelemetryGetBatteryInfoFunction() = @@ -37,7 +41,7 @@ void OsTelemetryGetBatteryInfoFunction::RunIfAllowed() { auto cb = base::BindOnce(&OsTelemetryGetBatteryInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kBattery}, std::move(cb)); } @@ -78,7 +82,7 @@ void OsTelemetryGetCpuInfoFunction::RunIfAllowed() { auto cb = base::BindOnce(&OsTelemetryGetCpuInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kCpu}, std::move(cb)); } @@ -112,7 +116,7 @@ void OsTelemetryGetMemoryInfoFunction::RunIfAllowed() { auto cb = base::BindOnce(&OsTelemetryGetMemoryInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kMemory}, std::move(cb)); } @@ -164,7 +168,7 @@ auto cb = base::BindOnce(&OsTelemetryGetOemDataFunction::OnResult, this); - remote_probe_service_->GetOemData(std::move(cb)); + GetRemoteService()->GetOemData(std::move(cb)); } void OsTelemetryGetOemDataFunction::OnResult( @@ -192,7 +196,7 @@ auto cb = base::BindOnce(&OsTelemetryGetOsVersionInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kSystem}, std::move(cb)); } @@ -230,7 +234,7 @@ auto cb = base::BindOnce( &OsTelemetryGetStatefulPartitionInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kStatefulPartition}, std::move(cb)); } @@ -261,7 +265,7 @@ void OsTelemetryGetVpdInfoFunction::RunIfAllowed() { auto cb = base::BindOnce(&OsTelemetryGetVpdInfoFunction::OnResult, this); - remote_probe_service_->ProbeTelemetryInfo( + GetRemoteService()->ProbeTelemetryInfo( {ash::health::mojom::ProbeCategoryEnum::kCachedVpdData}, std::move(cb)); }
diff --git a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h index 99be601b..d416287 100644 --- a/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h +++ b/chrome/browser/chromeos/extensions/telemetry/api/telemetry_api.h
@@ -9,6 +9,7 @@ #include "ash/webui/telemetry_extension_ui/mojom/probe_service.mojom.h" #include "chrome/browser/chromeos/extensions/telemetry/api/base_telemetry_extension_api_guard_function.h" +#include "chrome/browser/chromeos/extensions/telemetry/api/remote_probe_service_strategy.h" #include "extensions/browser/extension_function.h" #include "extensions/browser/extension_function_histogram_value.h" #include "mojo/public/cpp/bindings/remote.h" @@ -25,10 +26,10 @@ protected: ~TelemetryApiFunctionBase() override; - mojo::Remote<ash::health::mojom::ProbeService> remote_probe_service_; + mojo::Remote<ash::health::mojom::ProbeService>& GetRemoteService(); private: - std::unique_ptr<ash::health::mojom::ProbeService> probe_service_; + std::unique_ptr<RemoteProbeServiceStrategy> remote_probe_service_strategy_; }; class OsTelemetryGetBatteryInfoFunction : public TelemetryApiFunctionBase {
diff --git a/chrome/browser/device_api/device_service_impl.cc b/chrome/browser/device_api/device_service_impl.cc index 29e97ecc..1f094c1 100644 --- a/chrome/browser/device_api/device_service_impl.cc +++ b/chrome/browser/device_api/device_service_impl.cc
@@ -83,11 +83,11 @@ }); } -const Profile* GetProfile(content::RenderFrameHost* host) { - return Profile::FromBrowserContext(host->GetBrowserContext()); +const Profile* GetProfile(content::RenderFrameHost& host) { + return Profile::FromBrowserContext(host.GetBrowserContext()); } -const PrefService* GetPrefs(content::RenderFrameHost* host) { +const PrefService* GetPrefs(content::RenderFrameHost& host) { return GetProfile(host)->GetPrefs(); } @@ -103,7 +103,7 @@ #endif } -bool IsTrustedContext(content::RenderFrameHost* host, +bool IsTrustedContext(content::RenderFrameHost& host, const url::Origin& origin) { // TODO(anqing): This feature flag is turned on by default for origin trial. // The flag will be removed when permission policies are ready. @@ -124,11 +124,11 @@ } // namespace DeviceServiceImpl::DeviceServiceImpl( - content::RenderFrameHost* host, + content::RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::DeviceAPIService> receiver) - : DocumentService(host, std::move(receiver)), host_(host) { + : DocumentService(host, std::move(receiver)) { pref_change_registrar_.Init( - Profile::FromBrowserContext(host->GetBrowserContext())->GetPrefs()); + Profile::FromBrowserContext(host.GetBrowserContext())->GetPrefs()); pref_change_registrar_.Add( prefs::kDeviceAttributesAllowedForOrigins, base::BindRepeating(&DeviceServiceImpl::OnDisposingIfNeeded, @@ -145,16 +145,18 @@ void DeviceServiceImpl::Create( content::RenderFrameHost* host, mojo::PendingReceiver<blink::mojom::DeviceAPIService> receiver) { + CHECK(host); DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - if (!IsTrustedContext(host, host->GetMainFrame()->GetLastCommittedOrigin())) { + if (!IsTrustedContext(*host, + host->GetMainFrame()->GetLastCommittedOrigin())) { // Not sending bad message here since the API is always exposed to the end // user. return; } // The object is bound to the lifetime of |host| and the mojo // connection. See DocumentService for details. - new DeviceServiceImpl(host, std::move(receiver)); + new DeviceServiceImpl(*host, std::move(receiver)); } // static @@ -165,7 +167,7 @@ void DeviceServiceImpl::OnDisposingIfNeeded() { // DeviceServiceImpl is allocated on the heap, thus it is safe to remove it // like this. - if (!IsTrustedContext(host_, origin())) { + if (!IsTrustedContext(render_frame_host(), origin())) { ResetAndDeleteThis(); } } @@ -205,7 +207,7 @@ return; } - if (!CanAccessDeviceAttributes(GetPrefs(host_), origin())) { + if (!CanAccessDeviceAttributes(GetPrefs(render_frame_host()), origin())) { device_attribute_api::ReportNotAllowedError(std::move(callback)); return; }
diff --git a/chrome/browser/device_api/device_service_impl.h b/chrome/browser/device_api/device_service_impl.h index 09a0d6161..73f987cd 100644 --- a/chrome/browser/device_api/device_service_impl.h +++ b/chrome/browser/device_api/device_service_impl.h
@@ -45,7 +45,7 @@ private: DeviceServiceImpl( - content::RenderFrameHost* host, + content::RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::DeviceAPIService> receiver); void GetDeviceAttribute( @@ -54,7 +54,6 @@ void OnDisposingIfNeeded(); - const raw_ptr<content::RenderFrameHost> host_; PrefChangeRegistrar pref_change_registrar_; };
diff --git a/chrome/browser/device_api/managed_configuration_service.cc b/chrome/browser/device_api/managed_configuration_service.cc index 44219be7..e8cab38 100644 --- a/chrome/browser/device_api/managed_configuration_service.cc +++ b/chrome/browser/device_api/managed_configuration_service.cc
@@ -14,6 +14,7 @@ void ManagedConfigurationServiceImpl::Create( content::RenderFrameHost* host, mojo::PendingReceiver<blink::mojom::ManagedConfigurationService> receiver) { + CHECK(host); DCHECK_CURRENTLY_ON(content::BrowserThread::UI); if (!base::FeatureList::IsEnabled(blink::features::kManagedConfiguration)) { mojo::ReportBadMessage( @@ -31,13 +32,13 @@ // The object is bound to the lifetime of |host| and the mojo // connection. See DocumentService for details. - new ManagedConfigurationServiceImpl(host, std::move(receiver)); + new ManagedConfigurationServiceImpl(*host, std::move(receiver)); } ManagedConfigurationServiceImpl::ManagedConfigurationServiceImpl( - content::RenderFrameHost* host, + content::RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::ManagedConfigurationService> receiver) - : DocumentService(host, std::move(receiver)), host_(host) { + : DocumentService(host, std::move(receiver)) { managed_configuration_api()->AddObserver(this); } @@ -76,7 +77,7 @@ ManagedConfigurationAPI* ManagedConfigurationServiceImpl::managed_configuration_api() { return ManagedConfigurationAPIFactory::GetForProfile( - Profile::FromBrowserContext(host_->GetBrowserContext())); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext())); } const url::Origin& ManagedConfigurationServiceImpl::GetOrigin() {
diff --git a/chrome/browser/device_api/managed_configuration_service.h b/chrome/browser/device_api/managed_configuration_service.h index ff0b575..65a6156 100644 --- a/chrome/browser/device_api/managed_configuration_service.h +++ b/chrome/browser/device_api/managed_configuration_service.h
@@ -28,7 +28,7 @@ private: ManagedConfigurationServiceImpl( - content::RenderFrameHost* host, + content::RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::ManagedConfigurationService> receiver); // blink::mojom::DeviceApiService: @@ -45,8 +45,6 @@ void OnManagedConfigurationChanged() override; const url::Origin& GetOrigin() override; - const raw_ptr<content::RenderFrameHost> host_; - mojo::Remote<blink::mojom::ManagedConfigurationObserver> configuration_subscription_; };
diff --git a/chrome/browser/enterprise/connectors/device_trust/attestation/common/attestation_utils.cc b/chrome/browser/enterprise/connectors/device_trust/attestation/common/attestation_utils.cc index 09a1071..b7cab8e4 100644 --- a/chrome/browser/enterprise/connectors/device_trust/attestation/common/attestation_utils.cc +++ b/chrome/browser/enterprise/connectors/device_trust/attestation/common/attestation_utils.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 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.
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.cc b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.cc index ba02d87..a9fd7d1 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.cc +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 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.
diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h index 4713f23..1ad9b46 100644 --- a/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h +++ b/chrome/browser/enterprise/connectors/device_trust/key_management/browser/mock_device_trust_key_manager.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 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.
diff --git a/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.cc b/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.cc index 4173713..9b053da 100644 --- a/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.cc +++ b/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 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.
diff --git a/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h b/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h index 5da41e18..238ba84 100644 --- a/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h +++ b/chrome/browser/enterprise/connectors/device_trust/navigation_throttle.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 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.
diff --git a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_apitest.cc b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_apitest.cc index 14017ec4..e7e52d8a5 100644 --- a/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_apitest.cc +++ b/chrome/browser/extensions/api/declarative_net_request/declarative_net_request_apitest.cc
@@ -12,9 +12,7 @@ #include "components/version_info/version_info.h" #include "content/public/common/content_features.h" #include "content/public/test/browser_test.h" -#include "content/public/test/prerender_test_util.h" #include "net/dns/mock_host_resolver.h" -#include "net/test/embedded_test_server/embedded_test_server.h" #include "third_party/blink/public/common/features.h" namespace { @@ -153,40 +151,4 @@ DeclarativeNetRequestApiFencedFrameTest, testing::Bool()); -class DeclarativeNetRequestApiPrerenderingTest - : public DeclarativeNetRequestLazyApiTest { - public: - DeclarativeNetRequestApiPrerenderingTest() - : prerender_helper_(base::BindRepeating( - &DeclarativeNetRequestApiPrerenderingTest::GetActiveWebContents, - base::Unretained(this))) {} - ~DeclarativeNetRequestApiPrerenderingTest() override = default; - - private: - content::WebContents* GetActiveWebContents() { - return browser()->tab_strip_model()->GetWebContentsAt(0); - } - void SetUp() override { - prerender_helper_.SetUp(embedded_test_server()); - DeclarativeNetRequestApiTest::SetUp(); - } - - content::test::PrerenderTestHelper prerender_helper_; -}; - -INSTANTIATE_TEST_SUITE_P(PersistentBackground, - DeclarativeNetRequestApiPrerenderingTest, - ::testing::Values(ContextType::kPersistentBackground)); -INSTANTIATE_TEST_SUITE_P(EventPage, - DeclarativeNetRequestApiPrerenderingTest, - ::testing::Values(ContextType::kEventPage)); -INSTANTIATE_TEST_SUITE_P(ServiceWorker, - DeclarativeNetRequestApiPrerenderingTest, - ::testing::Values(ContextType::kServiceWorker)); - -IN_PROC_BROWSER_TEST_P(DeclarativeNetRequestApiPrerenderingTest, - PrerenderedPageInterception) { - ASSERT_TRUE(RunExtensionTest("prerendering")) << message_; -} - } // namespace
diff --git a/chrome/browser/extensions/extension_action_runner.cc b/chrome/browser/extensions/extension_action_runner.cc index 8e43633..3f97d63 100644 --- a/chrome/browser/extensions/extension_action_runner.cc +++ b/chrome/browser/extensions/extension_action_runner.cc
@@ -542,15 +542,18 @@ declarative_net_request::RulesMonitorService* rules_monitor_service = declarative_net_request::RulesMonitorService::Get(browser_context_); - if (!navigation_handle->IsInPrimaryMainFrame() || - !navigation_handle->HasCommitted() || + const bool has_committed = navigation_handle->HasCommitted(); + + if (navigation_handle->IsInMainFrame() && !has_committed && + rules_monitor_service) { + // Clean up any pending actions recorded in the action tracker for this + // navigation. + rules_monitor_service->action_tracker().ClearPendingNavigation( + navigation_handle->GetNavigationId()); + } + + if (!navigation_handle->IsInPrimaryMainFrame() || !has_committed || navigation_handle->IsSameDocument()) { - if (rules_monitor_service && !navigation_handle->IsSameDocument()) { - // Clean up any pending actions recorded in the action tracker for this - // navigation. - rules_monitor_service->action_tracker().ClearPendingNavigation( - navigation_handle->GetNavigationId()); - } return; }
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index ff1711f9..778a0fb2 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -1617,6 +1617,11 @@ "expiry_milestone": 86 }, { + "name": "enable-biometric-authentication-in-settings", + "owners": ["sygiet@google.com", "vsemeniuk@google.com"], + "expiry_milestone": 110 + }, + { "name": "enable-bluetooth-spp-in-serial-api", "owners": [ "mattreynolds", "cmumford" ], "expiry_milestone": 110
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index da955b0..256eea20 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -4240,7 +4240,10 @@ const char kUseAngleName[] = "Choose ANGLE graphics backend"; const char kUseAngleDefault[] = "Default"; const char kUseAngleGL[] = "OpenGL"; - +const char kEnableBiometricAuthenticationInSettingsName[] = + "Biometric authentication in settings"; +const char kEnableBiometricAuthenticationInSettingsDescription[] = + "Enables biometric authentication in settings to view/edit/copy a password"; #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) // ChromeOS -------------------------------------------------------------------
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index e0e761f..c3eb436 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -2428,6 +2428,9 @@ extern const char kUseAngleDefault[]; extern const char kUseAngleGL[]; +extern const char kEnableBiometricAuthenticationInSettingsName[]; +extern const char kEnableBiometricAuthenticationInSettingsDescription[]; + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) // ChromeOS -------------------------------------------------------------------
diff --git a/chrome/browser/media/android/cdm/media_drm_storage_factory.cc b/chrome/browser/media/android/cdm/media_drm_storage_factory.cc index 8086e08..ac464f7 100644 --- a/chrome/browser/media/android/cdm/media_drm_storage_factory.cc +++ b/chrome/browser/media/android/cdm/media_drm_storage_factory.cc
@@ -121,7 +121,7 @@ mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver) { DVLOG(1) << __func__; DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - DCHECK(render_frame_host); + CHECK(render_frame_host); content::BrowserContext* browser_context = render_frame_host->GetBrowserContext(); @@ -149,7 +149,7 @@ // The object will be deleted on connection error, or when the frame navigates // away. See DocumentService for details. new cdm::MediaDrmStorageImpl( - render_frame_host, pref_service, get_origin_id_cb, + *render_frame_host, pref_service, get_origin_id_cb, base::BindRepeating(&AllowEmptyOriginId, render_frame_host), std::move(receiver)); }
diff --git a/chrome/browser/media/cdm_document_service_impl.cc b/chrome/browser/media/cdm_document_service_impl.cc index 7985b99d..10252f7 100644 --- a/chrome/browser/media/cdm_document_service_impl.cc +++ b/chrome/browser/media/cdm_document_service_impl.cc
@@ -134,7 +134,7 @@ content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<media::mojom::CdmDocumentService> receiver) { DVLOG(2) << __func__; - DCHECK(render_frame_host); + CHECK(render_frame_host); // PlatformVerificationFlow and the pref service requires to be run/accessed // on the UI thread. @@ -142,14 +142,13 @@ // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new CdmDocumentServiceImpl(render_frame_host, std::move(receiver)); + new CdmDocumentServiceImpl(*render_frame_host, std::move(receiver)); } CdmDocumentServiceImpl::CdmDocumentServiceImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::CdmDocumentService> receiver) - : DocumentService(render_frame_host, std::move(receiver)), - render_frame_host_(render_frame_host) {} + : DocumentService(render_frame_host, std::move(receiver)) {} CdmDocumentServiceImpl::~CdmDocumentServiceImpl() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -167,7 +166,7 @@ #if BUILDFLAG(IS_CHROMEOS) bool success = platform_verification::PerformBrowserChecks( - render_frame_host()->GetMainFrame()); + render_frame_host().GetMainFrame()); if (!success) { std::move(callback).Run(false, std::string(), std::string(), std::string()); return; @@ -197,7 +196,7 @@ base::MakeRefCounted<ash::attestation::PlatformVerificationFlow>(); platform_verification_flow_->ChallengePlatformKey( - content::WebContents::FromRenderFrameHost(render_frame_host()), + content::WebContents::FromRenderFrameHost(&render_frame_host()), service_id, challenge, base::BindOnce(&CdmDocumentServiceImpl::OnPlatformChallenged, weak_factory_.GetWeakPtr(), std::move(callback))); @@ -262,7 +261,7 @@ if (version == kCurrentStorageIdVersion || version == kRequestLatestStorageIdVersion) { ComputeStorageId( - GetStorageIdSaltFromProfile(render_frame_host_), origin(), + GetStorageIdSaltFromProfile(&render_frame_host()), origin(), base::BindOnce(&CdmDocumentServiceImpl::OnStorageIdResponse, weak_factory_.GetWeakPtr(), std::move(callback))); return; @@ -291,7 +290,7 @@ // If we are in guest/incognito mode, then verified access is effectively // disabled. Profile* profile = - Profile::FromBrowserContext(render_frame_host_->GetBrowserContext()); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()); if (profile->IsOffTheRecord() || profile->IsGuestSession()) { std::move(callback).Run(false); return; @@ -329,7 +328,7 @@ } Profile* profile = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()); PrefService* user_prefs = profile->GetPrefs(); std::unique_ptr<CdmPrefData> pref_data = @@ -357,7 +356,7 @@ } PrefService* user_prefs = - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()) + Profile::FromBrowserContext(render_frame_host().GetBrowserContext()) ->GetPrefs(); CdmPrefServiceHelper::SetCdmClientToken(user_prefs, cdm_origin, client_token); }
diff --git a/chrome/browser/media/cdm_document_service_impl.h b/chrome/browser/media/cdm_document_service_impl.h index e18a196..faa1cd94 100644 --- a/chrome/browser/media/cdm_document_service_impl.h +++ b/chrome/browser/media/cdm_document_service_impl.h
@@ -40,10 +40,6 @@ content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<media::mojom::CdmDocumentService> receiver); - CdmDocumentServiceImpl( - content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<media::mojom::CdmDocumentService> receiver); - // media::mojom::CdmDocumentService implementation. void ChallengePlatform(const std::string& service_id, const std::string& challenge, @@ -67,6 +63,10 @@ #endif // BUILDFLAG(IS_WIN) private: + CdmDocumentServiceImpl( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<media::mojom::CdmDocumentService> receiver); + // |this| can only be destructed as a DocumentService. ~CdmDocumentServiceImpl() final; @@ -100,7 +100,6 @@ bool has_reported_significant_playback_ = false; #endif - const raw_ptr<content::RenderFrameHost> render_frame_host_; base::WeakPtrFactory<CdmDocumentServiceImpl> weak_factory_{this}; };
diff --git a/chrome/browser/media/output_protection_impl.cc b/chrome/browser/media/output_protection_impl.cc index c27ed1e..69c80d7c 100644 --- a/chrome/browser/media/output_protection_impl.cc +++ b/chrome/browser/media/output_protection_impl.cc
@@ -22,19 +22,19 @@ // OutputProtectionProxy requires to run on the UI thread. DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - DCHECK(render_frame_host); + CHECK(render_frame_host); // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new OutputProtectionImpl(render_frame_host, std::move(receiver)); + new OutputProtectionImpl(*render_frame_host, std::move(receiver)); } OutputProtectionImpl::OutputProtectionImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::OutputProtection> receiver) : DocumentService(render_frame_host, std::move(receiver)), - render_process_id_(render_frame_host->GetProcess()->GetID()), - render_frame_id_(render_frame_host->GetRoutingID()) {} + render_process_id_(render_frame_host.GetProcess()->GetID()), + render_frame_id_(render_frame_host.GetRoutingID()) {} OutputProtectionImpl::~OutputProtectionImpl() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chrome/browser/media/output_protection_impl.h b/chrome/browser/media/output_protection_impl.h index 7ab6544d..e39f7aadd 100644 --- a/chrome/browser/media/output_protection_impl.h +++ b/chrome/browser/media/output_protection_impl.h
@@ -25,16 +25,16 @@ content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<media::mojom::OutputProtection> receiver); - OutputProtectionImpl( - content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<media::mojom::OutputProtection> receiver); - // media::mojom::OutputProtection implementation. void QueryStatus(QueryStatusCallback callback) final; void EnableProtection(uint32_t desired_protection_mask, EnableProtectionCallback callback) final; private: + OutputProtectionImpl( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<media::mojom::OutputProtection> receiver); + // |this| can only be destructed as a DocumentService. ~OutputProtectionImpl() final;
diff --git a/chrome/browser/navigation_predictor/anchor_element_preloader.cc b/chrome/browser/navigation_predictor/anchor_element_preloader.cc index 0871532..272a214 100644 --- a/chrome/browser/navigation_predictor/anchor_element_preloader.cc +++ b/chrome/browser/navigation_predictor/anchor_element_preloader.cc
@@ -36,7 +36,7 @@ AnchorElementPreloader::~AnchorElementPreloader() = default; AnchorElementPreloader::AnchorElementPreloader( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::AnchorElementInteractionHost> receiver) : content::DocumentService<blink::mojom::AnchorElementInteractionHost>( render_frame_host, @@ -46,15 +46,16 @@ content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::AnchorElementInteractionHost> receiver) { + CHECK(render_frame_host); // The object is bound to the lifetime of the |render_frame_host| and the mojo // connection. See DocumentService for details. - new AnchorElementPreloader(render_frame_host, std::move(receiver)); + new AnchorElementPreloader(*render_frame_host, std::move(receiver)); } void AnchorElementPreloader::OnPointerDown(const GURL& target) { content::PreloadingData* preloading_data = content::PreloadingData::GetOrCreateForWebContents( - content::WebContents::FromRenderFrameHost(render_frame_host())); + content::WebContents::FromRenderFrameHost(&render_frame_host())); url::SchemeHostPort scheme_host_port(target); content::PreloadingURLMatchCallback match_callback = base::BindRepeating(is_match_for_preconnect, scheme_host_port); @@ -70,7 +71,7 @@ content::PreloadingType::kPreconnect, match_callback); if (!prefetch::IsSomePreloadingEnabled( - *Profile::FromBrowserContext(render_frame_host()->GetBrowserContext()) + *Profile::FromBrowserContext(render_frame_host().GetBrowserContext()) ->GetPrefs())) { attempt->SetEligibility( content::PreloadingEligibility::kPreloadingDisabled); @@ -78,7 +79,7 @@ } auto* loading_predictor = predictors::LoadingPredictorFactory::GetForProfile( - Profile::FromBrowserContext(render_frame_host()->GetBrowserContext())); + Profile::FromBrowserContext(render_frame_host().GetBrowserContext())); if (!loading_predictor) { attempt->SetEligibility(ToPreloadingEligibility( ChromePreloadingEligibility::kUnableToGetLoadingPredictor));
diff --git a/chrome/browser/navigation_predictor/anchor_element_preloader.h b/chrome/browser/navigation_predictor/anchor_element_preloader.h index 12c1d8d..91d6e66b 100644 --- a/chrome/browser/navigation_predictor/anchor_element_preloader.h +++ b/chrome/browser/navigation_predictor/anchor_element_preloader.h
@@ -48,7 +48,7 @@ private: AnchorElementPreloader( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::AnchorElementInteractionHost> receiver);
diff --git a/chrome/browser/navigation_predictor/navigation_predictor.cc b/chrome/browser/navigation_predictor/navigation_predictor.cc index 4e855de..7726ef6 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor.cc +++ b/chrome/browser/navigation_predictor/navigation_predictor.cc
@@ -36,15 +36,15 @@ // The maximum number of clicks to track in a single navigation. size_t kMaxClicksTracked = 10; -bool IsPrerendering(content::RenderFrameHost* render_frame_host) { - return render_frame_host->GetLifecycleState() == +bool IsPrerendering(content::RenderFrameHost& render_frame_host) { + return render_frame_host.GetLifecycleState() == content::RenderFrameHost::LifecycleState::kPrerendering; } } // namespace NavigationPredictor::NavigationPredictor( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<AnchorElementMetricsHost> receiver) : content::DocumentService<blink::mojom::AnchorElementMetricsHost>( render_frame_host, @@ -57,7 +57,7 @@ DCHECK(!IsPrerendering(render_frame_host)); ukm_recorder_ = ukm::UkmRecorder::Get(); - ukm_source_id_ = render_frame_host->GetMainFrame()->GetPageUkmSourceId(); + ukm_source_id_ = render_frame_host.GetMainFrame()->GetPageUkmSourceId(); } NavigationPredictor::~NavigationPredictor() { @@ -67,8 +67,9 @@ void NavigationPredictor::Create( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::AnchorElementMetricsHost> receiver) { + CHECK(render_frame_host); DCHECK(base::FeatureList::IsEnabled(blink::features::kNavigationPredictor)); - DCHECK(!IsPrerendering(render_frame_host)); + DCHECK(!IsPrerendering(*render_frame_host)); // Only valid for the main frame. if (render_frame_host->GetParentOrOuterDocument()) @@ -86,7 +87,7 @@ // The object is bound to the lifetime of the |render_frame_host| and the mojo // connection. See DocumentService for details. - new NavigationPredictor(render_frame_host, std::move(receiver)); + new NavigationPredictor(*render_frame_host, std::move(receiver)); } int NavigationPredictor::GetBucketMinForPageMetrics(int value) const { @@ -111,7 +112,7 @@ // exist. Note that NavigationPredictor only runs on the main frame, but get // reports for links from all same-process iframes. content::WebContents* web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host()); + content::WebContents::FromRenderFrameHost(&render_frame_host()); PageAnchorsMetricsObserver::AnchorsData::CreateForWebContents(web_contents); PageAnchorsMetricsObserver::AnchorsData* data = PageAnchorsMetricsObserver::AnchorsData::FromWebContents(web_contents); @@ -161,7 +162,7 @@ NavigationPredictorKeyedService* service = NavigationPredictorKeyedServiceFactory::GetForProfile( Profile::FromBrowserContext( - render_frame_host()->GetBrowserContext())); + render_frame_host().GetBrowserContext())); DCHECK(service); service->OnPredictionUpdated( web_contents, document_url,
diff --git a/chrome/browser/navigation_predictor/navigation_predictor.h b/chrome/browser/navigation_predictor/navigation_predictor.h index dab9f48..485876bc 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor.h +++ b/chrome/browser/navigation_predictor/navigation_predictor.h
@@ -35,19 +35,18 @@ class NavigationPredictor : public content::DocumentService<blink::mojom::AnchorElementMetricsHost> { public: - NavigationPredictor(content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<AnchorElementMetricsHost> receiver); - NavigationPredictor(const NavigationPredictor&) = delete; NavigationPredictor& operator=(const NavigationPredictor&) = delete; - ~NavigationPredictor() override; - // Create and bind NavigationPredictor. static void Create(content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<AnchorElementMetricsHost> receiver); private: + NavigationPredictor(content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<AnchorElementMetricsHost> receiver); + ~NavigationPredictor() override; + // blink::mojom::AnchorElementMetricsHost: void ReportAnchorElementClick( blink::mojom::AnchorElementClickPtr click) override;
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_unittest.cc b/chrome/browser/navigation_predictor/navigation_predictor_unittest.cc index 7dbb674..933a868 100644 --- a/chrome/browser/navigation_predictor/navigation_predictor_unittest.cc +++ b/chrome/browser/navigation_predictor/navigation_predictor_unittest.cc
@@ -60,8 +60,8 @@ SetupFieldTrial(); ChromeRenderViewHostTestHarness::SetUp(); - new NavigationPredictor(main_rfh(), - predictor_service_.BindNewPipeAndPassReceiver()); + NavigationPredictor::Create( + main_rfh(), predictor_service_.BindNewPipeAndPassReceiver()); } void SetupFieldTrial() {
diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn index f61e658..e491b80 100644 --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn
@@ -301,6 +301,7 @@ "//components/password_manager/core/browser:password_manager_java_enums", "//components/password_manager/core/browser:unified_password_manager_proto_java", "//components/sync/protocol:protocol_java", + "//content/public/android:content_main_dex_java", "//third_party/android_deps:guava_android_java", "//third_party/androidx:androidx_annotation_annotation_java", ]
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/FakePasswordStoreAndroidBackendTest.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/FakePasswordStoreAndroidBackendTest.java index 59146b6..a4d7d14 100644 --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/FakePasswordStoreAndroidBackendTest.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/FakePasswordStoreAndroidBackendTest.java
@@ -23,6 +23,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowLooper; +import org.robolectric.shadows.ShadowSystemClock; import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.CallbackHelper; @@ -41,7 +43,7 @@ * Tests for {@link FakePasswordStoreAndroidBackend}. */ @RunWith(BaseRobolectricTestRunner.class) -@Config(manifest = Config.NONE) +@Config(manifest = Config.NONE, shadows = {ShadowSystemClock.class}) public class FakePasswordStoreAndroidBackendTest { private FakePasswordStoreAndroidBackend mBackend; @@ -98,7 +100,7 @@ mBackend.addLogin(sPwdWithLocalData.toByteArray(), sTestAccount, successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); Map<Account, List<PasswordWithLocalData>> allPasswords = mBackend.getAllSavedPasswords(); assertThat(successCallback.getCallCount(), is(1)); assertThat(allPasswords.get(sTestAccount.get()), hasSize(1)); @@ -112,6 +114,7 @@ PayloadCallbackHelper<byte[]> successCallback = new PayloadCallbackHelper<>(); mBackend.getAllLogins(sTestAccount, successCallback::notifyCalled, unexpected -> fail()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); ListPasswordsResult actualPasswords = parseListPasswordResultOrFail(successCallback.getOnlyPayloadBlocking()); ListPasswordsResult expectedPasswords = @@ -131,6 +134,7 @@ mBackend.getAutofillableLogins( sTestAccount, successCallback::notifyCalled, unexpected -> fail()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); ListPasswordsResult actualPasswords = parseListPasswordResultOrFail(successCallback.getOnlyPayloadBlocking()); ListPasswordsResult expectedPasswords = @@ -150,6 +154,7 @@ sPwdWithLocalData.getPasswordSpecificsData().getSignonRealm(), sTestAccount, successCallback::notifyCalled, unexpected -> fail()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); ListPasswordsResult actualPasswords = parseListPasswordResultOrFail(successCallback.getOnlyPayloadBlocking()); ListPasswordsResult expectedPasswords = @@ -181,7 +186,7 @@ mBackend.updateLogin(updatedPwdWithLocalData.toByteArray(), sTestAccount, successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); Map<Account, List<PasswordWithLocalData>> allPasswords = mBackend.getAllSavedPasswords(); assertThat(successCallback.getCallCount(), is(1)); assertThat(allPasswords.get(sTestAccount.get()), hasSize(3)); @@ -197,25 +202,21 @@ mBackend.removeLogin(sPasswordData.toByteArray(), sTestAccount, successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); Map<Account, List<PasswordWithLocalData>> allPasswords = mBackend.getAllSavedPasswords(); assertThat(successCallback.getCallCount(), is(1)); assertThat(allPasswords.get(sTestAccount.get()), hasSize(2)); assertThat(allPasswords, hasEntry(is(sTestAccount.get()), not(hasItem(sPwdWithLocalData)))); } - private void fillPasswordStore() throws TimeoutException { - CallbackHelper successCallback = new CallbackHelper(); - - mBackend.addLogin(sPwdWithLocalData.toByteArray(), sTestAccount, - successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + private void fillPasswordStore() { + mBackend.addLogin( + sPwdWithLocalData.toByteArray(), sTestAccount, () -> {}, unexpected -> fail()); mBackend.addLogin(sPwdWithLocalDataBlocklisted.toByteArray(), sTestAccount, - successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + () -> {}, unexpected -> fail()); mBackend.addLogin(sPwdWithLocalDataNoSignonRealm.toByteArray(), sTestAccount, - successCallback::notifyCalled, unexpected -> fail()); - successCallback.waitForCallback(successCallback.getCallCount()); + () -> {}, unexpected -> fail()); + ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); } private static @Nullable ListPasswordsResult parseListPasswordResultOrFail(
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/utils/FakePasswordStoreAndroidBackend.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/utils/FakePasswordStoreAndroidBackend.java index 3988935..98b779e 100644 --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/utils/FakePasswordStoreAndroidBackend.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/tests/utils/FakePasswordStoreAndroidBackend.java
@@ -15,12 +15,12 @@ import org.chromium.base.Predicate; import org.chromium.base.task.PostTask; import org.chromium.base.task.SequencedTaskRunner; -import org.chromium.base.task.TaskTraits; import org.chromium.chrome.browser.password_manager.AndroidBackendErrorType; import org.chromium.chrome.browser.password_manager.PasswordStoreAndroidBackend; import org.chromium.components.password_manager.core.browser.proto.ListPasswordsResult; import org.chromium.components.password_manager.core.browser.proto.PasswordWithLocalData; import org.chromium.components.sync.protocol.PasswordSpecificsData; +import org.chromium.content_public.browser.UiThreadTaskTraits; import java.util.ArrayList; import java.util.HashMap; @@ -34,7 +34,7 @@ public class FakePasswordStoreAndroidBackend implements PasswordStoreAndroidBackend { private final Map<Account, List<PasswordWithLocalData>> mSavedPasswords = new HashMap<>(); private SequencedTaskRunner mTaskRunner = - PostTask.createSequencedTaskRunner(TaskTraits.THREAD_POOL); + PostTask.createSequencedTaskRunner(UiThreadTaskTraits.USER_BLOCKING); public static final Account sLocalDefaultAccount = new Account("Test user", "Local");
diff --git a/chrome/browser/payments/payment_request_factory.cc b/chrome/browser/payments/payment_request_factory.cc index c6e9860..fcfa0cb 100644 --- a/chrome/browser/payments/payment_request_factory.cc +++ b/chrome/browser/payments/payment_request_factory.cc
@@ -66,7 +66,7 @@ auto display_manager = delegate->GetDisplayManager()->GetWeakPtr(); // PaymentRequest is a DocumentService, whose lifetime is managed by the // RenderFrameHost passed in here. - new PaymentRequest(render_frame_host, std::move(delegate), + new PaymentRequest(*render_frame_host, std::move(delegate), std::move(display_manager), std::move(receiver), web_contents_manager->transaction_mode(), /*observer_for_testing=*/nullptr);
diff --git a/chrome/browser/policy/policy_prefs_browsertest.cc b/chrome/browser/policy/policy_prefs_browsertest.cc index 6a0b78c0..4ee2aac0 100644 --- a/chrome/browser/policy/policy_prefs_browsertest.cc +++ b/chrome/browser/policy/policy_prefs_browsertest.cc
@@ -136,7 +136,8 @@ // failure/flakiness. // IMPORTANT: Please add hendrich@chromium.org on any related bugs when // disabling this test. -IN_PROC_BROWSER_TEST_P(ChunkedPolicyPrefsTest, PolicyToPrefsMapping) { +// TODO(crbug.com/1341434): Re-enable this test +IN_PROC_BROWSER_TEST_P(ChunkedPolicyPrefsTest, DISABLED_PolicyToPrefsMapping) { #if !BUILDFLAG(IS_CHROMEOS_ASH) policy::FakeBrowserDMTokenStorage storage; policy::BrowserDMTokenStorage::SetForTesting(&storage); @@ -177,8 +178,7 @@ } }; -// TODO(crbug.com/1341434): Re-enable this test -IN_PROC_BROWSER_TEST_F(SigninPolicyPrefsTest, DISABLED_PolicyToPrefsMapping) { +IN_PROC_BROWSER_TEST_F(SigninPolicyPrefsTest, PolicyToPrefsMapping) { PrefService* signin_profile_prefs = ash::ProfileHelper::GetSigninProfile()->GetPrefs();
diff --git a/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.cc b/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.cc index 10b14eb..4e15f41 100644 --- a/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.cc +++ b/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.cc
@@ -6,6 +6,8 @@ #include <vector> +#include "base/containers/contains.h" +#include "base/containers/fixed_flat_set.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/trace_event/base_tracing.h" @@ -284,16 +286,28 @@ return true; } +bool BaseSearchPrefetchRequest::ShouldBeCancelledOnResultChanges() const { + static constexpr auto CancelableStatus = + base::MakeFixedFlatSet<SearchPrefetchStatus>({ + SearchPrefetchStatus::kInFlight, + SearchPrefetchStatus::kCanBeServed, + SearchPrefetchStatus::kPrerendered, + }); + return base::Contains(CancelableStatus, current_status_); +} + void BaseSearchPrefetchRequest::CancelPrefetch() { DCHECK(current_status_ == SearchPrefetchStatus::kInFlight || - current_status_ == SearchPrefetchStatus::kCanBeServed); + current_status_ == SearchPrefetchStatus::kCanBeServed || + current_status_ == SearchPrefetchStatus::kPrerendered); current_status_ = SearchPrefetchStatus::kRequestCancelled; StopPrefetch(); StopPrerender(); } void BaseSearchPrefetchRequest::MaybeStartPrerenderSearchResult( - PrerenderManager& prerender_manager) { + PrerenderManager& prerender_manager, + const GURL& prerender_url) { // Prerendering is supposed to be requested after prefetch received a servable // response and take over the prefetched main resource response. When // prerendering is requested while prefetching is still running, it has to @@ -319,35 +333,52 @@ // reuse the response and will fail for sure, so this does not start // prerendering. return; + case SearchPrefetchStatus::kPrerendered: + case SearchPrefetchStatus::kPrerenderedAndClicked: + // Case 4: Prerender has started and taken the response away. No action is + // needed. + return; case SearchPrefetchStatus::kServed: + case SearchPrefetchStatus::kPrerenderActivated: NOTREACHED(); } + // maintain a weak ptr so that this can cancel prerendering when + // needed. + prerender_url_ = prerender_url; + prerender_manager_ = prerender_manager.GetWeakPtr(); + if (servable_response_code_received_) { // Case 3, 4: This can start prerendering because it has received a // response. + // TODO(https://crbug.com/1295170): Do not start prerendering if this + // request is about to expire. prerender_manager.StartPrerenderSearchResult(prefetch_search_terms_, - prefetch_url_); - } else { - // Case 2: this will start prerendering after it receives a - // servable response. - prerender_manager_ = prerender_manager.GetWeakPtr(); + prerender_url); } } void BaseSearchPrefetchRequest::ErrorEncountered() { DCHECK(current_status_ == SearchPrefetchStatus::kInFlight || current_status_ == SearchPrefetchStatus::kCanBeServed || - current_status_ == SearchPrefetchStatus::kCanBeServedAndUserClicked); + current_status_ == SearchPrefetchStatus::kCanBeServedAndUserClicked || + current_status_ == SearchPrefetchStatus::kPrerendered); current_status_ = SearchPrefetchStatus::kRequestFailed; StopPrefetch(); + StopPrerender(); } void BaseSearchPrefetchRequest::OnServableResponseCodeReceived() { servable_response_code_received_ = true; + // TODO(https://crbug.com/1295170): Do not start prerendering if this request + // is about to expire. if (prerender_manager_) { - prerender_manager_->StartPrerenderSearchResult(prefetch_search_terms_, - prefetch_url_); + // Start prerender asynchronously, so that the request can prepare the data + // pipe completely. + base::SequencedTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(&PrerenderManager::StartPrerenderSearchResult, + prerender_manager_, prefetch_search_terms_, + prerender_url_)); } } @@ -356,8 +387,21 @@ current_status_ = SearchPrefetchStatus::kCanBeServed; } +void BaseSearchPrefetchRequest::MarkPrefetchAsPrerendered() { + DCHECK(current_status_ == SearchPrefetchStatus::kCanBeServed || + current_status_ == SearchPrefetchStatus::kComplete); + current_status_ = SearchPrefetchStatus::kPrerendered; +} + +void BaseSearchPrefetchRequest::MarkPrefetchAsPrerenderActivated() { + DCHECK(current_status_ == SearchPrefetchStatus::kPrerenderedAndClicked || + current_status_ == SearchPrefetchStatus::kPrerendered); + current_status_ = SearchPrefetchStatus::kPrerenderActivated; +} + void BaseSearchPrefetchRequest::ResetPrerenderUpgrader() { prerender_manager_ = nullptr; + prerender_url_ = GURL(); } void BaseSearchPrefetchRequest::MarkPrefetchAsComplete() { @@ -368,8 +412,13 @@ } void BaseSearchPrefetchRequest::MarkPrefetchAsClicked() { - DCHECK(current_status_ == SearchPrefetchStatus::kCanBeServed); - current_status_ = SearchPrefetchStatus::kCanBeServedAndUserClicked; + DCHECK(current_status_ == SearchPrefetchStatus::kCanBeServed || + current_status_ == SearchPrefetchStatus::kPrerendered); + if (current_status_ == SearchPrefetchStatus::kCanBeServed) { + current_status_ = SearchPrefetchStatus::kCanBeServedAndUserClicked; + } else if (current_status_ == SearchPrefetchStatus::kPrerendered) { + current_status_ = SearchPrefetchStatus::kPrerenderedAndClicked; + } } void BaseSearchPrefetchRequest::MarkPrefetchAsServed() { @@ -388,5 +437,6 @@ if (prerender_manager_) { prerender_manager_->StopPrerenderSearchResult(prefetch_search_terms_); prerender_manager_ = nullptr; + prerender_url_ = GURL(); } }
diff --git a/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.h b/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.h index c38f13c..a718cec 100644 --- a/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.h +++ b/chrome/browser/prefetch/search_prefetch/base_search_prefetch_request.h
@@ -16,7 +16,10 @@ class Profile; class SearchPrefetchURLLoader; -// Any updates to this class need to be propagated to enums.xml. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// Any updates to this class need to be propagated to SearchPrefetchFinalStatus +// in enums.xml. enum class SearchPrefetchStatus { // The request has not started yet. This status should ideally never be // recorded as Start() should be called on the same stack as creating the @@ -39,11 +42,23 @@ kComplete = 4, // The request hit an error and cannot be served. kRequestFailed = 5, - // The request was cancelled before completion. This is terminal state. + // The request was cancelled before completion. This is a terminal state. kRequestCancelled = 6, - // The request was served to the navigation stack. This is terminal state. + // The request was served to the navigation stack. This is a terminal state. kServed = 7, - kMaxValue = kServed, + // The request was served to the prerender navigation stack. It may move to + // |kPrerenderedAndClicked| when the user navigates to the result in omnibox + // or |kRequestCancelled| if the user closes omnibox. + kPrerendered = 8, + // Similar to |kCanBeServedAndUserClicked|, the request was served to the + // prerender navigation stack, and is marked as being + // clicked by the user. It is expected to move to |kPrerenderActivated| after + // the corresponding prerender is fully activated by the user. + kPrerenderedAndClicked = 9, + // The request was served to the prerender navigation stack, and the prerender + // page is fully activated by the user. This is a terminal state. + kPrerenderActivated = 10, + kMaxValue = kPrerenderActivated, }; // A class representing a prefetch used by the Search Prefetch Service. @@ -79,9 +94,14 @@ // Marks a prefetch as canceled and stops any ongoing fetch. void CancelPrefetch(); + // Returns true if this request should be canceled when the Autocomplete + // suggestion no longer lists this search prefetch. + bool ShouldBeCancelledOnResultChanges() const; + // Called when SearchPrefetchService receives the hint that this prefetch // request can be upgraded to a prerender attempt. - void MaybeStartPrerenderSearchResult(PrerenderManager& prerender_manager); + void MaybeStartPrerenderSearchResult(PrerenderManager& prerender_manager, + const GURL& prerender_url); // Called when the prefetch encounters an error. void ErrorEncountered(); @@ -102,9 +122,17 @@ void MarkPrefetchAsClicked(); // Update the status when the request is actually served to the navigation - // stack. + // stack of a real navigation request. void MarkPrefetchAsServed(); + // Updates the status when the request is served to a prerendering navigation + // stack. Note that after this point, this request cannot be served to a real + // navigation anymore. + void MarkPrefetchAsPrerendered(); + + // Updates the status when the prerendering page it is serving was activated. + void MarkPrefetchAsPrerenderActivated(); + // Called when AutocompleteMatches changes. It resets PrerenderUpgrader. // And if the AutocompleteMatches suggests to prerender a search result, // `MaybeStartPrerenderSearchResult` will be called soon. @@ -151,6 +179,13 @@ // The URL to prefetch the search terms from. GURL prefetch_url_; + // The URL to prerender the search terms from. + // `prerender_url_` can be different from `prefetch_url_`. The latter is used + // to send network requests, so it may contain a special parameter for the + // server to recognize that it is a prefetch request, but the former does not + // send network requests, i.e. this parameter is not required. + GURL prerender_url_; + // Whether this is for a navigation-time prefetch. bool navigation_prefetch_;
diff --git a/chrome/browser/prefetch/search_prefetch/search_prefetch_service.cc b/chrome/browser/prefetch/search_prefetch/search_prefetch_service.cc index e6788c2..5ca4380 100644 --- a/chrome/browser/prefetch/search_prefetch/search_prefetch_service.cc +++ b/chrome/browser/prefetch/search_prefetch/search_prefetch_service.cc
@@ -4,11 +4,15 @@ #include "chrome/browser/prefetch/search_prefetch/search_prefetch_service.h" +#include <iterator> +#include <memory> + #include "base/bind.h" #include "base/callback.h" #include "base/containers/contains.h" #include "base/json/values_util.h" #include "base/location.h" +#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" #include "base/values.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" @@ -43,13 +47,16 @@ namespace { -// Recomputes the destination URL with the added prefetch information for -// |match| (does not modify |destination_url|). -GURL GetPrefetchURLFromMatch(const AutocompleteMatch& match, - TemplateURLService* template_url_service) { +// Recomputes the destination URL for |match| with the updated prefetch +// information (does not modify |destination_url|). Passing true to +// |attach_prefetch_information| if the URL request will be sent to network, +// otherwise set to false if it is for client-internal use only. +GURL GetPreloadURLFromMatch(const AutocompleteMatch& match, + TemplateURLService* template_url_service, + bool attach_prefetch_information) { // Copy the search term args, so we can modify them for just the prefetch. auto search_terms_args = *(match.search_terms_args); - search_terms_args.is_prefetch = true; + search_terms_args.is_prefetch = attach_prefetch_information; return GURL(template_url_service->GetDefaultSearchProvider() ->url_ref() .ReplaceSearchTerms(search_terms_args, @@ -80,13 +87,18 @@ struct SearchPrefetchServingReasonRecorder { public: - SearchPrefetchServingReasonRecorder() = default; + explicit SearchPrefetchServingReasonRecorder(bool for_prerender) + : for_prerender_(for_prerender) {} ~SearchPrefetchServingReasonRecorder() { - UMA_HISTOGRAM_ENUMERATION("Omnibox.SearchPrefetch.PrefetchServingReason", - reason_); + base::UmaHistogramEnumeration( + for_prerender_ + ? "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender" + : "Omnibox.SearchPrefetch.PrefetchServingReason", + reason_); } SearchPrefetchServingReason reason_ = SearchPrefetchServingReason::kServed; + const bool for_prerender_ = false; }; void RecordFinalStatus(SearchPrefetchStatus status, bool navigation_prefetch) { @@ -201,7 +213,8 @@ // If the prefetch is for navigation it can replace unservable statuses. if (!navigation_prefetch || status == SearchPrefetchStatus::kCanBeServed || status == SearchPrefetchStatus::kCanBeServedAndUserClicked || - status == SearchPrefetchStatus::kComplete) { + status == SearchPrefetchStatus::kComplete || + status == SearchPrefetchStatus::kPrerendered) { recorder.reason_ = SearchPrefetchEligibilityReason::kAttemptedQueryRecently; return false; @@ -265,7 +278,9 @@ } BaseSearchPrefetchRequest& prefetch = *prefetches_[match_search_terms]; prefetch.RecordClickTime(); - if (prefetch.current_status() != SearchPrefetchStatus::kCanBeServed) { + + if (prefetch.current_status() != SearchPrefetchStatus::kCanBeServed && + prefetch.current_status() != SearchPrefetchStatus::kPrerendered) { return; } prefetch.MarkPrefetchAsClicked(); @@ -275,9 +290,56 @@ const GURL& updated_prerendered_url, const GURL& prerendering_url) { DCHECK(prerender_utils::IsSearchSuggestionPrerenderEnabled()); + + // We do not need this method while running the search prefetch/prerender + // unification experiment. + DCHECK(!SearchPrefetchUpgradeToPrerenderIsEnabled()); AddCacheEntry(updated_prerendered_url, prerendering_url); } +void SearchPrefetchService::OnPrerenderedRequestUsed( + const std::u16string& search_terms, + const GURL& navigation_url) { + DCHECK(SearchPrefetchUpgradeToPrerenderIsEnabled()); + + auto request_it = prefetches_.find(search_terms); + DCHECK(request_it != prefetches_.end()); + if (request_it == prefetches_.end()) { + // TODO(https://crbug.com/1295170): It should be rare but the request can be + // deleted by timer before chrome activates the page. Add some metrics to + // understand the possibility. + return; + } + AddCacheEntry(navigation_url, request_it->second->prefetch_url()); + request_it->second->MarkPrefetchAsPrerenderActivated(); + prefetches_.erase(request_it); +} + +std::unique_ptr<SearchPrefetchURLLoader> +SearchPrefetchService::TakePrerenderFromMemoryCache( + const network::ResourceRequest& tentative_resource_request) { + SearchPrefetchServingReasonRecorder recorder{/*for_prerender=*/true}; + auto iter = + RetrieveSearchTermsInMemoryCache(tentative_resource_request, recorder); + if (iter == prefetches_.end()) { + return nullptr; + } + + // TODO(https://crbug.com/1295170): Do not use the prefetched response if it + // is about to expire. + DCHECK_NE(iter->second->current_status(), + SearchPrefetchStatus::kRequestFailed); + recorder.reason_ = SearchPrefetchServingReason::kPrerendered; + + iter->second->MarkPrefetchAsPrerendered(); + std::unique_ptr<SearchPrefetchURLLoader> response = + iter->second->TakeSearchPrefetchURLLoader(); + return response; + // Do not remove the corresponding entry from `prefetches_` for now, to avoid + // prefetching the same response over again. The entry will be removed on + // prerendering activation or other cases. +} + absl::optional<SearchPrefetchStatus> SearchPrefetchService::GetSearchPrefetchStatusForTesting( std::u16string search_terms) { @@ -290,96 +352,12 @@ SearchPrefetchService::TakePrefetchResponseFromMemoryCache( const network::ResourceRequest& tentative_resource_request) { const GURL& navigation_url = tentative_resource_request.url; - SearchPrefetchServingReasonRecorder recorder; + SearchPrefetchServingReasonRecorder recorder(/*for_prerender=*/false); - auto* template_url_service = - TemplateURLServiceFactory::GetForProfile(profile_); - if (!template_url_service || - !template_url_service->GetDefaultSearchProvider()) { - recorder.reason_ = SearchPrefetchServingReason::kSearchEngineNotValid; - return nullptr; - } - - // The user may have disabled JS since the prefetch occured. - if (!profile_->GetPrefs() || - !profile_->GetPrefs()->GetBoolean(prefs::kWebKitJavascriptEnabled)) { - recorder.reason_ = SearchPrefetchServingReason::kJavascriptDisabled; - return nullptr; - } - - auto* content_settings = - HostContentSettingsMapFactory::GetForProfile(profile_); - if (!content_settings || - content_settings->GetContentSetting(navigation_url, navigation_url, - ContentSettingsType::JAVASCRIPT) == - CONTENT_SETTING_BLOCK) { - recorder.reason_ = SearchPrefetchServingReason::kJavascriptDisabled; - return nullptr; - } - - std::u16string search_terms; - template_url_service->GetDefaultSearchProvider()->ExtractSearchTermsFromURL( - navigation_url, template_url_service->search_terms_data(), &search_terms); - - if (search_terms.length() == 0) { - recorder.reason_ = SearchPrefetchServingReason::kNotDefaultSearchWithTerms; - return nullptr; - } - - const auto& iter = prefetches_.find(search_terms); - + auto iter = + RetrieveSearchTermsInMemoryCache(tentative_resource_request, recorder); if (iter == prefetches_.end()) { - recorder.reason_ = SearchPrefetchServingReason::kNoPrefetch; - return nullptr; - } - - // Verify that the URL is the same origin as the prefetch URL. While other - // checks should address this by clearing prefetches on user changes to - // default search, it is paramount to never serve content from one origin to - // another. - if (url::Origin::Create(navigation_url) != - url::Origin::Create(iter->second->prefetch_url())) { - recorder.reason_ = - SearchPrefetchServingReason::kPrefetchWasForDifferentOrigin; - return nullptr; - } - - if (iter->second->current_status() == - SearchPrefetchStatus::kRequestCancelled) { - recorder.reason_ = SearchPrefetchServingReason::kRequestWasCancelled; - return nullptr; - } - - if (iter->second->current_status() == SearchPrefetchStatus::kRequestFailed) { - recorder.reason_ = SearchPrefetchServingReason::kRequestFailed; - return nullptr; - } - - // POST requests are not supported since they are non-idempotent. Only support - // GET. - if (tentative_resource_request.method != - net::HttpRequestHeaders::kGetMethod) { - recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; - return nullptr; - } - - // If the client requests disabling, bypassing, or validating cache, don't - // return a prefetch. - // These are used mostly for reloads and dev tools. - if (tentative_resource_request.load_flags & net::LOAD_BYPASS_CACHE || - tentative_resource_request.load_flags & net::LOAD_DISABLE_CACHE || - tentative_resource_request.load_flags & net::LOAD_VALIDATE_CACHE) { - recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; - return nullptr; - } - - // Link clicks should not be served with a prefetch due to results page nth - // page matching the URL pattern of the DSE. - if (ui::PageTransitionCoreTypeIs( - static_cast<ui::PageTransition>( - tentative_resource_request.transition_type), - ui::PAGE_TRANSITION_LINK)) { - recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; + DCHECK_NE(recorder.reason_, SearchPrefetchServingReason::kServed); return nullptr; } @@ -398,7 +376,7 @@ if (navigation_url != iter->second->prefetch_url()) AddCacheEntry(navigation_url, iter->second->prefetch_url()); - DeletePrefetch(search_terms); + DeletePrefetch(iter->first); return response; } @@ -462,9 +440,7 @@ const auto& search_terms = kv_pair.first; auto& prefetch_request = kv_pair.second; - if (prefetch_request->current_status() != SearchPrefetchStatus::kInFlight && - prefetch_request->current_status() != - SearchPrefetchStatus::kCanBeServed) { + if (!prefetch_request->ShouldBeCancelledOnResultChanges()) { // Reset all pending prerenders. It will be set soon if service still // wants clients to prerender a SearchTerms. // TODO(https://crbug.com/1295170): Unlike prefetch, which does not @@ -511,7 +487,8 @@ } if (BaseSearchProvider::ShouldPrefetch(match)) { - MaybePrefetchURL(GetPrefetchURLFromMatch(match, template_url_service)); + MaybePrefetchURL(GetPreloadURLFromMatch( + match, template_url_service, /*attach_prefetch_information=*/true)); } if (prerender_utils::IsSearchSuggestionPrerenderEnabled() && BaseSearchProvider::ShouldPrerender(match)) { @@ -548,7 +525,8 @@ .prefetch_likely_navigations) { return; } - MaybePrefetchURL(GetPrefetchURLFromMatch(match, template_url_service), + MaybePrefetchURL(GetPreloadURLFromMatch(match, template_url_service, + /*attach_prefetch_information=*/true), /*navigation_prefetch=*/true); } @@ -740,7 +718,8 @@ const AutocompleteMatch& match, content::WebContents& web_contents, TemplateURLService* template_url_service) { - GURL prefetch_url = GetPrefetchURLFromMatch(match, template_url_service); + GURL prefetch_url = GetPreloadURLFromMatch( + match, template_url_service, /*attach_prefetch_information=*/true); MaybePrefetchURL(prefetch_url); if (!BaseSearchProvider::ShouldPrerender(match)) return; @@ -751,7 +730,118 @@ PrerenderManager::CreateForWebContents(&web_contents); auto* prerender_manager = PrerenderManager::FromWebContents(&web_contents); DCHECK(prerender_manager); + + // Prerender URL needs not to contain the prefetch information to help + // servers to recognize prefetch traffic, because it should not send network + // requests. + GURL prerender_url = GetPreloadURLFromMatch( + match, template_url_service, /*attach_prefetch_information=*/false); prefetch_request_iter->second->MaybeStartPrerenderSearchResult( - *prerender_manager); + *prerender_manager, prerender_url); } } + +std::map<std::u16string, std::unique_ptr<BaseSearchPrefetchRequest>>::iterator +SearchPrefetchService::RetrieveSearchTermsInMemoryCache( + const network::ResourceRequest& tentative_resource_request, + SearchPrefetchServingReasonRecorder& recorder) { + const GURL& navigation_url = tentative_resource_request.url; + + auto* template_url_service = + TemplateURLServiceFactory::GetForProfile(profile_); + if (!template_url_service || + !template_url_service->GetDefaultSearchProvider()) { + recorder.reason_ = SearchPrefetchServingReason::kSearchEngineNotValid; + return prefetches_.end(); + } + + // The user may have disabled JS since the prefetch occurred. + if (!profile_->GetPrefs() || + !profile_->GetPrefs()->GetBoolean(prefs::kWebKitJavascriptEnabled)) { + recorder.reason_ = SearchPrefetchServingReason::kJavascriptDisabled; + return prefetches_.end(); + } + + auto* content_settings = + HostContentSettingsMapFactory::GetForProfile(profile_); + if (!content_settings || + content_settings->GetContentSetting(navigation_url, navigation_url, + ContentSettingsType::JAVASCRIPT) == + CONTENT_SETTING_BLOCK) { + recorder.reason_ = SearchPrefetchServingReason::kJavascriptDisabled; + return prefetches_.end(); + } + + std::u16string search_terms; + template_url_service->GetDefaultSearchProvider()->ExtractSearchTermsFromURL( + navigation_url, template_url_service->search_terms_data(), &search_terms); + + if (search_terms.length() == 0) { + recorder.reason_ = SearchPrefetchServingReason::kNotDefaultSearchWithTerms; + return prefetches_.end(); + } + + const auto& iter = prefetches_.find(search_terms); + + if (iter == prefetches_.end()) { + recorder.reason_ = SearchPrefetchServingReason::kNoPrefetch; + return prefetches_.end(); + } + + // Verify that the URL is the same origin as the prefetch URL. While other + // checks should address this by clearing prefetches on user changes to + // default search, it is paramount to never serve content from one origin to + // another. + if (url::Origin::Create(navigation_url) != + url::Origin::Create(iter->second->prefetch_url())) { + recorder.reason_ = + SearchPrefetchServingReason::kPrefetchWasForDifferentOrigin; + return prefetches_.end(); + } + + switch (iter->second->current_status()) { + case SearchPrefetchStatus::kRequestCancelled: + recorder.reason_ = SearchPrefetchServingReason::kRequestWasCancelled; + break; + case SearchPrefetchStatus::kRequestFailed: + recorder.reason_ = SearchPrefetchServingReason::kRequestFailed; + break; + case SearchPrefetchStatus::kPrerendered: + recorder.reason_ = SearchPrefetchServingReason::kPrerendered; + break; + default: + break; + } + if (recorder.reason_ != SearchPrefetchServingReason::kServed) + return prefetches_.end(); + + // POST requests are not supported since they are non-idempotent. Only support + // GET. + if (tentative_resource_request.method != + net::HttpRequestHeaders::kGetMethod) { + recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; + return prefetches_.end(); + } + + // If the client requests disabling, bypassing, or validating cache, don't + // return a prefetch. + // These are used mostly for reloads and dev tools. + if (tentative_resource_request.load_flags & net::LOAD_BYPASS_CACHE || + tentative_resource_request.load_flags & net::LOAD_DISABLE_CACHE || + tentative_resource_request.load_flags & net::LOAD_VALIDATE_CACHE) { + recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; + return prefetches_.end(); + } + + // Link clicks should not be served with a prefetch due to results page nth + // page matching the URL pattern of the DSE. + if (ui::PageTransitionCoreTypeIs( + static_cast<ui::PageTransition>( + tentative_resource_request.transition_type), + ui::PAGE_TRANSITION_LINK)) { + recorder.reason_ = SearchPrefetchServingReason::kPostReloadOrLink; + return prefetches_.end(); + } + + return iter; +}
diff --git a/chrome/browser/prefetch/search_prefetch/search_prefetch_service.h b/chrome/browser/prefetch/search_prefetch/search_prefetch_service.h index a58c873..1698476 100644 --- a/chrome/browser/prefetch/search_prefetch/search_prefetch_service.h +++ b/chrome/browser/prefetch/search_prefetch/search_prefetch_service.h
@@ -40,6 +40,12 @@ struct ResourceRequest; } +namespace { +struct SearchPrefetchServingReasonRecorder; +} + +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. // Any updates to this class need to be propagated to enums.xml. enum class SearchPrefetchEligibilityReason { // The prefetch was started. @@ -64,6 +70,8 @@ kMaxValue = kThrottled, }; +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. // Any updates to this class need to be propagated to enums.xml. enum class SearchPrefetchServingReason { // The prefetch was started. @@ -86,7 +94,9 @@ kNotServedOtherReason = 8, // The navigation was a POST request, reload or link navigation. kPostReloadOrLink = 9, - kMaxValue = kPostReloadOrLink, + // A prerender navigation request has taken this response away. + kPrerendered = 10, + kMaxValue = kPrerendered, }; class SearchPrefetchService : public KeyedService, @@ -138,12 +148,25 @@ // key : The URL displayed on the location bar, The prerendered // page changes the `prerendering_url` by updating some parameters, so it // differs from `prerendering_url`. - // value: The URL sent by a prerendering URL request. + // value: The URL sent by the corresponding prefetch request. // TODO(https://crbug.com/1295170): This is a workaround. Remove this method // after the unification work is done. void AddCacheEntryForPrerender(const GURL& updated_prerendered_url, const GURL& prerendering_url); + // Called by `SearchPrerenderTask` upon prerender activation. + void OnPrerenderedRequestUsed(const std::u16string& search_terms, + const GURL& navigation_url); + + // A prefetch hint can be upgraded to prerender hint. Once the upgrade + // happens, prerendering navigation requests reuse the prefetched response. + // Differing from TakePrefetchResponseFromMemoryCache, this shares a copy of + // the prefetched response without removing the response from MemoryCache, to + // stop this from starting another prefetch attempt after prerender takes the + // response away. + std::unique_ptr<SearchPrefetchURLLoader> TakePrerenderFromMemoryCache( + const network::ResourceRequest& tentative_resource_request); + // Reports the status of a prefetch for a given search term. absl::optional<SearchPrefetchStatus> GetSearchPrefetchStatusForTesting( std::u16string search_terms); @@ -191,6 +214,12 @@ bool LoadFromPrefs(); void SaveToPrefs() const; + // Retrieved the started prefetches by search_terms. + std::map<std::u16string, std::unique_ptr<BaseSearchPrefetchRequest>>::iterator + RetrieveSearchTermsInMemoryCache( + const network::ResourceRequest& tentative_resource_request, + SearchPrefetchServingReasonRecorder& recorder); + // Called when this receives preloadable hints, and iff the // SearchPrefetchUpgradeToPrerender feature is enabled. The feature is running // on the assumption that Prerender is triggered after Prefetch receives
diff --git a/chrome/browser/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc b/chrome/browser/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc index 6af0629..d14480c2 100644 --- a/chrome/browser/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc +++ b/chrome/browser/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc
@@ -10,6 +10,7 @@ #include "base/callback.h" #include "base/feature_list.h" #include "base/metrics/histogram_macros.h" +#include "chrome/browser/prefetch/search_prefetch/field_trial_settings.h" #include "chrome/browser/prefetch/search_prefetch/search_prefetch_service.h" #include "chrome/browser/prefetch/search_prefetch/search_prefetch_service_factory.h" #include "chrome/browser/prefetch/search_prefetch/search_prefetch_url_loader.h" @@ -40,9 +41,24 @@ return nullptr; } - // Only intercept main frame requests. + // Only intercept primary main frame and prerender main frame requests. content::RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); - if (!main_frame || main_frame->GetFrameTreeNodeId() != frame_tree_node_id) { + bool is_primary_main_frame_navigation = + main_frame && main_frame->GetFrameTreeNodeId() == frame_tree_node_id; + + // Use the is_outermost_main_frame flag instead of obtaining the + // corresponding RenderFrameHost via the `frame_tree_node_id` and checking + // whether it has no parent frame, since the multipage architecture allows a + // RenderFrameHost to be attached to another node, and we should avoid + // relying on this dependency. + bool can_activate_for_prerender = + SearchPrefetchUpgradeToPrerenderIsEnabled() && + tentative_resource_request.is_outermost_main_frame && + web_contents->IsPrerenderedFrame(frame_tree_node_id); + + // This is not a primary navigation, nor can prerender use the prefetched + // response. + if (!is_primary_main_frame_navigation && !can_activate_for_prerender) { return nullptr; } @@ -56,6 +72,10 @@ if (!service) return nullptr; + if (can_activate_for_prerender) { + return service->TakePrerenderFromMemoryCache(tentative_resource_request); + } + auto loader = service->TakePrefetchResponseFromMemoryCache(tentative_resource_request); if (loader)
diff --git a/chrome/browser/prefetch/search_prefetch/search_preload_unified_browsertest.cc b/chrome/browser/prefetch/search_prefetch/search_preload_unified_browsertest.cc index 63ca9a6a..2f8c156 100644 --- a/chrome/browser/prefetch/search_prefetch/search_preload_unified_browsertest.cc +++ b/chrome/browser/prefetch/search_prefetch/search_preload_unified_browsertest.cc
@@ -29,9 +29,11 @@ #include "components/policy/policy_constants.h" #include "components/search_engines/template_url_data.h" #include "components/search_engines/template_url_service.h" +#include "content/public/common/content_features.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/prerender_test_util.h" +#include "content/public/test/test_navigation_observer.h" #include "net/dns/mock_host_resolver.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gtest/include/gtest/gtest.h" @@ -39,7 +41,16 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/test/base/android/android_browser_test.h" #else // BUILDFLAG(IS_ANDROID) +#include "chrome/browser/autocomplete/chrome_autocomplete_scheme_classifier.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/location_bar/location_bar.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/omnibox/browser/autocomplete_controller.h" +#include "components/omnibox/browser/autocomplete_provider.h" +#include "components/omnibox/browser/omnibox_edit_model.h" +#include "components/omnibox/browser/omnibox_view.h" #endif // BUILDFLAG(IS_ANDROID) namespace { @@ -115,47 +126,28 @@ if (request.GetURL().spec().find("favicon") != std::string::npos) { return nullptr; } - if (request.GetURL().spec().find("failed_terms") != std::string::npos) { - std::unique_ptr<net::test_server::BasicHttpResponse> resp = - std::make_unique<net::test_server::BasicHttpResponse>(); - resp->set_code(net::HTTP_SERVICE_UNAVAILABLE); - return resp; - } - if (request.GetURL().spec().find("hang_response") != std::string::npos) { - return std::make_unique<net::test_server::HungResponse>(); - } - if (request.GetURL().spec().find("hang_body") != std::string::npos) { - base::StringPairs headers = {{"Content-Length", "100"}, - {"content-type", "text/html"}}; - return std::make_unique<net::test_server::HungAfterHeadersHttpResponse>( - headers); - } - std::unique_ptr<net::test_server::BasicHttpResponse> resp = - std::make_unique<net::test_server::BasicHttpResponse>(); - resp->set_code(net::HTTP_OK); - resp->set_content_type("text/html"); std::string content = R"( <html><body> PRERENDER: HI PREFETCH! \o/ </body></html> )"; - resp->set_content(content); - return resp; - } + base::StringPairs headers = { + {"Content-Length", base::NumberToString(content.length())}, + {"content-type", "text/html"}}; + bool is_invalid_response_body = + request.GetURL().spec().find("invalid_content") != std::string::npos; - GURL GetSearchUrl(const std::string& search_terms, - bool attach_prefetch_flag) { - // $1: the search terms that will be retrieved. - // $2: parameter for prefetch request. Should be &pf=cs if the url is - // expected to declare itself as a prefetch request. Otherwise it should be - // an empty string. - std::string url_template = "/search_page.html?q=$1$2&type=test"; - return search_engine_server_.GetURL( - kSearchDomain, - base::ReplaceStringPlaceholders( - url_template, {search_terms, attach_prefetch_flag ? "&pf=cs" : ""}, - nullptr)); + std::unique_ptr<DelayedResponse> resp = std::make_unique<DelayedResponse>( + this, service_deferral_type_, headers, + is_invalid_response_body ? "" : content); + + if (request.GetURL().spec().find("failed_terms") != std::string::npos) { + resp->set_code(net::HTTP_SERVICE_UNAVAILABLE); + return resp; + } + + return resp; } void TearDownOnMainThread() override { @@ -169,6 +161,26 @@ protected: enum class PrerenderHint { kEnabled, kDisabled }; enum class PrefetchHint { kEnabled, kDisabled }; + enum class UrlType { + // For URLs that will be used for a real navigation. + kReal, + // For URLs that will be used for prefetch requests. + kPrefetch, + // For URLs that will be used for prerender requests. + kPrerender + }; + + enum class DeferralType { + // Do not defer HTTP responses. + kNoDeferral = 0, + // Ddefer the response header only. + kDeferHeader = 1, + // Only defer the response body. + kDeferBody = 2, + // Defer dispatching response head until a explicit signal, and then block + // the response until receiving the next signal. + kDeferHeaderThenBody = 3, + }; void SetUpContext() { // Have SearchPrefetchService and PrerenderManager prepared. @@ -181,6 +193,29 @@ ASSERT_NE(nullptr, search_prefetch_service_); } + GURL GetSearchUrl(const std::string& search_terms, UrlType url_type) { + // $1: the search terms that will be retrieved. + // $2: parameter for prefetch request. Should be &pf=cs if the url is + // expected to declare itself as a prefetch request. Otherwise it should be + // an empty string. + std::string url_template = "/search_page.html?q=$1$2&type=test"; + bool attach_prefetch_flag; + switch (url_type) { + case UrlType::kReal: + case UrlType::kPrerender: + attach_prefetch_flag = false; + break; + case UrlType::kPrefetch: + attach_prefetch_flag = true; + break; + } + return search_engine_server_.GetURL( + kSearchDomain, + base::ReplaceStringPlaceholders( + url_template, {search_terms, attach_prefetch_flag ? "&pf=cs" : ""}, + nullptr)); + } + Profile* GetProfile() { return chrome_test_utils::GetProfile(this); } void ChangeAutocompleteResult(const std::string& original_query, @@ -215,6 +250,17 @@ } } + void NavigateToPrerenderedResult(const GURL& expected_prerender_url) { + content::TestNavigationObserver observer(GetActiveWebContents()); + GetActiveWebContents()->OpenURL(content::OpenURLParams( + expected_prerender_url, content::Referrer(), + WindowOpenDisposition::CURRENT_TAB, + ui::PageTransitionFromInt(ui::PAGE_TRANSITION_GENERATED | + ui::PAGE_TRANSITION_FROM_ADDRESS_BAR), + /*is_renderer_initiated=*/false)); + observer.Wait(); + } + content::test::PrerenderTestHelper& prerender_helper() { return prerender_helper_; } @@ -225,7 +271,147 @@ return search_prefetch_service_; } + // Instructs the search service whether to delay the response until receiving + // a specific signal (From callers' prospective, calling + // `DispatchDelayedResponseTask`). See comment of `DeferralType` for more + // information. + void set_service_deferral_type(DeferralType service_deferral_type) { + service_deferral_type_ = service_deferral_type; + } + + // Called on the thread the server is running. The custom defined responses + // should call this method if they want to defer the network response. + void AddDelayedResponseTask( + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, + base::OnceClosure response_closure) { + ASSERT_TRUE(task_runner->BelongsToCurrentThread()); + base::AutoLock auto_lock(response_queue_lock_); + delayed_response_task_.emplace(task_runner, std::move(response_closure)); + if (monitor_callback_) + std::move(monitor_callback_).Run(); + } + + // Called on the main thread. This will resume one delayed response. + void DispatchDelayedResponseTask() { + ASSERT_TRUE( + content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); + base::RunLoop run_loop; + { + base::AutoLock auto_lock(response_queue_lock_); + if (!delayed_response_task_.empty()) { + delayed_response_task_.front().Run(); + delayed_response_task_.pop(); + return; + } + monitor_callback_ = run_loop.QuitClosure(); + } + run_loop.Run(); + } + private: + // A DelayedResponseTask instance is created on the thread that server is + // running on, and be destroyed on the main thread. A lock is guarding the + // access to created instances. + class DelayedResponseTask { + public: + DelayedResponseTask( + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, + base::OnceClosure response_closure) + : task_runner_(task_runner), + response_closure_(std::move(response_closure)) {} + + void Run() { + ASSERT_TRUE( + content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); + task_runner_->PostTask(FROM_HERE, std::move(response_closure_)); + } + + private: + // Task runner of the thread on which a service server is running. + const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; + + // Closure for making response dispatching controllable. The closure should + // be executed on the thread that the server is running on, as it sends + // network response. + base::OnceClosure response_closure_; + }; + + // Passes the delegates needed to respond to a request to the + // SearchPreloadUnifiedBrowserTest test fixture, so that it can control when + // and what to respond. + class DelayedResponse : public net::test_server::BasicHttpResponse { + public: + // Build a custom defined response that might be deferred based on + // `deferral_type`. See the comment of `DeferralType` for more information + // about the deferral type. Pass an empty string to `response_body` if the + // response (note, not the header) should fail. + DelayedResponse(SearchPreloadUnifiedBrowserTest* test_harness, + DeferralType deferral_type, + base::StringPairs headers, + const std::string& response_body) + : test_harness_(test_harness), + service_deferral_type_(deferral_type), + headers_(headers), + body_(response_body) {} + + DelayedResponse(const DelayedResponse&) = delete; + DelayedResponse& operator=(const DelayedResponse&) = delete; + + // net::test_server::BasicHttpResponse implementation. + void SendResponse(base::WeakPtr<net::test_server::HttpResponseDelegate> + delegate) override { + switch (service_deferral_type_) { + case DeferralType::kNoDeferral: + delegate->SendHeadersContentAndFinish( + code(), net::GetHttpReasonPhrase(code()), headers_, body_); + break; + case DeferralType::kDeferHeader: + test_harness_->AddDelayedResponseTask( + base::ThreadTaskRunnerHandle::Get(), + base::BindOnce(&net::test_server::HttpResponseDelegate:: + SendHeadersContentAndFinish, + delegate, code(), net::GetHttpReasonPhrase(code()), + headers_, body_)); + break; + case DeferralType::kDeferBody: + test_harness_->AddDelayedResponseTask( + base::ThreadTaskRunnerHandle::Get(), + base::BindOnce(&net::test_server::HttpResponseDelegate:: + SendContentsAndFinish, + delegate, body_)); + delegate->SendResponseHeaders( + code(), net::GetHttpReasonPhrase(code()), headers_); + break; + case DeferralType::kDeferHeaderThenBody: + test_harness_->AddDelayedResponseTask( + base::ThreadTaskRunnerHandle::Get(), + base::BindOnce( + &net::test_server::HttpResponseDelegate::SendResponseHeaders, + delegate, code(), "OK", headers_)); + test_harness_->AddDelayedResponseTask( + base::ThreadTaskRunnerHandle::Get(), + base::BindOnce(&net::test_server::HttpResponseDelegate:: + SendContentsAndFinish, + delegate, body_)); + break; + } + } + + private: + // The test fixture that can manipulate the respones. + raw_ptr<SearchPreloadUnifiedBrowserTest> test_harness_; + + // The deferral mode. See comment of `DeferralType` for more information. + DeferralType service_deferral_type_ = DeferralType::kNoDeferral; + + // Predefined response headers. + base::StringPairs headers_; + + // Predefined response body. The response body will fail due to the + // CONTENT_LENGTH_MISMATCH error if it is set to an empty string. + std::string body_ = ""; + }; + AutocompleteMatch CreateSearchSuggestionMatch( const std::string& original_query, const std::string& search_terms, @@ -235,8 +421,7 @@ match.search_terms_args = std::make_unique<TemplateURLRef::SearchTermsArgs>( base::UTF8ToUTF16(search_terms)); match.search_terms_args->original_query = base::UTF8ToUTF16(original_query); - match.destination_url = - GetSearchUrl(search_terms, /*attach_prefetch_flag=*/false); + match.destination_url = GetSearchUrl(search_terms, UrlType::kReal); match.keyword = base::UTF8ToUTF16(original_query); if (prerender_hint == PrerenderHint::kEnabled) match.RecordAdditionalInfo("should_prerender", "true"); @@ -251,6 +436,13 @@ raw_ptr<SearchPrefetchService> search_prefetch_service_ = nullptr; net::test_server::EmbeddedTestServer search_engine_server_{ net::test_server::EmbeddedTestServer::TYPE_HTTPS}; + + DeferralType service_deferral_type_ = DeferralType::kNoDeferral; + std::queue<DelayedResponseTask> delayed_response_task_ + GUARDED_BY(response_queue_lock_); + base::OnceClosure monitor_callback_ GUARDED_BY(response_queue_lock_); + base::Lock response_queue_lock_; + content::test::PrerenderTestHelper prerender_helper_; base::test::ScopedFeatureList scoped_feature_list_; }; @@ -266,8 +458,10 @@ std::string search_query = "pre"; std::string prerender_query = "prerender"; + GURL expected_prefetch_url = + GetSearchUrl(prerender_query, UrlType::kPrefetch); GURL expected_prerender_url = - GetSearchUrl(prerender_query, /*attach_prefetch_flag=*/true); + GetSearchUrl(prerender_query, UrlType::kPrerender); content::test::PrerenderHostRegistryObserver registry_observer( *GetActiveWebContents()); @@ -277,14 +471,28 @@ // The suggestion service should hint expected_prerender_url, and prerendering // for this url should start. + registry_observer.WaitForTrigger(expected_prerender_url); prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(), expected_prerender_url); + // Prefetch should be triggered as well. absl::optional<SearchPrefetchStatus> prefetch_status = search_prefetch_service()->GetSearchPrefetchStatusForTesting( base::ASCIIToUTF16(prerender_query)); - EXPECT_TRUE(prefetch_status.has_value()); + EXPECT_EQ(prefetch_status.value(), SearchPrefetchStatus::kPrerendered); + + // No prerender requests went through network, so there should be only one + // request and it is with the prefetch flag attached. + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + NavigateToPrerenderedResult(expected_prerender_url); + prerender_observer.WaitForActivation(); + + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); } // Tests that the SearchSuggestionService can trigger prerendering if it @@ -299,9 +507,10 @@ std::string search_query_1 = "pre"; std::string prerender_query = "prerender"; + GURL expected_prefetch_url = + GetSearchUrl(prerender_query, UrlType::kPrefetch); GURL expected_prerender_url = - GetSearchUrl(prerender_query, /*attach_prefetch_flag=*/true); - + GetSearchUrl(prerender_query, UrlType::kPrerender); content::test::PrerenderHostRegistryObserver registry_observer( *GetActiveWebContents()); @@ -316,28 +525,30 @@ WaitUntilStatusChangesTo( base::ASCIIToUTF16(prerender_query), {SearchPrefetchStatus::kCanBeServed, SearchPrefetchStatus::kComplete}); - std::string search_query_2 = "prer"; ChangeAutocompleteResult(search_query_2, prerender_query, PrerenderHint::kEnabled, PrefetchHint::kEnabled); - // The suggestion service should hint `expected_prerender_url`, and + // The suggestion service should hint `expected_prefetch_url`, and // prerendering for this url should start. registry_observer.WaitForTrigger(expected_prerender_url); prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(), expected_prerender_url); + // No prerender requests went through network, so there should be only one + // request and it is with the prefetch flag attached. + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + // Activate. - content::TestActivationManager activation_manager(GetActiveWebContents(), - expected_prerender_url); - GetActiveWebContents()->OpenURL(content::OpenURLParams( - expected_prerender_url, content::Referrer(), - WindowOpenDisposition::CURRENT_TAB, - ui::PageTransitionFromInt(ui::PAGE_TRANSITION_GENERATED | - ui::PAGE_TRANSITION_FROM_ADDRESS_BAR), - /*is_renderer_initiated=*/false)); - activation_manager.WaitForNavigationFinished(); - EXPECT_TRUE(activation_manager.was_activated()); + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + NavigateToPrerenderedResult(expected_prerender_url); + prerender_observer.WaitForActivation(); + + // No prerender requests went through network. + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); } // Tests that the SearchSuggestionService will not trigger prerender if the @@ -376,12 +587,13 @@ ASSERT_TRUE(GetActiveWebContents()); ASSERT_TRUE(content::NavigateToURL(GetActiveWebContents(), kInitialUrl)); SetUpContext(); + set_service_deferral_type(DeferralType::kDeferHeader); // 1. Type the first query. std::string search_query_1 = "hang"; std::string prerender_query_1 = "hang_response"; GURL expected_prerender_url = - GetSearchUrl(prerender_query_1, /*attach_prefetch_flag=*/true); + GetSearchUrl(prerender_query_1, UrlType::kPrefetch); ChangeAutocompleteResult(search_query_1, prerender_query_1, PrerenderHint::kEnabled, PrefetchHint::kEnabled); @@ -422,40 +634,276 @@ *GetActiveWebContents()); // 1. Type the first query. - std::string search_query_1 = "hang"; - std::string prerender_query_1 = "hang_body"; + std::string search_query_1 = "pre"; + std::string prerender_query_1 = "prerender"; GURL expected_prerender_url = - GetSearchUrl(prerender_query_1, /*attach_prefetch_flag=*/true); + GetSearchUrl(prerender_query_1, UrlType::kPrerender); ChangeAutocompleteResult(search_query_1, prerender_query_1, PrerenderHint::kEnabled, PrefetchHint::kEnabled); - // 2. Prefetch should be triggered, and chrome is receiving the response body. + // 2. Prefetch and prerender should be triggered. + registry_observer.WaitForTrigger(expected_prerender_url); + prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(), + expected_prerender_url); + EXPECT_TRUE(prerender_manager()->HasSearchResultPagePrerendered()); absl::optional<SearchPrefetchStatus> prefetch_status = search_prefetch_service()->GetSearchPrefetchStatusForTesting( base::ASCIIToUTF16(prerender_query_1)); EXPECT_TRUE(prefetch_status.has_value()); - WaitUntilStatusChangesTo(base::ASCIIToUTF16(prerender_query_1), - {SearchPrefetchStatus::kCanBeServed}); + EXPECT_EQ(prefetch_status.value(), SearchPrefetchStatus::kPrerendered); + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + histogram_tester.ExpectBucketCount( + "Omnibox.SearchPrefetch.PrefetchServingReason.Prerender", + SearchPrefetchServingReason::kPrerendered, 1); - // 3. prerendering should be triggered. - registry_observer.WaitForTrigger(expected_prerender_url); - EXPECT_TRUE(prerender_manager()->HasSearchResultPagePrerendered()); - - // 4. Type a different query which results in different suggestions. + // 3. Type a different query which results in different suggestions. std::string search_query_2 = "pre"; ChangeAutocompleteResult(search_query_2, search_query_2, PrerenderHint::kDisabled, PrefetchHint::kEnabled); - // 5. The old prefetch should be cancelled. + // 4. The prerender will be destroyed automatically. + prerender_observer.WaitForDestroyed(); +} + +// Tests that prerender fails as well if the prefetch response that prerender +// uses fails. +IN_PROC_BROWSER_TEST_F(SearchPreloadUnifiedBrowserTest, + NavigationFailsAfterPrefetchServedTheResponse) { + base::HistogramTester histogram_tester; + const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html"); + ASSERT_TRUE(GetActiveWebContents()); + ASSERT_TRUE(content::NavigateToURL(GetActiveWebContents(), kInitialUrl)); + set_service_deferral_type(DeferralType::kDeferBody); + SetUpContext(); + + // 1. Type the first query. + std::string search_query_1 = "invalid"; + std::string prerender_query_1 = "invalid_content"; + + GURL expected_prefetch_url = + GetSearchUrl(prerender_query_1, UrlType::kPrefetch); + GURL expected_prerender_url = + GetSearchUrl(prerender_query_1, UrlType::kPrerender); + + content::test::PrerenderHostRegistryObserver registry_observer( + *GetActiveWebContents()); + ChangeAutocompleteResult(search_query_1, prerender_query_1, + PrerenderHint::kEnabled, PrefetchHint::kEnabled); + + // 2. Prefetch and prerender should be triggered. + registry_observer.WaitForTrigger(expected_prerender_url); + + // 3. Wait until prerender uses the prefetched response. + WaitUntilStatusChangesTo(base::ASCIIToUTF16(prerender_query_1), + {SearchPrefetchStatus::kPrerendered}); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + + // 4. Make the prerender fail to read the response body by sending "Finish" + // signal before sending content body. + DispatchDelayedResponseTask(); + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + + // 5. The prerender will be destroyed because of the failing request. + prerender_observer.WaitForDestroyed(); + // Prerender should not retry the request. + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); +} + +// Tests prerender is cancelled after SearchPrefetchService cancels prefetch +// requests. +IN_PROC_BROWSER_TEST_F(SearchPreloadUnifiedBrowserTest, DoNotRefetchSameTerms) { + base::HistogramTester histogram_tester; + const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html"); + ASSERT_TRUE(GetActiveWebContents()); + ASSERT_TRUE(content::NavigateToURL(GetActiveWebContents(), kInitialUrl)); + SetUpContext(); + content::test::PrerenderHostRegistryObserver registry_observer( + *GetActiveWebContents()); + + // 1. Type the first query. + std::string search_query_1 = "pre"; + std::string prerender_query = "prerender"; + GURL expected_prerender_url = + GetSearchUrl(prerender_query, UrlType::kPrerender); + ChangeAutocompleteResult(search_query_1, prerender_query, + PrerenderHint::kEnabled, PrefetchHint::kEnabled); + + // 2. Prefetch and prerender should be triggered, and chrome is waiting for + // the body. + registry_observer.WaitForTrigger(expected_prerender_url); + prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(), + expected_prerender_url); + EXPECT_TRUE(prerender_manager()->HasSearchResultPagePrerendered()); + absl::optional<SearchPrefetchStatus> prefetch_status = + search_prefetch_service()->GetSearchPrefetchStatusForTesting( + base::ASCIIToUTF16(prerender_query)); + EXPECT_TRUE(prefetch_status.has_value()); + EXPECT_EQ(prefetch_status.value(), SearchPrefetchStatus::kPrerendered); + + // 3. Type a different query which results in the same suggestion. + std::string search_query_2 = "prer"; + ChangeAutocompleteResult(search_query_2, prerender_query, + PrerenderHint::kEnabled, PrefetchHint::kEnabled); + + // 4. Do not prefetch/prerender again. prefetch_status = search_prefetch_service()->GetSearchPrefetchStatusForTesting( - base::ASCIIToUTF16(prerender_query_1)); + base::ASCIIToUTF16(prerender_query)); EXPECT_TRUE(prefetch_status.has_value()); - WaitUntilStatusChangesTo(base::ASCIIToUTF16(prerender_query_1), - {SearchPrefetchStatus::kRequestCancelled}); + EXPECT_EQ(prefetch_status.value(), SearchPrefetchStatus::kPrerendered); - // 6. Prerender should be cancelled as well. - EXPECT_FALSE(prerender_manager()->HasSearchResultPagePrerendered()); + histogram_tester.ExpectBucketCount( + "Omnibox.SearchPrefetch.PrefetchEligibilityReason.SuggestionPrefetch", + SearchPrefetchEligibilityReason::kAttemptedQueryRecently, 1); } +// Disables BFCache for testing back forward navigation can reuse the HTTP +// Cache. +class HTTPCacheSearchPreloadUnifiedBrowserTest + : public SearchPreloadUnifiedBrowserTest { + public: + HTTPCacheSearchPreloadUnifiedBrowserTest() { + scoped_feature_list_.InitWithFeaturesAndParameters( + {{features::kSupportSearchSuggestionForPrerender2, {}}, + {kSearchPrefetchServicePrefetching, + {{"max_attempts_per_caching_duration", "3"}, + {"cache_size", "4"}, + {"device_memory_threshold_MB", "0"}}}, + {kSearchPrefetchUpgradeToPrerender, {}}}, + // Disable BackForwardCache to ensure that the page is not restored from + // the cache. + /*disabled_features=*/{kSearchPrefetchBlockBeforeHeaders, + features::kBackForwardCache}); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +// Test back or forward navigations can use the HTTP Cache. +IN_PROC_BROWSER_TEST_F(HTTPCacheSearchPreloadUnifiedBrowserTest, + BackwardHitHttpCache) { + base::HistogramTester histogram_tester; + const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html"); + ASSERT_TRUE(GetActiveWebContents()); + ASSERT_TRUE(content::NavigateToURL(GetActiveWebContents(), kInitialUrl)); + SetUpContext(); + + content::test::PrerenderHostRegistryObserver registry_observer( + *GetActiveWebContents()); + std::string search_query_1 = "pre"; + std::string prerender_query_1 = "prerender"; + GURL expected_prefetch_url_1 = + GetSearchUrl(prerender_query_1, UrlType::kPrefetch); + GURL expected_prerender_url_1 = + GetSearchUrl(prerender_query_1, UrlType::kPrerender); + auto trigger_and_activate = [&](const std::string& search_query, + const std::string& prerender_query) { + GURL expected_prefetch_url = + GetSearchUrl(prerender_query, UrlType::kPrefetch); + GURL expected_prerender_url = + GetSearchUrl(prerender_query, UrlType::kPrerender); + ChangeAutocompleteResult(search_query, prerender_query, + PrerenderHint::kEnabled, PrefetchHint::kEnabled); + registry_observer.WaitForTrigger(expected_prerender_url); + WaitUntilStatusChangesTo(base::ASCIIToUTF16(prerender_query), + {SearchPrefetchStatus::kCanBeServed, + SearchPrefetchStatus::kPrerendered}); + // No prerender requests went through network, so there should be only one + // request and it is with the prefetch flag attached. + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + + // Activate. + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + NavigateToPrerenderedResult(expected_prerender_url); + prerender_observer.WaitForActivation(); + + // No prerender requests went through network. + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + }; + + trigger_and_activate(search_query_1, prerender_query_1); + // Trigger another preloading attempt and navigate to that page. + trigger_and_activate("pref", "prefetch"); + + // Navigate back. Chrome is supposed to read the response from the cache, + // instead of sending another request. + content::TestNavigationObserver back_load_observer(GetActiveWebContents()); + GetActiveWebContents()->GetController().GoBack(); + back_load_observer.Wait(); + EXPECT_EQ(expected_prerender_url_1, + GetActiveWebContents()->GetLastCommittedURL()); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url_1)); + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url_1)); +} + +// TODO(https://cubug.com/1282624): This test should run on Android after we're +// able to interact with Android UI. +// TODO(https://crbug.com/1342481): On LacrOS, the window's bound changes +// unexpectedly, and it stops auto completing. +#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_LACROS) +IN_PROC_BROWSER_TEST_F(SearchPreloadUnifiedBrowserTest, TriggerAndActivate) { + base::HistogramTester histogram_tester; + const GURL kInitialUrl = embedded_test_server()->GetURL("/empty.html"); + ASSERT_TRUE(GetActiveWebContents()); + ASSERT_TRUE(content::NavigateToURL(GetActiveWebContents(), kInitialUrl)); + SetUpContext(); + content::test::PrerenderHostRegistryObserver registry_observer( + *GetActiveWebContents()); + + // 1. Type the first query. + std::string search_query_1 = "pre"; + std::string prerender_query = "prerender"; + GURL expected_prefetch_url = + GetSearchUrl(prerender_query, UrlType::kPrefetch); + GURL expected_prerender_url = + GetSearchUrl(prerender_query, UrlType::kPrerender); + + // 2. Prepare some context. + AutocompleteInput input( + base::ASCIIToUTF16(prerender_query), metrics::OmniboxEventProto::BLANK, + ChromeAutocompleteSchemeClassifier(browser()->profile())); + LocationBar* location_bar = browser()->window()->GetLocationBar(); + OmniboxView* omnibox = location_bar->GetOmniboxView(); + AutocompleteController* autocomplete_controller = + omnibox->model()->autocomplete_controller(); + + // Prevent the stop timer from killing the hints fetch early. + autocomplete_controller->SetStartStopTimerDurationForTesting( + base::Seconds(10)); + + // 3. Trigger prerender and prefetch. + autocomplete_controller->Start(input); + ui_test_utils::WaitForAutocompleteDone(browser()); + ChangeAutocompleteResult(search_query_1, prerender_query, + PrerenderHint::kEnabled, PrefetchHint::kEnabled); + registry_observer.WaitForTrigger(expected_prerender_url); + prerender_helper().WaitForPrerenderLoadCompletion(*GetActiveWebContents(), + expected_prerender_url); + EXPECT_TRUE(prerender_manager()->HasSearchResultPagePrerendered()); + absl::optional<SearchPrefetchStatus> prefetch_status = + search_prefetch_service()->GetSearchPrefetchStatusForTesting( + base::ASCIIToUTF16(prerender_query)); + EXPECT_TRUE(prefetch_status.has_value()); + EXPECT_EQ(prefetch_status.value(), SearchPrefetchStatus::kPrerendered); + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); + + // 4. Click and activate. + content::test::PrerenderHostObserver prerender_observer( + *GetActiveWebContents(), expected_prerender_url); + omnibox->model()->AcceptInput(WindowOpenDisposition::CURRENT_TAB); + prerender_observer.WaitForActivation(); + EXPECT_EQ(1, prerender_helper().GetRequestCount(expected_prefetch_url)); + EXPECT_EQ(0, prerender_helper().GetRequestCount(expected_prerender_url)); +} +#endif // BUILDFLAG(IS_ANDROID) + } // namespace
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index e245d8a4..9af66dea 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -395,13 +395,13 @@ #include "chrome/browser/ui/webui/settings/chromeos/os_settings_ui.h" #include "chrome/browser/upgrade_detector/upgrade_detector_chromeos.h" #include "chrome/browser/web_applications/externally_installed_web_app_prefs.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" #include "chromeos/ash/components/network/cellular_esim_profile_handler_impl.h" #include "chromeos/ash/components/network/cellular_metrics_logger.h" #include "chromeos/ash/components/network/fast_transition_observer.h" #include "chromeos/ash/components/network/managed_cellular_pref_handler.h" #include "chromeos/ash/components/network/proxy/proxy_config_handler.h" #include "chromeos/ash/services/assistant/public/cpp/assistant_prefs.h" -#include "chromeos/components/local_search_service/search_metrics_reporter.h" #include "chromeos/components/quick_answers/public/cpp/quick_answers_prefs.h" #include "chromeos/network/network_metadata_store.h" #include "chromeos/services/bluetooth_config/bluetooth_power_controller_impl.h"
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index 8af7e4c..c6d99be3 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc
@@ -152,7 +152,7 @@ return prerendered_search_terms_; } - void MaybeAppendUrlEntry(content::WebContents& web_contents) const { + void OnActivated(content::WebContents& web_contents) const { if (!search_prerender_handle_) { return; } @@ -168,6 +168,12 @@ return; } + if (SearchPrefetchUpgradeToPrerenderIsEnabled()) { + search_prefetch_service->OnPrerenderedRequestUsed( + prerendered_search_terms_, web_contents.GetLastCommittedURL()); + return; + } + // TODO(https://crbug.com/1295170): This rule is hard coded according to // TemplateUrl, which is not good, and can be removed after the unification // work is done. @@ -454,10 +460,9 @@ search_prerender_task_->RecordLifeTimeMetric(); } - if (prerender_utils::ShouldUpdateCacheEntryManually() && - is_search_destination_match && + if (is_search_destination_match && navigation_handle->IsPrerenderedPageActivation()) { - search_prerender_task_->MaybeAppendUrlEntry(*web_contents()); + search_prerender_task_->OnActivated(*web_contents()); } search_prerender_task_.reset();
diff --git a/chrome/browser/privacy_budget/identifiability_study_state.cc b/chrome/browser/privacy_budget/identifiability_study_state.cc index d1a2ca0..e0f4f92 100644 --- a/chrome/browser/privacy_budget/identifiability_study_state.cc +++ b/chrome/browser/privacy_budget/identifiability_study_state.cc
@@ -34,6 +34,7 @@ #include "chrome/common/privacy_budget/privacy_budget_settings_provider.h" #include "chrome/common/privacy_budget/types.h" #include "components/prefs/pref_service.h" +#include "services/metrics/public/cpp/ukm_source_id.h" #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h" #include "third_party/blink/public/common/privacy_budget/identifiability_study_settings_provider.h" #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" @@ -597,6 +598,12 @@ return false; } + // Don't report actively sampled surfaces as encountered surfaces. + if (ukm::SourceIdObj::FromInt64(source_id).GetType() == + ukm::SourceIdType::NO_URL_ID) { + return false; + } + return surface_encounters_.IsNewEncounter(source_id, surface.ToUkmMetricHash()); }
diff --git a/chrome/browser/privacy_budget/identifiability_study_state_unittest.cc b/chrome/browser/privacy_budget/identifiability_study_state_unittest.cc index 10ec320..f85eda2 100644 --- a/chrome/browser/privacy_budget/identifiability_study_state_unittest.cc +++ b/chrome/browser/privacy_budget/identifiability_study_state_unittest.cc
@@ -19,6 +19,7 @@ #include "chrome/common/privacy_budget/scoped_privacy_budget_config.h" #include "chrome/common/privacy_budget/types.h" #include "components/prefs/testing_pref_service.h" +#include "services/metrics/public/cpp/ukm_source_id.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" @@ -466,6 +467,22 @@ EXPECT_FALSE(settings.ShouldRecordSurface(kRegularSurface1)); } +TEST(IdentifiabilityStudyStateStandaloneTest, ShouldReportEncounteredSurface) { + auto params = test::ScopedPrivacyBudgetConfig::Parameters{}; + params.enabled = true; + test::ScopedPrivacyBudgetConfig config(params); + + TestingPrefServiceSimple pref_service; + prefs::RegisterPrivacyBudgetPrefs(pref_service.registry()); + test_utils::InspectableIdentifiabilityStudyState settings(&pref_service); + + // The specific surface doesn't matter. + EXPECT_TRUE(settings.ShouldReportEncounteredSurface(ukm::AssignNewSourceId(), + kRegularSurface1)); + EXPECT_FALSE(settings.ShouldReportEncounteredSurface(ukm::NoURLSourceId(), + kRegularSurface1)); +} + TEST(IdentifiabilityStudyStateStandaloneTest, ClearsPrefsIfStudyIsDisabled) { test::ScopedPrivacyBudgetConfig::Parameters parameters; parameters.enabled = false;
diff --git a/chrome/browser/resources/chromeos/accessibility/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/BUILD.gn index 893f22d1..94384599 100644 --- a/chrome/browser/resources/chromeos/accessibility/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/BUILD.gn
@@ -162,13 +162,7 @@ js2gtest("misc_unit_tests_js") { test_type = "unit" - sources = [ - "braille_ime/braille_ime_unittest.js", - "common/rect_util_unittest.js", - ] + sources = [ "braille_ime/braille_ime_unittest.js" ] gen_include_files = [ "common/testing/accessibility_test_base.js" ] - extra_js_files = [ - "braille_ime/braille_ime.js", - "common/rect_util.js", - ] + extra_js_files = [ "braille_ime/braille_ime.js" ] }
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/autoclick/autoclick_test.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/autoclick/autoclick_test.js index 6da3b4f..0a85226 100644 --- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/autoclick/autoclick_test.js +++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/autoclick/autoclick_test.js
@@ -22,6 +22,7 @@ const module = await import('/accessibility_common/accessibility_common_loader.js'); + await importModule('RectUtil', '/common/rect_util.js'); // Re-initialize AccessibilityCommon with mock AccessibilityPrivate API. accessibilityCommon = new module.AccessibilityCommon();
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/background.html b/chrome/browser/resources/chromeos/accessibility/accessibility_common/background.html index 4f53f71..191efaa7f 100644 --- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/background.html +++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/background.html
@@ -3,7 +3,6 @@ <script src="/common/closure_shim.js"></script> <script src="/common/event_handler.js"></script> <script src="/common/key_code.js"></script> -<script src="/common/rect_util.js"></script> <script src="/common/constants.js"></script> <script src="/common/automation_predicate.js"></script>
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js index c31eed2..6fa8a6a 100644 --- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js +++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier.js
@@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; + const EventType = chrome.automation.EventType; const RoleType = chrome.automation.RoleType;
diff --git a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier_test.js b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier_test.js index ddc0a73..4c7f65a 100644 --- a/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier_test.js +++ b/chrome/browser/resources/chromeos/accessibility/accessibility_common/magnifier/magnifier_test.js
@@ -26,6 +26,12 @@ }); } + /** @override */ + async setUpDeferred() { + await super.setUpDeferred(); + await importModule('RectUtil', '/common/rect_util.js'); + } + async getPref(name) { return new Promise(resolve => { chrome.settingsPrivate.getPref(name, ret => {
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.html b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.html index 4558424..9ea919e 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.html +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/background.html
@@ -1,7 +1,19 @@ <!-- ChromeVox --> + +<!-- ChromeVox compiled script (non-ES6 modules) packed into one file. --> <script src="../chromeVoxChromeBackgroundScript.js" charset="utf-8"> </script> +<!-- + ChromeVox ES6 module(s). + + During the transition to ES6 modules, this top level module will import all + migrated modules. The migration will occur in breadth-first order, starting + with background.js. ES6 modules can "depend" on Closure files (since these are + global), but not vice versa. +--> +<script type="module" src="es6_loader.js"></script> + <!-- Generated at build time --> <script type="text/javascript" src="../phonetic_dictionaries.js" charset="utf-8"></script>
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/classic_background.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/classic_background.js index 956153a..2ef2466d 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/classic_background.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/classic_background.js
@@ -52,7 +52,8 @@ ChromeVox.tts = this.tts; ChromeVox.braille = this.backgroundBraille_; - this.onIntroduceChromeVox(); + chrome.accessibilityPrivate.onIntroduceChromeVox.addListener( + this.onIntroduceChromeVox); // Set up a message passing system for goog.provide() calls from // within the content scripts.
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js index 09e264ee..c647c371 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/loader.js
@@ -6,10 +6,6 @@ * @fileoverview Loader for the background page. */ -// These legacy Closure requires will eventually be moved to ES6 modules (see -// below block). These requires represent a dependency graph sourced from -// loader.js via a script node in our top level html. Once done, that script can -// itself be type="module". goog.require('AbstractEarcons'); goog.require('AutomationPredicate'); goog.require('AutomationTreeWalker'); @@ -60,11 +56,3 @@ goog.require('goog.i18n.MessageFormat'); goog.require('ALL_NODE_MENU_DATA'); - -// ChromeVox ES6 module(s). -// -// During the transition to ES6 modules, this top level module will import all -// migrated modules. The migration will occur in breadth-first order, starting -// with background.js. ES6 modules can "depend" on Closure provides (since these -// are global), but not vice versa. Those Closure provides are above. -import('/chromevox/background/es6_loader.js');
diff --git a/chrome/browser/resources/chromeos/accessibility/chromevox/background/tts_background_test.js b/chrome/browser/resources/chromeos/accessibility/chromevox/background/tts_background_test.js index 3d2fd22..9ad6a4b5 100644 --- a/chrome/browser/resources/chromeos/accessibility/chromevox/background/tts_background_test.js +++ b/chrome/browser/resources/chromeos/accessibility/chromevox/background/tts_background_test.js
@@ -259,10 +259,7 @@ lastSpokenTextString); }); -AX_TEST_F('ChromeVoxTtsBackgroundTest', 'NumberReadingStyle', async function() { - // This test depends on local storage initialized by prefs. - await importModule('ChromeVoxPrefs', '/chromevox/background/prefs.js'); - +AX_TEST_F('ChromeVoxTtsBackgroundTest', 'NumberReadingStyle', function() { let lastSpokenTextString = ''; tts.speakUsingQueue_ = function(utterance, _) { lastSpokenTextString = utterance.textString; @@ -357,10 +354,7 @@ assertEqualsJSON(['a'], split('a', 'b')); }); -AX_TEST_F('ChromeVoxTtsBackgroundTest', 'Phonetics', async function() { - // JaPhoneticMap gets initialized by Background. - await importModule('Background', '/chromevox/background/background.js'); - +AX_TEST_F('ChromeVoxTtsBackgroundTest', 'Phonetics', function() { let spokenStrings = []; tts.speakUsingQueue_ = (utterance, ...rest) => { spokenStrings.push(utterance.textString); @@ -547,23 +541,18 @@ this.expectUtteranceQueueIsLike([]); }); -AX_TEST_F( - 'ChromeVoxTtsBackgroundTest', 'ResetTtsSettingsClearsVoice', - async function() { - // Pull in ChromeVox.tts which is initialized by ChromeVoxBackground. - await importModule( - 'ChromeVoxBackground', '/chromevox/background/classic_background.js'); - - ChromeVox.tts.ttsEngines_[0].currentVoice = ''; - CommandHandlerInterface.instance.onCommand('resetTextToSpeechSettings'); - await new Promise(r => { - ChromeVox.tts.speak = textString => { - if (textString === - 'Reset text to speech settings to default values') { - r(); - } - }; - }); - assertEquals( - constants.SYSTEM_VOICE, ChromeVox.tts.ttsEngines_[0].currentVoice); +TEST_F('ChromeVoxTtsBackgroundTest', 'ResetTtsSettingsClearsVoice', function() { + this.newCallback(async () => { + ChromeVox.tts.ttsEngines_[0].currentVoice = ''; + CommandHandlerInterface.instance.onCommand('resetTextToSpeechSettings'); + await new Promise(r => { + ChromeVox.tts.speak = textString => { + if (textString === 'Reset text to speech settings to default values') { + r(); + } + }; }); + assertEquals( + constants.SYSTEM_VOICE, ChromeVox.tts.ttsEngines_[0].currentVoice); + })(); +});
diff --git a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn index f5ccc842..6ba5787 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/common/BUILD.gn
@@ -162,6 +162,7 @@ "cursors/cursors_test.js", "cursors/recovery_strategy_test.js", "event_generator_test.js", + "rect_util_test.js", "repeated_event_handler_test.js", "repeated_tree_change_handler_test.js", "tree_walker_test.js",
diff --git a/chrome/browser/resources/chromeos/accessibility/common/array_util.js b/chrome/browser/resources/chromeos/accessibility/common/array_util.js index 1da2e0a..19f5de1 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/array_util.js +++ b/chrome/browser/resources/chromeos/accessibility/common/array_util.js
@@ -3,7 +3,7 @@ // found in the LICENSE file. /** A collection of helper functions when dealing with arrays. */ -const ArrayUtil = { +export const ArrayUtil = { /** * @param {Array=} array1 * @param {Array=} array2
diff --git a/chrome/browser/resources/chromeos/accessibility/common/array_util_test.js b/chrome/browser/resources/chromeos/accessibility/common/array_util_test.js index 213c403..c8498ac 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/array_util_test.js +++ b/chrome/browser/resources/chromeos/accessibility/common/array_util_test.js
@@ -6,7 +6,13 @@ GEN_INCLUDE(['../select_to_speak/select_to_speak_e2e_test_base.js']); /** Test fixture for array_util.js. */ -ArrayUtilTest = class extends SelectToSpeakE2ETest {}; +ArrayUtilTest = class extends SelectToSpeakE2ETest { + /** @override */ + async setUpDeferred() { + await super.setUpDeferred(); + await importModule('ArrayUtil', '/common/array_util.js'); + } +}; AX_TEST_F('ArrayUtilTest', 'ContentsAreEqual', function() { const even1 = [2, 4, 6, 8];
diff --git a/chrome/browser/resources/chromeos/accessibility/common/automation_util_test.js b/chrome/browser/resources/chromeos/accessibility/common/automation_util_test.js index 0358212..7065aef 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/automation_util_test.js +++ b/chrome/browser/resources/chromeos/accessibility/common/automation_util_test.js
@@ -14,8 +14,10 @@ AccessibilityExtensionAutomationUtilE2ETest = class extends SelectToSpeakE2ETest { /** @override */ - setUp() { - super.setUp(); + async setUpDeferred() { + await super.setUpDeferred(); + await importModule('RectUtil', '/common/rect_util.js'); + window.Dir = constants.Dir; window.RoleType = chrome.automation.RoleType;
diff --git a/chrome/browser/resources/chromeos/accessibility/common/rect_util.js b/chrome/browser/resources/chromeos/accessibility/common/rect_util.js index 099c682..e0c56eb 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/rect_util.js +++ b/chrome/browser/resources/chromeos/accessibility/common/rect_util.js
@@ -9,7 +9,7 @@ let ScreenRect; /** A collection of helper functions when dealing with rects. */ -const RectUtil = { +export const RectUtil = { /** @type {!ScreenRect} */ ZERO_RECT: {top: 0, left: 0, width: 0, height: 0},
diff --git a/chrome/browser/resources/chromeos/accessibility/common/rect_util_unittest.js b/chrome/browser/resources/chromeos/accessibility/common/rect_util_test.js similarity index 95% rename from chrome/browser/resources/chromeos/accessibility/common/rect_util_unittest.js rename to chrome/browser/resources/chromeos/accessibility/common/rect_util_test.js index ac63862a..1570e30 100644 --- a/chrome/browser/resources/chromeos/accessibility/common/rect_util_unittest.js +++ b/chrome/browser/resources/chromeos/accessibility/common/rect_util_test.js
@@ -2,15 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -GEN_INCLUDE(['./testing/accessibility_test_base.js']); +GEN_INCLUDE(['../select_to_speak/select_to_speak_e2e_test_base.js']); /** Test fixture for rect_util.js. */ -RectUtilUnitTest = class extends AccessibilityTestBase {}; +RectUtilTest = class extends SelectToSpeakE2ETest { + /** @override */ + async setUpDeferred() { + await super.setUpDeferred(); + await importModule('RectUtil', '/common/rect_util.js'); + } +}; -/** @override */ -RectUtilUnitTest.prototype.extraLibraries = ['rect_util.js']; - -TEST_F('RectUtilUnitTest', 'Adjacent', function() { +AX_TEST_F('RectUtilTest', 'Adjacent', function() { const baseRect = {left: 10, top: 10, width: 10, height: 10}; const adjacentRects = [ {left: 0, top: 0, width: 10, height: 10}, @@ -73,7 +76,7 @@ } }); -TEST_F('RectUtilUnitTest', 'Close', function() { +AX_TEST_F('RectUtilTest', 'Close', function() { const centerRect = {left: 10, top: 10, width: 10, height: 10}; assertTrue(RectUtil.close(centerRect, centerRect, 0)); @@ -130,7 +133,7 @@ assertFalse(RectUtil.close(farRect, centerRect, 20)); }); -TEST_F('RectUtilUnitTest', 'Equals', function() { +AX_TEST_F('RectUtilTest', 'Equals', function() { const rect1 = {left: 0, top: 0, width: 10, height: 10}; const rect2 = {left: 0, top: 0, width: 10, height: 10}; const rect3 = {left: 1, top: 0, width: 10, height: 10}; @@ -155,7 +158,7 @@ assertFalse(RectUtil.equal(rect6, rect1), 'equal should be symmetric'); }); -TEST_F('RectUtilUnitTest', 'Center', function() { +AX_TEST_F('RectUtilTest', 'Center', function() { const rect1 = {left: 0, top: 0, width: 10, height: 10}; const rect2 = {left: 10, top: 20, width: 10, height: 40}; @@ -168,7 +171,7 @@ assertEquals(40, center2.y, 'Center2 y should be 40'); }); -TEST_F('RectUtilUnitTest', 'Union', function() { +AX_TEST_F('RectUtilTest', 'Union', function() { const rect1 = {left: 0, top: 0, width: 10, height: 10}; const rect2 = {left: 4, top: 4, width: 2, height: 2}; const rect3 = {left: 10, top: 20, width: 10, height: 40}; @@ -200,7 +203,7 @@ 'Union of rect1 and rect5 does not match expected value'); }); -TEST_F('RectUtilUnitTest', 'UnionAll', function() { +AX_TEST_F('RectUtilTest', 'UnionAll', function() { const rect1 = {left: 0, top: 0, width: 10, height: 10}; const rect2 = {left: 0, top: 10, width: 10, height: 10}; const rect3 = {left: 10, top: 0, width: 10, height: 10}; @@ -220,7 +223,7 @@ 'Union of rects 1-5 does not match expected value'); }); -TEST_F('RectUtilUnitTest', 'ExpandToFitWithPadding', function() { +AX_TEST_F('RectUtilTest', 'ExpandToFitWithPadding', function() { const padding = 5; let inner = {left: 100, top: 100, width: 100, height: 100}; let outer = {left: 120, top: 120, width: 20, height: 20}; @@ -266,7 +269,7 @@ 'expandToFitWithPadding does not match expected value'); }); -TEST_F('RectUtilUnitTest', 'Contains', function() { +AX_TEST_F('RectUtilTest', 'Contains', function() { const outer = {left: 10, top: 10, width: 10, height: 10}; assertTrue(RectUtil.contains(outer, outer), 'Rect should contain itself'); @@ -323,7 +326,7 @@ }); -TEST_F('RectUtilUnitTest', 'Difference', function() { +AX_TEST_F('RectUtilTest', 'Difference', function() { const outer = {left: 10, top: 10, width: 10, height: 10}; assertTrue( RectUtil.equal(RectUtil.ZERO_RECT, RectUtil.difference(outer, outer)), @@ -365,7 +368,7 @@ 'Difference to the right should be the largest'); }); -TEST_F('RectUtilUnitTest', 'Intersection', function() { +AX_TEST_F('RectUtilTest', 'Intersection', function() { const rect1 = {left: 10, top: 10, width: 10, height: 10}; assertTrue( RectUtil.equal(rect1, RectUtil.intersection(rect1, rect1)), @@ -423,7 +426,7 @@ 'Intersection should be symmetric'); }); -TEST_F('RectUtilUnitTest', 'Overlaps', function() { +AX_TEST_F('RectUtilTest', 'Overlaps', function() { var rect1 = {left: 0, top: 0, width: 100, height: 100}; var rect2 = {left: 80, top: 0, width: 100, height: 20}; var rect3 = {left: 0, top: 80, width: 20, height: 100}; @@ -436,7 +439,7 @@ assertFalse(RectUtil.overlaps(rect2, rect3)); }); -TEST_F('RectUtilUnitTest', 'RectFromPoints', function() { +AX_TEST_F('RectUtilTest', 'RectFromPoints', function() { var rect = {left: 10, top: 20, width: 50, height: 60}; assertNotEquals(
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn b/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn index 17514fdc..dd85a545 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/BUILD.gn
@@ -17,7 +17,25 @@ "$root_out_dir/resources/chromeos/accessibility/select_to_speak" group("build") { - deps = [ ":select_to_speak_copied_files" ] + deps = [ + ":select_to_speak_copied_files", + ":select_to_speak_script", + ] +} + +# Pulls in Closure-based common files and loads Select to Speak. +run_jsbundler("select_to_speak_script") { + mode = "compressed_bundle" + modules = [ + "//third_party/chromevox/third_party/closure-library/closure/goog/base.js", + "../common/automation_predicate.js", + "../common/automation_util.js", + "../common/constants.js", + "../common/key_code.js", + "../common/tree_walker.js", + ] + sources = [ "loader.js" ] + output_file = "$select_to_speak_out_dir/selectToSpeakScript.js" } # Instead of setting up one copy target for each subdirectory, use a script @@ -26,10 +44,10 @@ mode = "copy" dest_dir = select_to_speak_out_dir sources = [ - "background.html", "checked.png", "earcons/null_selection.ogg", "input_handler.js", + "loader.js", "metrics_utils.js", "node_navigation_utils.js", "node_utils.js",
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/background.html b/chrome/browser/resources/chromeos/accessibility/select_to_speak/background.html deleted file mode 100644 index b7ae5777..0000000 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/background.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!-- Global scripts. --> -<script src="/common/closure_shim.js"></script> -<script src="/common/constants.js"></script> -<script src="/common/array_util.js"></script> -<script src="/common/automation_predicate.js"></script> -<script src="/common/automation_util.js"></script> -<script src="/common/key_code.js"></script> -<script src="/common/rect_util.js"></script> -<script src="/common/tree_walker.js"></script> - -<!-- Module entrypoint. --> -<script type="module" src="/select_to_speak/select_to_speak_main.js"></script>
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/input_handler.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/input_handler.js index 2e49d6f..0f238df2 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/input_handler.js +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/input_handler.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {SelectToSpeakConstants} from '/select_to_speak/select_to_speak_constants.js'; const SelectToSpeakState = chrome.accessibilityPrivate.SelectToSpeakState;
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/loader.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/loader.js new file mode 100644 index 0000000..3bba0548 --- /dev/null +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/loader.js
@@ -0,0 +1,13 @@ +// Copyright 2022 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. + +// TODO(accessibility): these will eventually be imgrated to ES6 modules. +goog.require('AutomationPredicate'); +goog.require('AutomationTreeWalker'); +goog.require('AutomationUtil'); +goog.require('KeyCode'); +goog.require('constants'); + +// ES6 entrypoint for Select to Speak. +import('/select_to_speak/select_to_speak_main.js');
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/node_utils.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/node_utils.js index 9cb07c43..86df12d2 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/node_utils.js +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/node_utils.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {ParagraphUtils} from '/select_to_speak/paragraph_utils.js'; const AutomationNode = chrome.automation.AutomationNode;
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js index 6529d3f..27841739c 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/prefs_manager.js
@@ -314,7 +314,9 @@ 'enhancedNetworkVoices': this.enhancedNetworkVoicesEnabled_ }); } - if (prefs['enhancedVoicesDialogShown'] !== undefined) { + // Tests can set |this.enhancedVoicesDialogShown_|. + if (!this.enhancedVoicesDialogShown_ && + prefs['enhancedVoicesDialogShown'] !== undefined) { this.enhancedVoicesDialogShown_ = prefs['enhancedVoicesDialogShown']; } else {
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak/ui_manager_unittest.js b/chrome/browser/resources/chromeos/accessibility/select_to_speak/ui_manager_unittest.js index 02a620e..0dc997a0 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak/ui_manager_unittest.js +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak/ui_manager_unittest.js
@@ -81,16 +81,6 @@ * Test fixture for ui_manager.js. */ SelectToSpeakUiManagerUnitTest = class extends SelectToSpeakE2ETest { - constructor() { - super(); - this.mockAccessibilityPrivate = MockAccessibilityPrivate; - chrome.accessibilityPrivate = this.mockAccessibilityPrivate; - - this.mockPrefsManager = null; - this.mockListener = null; - this.uiManager = null; - } - /** @override */ async setUpDeferred() { await super.setUpDeferred(); @@ -98,6 +88,8 @@ await importModule('PrefsManager', '/select_to_speak/prefs_manager.js'); await importModule('ParagraphUtils', '/select_to_speak/paragraph_utils.js'); + this.mockAccessibilityPrivate = MockAccessibilityPrivate; + chrome.accessibilityPrivate = this.mockAccessibilityPrivate; this.mockPrefsManager = new MockPrefsManager(); this.mockListener = new MockUiListener(); this.uiManager = new UiManager(this.mockPrefsManager, this.mockListener);
diff --git a/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 b/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 index d6d13f7..9c966ad7 100644 --- a/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2 +++ b/chrome/browser/resources/chromeos/accessibility/select_to_speak_manifest.json.jinja2
@@ -10,7 +10,7 @@ "incognito": "split", {% endif %} "background": { - "page": "select_to_speak/background.html" + "scripts": ["select_to_speak/selectToSpeakScript.js"] }, "permissions": [ "accessibilityPrivate",
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb index 226845b..6241c62 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_am.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">ብርቱካናማ</translation> <translation id="1198865190323699001">የመንካት ምልክቶች</translation> <translation id="1201402288615127009">ቀጣይ</translation> +<translation id="1202112913213080585">ይቅር</translation> <translation id="1206619573307042055">መልሶ መልስ</translation> <translation id="1207086294218137981">ምንም ቀጣይ የደረጃ 4 ርዕስ የለም</translation> <translation id="1212770441379271564">የሚከተሉት ጥቂት አቋራጮች የChromeVox ትዕዛዞች አይደሉም፣ ነገር ግን ከChrome ምርጡን ሁሉ ለማግኘት አሁንም በጣም ጠቃሚ ናቸው። @@ -43,6 +44,7 @@ የChrome አሳሽ ምናሌውን ለመክፈት Alt+F ይጫኑ።</translation> <translation id="1213216066620407844">ChromeVox - ድምጽ ለChrome መስጠት</translation> <translation id="1225969361094801578">ጠቆር ያለ መከለያ ግራጫ</translation> +<translation id="122928249241119550">ወደ ቀዳሚው ዓረፍተ ነገር ሂድ</translation> <translation id="1230503547248836149">የምርጫ መጀመሪያ</translation> <translation id="1236794971743289975">የግርጌ ማስታወሻ</translation> <translation id="1237797094773582699">በተመሳሳይ ሁኔታ በአራት ጣቶች ከቀኝ ወደ ግራ ማንሸራተት ወደ ቀዳሚው ክፍል ለመሄድ ሊያገለግል ይችላል። አሁኑኑ ይሞክሩት!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ብሩህ ሰማያዊ</translation> <translation id="2438712309510062123">ጠቁም</translation> <translation id="2450814015951372393">አመልካች ሳጥን</translation> +<translation id="2450992626945324272">ወደ ቀጣዩ ዓረፍተ ነገር ሂድ</translation> <translation id="2461822463642141190">የአሁኑ ጊዜ</translation> <translation id="2462626033734746142">የሬዲዮ አዝራር ቡድን</translation> <translation id="2467741090055146971">አትምረጥ</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">ካዴት ሰማያዊ</translation> <translation id="4217571870635786043">በቃል ማስጻፍ</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ዳሽ}one{# ዳሾች}other{# ዳሾች}}</translation> +<translation id="4220024144662591089">ከ<ph name="START_PHRASE" /> እስከ <ph name="END_PHRASE" /> ምረጥ</translation> <translation id="4221012616705981690">ምንም ቀዳሚ ዝርዝር የለም</translation> <translation id="4225355998815256469">የቅጽ መቆጣጠሪያዎች</translation> <translation id="4230834257931120629">ፈካ ያለ አረንጓዴያማ ግራጫ</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">የዝርዝር ሳጥን ወይም የጥምር ሳጥን</translation> +<translation id="613344593214611552">ቀዳሚውን ዓረፍተ ነገር ሰርዝ</translation> <translation id="6142308968191113180">ርዕስ 4</translation> <translation id="6150023170003443621">ቢጫ አረንጓዴ</translation> <translation id="6158882249329863701">ረድፍ <ph name="TABLECELLROWINDEX" /> ዓምድ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">ወደ የገጹ ታችኛው ክፍል ይዝለሉ</translation> <translation id="6187190722927752226">የባህር ውስጥ ሰማያዊ ቀለም</translation> <translation id="6197361807490522975">ደማቅ ሰማያዊ</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" />ን በ<ph name="INSERT_PHRASE" /> ተካ</translation> <translation id="6236061028292614533">ቀጣይ ርዕስ</translation> <translation id="6254901459154107917">ቀጣይ አርትዖት ሊደረግ የሚችል የጽሑፍ አካባቢ</translation> <translation id="6259464875943891919">ከ<ph name="TYPE" /> ወጥተዋል።</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">የዝርዝር መግለጫ ዝርዝር</translation> <translation id="7370432716629432284">{COUNT,plural, =1{እና}one{# እናዎች}other{# እናዎች}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">ቀዳሚውን ቁምፊ ሰርዝ</translation> <translation id="738899727977260036">የመከለያ ሰማያዊ</translation> <translation id="7393979322571982935">ድምጾች እና ቅንብሮች</translation> <translation id="739763518212184081">ቀዳሚ መስመር</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">ፈዛዛ ወርቃማ በትር ቢጫ</translation> <translation id="7543255924852002459">መሰየሚያን አስወግድ</translation> <translation id="7552432549459840808">አጋዥ የChrome አቋራጮች</translation> +<translation id="7553679324939294712">ከ<ph name="BEFORE_PHRASE" /> በፊት <ph name="INSERT_PHRASE" />ን አስገባ</translation> <translation id="7569983096843329377">ጥቁር</translation> <translation id="7579911500627256166">ነጥብ <ph name="DOT" /></translation> <translation id="7592060599656252486">አንዳንድ</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">ጽሑፍ፣ የዩ አር ኤል ግቤት ያርትዑ</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">ቀዳሚ የሬዲዮ አዝራር</translation> +<translation id="7696631298608145306">ወደ ቀጣዩ ቃል ሂድ</translation> <translation id="7701040980221191251">ምንም</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">የተፈጥሮ ድምፅ</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">ከፍተኛ <ph name="X" /></translation> <translation id="84575901236241018">የመዳረሻ ቁልፍ <ph name="KEY" /> አለው</translation> <translation id="8463645336674919227">የሰዋስው ስሕተትን መተው</translation> +<translation id="8465573210279050749">ቀዳሚውን ቃል ሰርዝ</translation> <translation id="847040613207937740">ምንም ቀጣይ አመልካች ሳጥን የለም</translation> <translation id="8473540203671727883">ከመዳፊቱ ሥር ያለውን ጽሑፍ ይናገሩ</translation> <translation id="8476408756881832830">ChromeVox እየተናገረ ሳለ መልሶ ማጫወትን ባለበት አቁም</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{ቁም መስመር}one{# የቁም መስመሮች}other{# የቁም መስመሮች}}</translation> <translation id="8741370088760768424">ፍንጭ፦ የአሁኑን ንጥል Search + Spaceን ይጫኑ።</translation> <translation id="8743786158317878347">እንደ ሠንጠረዦች ያለ የተዋቀረ ይዘት ያስገቡ</translation> +<translation id="8746846427395705317">ወደ ቀዳሚው ቃል ሂድ</translation> <translation id="8747966237988593539">በቅደም ተከተል የተቀመጠ ዝርዝር</translation> <translation id="8749988712346667988">ብርማ</translation> <translation id="875769700429317857">ማውረድ ተጠናቋል <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">ምንም ቀዳሚ ክፍል የለም</translation> <translation id="89720367119469899">አምልጥ</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" />ን ሰርዝ</translation> <translation id="8986362086234534611">እርሳ</translation> <translation id="8989104346085848538">ማንኛውም የአሁኑ ChromeVox ንግግርን ለማቆም የControl ቁልፉን ይጫኑ።</translation> <translation id="8993737615451556423">የንባብ ድምፅን ለማፋጠን፣ ለማዘግየት እና ለአፍታ ለማቆም መቆጣጠሪያዎችን ይሰጣል</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb index d682db37..4744567 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ar.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">برتقالي</translation> <translation id="1198865190323699001">إيماءات اللمس</translation> <translation id="1201402288615127009">التالي</translation> +<translation id="1202112913213080585">إلغاء</translation> <translation id="1206619573307042055">صورة بها نص متحرك</translation> <translation id="1207086294218137981">ليس هناك عنوان تالٍ من المستوى الرابع.</translation> <translation id="1212770441379271564">إن الاختصارات القليلة التالية ليست طلبات في ChromeVox، ولكنها تساعد كثيرًا على الاستفادة إلى أقصى حد من Chrome. @@ -43,6 +44,7 @@ ولفتح قائمة متصفّح Chrome، يُرجى الضغط على Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - تزويد Chrome بالصوت</translation> <translation id="1225969361094801578">رمادي داكن مائل إلى الأزرق</translation> +<translation id="122928249241119550">الانتقال إلى الجملة السابقة</translation> <translation id="1230503547248836149">بدء الاختيار</translation> <translation id="1236794971743289975">تعليق ختامي</translation> <translation id="1237797094773582699">يمكنك أيضًا التمرير بأربعة أصابع من اليسار إلى اليمين للانتقال إلى القسم السابق. جرِّب ذلك الآن.</translation> @@ -214,6 +216,7 @@ <translation id="2435422727584637732">أزرق سماوي خفيف</translation> <translation id="2438712309510062123">اقتراح</translation> <translation id="2450814015951372393">مربع الاختيار</translation> +<translation id="2450992626945324272">الانتقال إلى الجملة التالية</translation> <translation id="2461822463642141190">الاستهلاك الحالي لطاقة البطارية</translation> <translation id="2462626033734746142">مجموعة أزرار الاختيار</translation> <translation id="2467741090055146971">إلغاء الاختيار</translation> @@ -490,6 +493,7 @@ <translation id="42164919740161077">أزرق رمادي</translation> <translation id="4217571870635786043">إملاء</translation> <translation id="4218529045364428769">{COUNT,plural, =1{شرطة واحدة}zero{# dashes}two{شرطتان (#)}few{# شرطات}many{# شرطة}other{# من الشرطات}}</translation> +<translation id="4220024144662591089">تحديد النص بدءًا من عبارة "<ph name="START_PHRASE" />" إلى عبارة "<ph name="END_PHRASE" />"</translation> <translation id="4221012616705981690">ليست هناك قائمة سابقة.</translation> <translation id="4225355998815256469">عناصر التحكُّم بالنموذج</translation> <translation id="4230834257931120629">رمادي فاتح مائل إلى الأزرق</translation> @@ -760,6 +764,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">مربع القائمة أو مربع التحرير والسرد</translation> +<translation id="613344593214611552">حذف الجملة السابقة</translation> <translation id="6142308968191113180">العنوان الرابع</translation> <translation id="6150023170003443621">أخضر مصفر</translation> <translation id="6158882249329863701">الصف <ph name="TABLECELLROWINDEX" /> العمود <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -769,6 +774,7 @@ <translation id="6186305613600865047">انتقال إلى أسفل الصفحة</translation> <translation id="6187190722927752226">أزرق مخضر</translation> <translation id="6197361807490522975">أزرق داكن</translation> +<translation id="6218813441317556731">استبدال "<ph name="DELETE_PHRASE" />" بـ "<ph name="INSERT_PHRASE" />"</translation> <translation id="6236061028292614533">العنوان التالي</translation> <translation id="6254901459154107917">منطقة النص التالي القابل للتعديل</translation> <translation id="6259464875943891919">تم الخروج من <ph name="TYPE" />.</translation> @@ -922,6 +928,7 @@ <translation id="7356610683936413584">تفاصيل قائمة الوصف</translation> <translation id="7370432716629432284">{COUNT,plural, =1{علامة عطف واحدة}zero{# ampersands}two{علامتا عطف (#)}few{# علامات عطف}many{# علامة عطف}other{# من علامات العطف}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">حذف الحرف السابق</translation> <translation id="738899727977260036">أزرق مائل إلى الرمادي</translation> <translation id="7393979322571982935">الأصوات والإعدادات</translation> <translation id="739763518212184081">السطر السابق</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">أصفر ذهبي فاتح</translation> <translation id="7543255924852002459">تجاهُل التصنيف</translation> <translation id="7552432549459840808">اختصارات Chrome المفيدة</translation> +<translation id="7553679324939294712">إدخال "<ph name="INSERT_PHRASE" />" قبل "<ph name="BEFORE_PHRASE" />"</translation> <translation id="7569983096843329377">أسود</translation> <translation id="7579911500627256166">نقطة <ph name="DOT" /></translation> <translation id="7592060599656252486">بعض</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">تعديل النص، إدخال عنوان URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">زر الاختيار السابق</translation> +<translation id="7696631298608145306">الانتقال إلى الكلمة التالية</translation> <translation id="7701040980221191251">لا يوجد</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">صوت طبيعي</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">الحد الأقصى <ph name="X" /></translation> <translation id="84575901236241018">لديه مفتاح دخول، <ph name="KEY" /></translation> <translation id="8463645336674919227">جارٍ تجاهل الخطأ النحوي</translation> +<translation id="8465573210279050749">حذف الكلمة السابقة</translation> <translation id="847040613207937740">ليس هناك مربع اختيار تالٍ.</translation> <translation id="8473540203671727883">قول النص أسفل الماوس</translation> <translation id="8476408756881832830">إيقاف التشغيل مؤقتًا أثناء تحدُّث ChromeVox</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{شريط رأسي واحد}zero{# vertical pipes}two{شريطان رأسيان (#)}few{# أشرطة رأسية}many{# شريطًا رأسيًا}other{# من الأشرطة الرأسية}}</translation> <translation id="8741370088760768424">معلومة: اضغط على مفتاح البحث + مفتاح المسافة لتنشيط العنصر الحالي.</translation> <translation id="8743786158317878347">دخول إلى المحتوى المنظم، مثل الجداول</translation> +<translation id="8746846427395705317">الانتقال إلى الكلمة السابقة</translation> <translation id="8747966237988593539">قائمة مرتبة</translation> <translation id="8749988712346667988">فضي</translation> <translation id="875769700429317857">اكتمل تنزيل <ph name="FILE_NAME" />.</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">ليس هناك قسم سابق.</translation> <translation id="89720367119469899">خروج</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">حذف "<ph name="PHRASE" />"</translation> <translation id="8986362086234534611">حذف</translation> <translation id="8989104346085848538">لإيقاف ChromeVox عن الكلام، اضغط على مفتاح Control.</translation> <translation id="8993737615451556423">يوفِّر هذا الخيار عناصر تحكُّم لتسريع صوت القراءة أو إبطائه أو إيقافه مؤقتًا.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb index 088c376..bf384c1 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_as.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">কমলা</translation> <translation id="1198865190323699001">স্পৰ্শেৰে কৰা নিৰ্দেশ</translation> <translation id="1201402288615127009">পৰৱৰ্তী</translation> +<translation id="1202112913213080585">বাতিল কৰক</translation> <translation id="1206619573307042055">মাৰ্কী</translation> <translation id="1207086294218137981">কোনো পৰৱর্তী স্তৰ ৪ৰ শিৰোনাম নাই</translation> <translation id="1212770441379271564">পৰৱর্তী শ্বৰ্টকাট কিছুমান ChromeVoxৰ নির্দেশনা নহয়, কিন্তু সেইবোৰ Chromeৰ সুবিধাবোৰ পার্যমানে ব্যৱহাৰ কৰাৰ বাবে এতিয়াও বৰ উপযোগী। @@ -43,6 +44,7 @@ Chrome ব্ৰাউজাৰৰ মেনু খুলিবলৈ অল্ট+F টিপক।</translation> <translation id="1213216066620407844">ChromeVox - Chromeক ধ্বনিৰ সুবিধা দিয়া হৈছে</translation> <translation id="1225969361094801578">গাঢ় স্লেট গ্ৰে'</translation> +<translation id="122928249241119550">পূৰ্বৱৰ্তী বাক্যটোলৈ নিয়ক</translation> <translation id="1230503547248836149">বাছনিৰ আৰম্ভণি</translation> <translation id="1236794971743289975">এণ্ডন‘ট</translation> <translation id="1237797094773582699">একেদৰে, পূৰ্বৱৰ্তী শাখাটোলৈ নিবলৈ চাৰিটা আঙুলিৰে সোঁফালৰ পৰা বাওঁফাললৈ ছোৱাইপ কৰাটো ব্যৱহাৰ কৰিব পৰা যায়। এইটো এতিয়াই কৰি চাওক!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ড'জাৰ ব্লু</translation> <translation id="2438712309510062123">পৰামৰ্শ</translation> <translation id="2450814015951372393">চ্চেক বাকচ</translation> +<translation id="2450992626945324272">পৰৱৰ্তী বাক্যটোলৈ নিয়ক</translation> <translation id="2461822463642141190">বৰ্তমান</translation> <translation id="2462626033734746142">ৰেডিঅ’ বুটামৰ গোট</translation> <translation id="2467741090055146971">বাছনিৰ পৰা আঁতৰাওক</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">কেডেট ব্লু</translation> <translation id="4217571870635786043">শ্ৰুতলিপি</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ডেশ্ব}one{#ডাল ডেশ্ব}other{#ডাল ডেশ্ব}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" />ৰ পৰা <ph name="END_PHRASE" />ৰ মাজত বাছনি কৰক</translation> <translation id="4221012616705981690">কোনো পূৰ্বৱৰ্তী সূচী নাই</translation> <translation id="4225355998815256469">নিয়ন্ত্ৰণসমূহৰ পৰা</translation> <translation id="4230834257931120629">পাতল স্লেট গ্ৰে'</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">কোনো লিষ্টবক্স বা কম্ব’ বক্স</translation> +<translation id="613344593214611552">পূৰ্বৱৰ্তী বাক্যটো মচক</translation> <translation id="6142308968191113180">শিৰোনাম ৪</translation> <translation id="6150023170003443621">হালধীয়া সেউজীয়া</translation> <translation id="6158882249329863701">শাৰী <ph name="TABLECELLROWINDEX" /> স্তম্ভ<ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">পৃষ্ঠাটো তলৰ অংশলৈ পোনপটীয়াকৈ যাওক</translation> <translation id="6187190722927752226">একুৱামেৰিণৰ দৰে ৰঙৰ</translation> <translation id="6197361807490522975">গাঢ় নীলা</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" />ৰ সলনি <ph name="INSERT_PHRASE" /> ব্যৱহাৰ কৰক</translation> <translation id="6236061028292614533">পৰৱর্তী শিৰোনাম</translation> <translation id="6254901459154107917">সম্পাদনা কৰিব পৰা পৰৱর্তী পাঠৰ ক্ষেত্ৰ</translation> <translation id="6259464875943891919"><ph name="TYPE" />ক বাহিৰ কৰা হৈছে।</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">বিৱৰণ সূচীৰ সবিশেষ</translation> <translation id="7370432716629432284">{COUNT,plural, =1{এম্পাৰছেণ্ড}one{#টা এম্পাৰছেণ্ড}other{#টা এম্পাৰছেণ্ড}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">পূৰ্বৱৰ্তী বৰ্ণটো মচক</translation> <translation id="738899727977260036">স্লে'ট ব্লু</translation> <translation id="7393979322571982935">ধ্বনি আৰু ছেটিং</translation> <translation id="739763518212184081">আগৰ শাৰী</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">পাতল সোণালী ৰ'ড হালধীয়া</translation> <translation id="7543255924852002459">লেবেল বাতিল কৰক</translation> <translation id="7552432549459840808">কামত অহা Chrome শ্বৰ্টকাট</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" />ৰ পূৰ্বে <ph name="INSERT_PHRASE" /> ভৰাওক</translation> <translation id="7569983096843329377">ক'লা</translation> <translation id="7579911500627256166">বিন্দু <ph name="DOT" /></translation> <translation id="7592060599656252486">কিছুমান</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">পাঠ আৰু URL এণ্ট্ৰী সম্পাদনা কৰক</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">পূৰ্বৱৰ্তী ৰেডিঅ’ বুটাম</translation> +<translation id="7696631298608145306">পৰৱৰ্তী শব্দটোলৈ নিয়ক</translation> <translation id="7701040980221191251">নাই</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">স্বাভাৱিক কণ্ঠধ্বনি</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">সৰ্বাধিক <ph name="X" /></translation> <translation id="84575901236241018">এক্সেছৰ <ph name="KEY" /> চাবিটো আছে</translation> <translation id="8463645336674919227">ব্যাকৰণৰ ভুল বাদ দি থকা হৈছে</translation> +<translation id="8465573210279050749">পূৰ্বৱৰ্তী শব্দটো মচক</translation> <translation id="847040613207937740">কোনো পৰৱর্তী চেকবাকচ নাই</translation> <translation id="8473540203671727883">মাউছৰ তলত থকা পাঠ কৈ শুনাওক</translation> <translation id="8476408756881832830">ChromeVoxএ কিবা কৈ থাকিলে প্লে’বেল পজ কৰক</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{পাইপ}one{#ডাল উলম্ব পাইপ}other{#ডাল উলম্ব পাইপ}}</translation> <translation id="8741370088760768424">ইংগিত: বৰ্তমানৰ বস্তুটো সক্ৰিয় কৰিবলৈ ছাৰ্চ + স্পেছ টিপক।</translation> <translation id="8743786158317878347">সুসংগত সমল দিয়ক, যেনে তালিকা</translation> +<translation id="8746846427395705317">পূৰ্বৱৰ্তী শব্দটোলৈ নিয়ক</translation> <translation id="8747966237988593539">অ'ৰ্ডাৰ দিয়া সূচী</translation> <translation id="8749988712346667988">ৰূপালী</translation> <translation id="875769700429317857"><ph name="FILE_NAME" />ৰ ডাউনল'ড সম্পূর্ণ হ'ল</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">কোনো পূর্বৱর্তী শাখা নাই</translation> <translation id="89720367119469899">ESCAPE</translation> <translation id="8978496506222343566">টুল টিপ</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> মচক</translation> <translation id="8986362086234534611">পাহৰক</translation> <translation id="8989104346085848538">বৰ্তমানৰ ChromeVoxৰ যিকোনো কথন বন্ধ কৰিবলৈ, ক'ণ্ট্ৰল কীটো টিপক।</translation> <translation id="8993737615451556423">এইটোৱে পঢ়াৰ কণ্ঠস্বৰৰ গতি বৃদ্ধি, হ্ৰাস আৰু পজ কৰাৰ নিয়ন্ত্ৰণ প্ৰদান কৰে</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb index cc2a157..f5e80a9 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_az.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Narıncı</translation> <translation id="1198865190323699001">Toxunma Jestləri</translation> <translation id="1201402288615127009">Növbəti</translation> +<translation id="1202112913213080585">ləğv edin</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Sonrakı 4-cü səviyyə başlığı yoxdur</translation> <translation id="1212770441379271564">Növbəti bir neçə qısayol ChromeVox əmri deyil, lakin Chrome'dan maksimum yararlanmaq üçün faydalıdır. @@ -43,6 +44,7 @@ Chrome brauzer menyusunu açmaq üçün Alt+F üzərinə basın.</translation> <translation id="1213216066620407844">ChromeVox - Chrome'a Səs verilməsi</translation> <translation id="1225969361094801578">Tünd Barıt Bozu</translation> +<translation id="122928249241119550">əvvəlki cümləyə keçin</translation> <translation id="1230503547248836149">Seçim başlanğıcı</translation> <translation id="1236794971743289975">Son qeyd</translation> <translation id="1237797094773582699">Eynilə, sağdan sola dörd barmağınızla sürüşdürmək əvvəlki bölməyə keçmək üçün istifadə edilə bilər. İndi sınayın!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Parlaq Mavi</translation> <translation id="2438712309510062123">Təklif edin</translation> <translation id="2450814015951372393">Qeyd xanası</translation> +<translation id="2450992626945324272">növbəti cümləyə keçin</translation> <translation id="2461822463642141190">Cari</translation> <translation id="2462626033734746142">Radio düyməsi qrupu</translation> <translation id="2467741090055146971">seçimi silin</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Bozumtul Mavi</translation> <translation id="4217571870635786043">İmla</translation> <translation id="4218529045364428769">{COUNT,plural, =1{tire}other{# tire}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" /> ifadəsindən <ph name="END_PHRASE" /> ifadəsinə qədər seçin</translation> <translation id="4221012616705981690">Öncəki siyahı yoxdur</translation> <translation id="4225355998815256469">Forma İdarələri</translation> <translation id="4230834257931120629">Açıq-barıt Bozu</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Siyahı xanası və ya siyahı pəncərəsi</translation> +<translation id="613344593214611552">əvvəlki cümləni silin</translation> <translation id="6142308968191113180">Başlıq 4</translation> <translation id="6150023170003443621">Sarımtıl Yaşıl</translation> <translation id="6158882249329863701">sıra <ph name="TABLECELLROWINDEX" /> sütun <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Səhifənin aşağısına keçin</translation> <translation id="6187190722927752226">Göyümtül Yaşıl</translation> <translation id="6197361807490522975">Tünd-mavi</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" /> ifadəsini <ph name="INSERT_PHRASE" /> ilə əvəz edin</translation> <translation id="6236061028292614533">Növbəti başlıq</translation> <translation id="6254901459154107917">Növbəti redaktə edilə bilən sahə</translation> <translation id="6259464875943891919"><ph name="TYPE" /> üzərindən çıxdı.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Təsvir siyahısı təfsilatı</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ampersand}other{# ampersand}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">əvvəlki simvolu silin</translation> <translation id="738899727977260036">Barıt Mavisi</translation> <translation id="7393979322571982935">Səslər və parametrlər</translation> <translation id="739763518212184081">Öncəki Xətt</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Açıq-qızılı Sarı</translation> <translation id="7543255924852002459">Etiketdən imtina edin</translation> <translation id="7552432549459840808">Faydalı Chrome Qısayolları</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> ifadəsindən əvvələ <ph name="INSERT_PHRASE" /> əlavə edin</translation> <translation id="7569983096843329377">Qara</translation> <translation id="7579911500627256166">nöqtə <ph name="DOT" /></translation> <translation id="7592060599656252486">Bəzi</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Mətni redaktə edin, URL girişi</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Əvvəlki radio düyməsi</translation> +<translation id="7696631298608145306">növbəti sözə keçin</translation> <translation id="7701040980221191251">Heç bir</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Təbii səs</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Maks <ph name="X" /></translation> <translation id="84575901236241018">giriş açarı var, <ph name="KEY" /></translation> <translation id="8463645336674919227">Qrammatik səhvlərdən çıxılır</translation> +<translation id="8465573210279050749">əvvəlki sözü silin</translation> <translation id="847040613207937740">Sonrakı qeyd xanası yoxdur</translation> <translation id="8473540203671727883">Mətni maus ilə səsləndirin</translation> <translation id="8476408756881832830">ChromeVox danışanda oxutmağa fasilə verin</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{xətt}other{# vertikal xətlər}}</translation> <translation id="8741370088760768424">İpucu: Cari elementi aktivləşdirmək üçün Axtarış + Boşluq düymələrinə basın.</translation> <translation id="8743786158317878347">cədvəllər kimi strukturlaşdırılmış məzmun daxil edin</translation> +<translation id="8746846427395705317">əvvəlki sözə keçin</translation> <translation id="8747966237988593539">Sifariş siyahısı</translation> <translation id="8749988712346667988">Gümüşü</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> faylının endirilməsi tamamlandı</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Öncəki bölmə yoxdur</translation> <translation id="89720367119469899">Çıxın</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> ifadəsini silin</translation> <translation id="8986362086234534611">Unudun</translation> <translation id="8989104346085848538">İstənilən cari ChromeVox nitqini dayandırmaq üçün Control düyməsinə basın.</translation> <translation id="8993737615451556423">Oxu səsini sürətləndirmək, yavaşlatmaq və durdurmaq üçün nizamlayıcılar təmin edir</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb index 84d5dc6..da39791f 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_bg.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">оранжево</translation> <translation id="1198865190323699001">Жестове с докосване</translation> <translation id="1201402288615127009">Напред</translation> +<translation id="1202112913213080585">отказ</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Няма следващо заглавие от четвърто ниво</translation> <translation id="1212770441379271564">Следващите няколко клавишни комбинации не са команди на ChromeVox, но са много полезни за пълноценна работа с Chrome. @@ -43,6 +44,7 @@ За да отворите менюто на браузъра Chrome, натиснете Alt + F.</translation> <translation id="1213216066620407844">ChromeVox – Chrome получава глас</translation> <translation id="1225969361094801578">тъмно шистовосиво</translation> +<translation id="122928249241119550">преминаване към предишното изречение</translation> <translation id="1230503547248836149">Начало на избирането</translation> <translation id="1236794971743289975">Бележка в края</translation> <translation id="1237797094773582699">По същия начин жестът с прекарване на четири пръста от дясно наляво може да се използва за придвижване към предишната секция. Изпробвайте го сега!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">яркосиньо</translation> <translation id="2438712309510062123">Направете предложение</translation> <translation id="2450814015951372393">Квадратче за отметка</translation> +<translation id="2450992626945324272">преминаване към следващото изречение</translation> <translation id="2461822463642141190">Ток</translation> <translation id="2462626033734746142">Група бутони за избор</translation> <translation id="2467741090055146971">премахване на избора</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">ненаситен тъмен циан</translation> <translation id="4217571870635786043">Диктуване</translation> <translation id="4218529045364428769">{COUNT,plural, =1{тире}other{# тирета}}</translation> +<translation id="4220024144662591089">избиране от <ph name="START_PHRASE" /> до <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Няма предишен списък</translation> <translation id="4225355998815256469">Контроли на формуляр</translation> <translation id="4230834257931120629">светло шистовосиво</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">бутон</translation> <translation id="6132506484792346370">Списъчно поле или разгъващ се списък</translation> +<translation id="613344593214611552">изтриване на предишното изречение</translation> <translation id="6142308968191113180">Заглавие от четвърто ниво</translation> <translation id="6150023170003443621">наситено зелено</translation> <translation id="6158882249329863701">ред <ph name="TABLECELLROWINDEX" />, колона <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Преминаване към края на страницата</translation> <translation id="6187190722927752226">аквамарин</translation> <translation id="6197361807490522975">тъмносиньо</translation> +<translation id="6218813441317556731">замяна на <ph name="DELETE_PHRASE" /> със <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Следващото заглавие</translation> <translation id="6254901459154107917">Следващата текстова област, която може да се редактира</translation> <translation id="6259464875943891919">Излязохте от <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Подробности в списък с описания</translation> <translation id="7370432716629432284">{COUNT,plural, =1{амперсанд}other{# амперсанда}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">изтриване на предишния знак</translation> <translation id="738899727977260036">шистовосиньо</translation> <translation id="7393979322571982935">Звуци и настройки</translation> <translation id="739763518212184081">Предишният ред</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">светлозлатисто</translation> <translation id="7543255924852002459">Отхвърляне на етикета</translation> <translation id="7552432549459840808">Полезни клавишни комбинации в Chrome</translation> +<translation id="7553679324939294712">вмъкване на <ph name="INSERT_PHRASE" /> преди <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">черно</translation> <translation id="7579911500627256166">точка <ph name="DOT" /></translation> <translation id="7592060599656252486">Някои</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Поле за въвеждане на URL адрес</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Предишният бутон за избор</translation> +<translation id="7696631298608145306">преминаване към следващата дума</translation> <translation id="7701040980221191251">Няма</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Естествен глас</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Максимум <ph name="X" /></translation> <translation id="84575901236241018">има клавиш за достъп, „<ph name="KEY" />“</translation> <translation id="8463645336674919227">Напускате мястото с граматична грешка</translation> +<translation id="8465573210279050749">изтриване на предишната дума</translation> <translation id="847040613207937740">Няма следващо квадратче за отметка</translation> <translation id="8473540203671727883">Изговаряне на текста под курсора на мишката</translation> <translation id="8476408756881832830">Поставяне на възпроизвеждането на пауза, когато ChromeVox говори</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{вертикална черта}other{# вертикални черти}}</translation> <translation id="8741370088760768424">Съвет: Натиснете клавиша „търсене“ + интервал, за да активирате текущия елемент.</translation> <translation id="8743786158317878347">вход в структурирано съдържание, като например таблици</translation> +<translation id="8746846427395705317">преминаване към предишната дума</translation> <translation id="8747966237988593539">Подреден списък</translation> <translation id="8749988712346667988">сребристо</translation> <translation id="875769700429317857">Изтеглянето на <ph name="FILE_NAME" /> завърши</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Няма предишна секция</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">изтриване на <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Забравяне</translation> <translation id="8989104346085848538">За да спрете говора на ChromeVox, натиснете клавиша Control.</translation> <translation id="8993737615451556423">Предоставя контроли за ускоряване и забавяне на четенето, както и за поставянето му на пауза</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb index d9de7c5..5afeb6a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_de.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Orange</translation> <translation id="1198865190323699001">Touch-Gesten</translation> <translation id="1201402288615127009">Weiter</translation> +<translation id="1202112913213080585">abbrechen</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Keine nächste Überschrift der Ebene 4</translation> <translation id="1212770441379271564">Bei den nächsten Tastaturbefehlen handelt es sich zwar nicht um ChromeVox-Befehle, aber sie sind für die optimale Bedienung von Chrome dennoch sehr hilfreich. @@ -43,6 +44,7 @@ Um das Chrome-Browsermenü zu öffnen, drücke Alt + F.</translation> <translation id="1213216066620407844">ChromeVox – eine Stimme für Chrome</translation> <translation id="1225969361094801578">Dunkles Schiefergrau</translation> +<translation id="122928249241119550">zum vorherigen Satz wechseln</translation> <translation id="1230503547248836149">Beginn der Auswahl</translation> <translation id="1236794971743289975">Endnote</translation> <translation id="1237797094773582699">Du kannst auch mit vier Fingern von rechts nach links wischen, um zum vorherigen Abschnitt zu gelangen. Probiere es aus.</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Dodger-Blau</translation> <translation id="2438712309510062123">Vorschlagen</translation> <translation id="2450814015951372393">Kästchen</translation> +<translation id="2450992626945324272">zum nächsten Satz wechseln</translation> <translation id="2461822463642141190">Aktuell</translation> <translation id="2462626033734746142">Optionsfeldgruppe</translation> <translation id="2467741090055146971">diese Auswahl aufheben</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Graublau</translation> <translation id="4217571870635786043">Spracheingabe</translation> <translation id="4218529045364428769">{COUNT,plural, =1{Gedankenstrich}other{# Gedankenstriche}}</translation> +<translation id="4220024144662591089">zwischen <ph name="START_PHRASE" /> und <ph name="END_PHRASE" /> wählen</translation> <translation id="4221012616705981690">Keine vorherige Liste</translation> <translation id="4225355998815256469">Formularsteuerelemente</translation> <translation id="4230834257931120629">Helles Schiefergrau</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Ein Listen- oder Kombinationsfeld</translation> +<translation id="613344593214611552">vorherigen Satz löschen</translation> <translation id="6142308968191113180">Überschrift 4</translation> <translation id="6150023170003443621">Gelbgrün</translation> <translation id="6158882249329863701">Zeile <ph name="TABLECELLROWINDEX" />, Spalte <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Zum Seitenende</translation> <translation id="6187190722927752226">Aquamarinblau</translation> <translation id="6197361807490522975">Dunkelblau</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" /> durch <ph name="INSERT_PHRASE" /> ersetzen</translation> <translation id="6236061028292614533">Nächste Überschrift</translation> <translation id="6254901459154107917">Nächster bearbeitbarer Textbereich</translation> <translation id="6259464875943891919"><ph name="TYPE" /> beendet</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Beschreibungslistendetail</translation> <translation id="7370432716629432284">{COUNT,plural, =1{Und-Zeichen}other{# Und-Zeichen}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">vorheriges Zeichen löschen</translation> <translation id="738899727977260036">Schieferblau</translation> <translation id="7393979322571982935">Ton und Einstellungen</translation> <translation id="739763518212184081">Vorherige Zeile</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Helles Goldrutengelb</translation> <translation id="7543255924852002459">Label "Verwerfen"</translation> <translation id="7552432549459840808">Nützliche Tastenkombinationen in Chrome</translation> +<translation id="7553679324939294712"><ph name="INSERT_PHRASE" /> vor <ph name="BEFORE_PHRASE" /> einfügen</translation> <translation id="7569983096843329377">Schwarz</translation> <translation id="7579911500627256166">Punkt <ph name="DOT" /></translation> <translation id="7592060599656252486">Einige</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Text bearbeiten, URL-Eintrag</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Vorheriges Optionsfeld</translation> +<translation id="7696631298608145306">zum nächsten Wort wechseln</translation> <translation id="7701040980221191251">Keine</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Natürliche Stimme</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Max.: <ph name="X" /></translation> <translation id="84575901236241018">verfügt über den Zugriffsschlüssel <ph name="KEY" />.</translation> <translation id="8463645336674919227">Grammatikfehler wird verlassen</translation> +<translation id="8465573210279050749">vorheriges Wort löschen</translation> <translation id="847040613207937740">Kein nächstes Kästchen</translation> <translation id="8473540203671727883">Text unter dem Mauszeiger vorlesen</translation> <translation id="8476408756881832830">Wiedergabe pausieren, wenn eine Sprachausgabe durch ChromeVox stattfindet</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{senkrechter Strich}other{# senkrechte Striche}}</translation> <translation id="8741370088760768424">Hinweis: Wenn du das aktuelle Element aktivieren möchtest, drücke „Suchtaste + Leertaste“.</translation> <translation id="8743786158317878347">Strukturierte Inhalte wie z. B. Tabellen eingeben</translation> +<translation id="8746846427395705317">zum vorherigen Wort wechseln</translation> <translation id="8747966237988593539">Geordnete Liste</translation> <translation id="8749988712346667988">Silber</translation> <translation id="875769700429317857">Download von <ph name="FILE_NAME" /> abgeschlossen</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Kein vorheriger Abschnitt</translation> <translation id="89720367119469899">Esc-Taste</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> löschen</translation> <translation id="8986362086234534611">Entfernen</translation> <translation id="8989104346085848538">Wenn du die ChromeVox-Sprachausgabe anhalten möchtest, drücke die Steuerung-Taste.</translation> <translation id="8993737615451556423">Steuerelemente, damit die Vorlesestimme schneller oder langsamer liest oder pausiert</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb index aa706bc..8397c39 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_es-419.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Naranja</translation> <translation id="1198865190323699001">Gestos táctiles</translation> <translation id="1201402288615127009">Siguiente</translation> +<translation id="1202112913213080585">cancelar</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">No hay encabezados de nivel 4 siguientes</translation> <translation id="1212770441379271564">Los siguientes accesos directos no son comandos de ChromeVox, pero resultan muy útiles para aprovechar al máximo Chrome. @@ -43,6 +44,7 @@ Para abrir el menú del navegador Chrome, presiona Alt + F.</translation> <translation id="1213216066620407844">ChromeVox, la voz de Chrome</translation> <translation id="1225969361094801578">Gris pizarra oscuro</translation> +<translation id="122928249241119550">ir a la oración anterior</translation> <translation id="1230503547248836149">Inicio de la selección</translation> <translation id="1236794971743289975">Nota final</translation> <translation id="1237797094773582699">De forma similar, si deslizas cuatro dedos de derecha a izquierda, podrás moverte a la sección anterior. ¡Pruébalo ahora!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Azul dodger</translation> <translation id="2438712309510062123">Sugerir</translation> <translation id="2450814015951372393">Casilla de verificación</translation> +<translation id="2450992626945324272">ir a la oración siguiente</translation> <translation id="2461822463642141190">Actual</translation> <translation id="2462626033734746142">Grupo de botones de selección</translation> <translation id="2467741090055146971">anular la selección</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Azul grisáceo</translation> <translation id="4217571870635786043">Dictado</translation> <translation id="4218529045364428769">{COUNT,plural, =1{guion}other{# guiones}}</translation> +<translation id="4220024144662591089">seleccionar de <ph name="START_PHRASE" /> a <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">No hay listas anteriores</translation> <translation id="4225355998815256469">Controles de formulario</translation> <translation id="4230834257931120629">Gris pizarra claro</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Un cuadro de lista o uno combinado</translation> +<translation id="613344593214611552">borrar la oración anterior</translation> <translation id="6142308968191113180">Encabezado 4</translation> <translation id="6150023170003443621">Verde amarillo</translation> <translation id="6158882249329863701">Fila <ph name="TABLECELLROWINDEX" />, columna <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Ir al final de la página</translation> <translation id="6187190722927752226">Aguamarina</translation> <translation id="6197361807490522975">Azul oscuro</translation> +<translation id="6218813441317556731">reemplazar <ph name="DELETE_PHRASE" /> con <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Siguiente encabezado</translation> <translation id="6254901459154107917">Área de texto editable siguiente</translation> <translation id="6259464875943891919">Saliste de <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Detalle de la lista de descripciones</translation> <translation id="7370432716629432284">{COUNT,plural, =1{et}other{# signos et}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">borrar el carácter anterior</translation> <translation id="738899727977260036">Azul pizarra</translation> <translation id="7393979322571982935">Sonidos y configuración</translation> <translation id="739763518212184081">Línea anterior</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Amarillo oro claro</translation> <translation id="7543255924852002459">Etiqueta Descartar</translation> <translation id="7552432549459840808">Accesos directos útiles de Chrome</translation> +<translation id="7553679324939294712">insertar <ph name="INSERT_PHRASE" /> antes de <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Negro</translation> <translation id="7579911500627256166">punto <ph name="DOT" /></translation> <translation id="7592060599656252486">Algunos</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Editar texto, entrada de URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Botón de selección anterior</translation> +<translation id="7696631298608145306">ir a la palabra siguiente</translation> <translation id="7701040980221191251">Ninguna</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Voz natural</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Máximo <ph name="X" /></translation> <translation id="84575901236241018">tiene tecla de acceso, <ph name="KEY" /></translation> <translation id="8463645336674919227">Saliendo del error gramatical</translation> +<translation id="8465573210279050749">borrar la palabra anterior</translation> <translation id="847040613207937740">No hay casillas de verificación siguientes</translation> <translation id="8473540203671727883">Pronunciar el texto cuando pasas el puntero del mouse</translation> <translation id="8476408756881832830">Pausar la reproducción cuando ChromeVox esté hablando</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{barra vertical}other{# barras verticales}}</translation> <translation id="8741370088760768424">Sugerencia: Presiona Búsqueda + barra espaciadora para activar el elemento actual.</translation> <translation id="8743786158317878347">ingresar al contenido estructurado, como tablas</translation> +<translation id="8746846427395705317">ir a la palabra anterior</translation> <translation id="8747966237988593539">Lista ordenada</translation> <translation id="8749988712346667988">Plata</translation> <translation id="875769700429317857">Se completó la descarga de <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">No hay secciones anteriores</translation> <translation id="89720367119469899">Esc</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">borrar <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Borrar</translation> <translation id="8989104346085848538">Para silenciar la voz actual de ChromeVox, presiona la tecla Control.</translation> <translation id="8993737615451556423">Proporciona controles para aumentar y reducir la velocidad de la voz de lectura y pausarla.</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb index 02d0b0dc..dd17b044 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fi.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Oranssi</translation> <translation id="1198865190323699001">Kosketuseleet</translation> <translation id="1201402288615127009">Seuraava</translation> +<translation id="1202112913213080585">lopeta</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Ei seuraavia tason 4 otsikoita</translation> <translation id="1212770441379271564">Seuraavat pikanäppäimet eivät ole ChromeVox-komentoja, mutta ne auttavat silti käyttämään Chromea tehokkaasti. @@ -43,6 +44,7 @@ Avaa Chrome-selaimen valikko painamalla Alt + F.</translation> <translation id="1213216066620407844">ChromeVox – Chromen ääni</translation> <translation id="1225969361094801578">Tumma liuskekivenharmaa</translation> +<translation id="122928249241119550">siirry edelliseen lauseeseen</translation> <translation id="1230503547248836149">Valinnan alku</translation> <translation id="1236794971743289975">Loppuhuomautus</translation> <translation id="1237797094773582699">Voit myös siirtyä edelliseen osioon pyyhkäisemällä oikealta vasemmalle neljällä sormella. Kokeile nyt!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Vaalea keskisininen</translation> <translation id="2438712309510062123">Ehdota</translation> <translation id="2450814015951372393">Valintaruutu</translation> +<translation id="2450992626945324272">siirry seuraavaan lauseeseen</translation> <translation id="2461822463642141190">Nykyinen</translation> <translation id="2462626033734746142">Valintanappiryhmä</translation> <translation id="2467741090055146971">poista valinta</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Harmaa turkoosi</translation> <translation id="4217571870635786043">Sanelu</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ajatusviiva}other{# ajatusviivaa}}</translation> +<translation id="4220024144662591089">valitse väliltä <ph name="START_PHRASE" /> ‒ <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Ei edellisiä luetteloita</translation> <translation id="4225355998815256469">Lomakkeiden hallinta</translation> <translation id="4230834257931120629">Vaalea liuskekivenharmaa</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">pain.</translation> <translation id="6132506484792346370">Luetteloruutu tai yhdistelmäruutu</translation> +<translation id="613344593214611552">poista edellinen lause</translation> <translation id="6142308968191113180">Otsikko 4</translation> <translation id="6150023170003443621">Keltavihreä</translation> <translation id="6158882249329863701">rivi <ph name="TABLECELLROWINDEX" /> sarake <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Siirry sivun alaosaan</translation> <translation id="6187190722927752226">Akvamariini</translation> <translation id="6197361807490522975">Tummansininen</translation> +<translation id="6218813441317556731">korvaa <ph name="DELETE_PHRASE" /> tällä: <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Seuraava otsikko</translation> <translation id="6254901459154107917">Seuraava muokattava tekstialue</translation> <translation id="6259464875943891919">Poistuttu kohteesta <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Kuvausluettelon tiedot</translation> <translation id="7370432716629432284">{COUNT,plural, =1{et-merkki}other{# et-merkkiä}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">poista edellinen merkki</translation> <translation id="738899727977260036">Liuskekivensininen</translation> <translation id="7393979322571982935">Äänet ja asetukset</translation> <translation id="739763518212184081">Edellinen rivi</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Vaalea kultapiisku</translation> <translation id="7543255924852002459">Hylkää tunniste</translation> <translation id="7552432549459840808">Hyödyllisiä Chrome-pikanäppäimiä</translation> +<translation id="7553679324939294712">lisää <ph name="INSERT_PHRASE" /> tämän eteen: <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Musta</translation> <translation id="7579911500627256166">piste <ph name="DOT" /></translation> <translation id="7592060599656252486">Osa</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Muokkaa tekstiä, URL-osoite</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Edellinen valintanappi</translation> +<translation id="7696631298608145306">siirry seuraavaan sanaan</translation> <translation id="7701040980221191251">Ei mitään</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Luonnollinen ääni</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Enintään <ph name="X" /></translation> <translation id="84575901236241018">omistaa pääsyavaimen, <ph name="KEY" /></translation> <translation id="8463645336674919227">Poistutaan kielioppivirheestä</translation> +<translation id="8465573210279050749">poista edellinen sana</translation> <translation id="847040613207937740">Ei seuraavia valintaruutuja</translation> <translation id="8473540203671727883">Lue hiiren kohdalla oleva teksti ääneen</translation> <translation id="8476408756881832830">Keskeytä toisto, kun ChromeVox puhuu.</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{pystyviiva}other{# pystyviivaa}}</translation> <translation id="8741370088760768424">Vinkki: Aktivoi nykyinen kohde painamalla Haku + Välilyönti.</translation> <translation id="8743786158317878347">siirry rakenteelliseen sisältöön, kuten taulukkoon</translation> +<translation id="8746846427395705317">siirry edelliseen sanaan</translation> <translation id="8747966237988593539">Järjestetty luettelo</translation> <translation id="8749988712346667988">Hopea</translation> <translation id="875769700429317857">Tiedoston <ph name="FILE_NAME" /> lataus valmis</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Ei edellisiä osioita</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">poista <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Unohda</translation> <translation id="8989104346085848538">Pysäytä käynnissä oleva ChromeVox-puhe Control-näppäimellä.</translation> <translation id="8993737615451556423">Voit nopeuttaa ja hidastaa lukuääntä sekä keskeyttää sen</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb index 5a04537..6550048 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr-CA.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Orange</translation> <translation id="1198865190323699001">Gestes tactiles</translation> <translation id="1201402288615127009">Suivant</translation> +<translation id="1202112913213080585">annule</translation> <translation id="1206619573307042055">bannière défilante</translation> <translation id="1207086294218137981">Aucun en-tête de niveau 4 suivant</translation> <translation id="1212770441379271564">Les quelques raccourcis suivants ne sont pas des commandes de ChromeVox, mais elles restent très utiles pour profiter de Chrome au maximum. @@ -43,6 +44,7 @@ Pour ouvrir le menu du navigateur Chrome, appuyez sur Alt+F.</translation> <translation id="1213216066620407844">ChromeVox donne la parole à Google Chrome.</translation> <translation id="1225969361094801578">Gris ardoise foncé</translation> +<translation id="122928249241119550">passe à la phrase précédente</translation> <translation id="1230503547248836149">Début de la sélection</translation> <translation id="1236794971743289975">Note de fin</translation> <translation id="1237797094773582699">Vous pouvez utiliser le même geste, mais de droite à gauche, pour passer à la section précédente. Essayez maintenant!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Bleu toile</translation> <translation id="2438712309510062123">Suggérer</translation> <translation id="2450814015951372393">Case à cocher</translation> +<translation id="2450992626945324272">passe à la phrase suivante</translation> <translation id="2461822463642141190">Actuelle</translation> <translation id="2462626033734746142">Groupe de cases d'option</translation> <translation id="2467741090055146971">désélectionner</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Bleu cadet</translation> <translation id="4217571870635786043">Dictée</translation> <translation id="4218529045364428769">{COUNT,plural, =1{tiret}one{# tiret}other{# tirets}}</translation> +<translation id="4220024144662591089">sélectionne de <ph name="START_PHRASE" /> à <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Aucune liste précédente</translation> <translation id="4225355998815256469">Commandes de formulaire</translation> <translation id="4230834257931120629">Gris ardoise clair</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">visité</translation> <translation id="6122013438240733403">Bouton</translation> <translation id="6132506484792346370">Une zone de liste déroulante</translation> +<translation id="613344593214611552">supprime la phrase précédente</translation> <translation id="6142308968191113180">En-tête 4</translation> <translation id="6150023170003443621">Jaune-vert</translation> <translation id="6158882249329863701">rangée <ph name="TABLECELLROWINDEX" /> colonne <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Aller au bas de la page</translation> <translation id="6187190722927752226">Aigue-marine</translation> <translation id="6197361807490522975">Bleu foncé</translation> +<translation id="6218813441317556731">remplace <ph name="DELETE_PHRASE" /> par <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">En-tête suivant</translation> <translation id="6254901459154107917">Zone de texte modifiable suivante</translation> <translation id="6259464875943891919">Sorti de <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Détail de la liste de descriptions</translation> <translation id="7370432716629432284">{COUNT,plural, =1{perluète}one{# perluète}other{# perluètes}}</translation> <translation id="737396357417333429">cliquable</translation> +<translation id="7388656272362719103">supprime le caractère précédent</translation> <translation id="738899727977260036">Bleu ardoise</translation> <translation id="7393979322571982935">Sons et paramètres</translation> <translation id="739763518212184081">Ligne précédente</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Jaune or clair</translation> <translation id="7543255924852002459">Étiquette Supprimer</translation> <translation id="7552432549459840808">Raccourcis utiles de Google Chrome</translation> +<translation id="7553679324939294712">insère <ph name="INSERT_PHRASE" /> avant <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Noir</translation> <translation id="7579911500627256166">point <ph name="DOT" /></translation> <translation id="7592060599656252486">Certains</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Modifier le texte de l'adresse URL</translation> <translation id="7685589220304187312">barre d'outils</translation> <translation id="7693840228159394336">Case d'option précédente</translation> +<translation id="7696631298608145306">passe au mot suivant</translation> <translation id="7701040980221191251">Aucun</translation> <translation id="7701196182766842984">liste remplissage automatique</translation> <translation id="7713139339518499741">Voix naturelle</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Maximum <ph name="X" /></translation> <translation id="84575901236241018">dispose d'une touche d'accès, <ph name="KEY" /></translation> <translation id="8463645336674919227">Abandon de l'erreur grammaticale</translation> +<translation id="8465573210279050749">supprime le mot précédent</translation> <translation id="847040613207937740">Aucune case à cocher suivante</translation> <translation id="8473540203671727883">Dicter le texte sous la souris</translation> <translation id="8476408756881832830">Interrompre la lecture lorsque ChromeVox est en train de parler</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{barre verticale}one{# barre verticale}other{# barres verticales}}</translation> <translation id="8741370088760768424">Astuce : Appuyez sur Recherche+Espace pour activer l'élément actuel.</translation> <translation id="8743786158317878347">Entrer du contenu structuré, tel que des tableaux</translation> +<translation id="8746846427395705317">passe au mot précédent</translation> <translation id="8747966237988593539">Liste numérotée</translation> <translation id="8749988712346667988">Argent</translation> <translation id="875769700429317857">Téléchargement terminé : <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Aucune section précédente</translation> <translation id="89720367119469899">Échappement</translation> <translation id="8978496506222343566">infobulle</translation> +<translation id="898089897833732740">supprime <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Supprimer</translation> <translation id="8989104346085848538">Pour arrêter la diffusion vocale de ChromeVox, appuyez sur la touche Ctrl.</translation> <translation id="8993737615451556423">Offre des commandes permettant d'accélérer, de ralentir et d'interrompre la voix de lecture</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb index 07ae2d82..deb597fa 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fr.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Orange</translation> <translation id="1198865190323699001">Gestes tactiles</translation> <translation id="1201402288615127009">Suivant</translation> +<translation id="1202112913213080585">annuler</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Aucun titre de niveau 4 suivant</translation> <translation id="1212770441379271564">Les quelques nouveaux raccourcis qui suivent ne sont pas des commandes ChromeVox, mais ils restent très utiles pour exploiter tout le potentiel de Chrome. @@ -43,6 +44,7 @@ Pour ouvrir le menu du navigateur Chrome, appuyez sur Alt+F.</translation> <translation id="1213216066620407844">ChromeVox donne la parole à Google Chrome.</translation> <translation id="1225969361094801578">Gris ardoise foncé</translation> +<translation id="122928249241119550">aller à la phrase précédente</translation> <translation id="1230503547248836149">Début de la sélection</translation> <translation id="1236794971743289975">Note de fin</translation> <translation id="1237797094773582699">Essayez maintenant le même geste, mais de droite à gauche, pour passer à la section précédente.</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Bleu vif</translation> <translation id="2438712309510062123">Suggérer</translation> <translation id="2450814015951372393">Case à cocher</translation> +<translation id="2450992626945324272">aller à la phrase suivante</translation> <translation id="2461822463642141190">Consommation actuelle</translation> <translation id="2462626033734746142">Groupe de cases d'option</translation> <translation id="2467741090055146971">désélectionner</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Bleu-gris</translation> <translation id="4217571870635786043">Dictée</translation> <translation id="4218529045364428769">{COUNT,plural, =1{tiret}one{# tiret}other{# tirets}}</translation> +<translation id="4220024144662591089">sélectionner de <ph name="START_PHRASE" /> à <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Aucune liste précédente</translation> <translation id="4225355998815256469">Éléments de contrôle de formulaire</translation> <translation id="4230834257931120629">Gris ardoise clair</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">bouton</translation> <translation id="6132506484792346370">Une zone de liste ou une liste déroulante</translation> +<translation id="613344593214611552">supprimer la phrase précédente</translation> <translation id="6142308968191113180">Titre 4</translation> <translation id="6150023170003443621">Vert pomme</translation> <translation id="6158882249329863701">ligne <ph name="TABLECELLROWINDEX" />, colonne <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Aller au bas de la page</translation> <translation id="6187190722927752226">Aigue-marine</translation> <translation id="6197361807490522975">Bleu foncé</translation> +<translation id="6218813441317556731">remplacer <ph name="DELETE_PHRASE" /> par <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">En-tête suivant</translation> <translation id="6254901459154107917">Zone de texte modifiable suivante</translation> <translation id="6259464875943891919">Vous avez quitté <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Détails de la liste de descriptions</translation> <translation id="7370432716629432284">{COUNT,plural, =1{esperluette}one{# esperluette}other{# esperluettes}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">supprimer le caractère précédent</translation> <translation id="738899727977260036">Bleu ardoise</translation> <translation id="7393979322571982935">Sons et paramètres</translation> <translation id="739763518212184081">Ligne précédente</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Jaune paille clair</translation> <translation id="7543255924852002459">Libellé d'annulation</translation> <translation id="7552432549459840808">Raccourcis Chrome utiles</translation> +<translation id="7553679324939294712">insérer <ph name="INSERT_PHRASE" /> avant <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Noir</translation> <translation id="7579911500627256166">point <ph name="DOT" /></translation> <translation id="7592060599656252486">Partielle</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Modifier le texte de l'URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Case d'option précédente</translation> +<translation id="7696631298608145306">aller au mot suivant</translation> <translation id="7701040980221191251">Rien</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Voix naturelle</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">max. <ph name="X" /></translation> <translation id="84575901236241018">dispose d'une clé d'accès, <ph name="KEY" /></translation> <translation id="8463645336674919227">Abandon de l'erreur grammaticale</translation> +<translation id="8465573210279050749">supprimer le mot précédent</translation> <translation id="847040613207937740">Aucune case à cocher suivante</translation> <translation id="8473540203671727883">Prononcer le texte sous la souris</translation> <translation id="8476408756881832830">Interrompre la lecture pendant la diffusion des commentaires audio ChromeVox</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{barre verticale}one{# barre verticale}other{# barres verticales}}</translation> <translation id="8741370088760768424">Indice : Appuyez sur Recherche+Espace pour activer l'élément actuel.</translation> <translation id="8743786158317878347">saisir du contenu structuré, tel que des tableaux</translation> +<translation id="8746846427395705317">aller au mot précédent</translation> <translation id="8747966237988593539">Liste numérotée</translation> <translation id="8749988712346667988">Argent</translation> <translation id="875769700429317857">Le téléchargement du fichier <ph name="FILE_NAME" /> est terminé</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Aucune section précédente</translation> <translation id="89720367119469899">Échap</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">supprimer <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Retirer</translation> <translation id="8989104346085848538">Pour arrêter la diffusion vocale ChromeVox, appuyez sur la touche Ctrl.</translation> <translation id="8993737615451556423">Elles permettent d'accélérer, de ralentir et de suspendre la lecture à voix haute</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb index 9e5c49509..0a364de 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gl.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Laranxa</translation> <translation id="1198865190323699001">Xestos táctiles</translation> <translation id="1201402288615127009">Seguinte</translation> +<translation id="1202112913213080585">cancela o ditado</translation> <translation id="1206619573307042055">letreiro</translation> <translation id="1207086294218137981">Non hai ningunha cabeceira posterior de nivel 4</translation> <translation id="1212770441379271564">Os seguintes atallos non son comandos de ChromeVox, pero son moi útiles para aproveitar Chrome ao máximo. @@ -43,6 +44,7 @@ Para abrir o menú do navegador Chrome, preme Alt + F.</translation> <translation id="1213216066620407844">ChromeVox, a voz de Chrome</translation> <translation id="1225969361094801578">Gris lousa escuro</translation> +<translation id="122928249241119550">vai á frase anterior</translation> <translation id="1230503547248836149">Inicio de selección</translation> <translation id="1236794971743289975">Nota ao final</translation> <translation id="1237797094773582699">Así mesmo, podes pasar catro dedos da dereita á esquerda para ir á sección anterior. Próbao agora!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Azul Dodger</translation> <translation id="2438712309510062123">Suxerir</translation> <translation id="2450814015951372393">Caixa de verificación</translation> +<translation id="2450992626945324272">vai á frase seguinte</translation> <translation id="2461822463642141190">Actual</translation> <translation id="2462626033734746142">Grupo de botóns de opción</translation> <translation id="2467741090055146971">anular a selección</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Azul cadete</translation> <translation id="4217571870635786043">Ditado</translation> <translation id="4218529045364428769">{COUNT,plural, =1{guión}other{# guións}}</translation> +<translation id="4220024144662591089">selecciona desde <ph name="START_PHRASE" /> ata <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Non hai ningunha lista anterior</translation> <translation id="4225355998815256469">Controis de formulario</translation> <translation id="4230834257931120629">Gris lousa claro</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Unha caixa de lista ou unha caixa de combinación</translation> +<translation id="613344593214611552">elimina a frase anterior</translation> <translation id="6142308968191113180">Título 4</translation> <translation id="6150023170003443621">Verde amarelado</translation> <translation id="6158882249329863701">fila <ph name="TABLECELLROWINDEX" /> columna <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Salta á parte inferior da páxina</translation> <translation id="6187190722927752226">Augamariña</translation> <translation id="6197361807490522975">Azul escuro</translation> +<translation id="6218813441317556731">substitúe <ph name="DELETE_PHRASE" /> por <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Seguinte título</translation> <translation id="6254901459154107917">Seguinte área de texto editable</translation> <translation id="6259464875943891919">Saíuse de <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Detalle da lista de descricións</translation> <translation id="7370432716629432284">{COUNT,plural, =1{signo &}other{# signos &}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">elimina o carácter anterior</translation> <translation id="738899727977260036">Azul lousa</translation> <translation id="7393979322571982935">Sons e configuración</translation> <translation id="739763518212184081">Liña anterior</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Amarelo dourado claro</translation> <translation id="7543255924852002459">Descartar etiqueta</translation> <translation id="7552432549459840808">Atallos útiles de Chrome</translation> +<translation id="7553679324939294712">insire <ph name="INSERT_PHRASE" /> antes de <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Negro</translation> <translation id="7579911500627256166">punto <ph name="DOT" /></translation> <translation id="7592060599656252486">Algúns signos de puntuación</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Edita texto, entrada de URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Botón de opción anterior</translation> +<translation id="7696631298608145306">vai á palabra seguinte</translation> <translation id="7701040980221191251">Ningunha</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Voz natural</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Máx. <ph name="X" /></translation> <translation id="84575901236241018">ten clave de acceso, <ph name="KEY" /></translation> <translation id="8463645336674919227">Saíndo do erro gramatical</translation> +<translation id="8465573210279050749">elimina a palabra anterior</translation> <translation id="847040613207937740">Non hai ningunha caixa de verificación posterior</translation> <translation id="8473540203671727883">Pronunciar texto ao pasar por encima o punteiro do rato</translation> <translation id="8476408756881832830">Pausar a reprodución cando ChromeVox estea falando</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{barra vertical}other{# barras verticais}}</translation> <translation id="8741370088760768424">Suxestión: Para activar o elemento actual, preme Buscar + Espazo.</translation> <translation id="8743786158317878347">insire contido estruturado, como táboas</translation> +<translation id="8746846427395705317">vai á palabra anterior</translation> <translation id="8747966237988593539">Lista ordenada</translation> <translation id="8749988712346667988">Gris prateado</translation> <translation id="875769700429317857">Finalizou a descarga de <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Non hai ningunha sección anterior</translation> <translation id="89720367119469899">Esc</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">elimina <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Borrar</translation> <translation id="8989104346085848538">Para deter a voz de ChromeVox que estea soando actualmente, preme a tecla Control.</translation> <translation id="8993737615451556423">Ofrece controis para aumentar e reducir a velocidade de lectura, así como para poñer a voz en pausa</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb index 522d98d..b34a0ba 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_gu.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">નારંગી</translation> <translation id="1198865190323699001">ટચના સંકેતો</translation> <translation id="1201402288615127009">આગલું</translation> +<translation id="1202112913213080585">રદ કરો</translation> <translation id="1206619573307042055">માર્કી</translation> <translation id="1207086294218137981">કોઈ આગલું 'લેવલ 4' મથાળું નથી</translation> <translation id="1212770441379271564">આગલા અમુક શૉર્ટકટ ChromeVox આદેશો નથી, પરંતુ એ Chromeનો સર્વોત્તમ લાભ લેવા માટે હજી પણ ઉપયોગી છે. @@ -43,6 +44,7 @@ Chrome બ્રાઉઝર મેનૂ ખોલવા માટે, Alt+F દબાવો.</translation> <translation id="1213216066620407844">ChromeVox - Chromeને વૉઇસ આપવો</translation> <translation id="1225969361094801578">ઘાટો સ્લેટ ગ્રે</translation> +<translation id="122928249241119550">પાછલા વાક્ય પર ખસેડો</translation> <translation id="1230503547248836149">પસંદગીની શરૂઆત</translation> <translation id="1236794971743289975">અંતિમ નોંધ</translation> <translation id="1237797094773582699">તે જ પ્રમાણે, ચાર આંગળી વડે જમણેથી ડાબે સ્વાઇપ કરવાનો ઉપયોગ આગળના વિભાગને ખસેડવા માટે પણ કરી શકાય છે. હમણાં જ અજમાવી જુઓ!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ચળકતો ભૂરો</translation> <translation id="2438712309510062123">સૂચવો</translation> <translation id="2450814015951372393">ચેક બૉક્સ</translation> +<translation id="2450992626945324272">આગલા વાક્ય પર ખસેડો</translation> <translation id="2461822463642141190">વર્તમાન</translation> <translation id="2462626033734746142">રેડિઓ બટન જૂથ</translation> <translation id="2467741090055146971">નાપસંદ કરો</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">આછો ભૂરો</translation> <translation id="4217571870635786043">ડિક્ટેશન</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ડેશ}one{# ડેશ}other{# ડેશ}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" />થી <ph name="END_PHRASE" /> પસંદ કરો</translation> <translation id="4221012616705981690">કોઈ પાછલી સૂચિ નથી</translation> <translation id="4225355998815256469">નિયંત્રણો બનાવો</translation> <translation id="4230834257931120629">આછો સ્લેટ ગ્રે</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">સૂચિબોક્સ અથવા કોમ્બો બોક્સ</translation> +<translation id="613344593214611552">પાછલું વાક્ય ડિલીટ કરો</translation> <translation id="6142308968191113180">મથાળું 4</translation> <translation id="6150023170003443621">પીળો લીલો</translation> <translation id="6158882249329863701">પંક્તિ <ph name="TABLECELLROWINDEX" /> કૉલમ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">પૃચ્ઠમાં નીચે જાઓ</translation> <translation id="6187190722927752226">વાદળી લીલો</translation> <translation id="6197361807490522975">ઘાટો ભૂરો</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" />ને <ph name="INSERT_PHRASE" /> સાથે બદલો</translation> <translation id="6236061028292614533">આગલું મથાળું</translation> <translation id="6254901459154107917">આગલું સંપાદનયોગ્ય ટેક્સ્ટ ક્ષેત્ર</translation> <translation id="6259464875943891919"><ph name="TYPE" /> થી બહાર નીકળ્યાં છે.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">વર્ણનની સૂચિની વિગત</translation> <translation id="7370432716629432284">{COUNT,plural, =1{એમ્પરસેંડ}one{# એમ્પરસેંડ્સ}other{# એમ્પરસેંડ્સ}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">પાછલો અક્ષર ડિલીટ કરો</translation> <translation id="738899727977260036">સ્લેટ ભૂરો</translation> <translation id="7393979322571982935">સાઉન્ડ અને સેટિંગ</translation> <translation id="739763518212184081">પાછલી રેખા</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">આછો સોનેરી રૉડ પીળો</translation> <translation id="7543255924852002459">લેબલ કાઢી નાખો</translation> <translation id="7552432549459840808">સહાયરૂપ Chrome શૉર્ટકટ્સ</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> પહેલાં <ph name="INSERT_PHRASE" /> શામેલ કરો</translation> <translation id="7569983096843329377">શ્યામ</translation> <translation id="7579911500627256166">ટપકું <ph name="DOT" /></translation> <translation id="7592060599656252486">અમુક</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">ટેક્સ્ટ, URL એન્ટ્રીમાં ફેરફાર કરો</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">પાછલું રેડિયો બટન</translation> +<translation id="7696631298608145306">આગલા શબ્દ પર ખસેડો</translation> <translation id="7701040980221191251">કોઈ નથી</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">સાહજિક અવાજ</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">મહત્તમ <ph name="X" /></translation> <translation id="84575901236241018">ઍક્સેસ કી ધરાવે છે, <ph name="KEY" /></translation> <translation id="8463645336674919227">વ્યાકરણની ભૂલ છોડી દેવી</translation> +<translation id="8465573210279050749">પાછલો શબ્દ ડિલીટ કરો</translation> <translation id="847040613207937740">કોઈ આગલું ચેકબૉક્સ નથી</translation> <translation id="8473540203671727883">માઉસ હેઠળ આવતી ટેક્સ્ટ બોલો</translation> <translation id="8476408756881832830">ChromeVox બોલી રહ્યું હોય ત્યારે પ્લેબેક થોભાવો</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{પાઇપ}one{# વર્ટિકલ પાઇપ}other{# વર્ટિકલ પાઇપ}}</translation> <translation id="8741370088760768424">હિન્ટ: વર્તમાન આઇટમને સક્રિય કરવા માટે Search + Space દબાવો.</translation> <translation id="8743786158317878347">ગણિત કે ટેબલ જેવું કન્ટેન્ટ દાખલ કરો</translation> +<translation id="8746846427395705317">પાછલા શબ્દ પર ખસેડો</translation> <translation id="8747966237988593539">ક્રમાંકિત સૂચિ</translation> <translation id="8749988712346667988">સિલ્વર</translation> <translation id="875769700429317857"><ph name="FILE_NAME" />નું ડાઉનલોડ પૂરું શરૂ થયું</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">કોઈ પાછલો વિભાગ નથી</translation> <translation id="89720367119469899">બહાર નીકળો</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> ડિલીટ કરો</translation> <translation id="8986362086234534611">ભૂલી ગયા</translation> <translation id="8989104346085848538">કોઈપણ વર્તમાન ChromeVox સ્પીચ રોકવા માટે, Control કી દબાવો.</translation> <translation id="8993737615451556423">વાંચવાના અવાજની ઝડપ વધારવા, ધીમી કરવા અને થોભાવવા મટે નિયંત્રણો પ્રદાન કરે છે</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb index e02530fb..dc69bf56 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_iw.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">כתום</translation> <translation id="1198865190323699001">פקודות מגע</translation> <translation id="1201402288615127009">הבא</translation> +<translation id="1202112913213080585">cancel</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">אין עוד כותרות מרמה 4</translation> <translation id="1212770441379271564">מקשי הקיצור הבאים אינם פקודות ChromeVox, אבל הם עדיין שימושיים מאוד אם רוצים לנצל את כל היתרונות של Chrome. @@ -43,6 +44,7 @@ כדי לפתוח את התפריט של דפדפן Chrome, מקישים על Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - מתן קול ל-Chrome</translation> <translation id="1225969361094801578">אפור תכלת כהה</translation> +<translation id="122928249241119550">move to the previous sentence</translation> <translation id="1230503547248836149">התחלת בחירה</translation> <translation id="1236794971743289975">הערת סיום</translation> <translation id="1237797094773582699">אפשר גם להחליק בעזרת ארבע אצבעות משמאל לימין כדי לעבור לקטע הקודם. אפשר לנסות עכשיו!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">כחול בהיר</translation> <translation id="2438712309510062123">הצעה</translation> <translation id="2450814015951372393">תיבת סימון</translation> +<translation id="2450992626945324272">move to the next sentence</translation> <translation id="2461822463642141190">כרגע</translation> <translation id="2462626033734746142">קבוצת לחצני בחירה</translation> <translation id="2467741090055146971">ביטול הבחירה</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">כחול אפרפר</translation> <translation id="4217571870635786043">הכתבה</translation> <translation id="4218529045364428769">{COUNT,plural, =1{מקף}two{# סימני מקף}many{# סימני מקף}other{# סימני מקף}}</translation> +<translation id="4220024144662591089">select from <ph name="START_PHRASE" /> to <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">אין רשימה קודמת</translation> <translation id="4225355998815256469">פקדי טופס</translation> <translation id="4230834257931120629">אפור תכלת בהיר</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">תיבת רשימה או תיבה משולבת</translation> +<translation id="613344593214611552">delete the previous sentence</translation> <translation id="6142308968191113180">כותרת 4</translation> <translation id="6150023170003443621">ירוק צהוב</translation> <translation id="6158882249329863701">שורה <ph name="TABLECELLROWINDEX" /> עמודה <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">דילוג לתחתית הדף</translation> <translation id="6187190722927752226">ירוק כחלחל</translation> <translation id="6197361807490522975">כחול כהה</translation> +<translation id="6218813441317556731">replace <ph name="DELETE_PHRASE" /> with <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">הכותרת הבאה</translation> <translation id="6254901459154107917">האזור הבא בטקסט הניתן לעריכה</translation> <translation id="6259464875943891919">יצאת מ-<ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">פרטי רשימת תיאורים</translation> <translation id="7370432716629432284">{COUNT,plural, =1{אמפרסנד (&)}two{# סימני אמפרסנד (&)}many{# סימני אמפרסנד (&)}other{# סימני אמפרסנד (&)}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">delete the previous character</translation> <translation id="738899727977260036">כחול סגלגל</translation> <translation id="7393979322571982935">צלילים והגדרות</translation> <translation id="739763518212184081">השורה הקודמת</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">צהוב מטה-זהב בהיר</translation> <translation id="7543255924852002459">מחיקת תווית</translation> <translation id="7552432549459840808">מקשי קיצור מועילים ב-Chrome</translation> +<translation id="7553679324939294712">insert <ph name="INSERT_PHRASE" /> before <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">שחור</translation> <translation id="7579911500627256166">נקודה <ph name="DOT" /></translation> <translation id="7592060599656252486">חלק</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">עריכת טקסט, רשומת כתובת אתר</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">לחצן הבחירה הקודם</translation> +<translation id="7696631298608145306">move to the next word</translation> <translation id="7701040980221191251">אין</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">קול טבעי</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">מקסימום <ph name="X" /></translation> <translation id="84575901236241018">כולל מקש גישה, <ph name="KEY" /></translation> <translation id="8463645336674919227">יציאה משגיאת דקדוק</translation> +<translation id="8465573210279050749">delete the previous word</translation> <translation id="847040613207937740">אין עוד תיבות סימון</translation> <translation id="8473540203671727883">הקראת הטקסט שנמצא מתחת לסמן של העכבר</translation> <translation id="8476408756881832830">אני רוצה להשהות את ההשמעה כשתוסף ה-ChromeVox מקריא</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{קו ניצב}two{# סימני קו ניצב}many{# סימני קו ניצב}other{# סימני קו ניצב}}</translation> <translation id="8741370088760768424">רמז: עליך להקיש על מקש החיפוש ועל הרווח כדי להפעיל את הפריט הנוכחי.</translation> <translation id="8743786158317878347">כניסה לתוכן מובנה, כמו טבלאות</translation> +<translation id="8746846427395705317">move to the previous word</translation> <translation id="8747966237988593539">רשימה לפי סדר</translation> <translation id="8749988712346667988">כסף</translation> <translation id="875769700429317857">ההורדה של <ph name="FILE_NAME" /> הושלמה</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">אין קטע קודם</translation> <translation id="89720367119469899">Esc</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">delete <ph name="PHRASE" /></translation> <translation id="8986362086234534611">לשכוח</translation> <translation id="8989104346085848538">כדי להפסיק את הדיבור הפעיל של ChromeVox, יש להקיש על מקש Control.</translation> <translation id="8993737615451556423">מספקת פקדים כדי להאיץ, להאט ולהשהות את קול ההקראה</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb index 9db87d90..6770750 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ka.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">ნარინჯისფერი</translation> <translation id="1198865190323699001">შეხების ჟესტები</translation> <translation id="1201402288615127009">შემდეგი</translation> +<translation id="1202112913213080585">გაუქმება</translation> <translation id="1206619573307042055">მორბენალი სტრიქონი</translation> <translation id="1207086294218137981">შემდეგი მე-4 დონის სათაური არ არის</translation> <translation id="1212770441379271564">ქვემოთ მოცემული რამდენიმე მალსახმობი ChromeVox-ის ბრძანებებს არ წარმოადგენს, თუმცა მათი მეშვეობით Chrome-ის მაქსიმალურად გამოყენებას შეძლებთ. @@ -43,6 +44,7 @@ Chrome ბრაუზერის მენიუს გასახსნელად დააჭირეთ კლავიშთა შემდეგ კომბინაციას: Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - Chrome-თვის ხმის მიცემა</translation> <translation id="1225969361094801578">მუქი ასპიდისფერი ნაცრისფერი</translation> +<translation id="122928249241119550">წინა წინადადებაზე გადასვლა</translation> <translation id="1230503547248836149">არჩევანის დასაწყისი</translation> <translation id="1236794971743289975">საბოლოო შენიშვნა</translation> <translation id="1237797094773582699">ამის მსგავსად, ოთხი თითით მარჯვნიდან მარცხნივ გადაფურცვლით შესაძლებელია წინა სექციაზე გადასვლა. ცადეთ ახლავე!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ღია ფოლადისფერი ლურჯი</translation> <translation id="2438712309510062123">შემოთავაზება</translation> <translation id="2450814015951372393">მოსანიშნი უჯრა</translation> +<translation id="2450992626945324272">შემდეგ წინადადებაზე გადასვლა</translation> <translation id="2461822463642141190">ამჟამინდელი</translation> <translation id="2462626033734746142">რადიო ღილაკის ჯგუფი</translation> <translation id="2467741090055146971">არჩევის გაუქმება</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">მონაცრისფრო ლურჯი</translation> <translation id="4217571870635786043">კარნახი</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ტირე}other{# ტირეები}}</translation> +<translation id="4220024144662591089">აირჩეს ფრაზიდან „<ph name="START_PHRASE" />“ ფრაზამდე „<ph name="END_PHRASE" />“</translation> <translation id="4221012616705981690">წინა სია არ არის</translation> <translation id="4225355998815256469">ფორმის მართვის საშუალებები</translation> <translation id="4230834257931120629">ღია ასპიდისფერი ნაცრისფერი</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">ღილაკი</translation> <translation id="6132506484792346370">სიის ველი ან კომბო-ველი</translation> +<translation id="613344593214611552">წინა წინადადების წაშლა</translation> <translation id="6142308968191113180">სათაური 4</translation> <translation id="6150023170003443621">მოყვითალო მწვანე</translation> <translation id="6158882249329863701">მწკრივი <ph name="TABLECELLROWINDEX" /> სვეტი <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">გადასვლა გვერდის ბოლოში</translation> <translation id="6187190722927752226">ბაცი მოცისფრო-მწვანე</translation> <translation id="6197361807490522975">მუქი ლურჯი</translation> +<translation id="6218813441317556731">ჩანაცვლდეს „<ph name="DELETE_PHRASE" />“ ფრაზით „<ph name="INSERT_PHRASE" />“</translation> <translation id="6236061028292614533">მომდევნო სათაური</translation> <translation id="6254901459154107917">შემდეგი რედაქტირებადი ტექსტის არე</translation> <translation id="6259464875943891919"><ph name="TYPE" /> დაიხურა.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">აღწერილობათა სიის დეტალი</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ამპერსანდი}other{# ამპერსანდები}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">წინა სიმბოლოს წაშლა</translation> <translation id="738899727977260036">ასპიდისფერი ლურჯი</translation> <translation id="7393979322571982935">ხმები და პარამეტრები</translation> <translation id="739763518212184081">წინა ხაზი</translation> @@ -940,6 +947,7 @@ <translation id="7533226154149229506">ღია ოქროწკეპლისფერი</translation> <translation id="7543255924852002459">დახურვის ლეიბლი</translation> <translation id="7552432549459840808">Chrome-ის სასარგებლო მალსახმობები</translation> +<translation id="7553679324939294712">ჩაისვას „<ph name="INSERT_PHRASE" />“ ფრაზამდე „<ph name="BEFORE_PHRASE" />“</translation> <translation id="7569983096843329377">შავი</translation> <translation id="7579911500627256166">წერტილი <ph name="DOT" /></translation> <translation id="7592060599656252486">ზოგიერთი</translation> @@ -963,6 +971,7 @@ <translation id="7684431668231950609">ტექსტის რედაქტირება, URL ჩანაწერი</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">წინა არჩევანის ღილაკი</translation> +<translation id="7696631298608145306">შემდეგ სიტყვაზე გადასვლა</translation> <translation id="7701040980221191251">არცერთი</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">ბუნებრივი ხმა</translation> @@ -1070,6 +1079,7 @@ <translation id="8455868257606149352">მაქს. <ph name="X" /></translation> <translation id="84575901236241018">გააჩნია წვდომის კლავიში, <ph name="KEY" /></translation> <translation id="8463645336674919227">გრამატიკული შეცდომა რჩება</translation> +<translation id="8465573210279050749">წინა სიტყვის წაშლა</translation> <translation id="847040613207937740">შემდეგი მოსანიშნი ველი არ არის</translation> <translation id="8473540203671727883">მაუსის კურსორის ქვეშ მოქცეული ტექსტის გახმოვანება</translation> <translation id="8476408756881832830">დაკვრის დაპაუზება, როცა ChromeVox საუბრობს</translation> @@ -1106,6 +1116,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{მილი}other{# ვერტიკალური მილები}}</translation> <translation id="8741370088760768424">მინიშნება: მიმდინარე ერთეულის გასააქტიურებლად გამოიყენეთ კლავიშთა კომბინაცია Search + შორისი.</translation> <translation id="8743786158317878347">სტრუქტურირებული შიგთავსის შეყვანა, როგორიცაა ცხრილები</translation> +<translation id="8746846427395705317">წინა სიტყვაზე გადასვლა</translation> <translation id="8747966237988593539">შეკვეთილი სია</translation> <translation id="8749988712346667988">ვერცხლისფერი</translation> <translation id="875769700429317857">ჩამოტვირთვა დასრულდა <ph name="FILE_NAME" /></translation> @@ -1133,6 +1144,7 @@ <translation id="8970172509886453271">წინა სექცია არ არის</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">წაიშალოს „<ph name="PHRASE" />“</translation> <translation id="8986362086234534611">დავიწყება</translation> <translation id="8989104346085848538">ChromeVox გახმოვანების შესაწყვეტად დააჭირეთ Control კლავიშს.</translation> <translation id="8993737615451556423">გთავაზობთ წაკითხვის ხმის აჩქარების, შენელების და დაპაუზების მართვის საშუალებებს</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb index f0706d01..0e7f795 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_lo.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">ສີໝາກກ້ຽງ</translation> <translation id="1198865190323699001">ທ່າທາງສຳຜັດ</translation> <translation id="1201402288615127009">ຕໍ່ໄປ</translation> +<translation id="1202112913213080585">ຍົກເລີກ</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">ບໍ່ມີຫົວຂໍ້ລະດັບ 4 ຖັດໄປ</translation> <translation id="1212770441379271564">ທາງລັດສອງສາມອັນຕໍ່ໄປບໍ່ແມ່ນຄຳສັ່ງ ChromeVox, ແຕ່ພວກມັນກໍເປັນປະໂຫຍດຫຼາຍເຊັ່ນກັນສຳລັບການໃຊ້ປະໂຫຍດສູງສຸດຈາກ Chrome. @@ -43,6 +44,7 @@ ເພື່ອເປີດເມນູໂປຣແກຣມທ່ອງເວັບ Chrome, ກະລຸນາກົດ Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - ໃຫ້ສຽງກັບ Chrome</translation> <translation id="1225969361094801578">ສີເທົາອົມຟ້າເຂັ້ມ</translation> +<translation id="122928249241119550">ຍ້າຍໄປຫາປະໂຫຍກກ່ອນໜ້າ</translation> <translation id="1230503547248836149">ຈຸດເລີ່ມຕົ້ນສ່ວນທີ່ເລືອກ</translation> <translation id="1236794971743289975">ໝາຍເຫດທ້າຍເລື່ອງ</translation> <translation id="1237797094773582699">ໃນລັກສະນະດຽວກັນ, ທ່ານສາມາດປັດຈາກຂວາໄປຊ້າຍດ້ວຍສີ່ນິ້ວເພື່ອເລື່ອນໄປພາກສ່ວນກ່ອນໜ້າໄດ້. ລອງຕອນນີ້ເລີຍ!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ສີຟ້າດອດເຈີບລູ</translation> <translation id="2438712309510062123">ແນະນຳ</translation> <translation id="2450814015951372393">ກ່ອງໝາຍຕິກ</translation> +<translation id="2450992626945324272">ຍ້າຍໄປຫາປະໂຫຍກຕໍ່ໄປ</translation> <translation id="2461822463642141190">ປັດຈຸບັນ</translation> <translation id="2462626033734746142">ກຸ່ມປຸ່ມວິທະຍຸ</translation> <translation id="2467741090055146971">ບໍ່ເລືອກ</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">ສີຟ້າດຄາເດດບລູ</translation> <translation id="4217571870635786043">ການພິມຕາມຄຳບອກ</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ ເຄື່ອງໝາຍ -}other{ # ເຄື່ອງໝາຍ -}}</translation> +<translation id="4220024144662591089">ເລືອກຈາກ <ph name="START_PHRASE" /> ເຖິງ <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">ບໍ່ມີລາຍການກ່ອນໜ້າ</translation> <translation id="4225355998815256469">ການຄວບຄຸມຟອມ</translation> <translation id="4230834257931120629">ສີຂຽວສະເລດອ່ອນ</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">ປຸ່ມ</translation> <translation id="6132506484792346370">ກ່ອງລາຍການ ຫຼື ກ່ອງຄອມໂບ</translation> +<translation id="613344593214611552">ລຶບປະໂຫຍກກ່ອນໜ້າ</translation> <translation id="6142308968191113180">ຫົວຂໍ້ 4</translation> <translation id="6150023170003443621">ສີຂຽວອົມເຫຼືອງ</translation> <translation id="6158882249329863701">ແຖວ <ph name="TABLECELLROWINDEX" /> ຖັນ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">ໂດດໄປຫາດ້ານລຸ່ມຂອງໜ້າ</translation> <translation id="6187190722927752226">ສີຂຽວອົມຟ້າ</translation> <translation id="6197361807490522975">ສີຟ້າເຂັ້ມ</translation> +<translation id="6218813441317556731">ແທນທີ່ <ph name="DELETE_PHRASE" /> ດ້ວຍ <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">ຫົວຂໍ້ຕໍ່ໄປ</translation> <translation id="6254901459154107917">ພື້ນທີ່ຂໍ້ຄວາມດັດແກ້ໄດ້ຕໍ່ໄປ</translation> <translation id="6259464875943891919">ອອກແລ້ວ <ph name="TYPE" /> .</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">ລາຍລະອຽດລາຍການຄຳອະທິບາຍ</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ ເຄື່ອງໝາຍ &}other{ # ເຄື່ອງໝາຍ &}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">ລຶບຕົວອັກສອນກ່ອນໜ້າ</translation> <translation id="738899727977260036">ສີຟ້າອົມເທົາ</translation> <translation id="7393979322571982935">ສຽງ ແລະ ການຕັ້ງຄ່າ</translation> <translation id="739763518212184081">ແຖວຜ່ານມາ</translation> @@ -940,6 +947,7 @@ <translation id="7533226154149229506">ສີເຫຼືອງໂກນເດິນຣອດອ່ອນ</translation> <translation id="7543255924852002459">ຍົກເລີກປ້າຍກຳກັບ</translation> <translation id="7552432549459840808">ທາງລັດທີ່ເປັນປະໂຫຍດຂອງ Chrome</translation> +<translation id="7553679324939294712">ແຊກ <ph name="INSERT_PHRASE" /> ກ່ອນ <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">ສີດໍາ</translation> <translation id="7579911500627256166">ຈໍ້າ <ph name="DOT" /></translation> <translation id="7592060599656252486">ບາງສ່ວນ</translation> @@ -963,6 +971,7 @@ <translation id="7684431668231950609">ດັດແກ້ຂໍ້ຄວາມ, ການປ້ອນເຂົ້າ URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">ປຸ່ມວິທະຍຸຜ່ານມາ</translation> +<translation id="7696631298608145306">ຍ້າຍໄປຫາຄຳຕໍ່ໄປ</translation> <translation id="7701040980221191251">ບໍ່ມີ</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">ສຽງທຳມະຊາດ</translation> @@ -1070,6 +1079,7 @@ <translation id="8455868257606149352">ສູງສຸດ <ph name="X" /></translation> <translation id="84575901236241018">ມີປຸ່ມເຂົ້າຫາ, <ph name="KEY" /></translation> <translation id="8463645336674919227">ອອກຈາກຂໍ້ຜິດພາດທາງໄວຍະກອນ</translation> +<translation id="8465573210279050749">ລຶບຄຳກ່ອນໜ້າ</translation> <translation id="847040613207937740">ບໍ່ມີກ່ອງໝາຍຖັດໄປ</translation> <translation id="8473540203671727883">ເວົ້າຂໍ້ຄວາມຢູ່ກ້ອງເມົ້າ</translation> <translation id="8476408756881832830">ຢຸດການຫຼິ້ນໄວ້ຊົ່ວຄາວ ເມື່ອ ChromeVox ກຳລັງເວົ້າ</translation> @@ -1106,6 +1116,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{ ເຄື່ອງໝາຍ |}other{ # ເຄື່ອງໝາຍ | ລວງຕັ້ງ}}</translation> <translation id="8741370088760768424">ຄຳບອກໃບ້: ກົດຊອກຫາ + ຍະຫວ່າງເພື່ອເປີດໃຊ້ລາຍການປັດຈຸບັນ.</translation> <translation id="8743786158317878347">ເຂົ້າເນື້ອໃນທີ່ເຮັດເປັນໂຄງຮ່າງໄວ້, ເຊັ່ນ: ຕາຕະລາງ</translation> +<translation id="8746846427395705317">ຍ້າຍໄປຫາຄຳກ່ອນໜ້າ</translation> <translation id="8747966237988593539">ລາຍການທີ່ສັ່ງແລ້ວ</translation> <translation id="8749988712346667988">ສີເງິນ</translation> <translation id="875769700429317857">ດາວໂຫລດສຳເລັດແລ້ວ <ph name="FILE_NAME" /></translation> @@ -1133,6 +1144,7 @@ <translation id="8970172509886453271">ບໍ່ມີພາກສ່ວນກ່ອນໜ້າ</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">ລຶບ <ph name="PHRASE" /></translation> <translation id="8986362086234534611">ລືມ</translation> <translation id="8989104346085848538">ເພື່ອຢຸດສຽງເວົ້າປັດຈຸບັນໃນ ChromeVox ໃດໆກໍຕາມ, ກະລຸນາກົດປຸ່ມ Control.</translation> <translation id="8993737615451556423">ໃຫ້ການຄວບຄຸມເພື່ອເພີ່ມຄວາມໄວ, ຜ່ອນຄວາມໄວ ແລະ ຢຸດສຽງການອ່ານໄວ້ຊົ່ວຄາວ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb index db1b8a2c..7c872991 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_mr.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">नारिंगी</translation> <translation id="1198865190323699001">स्पर्श जेश्चर</translation> <translation id="1201402288615127009">पुढील</translation> +<translation id="1202112913213080585">रद्द करा</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">पुढील पातळी चार शीर्षक नाही</translation> <translation id="1212770441379271564">पुढील काही शॉर्टकट ChromeVox कमांड नाहीत, परंतु तरीही Chrome मधून बरेच काही मिळवण्यासाठी ते खूप उपयुक्त आहेत. @@ -43,6 +44,7 @@ Chrome ब्राउझर मेनू उघडण्यासाठी, Alt+F दाबा.</translation> <translation id="1213216066620407844">ChromeVox - Chrome ला आवाज देत आहे</translation> <translation id="1225969361094801578">गडद राखाडी</translation> +<translation id="122928249241119550">मागील वाक्यावर हलवा</translation> <translation id="1230503547248836149">निवडीची सुरुवात</translation> <translation id="1236794971743289975">तळटीप</translation> <translation id="1237797094773582699">त्याचप्रमाणे, उजवीकडून डावीकडे चार बोटांनी स्वाइप करणे हे यापूर्वीच्या विभागावर जाण्यासाठी वापरले जाऊ शकते. हे आता करून पहा!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">निळसर आकाशी</translation> <translation id="2438712309510062123">सुचवा</translation> <translation id="2450814015951372393">चेक बॉक्स</translation> +<translation id="2450992626945324272">पुढील वाक्यावर हलवा</translation> <translation id="2461822463642141190">सद्य</translation> <translation id="2462626033734746142">रेडिओ बटण गट</translation> <translation id="2467741090055146971">निवड रद्द करा</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">फिकट निळा</translation> <translation id="4217571870635786043">डिक्टेशन</translation> <translation id="4218529045364428769">{COUNT,plural, =1{डॅश}other{# डॅश}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" /> ते <ph name="END_PHRASE" /> निवडा</translation> <translation id="4221012616705981690">मागील सूची नाही</translation> <translation id="4225355998815256469">फॉर्म नियंत्रणे</translation> <translation id="4230834257931120629">फिकट राखाडी</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">एक सूचीबॉक्स किंवा काँबो बॉक्स</translation> +<translation id="613344593214611552">मागील वाक्य हटवा</translation> <translation id="6142308968191113180">मथळा 4</translation> <translation id="6150023170003443621">पिवळसर हिरवा</translation> <translation id="6158882249329863701">पंक्ती <ph name="TABLECELLROWINDEX" /> स्तंभ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">पृष्ठाच्या तळाशी जंप करा</translation> <translation id="6187190722927752226">निळसर हिरवा</translation> <translation id="6197361807490522975">गडद निळा</translation> +<translation id="6218813441317556731">'<ph name="INSERT_PHRASE" />' च्या जागी '<ph name="DELETE_PHRASE" />' वापरा</translation> <translation id="6236061028292614533">पुढील शीर्षक</translation> <translation id="6254901459154107917">पुढील संपादनयोग्य मजकूर क्षेत्र</translation> <translation id="6259464875943891919"><ph name="TYPE" /> निर्गमन केले.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">वर्णन सूची तपशील</translation> <translation id="7370432716629432284">{COUNT,plural, =1{अँपरसँड}other{# अँपरसँड}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">मागील वर्ण हटवा</translation> <translation id="738899727977260036">राखाडी निळा</translation> <translation id="7393979322571982935">आवाज आणि सेटिंग्ज</translation> <translation id="739763518212184081">मागील रेखा</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">फिकट सोनेरी गडद पिवळा</translation> <translation id="7543255924852002459">लेबल काढून टाका</translation> <translation id="7552432549459840808">उपयोगी Chrome शॉर्टकट</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> च्या आधी <ph name="INSERT_PHRASE" /> घाला</translation> <translation id="7569983096843329377">काळा</translation> <translation id="7579911500627256166">बिंदू <ph name="DOT" /></translation> <translation id="7592060599656252486">काही</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">मजकूर, URL प्रविष्टी संपादित करा</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">मागील रेडिओ बटण</translation> +<translation id="7696631298608145306">पुढील शब्दावर हलवा</translation> <translation id="7701040980221191251">काहीही नाही</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">नैसर्गिक आवाज</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">कमाल <ph name="X" /></translation> <translation id="84575901236241018">ॲक्सेस की आहे, <ph name="KEY" /></translation> <translation id="8463645336674919227">व्याकरणाची चूक सुधारलेली नाही</translation> +<translation id="8465573210279050749">आधीचा शब्द हटवा</translation> <translation id="847040613207937740">पुढील चेकबॉक्स नाही</translation> <translation id="8473540203671727883">माउसखाली मजकूर बोला</translation> <translation id="8476408756881832830">ChromeVox बोलत असताना प्लेबॅकला विराम द्या</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{पाइप}other{# अनुलंब पाइप}}</translation> <translation id="8741370088760768424">सूचना: सध्याचा आयटम अॅक्टिव्हेट करण्यासाठी Search + Space दाबा.</translation> <translation id="8743786158317878347">संरचित आशय एंटर करा, जसे की सारण्या</translation> +<translation id="8746846427395705317">मागील शब्दावर हलवा</translation> <translation id="8747966237988593539">क्रमांकित सूची</translation> <translation id="8749988712346667988">चंदेरी</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> चे डाउनलोड पूर्ण झाले</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">मागील निवड नाही</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> हटवा</translation> <translation id="8986362086234534611">विसरा</translation> <translation id="8989104346085848538">सध्याचे कोणतेही ChromeVox भाषण थांबवण्यासाठी कंट्रोल की दाबा.</translation> <translation id="8993737615451556423">वाचनाच्या आवाजाची गती वाढवण्यासाठी, कमी करण्यासाठी आणि विराम देण्यासाठी नियंत्रणे पुरवते</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb index 7bf46db..6f95c8aa 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ms.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Oren</translation> <translation id="1198865190323699001">Gerak Isyarat Sentuh</translation> <translation id="1201402288615127009">Seterusnya</translation> +<translation id="1202112913213080585">batal</translation> <translation id="1206619573307042055">marki</translation> <translation id="1207086294218137981">Tiada tajuk tahap 4 seterusnya</translation> <translation id="1212770441379271564">Beberapa pintasan yang berikut ini bukan perintah ChromeVox, tetapi pintasan ini sangat berguna untuk memanfaatkan sepenuhnya Chrome. @@ -43,6 +44,7 @@ Untuk membuka menu penyemak imbas Chrome, tekan Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - Memberikan Suara kepada Chrome</translation> <translation id="1225969361094801578">Kelabu Loh Gelap</translation> +<translation id="122928249241119550">beralih kepada ayat sebelumnya</translation> <translation id="1230503547248836149">Permulaan pilihan</translation> <translation id="1236794971743289975">Nota hujung</translation> <translation id="1237797094773582699">Begitu juga, tindakan meleret dari kanan ke kiri dengan empat jari boleh digunakan untuk beralih ke bahagian sebelumnya. Cubalah sekarang!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Biru Dodger</translation> <translation id="2438712309510062123">Cadangkan</translation> <translation id="2450814015951372393">Kotak pilihan</translation> +<translation id="2450992626945324272">beralih kepada ayat seterusnya</translation> <translation id="2461822463642141190">Semasa</translation> <translation id="2462626033734746142">Kumpulan butang radio</translation> <translation id="2467741090055146971">nyahpilih</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Biru Kadet</translation> <translation id="4217571870635786043">Pengimlakan</translation> <translation id="4218529045364428769">{COUNT,plural, =1{sengkang}other{# sengkang}}</translation> +<translation id="4220024144662591089">pilih daripada <ph name="START_PHRASE" /> hingga <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Tiada senarai sebelumnya</translation> <translation id="4225355998815256469">Kawalan Borang</translation> <translation id="4230834257931120629">Kelabu Loh Cerah</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Kotak senarai atau kotak kombo</translation> +<translation id="613344593214611552">padamkan ayat sebelumnya</translation> <translation id="6142308968191113180">Tajuk 4</translation> <translation id="6150023170003443621">Hijau Kuning</translation> <translation id="6158882249329863701">baris <ph name="TABLECELLROWINDEX" /> lajur <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Langkau ke bahagian bawah halaman</translation> <translation id="6187190722927752226">Akuamarin</translation> <translation id="6197361807490522975">Biru Gelap</translation> +<translation id="6218813441317556731">gantikan <ph name="DELETE_PHRASE" /> dengan <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Tajuk seterusnya</translation> <translation id="6254901459154107917">Kawasan teks boleh edit seterusnya</translation> <translation id="6259464875943891919">Keluar dari <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Butiran senarai perihalan</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ampersan}other{# ampersan}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">padamkan aksara sebelumnya</translation> <translation id="738899727977260036">Biru Loh</translation> <translation id="7393979322571982935">Bunyi dan tetapan</translation> <translation id="739763518212184081">Baris Sebelumnya</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Kuning Batang Emas Cerah</translation> <translation id="7543255924852002459">Buang label</translation> <translation id="7552432549459840808">Pintasan Berguna Chrome</translation> +<translation id="7553679324939294712">sisipkan <ph name="INSERT_PHRASE" /> sebelum <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Hitam</translation> <translation id="7579911500627256166">titik <ph name="DOT" /></translation> <translation id="7592060599656252486">Sedikit</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Edit teks, masukan URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Butang radio sebelumnya</translation> +<translation id="7696631298608145306">beralih kepada perkataan seterusnya</translation> <translation id="7701040980221191251">Tiada</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Suara semula jadi</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Maks <ph name="X" /></translation> <translation id="84575901236241018">mempunyai kekunci akses, <ph name="KEY" /></translation> <translation id="8463645336674919227">Meninggalkan kesilapan tatabahasa</translation> +<translation id="8465573210279050749">padamkan perkataan sebelumnya</translation> <translation id="847040613207937740">Tiada kotak pilihan seterusnya</translation> <translation id="8473540203671727883">Sebutkan teks di bawah tetikus</translation> <translation id="8476408756881832830">Jedakan main balik semasa ChromeVox bertutur</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{paip}other{# paip menegak}}</translation> <translation id="8741370088760768424">Pembayang: Tekan Carian + Ruang untuk mengaktifkan item semasa.</translation> <translation id="8743786158317878347">masukkan kandungan berstruktur, seperti jadual</translation> +<translation id="8746846427395705317">beralih kepada perkataan sebelumnya</translation> <translation id="8747966237988593539">Senarai Bertertib</translation> <translation id="8749988712346667988">Perak</translation> <translation id="875769700429317857">Muat turun <ph name="FILE_NAME" /> selesai</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Tiada bahagian sebelumnya</translation> <translation id="89720367119469899">Lepas</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">padamkan <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Lupa</translation> <translation id="8989104346085848538">Untuk menghentikan sebarang pertuturan ChromeVox semasa, tekan kekunci Control.</translation> <translation id="8993737615451556423">Menyediakan kawalan untuk mempercepat, memperlahan dan menjeda suara membaca</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb index 682fcbb..56c9728 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ne.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">सुन्तला रङ्ग</translation> <translation id="1198865190323699001">टच जेस्चरहरू</translation> <translation id="1201402288615127009">अर्को</translation> +<translation id="1202112913213080585">रद्द गर</translation> <translation id="1206619573307042055">मार्की</translation> <translation id="1207086294218137981">अर्को कुनै पनि लेभल ४ शीर्षक छैन</translation> <translation id="1212770441379271564">अब आउने केही सर्टकटहरू ChromeVox का आदेशहरू नभए तापनि तिनीहरू Chrome बाट धेरैभन्दा धेरै लाभ लिनका लागि अत्यन्त उपयोगी छन्। @@ -43,6 +44,7 @@ Chrome ब्राउजरको मेनु खोल्न Alt+F थिच्नुहोस्।</translation> <translation id="1213216066620407844">ChromeVox - Chrome लाई आवाज दिँदै</translation> <translation id="1225969361094801578">गाढा स्लेट मिश्रित खैरो</translation> +<translation id="122928249241119550">कर्सर सारेर अघिल्लो वाक्यमा लैजाऊ</translation> <translation id="1230503547248836149">छनौट कार्य सुरु गर्नुहोस्</translation> <translation id="1236794971743289975">एन्डनोट</translation> <translation id="1237797094773582699">यसका साथै, चार औँलाले दायाँबाट बायाँतिर स्वाइप गरेर अघिल्लो मुख्य एलिमेन्टमा जान सकिन्छ। अहिले नै यसो गरी हेर्नुहोस्!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">डोजर निलो</translation> <translation id="2438712309510062123">सुझाव दिनुहोस्</translation> <translation id="2450814015951372393">चेक बाकस</translation> +<translation id="2450992626945324272">कर्सर सारेर अर्को वाक्यमा लैजाऊ</translation> <translation id="2461822463642141190">हालको</translation> <translation id="2462626033734746142">रेडियो बटन समूह</translation> <translation id="2467741090055146971">चयन रद्द गर्नुहोस्</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">खैरो मिश्रित निलो</translation> <translation id="4217571870635786043">श्रुतिलेखन</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ड्यास}other{# ड्यासहरू}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" /> देखि <ph name="END_PHRASE" /> सम्म चयन गर</translation> <translation id="4221012616705981690">अघिल्लो कुनै पनि सूची छैन</translation> <translation id="4225355998815256469">फारमसम्बन्धी नियन्त्रणहरू</translation> <translation id="4230834257931120629">हल्का स्लेट मिश्रित खैरो</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">बटन</translation> <translation id="6132506484792346370">एउटा सूचीबाकस वा कम्बो बाकस</translation> +<translation id="613344593214611552">अघिल्लो वाक्य मेटाऊ</translation> <translation id="6142308968191113180">शीर्षक 4</translation> <translation id="6150023170003443621">पहेँलो मिश्रित हरियो</translation> <translation id="6158882249329863701">पङ्क्ति <ph name="TABLECELLROWINDEX" /> स्तम्भ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">पृष्ठको तल जानुहोस्</translation> <translation id="6187190722927752226">अक्वाम्यारिन</translation> <translation id="6197361807490522975">गाढा निलो</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" /> को ठाउँमा <ph name="INSERT_PHRASE" /> राख</translation> <translation id="6236061028292614533">अर्को शीर्षक</translation> <translation id="6254901459154107917">अर्को सम्पादन योग्य पाठ क्षेत्र</translation> <translation id="6259464875943891919">बाहिर निस्कियो <ph name="TYPE" /></translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">विवरणको सूचीको विस्तार</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ एम्परसेण्ड}other{ # एम्परसेण्ड्स}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">अघिल्लो वर्ण मेटाऊ</translation> <translation id="738899727977260036">स्लेट मिश्रित निलो</translation> <translation id="7393979322571982935">ध्वनि तथा सेटिङ</translation> <translation id="739763518212184081">अघिल्लो रेखा</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">सुनौलो रड जस्तो हल्का पहेँलो</translation> <translation id="7543255924852002459">लेबल खारेज गर्नुहोस्</translation> <translation id="7552432549459840808">Chrome का उपयोगी सर्टकटहरू</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> अघि <ph name="INSERT_PHRASE" /> हाल</translation> <translation id="7569983096843329377">कालो</translation> <translation id="7579911500627256166">थोप्ला <ph name="DOT" /></translation> <translation id="7592060599656252486">केही</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">पाठ सम्पादन गर्नुहोस्, युआरएल प्रविष्टि</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">अघिल्लो रेडियो बटन</translation> +<translation id="7696631298608145306">कर्सर सारेर अर्को शब्दमा लैजाऊ</translation> <translation id="7701040980221191251">कुनै पनि होइन</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">उच्च गुणस्तरको आवाज</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">अधिकतम <ph name="X" /></translation> <translation id="84575901236241018">पहुँच कुञ्जी छ, <ph name="KEY" /></translation> <translation id="8463645336674919227">व्याकरणसम्बन्धी त्रुटि छाड्दै</translation> +<translation id="8465573210279050749">अघिल्लो शब्द मेटाऊ</translation> <translation id="847040613207937740">अर्को कुनै पनि जाँच बाकस छैन</translation> <translation id="8473540203671727883">माउसभन्दा तलको पाठ पढ्नुहोस्</translation> <translation id="8476408756881832830">ChromeVox बोलिरहेको बेला प्लेब्याक पज गर्नुहोस्</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{पाइप}other{# ठाडो पाइपहरू}}</translation> <translation id="8741370088760768424">ध्यान दिनुहोस्: हालको पाठ खोलेर फेरि प्रयोग गर्न Search + Space की थिच्नुहोस्।</translation> <translation id="8743786158317878347">तालिकाहरू जस्ता संरचना गरिएको सामग्री प्रविष्टि गर्नुहोस्</translation> +<translation id="8746846427395705317">कर्सर सारेर अघिल्लो शब्दमा लैजाऊ</translation> <translation id="8747966237988593539">क्रम मिलाइएको सूची</translation> <translation id="8749988712346667988">चाँदी</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> डाउनलोड भइसक्यो</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">अघिल्लो कुनै पनि खण्ड छैन</translation> <translation id="89720367119469899">भाग</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> मेटाऊ</translation> <translation id="8986362086234534611">बिर्सनुहोस्</translation> <translation id="8989104346085848538">ChromeVox मा अन रहेको जुनसुकै वाक् सुविधा अफ गर्न Control की थिच्नुहोस्।</translation> <translation id="8993737615451556423">तपाईं यो सुविधा प्रयोग गरी वाचन गरिने आवाजको गति बढाउन, कम गर्न र पज गर्न सक्नुहुन्छ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb index 8789187..42c18b6 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_or.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">କମଳା</translation> <translation id="1198865190323699001">ଟଚ ଜେଶ୍ଚର</translation> <translation id="1201402288615127009">ପରବର୍ତ୍ତୀ</translation> +<translation id="1202112913213080585">ବାତିଲ କରନ୍ତୁ</translation> <translation id="1206619573307042055">ମାର୍କୀ</translation> <translation id="1207086294218137981">କୌଣସି ପରବର୍ତ୍ତୀ ସ୍ତର 4 ହେଡିଂ ନାହିଁ</translation> <translation id="1212770441379271564">ପରବର୍ତ୍ତୀ କିଛି ସର୍ଟକଟ୍ ChromeVox କମାଣ୍ଡ ନୁହେଁ, କିନ୍ତୁ ଏବେ ବି Chromeରୁ ଅନେକ କିଛି ପାଇବା ପାଇଁ ସେଗୁଡ଼ିକ ବହୁତ ଉପଯୋଗୀ ଅଟେ। @@ -43,6 +44,7 @@ Chrome ବ୍ରାଉଜର୍ ମେନୁ ଖୋଲିବା ପାଇଁ, Alt+F ଦବାନ୍ତୁ।</translation> <translation id="1213216066620407844">ChromeVox - Chrome ପାଇଁ ଭଏସ୍ ଦିଅନ୍ତୁ</translation> <translation id="1225969361094801578">ଗାଢ଼ ସ୍ଲେଟ୍ ଧୂସର</translation> +<translation id="122928249241119550">ପୂର୍ବବର୍ତ୍ତୀ ବାକ୍ୟକୁ ମୁଭ କରନ୍ତୁ</translation> <translation id="1230503547248836149">ଚୟନର ଆରମ୍ଭ</translation> <translation id="1236794971743289975">ଗୀତର ଅନ୍ତିମ ସ୍ତର</translation> <translation id="1237797094773582699">ସେହିଭଳି, ପୂର୍ବବର୍ତ୍ତୀ ବିଭାଗକୁ ମୁଭ୍ କରିବାକୁ ଚାରି ଆଙ୍ଗୁଠିରେ ଡାହାଣରୁ ବାମକୁ ସ୍ୱାଇପ୍ କରାଯାଇପାରିବ। ବର୍ତ୍ତମାନ ଏହାକୁ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">ଡୋଜର୍ ନୀଳ</translation> <translation id="2438712309510062123">ପରାମର୍ଶ ଦିଅନ୍ତୁ</translation> <translation id="2450814015951372393">ଚେକ୍ ବକ୍ସ</translation> +<translation id="2450992626945324272">ପରବର୍ତ୍ତୀ ବାକ୍ୟକୁ ମୁଭ କରନ୍ତୁ</translation> <translation id="2461822463642141190">ବର୍ତ୍ତମାନର</translation> <translation id="2462626033734746142">ରେଡିଓ ବଟନ୍ ଗୋଷ୍ଠୀ</translation> <translation id="2467741090055146971">ଅଚୟନ କରନ୍ତୁ</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">ହାଲୁକା ନୀଳ</translation> <translation id="4217571870635786043">ଶ୍ରୁତଲିଖନ</translation> <translation id="4218529045364428769">{COUNT,plural, =1{ଡ୍ୟାଶ୍}other{# ଡ୍ୟାଶ୍}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" />ରୁ <ph name="END_PHRASE" /> ପର୍ଯ୍ୟନ୍ତ ଚୟନ କରନ୍ତୁ</translation> <translation id="4221012616705981690">କୌଣସି ପୂର୍ବବର୍ତ୍ତୀ ତାଲିକା ନାହିଁ</translation> <translation id="4225355998815256469">ଫର୍ମ କଣ୍ଟ୍ରୋଲ୍</translation> <translation id="4230834257931120629">ହାଲୁକା ସ୍ଲେଟ୍ ଧୂସର</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">ବଟନ୍</translation> <translation id="6132506484792346370">ଏକ ଲିଷ୍ଟବକ୍ସ କିମ୍ୱା କମ୍ୱୋ ବକ୍ସ</translation> +<translation id="613344593214611552">ପୂର୍ବବର୍ତ୍ତୀ ବାକ୍ୟକୁ ଡିଲିଟ କରନ୍ତୁ</translation> <translation id="6142308968191113180">ଶୀର୍ଷକ 4</translation> <translation id="6150023170003443621">ହଳଦିଆ ସବୁଜ</translation> <translation id="6158882249329863701">ଧାଡ଼ି <ph name="TABLECELLROWINDEX" /> ସ୍ତମ୍ଭ <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">ସିଧାସଳଖ ପୃଷ୍ଠାର ତଳକୁ ଯାଆନ୍ତୁ</translation> <translation id="6187190722927752226">ନୀଳ ସବୁଜ</translation> <translation id="6197361807490522975">ଗାଢ଼ ନୀଳ</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" />କୁ <ph name="INSERT_PHRASE" />ରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ</translation> <translation id="6236061028292614533">ପରବର୍ତ୍ତୀ ଶୀର୍ଷକ</translation> <translation id="6254901459154107917">ପରବର୍ତ୍ତୀ ଏଡିଟ୍ ହେବା ଯୋଗ୍ୟ କ୍ଷେତ୍ର</translation> <translation id="6259464875943891919"><ph name="TYPE" /> ପ୍ରସ୍ଥାନ କଲେ।</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">ଡେସକ୍ରିପସନ୍ ଲିଷ୍ଟ ବିବରଣୀ</translation> <translation id="7370432716629432284">{COUNT,plural, =1{ଆମ୍ପର୍ସାଣ୍ଡ୍}other{#ଟି ଆମ୍ପର୍ସାଣ୍ଡ୍}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">ପୂର୍ବବର୍ତ୍ତୀ କେରେକ୍ଟରକୁ ଡିଲିଟ କରନ୍ତୁ</translation> <translation id="738899727977260036">ସ୍ଲେଟ୍ ନୀଳ</translation> <translation id="7393979322571982935">ସାଉଣ୍ଡ ଏବଂ ସେଟିଂସ୍</translation> <translation id="739763518212184081">ପୂର୍ବ ଧାଡ଼ି</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">ଗୋଲ୍ଡେନ୍ ରଡ୍ ପରି ହାଲୁକା ହଳଦିଆ</translation> <translation id="7543255924852002459">ଲେବଲ୍ ଖାରଜ କରନ୍ତୁ</translation> <translation id="7552432549459840808">ଉପଯୋଗୀ Chrome ସର୍ଟକଟ୍ଗୁଡ଼ିକ</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> ପୂର୍ବରୁ <ph name="INSERT_PHRASE" /> ଇନସାର୍ଟ କରନ୍ତୁ</translation> <translation id="7569983096843329377">କଳା</translation> <translation id="7579911500627256166">ଡଟ୍ <ph name="DOT" /></translation> <translation id="7592060599656252486">କିଛି</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">ଟେକ୍ସଟ୍ ଏଡିଟ୍ କରନ୍ତୁ, URL ଲେଖନ୍ତୁ</translation> <translation id="7685589220304187312">ଟୁଲ୍ ବାର୍</translation> <translation id="7693840228159394336">ପୂର୍ବବର୍ତ୍ତୀ ରେଡିଓ ବଟନ୍</translation> +<translation id="7696631298608145306">ପରବର୍ତ୍ତୀ ଶବ୍ଦକୁ ମୁଭ କରନ୍ତୁ</translation> <translation id="7701040980221191251">କିଛି ନାହିଁ</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">ପ୍ରକୃତ ଭଏସ୍</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">ସର୍ବାଧିକ <ph name="X" /></translation> <translation id="84575901236241018">ଆକ୍ସେସ୍ କୀ' ଅଛି, <ph name="KEY" /></translation> <translation id="8463645336674919227">ବ୍ୟାକରଣ ତ୍ରୁଟି ଛାଡ଼ି ଦେଉଛି</translation> +<translation id="8465573210279050749">ପୂର୍ବବର୍ତ୍ତୀ ଶଦ୍ଦକୁ ଡିଲିଟ କରନ୍ତୁ</translation> <translation id="847040613207937740">କୌଣସି ପରବର୍ତ୍ତୀ ଚେକବକ୍ସ ନାହିଁ</translation> <translation id="8473540203671727883">ମାଉସର ତଳେ ଥିବା ଟେକ୍ସଟ କୁହନ୍ତୁ</translation> <translation id="8476408756881832830">ChromeVox କହୁଥିବା ସମୟରେ ପ୍ଲେବ୍ୟାକ୍ ବିରତ କରନ୍ତୁ</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{ପାଇପ୍}other{#ଟି ଭୂଲମ୍ୱ ପାଇପ୍}}</translation> <translation id="8741370088760768424">ସୂଚନା: ବର୍ତ୍ତମାନର ଆଇଟମକୁ ସକ୍ରିୟ କରିବା ପାଇଁ Search + Space ଦବାନ୍ତୁ।</translation> <translation id="8743786158317878347">ସଂଗଠିତ ବିଷୟବସ୍ତୁ ପ୍ରବେଶ କରନ୍ତୁ, ଯେପରିକି ଟେବଲ୍ଗୁଡ଼ିକ</translation> +<translation id="8746846427395705317">ପୂର୍ବବର୍ତ୍ତୀ ଶବ୍ଦକୁ ମୁଭ କରନ୍ତୁ</translation> <translation id="8747966237988593539">କ୍ରମାନୁସାରେ ସଜାଯାଇଥିବା ତାଲିକା</translation> <translation id="8749988712346667988">ରୂପେଲି</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> ଡାଉନ୍ଲୋଡ୍ ସଂପୂର୍ଣ୍ଣ ହୋଇଛି</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">କୌଣସି ପୂର୍ବବର୍ତ୍ତୀ ବିଭାଗ ନାହିଁ</translation> <translation id="89720367119469899">ଏସ୍କେପ୍</translation> <translation id="8978496506222343566">ଟୁଲ୍ ଟିପ୍</translation> +<translation id="898089897833732740"><ph name="PHRASE" />କୁ ଡିଲିଟ କରନ୍ତୁ</translation> <translation id="8986362086234534611">ଭୁଲିଗଲେ</translation> <translation id="8989104346085848538">ବର୍ତ୍ତମାନର ଯେ କୌଣସି ChromeVox ସ୍ପିଚକୁ ବନ୍ଦ କରିବା ପାଇଁ, Control କୀ'କୁ ଦବାନ୍ତୁ।</translation> <translation id="8993737615451556423">ପଢ଼ିବା ଭଏସର ଗତିକୁ ବଢ଼ାଇବା, କମାଇବା ଏବଂ ବିରତ କରିବା ପାଇଁ ନିୟନ୍ତ୍ରଣଗୁଡ଼ିକ ପ୍ରଦାନ କରେ</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb index 2734570..a946fa2 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Laranja</translation> <translation id="1198865190323699001">Gestos de toque</translation> <translation id="1201402288615127009">Próxima</translation> +<translation id="1202112913213080585">cancelar</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Nenhum cabeçalho de nível 4 a seguir</translation> <translation id="1212770441379271564">Os próximos atalhos não são comandos do ChromeVox, mas ainda são muito úteis para aproveitar ao máximo o Chrome. @@ -43,6 +44,7 @@ Para abrir o menu do navegador Chrome, pressione Alt+F.</translation> <translation id="1213216066620407844">ChromeVox: dando voz ao Google Chrome</translation> <translation id="1225969361094801578">Cinza-ardósia-escuro</translation> +<translation id="122928249241119550">voltar para a frase anterior</translation> <translation id="1230503547248836149">Início de seleção</translation> <translation id="1236794971743289975">Nota final</translation> <translation id="1237797094773582699">Outra opção é deslizar com quatro dedos da direita para a esquerda para acessar a seção anterior. Faça um teste.</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Azul-anil</translation> <translation id="2438712309510062123">Sugerir</translation> <translation id="2450814015951372393">Caixa de seleção</translation> +<translation id="2450992626945324272">passar para a próxima frase</translation> <translation id="2461822463642141190">Atual</translation> <translation id="2462626033734746142">Grupo de botões de opção</translation> <translation id="2467741090055146971">desmarcar</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Azul-cadete</translation> <translation id="4217571870635786043">Ditado</translation> <translation id="4218529045364428769">{COUNT,plural, =1{traço}one{# traços}other{# traços}}</translation> +<translation id="4220024144662591089">selecionar de <ph name="START_PHRASE" /> a <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Nenhuma lista anterior</translation> <translation id="4225355998815256469">Controles de formulários</translation> <translation id="4230834257931120629">Cinza-ardósia-claro</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Uma caixa de listagem ou uma caixa de combinação</translation> +<translation id="613344593214611552">excluir a frase anterior</translation> <translation id="6142308968191113180">Cabeçalho 4</translation> <translation id="6150023170003443621">Verde-amarelado</translation> <translation id="6158882249329863701">linha <ph name="TABLECELLROWINDEX" /> coluna <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Vai para a parte inferior da página</translation> <translation id="6187190722927752226">Água-marinha</translation> <translation id="6197361807490522975">Azul-escuro</translation> +<translation id="6218813441317556731">substituir <ph name="DELETE_PHRASE" /> por <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Próximo cabeçalho</translation> <translation id="6254901459154107917">Próxima área de texto editável</translation> <translation id="6259464875943891919"><ph name="TYPE" /> fechado.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Detalhe da lista de descrição</translation> <translation id="7370432716629432284">{COUNT,plural, =1{sinal de "E" comercial}one{# indicadores de "E" comercial}other{# indicadores de "E" comercial}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">excluir o caractere anterior</translation> <translation id="738899727977260036">Azul-ardósia</translation> <translation id="7393979322571982935">Sons e configurações</translation> <translation id="739763518212184081">Linha anterior</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Amarelo-dourado-claro</translation> <translation id="7543255924852002459">Descartar etiqueta</translation> <translation id="7552432549459840808">Atalhos úteis do Chrome</translation> +<translation id="7553679324939294712">inserir <ph name="INSERT_PHRASE" /> antes de <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Preto</translation> <translation id="7579911500627256166">ponto <ph name="DOT" /></translation> <translation id="7592060599656252486">Algumas</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Editar texto, entrada de URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Botão de opção anterior</translation> +<translation id="7696631298608145306">passar para a próxima palavra</translation> <translation id="7701040980221191251">Nenhuma</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Voz natural</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Máximo <ph name="X" /></translation> <translation id="84575901236241018">tem chave de acesso: <ph name="KEY" /></translation> <translation id="8463645336674919227">Saindo do erro gramatical</translation> +<translation id="8465573210279050749">excluir a palavra anterior</translation> <translation id="847040613207937740">Nenhuma caixa de seleção a seguir</translation> <translation id="8473540203671727883">Falar o texto que está sob o cursor do mouse</translation> <translation id="8476408756881832830">Pausar reprodução quando o ChromeVox estiver falando</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{barra vertical}one{# barras verticais}other{# barras verticais}}</translation> <translation id="8741370088760768424">Dica: pressione a tecla de pesquisa + espaço para ativar o item atual.</translation> <translation id="8743786158317878347">insere conteúdo estruturado, como tabelas</translation> +<translation id="8746846427395705317">voltar para a palavra anterior</translation> <translation id="8747966237988593539">Lista ordenada</translation> <translation id="8749988712346667988">Prata</translation> <translation id="875769700429317857">Download de <ph name="FILE_NAME" /> concluído</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Nenhuma seção anterior</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">excluir <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Esquecer</translation> <translation id="8989104346085848538">Para interromper a fala atual do ChromeVox, pressione a tecla Control.</translation> <translation id="8993737615451556423">Fornece controles para pausar e aumentar ou reduzir a velocidade da voz da leitura</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb index 374db570..0f9c200 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sq.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Portokalli</translation> <translation id="1198865190323699001">Gjestet me prekje</translation> <translation id="1201402288615127009">Para</translation> +<translation id="1202112913213080585">anulo</translation> <translation id="1206619573307042055">tenda</translation> <translation id="1207086294218137981">Nuk ka titull tjetër të nivelit 4</translation> <translation id="1212770441379271564">Këto pak shkurtore të mëposhtme nuk janë komanda të ChromeVox, por gjithsesi mund të jenë shumë të dobishme për të shfrytëzuar Chrome në maksimum. @@ -43,6 +44,7 @@ Për të hapur menynë e shfletuesit Chrome, shtyp Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - i jep zë Chrome</translation> <translation id="1225969361094801578">Gri rrasë e errët</translation> +<translation id="122928249241119550">kalo te fjalia e mëparshme</translation> <translation id="1230503547248836149">Fillimi i përzgjedhjes</translation> <translation id="1236794971743289975">Nota e fundit</translation> <translation id="1237797094773582699">Në të njëjtën mënyrë, rrëshqitja e shpejtë me katër gishta nga e djathta në të majtë mund të përdoret për të kaluar te seksioni i mëparshëm. Provoje tani!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Blu Dodger</translation> <translation id="2438712309510062123">Sugjero</translation> <translation id="2450814015951372393">Shëno kutinë</translation> +<translation id="2450992626945324272">kalo te fjalia tjetër</translation> <translation id="2461822463642141190">Rryma</translation> <translation id="2462626033734746142">Grupi i butonit të radios</translation> <translation id="2467741090055146971">anulo zgjedhjen</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Blu kadet</translation> <translation id="4217571870635786043">Diktimi</translation> <translation id="4218529045364428769">{COUNT,plural, =1{vizë}other{# viza}}</translation> +<translation id="4220024144662591089">zgjidh "<ph name="START_PHRASE" />" ose "<ph name="END_PHRASE" />"</translation> <translation id="4221012616705981690">Nuk ka asnjë listë të mëparshme</translation> <translation id="4225355998815256469">Kontrollet e formave</translation> <translation id="4230834257931120629">Gri rrase e çelur</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Një kuti liste ose kuti kombinuese</translation> +<translation id="613344593214611552">fshi fjalinë e mëparshme</translation> <translation id="6142308968191113180">Titulli 4</translation> <translation id="6150023170003443621">E gjelbër e verdhë</translation> <translation id="6158882249329863701">rreshti <ph name="TABLECELLROWINDEX" /> kolona <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Kalo në fund të faqes</translation> <translation id="6187190722927752226">Akuamarinë</translation> <translation id="6197361807490522975">Blu e errët</translation> +<translation id="6218813441317556731">zëvendëso "<ph name="DELETE_PHRASE" />" me "<ph name="INSERT_PHRASE" />"</translation> <translation id="6236061028292614533">Titulli tjetër</translation> <translation id="6254901459154107917">Zona tjetër e redaktueshme e tekstit</translation> <translation id="6259464875943891919">Doli nga <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Detajet e listës së përshkrimeve</translation> <translation id="7370432716629432284">{COUNT,plural, =1{karakter "&"}other{# karaktere "&"}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">fshi karakterin e mëparshëm</translation> <translation id="738899727977260036">Blu e mbyllur</translation> <translation id="7393979322571982935">Tinguj dhe cilësime</translation> <translation id="739763518212184081">Rreshti i mëparshëm</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Purtekë e artë e verdhë e çelur</translation> <translation id="7543255924852002459">Hiqe etiketën</translation> <translation id="7552432549459840808">Shkurtore të dobishme të Chrome</translation> +<translation id="7553679324939294712">fut "<ph name="INSERT_PHRASE" />" para "<ph name="BEFORE_PHRASE" />"</translation> <translation id="7569983096843329377">E zezë</translation> <translation id="7579911500627256166">pika <ph name="DOT" /></translation> <translation id="7592060599656252486">Disa</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Redakto tekstin, hyrje URL-je</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Butoni i mëparshëm i radios</translation> +<translation id="7696631298608145306">kalo te fjala tjetër</translation> <translation id="7701040980221191251">Asnjë</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Zë natyral</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Maks. <ph name="X" /></translation> <translation id="84575901236241018">ka çelësin e qasjes, <ph name="KEY" /></translation> <translation id="8463645336674919227">Po largohesh nga gabimi gramatikor</translation> +<translation id="8465573210279050749">fshi fjalën e mëparshme</translation> <translation id="847040613207937740">Nuk ka asnjë kuti kontrolli tjetër</translation> <translation id="8473540203671727883">Lexo me zë tekstin poshtë miut</translation> <translation id="8476408756881832830">Vendosje luajtjen në pauzë kur flet ChromeVox</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{tub}other{# tuba vertikalë}}</translation> <translation id="8741370088760768424">Sugjerim: Shtyp Search + Space për të aktivizuar artikullin aktual.</translation> <translation id="8743786158317878347">fut përmbajtje të strukturuar, siç janë tabelat</translation> +<translation id="8746846427395705317">kalo te fjala e mëparshme</translation> <translation id="8747966237988593539">Lista e renditur</translation> <translation id="8749988712346667988">E argjendtë</translation> <translation id="875769700429317857">Shkarkimi përfundoi <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Nuk ka asnjë seksion të mëparshëm</translation> <translation id="89720367119469899">Largohu</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">fshi "<ph name="PHRASE" />"</translation> <translation id="8986362086234534611">Harro</translation> <translation id="8989104346085848538">Për të ndaluar çdo ligjërim aktual të ChromeVox, shtyp tastin Control.</translation> <translation id="8993737615451556423">Ofron kontrollet për të shpejtuar, ngadalësuar dhe vendosur në pauzë zërin e leximit</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb index f7412605..1153c91 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sv.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Orange</translation> <translation id="1198865190323699001">Tryckrörelser</translation> <translation id="1201402288615127009">Nästa</translation> +<translation id="1202112913213080585">avbryt</translation> <translation id="1206619573307042055">markör</translation> <translation id="1207086294218137981">Det finns inga fler rubriker på nivå 4</translation> <translation id="1212770441379271564">De följande kortkommandona är inte ChromeVox-kommandon, men de är fortfarande mycket användbara för att få ut så mycket som möjligt av Chrome. @@ -43,6 +44,7 @@ Öppna Chrome-menyn genom att trycka på Alt + F.</translation> <translation id="1213216066620407844">ChromeVox – ger röst åt Chrome</translation> <translation id="1225969361094801578">Mörkt skiffergrå</translation> +<translation id="122928249241119550">flytta till föregående mening</translation> <translation id="1230503547248836149">Textmarkeringens början</translation> <translation id="1236794971743289975">Slutnot</translation> <translation id="1237797094773582699">På liknande sätt kan du komma tillbaka till föregående avsnitt genom att svepa från höger till vänster med fyra fingrar. Testa nu!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Dodgers-blå</translation> <translation id="2438712309510062123">Föreslå</translation> <translation id="2450814015951372393">Kryssruta</translation> +<translation id="2450992626945324272">flytta till nästa mening</translation> <translation id="2461822463642141190">Nuvarande</translation> <translation id="2462626033734746142">Alternativknappsgrupp</translation> <translation id="2467741090055146971">avmarkera</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Kadettblå</translation> <translation id="4217571870635786043">Diktering</translation> <translation id="4218529045364428769">{COUNT,plural, =1{bindestreck}other{# bindestreck}}</translation> +<translation id="4220024144662591089">välj från <ph name="START_PHRASE" /> till <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Det finns ingen föregående lista</translation> <translation id="4225355998815256469">Formulärkontroller</translation> <translation id="4230834257931120629">Ljust skiffergrå</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">besökt</translation> <translation id="6122013438240733403">knapp</translation> <translation id="6132506484792346370">En listruta eller kombinationsruta</translation> +<translation id="613344593214611552">radera föregående mening</translation> <translation id="6142308968191113180">Rubrik 4</translation> <translation id="6150023170003443621">Gulgrön</translation> <translation id="6158882249329863701">rad <ph name="TABLECELLROWINDEX" /> kolumn <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Till slutet av sidan</translation> <translation id="6187190722927752226">Akvamarin</translation> <translation id="6197361807490522975">Mörkblå</translation> +<translation id="6218813441317556731">ersätt <ph name="DELETE_PHRASE" /> med <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Nästa rubrik</translation> <translation id="6254901459154107917">Nästa redigerbara textområde</translation> <translation id="6259464875943891919">Lämnade <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Detalj i beskrivningslista</translation> <translation id="7370432716629432284">{COUNT,plural, =1{et-tecken}other{# et-tecken}}</translation> <translation id="737396357417333429">klickbart</translation> +<translation id="7388656272362719103">radera föregående tecken</translation> <translation id="738899727977260036">Skifferblå</translation> <translation id="7393979322571982935">Ljud och inställningar</translation> <translation id="739763518212184081">Föregående rad</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Ljust gullrisgul</translation> <translation id="7543255924852002459">Ignorera etikett</translation> <translation id="7552432549459840808">Användbara kortkommandon i Chrome</translation> +<translation id="7553679324939294712">infoga <ph name="INSERT_PHRASE" /> före <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Svart</translation> <translation id="7579911500627256166">punkt <ph name="DOT" /></translation> <translation id="7592060599656252486">Vissa</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Textinmatning, webbadress</translation> <translation id="7685589220304187312">verktygsfält</translation> <translation id="7693840228159394336">Föregående alternativknapp</translation> +<translation id="7696631298608145306">flytta till nästa ord</translation> <translation id="7701040980221191251">Inga</translation> <translation id="7701196182766842984">autoslutför i lista</translation> <translation id="7713139339518499741">Naturlig röst</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Högst <ph name="X" /></translation> <translation id="84575901236241018">har snabbtangenten <ph name="KEY" /></translation> <translation id="8463645336674919227">Grammatikfelet lämnas</translation> +<translation id="8465573210279050749">radera föregående ord</translation> <translation id="847040613207937740">Det finns inga fler kryssrutor</translation> <translation id="8473540203671727883">Läs upp text under muspekaren</translation> <translation id="8476408756881832830">Pausa uppspelningen när ChromeVox används</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{lodstreck}other{# lodstreck}}</translation> <translation id="8741370088760768424">Tips! Tryck på Sök + blanksteg för att aktivera det aktuella objektet.</translation> <translation id="8743786158317878347">öppna strukturerat innehåll, t.ex. tabeller</translation> +<translation id="8746846427395705317">flytta till föregående ord</translation> <translation id="8747966237988593539">Sorterad lista</translation> <translation id="8749988712346667988">Silverfärgad</translation> <translation id="875769700429317857">Nedladdningen är klar <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Det finns inget föregående avsnitt</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">beskrivning</translation> +<translation id="898089897833732740">ta bort <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Glöm</translation> <translation id="8989104346085848538">Tryck på Ctrl-tangenten för att stoppa en pågående ChromeVox-uppläsning.</translation> <translation id="8993737615451556423">Reglage som du kan använda för att göra uppläsningen snabbare eller långsammare eller pausa den</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb index da94c4f..372c19d 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_sw.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Rangi ya machungwa</translation> <translation id="1198865190323699001">Ishara za Kugusa</translation> <translation id="1201402288615127009">Endelea</translation> +<translation id="1202112913213080585">ghairi</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">Hakuna kichwa cha kiwango cha nne kinachofuata</translation> <translation id="1212770441379271564">Njia chache za mikato zinazofuata si amri za ChromeVox, lakini bado ni muhimu ili kutumia Chrome kikamilifu. @@ -43,6 +44,7 @@ Ili ufungue menyu ya kivinjari cha Chrome, bonyeza Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - Inaipa Chrome Sauti</translation> <translation id="1225969361094801578">Kijivu Kilichokolea</translation> +<translation id="122928249241119550">hamishia kiteuzi kwenye sentensi iliyotangulia</translation> <translation id="1230503547248836149">Mwanzo wa sehemu iliyochaguliwa</translation> <translation id="1236794971743289975">Maelezo ya mwisho wa kitabu</translation> <translation id="1237797094773582699">Vile vile, unaweza kutelezesha vidole vinne kutoka kulia kuelekea kushoto ili uende kwenye sehemu iliyotangulia. Jaribu sasa!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Samawati</translation> <translation id="2438712309510062123">Pendekeza</translation> <translation id="2450814015951372393">Kisanduku cha kuteua</translation> +<translation id="2450992626945324272">hamishia kiteuzi kwenye sentensi inayofuata</translation> <translation id="2461822463642141190">Ya sasa</translation> <translation id="2462626033734746142">Vitufe kadhaa vya mviringo</translation> <translation id="2467741090055146971">acha kuchagua</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Samawati Iliyokolea</translation> <translation id="4217571870635786043">Kuandika kwa kutamka</translation> <translation id="4218529045364428769">{COUNT,plural, =1{dashi}other{dashi #}}</translation> +<translation id="4220024144662591089">chagua kuanzia <ph name="START_PHRASE" /> hadi <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Hakuna orodha iliyotangulia</translation> <translation id="4225355998815256469">Udhibiti Fomu</translation> <translation id="4230834257931120629">Kijivu Isiyokolea</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">kitufe</translation> <translation id="6132506484792346370">Kikasha orodha au kikasha mseto</translation> +<translation id="613344593214611552">futa sentensi iliyotangulia</translation> <translation id="6142308968191113180">Kichwa cha 4</translation> <translation id="6150023170003443621">Kijani cha Manjano</translation> <translation id="6158882249329863701">safu mlalo <ph name="TABLECELLROWINDEX" /> safu wima <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Ruka hadi mwisho wa ukurasa</translation> <translation id="6187190722927752226">Mchanganyiko wa Kijani na Samawati</translation> <translation id="6197361807490522975">Samawati Iliyokolea</translation> +<translation id="6218813441317556731">badilisha <ph name="DELETE_PHRASE" /> uweke <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Kichwa kinachofuata</translation> <translation id="6254901459154107917">Eneo linalofauata la maandishi linaloweza kubadilishwa</translation> <translation id="6259464875943891919">Umeondoka <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Maelezo ya orodha ya ufafanuzi</translation> <translation id="7370432716629432284">{COUNT,plural, =1{alama ya na}other{alama # za na}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">futa herufi iliyotangulia</translation> <translation id="738899727977260036">Samawati ya Kijivu</translation> <translation id="7393979322571982935">Sauti na mipangilio</translation> <translation id="739763518212184081">Mstari Uliotangulia</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Manjano Hafifu ya Dhahabu</translation> <translation id="7543255924852002459">Futa lebo</translation> <translation id="7552432549459840808">Njia Muhimu za Mikato kwenye Chrome</translation> +<translation id="7553679324939294712">weka <ph name="INSERT_PHRASE" /> kabla ya <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Nyeusi</translation> <translation id="7579911500627256166">nukta ya <ph name="DOT" /></translation> <translation id="7592060599656252486">Baadhi</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Hariri maandishi, ingizo la URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Kitufe cha mviringo kilichotangulia</translation> +<translation id="7696631298608145306">hamishia kiteuzi kwenye neno linalofuata</translation> <translation id="7701040980221191251">Hamna</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Sauti ya kawaida</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Upeo wa juu <ph name="X" /></translation> <translation id="84575901236241018">ina kitufe cha ufikiaji, <ph name="KEY" /></translation> <translation id="8463645336674919227">Unaacha kosa la kisarufi</translation> +<translation id="8465573210279050749">futa neno lililotangulia</translation> <translation id="847040613207937740">Hakuna kisanduku cha kuteua kinachofuata</translation> <translation id="8473540203671727883">Tamka maandishi yaliyo chini ya kipanya</translation> <translation id="8476408756881832830">Sitisha kucheza ChromeVox inapozungumza</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{kistari}other{vistari wima #}}</translation> <translation id="8741370088760768424">Kidokezo: Bonyeza vitufe vya Utafutaji na Nafasi ili uwezeshe kipengee cha sasa.</translation> <translation id="8743786158317878347">ingiza maudhui yenye muundo, kama vile majedwali</translation> +<translation id="8746846427395705317">hamishia kiteuzi kwenye neno lililotangulia</translation> <translation id="8747966237988593539">Orodha yenye Mpangilio</translation> <translation id="8749988712346667988">Fedha</translation> <translation id="875769700429317857">Imemaliza kupakua <ph name="FILE_NAME" /></translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Hakuna sehemu iliyotangulia</translation> <translation id="89720367119469899">Ondoka</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">futa <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Sahau</translation> <translation id="8989104346085848538">Ili usimamishe matamshi yoyote yanayoendelea kwenye ChromeVox, bonyeza kitufe cha 'Control'.</translation> <translation id="8993737615451556423">Hukupa vidhibiti vya kuongeza kasi, kupunguza kasi na kusitisha sauti ya kusoma</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb index 879ab2e3..be1b987 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ta.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">ஆரஞ்சு</translation> <translation id="1198865190323699001">தொடுதல் சைகைகள்</translation> <translation id="1201402288615127009">அடுத்து</translation> +<translation id="1202112913213080585">ரத்துசெய்</translation> <translation id="1206619573307042055">மார்கியூ</translation> <translation id="1207086294218137981">அடுத்த 4ம் நிலை தலைப்பு எதுவும் இல்லை</translation> <translation id="1212770441379271564">அடுத்துவரும் சில ஷார்ட்கட்கள் ChromeVox கட்டளைகள் இல்லை, எனினும் அவை Chromeமைச் சிறப்பாகப் பயன்படுத்த உதவியாக இருக்கும். @@ -43,6 +44,7 @@ Chrome உலாவி மெனுவைத் திறக்க, Alt+F விசைகளை அழுத்தவும்.</translation> <translation id="1213216066620407844">ChromeVox - Chrome க்கு குரல் கொடுக்கிறது</translation> <translation id="1225969361094801578">டார்க் ஸ்லேட் கிரே</translation> +<translation id="122928249241119550">முந்தைய வாக்கியத்திற்குச் செல்</translation> <translation id="1230503547248836149">தேர்வுசெய்த உரையின் தொடக்கம்</translation> <translation id="1236794971743289975">முடிவுக்குறிப்பு</translation> <translation id="1237797094773582699">இதேபோல, நான்கு விரல்களால் வலதுபுறத்திலிருந்து இடதுபுறம் ஸ்வைப் செய்து முந்தைய பிரிவுக்குச் செல்லலாம். இப்போதே செய்து பாருங்கள்!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">டோட்ஜ்ர் புளூ</translation> <translation id="2438712309510062123">பரிந்துரை</translation> <translation id="2450814015951372393">செக்பாக்ஸ்</translation> +<translation id="2450992626945324272">அடுத்த வாக்கியத்திற்குச் செல்</translation> <translation id="2461822463642141190">தற்போதைய மின் உபயோகம்</translation> <translation id="2462626033734746142">ரேடியோ பட்டன் குழு</translation> <translation id="2467741090055146971">தேர்வுநீக்கு</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">காடெட் புளூ</translation> <translation id="4217571870635786043">சொல்வதை எழுதுவது</translation> <translation id="4218529045364428769">{COUNT,plural, =1{சிறுகோடு}other{# சிறுகோடுகள்}}</translation> +<translation id="4220024144662591089"><ph name="START_PHRASE" /> என்பதில் இருந்து <ph name="END_PHRASE" /> என்பது வரை தேர்ந்தெடு</translation> <translation id="4221012616705981690">முந்தைய பட்டியல் எதுவும் இல்லை</translation> <translation id="4225355998815256469">படிவக் கட்டுப்பாடுகள்</translation> <translation id="4230834257931120629">லைட் ஸ்லேட் கிரே</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">பட்டியல்பெட்டி அல்லது சேர்க்கைப் பெட்டி</translation> +<translation id="613344593214611552">முந்தைய வாக்கியத்தை நீக்கு</translation> <translation id="6142308968191113180">தலைப்பு 4</translation> <translation id="6150023170003443621">எல்லோ க்ரீன்</translation> <translation id="6158882249329863701"><ph name="TABLECELLROWINDEX" /> வரிசை <ph name="TABLECELLCOLUMNINDEX" /> நெடுவரிசை</translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">பக்கத்தின் கீழ்பகுதிக்குச் செல்லவும்</translation> <translation id="6187190722927752226">அக்வாமெரைன்</translation> <translation id="6197361807490522975">டார்க் புளூ</translation> +<translation id="6218813441317556731"><ph name="DELETE_PHRASE" /> என்பதை <ph name="INSERT_PHRASE" /> என மாற்று</translation> <translation id="6236061028292614533">அடுத்த தலைப்பு</translation> <translation id="6254901459154107917">அடுத்த திருத்தக்கூடிய உரைப் பகுதி</translation> <translation id="6259464875943891919"><ph name="TYPE" /> இலிருந்து வெளியேறினார்.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">விளக்கப் பட்டியல் விவரம்</translation> <translation id="7370432716629432284">{COUNT,plural, =1{உம்மைக்குறி}other{# உம்மைக்குறிகள்}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">முந்தைய எழுத்தை நீக்கு</translation> <translation id="738899727977260036">ஸ்லேட் புளூ</translation> <translation id="7393979322571982935">ஒலிகளும் அமைப்புகளும்</translation> <translation id="739763518212184081">முந்தைய வரி</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">லைட் கோல்டன் ராட் எல்லோ</translation> <translation id="7543255924852002459">நிராகரி லேபிள்</translation> <translation id="7552432549459840808">உதவிகரமான Chrome ஷார்ட்கட்கள்</translation> +<translation id="7553679324939294712"><ph name="BEFORE_PHRASE" /> என்பதற்கு முன் <ph name="INSERT_PHRASE" /> என்பதைச் சேர்</translation> <translation id="7569983096843329377">கருப்பு</translation> <translation id="7579911500627256166">புள்ளி <ph name="DOT" /></translation> <translation id="7592060599656252486">சில நிறுத்தற்குறிகள்</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">உரையைத் திருத்து, URL உள்ளீடு</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">முந்தைய ரேடியோ பட்டன்</translation> +<translation id="7696631298608145306">அடுத்த வார்த்தைக்குச் செல்</translation> <translation id="7701040980221191251">எதுவுமில்லை</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">இயல்பான குரல்</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">அதிகபட்சம் <ph name="X" /></translation> <translation id="84575901236241018">அணுகல் விசை உள்ளது, <ph name="KEY" /></translation> <translation id="8463645336674919227">இலக்கணப் பிழையைத் தவிர்த்துச் செல்கிறீர்கள்</translation> +<translation id="8465573210279050749">முந்தைய வார்த்தையை நீக்கு</translation> <translation id="847040613207937740">அடுத்த செக்பாக்ஸ் எதுவும் இல்லை</translation> <translation id="8473540203671727883">மவுஸை நகர்த்துகையில் கர்சர் காட்டும் உரையைப் பேசு</translation> <translation id="8476408756881832830">ChromeVox பேசும் போது, பிளேபேக்கை இடைநிறுத்து</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{குத்துக் கோடு}other{# செங்குத்தான குத்துக் கோடுகள்}}</translation> <translation id="8741370088760768424">குறிப்பு: தற்போதைய உறுப்பைச் செயல்படுத்த, Search + Space விசைகளை அழுத்துங்கள்.</translation> <translation id="8743786158317878347">அட்டவணைகள் போன்ற கட்டமைக்கப்பட்ட உள்ளடக்கத்தை உள்ளிடும்</translation> +<translation id="8746846427395705317">முந்தைய வார்த்தைக்குச் செல்</translation> <translation id="8747966237988593539">வரிசைப்படுத்தப்பட்ட பட்டியல்</translation> <translation id="8749988712346667988">சில்வர்</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> பதிவிறக்கப்பட்டது</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">முந்தைய பிரிவு எதுவும் இல்லை</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740"><ph name="PHRASE" /> என்பதை நீக்கு</translation> <translation id="8986362086234534611">மற</translation> <translation id="8989104346085848538">ChromeVox தற்போது வாசித்துக் காட்டுவதை நிறுத்த, Ctrl விசையை அழுத்தவும்.</translation> <translation id="8993737615451556423">வேகமாக & மெதுவாகப் படிப்பதற்கும், படிப்பதை இடைநிறுத்துவதற்குமான கட்டுப்பாடுகள் காட்டப்படும்</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uk.xtb index a8762a7..d33af30 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uk.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_uk.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Оранжевий</translation> <translation id="1198865190323699001">Жести натискання</translation> <translation id="1201402288615127009">Далі</translation> +<translation id="1202112913213080585">скасувати</translation> <translation id="1206619573307042055">область виділення</translation> <translation id="1207086294218137981">Немає наступного заголовка рівня 4</translation> <translation id="1212770441379271564">Комбінації клавіш нижче не є командами в ChromeVox, але вони дуже зручні для продуктивної роботи в Chrome. @@ -43,6 +44,7 @@ Щоб відкрити меню веб-переглядача Chrome, натисніть Alt+F.</translation> <translation id="1213216066620407844">ChromeVox – голосовий супровід Chrome</translation> <translation id="1225969361094801578">Темний грифельно-сірий</translation> +<translation id="122928249241119550">перейти до попереднього речення</translation> <translation id="1230503547248836149">Початок виділеного тексту</translation> <translation id="1236794971743289975">Кінцева виноска</translation> <translation id="1237797094773582699">Аналогічно, якщо провести чотирма пальцями справа наліво, можна перейти до попереднього розділу. Спробуйте зараз!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Блакитний</translation> <translation id="2438712309510062123">Запропонувати</translation> <translation id="2450814015951372393">Прапорець</translation> +<translation id="2450992626945324272">перейти до наступного речення</translation> <translation id="2461822463642141190">Енергоспоживання</translation> <translation id="2462626033734746142">Група перемикачів</translation> <translation id="2467741090055146971">скасувати вибір</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Сіро-синій</translation> <translation id="4217571870635786043">Диктування</translation> <translation id="4218529045364428769">{COUNT,plural, =1{тире}one{# тире}few{# тире}many{# тире}other{# dashes}}</translation> +<translation id="4220024144662591089">виділити все від "<ph name="START_PHRASE" />" до "<ph name="END_PHRASE" />"</translation> <translation id="4221012616705981690">Немає попереднього списку</translation> <translation id="4225355998815256469">Елементи керування формами</translation> <translation id="4230834257931120629">Світлий грифельно-сірий</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">натиснуто</translation> <translation id="6122013438240733403">кнопка</translation> <translation id="6132506484792346370">Вікно зі списком або комбіноване вікно</translation> +<translation id="613344593214611552">видалити попереднє речення</translation> <translation id="6142308968191113180">Заголовок 4</translation> <translation id="6150023170003443621">Жовто-зелений</translation> <translation id="6158882249329863701">рядок <ph name="TABLECELLROWINDEX" />, стовпець <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Перейти вниз сторінки</translation> <translation id="6187190722927752226">Аквамарин</translation> <translation id="6197361807490522975">Темно-синій</translation> +<translation id="6218813441317556731">замінити "<ph name="DELETE_PHRASE" />" на "<ph name="INSERT_PHRASE" />"</translation> <translation id="6236061028292614533">Наступний заголовок</translation> <translation id="6254901459154107917">Наступна область тексту для редагування</translation> <translation id="6259464875943891919"><ph name="TYPE" /> закрито.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Деталі списку описів</translation> <translation id="7370432716629432284">{COUNT,plural, =1{амперсанд}one{# амперсанд}few{# амперсанди}many{# амперсандів}other{# ampersands}}</translation> <translation id="737396357417333429">інтерактивний елемент</translation> +<translation id="7388656272362719103">видалити попередній символ</translation> <translation id="738899727977260036">Грифельно-синій</translation> <translation id="7393979322571982935">Звуки й налаштування</translation> <translation id="739763518212184081">Попередній рядок</translation> @@ -940,6 +947,7 @@ <translation id="7533226154149229506">Світлий золотисто-жовтий</translation> <translation id="7543255924852002459">Відхилити мітку</translation> <translation id="7552432549459840808">Корисні комбінації клавіш у Chrome</translation> +<translation id="7553679324939294712">вставити "<ph name="INSERT_PHRASE" />" перед "<ph name="BEFORE_PHRASE" />"</translation> <translation id="7569983096843329377">Чорний</translation> <translation id="7579911500627256166">крапка <ph name="DOT" /></translation> <translation id="7592060599656252486">Деякі розділові знаки</translation> @@ -963,6 +971,7 @@ <translation id="7684431668231950609">Редагування введеного тексту, URL-адреси</translation> <translation id="7685589220304187312">панель інструментів</translation> <translation id="7693840228159394336">Попередній перемикач</translation> +<translation id="7696631298608145306">перейти до наступного слова</translation> <translation id="7701040980221191251">Немає</translation> <translation id="7701196182766842984">список автозавершення</translation> <translation id="7713139339518499741">Природний голос</translation> @@ -1070,6 +1079,7 @@ <translation id="8455868257606149352">Макс. <ph name="X" /></translation> <translation id="84575901236241018">має клавішу доступу: <ph name="KEY" /></translation> <translation id="8463645336674919227">Граматичну помилку не виправлено</translation> +<translation id="8465573210279050749">видалити попереднє слово</translation> <translation id="847040613207937740">Немає наступного прапорця</translation> <translation id="8473540203671727883">Озвучити текст під мишею</translation> <translation id="8476408756881832830">Призупиняти відтворення, коли ChromeVox зчитує з екрана</translation> @@ -1106,6 +1116,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{вертикальна риска}one{# вертикальна риска}few{# вертикальні риски}many{# вертикальних рисок}other{# vertical pipes}}</translation> <translation id="8741370088760768424">Підказка: щоб активувати поточний елемент, натисніть клавішу пошуку + пробіл.</translation> <translation id="8743786158317878347">відкрити структурований вміст, як-от таблиці</translation> +<translation id="8746846427395705317">перейти до попереднього слова</translation> <translation id="8747966237988593539">Нумерований список</translation> <translation id="8749988712346667988">Срібний</translation> <translation id="875769700429317857">Завантаження файлу <ph name="FILE_NAME" /> завершено</translation> @@ -1133,6 +1144,7 @@ <translation id="8970172509886453271">Немає попереднього розділу</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">підказка</translation> +<translation id="898089897833732740">видалити "<ph name="PHRASE" />"</translation> <translation id="8986362086234534611">Видалити</translation> <translation id="8989104346085848538">Щоб зупинити озвучення ChromeVox, натисніть клавішу Control.</translation> <translation id="8993737615451556423">Елементи керування, за допомогою яких можна пришвидшувати, сповільнювати й зупиняти озвучення</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb index 0410fe88..e9db64de 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_vi.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">Màu cam</translation> <translation id="1198865190323699001">Cử chỉ chạm</translation> <translation id="1201402288615127009">Tiếp theo</translation> +<translation id="1202112913213080585">huỷ</translation> <translation id="1206619573307042055">bảng chữ chạy</translation> <translation id="1207086294218137981">Không có tiêu đề cấp 4 nào tiếp theo</translation> <translation id="1212770441379271564">Một số phím tắt tiếp theo không phải là phím lệnh của ChromeVox nhưng vẫn rất hữu ích để khai thác tối đa lợi ích của Chrome. @@ -43,6 +44,7 @@ Để mở trình đơn của trình duyệt Chrome, hãy nhấn tổ hợp phím Alt+F.</translation> <translation id="1213216066620407844">ChromeVox - Mang tính năng Thoại lên Chrome</translation> <translation id="1225969361094801578">Màu xám đen đậm</translation> +<translation id="122928249241119550">chuyển đến câu trước</translation> <translation id="1230503547248836149">Phần đầu của vùng lựa chọn</translation> <translation id="1236794971743289975">Chú thích cuối</translation> <translation id="1237797094773582699">Tương tự, bạn có thể vuốt bằng 4 ngón tay từ phải sang trái để di chuyển đến phần trước. Hãy thử ngay bây giờ!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">Màu xanh lam sáng</translation> <translation id="2438712309510062123">Đề xuất</translation> <translation id="2450814015951372393">Hộp kiểm</translation> +<translation id="2450992626945324272">chuyển đến câu tiếp theo</translation> <translation id="2461822463642141190">Hiện tại</translation> <translation id="2462626033734746142">Nhóm nút radio</translation> <translation id="2467741090055146971">bỏ chọn</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">Màu xanh lơ</translation> <translation id="4217571870635786043">Nhập bằng giọng nói</translation> <translation id="4218529045364428769">{COUNT,plural, =1{dấu gạch ngang}other{# dấu gạch ngang}}</translation> +<translation id="4220024144662591089">chọn từ <ph name="START_PHRASE" /> đến <ph name="END_PHRASE" /></translation> <translation id="4221012616705981690">Không có danh sách nào trước đó</translation> <translation id="4225355998815256469">Nút điều khiển biểu mẫu</translation> <translation id="4230834257931120629">Màu xám đen nhạt</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">btn</translation> <translation id="6132506484792346370">Hộp danh sách hoặc hộp kết hợp</translation> +<translation id="613344593214611552">xoá câu trước</translation> <translation id="6142308968191113180">Tiêu đề 4</translation> <translation id="6150023170003443621">Màu lục vàng</translation> <translation id="6158882249329863701">hàng <ph name="TABLECELLROWINDEX" /> cột <ph name="TABLECELLCOLUMNINDEX" /></translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">Chuyển đến cuối trang</translation> <translation id="6187190722927752226">Màu ngọc xanh biển</translation> <translation id="6197361807490522975">Màu lam đậm</translation> +<translation id="6218813441317556731">thay <ph name="DELETE_PHRASE" /> bằng <ph name="INSERT_PHRASE" /></translation> <translation id="6236061028292614533">Tiêu đề tiếp theo</translation> <translation id="6254901459154107917">Vùng văn bản có thể chỉnh sửa tiếp theo</translation> <translation id="6259464875943891919">Đã thoát <ph name="TYPE" />.</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">Thông tin chi tiết danh sách mô tả</translation> <translation id="7370432716629432284">{COUNT,plural, =1{dấu và}other{# dấu và}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">xoá ký tự đứng trước</translation> <translation id="738899727977260036">Màu lam xám đen</translation> <translation id="7393979322571982935">Âm thanh và các tùy chọn cài đặt</translation> <translation id="739763518212184081">Dòng trước</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">Màu vàng nghệ nhạt</translation> <translation id="7543255924852002459">Nhãn hủy</translation> <translation id="7552432549459840808">Phím tắt hữu ích của Chrome</translation> +<translation id="7553679324939294712">chèn <ph name="INSERT_PHRASE" /> trước <ph name="BEFORE_PHRASE" /></translation> <translation id="7569983096843329377">Đen</translation> <translation id="7579911500627256166">chấm <ph name="DOT" /></translation> <translation id="7592060599656252486">Một vài</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">Chỉnh sửa văn bản, mục nhập URL</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">Nút radio trước</translation> +<translation id="7696631298608145306">chuyển đến từ tiếp theo</translation> <translation id="7701040980221191251">Không có</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">Giọng nói tự nhiên</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">Tối đa <ph name="X" /></translation> <translation id="84575901236241018">có khóa truy cập, <ph name="KEY" /></translation> <translation id="8463645336674919227">Rời khỏi lỗi ngữ pháp</translation> +<translation id="8465573210279050749">xoá từ đứng trước</translation> <translation id="847040613207937740">Không có hộp đánh dấu nào tiếp theo</translation> <translation id="8473540203671727883">Đọc văn bản bên dưới con trỏ chuột</translation> <translation id="8476408756881832830">Tạm dừng phát lại khi ChromeVox đang nói</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{dấu sổ thẳng}other{# dấu sổ thẳng}}</translation> <translation id="8741370088760768424">Gợi ý: Nhấn tổ hợp phím Tìm kiếm + Dấu cách để kích hoạt mục hiện tại.</translation> <translation id="8743786158317878347">vào nội dung có cấu trúc, chẳng hạn như bảng</translation> +<translation id="8746846427395705317">chuyển đến từ đứng trước</translation> <translation id="8747966237988593539">Danh sách theo thứ tự</translation> <translation id="8749988712346667988">Màu bạc</translation> <translation id="875769700429317857">Đã hoàn tất việc tải <ph name="FILE_NAME" /> xuống</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">Không có phần nào trước đó</translation> <translation id="89720367119469899">Thoát</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">xoá <ph name="PHRASE" /></translation> <translation id="8986362086234534611">Quên</translation> <translation id="8989104346085848538">Để dừng giọng đọc ChromeVox hiện tại, hãy nhấn phím Control.</translation> <translation id="8993737615451556423">Cung cấp các tùy chọn điều khiển để tăng, giảm tốc độ và tạm dừng giọng đọc</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb index 51a6a3fc..6fc3b7a 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-CN.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">橙色</translation> <translation id="1198865190323699001">触摸手势</translation> <translation id="1201402288615127009">下一步</translation> +<translation id="1202112913213080585">取消</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">没有下一个 4 级标题</translation> <translation id="1212770441379271564">以下这些实用的快捷键并不是 ChromeVox 命令,但能够帮助您充分利用 Chrome。 @@ -43,6 +44,7 @@ 要打开 Chrome 浏览器菜单,请按 Alt+F。</translation> <translation id="1213216066620407844">ChromeVox - 为Chrome提供语音功能</translation> <translation id="1225969361094801578">暗岩灰色</translation> +<translation id="122928249241119550">移到上一句</translation> <translation id="1230503547248836149">文本选择区域的开头</translation> <translation id="1236794971743289975">尾注</translation> <translation id="1237797094773582699">同样,用 4 根手指从右向左滑动屏幕即可移至上一部分。现在就试试吧!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">道奇蓝色</translation> <translation id="2438712309510062123">建议</translation> <translation id="2450814015951372393">复选框</translation> +<translation id="2450992626945324272">移到下一句</translation> <translation id="2461822463642141190">电流</translation> <translation id="2462626033734746142">单选按钮组</translation> <translation id="2467741090055146971">取消选择</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">军服蓝</translation> <translation id="4217571870635786043">语音输入</translation> <translation id="4218529045364428769">{COUNT,plural, =1{1个破折号}other{#个破折号}}</translation> +<translation id="4220024144662591089">选择从“<ph name="START_PHRASE" />”到“<ph name="END_PHRASE" />”之间的内容</translation> <translation id="4221012616705981690">没有上一个列表</translation> <translation id="4225355998815256469">表单控件</translation> <translation id="4230834257931120629">亮岩灰色</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">按钮</translation> <translation id="6132506484792346370">列表框或组合框</translation> +<translation id="613344593214611552">删除上一句</translation> <translation id="6142308968191113180">4 级标题标记</translation> <translation id="6150023170003443621">黄绿色</translation> <translation id="6158882249329863701">第 <ph name="TABLECELLROWINDEX" /> 行,第 <ph name="TABLECELLCOLUMNINDEX" /> 列</translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">跳至页尾</translation> <translation id="6187190722927752226">海蓝色</translation> <translation id="6197361807490522975">深蓝色</translation> +<translation id="6218813441317556731">将“<ph name="DELETE_PHRASE" />”替换为“<ph name="INSERT_PHRASE" />”</translation> <translation id="6236061028292614533">下一个标题</translation> <translation id="6254901459154107917">下一个可编辑的文本区域</translation> <translation id="6259464875943891919">已退出“<ph name="TYPE" />”。</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">说明列表详情</translation> <translation id="7370432716629432284">{COUNT,plural, =1{1个&号}other{#个&号}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">删除上一个字符</translation> <translation id="738899727977260036">岩蓝色</translation> <translation id="7393979322571982935">提示音和设置</translation> <translation id="739763518212184081">上一行</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">亮金黄色</translation> <translation id="7543255924852002459">舍弃标签</translation> <translation id="7552432549459840808">实用的 Chrome 快捷键</translation> +<translation id="7553679324939294712">在“<ph name="BEFORE_PHRASE" />”前面插入“<ph name="INSERT_PHRASE" />”</translation> <translation id="7569983096843329377">黑色</translation> <translation id="7579911500627256166">点 <ph name="DOT" /></translation> <translation id="7592060599656252486">部分</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">编辑文本,网址条目</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">上一个单选按钮</translation> +<translation id="7696631298608145306">移到下一个字词</translation> <translation id="7701040980221191251">无</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">自然语音</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">最大值为<ph name="X" /></translation> <translation id="84575901236241018">有快捷键,<ph name="KEY" /></translation> <translation id="8463645336674919227">退出的区域含有语法错误</translation> +<translation id="8465573210279050749">删除上一个字词</translation> <translation id="847040613207937740">没有下一个复选框</translation> <translation id="8473540203671727883">说出鼠标指针下的文字</translation> <translation id="8476408756881832830">在 ChromeVox 朗读时暂停播放音频</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{1个竖线符号}other{#个竖线符号}}</translation> <translation id="8741370088760768424">提示:按搜索键 + 空格键可启用当前项。</translation> <translation id="8743786158317878347">进入结构化内容,如表格</translation> +<translation id="8746846427395705317">移到上一个字词</translation> <translation id="8747966237988593539">经过排序的列表</translation> <translation id="8749988712346667988">银色</translation> <translation id="875769700429317857">“<ph name="FILE_NAME" />”已下载完毕</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">没有上一个章节</translation> <translation id="89720367119469899">转义</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">删除“<ph name="PHRASE" />”</translation> <translation id="8986362086234534611">不保存</translation> <translation id="8989104346085848538">若要停止任何当前 ChromeVox 语音,请按 Ctrl 键。</translation> <translation id="8993737615451556423">提供用于加快语速、减慢语速和暂停朗读的控件</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb index 9422e8c..6bf66a9 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-HK.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">橙色</translation> <translation id="1198865190323699001">輕觸手勢</translation> <translation id="1201402288615127009">下一個</translation> +<translation id="1202112913213080585">取消</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">冇下一個第 4 級標題</translation> <translation id="1212770441379271564">以下這些快速鍵並非 ChromeVox 指令,但非常實用,可協助您善用 Chrome。 @@ -43,6 +44,7 @@ 如要開啟 Chrome 瀏覽器選單,請按 Alt + F 鍵。</translation> <translation id="1213216066620407844">ChromeVox:為 Chrome 提供語音朗讀功能</translation> <translation id="1225969361094801578">深岩灰色</translation> +<translation id="122928249241119550">移到上一個句子</translation> <translation id="1230503547248836149">選取範圍的開頭</translation> <translation id="1236794971743289975">尾註</translation> <translation id="1237797094773582699">同樣地,您可用四隻手指由右至左滑動來移動至上一個部分。立即試試吧!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">道奇藍色</translation> <translation id="2438712309510062123">建議</translation> <translation id="2450814015951372393">選框</translation> +<translation id="2450992626945324272">移到下一個句子</translation> <translation id="2461822463642141190">電流</translation> <translation id="2462626033734746142">圓形按鈕群組</translation> <translation id="2467741090055146971">取消揀選</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">軍服藍色</translation> <translation id="4217571870635786043">語音輸入</translation> <translation id="4218529045364428769">{COUNT,plural, =1{1 個破折號}other{# 個破折號}}</translation> +<translation id="4220024144662591089">選取「<ph name="START_PHRASE" />」到「<ph name="END_PHRASE" />」</translation> <translation id="4221012616705981690">冇上一份清單</translation> <translation id="4225355998815256469">表格控制項</translation> <translation id="4230834257931120629">淺灰色</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">按鈕</translation> <translation id="6132506484792346370">清單方塊或下拉式方塊</translation> +<translation id="613344593214611552">刪除上一個句子</translation> <translation id="6142308968191113180">標題 4</translation> <translation id="6150023170003443621">黃綠色</translation> <translation id="6158882249329863701">第 <ph name="TABLECELLROWINDEX" /> 列,第 <ph name="TABLECELLCOLUMNINDEX" /> 欄</translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">前往網頁底部</translation> <translation id="6187190722927752226">海藍色</translation> <translation id="6197361807490522975">深藍色</translation> +<translation id="6218813441317556731">用「<ph name="INSERT_PHRASE" />」取代「<ph name="DELETE_PHRASE" />」</translation> <translation id="6236061028292614533">下一個標題</translation> <translation id="6254901459154107917">下一個可編輯的文字區域</translation> <translation id="6259464875943891919">結束<ph name="TYPE" />。</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">說明清單詳情</translation> <translation id="7370432716629432284">{COUNT,plural, =1{1 個 & 符號}other{# 個 & 符號}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">刪除上一個字元</translation> <translation id="738899727977260036">岩藍色</translation> <translation id="7393979322571982935">音效和設定</translation> <translation id="739763518212184081">上一行</translation> @@ -940,6 +947,7 @@ <translation id="7533226154149229506">淺金菊黃色</translation> <translation id="7543255924852002459">捨棄標籤</translation> <translation id="7552432549459840808">實用的 Chrome 快速鍵</translation> +<translation id="7553679324939294712">在「<ph name="BEFORE_PHRASE" />」之前插入「<ph name="INSERT_PHRASE" />」</translation> <translation id="7569983096843329377">黑色</translation> <translation id="7579911500627256166">點 <ph name="DOT" /></translation> <translation id="7592060599656252486">部分</translation> @@ -963,6 +971,7 @@ <translation id="7684431668231950609">編輯文字,網址項目</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">上一個圓形按鈕</translation> +<translation id="7696631298608145306">移到下一個字詞</translation> <translation id="7701040980221191251">沒有</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">自然語音</translation> @@ -1070,6 +1079,7 @@ <translation id="8455868257606149352">最大值:<ph name="X" /></translation> <translation id="84575901236241018">有快捷鍵「<ph name="KEY" />」</translation> <translation id="8463645336674919227">退出緊文法錯誤</translation> +<translation id="8465573210279050749">刪除上一個字詞</translation> <translation id="847040613207937740">冇下一個選框</translation> <translation id="8473540203671727883">說出滑鼠游標下的文字</translation> <translation id="8476408756881832830">在 ChromeVox 朗讀時暫停播放音訊</translation> @@ -1106,6 +1116,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{1 個直立線符號}other{# 個直立線符號}}</translation> <translation id="8741370088760768424">提示:㩒搜尋鍵加空白鍵就可以啟用目前嘅項目。</translation> <translation id="8743786158317878347">進入結構化內容,例如表格</translation> +<translation id="8746846427395705317">移到上一個字詞</translation> <translation id="8747966237988593539">排序清單</translation> <translation id="8749988712346667988">銀色</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> 下載完成</translation> @@ -1133,6 +1144,7 @@ <translation id="8970172509886453271">冇上一個區段</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">刪除「<ph name="PHRASE" />」</translation> <translation id="8986362086234534611">清除</translation> <translation id="8989104346085848538">如要停止目前的任何 ChromeVox 朗讀,請按下 Control 鍵。</translation> <translation id="8993737615451556423">提供可加快、減慢及暫停語音朗讀的控制項</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb index e8b1fc7..55300ec 100644 --- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb +++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb
@@ -32,6 +32,7 @@ <translation id="1197088940767939838">橘色</translation> <translation id="1198865190323699001">觸控手勢</translation> <translation id="1201402288615127009">繼續</translation> +<translation id="1202112913213080585">取消</translation> <translation id="1206619573307042055">marquee</translation> <translation id="1207086294218137981">沒有下一個第 4 階標題</translation> <translation id="1212770441379271564">以下這些快速鍵並非 ChromeVox 指令,但仍然很實用,可協助你善用 Chrome。 @@ -43,6 +44,7 @@ 如要開啟 Chrome 瀏覽器選單,請按下 Alt+F 鍵。</translation> <translation id="1213216066620407844">ChromeVox:為 Chrome 提供語音朗讀功能</translation> <translation id="1225969361094801578">深岩灰</translation> +<translation id="122928249241119550">移到上一個句子</translation> <translation id="1230503547248836149">選取範圍的開頭</translation> <translation id="1236794971743289975">章節附註</translation> <translation id="1237797094773582699">同樣地,用四指由右往左滑動可移至上一個部分,現在就試試看吧!</translation> @@ -213,6 +215,7 @@ <translation id="2435422727584637732">道奇藍</translation> <translation id="2438712309510062123">建議</translation> <translation id="2450814015951372393">核取方塊</translation> +<translation id="2450992626945324272">移到下一個句子</translation> <translation id="2461822463642141190">電流</translation> <translation id="2462626033734746142">圓形按鈕群組</translation> <translation id="2467741090055146971">取消選取</translation> @@ -489,6 +492,7 @@ <translation id="42164919740161077">軍服藍</translation> <translation id="4217571870635786043">語音輸入</translation> <translation id="4218529045364428769">{COUNT,plural, =1{破折號}other{# 個破折號}}</translation> +<translation id="4220024144662591089">選取「<ph name="START_PHRASE" />」到「<ph name="END_PHRASE" />」</translation> <translation id="4221012616705981690">沒有上一份清單</translation> <translation id="4225355998815256469">表單控制項</translation> <translation id="4230834257931120629">淺灰藍</translation> @@ -759,6 +763,7 @@ <translation id="611827076493383239">vtd</translation> <translation id="6122013438240733403">按鈕</translation> <translation id="6132506484792346370">清單方塊或下拉式方塊</translation> +<translation id="613344593214611552">刪除上一個句子</translation> <translation id="6142308968191113180">標題 4</translation> <translation id="6150023170003443621">黃綠</translation> <translation id="6158882249329863701">第 <ph name="TABLECELLROWINDEX" /> 列,第 <ph name="TABLECELLCOLUMNINDEX" /> 欄</translation> @@ -768,6 +773,7 @@ <translation id="6186305613600865047">前往網頁底部</translation> <translation id="6187190722927752226">碧藍</translation> <translation id="6197361807490522975">深藍</translation> +<translation id="6218813441317556731">用「<ph name="INSERT_PHRASE" />」取代「<ph name="DELETE_PHRASE" />」</translation> <translation id="6236061028292614533">下一個標題</translation> <translation id="6254901459154107917">下一個可編輯的文字區域</translation> <translation id="6259464875943891919">已離開<ph name="TYPE" />。</translation> @@ -921,6 +927,7 @@ <translation id="7356610683936413584">說明清單詳細資料</translation> <translation id="7370432716629432284">{COUNT,plural, =1{& 符號}other{# 個 & 符號}}</translation> <translation id="737396357417333429">clk</translation> +<translation id="7388656272362719103">刪除上一個字元</translation> <translation id="738899727977260036">岩藍</translation> <translation id="7393979322571982935">音效與設定</translation> <translation id="739763518212184081">上一行</translation> @@ -941,6 +948,7 @@ <translation id="7533226154149229506">淺金菊黃</translation> <translation id="7543255924852002459">捨棄標籤</translation> <translation id="7552432549459840808">實用的 Chrome 快速鍵</translation> +<translation id="7553679324939294712">在「<ph name="BEFORE_PHRASE" />」之前插入「<ph name="INSERT_PHRASE" />」</translation> <translation id="7569983096843329377">黑色</translation> <translation id="7579911500627256166">點 <ph name="DOT" /></translation> <translation id="7592060599656252486">部分</translation> @@ -964,6 +972,7 @@ <translation id="7684431668231950609">編輯文字,網址項目</translation> <translation id="7685589220304187312">tlbar</translation> <translation id="7693840228159394336">上一個圓形按鈕</translation> +<translation id="7696631298608145306">移到下一個字詞</translation> <translation id="7701040980221191251">無</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7713139339518499741">自然語音</translation> @@ -1071,6 +1080,7 @@ <translation id="8455868257606149352">最大值:<ph name="X" /></translation> <translation id="84575901236241018">有快捷鍵「<ph name="KEY" />」</translation> <translation id="8463645336674919227">退出文法錯誤區塊</translation> +<translation id="8465573210279050749">刪除上一個字詞</translation> <translation id="847040613207937740">沒有下一個核取方塊</translation> <translation id="8473540203671727883">請讀出滑鼠游標下方的文字</translation> <translation id="8476408756881832830">ChromeVox 朗讀時暫停播放音訊</translation> @@ -1107,6 +1117,7 @@ <translation id="8697111817566059991">{COUNT,plural, =1{直立線符號}other{# 個直立線符號}}</translation> <translation id="8741370088760768424">提示:按下搜尋鍵 + 空格鍵可啟用目前的項目。</translation> <translation id="8743786158317878347">進入結構化內容,例如表格</translation> +<translation id="8746846427395705317">移到上一個字詞</translation> <translation id="8747966237988593539">排序清單</translation> <translation id="8749988712346667988">銀</translation> <translation id="875769700429317857"><ph name="FILE_NAME" /> 下載完成</translation> @@ -1134,6 +1145,7 @@ <translation id="8970172509886453271">沒有上一個區段</translation> <translation id="89720367119469899">Escape</translation> <translation id="8978496506222343566">tltip</translation> +<translation id="898089897833732740">刪除「<ph name="PHRASE" />」</translation> <translation id="8986362086234534611">清除</translation> <translation id="8989104346085848538">如要停止目前的任何 ChromeVox 朗讀,請按下 Control 鍵。</translation> <translation id="8993737615451556423">提供可調整朗讀速度以及暫停語音朗讀的控制項</translation>
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/background.html b/chrome/browser/resources/chromeos/accessibility/switch_access/background.html index 1a95408..0fa2e3b 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/background.html +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/background.html
@@ -1,12 +1,10 @@ <!-- Global scripts. --> <script src="/common/closure_shim.js"></script> <script src="/common/constants.js"></script> -<script src="/common/array_util.js"></script> <script src="/common/automation_predicate.js"></script> <script src="/common/automation_util.js"></script> <script src="/common/event_handler.js"></script> <script src="/common/key_code.js"></script> -<script src="/common/rect_util.js"></script> <script src="/common/repeated_event_handler.js"></script> <script src="/common/repeated_tree_change_handler.js"></script> <script src="/common/tree_walker.js"></script>
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js index 4beaf1d4..2f413e6 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {MenuManager} from '/switch_access/menu_manager.js'; import {SAChildNode, SARootNode} from '/switch_access/nodes/switch_access_node.js'; import {SwitchAccess} from '/switch_access/switch_access.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager_test.js b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager_test.js index 43d8a40..7877174 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager_test.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/focus_ring_manager_test.js
@@ -17,6 +17,7 @@ await importModule( 'SAConstants', '/switch_access/switch_access_constants.js'); await importModule('ActionManager', '/switch_access/action_manager.js'); + await importModule('RectUtil', '/common/rect_util.js'); await TestUtility.setup(); }
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/item_scan_manager.js b/chrome/browser/resources/chromeos/accessibility/switch_access/item_scan_manager.js index c57fb1dd..7d647f2d 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/item_scan_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/item_scan_manager.js
@@ -3,6 +3,7 @@ // found in the LICENSE file. import {EventGenerator} from '/common/event_generator.js'; +import {RectUtil} from '/common/rect_util.js'; import {ActionManager} from '/switch_access/action_manager.js'; import {AutoScanManager} from '/switch_access/auto_scan_manager.js'; import {FocusRingManager} from '/switch_access/focus_ring_manager.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/menu_manager.js b/chrome/browser/resources/chromeos/accessibility/switch_access/menu_manager.js index 67f5f44..6a45015 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/menu_manager.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/menu_manager.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {ArrayUtil} from '/common/array_util.js'; import {ActionManager} from '/switch_access/action_manager.js'; import {Navigator} from '/switch_access/navigator.js'; import {SwitchAccess} from '/switch_access/switch_access.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/group_node.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/group_node.js index 5a2b425..4d3ed19d 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/group_node.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/group_node.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {Navigator} from '/switch_access/navigator.js'; import {BackButtonNode} from '/switch_access/nodes/back_button_node.js'; import {SAChildNode, SARootNode} from '/switch_access/nodes/switch_access_node.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/keyboard_node.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/keyboard_node.js index abea39a..37c11eda 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/keyboard_node.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/keyboard_node.js
@@ -3,6 +3,7 @@ // found in the LICENSE file. import {EventGenerator} from '/common/event_generator.js'; +import {RectUtil} from '/common/rect_util.js'; import {AutoScanManager} from '/switch_access/auto_scan_manager.js'; import {Navigator} from '/switch_access/navigator.js'; import {BackButtonNode} from '/switch_access/nodes/back_button_node.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/switch_access_node.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/switch_access_node.js index 7869114..cd3851d5 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/switch_access_node.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/switch_access_node.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {FocusRingManager} from '/switch_access/focus_ring_manager.js'; import {SwitchAccess} from '/switch_access/switch_access.js'; import {SAConstants, SwitchAccessMenuAction} from '/switch_access/switch_access_constants.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node.js index 475e3c84..0e65d13 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {Navigator} from '/switch_access/navigator.js'; import {BackButtonNode} from '/switch_access/nodes/back_button_node.js'; import {BasicNode, BasicRootNode} from '/switch_access/nodes/basic_node.js';
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node_test.js b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node_test.js index 4df1e4b6..64fc8e8 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node_test.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/nodes/tab_node_test.js
@@ -13,6 +13,7 @@ await importModule('Navigator', '/switch_access/navigator.js'); await importModule( 'SwitchAccessMenuAction', '/switch_access/switch_access_constants.js'); + await importModule('RectUtil', '/common/rect_util.js'); } };
diff --git a/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access_predicate.js b/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access_predicate.js index a284a17..6f1636ca 100644 --- a/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access_predicate.js +++ b/chrome/browser/resources/chromeos/accessibility/switch_access/switch_access_predicate.js
@@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import {RectUtil} from '/common/rect_util.js'; import {SACache} from '/switch_access/cache.js'; import {SAChildNode, SARootNode} from '/switch_access/nodes/switch_access_node.js';
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html index 15b5939..3575179b 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.html
@@ -131,6 +131,10 @@ border-bottom-color: var(--scrollable-border-color); } + #contentArea { + scroll-behavior: smooth; + } + iron-collapse { --iron-collapse-transition-duration: 300ms; }
diff --git a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts index 5dbc1d2d..b4106e9 100644 --- a/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts +++ b/chrome/browser/resources/privacy_sandbox/privacy_sandbox_dialog_app.ts
@@ -131,7 +131,10 @@ // ...and scroll the content area up to make the section content // visible. const rect = this.$.expandSection.getBoundingClientRect(); - this.$.contentArea.scrollTo({top: rect.top, behavior: 'smooth'}); + // If the section is expanding, scroll the content area so the learn + // more section is at the top. If the section is collapsing, scroll + // the content area to the top. + this.$.contentArea.scrollTo({top: newVal ? rect.top : 0}); }, duration * 0.7); } } @@ -139,6 +142,29 @@ private promptActionOccurred(action: PrivacySandboxPromptAction) { PrivacySandboxDialogBrowserProxy.getInstance().promptActionOccurred(action); } + + // Methods to be used only for testing, in WebUI or native browser tests. + public waitForScrollToEndForTesting() { + return new Promise(resolve => { + let timer: ReturnType<typeof setTimeout>|null = null; + this.$.contentArea.addEventListener('scroll', _ => { + if (timer !== null) { + clearTimeout(timer); + } + timer = setTimeout(resolve, 150); + }); + }); + } + + public async expandLearnMoreSectionForTesting() { + this.expanded_ = true; + const collapseElement: HTMLElement|null = + this.$.expandSection.querySelector('iron-collapse'); + collapseElement!.style.setProperty( + '--iron-collapse-transition-duration', '0ms'); + this.$.contentArea.style.setProperty('scroll-behavior', 'auto'); + await this.waitForScrollToEndForTesting(); + } } declare global {
diff --git a/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html b/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html index 02ef4c2..469519d 100644 --- a/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html +++ b/chrome/browser/resources/signin/dice_web_signin_intercept/dice_web_signin_intercept_app.html
@@ -115,6 +115,17 @@ width: var(--work-icon-size); } + #headerV2 .work-badge { + --badge-width: 18px; + border: 1px solid var(--google-grey-300); + bottom: -3px; + right: -9px; + } + + #headerV2 .work-badge > iron-icon { + --work-icon-size: 12px; + } + #body { color: var(--cr-secondary-text-color); flex-grow: 1; @@ -189,6 +200,10 @@ background: rgb(50, 54, 57); /* Custom color from Namrata. */ } + #headerV2 .work-badge { + border: 1px solid var(--google-grey-500); + } + #managedDisclaimer { background: var(--google-grey-800); color: var(--google-grey-100);
diff --git a/chrome/browser/resources/signin/profile_customization/profile_customization_app.html b/chrome/browser/resources/signin/profile_customization/profile_customization_app.html index 27fc133..46931aa45 100644 --- a/chrome/browser/resources/signin/profile_customization/profile_customization_app.html +++ b/chrome/browser/resources/signin/profile_customization/profile_customization_app.html
@@ -51,13 +51,14 @@ border-radius: 50%; bottom: var(--badge-offset); height: var(--badge-width); - inset-inline-end: var(--badge-offset); position: absolute; + right: var(--badge-offset); width: var(--badge-width); } .in-dialog-design .work-badge { - --badge-width: 24px; + --badge-width: 26px; + border: 1px solid var(--google-grey-300); bottom: 0; } @@ -143,6 +144,12 @@ margin-inline-end: 12px; width: 76px; } + + @media (prefers-color-scheme: dark) { + .in-dialog-design .work-badge { + border: 1px solid var(--google-grey-500); + } + } </style> <div role="dialog" id="customizeDialog" aria-labelledby="title"
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc index 5391461..82ee235 100644 --- a/chrome/browser/sharing/sms/sms_fetch_request_handler.cc +++ b/chrome/browser/sharing/sms/sms_fetch_request_handler.cc
@@ -192,7 +192,7 @@ origin_list_(origin_list), client_name_(client_name), respond_callback_(std::move(respond_callback)) { - fetcher_->Subscribe(origin_list_, this); + fetcher_->Subscribe(origin_list_, *this); } SmsFetchRequestHandler::Request::~Request() {
diff --git a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc index 02735c9..14b9748 100644 --- a/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc +++ b/chrome/browser/sharing/sms/sms_fetch_request_handler_unittest.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/sharing/sms/sms_fetch_request_handler.h" +#include <memory> #include <string> #include "base/android/jni_android.h" @@ -32,7 +33,6 @@ using ::testing::_; using ::testing::NiceMock; using ::testing::Return; -using ::testing::SaveArg; using ::testing::StrictMock; namespace { @@ -51,11 +51,11 @@ MOCK_METHOD2(Subscribe, void(const content::OriginList& origin_list, - Subscriber* subscriber)); + Subscriber& subscriber)); MOCK_METHOD3(Subscribe, void(const content::OriginList& origin_list, - Subscriber* subscriber, - content::RenderFrameHost* rfh)); + Subscriber& subscriber, + content::RenderFrameHost& rfh)); MOCK_METHOD2(Unsubscribe, void(const content::OriginList& origin_list, Subscriber* subscriber)); @@ -106,6 +106,14 @@ return message; } +// A similar action as testing::SaveArg, but it takes the address of the thing. +template <size_t I = 0, typename T> +auto SavePtrToArg(T* out) { + return [out](auto&&... args) { + *out = std::addressof(std::get<I>(std::tie(args...))); + }; +} + } // namespace TEST(SmsFetchRequestHandlerTest, Basic) { @@ -124,7 +132,7 @@ base::RunLoop loop; SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe(_, _)); handler.OnMessage( @@ -166,7 +174,7 @@ base::RunLoop loop1; SmsFetcher::Subscriber* request1; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&request1)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&request1)); EXPECT_CALL(fetcher, Unsubscribe(_, _)).Times(2); handler.OnMessage( @@ -180,7 +188,7 @@ base::RunLoop loop2; SmsFetcher::Subscriber* request2; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&request2)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&request2)); handler.OnMessage( message2, @@ -207,7 +215,7 @@ MockSmsFetchRequestHandler handler(&fetcher); SharingMessage message = CreateRequest("https://a.com"); SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); // Expects Unsubscribe to be called when SmsFetchRequestHandler goes out of // scope. @@ -226,7 +234,7 @@ SharingMessage message = CreateRequest("https://a.com"); SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe); handler.OnMessage(message, base::DoNothing()); @@ -257,7 +265,7 @@ base::RunLoop loop; SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe); handler.OnMessage( @@ -290,7 +298,7 @@ base::RunLoop loop; SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe); handler.OnMessage( @@ -334,7 +342,7 @@ base::RunLoop loop; SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe(_, _)); handler.OnMessage( @@ -382,7 +390,7 @@ base::RunLoop loop; SmsFetcher::Subscriber* subscriber; - EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SaveArg<1>(&subscriber)); + EXPECT_CALL(fetcher, Subscribe(_, _)).WillOnce(SavePtrToArg<1>(&subscriber)); EXPECT_CALL(fetcher, Unsubscribe(_, _)); handler.OnMessage(
diff --git a/chrome/browser/supervised_user/BUILD.gn b/chrome/browser/supervised_user/BUILD.gn index 81df5b5..f749815 100644 --- a/chrome/browser/supervised_user/BUILD.gn +++ b/chrome/browser/supervised_user/BUILD.gn
@@ -39,14 +39,14 @@ ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] sources = [ + "android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegate.java", "android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java", "android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalDelegate.java", - "android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalDelegateImpl.java", ] # Add the actual implementation where necessary so that downstream targets # can provide their own implementations. - jar_excluded_patterns = [ "*/WebsiteParentApprovalDelegateImpl.class" ] + jar_excluded_patterns = [ "*/ParentAuthDelegateImpl.class" ] } generate_jni("jni_headers") {
diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegate.java b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegate.java new file mode 100644 index 0000000..38709df4 --- /dev/null +++ b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/ParentAuthDelegate.java
@@ -0,0 +1,22 @@ +// Copyright 2022 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. + +package org.chromium.chrome.browser.supervised_user; + +import org.chromium.base.Callback; +import org.chromium.ui.base.WindowAndroid; +import org.chromium.url.GURL; + +/** + * The correct version of {@link ParentAuthDelegateImpl} will be determined at compile + * time via build rules. + */ +public interface ParentAuthDelegate { + /** @see {@link WebsiteParentApproval#isLocalApprovalSupported()} */ + boolean isLocalAuthSupported(); + + /** @see {@link WebsiteParentApproval#requestLocalApproval()} */ + void requestLocalAuth( + WindowAndroid windowAndroid, GURL url, Callback<Boolean> onCompletionCallback); +}
diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java index 10b3913..176b7c6 100644 --- a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java +++ b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApproval.java
@@ -20,8 +20,8 @@ */ @CalledByNative private static boolean isLocalApprovalSupported() { - WebsiteParentApprovalDelegate delegate = new WebsiteParentApprovalDelegateImpl(); - return delegate.isLocalApprovalSupported(); + // TODO(crbug.com/1340913): wire in ParentAuthDelegateImpl once landed in internal. + return false; } /** @@ -39,18 +39,8 @@ * */ @CalledByNative private static void requestLocalApproval(WindowAndroid windowAndroid, GURL url) { - WebsiteParentApprovalDelegate delegate = new WebsiteParentApprovalDelegateImpl(); - delegate.requestLocalApproval(windowAndroid, url, WebsiteParentApproval::onCompletion); - } - - /** - * Method to be called on asynchronous completion of the local approval operation. - * - * @param success true if the parent successfully completed the flow and approved the website, - * false otherwise - */ - private static void onCompletion(boolean success) { - WebsiteParentApprovalJni.get().onCompletion(success); + // TODO(crbug.com/1340913): finish moving the approve/deny screen to the Chromium repo. + throw new UnsupportedOperationException("Approve/deny screen not implemented"); } @NativeMethods
diff --git a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalDelegateImpl.java b/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalDelegateImpl.java deleted file mode 100644 index 8e343cd..0000000 --- a/chrome/browser/supervised_user/android/java/src/org/chromium/chrome/browser/supervised_user/WebsiteParentApprovalDelegateImpl.java +++ /dev/null
@@ -1,26 +0,0 @@ -// Copyright 2022 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. - -package org.chromium.chrome.browser.supervised_user; - -import org.chromium.base.Callback; -import org.chromium.ui.base.WindowAndroid; -import org.chromium.url.GURL; - -/** - * Upstream implementation of {@link WebsiteParentApprovalDelegate}. - * Downstream targets may provide a different implementation. - */ -public class WebsiteParentApprovalDelegateImpl implements WebsiteParentApprovalDelegate { - @Override - public boolean isLocalApprovalSupported() { - return false; - } - - @Override - public void requestLocalApproval( - WindowAndroid windowAndroid, GURL url, Callback<Boolean> onCompletionCallback) { - throw new UnsupportedOperationException("Local approval not supported"); - } -}
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index fdba637..7e5c42c 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -3148,6 +3148,8 @@ "//chromeos/ash/components/dbus/userdataauth", "//chromeos/ash/components/dbus/userdataauth:userdataauth_proto", "//chromeos/ash/components/human_presence", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/ash/components/network/portal_detector", "//chromeos/ash/components/oobe_quick_start", "//chromeos/ash/resources", @@ -3155,8 +3157,6 @@ "//chromeos/ash/services/assistant/public/cpp", "//chromeos/ash/services/assistant/public/mojom", "//chromeos/ash/services/auth_factor_config", - "//chromeos/components/local_search_service/public/cpp", - "//chromeos/components/local_search_service/public/mojom", "//chromeos/components/onc", "//chromeos/components/quick_answers", "//chromeos/components/quick_answers/public/cpp:cpp",
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 3f815e3..5a938bf 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Probeer die teks in kleiner stukkies deel</translation> <translation id="2111511281910874386">Gaan na bladsy</translation> <translation id="2122601567107267586">Kon nie program oopmaak nie</translation> -<translation id="2126426811489709554">Aangedryf deur Chrome</translation> <translation id="2132122640199389833">Verwyder alle gekoppelde toestelle</translation> <translation id="213279576345780926">Het <ph name="TAB_TITLE" /> toegemaak</translation> <translation id="2134927169889348449">Deur Chrome te gebruik, stem jy in tot <ph name="BEGIN_TOS_LINK" />Google se diensbepalings<ph name="END_TOS_LINK" /> en <ph name="BEGIN_ATOS_LINK" />Google Chrome en Chrome-bedryfstelsel se bykomende diensbepalings<ph name="END_ATOS_LINK" />.</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 e3fc289..2d625be4b 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">በትናንሽ ክፍሎች ጽሑፉን ለማጋራት ይሞክሩ</translation> <translation id="2111511281910874386">ወደዚህ ገጽ ይሂዱ</translation> <translation id="2122601567107267586">መተግበሪያውን መክፈት አልተቻለም</translation> -<translation id="2126426811489709554">በChrome የጎለበተ</translation> <translation id="2132122640199389833">ሁሉንም የተገናኙ መሣሪያዎችን ያስወግዱ</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> ተዘግቷል</translation> <translation id="2134927169889348449">Chromeን በመጠቀምዎ በ<ph name="BEGIN_TOS_LINK" />Google አገልግሎት ውል<ph name="END_TOS_LINK" /> እና <ph name="BEGIN_ATOS_LINK" />የGoogle Chrome እና የChromeOS ተጨማሪ አገልግሎት ውል<ph name="END_ATOS_LINK" /> ይስማማሉ።</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">የፋይል ቅጥያ ይቀየር?</translation> <translation id="3341262203274374114">መከተል አልተቻለም። የሆነ ችግር ተፈጥሯል።</translation> <translation id="3359667936385849800">የአሁኑ አገልግሎት አቅራቢዎን ይጠቀሙ</translation> +<translation id="3365271666488085187">Chrome ይህንን ዝንባሌ ከግምት ውስጥ ማስገባት ይችላል</translation> <translation id="3367813778245106622">ስምረትን ለመጀመር እንደገና ይግቡ</translation> <translation id="3373979091428520308">ይህን ገጽ ለሌላ መሣሪያ ለማጋራት በሌላኛው መሣሪያ የChrome ቅንብሮች ውስጥ ስምረትን ያብሩ</translation> <translation id="3374023511497244703">የእርስዎ እልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌላ የ Chrome ውሂብ ከእንግዲህ ወደ የእርስዎ Google መለያ ይሰምራል</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> ኪባ ይገኛል</translation> <translation id="3549657413697417275">የራስዎን ታሪክ ይፈልጉ</translation> <translation id="3557336313807607643">ወደ እውቂያዎች አክል</translation> +<translation id="3560491354538957576">ጣቢያ ዝንባሌዎችን መግለጽ ይችላል</translation> <translation id="3563767357928833671">የቅንጥብ ሰሌዳ ይዘቶች ታይተዋል</translation> <translation id="3566923219790363270">Chrome አሁንም ድረስ ቪአር በማዘጋጀት ላይ ነው። Chromeን በኋላ ላይ ዳግም ያስጀምሩ።</translation> <translation id="3568688522516854065">ትሮችዎን ከሌሎች መሣሪያዎችዎ በመለያ መግባት እና ስምረትን ማብራት ለማግኘት</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb index 70b57440..453f531 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">يُرجى تجربة مشاركة النص في مجموعات أصغر.</translation> <translation id="2111511281910874386">الانتقال إلى الصفحة</translation> <translation id="2122601567107267586">تعذر فتح التطبيق</translation> -<translation id="2126426811489709554">يدعمها Chrome</translation> <translation id="2132122640199389833">إزالة جميع الأجهزة المرتبطة</translation> <translation id="213279576345780926">تم إغلاق <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">يعني استخدامك لمتصفّح Chrome موافقتك على <ph name="BEGIN_TOS_LINK" />بنود خدمة Google<ph name="END_TOS_LINK" /> و<ph name="BEGIN_ATOS_LINK" />بنود الخدمة الإضافية لكل من متصفّح Google Chrome ونظام التشغيل Chrome<ph name="END_ATOS_LINK" />.</translation> @@ -444,6 +443,7 @@ <translation id="3334729583274622784">هل تريد تغيير امتداد الملف؟</translation> <translation id="3341262203274374114">يتعذّر إلغاء متابعة الخلاصة. حدث خطأ.</translation> <translation id="3359667936385849800">استخدام مقدِّم الخدمة الحالي</translation> +<translation id="3365271666488085187">Chrome يمكنه الآن عرض إعلانات عن هذا الموضوع الذي يهمّك.</translation> <translation id="3367813778245106622">تسجيل الدخول مرة أخرى لبدء المزامنة</translation> <translation id="3373979091428520308">لمشاركة هذه الصفحة مع جهاز آخر، يُرجى تفعيل المزامنة في إعدادات Chrome على الجهاز الآخر.</translation> <translation id="3374023511497244703">لن تتم مزامنة الإشارات المرجعية والسجلّ وكلمات المرور وبيانات Chrome الأخرى مع حسابك على Google بعد ذلك.</translation> @@ -477,6 +477,7 @@ <translation id="3542235761944717775">تتوفر مساحة <ph name="KILOBYTES" /> كيلوبايت</translation> <translation id="3549657413697417275">البحث في السجل</translation> <translation id="3557336313807607643">إضافة إلى جهات الاتصال</translation> +<translation id="3560491354538957576">يمكن للموقع الإلكتروني الآن تحديد اهتماماتك.</translation> <translation id="3563767357928833671">تم عرض محتوى الحافظة.</translation> <translation id="3566923219790363270">لا يزال Chrome يستعد للواقع الافتراضي. يُرجى إعادة تشغيل Chrome لاحقًا.</translation> <translation id="3568688522516854065">للحصول على علامات التبويب من أجهزتك الأخرى، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb index 31058ca..b6a6d7b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_as.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">পাঠখিনি সৰু সৰুকৈ ভাগ কৰি শ্বেয়াৰ কৰিবলৈ চেষ্টা কৰক</translation> <translation id="2111511281910874386">পৃষ্ঠালৈ যাওক</translation> <translation id="2122601567107267586">এপ্ খুলিব পৰা নগ’ল</translation> -<translation id="2126426811489709554">Chromeৰ দ্বাৰা সঞ্চালিত</translation> <translation id="2132122640199389833">লিংক কৰি থোৱা আটাইবোৰ ডিভাইচ আঁতৰাওক</translation> <translation id="213279576345780926">বন্ধ <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Chrome ব্যৱহাৰ কৰি আপুনি <ph name="BEGIN_TOS_LINK" />Googleৰ সেৱাৰ চৰ্তাৱলী<ph name="END_TOS_LINK" /> আৰু <ph name="BEGIN_ATOS_LINK" />Google Chrome আৰু ChromeOSৰ সেৱাৰ অতিৰিক্ত চৰ্তাৱলী<ph name="END_ATOS_LINK" />ত সন্মতি দিয়ে।</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">ফাইলটোৰ এক্সটেনশ্বন সলনি কৰিবনে?</translation> <translation id="3341262203274374114">আনফ’ল’ কৰিব নোৱাৰি। কিবা ভুল হ’ল।</translation> <translation id="3359667936385849800">আপোনাৰ বৰ্তমানৰ সেৱা প্ৰদানকাৰী ব্যৱহাৰ কৰক</translation> +<translation id="3365271666488085187">Chromeএ এই আগ্ৰহটো বিবেচনা কৰিব পাৰে</translation> <translation id="3367813778245106622">ছিংক আৰম্ভ কৰিবলৈ আকৌ ছাইন ইন কৰক</translation> <translation id="3373979091428520308">এই পৃষ্ঠাখন অন্য এটা ডিভাইচলৈ শ্বেয়াৰ কৰিবলৈ, অন্য ডিভাইচটোৰ Chromeৰ ছেটিংসমূহত ছিংক অন কৰক</translation> <translation id="3374023511497244703">আপোনাৰ বুকমাৰ্কসমূহ, ইতিহাস, পাছৱর্ডসমূহ আৰু অন্য Chrome ডেটা এতিয়া আৰু আপোনাৰ Google একাউণ্টত ছিংক কৰা নহ’ব</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> কে.বি. উপলব্ধ</translation> <translation id="3549657413697417275">আপোনাৰ ব্ৰাউজিং ইতিহাসত সন্ধান কৰক</translation> <translation id="3557336313807607643">সর্ম্পকসূচীত যোগ কৰক</translation> +<translation id="3560491354538957576">ছাইটে আগ্ৰহসমূহ সংজ্ঞাবদ্ধ কৰিব পাৰে</translation> <translation id="3563767357928833671">ক্লিপব'ৰ্ডৰ সমল দেখুওৱা হৈছে</translation> <translation id="3566923219790363270">Chromeএ এতিয়াও VR সাজু কৰি আছে। Chrome পিছত ৰিষ্টার্ট কৰক।</translation> <translation id="3568688522516854065">আপোনাৰ অন্য ডিভাইচসমূহৰ পৰা নিজৰ টেবসমূহ পাবলৈ ছাইন ইন আৰু ছিংক কৰা সুবিধাটো অন কৰক</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb index de30331..5ec3bc8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_az.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Mətni kiçik hissələrlə paylaşın</translation> <translation id="2111511281910874386">Səhifəyə gedin</translation> <translation id="2122601567107267586">Tətbiqi açmaq alınmadı</translation> -<translation id="2126426811489709554">Chrome Powered by</translation> <translation id="2132122640199389833">Bütün əlaqəli cihazları silin</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> qapadıldı</translation> <translation id="2134927169889348449">Chrome'u istifadə etməklə, <ph name="BEGIN_TOS_LINK" />Google Xidmət Şərtləri<ph name="END_TOS_LINK" /> və <ph name="BEGIN_ATOS_LINK" />Google Chrome və ChromeOS Əlavə Xidmət Şərtləri<ph name="END_ATOS_LINK" /> ilə razılaşırsınız.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Fayl artırması dəyişdirilsin?</translation> <translation id="3341262203274374114">İzləmədən çıxarmaq olmur. Xəta baş verdi.</translation> <translation id="3359667936385849800">Cari xidmət təminatçınızı istifadə edin</translation> +<translation id="3365271666488085187">Chrome bu marağı nəzərə ala bilər</translation> <translation id="3367813778245106622">Sinxronizasiyanı başlamaq üçün yenidən daxil olun</translation> <translation id="3373979091428520308">Bu səhifəni başqa bir cihaz ilə paylaşmaq üçün digər cihazın Chrome ayarlarında sinxronlaşdırmanı yandırın</translation> <translation id="3374023511497244703">Əlfəcin, tarixçə, parol və digər Chrome datası artıq Google Hesabınıza sinxronizasiya edilməyəcək</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB əlçatandır</translation> <translation id="3549657413697417275">Tarixçənizdə axtarın</translation> <translation id="3557336313807607643">Kontakta əlavə edin</translation> +<translation id="3560491354538957576">Sayt maraqları müəyyən edə bilər</translation> <translation id="3563767357928833671">Mübadilə buferindəki kontent göstərilir</translation> <translation id="3566923219790363270">Chrome VR üçün hələ də hazırlanır. Chrome'u sonra yenidən başladın.</translation> <translation id="3568688522516854065">Tabları digər cihazlarınızdan əldə etmək üçün daxil olun və sinxronizasiyanı aktiv edin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb index 6c61659..9dc873d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_be.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Паспрабуйце абагуліць тэкст меншымі кавалкамі</translation> <translation id="2111511281910874386">Перайдзіце на старонку</translation> <translation id="2122601567107267586">Не ўдалося адкрыць праграму</translation> -<translation id="2126426811489709554">На платформе Chrome</translation> <translation id="2132122640199389833">Выдаліць усе звязаныя прылады</translation> <translation id="213279576345780926">Закрыта ўкладка <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Выкарыстоўваючы Chrome, вы згаджаецеся з <ph name="BEGIN_TOS_LINK" />Умовамі выкарыстання Google<ph name="END_TOS_LINK" /> і <ph name="BEGIN_ATOS_LINK" />Дадатковымі ўмовамі выкарыстання Google Chrome і Chrome OS<ph name="END_ATOS_LINK" />.</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 c3b7ffd..d17acea 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Опитайте да споделите текста на по-малки части</translation> <translation id="2111511281910874386">Към страницата</translation> <translation id="2122601567107267586">Приложението не можа да бъде отворено</translation> -<translation id="2126426811489709554">Предоставено от Chrome</translation> <translation id="2132122640199389833">Премахване на всички свързани устройства</translation> <translation id="213279576345780926">Затворихте „<ph name="TAB_TITLE" />“</translation> <translation id="2134927169889348449">С използването на Chrome приемате <ph name="BEGIN_TOS_LINK" />Общите условия на Google<ph name="END_TOS_LINK" /> и <ph name="BEGIN_ATOS_LINK" />Допълнителните общи условия на Chrome и Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Да се промени ли файловото разширение?</translation> <translation id="3341262203274374114">Прекратяването на следенето не е възможно. Нещо се обърка.</translation> <translation id="3359667936385849800">Използване на текущия ви доставчик на услуги</translation> +<translation id="3365271666488085187">Chrome може да взема предвид този интерес</translation> <translation id="3367813778245106622">Влезте в профила си отново, за да започне синхронизирането</translation> <translation id="3373979091428520308">За да споделите тази страница с друго устройство, включете синхронизирането от настройките за Chrome на другото устройство</translation> <translation id="3374023511497244703">Вашите отметки, история, пароли и други данни в Chrome повече няма да се синхронизират с профила ви в Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">Свободно място: <ph name="KILOBYTES" /> КБ</translation> <translation id="3549657413697417275">Търсене в историята ви</translation> <translation id="3557336313807607643">Добавяне към контактите</translation> +<translation id="3560491354538957576">Сайтът може да определя интереси</translation> <translation id="3563767357928833671">Съдържанието на буферната памет е показано</translation> <translation id="3566923219790363270">Chrome все още се подготвя за VR. Рестартирайте браузъра по-късно.</translation> <translation id="3568688522516854065">Влезте в профила си и включете синхронизирането, за да получите разделите си от другите си устройства</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb index 2ecdd3d..ceee06e 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_bn.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">টেক্সটটি ছোট ছোট ভাগে ভাগ করে পাঠানোর চেষ্টা করুন</translation> <translation id="2111511281910874386">এই পৃষ্ঠাতে যান</translation> <translation id="2122601567107267586">অ্যাপটি খোলা যায়নি</translation> -<translation id="2126426811489709554">Chrome দ্বারা চালিত</translation> <translation id="2132122640199389833">লিঙ্ক করা সমস্ত ডিভাইস সরিয়ে দিন</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> বন্ধ করা হয়েছে</translation> <translation id="2134927169889348449">Chrome ব্যবহার করার মাধ্যমে, আপনি <ph name="BEGIN_TOS_LINK" />Google পরিষেবার শর্তাবলী<ph name="END_TOS_LINK" /> এবং <ph name="BEGIN_ATOS_LINK" />Google Chrome ও ChromeOS-এর পরিষেবার অতিরিক্ত শর্তাবলী<ph name="END_ATOS_LINK" /> মেনে নিচ্ছেন।</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 95e018b..bfe7d19 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Pokušajte dijeliti tekst u manjim segmentima</translation> <translation id="2111511281910874386">Idi na stranicu</translation> <translation id="2122601567107267586">Otvaranje aplikacije nije uspjelo</translation> -<translation id="2126426811489709554">Omogućuje Chrome</translation> <translation id="2132122640199389833">Ukloni sve povezane uređaje</translation> <translation id="213279576345780926">Zatvorena je kartica <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Korištenjem Chromea pristajete na <ph name="BEGIN_TOS_LINK" />Googleove Uslove korištenja usluge<ph name="END_TOS_LINK" /> i <ph name="BEGIN_ATOS_LINK" />dodatne Uslove korištenja usluge za Google Chrome i ChromeOS<ph name="END_ATOS_LINK" />.</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 35bdbaca..190045b 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prova de compartir el text en fragments més petits</translation> <translation id="2111511281910874386">Ves a la pàgina</translation> <translation id="2122601567107267586">L'aplicació no s'ha pogut obrir</translation> -<translation id="2126426811489709554">Amb la tecnologia de Chrome</translation> <translation id="2132122640199389833">Suprimeix tots els dispositius enllaçats</translation> <translation id="213279576345780926">Pestanya <ph name="TAB_TITLE" /> tancada</translation> <translation id="2134927169889348449">En utilitzar Chrome, acceptes les <ph name="BEGIN_TOS_LINK" />condicions del servei de Google<ph name="END_TOS_LINK" /> i les <ph name="BEGIN_ATOS_LINK" />condicions del servei addicionals de Google Chrome i Chrome OS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb index c2c139ff..1fc9bce 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cs.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Zkuste text sdílet po menších částech</translation> <translation id="2111511281910874386">Přejít na stránku</translation> <translation id="2122601567107267586">Aplikaci nelze otevřít</translation> -<translation id="2126426811489709554">Používá technologii Chrome</translation> <translation id="2132122640199389833">Odstranit všechna propojená zařízení</translation> <translation id="213279576345780926">Karta <ph name="TAB_TITLE" /> byla zavřena.</translation> <translation id="2134927169889348449">Používáním Chromu vyjadřujete souhlas se <ph name="BEGIN_TOS_LINK" />smluvními podmínkami společnosti Google<ph name="END_TOS_LINK" /> a <ph name="BEGIN_ATOS_LINK" />dodatečnými smluvními podmínkami prohlížeče Google Chrome a systému ChromeOS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb index 91bfe51..b94eb7d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_cy.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Rhowch gynnig ar rannu'r testun mewn darnau llai</translation> <translation id="2111511281910874386">Mynd i dudalen</translation> <translation id="2122601567107267586">Methu ag agor yr ap</translation> -<translation id="2126426811489709554">Pwerir gan Chrome</translation> <translation id="2132122640199389833">Tynnu'r holl ddyfeisiau cysylltiedig</translation> <translation id="213279576345780926">Wedi cau <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Drwy ddefnyddio Chrome, rydych yn cytuno i <ph name="BEGIN_TOS_LINK" />Delerau Gwasanaeth Google<ph name="END_TOS_LINK" />, a <ph name="BEGIN_ATOS_LINK" />Thelerau Gwasanaeth Ychwanegol Google Chrome a ChromeOS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb index d831dcd..8e5fb07c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prøv at opdele teksten i mindre stykker</translation> <translation id="2111511281910874386">Gå til side</translation> <translation id="2122601567107267586">Appen kunne ikke åbnes</translation> -<translation id="2126426811489709554">Leveret af Chrome</translation> <translation id="2132122640199389833">Fjern alle tilknyttede enheder</translation> <translation id="213279576345780926">Lukkede <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Når du bruger Chrome, accepterer du <ph name="BEGIN_TOS_LINK" />Googles servicevilkår<ph name="END_TOS_LINK" /> og de <ph name="BEGIN_ATOS_LINK" />yderligere servicevilkår for Google Chrome og Chrome OS<ph name="END_ATOS_LINK" />.</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 e46f93c..56ab9fc9 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Teile den Text am besten in mehrere Abschnitte</translation> <translation id="2111511281910874386">Seite aufrufen</translation> <translation id="2122601567107267586">App konnte nicht geöffnet werden</translation> -<translation id="2126426811489709554">Powered by Chrome</translation> <translation id="2132122640199389833">Alle verknüpften Geräte entfernen</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> geschlossen</translation> <translation id="2134927169889348449">Wenn du Chrome verwendest, stimmst du den <ph name="BEGIN_TOS_LINK" />Nutzungsbedingungen von Google<ph name="END_TOS_LINK" /> und den <ph name="BEGIN_ATOS_LINK" />zusätzlichen Nutzungsbedingungen für Google Chrome und Chrome OS<ph name="END_ATOS_LINK" /> zu.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Dateiendung ändern?</translation> <translation id="3341262203274374114">Nicht mehr folgen nicht möglich. Ein Fehler ist aufgetreten.</translation> <translation id="3359667936385849800">Aktuellen Anbieter verwenden</translation> +<translation id="3365271666488085187">Chrome kann dieses Interesse berücksichtigen</translation> <translation id="3367813778245106622">Melde dich nochmals an, um die Synchronisierung zu starten</translation> <translation id="3373979091428520308">Wenn du diese Seite mit einem anderen Gerät teilen möchtest, aktiviere auf dem anderen Gerät in den Chrome-Einstellungen die Synchronisierung</translation> <translation id="3374023511497244703">Deine Lesezeichen, der Verlauf, deine Passwörter und andere Chrome-Daten werden nicht mehr mit deinem Google-Konto synchronisiert.</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB verfügbar</translation> <translation id="3549657413697417275">Im Verlauf suchen</translation> <translation id="3557336313807607643">Zu Kontakten hinzufügen</translation> +<translation id="3560491354538957576">Website kann Interessen definieren</translation> <translation id="3563767357928833671">Inhalte der Zwischenablage werden angezeigt</translation> <translation id="3566923219790363270">VR ist noch nicht bereit. Starte Chrome später neu.</translation> <translation id="3568688522516854065">Melde dich an und aktiviere die Synchronisierung, um deine Tabs von deinen anderen Geräten abzurufen</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 1a08008..2991f10d6 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Δοκιμάστε να κοινοποιήσετε το κείμενο σε μικρότερα τμήματα.</translation> <translation id="2111511281910874386">Μετάβαση στη σελίδα</translation> <translation id="2122601567107267586">Δεν ήταν δυνατό το άνοιγμα της εφαρμογής</translation> -<translation id="2126426811489709554">Με την υποστήριξη του Chrome</translation> <translation id="2132122640199389833">Κατάργηση όλων των συνδεδεμένων συσκευών</translation> <translation id="213279576345780926">Η καρτέλα <ph name="TAB_TITLE" /> έκλεισε</translation> <translation id="2134927169889348449">Χρησιμοποιώντας το Chrome, συμφωνείτε με τους <ph name="BEGIN_TOS_LINK" />Όρους Παροχής Υπηρεσιών της Google<ph name="END_TOS_LINK" /> και τους <ph name="BEGIN_ATOS_LINK" />Πρόσθετους Όρους Παροχής Υπηρεσιών του Google Chrome και του Chrome OS<ph name="END_ATOS_LINK" />.</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 8f2961f..50088b6 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Try sharing the text in smaller chunks</translation> <translation id="2111511281910874386">Go to page</translation> <translation id="2122601567107267586">Could not open app</translation> -<translation id="2126426811489709554">Powered by Chrome</translation> <translation id="2132122640199389833">Remove all linked devices</translation> <translation id="213279576345780926">Closed <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">By using Chrome, you agree to the <ph name="BEGIN_TOS_LINK" />Google Terms of Service<ph name="END_TOS_LINK" />, and the <ph name="BEGIN_ATOS_LINK" />Google Chrome and Chrome OS additional Terms of Service<ph name="END_ATOS_LINK" />.</translation> @@ -596,7 +595,7 @@ <translation id="4290281343757112331">Download later instead?</translation> <translation id="4291407919474070700"><ph name="BEGIN_LINK" />Turn on screen lock in Android settings<ph name="END_LINK" /></translation> <translation id="4293476595220860475">By using Chrome, you agree to the <ph name="BEGIN_TOS_LINK" />Google Terms of Service<ph name="END_TOS_LINK" />, and the <ph name="BEGIN_ATOS_LINK" />Google Chrome and Chrome OS additional Terms of Service<ph name="END_ATOS_LINK" />. The <ph name="BEGIN_PRIVACY_LINK" />Privacy Policy<ph name="END_PRIVACY_LINK" /> also applies.</translation> -<translation id="4296252229500326964">New Incognito tab</translation> +<translation id="4296252229500326964">New incognito tab</translation> <translation id="4298388696830689168">Linked sites</translation> <translation id="4303044213806199882">chrome_screenshot_<ph name="CURRENT_TIMESTAMP_MS" /></translation> <translation id="4307992518367153382">Basics</translation> @@ -1090,7 +1089,7 @@ <translation id="686366188661646310">Delete password?</translation> <translation id="6864459304226931083">Download image</translation> <translation id="6865313869410766144">Auto-fill form data</translation> -<translation id="6867400383614725881">New Incognito tab</translation> +<translation id="6867400383614725881">New incognito tab</translation> <translation id="6869056123412990582">computer</translation> <translation id="6882836635272038266">Standard protection against websites, downloads and extensions that are known to be dangerous.</translation> <translation id="6883204995689174413">Share</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb index 6bc0d320..b8e3e4ac 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Intenta compartir el texto en fragmentos más pequeños</translation> <translation id="2111511281910874386">Ir a la página</translation> <translation id="2122601567107267586">No se pudo abrir la app</translation> -<translation id="2126426811489709554">Con tecnología de Chrome</translation> <translation id="2132122640199389833">Quitar todos los dispositivos vinculados</translation> <translation id="213279576345780926">Pestaña <ph name="TAB_TITLE" /> cerrada</translation> <translation id="2134927169889348449">Si usas Chrome, aceptas las <ph name="BEGIN_TOS_LINK" />Condiciones del Servicio de Google<ph name="END_TOS_LINK" /> y las <ph name="BEGIN_ATOS_LINK" />Condiciones del Servicio Adicionales de Google Chrome y Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">¿Quieres cambiar la extensión del archivo?</translation> <translation id="3341262203274374114">No se puede dejar de seguir. Se produjo un error.</translation> <translation id="3359667936385849800">Usa tu proveedor de servicios actual</translation> +<translation id="3365271666488085187">Chrome puede tener en cuenta este interés.</translation> <translation id="3367813778245106622">Volver a acceder para iniciar la sincronización</translation> <translation id="3373979091428520308">Para compartir esta página con otro dispositivo, activa la sincronización en la configuración de Chrome en el otro dispositivo</translation> <translation id="3374023511497244703">Ya no se sincronizarán con tu Cuenta de Google los favoritos, el historial, las contraseñas ni otros datos de Chrome.</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">KB disponibles: <ph name="KILOBYTES" /></translation> <translation id="3549657413697417275">Buscar en el historial</translation> <translation id="3557336313807607643">Agregar a contactos</translation> +<translation id="3560491354538957576">El sitio puede definir intereses.</translation> <translation id="3563767357928833671">Se muestra el contenido del Portapapeles</translation> <translation id="3566923219790363270">Chrome todavía se está preparando para la RV. Reinicia Chrome más tarde.</translation> <translation id="3568688522516854065">Para obtener las pestañas de tus otros dispositivos, accede a tu cuenta y activa la sincronización</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 438bbf7..9d89fb98 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prueba a compartir el texto dividiéndolo en partes más pequeñas</translation> <translation id="2111511281910874386">Ir a la página</translation> <translation id="2122601567107267586">No se ha podido abrir la aplicación</translation> -<translation id="2126426811489709554">Con la tecnología de Chrome</translation> <translation id="2132122640199389833">Quitar todos los dispositivos vinculados</translation> <translation id="213279576345780926">Se ha cerrado <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Al utilizar Chrome, aceptas los <ph name="BEGIN_TOS_LINK" />Términos del Servicio de Google<ph name="END_TOS_LINK" /> y los <ph name="BEGIN_ATOS_LINK" />Términos del Servicio Adicionales de Google Chrome y ChromeOS<ph name="END_ATOS_LINK" />.</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 a381244..bf5477e 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Proovige teksti jagada väiksemate lõikudena</translation> <translation id="2111511281910874386">Minge lehele</translation> <translation id="2122601567107267586">Rakendust ei õnnestunud avada</translation> -<translation id="2126426811489709554">Chrome'i toega</translation> <translation id="2132122640199389833">Eemalda kõik lingitud seadmed</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> suleti</translation> <translation id="2134927169889348449">Chrome'i kasutades nõustute <ph name="BEGIN_TOS_LINK" />Google'i teenusetingimustega<ph name="END_TOS_LINK" /> ning <ph name="BEGIN_ATOS_LINK" />Google Chrome'i ja Chrome OS-i lisateenusetingimustega<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb index ecb996b..9bcb345 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Saiatu testua zati txikiagotan partekatzen</translation> <translation id="2111511281910874386">Joan orrira</translation> <translation id="2122601567107267586">Ezin izan da ireki aplikazioa</translation> -<translation id="2126426811489709554">Arakatzailea: Chrome</translation> <translation id="2132122640199389833">Kendu lotutako gailu guztiak</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> itxi da</translation> <translation id="2134927169889348449">Chrome erabiltzen baduzu, onartu egingo dituzu <ph name="BEGIN_TOS_LINK" />Google-ren Zerbitzu-baldintzak<ph name="END_TOS_LINK" /> eta <ph name="BEGIN_ATOS_LINK" />Google Chrome-ren eta Chrome OS-ren Zerbitzu-baldintza gehigarriak<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb index d3c0f2a..e4a00b12 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">بخشهای کوچکتری از نوشتار را به اشتراک بگذارید</translation> <translation id="2111511281910874386">رفتن به صفحه</translation> <translation id="2122601567107267586">باز کردن برنامه امکانپذیر نیست</translation> -<translation id="2126426811489709554">ارائه توسط Chrome</translation> <translation id="2132122640199389833">برداشتن همه دستگاههای پیوندشده</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> بسته شد</translation> <translation id="2134927169889348449">درصورت استفاده از Chrome، با <ph name="BEGIN_TOS_LINK" />شرایط خدمات Google<ph name="END_TOS_LINK" /> و <ph name="BEGIN_ATOS_LINK" />شرایط خدمات تکمیلی Google Chrome و ChromeOS<ph name="END_ATOS_LINK" /> موافقت میکنید.</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 6774cc3..b241dd9 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Kokeile jakaa teksti pienempinä pätkinä</translation> <translation id="2111511281910874386">Siirry sivulle</translation> <translation id="2122601567107267586">Sovelluksen avaaminen epäonnistui</translation> -<translation id="2126426811489709554">Palvelun tarjoaa Chrome</translation> <translation id="2132122640199389833">Poista kaikki linkitetyt laitteet</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> suljettiin</translation> <translation id="2134927169889348449">Käyttämällä Chromea hyväksyt <ph name="BEGIN_TOS_LINK" />Googlen käyttöehdot<ph name="END_TOS_LINK" /> sekä <ph name="BEGIN_ATOS_LINK" />Google Chromen ja Chrome-käyttöjärjestelmän lisäkäyttöehdot<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Vaihdetaanko tiedostotunniste?</translation> <translation id="3341262203274374114">Ei voi seurata. Jotain meni pieleen.</translation> <translation id="3359667936385849800">Käytä nykyistä palveluasi</translation> +<translation id="3365271666488085187">Chrome voi ottaa tämän kiinnostuksen kohteen huomioon</translation> <translation id="3367813778245106622">Aloita synkronointi kirjautumalla uudelleen sisään.</translation> <translation id="3373979091428520308">Jos haluat jakaa tämän sivun toiselle laitteelle, ota synkronointi käyttöön toisen laitteen Chrome-asetuksista</translation> <translation id="3374023511497244703">Kirjanmerkkejä, historiaa, salasanoja tai muuta Chrome-dataa ei enää synkronoida Google-tilille.</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> kt käytettävissä</translation> <translation id="3549657413697417275">Haku omasta historiasta</translation> <translation id="3557336313807607643">Lisää yhteystietoihin</translation> +<translation id="3560491354538957576">Sivusto voi määrittää kiinnostuksen kohteita</translation> <translation id="3563767357928833671">Leikepöydän sisältö näytetään</translation> <translation id="3566923219790363270">Chrome valmistelee edelleen VR-selainta. Käynnistä Chrome myöhemmin uudelleen.</translation> <translation id="3568688522516854065">Kirjaudu sisään ja ota synkronointi käyttöön, niin voit käyttää välilehtiä muilta laitteiltasi</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb index 8114481..d46141c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fil.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Subukang ibahagi ang text sa mas maliliit na bahagi</translation> <translation id="2111511281910874386">Pumunta sa page</translation> <translation id="2122601567107267586">Hindi mabuksan ang app</translation> -<translation id="2126426811489709554">Pinapagana ng Chrome</translation> <translation id="2132122640199389833">Alisin ang lahat ng naka-link na device</translation> <translation id="213279576345780926">Isinarang <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Sa pamamagitan ng paggamit sa Chrome, sumasang-ayon ka sa <ph name="BEGIN_TOS_LINK" />Mga Tuntunin ng Serbisyo ng Google<ph name="END_TOS_LINK" />, at sa <ph name="BEGIN_ATOS_LINK" />Mga Karagdagang Tuntunin ng Serbisyo ng Google Chrome at ChromeOS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb index fc8352c9..0fbc7a7 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr-CA.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Essayez de partager le texte en plusieurs parties plus petites</translation> <translation id="2111511281910874386">Accéder à la page</translation> <translation id="2122601567107267586">Impossible d'ouvrir l'application</translation> -<translation id="2126426811489709554">Optimisé par Chrome</translation> <translation id="2132122640199389833">Retirer tous les appareils associés</translation> <translation id="213279576345780926">Onglet <ph name="TAB_TITLE" /> fermé</translation> <translation id="2134927169889348449">Par votre utilisation de Chrome, vous acceptez les <ph name="BEGIN_TOS_LINK" />conditions d'utilisation de Google<ph name="END_TOS_LINK" /> et les <ph name="BEGIN_ATOS_LINK" />conditions d'utilisation supplémentaires de Google Chrome et de Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Modifier l'extension du fichier?</translation> <translation id="3341262203274374114">Le désabonnement a échoué. Un problème est survenu.</translation> <translation id="3359667936385849800">Utiliser votre fournisseur de services actuel</translation> +<translation id="3365271666488085187">Chrome peut prendre en compte ce centre d'intérêt</translation> <translation id="3367813778245106622">Reconnectez-vous pour commencer la synchronisation</translation> <translation id="3373979091428520308">Pour partager cette page sur un autre appareil, activez la synchronisation dans les paramètres de Chrome sur l'autre appareil</translation> <translation id="3374023511497244703">Vos favoris, votre historique, vos mots de passe et d'autres données de Chrome ne seront plus synchronisés avec votre compte Google.</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> ko disponible(s)</translation> <translation id="3549657413697417275">Rechercher dans votre historique</translation> <translation id="3557336313807607643">Ajouter aux contacts</translation> +<translation id="3560491354538957576">Le site peut définir les centres d'intérêt</translation> <translation id="3563767357928833671">Le contenu du presse-papier est affiché</translation> <translation id="3566923219790363270">Chrome prépare ses modules pour la RV. Redémarrez Chrome plus tard.</translation> <translation id="3568688522516854065">Pour synchroniser vos onglets sur vos autres appareils, connectez-vous et activez la synchronisation</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb index c9ad802..637a50b 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Essayez de scinder le texte pour le partager en plusieurs fois</translation> <translation id="2111511281910874386">Accéder à la page</translation> <translation id="2122601567107267586">Impossible d'ouvrir l'application</translation> -<translation id="2126426811489709554">Proposé par Chrome</translation> <translation id="2132122640199389833">Supprimer tous les appareils associés</translation> <translation id="213279576345780926">L'onglet "<ph name="TAB_TITLE" />" a été fermé.</translation> <translation id="2134927169889348449">En utilisant Chrome, vous acceptez les <ph name="BEGIN_TOS_LINK" />Conditions d'utilisation de Google<ph name="END_TOS_LINK" /> et les <ph name="BEGIN_ATOS_LINK" />Conditions d'utilisation supplémentaires de Google Chrome et Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Modifier l'extension du fichier ?</translation> <translation id="3341262203274374114">Impossible de vous désabonner en raison d'une erreur.</translation> <translation id="3359667936385849800">Utiliser votre fournisseur de services actuel</translation> +<translation id="3365271666488085187">Chrome peut prendre en compte ce centre d'intérêt</translation> <translation id="3367813778245106622">Connectez-vous de nouveau à votre compte pour démarrer la synchronisation.</translation> <translation id="3373979091428520308">Pour partager cette page avec un autre appareil, activez la synchronisation dans les paramètres Chrome de ce second appareil</translation> <translation id="3374023511497244703">Vos favoris, votre historique, vos mots de passe et d'autres données Chrome ne seront plus synchronisés avec votre compte Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> Ko disponibles</translation> <translation id="3549657413697417275">Recherchez dans l'historique</translation> <translation id="3557336313807607643">Ajouter aux contacts</translation> +<translation id="3560491354538957576">Le site peut définir des centres d'intérêt</translation> <translation id="3563767357928833671">Contenu du presse-papiers affiché</translation> <translation id="3566923219790363270">Le mode de réalité virtuelle n'est pas encore prêt. Redémarrez Chrome plus tard.</translation> <translation id="3568688522516854065">Connectez-vous et activez la synchronisation pour accéder à vos onglets sur vos autres appareils</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 f6df004..bb807b7 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Proba a compartir o texto dividíndoo en fragmentos máis pequenos</translation> <translation id="2111511281910874386">Ir á páxina</translation> <translation id="2122601567107267586">Non se puido abrir a aplicación</translation> -<translation id="2126426811489709554">Con tecnoloxía de Chrome</translation> <translation id="2132122640199389833">Quitar todos os dispositivos vinculados</translation> <translation id="213279576345780926">Pechouse <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Ao utilizar Chrome, aceptas as <ph name="BEGIN_TOS_LINK" />Condicións de servizo de Google<ph name="END_TOS_LINK" /> e as <ph name="BEGIN_ATOS_LINK" />Condicións de servizo adicionais de Google Chrome e Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Queres cambiar a extensión do ficheiro?</translation> <translation id="3341262203274374114">Non se puido deixar de seguir o feed. Produciuse un erro.</translation> <translation id="3359667936385849800">Utilizar o teu fornecedor de servizo actual</translation> +<translation id="3365271666488085187">Chrome pode ter en conta este interese</translation> <translation id="3367813778245106622">Inicia sesión de novo para comezar a sincronización</translation> <translation id="3373979091428520308">Para compartir esta páxina con outro dispositivo, activa a sincronización na configuración de Chrome dese dispositivo</translation> <translation id="3374023511497244703">Os marcadores, o historial, os contrasinais e outros datos de Chrome deixarán de sincronizarse coa túa Conta de Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">Almacenamento dispoñible: <ph name="KILOBYTES" /> kB</translation> <translation id="3549657413697417275">Buscar no historial</translation> <translation id="3557336313807607643">Engadir a contactos</translation> +<translation id="3560491354538957576">O sitio pode definir intereses</translation> <translation id="3563767357928833671">Móstranse os contidos do portapapeis</translation> <translation id="3566923219790363270">Chrome aínda se está preparando para a RV. Reinicia Chrome máis tarde.</translation> <translation id="3568688522516854065">Inicia sesión e activa a sincronización para sincronizar as pestanas dos demais dispositivos</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb index c5796d5..95d2bcf 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_gu.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ટેક્સ્ટને નાના-નાના ટૂકડામાં શેર કરી જુઓ</translation> <translation id="2111511281910874386">પેજ પર જાઓ</translation> <translation id="2122601567107267586">ઍપ ખોલી ન શક્યાં</translation> -<translation id="2126426811489709554">Chrome દ્વારા સંચાલિત</translation> <translation id="2132122640199389833">લિંક કરેલા બધા ડિવાઇસ કાઢી નાખો</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> બંધ કર્યું છે</translation> <translation id="2134927169889348449">Chromeનો ઉપયોગ કરીને, તમે <ph name="BEGIN_TOS_LINK" />Google સેવાની શરતો<ph name="END_TOS_LINK" /> અને <ph name="BEGIN_ATOS_LINK" />Google Chrome તથા ChromeOSની વધારાની સેવાની શરતો<ph name="END_ATOS_LINK" /> સાથે સંમત થાઓ છો.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">ફાઇલનું એક્સ્ટેંશન બદલવું છે?</translation> <translation id="3341262203274374114">અનફૉલો કરી શકતા નથી. કંઈક ખોટું થયું.</translation> <translation id="3359667936385849800">તમારા વર્તમાન સેવા પ્રદાતાનો ઉપયોગ કરો</translation> +<translation id="3365271666488085187">Chrome આ રુચિ વિશે વિચારી શકે છે</translation> <translation id="3367813778245106622">સમન્વયન શરૂ કરવા માટે ફરીથી સાઇન ઇન કરો</translation> <translation id="3373979091428520308">આ પેજને બીજા ડિવાઇસ પર શેર કરવા માટે, અન્ય ડિવાઇસ પર Chrome સેટિંગમાં સિંક ચાલુ કરો</translation> <translation id="3374023511497244703">તમારા બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને અન્ય Chrome ડેટા હવેથી તમારા Google એકાઉન્ટ પર સિંક થશે નહીં</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB ઉપલબ્ધ</translation> <translation id="3549657413697417275">તમારો ઇતિહાસ શોધો</translation> <translation id="3557336313807607643">સંપર્કોમાં ઉમેરો</translation> +<translation id="3560491354538957576">સાઇટ રુચિઓ વ્યાખ્યાયિત કરી શકે છે</translation> <translation id="3563767357928833671">ક્લિપબોર્ડનું કન્ટેન્ટ બતાવેલું છે</translation> <translation id="3566923219790363270">Chrome હજી પણ VR માટે તૈયારી કરી રહ્યું છે. Chromeને પછી ફરી શરૂ કરો.</translation> <translation id="3568688522516854065">તમારા અન્ય ઉપકરણો પરથી તમારા ટૅબ મેળવવા માટે, સાઇન ઇન કરો અને સિંક કરવાનું ચાલુ કરો.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb index cbd6311..013ca65f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hi.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">टेक्स्ट को छोटे-छोटे हिस्सों में शेयर करने की कोशिश करें</translation> <translation id="2111511281910874386">पेज पर जाएं</translation> <translation id="2122601567107267586">ऐप्लिकेशन नहीं खोला जा सका</translation> -<translation id="2126426811489709554">Chrome के द्वारा संचालित</translation> <translation id="2132122640199389833">लिंक किए गए सभी डिवाइस हटाएं</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> बंद है</translation> <translation id="2134927169889348449">Chrome इस्तेमाल करने का मतलब है कि आप <ph name="BEGIN_TOS_LINK" />Google की सेवा की शर्तों<ph name="END_TOS_LINK" /> के साथ-साथ <ph name="BEGIN_ATOS_LINK" />Google Chrome और ChromeOS की सेवा की अन्य शर्तों<ph name="END_ATOS_LINK" /> से सहमत हैं.</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 c74ba15d..6ef4e9b 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Pokušajte podijeliti tekst u manjim dijelovima</translation> <translation id="2111511281910874386">Idi na stranicu</translation> <translation id="2122601567107267586">Otvaranje aplikacije nije uspjelo</translation> -<translation id="2126426811489709554">Omogućuje Chrome</translation> <translation id="2132122640199389833">Ukloni sve povezane uređaje</translation> <translation id="213279576345780926">Zatvorena je kartica <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Korištenjem Chromea prihvaćate <ph name="BEGIN_TOS_LINK" />Googleove uvjete pružanja usluge<ph name="END_TOS_LINK" /> i <ph name="BEGIN_ATOS_LINK" />dodatne uvjete pružanja usluge za Google Chrome i Chrome OS<ph name="END_ATOS_LINK" />.</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 8f7160b..6346d81 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Próbálja meg kisebb részletekben megosztani a szöveget</translation> <translation id="2111511281910874386">Ugrás az oldalhoz</translation> <translation id="2122601567107267586">Nem sikerült megnyitni az alkalmazást</translation> -<translation id="2126426811489709554">A Chrome erejével</translation> <translation id="2132122640199389833">Az összes összekapcsolt eszköz eltávolítása</translation> <translation id="213279576345780926">Bezárva: <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">A Chrome használatával Ön elfogadja a <ph name="BEGIN_TOS_LINK" />Google Általános Szerződési Feltételeket<ph name="END_TOS_LINK" />, valamint <ph name="BEGIN_ATOS_LINK" />A Google Chrome és a ChromeOS Kiegészítő Általános Szerződési Feltételeit<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb index b2b5be9..1b45903 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Փորձեք ուղարկել տեքստը մաս-մաս</translation> <translation id="2111511281910874386">Բացել էջը</translation> <translation id="2122601567107267586">Չհաջողվեց բացել հավելվածը</translation> -<translation id="2126426811489709554">Աշխատում է Chrome-ով</translation> <translation id="2132122640199389833">Հեռացնել բոլոր կապված սարքերը</translation> <translation id="213279576345780926">Փակված <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Օգտվելով Chrome-ից՝ դուք ընդունում եք <ph name="BEGIN_TOS_LINK" />Google-ի օգտագործման պայմանները<ph name="END_TOS_LINK" /> և <ph name="BEGIN_ATOS_LINK" />Google Chrome-ի և ChromeOS-ի օգտագործման լրացուցիչ պայմանները<ph name="END_ATOS_LINK" />։</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb index d29066e5..9b2e7334 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_id.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Coba bagikan teks dalam potongan yang lebih kecil</translation> <translation id="2111511281910874386">Buka halaman</translation> <translation id="2122601567107267586">Tidak dapat membuka aplikasi</translation> -<translation id="2126426811489709554">Diberdayakan oleh Chrome</translation> <translation id="2132122640199389833">Hapus semua perangkat tertaut</translation> <translation id="213279576345780926">Menutup <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Dengan menggunakan Chrome, Anda menyetujui <ph name="BEGIN_TOS_LINK" />Persyaratan Layanan Google<ph name="END_TOS_LINK" /> serta <ph name="BEGIN_ATOS_LINK" />Persyaratan Layanan Tambahan Google Chrome dan ChromeOS<ph name="END_ATOS_LINK" />.</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 70bd05c..3fcdf66 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prófaðu að deila textanum í smærri hluta</translation> <translation id="2111511281910874386">Fara á síðu</translation> <translation id="2122601567107267586">Ekki var hægt að opna forritið</translation> -<translation id="2126426811489709554">Keyrt af Chrome</translation> <translation id="2132122640199389833">Fjarlægja öll tengd tæki</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> lokað</translation> <translation id="2134927169889348449">Með því að nota Chrome samþykkir þú <ph name="BEGIN_TOS_LINK" />þjónustuskilmála Google<ph name="END_TOS_LINK" />og <ph name="BEGIN_ATOS_LINK" />viðbótarskilmála Google Chrome og ChromeOS<ph name="END_ATOS_LINK" />.</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 fc6df9c..b20b4d0 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prova a condividere il testo in parti più piccole</translation> <translation id="2111511281910874386">Vai alla pagina</translation> <translation id="2122601567107267586">Impossibile aprire l'app</translation> -<translation id="2126426811489709554">Con tecnologia Chrome</translation> <translation id="2132122640199389833">Rimuovi tutti i dispositivi collegati</translation> <translation id="213279576345780926">La scheda <ph name="TAB_TITLE" /> è stata chiusa</translation> <translation id="2134927169889348449">Se utilizzi Chrome, accetti i <ph name="BEGIN_TOS_LINK" />Termini di servizio di Google<ph name="END_TOS_LINK" /> e i <ph name="BEGIN_ATOS_LINK" />Termini di servizio aggiuntivi di Google Chrome e Chrome OS<ph name="END_ATOS_LINK" />.</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 ad45991..3995218 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">כדאי לשתף את הטקסט במקטעים קטנים יותר</translation> <translation id="2111511281910874386">מעבר לדף</translation> <translation id="2122601567107267586">לא ניתן היה לפתוח את היישום</translation> -<translation id="2126426811489709554">מבוסס על Chrome</translation> <translation id="2132122640199389833">הסרת כל המכשירים המקושרים</translation> <translation id="213279576345780926">הכרטיסייה "<ph name="TAB_TITLE" />" נסגרה</translation> <translation id="2134927169889348449">השימוש ב-Chrome מבטא הסכמה <ph name="BEGIN_TOS_LINK" />לתנאים ולהגבלות של Google<ph name="END_TOS_LINK" /> ו<ph name="BEGIN_ATOS_LINK" />לתנאים ולהגבלות הנוספים של Google Chrome ו-ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">לשנות את סיומת הקובץ?</translation> <translation id="3341262203274374114">לא ניתן לבטל את המעקב. משהו השתבש.</translation> <translation id="3359667936385849800">שימוש בספק השירות הנוכחי</translation> +<translation id="3365271666488085187">תחום העניין הזה יילקח בחשבון ב-Chrome</translation> <translation id="3367813778245106622">יש להיכנס שוב כדי להתחיל בסנכרון</translation> <translation id="3373979091428520308">כדי לשתף את הדף הזה עם מכשיר אחר, יש להפעיל את הסנכרון בהגדרות של Chrome במכשיר האחר</translation> <translation id="3374023511497244703">הסימניות, ההיסטוריה, הסיסמאות ונתונים אחרים ב-Chrome כבר לא יסונכרנו עם חשבון Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" />KB זמינים</translation> <translation id="3549657413697417275">חיפוש בהיסטוריה שלך</translation> <translation id="3557336313807607643">הוספה לאנשי הקשר</translation> +<translation id="3560491354538957576">ניתן להגדיר תחומי עניין לפי האתר</translation> <translation id="3563767357928833671">מוצג התוכן שבלוח</translation> <translation id="3566923219790363270">Chrome עדיין מתכונן ל-VR. יש להפעיל מחדש את Chrome מאוחר יותר.</translation> <translation id="3568688522516854065">כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb index 457e6e8..0a3b20b4 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ja.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">共有するテキスト ブロックを小さくしてください</translation> <translation id="2111511281910874386">ページを開く</translation> <translation id="2122601567107267586">アプリを開けませんでした</translation> -<translation id="2126426811489709554">Powered by Chrome</translation> <translation id="2132122640199389833">リンクしたすべてのデバイスを削除</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> を閉じました</translation> <translation id="2134927169889348449">Chrome を使用すると、<ph name="BEGIN_TOS_LINK" />Google 利用規約<ph name="END_TOS_LINK" />と <ph name="BEGIN_ATOS_LINK" />Google Chrome および Chrome OS 追加利用規約<ph name="END_ATOS_LINK" />に同意したものと見なされます。</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 ebf04a8c..6119edc 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ცადეთ ტექსტის გაზიარება უფრო მცირე ფრაგმენტებად</translation> <translation id="2111511281910874386">გვერდზე გადასვლა</translation> <translation id="2122601567107267586">აპის გახსნა ვერ მოხერხდა</translation> -<translation id="2126426811489709554">უზრუნველყოფილია Chrome-ის მიერ</translation> <translation id="2132122640199389833">ყველა მიბმული მოწყობილობის ამოშლა</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> დაიხურა</translation> <translation id="2134927169889348449">Chrome-ის გამოყენებით ეთანხმებით <ph name="BEGIN_TOS_LINK" />Google-ის მომსახურების პირობებს<ph name="END_TOS_LINK" />, ასევე, <ph name="BEGIN_ATOS_LINK" />Google Chrome-ისა და ChromeOS-ის მომსახურების დამატებით პირობებს<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">გსურთ ფაილის გაფართოების შეცვლა?</translation> <translation id="3341262203274374114">თვალის მიდევნების გაუქმება ვერ მოხერხდა. წარმოიქმნა შეფერხება.</translation> <translation id="3359667936385849800">სერვისის ამჟამინდელი პროვაიდერის გამოყენება</translation> +<translation id="3365271666488085187">Chrome-ს შეუძლია ამ ინტერესის გათვალისწინება</translation> <translation id="3367813778245106622">სინქრონიზაციის დასაწყებად, შედით ხელახლა</translation> <translation id="3373979091428520308">ამ გვერდის სხვა მოწყობილობაზე გასაზიარებლად მასზე საჭიროა სინქრონიზაციის ჩართვა Chrome-ის პარამეტრებიდან</translation> <translation id="3374023511497244703">თქვენი სანიშნეები, ისტორია, პაროლები და სხვა Chrome მონაცემები აღარ იქნება სინქრონიზებული თქვენს Google ანგარიშთან</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">ხელმისაწვდომია <ph name="KILOBYTES" /> კბაიტი</translation> <translation id="3549657413697417275">თქვენს ისტორიაში ძიება</translation> <translation id="3557336313807607643">კონტაქტებში დამატება</translation> +<translation id="3560491354538957576">საიტს შეუძლია ინტერესების განსაზღვრა</translation> <translation id="3563767357928833671">გაცვლის ბუფერის შიგთავსი ნაჩვენებია</translation> <translation id="3566923219790363270">Chrome ჯერ კიდევ მზადდება VR-ისთვის. გადატვირთეთ Chrome მოგვიანებით.</translation> <translation id="3568688522516854065">თქვენს სხვა მოწყობილობაზე არსებულ ჩანართებზე წვდომისთვის შედით სისტემაში და ჩართეთ სინქრონიზაცია</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb index 1edd9f8..4edc5b8 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Мәтін тым үлкен, аз-аздан бөлісіп көріңіз.</translation> <translation id="2111511281910874386">Бетке өту</translation> <translation id="2122601567107267586">Қолданбаны ашу мүмкін емес</translation> -<translation id="2126426811489709554">Chrome арқылы</translation> <translation id="2132122640199389833">Байланыстырылған құрылғылардың барлығын өшіру</translation> <translation id="213279576345780926">Жабық <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Chrome браузерін пайдалану арқылы <ph name="BEGIN_TOS_LINK" />Google Қызмет көрсету шарттарына<ph name="END_TOS_LINK" />, <ph name="BEGIN_ATOS_LINK" />Google Chrome және ChromeOS Қосымша қызмет көрсету шарттарына<ph name="END_ATOS_LINK" /> келісесіз.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index 7033e0af6ef..11c8826 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">សាកល្បងចែករំលែកអត្ថបទជាផ្នែកតូចៗជាងនេះ</translation> <translation id="2111511281910874386">ចូលទៅកាន់ទំព័រ</translation> <translation id="2122601567107267586">មិនអាចបើកកម្មវិធីបានទេ</translation> -<translation id="2126426811489709554">គាំទ្រដោយ Chrome</translation> <translation id="2132122640199389833">ដកឧបករណ៍ដែលបានភ្ជាប់ទាំងអស់ចេញ</translation> <translation id="213279576345780926">បានបិទ <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">ប្រសិនបើប្រើ Chrome មានន័យថាអ្នកយល់ព្រមតាម<ph name="BEGIN_TOS_LINK" />លក្ខខណ្ឌប្រើប្រាស់ Google<ph name="END_TOS_LINK" /> និង<ph name="BEGIN_ATOS_LINK" />លក្ខខណ្ឌប្រើប្រាស់បន្ថែមរបស់ Google Chrome និង ChromeOS<ph name="END_ATOS_LINK" />។</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb index ca00ee0b..9c0c1a2 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ಪಠ್ಯವನ್ನು ಸಣ್ಣ ಭಾಗಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2111511281910874386">ಪುಟಕ್ಕೆ ಹೋಗಿ</translation> <translation id="2122601567107267586">ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> -<translation id="2126426811489709554">Chrome ನಿಂದ ಸಂಚಾಲಿತ</translation> <translation id="2132122640199389833">ಲಿಂಕ್ ಮಾಡಿದ ಎಲ್ಲಾ ಸಾಧನಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> ಮುಚ್ಚಲಾಗಿದೆ</translation> <translation id="2134927169889348449">Chrome ಅನ್ನು ಬಳಸುವ ಮೂಲಕ, ನೀವು <ph name="BEGIN_TOS_LINK" />Google ಸೇವಾ ನಿಯಮಗಳು<ph name="END_TOS_LINK" />, ಹಾಗೂ <ph name="BEGIN_ATOS_LINK" />Google Chrome ಮತ್ತು ChromeOS ಹೆಚ್ಚುವರಿ ಸೇವಾ ನಿಯಮಗಳಿಗೆ<ph name="END_ATOS_LINK" /> ಸಮ್ಮತಿಸುತ್ತೀರಿ.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb index 2b0304a..321ca67 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">좀 더 짧은 길이로 텍스트를 줄인 다음 공유해 보세요.</translation> <translation id="2111511281910874386">페이지로 이동</translation> <translation id="2122601567107267586">앱을 열 수 없음</translation> -<translation id="2126426811489709554">Chrome에서 실행 중</translation> <translation id="2132122640199389833">연결된 기기 모두 삭제</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> 닫음</translation> <translation id="2134927169889348449">Chrome을 사용하면 <ph name="BEGIN_TOS_LINK" />Google 서비스 약관<ph name="END_TOS_LINK" />과 <ph name="BEGIN_ATOS_LINK" />Chrome 및 ChromeOS 추가 서비스 약관<ph name="END_ATOS_LINK" />에 동의하는 것으로 간주됩니다.</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 597e178b..4b20f94 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Текстти бир нече бөлүккө бөлүп анан бөлүшүп көрүңүз</translation> <translation id="2111511281910874386">Веб баракчага өтүү</translation> <translation id="2122601567107267586">Колдонмо ачылбай койду</translation> -<translation id="2126426811489709554">Chrome аркылуу иштетилүүдө</translation> <translation id="2132122640199389833">Бардык байланыштырылган түзмөктөрдү өчүрүү</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> жабылган</translation> <translation id="2134927169889348449">Chrome'ду колдонуу менен, <ph name="BEGIN_TOS_LINK" />Google'дун Тейлөө шарттарына<ph name="END_TOS_LINK" /> жана <ph name="BEGIN_ATOS_LINK" />Google Chrome менен ChromeOS'тун Кошумча Тейлөө шарттарына<ph name="END_ATOS_LINK" /> макулдугуңузду билдиресиз.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb index df904c3..942a57a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lo.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ລອງແບ່ງປັນຂໍ້ຄວາມໃນຈຳນວນທີ່ໜ້ອຍກວ່າ</translation> <translation id="2111511281910874386">ໄປຫາໜ້າ</translation> <translation id="2122601567107267586">ບໍ່ສາມາດເປີດແອັບໄດ້</translation> -<translation id="2126426811489709554">ຂັບເຄື່ອນໂດຍ Chrome</translation> <translation id="2132122640199389833">ລຶບອຸປະກອນທີ່ລິ້ງໄວ້ທັງໝົດອອກ</translation> <translation id="213279576345780926">ປິດ <ph name="TAB_TITLE" /> ແລ້ວ</translation> <translation id="2134927169889348449">ໂດຍການໃຊ້ Chrome, ແມ່ນຖືວ່າທ່ານຍອມຮັບ <ph name="BEGIN_TOS_LINK" />ຂໍ້ກຳນົດບໍລິການ Google<ph name="END_TOS_LINK" /> ແລະ <ph name="BEGIN_ATOS_LINK" />ຂໍ້ກຳນົດບໍລິການເພີ່ມເຕີມ Google Chrome ແລະ ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">ປ່ຽນນາມສະກຸນໄຟລ໌ບໍ?</translation> <translation id="3341262203274374114">ບໍ່ສາມາດເຊົາຕິດຕາມໄດ້. ມີບາງຢ່າງຜິດພາດເກີດຂຶ້ນ.</translation> <translation id="3359667936385849800">ໃຊ້ຜູ້ໃຫ້ບໍລິການປັດຈຸບັນຂອງທ່ານ</translation> +<translation id="3365271666488085187">Chrome ສາມາດພິຈາລະນາຄວາມສົນໃຈນີ້ໄດ້</translation> <translation id="3367813778245106622">ເຂົ້າສູ່ລະບົບອີກຄັ້ງເພື່ອເລີ່ມການຊິ້ງຂໍ້ມູນ</translation> <translation id="3373979091428520308">ເພື່ອແບ່ງປັນໜ້ານີ້ກັບອຸປະກອນອື່ນ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນໃນການຕັ້ງຄ່າ Chrome ຢູ່ໃນອຸປະກອນອື່ນ</translation> <translation id="3374023511497244703">ບຸກມາກ, ປະຫວັດ, ລະຫັດຜ່ານ ແລະ ຂໍ້ມູນອື່ນໆໃນ Chrome ຂອງທ່ານຈະບໍ່ຊິ້ງຂໍ້ມູນກັບບັນຊີ Google ຂອງທ່ານອີກຕໍ່ໄປ.</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">ຍັງເຫຼືອ <ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">ຊອກຫາປະຫວັດຂອງທ່ານ</translation> <translation id="3557336313807607643">ເພີ່ມໃສ່ລາຍຊື່ຜູ້ຕິດຕໍ່</translation> +<translation id="3560491354538957576">ເວັບໄຊສາມາດກຳນົດຄວາມສົນໃຈໄດ້</translation> <translation id="3563767357928833671">ສະແດງເນື້ອຫາຄລິບບອດແລ້ວ</translation> <translation id="3566923219790363270">Chrome ຍັງກະກຽມສໍາລັບ VR ຢູ່. ເປີດ Chrome ໃໝ່ໃນພາຍໃໝ່.</translation> <translation id="3568688522516854065">ເພື່ອໂຫຼດແຖບຂອງທ່ານຈາກອຸປະກອນອື່ນ, ກະລຸນາເປີດການຊິ້ງຂໍ້ມູນກ່ອນ</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 e3b767f..0fefbb7 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Pabandykite bendrinti tekstą mažesnėmis dalimis</translation> <translation id="2111511281910874386">Eiti į puslapį</translation> <translation id="2122601567107267586">Nepavyko atidaryti programos</translation> -<translation id="2126426811489709554">Teikia „Chrome“</translation> <translation id="2132122640199389833">Pašalinti visus susietus įrenginius</translation> <translation id="213279576345780926">„<ph name="TAB_TITLE" />“ uždaryta</translation> <translation id="2134927169889348449">Naudodami „Chrome“ sutinkate su <ph name="BEGIN_TOS_LINK" />„Google“ paslaugų teikimo sąlygomis<ph name="END_TOS_LINK" /> ir <ph name="BEGIN_ATOS_LINK" />„Google Chrome“ bei „Chrome“ OS papildomomis paslaugų teikimo sąlygomis<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb index b59ccbd..971904a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_lv.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Kopīgojiet mazākus teksta fragmentus</translation> <translation id="2111511281910874386">Doties uz lapu</translation> <translation id="2122601567107267586">Nevarēja atvērt lietotni</translation> -<translation id="2126426811489709554">Nodrošina Chrome</translation> <translation id="2132122640199389833">Noņemt visas saistītās ierīces</translation> <translation id="213279576345780926">Tika aizvērta cilne <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Izmantojot pārlūku Chrome, jūs piekrītat <ph name="BEGIN_TOS_LINK" />Google pakalpojumu sniegšanas noteikumiem<ph name="END_TOS_LINK" />, kā arī <ph name="BEGIN_ATOS_LINK" />Google Chrome un Chrome OS pakalpojumu sniegšanas papildu noteikumiem<ph name="END_ATOS_LINK" />.</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 a964a669a..6acdaaf 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Обидете се да го споделите текстот во помали делови</translation> <translation id="2111511281910874386">Одете на страница</translation> <translation id="2122601567107267586">Не може да се отвори апликацијата</translation> -<translation id="2126426811489709554">Овозможено од Chrome</translation> <translation id="2132122640199389833">Отстрани ги сите поврзани уреди</translation> <translation id="213279576345780926">Се затвори <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Ако користите Chrome, се согласувате со <ph name="BEGIN_TOS_LINK" />Условите за користење на Google<ph name="END_TOS_LINK" /> и <ph name="BEGIN_ATOS_LINK" />Дополнителните услови за користење на Google Chrome и Chrome OS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb index 5e163a79..d6fe458 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ചെറിയ ഭാഗങ്ങളായി ടെക്സ്റ്റ് പങ്കിടാൻ ശ്രമിക്കൂ</translation> <translation id="2111511281910874386">പേജിലേക്ക് പോകുക</translation> <translation id="2122601567107267586">ആപ്പ് തുറക്കാനായില്ല</translation> -<translation id="2126426811489709554">Chrome നൽകുന്നത്</translation> <translation id="2132122640199389833">ലിങ്ക് ചെയ്ത എല്ലാ ഉപകരണങ്ങളും നീക്കം ചെയ്യുക</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> അടച്ചു</translation> <translation id="2134927169889348449">Chrome ഉപയോഗിക്കുന്നതിലൂടെ, നിങ്ങൾ <ph name="BEGIN_TOS_LINK" />Google സേവന നിബന്ധനകളും<ph name="END_TOS_LINK" /> <ph name="BEGIN_ATOS_LINK" />Google Chrome, ChromeOS അധിക സേവന നിബന്ധനകളും<ph name="END_ATOS_LINK" /> അംഗീകരിക്കുന്നു.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb index 98963f6..ec3b489 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mn.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Текстийг жижиг хэсгээр хуваалцахыг оролдоно уу</translation> <translation id="2111511281910874386">Хуудаст очих</translation> <translation id="2122601567107267586">Аппыг нээж чадсангүй</translation> -<translation id="2126426811489709554">Дэмжсэн Chrome</translation> <translation id="2132122640199389833">Бүх холбосон төхөөрөмжийг хасах</translation> <translation id="213279576345780926">Хаалттай <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Chrome-г ашигласнаар та <ph name="BEGIN_TOS_LINK" />Google-н үйлчилгээний нөхцөл<ph name="END_TOS_LINK" /> болон <ph name="BEGIN_ATOS_LINK" />Google Chrome, ChromeOS-н нэмэлт нөхцөлийг<ph name="END_ATOS_LINK" /> зөвшөөрч байна.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb index a80016b..97e9d824 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_mr.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">मजकूर लहान भागांमध्ये शेअर करून पहा</translation> <translation id="2111511281910874386">पेजवर जा</translation> <translation id="2122601567107267586">ॲप उघडता आले नाही</translation> -<translation id="2126426811489709554">Chrome द्वारे समर्थित</translation> <translation id="2132122640199389833">सर्व लिंक केलेली डिव्हाइस काढून टाका</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> बंद केले</translation> <translation id="2134927169889348449">Chrome वापरून, तुम्ही <ph name="BEGIN_TOS_LINK" />Google सेवा अटी<ph name="END_TOS_LINK" /> आणि <ph name="BEGIN_ATOS_LINK" />Google Chrome व ChromeOS अतिरिक्त सेवा अटी<ph name="END_ATOS_LINK" /> यांना सहमती दर्शवता.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">फाइल एक्स्टेंशन बदलायचे आहे का?</translation> <translation id="3341262203274374114">अनफॉलो करू शकत नाही. काहीतरी चूक झाली.</translation> <translation id="3359667936385849800">तुमचा सध्याचा सेवा पुरवठादार वापरा</translation> +<translation id="3365271666488085187">Chrome या स्वारस्याबद्दल विचार करू शकते</translation> <translation id="3367813778245106622">सिंक सुरू करण्यासाठी पुन्हा साइन इन करा</translation> <translation id="3373979091428520308">हे पेज दुसर्या डिव्हाइसवर शेअर करण्यासाठी, दुसर्या डिव्हाइसवर Chrome सेटिंग्जमध्ये सिंक सुरू करा</translation> <translation id="3374023511497244703">तुमचे बुकमार्क, इतिहास, पासवर्ड आणि इतर Chrome डेटा आता तुमच्या Google खात्यामध्ये सिंक केला जाणार नाही</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB उपलब्ध</translation> <translation id="3549657413697417275">तुमचा इतिहास शोधा</translation> <translation id="3557336313807607643">संपर्कांमध्ये जोडा</translation> +<translation id="3560491354538957576">साइट स्वारस्याची व्याख्या सांगू शकते</translation> <translation id="3563767357928833671">क्लिपबोर्डचा आशय दाखवला</translation> <translation id="3566923219790363270">Chrome अजूनही VR ची तयारी करत आहे. Chrome नंतर रीस्टार्ट करा.</translation> <translation id="3568688522516854065">तुमच्या इतर डिव्हाइसवरून तुमचे टॅब मिळविण्यासाठी, साइन इन करा आणि सिंक सुरू करा</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 bf18a029..b2f4425 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Cuba kongsikan teks itu dalam bahagian yang lebih kecil</translation> <translation id="2111511281910874386">Pergi ke halaman</translation> <translation id="2122601567107267586">Tidak dapat membuka apl</translation> -<translation id="2126426811489709554">Dikuasakan oleh Chrome</translation> <translation id="2132122640199389833">Alih keluar semua peranti terpaut</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> tertutup</translation> <translation id="2134927169889348449">Dengan menggunakan Chrome, anda bersetuju menerima <ph name="BEGIN_TOS_LINK" />Syarat Perkhidmatan Google<ph name="END_TOS_LINK" /> dan <ph name="BEGIN_ATOS_LINK" />Syarat Perkhidmatan Tambahan Google Chrome dan Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Tukar sambungan fail?</translation> <translation id="3341262203274374114">Tidak dapat berhenti mengikuti. Kesilapan telah berlaku.</translation> <translation id="3359667936385849800">Gunakan penyedia perkhidmatan semasa anda</translation> +<translation id="3365271666488085187">Chrome boleh mempertimbangkan minat ini</translation> <translation id="3367813778245106622">Log masuk semula untuk memulakan penyegerakan</translation> <translation id="3373979091428520308">Untuk berkongsi halaman ini dengan peranti lain, hidupkan penyegerakan dalam tetapan Chrome pada peranti lain itu</translation> <translation id="3374023511497244703">Penanda halaman, sejarah, kata laluan dan data Chrome yang lain tidak akan disegerakkan ke Akaun Google anda lagi</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB tersedia</translation> <translation id="3549657413697417275">Cari sejarah anda</translation> <translation id="3557336313807607643">Tambahkan pada kenalan</translation> +<translation id="3560491354538957576">Laman boleh menentukan minat</translation> <translation id="3563767357928833671">Kandungan papan keratan dipaparkan</translation> <translation id="3566923219790363270">Chrome masih bersiap bersedia untuk VR. Mulakan semula Chrome kemudian.</translation> <translation id="3568688522516854065">Log masuk dan hidupkan penyegerakan untuk mendapatkan tab daripada peranti anda yang 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 7011cada..896d002 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">စာသားကို ပိုသေးသော အပိုင်းများအဖြစ် မျှဝေကြည့်ပါ</translation> <translation id="2111511281910874386">စာမျက်နှာ သို့သွားရန်</translation> <translation id="2122601567107267586">အက်ပ်ကို ဖွင့်၍မရပါ</translation> -<translation id="2126426811489709554">Chrome မှ စွမ်းအင်ထုတ်ပေးပါသည်</translation> <translation id="2132122640199389833">လင့်ခ်ချိတ်ထားသည့် စက်အားလုံး ဖယ်ရှားရန်</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> ပိတ်ထား၏</translation> <translation id="2134927169889348449">Chrome အသုံးပြုခြင်းဖြင့် သင်သည် <ph name="BEGIN_TOS_LINK" />Google ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_TOS_LINK" /> နှင့် <ph name="BEGIN_ATOS_LINK" />Google Chrome နှင့် ChromeOS ထပ်တိုး ဝန်ဆောင်မှုစည်းမျဉ်းများ<ph name="END_ATOS_LINK" /> ကို သဘောတူရာရောက်သည်။</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb index 55b625a..2fd65b9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ne.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">पाठलाई विभाजन गरी साना खण्ड बनाएर आदान प्रदान गरी हेर्नुहोस्</translation> <translation id="2111511281910874386">पृष्ठमा जानुहोस्</translation> <translation id="2122601567107267586">एप खोल्न सकिएन</translation> -<translation id="2126426811489709554">Chrome द्वारा संचालित</translation> <translation id="2132122640199389833">लिंक गरिएका सबै डिभाइस हटाउनुहोस्</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> बन्द भयो</translation> <translation id="2134927169889348449">तपाईंले Chrome चलाउनुभयो भने तपाईं <ph name="BEGIN_TOS_LINK" />Google का सेवाका सर्त<ph name="END_TOS_LINK" /> र <ph name="BEGIN_ATOS_LINK" />Google Chrome तथा ChromeOS का सेवाका अतिरिक्त सर्तहरू<ph name="END_ATOS_LINK" />मा सहमति जनाउनुहुन्छ भन्ने अर्थ लाग्छ।</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">फाइलको एक्स्टेन्सन परिवर्तन गर्ने हो?</translation> <translation id="3341262203274374114">अनफलो गर्न सकिएन। केही चिज गडबड भयो।</translation> <translation id="3359667936385849800">तपाईंको हालको सेवा प्रदायक प्रयोग गर्नुहोस्</translation> +<translation id="3365271666488085187">Chrome ले यो रुचि याद राख्न सक्छ</translation> <translation id="3367813778245106622">सिंक सुरु गर्न फेरि साइन इन गर्नुहोस्</translation> <translation id="3373979091428520308">यो पृष्ठ अर्को यन्त्रसँग आदान प्रदान गर्न अर्को यन्त्रमा रहेको Chrome ब्राउजरको सेटिङमा गई सिंक गर्ने सुविधा अन गर्नुहोस्</translation> <translation id="3374023511497244703">अब उप्रान्त तपाईंको Google खातामा तपाईंका पुस्तक चिन्ह, इतिहास, पासवर्ड र Chrome का अन्य डेटा सिंक हुने छैनन्</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> के.बि. उपलब्ध छ</translation> <translation id="3549657413697417275">आफ्नो ब्राउजिङको इतिहासमा खोज्नुहोस्।</translation> <translation id="3557336313807607643">सम्पर्क ठेगानामा थप्नुहोस्</translation> +<translation id="3560491354538957576">साइटले रुचिहरू पत्ता लगाउन सक्छ</translation> <translation id="3563767357928833671">क्लिपबोर्डमा भएका सामग्री देखाइए</translation> <translation id="3566923219790363270">Chrome ले अझै VR का लागि तयारी गर्दै छ। Chrome पछि पुनः सुरु गर्नुहोस्।</translation> <translation id="3568688522516854065">आफ्ना अन्य यन्त्रहरूबाट आफ्ना ट्याबहरू प्राप्त गर्न साइन इन गरी सिंक गर्ने सुविधा अन गर्नुहोस्</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 fa078e15..ce3c1bf 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Verdeel de tekst in kleinere stukken en deel in meerdere keren.</translation> <translation id="2111511281910874386">Ga naar pagina</translation> <translation id="2122601567107267586">Kan app niet openen</translation> -<translation id="2126426811489709554">Mogelijk gemaakt door Chrome</translation> <translation id="2132122640199389833">Alle gekoppelde apparaten verwijderen</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> gesloten</translation> <translation id="2134927169889348449">Door Chrome te gebruiken, ga je akkoord met de <ph name="BEGIN_TOS_LINK" />Servicevoorwaarden van Google<ph name="END_TOS_LINK" /> en met de <ph name="BEGIN_ATOS_LINK" />Aanvullende servicevoorwaarden van Google Chrome en Chrome OS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb index 5f85a47..a9dc824 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Prøv å dele teksten i mindre deler</translation> <translation id="2111511281910874386">Gå til side</translation> <translation id="2122601567107267586">Kunne ikke åpne appen</translation> -<translation id="2126426811489709554">Drevet av Chrome</translation> <translation id="2132122640199389833">Fjern alle tilknyttede enheter</translation> <translation id="213279576345780926">Lukket <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Ved å bruke Chrome samtykker du i <ph name="BEGIN_TOS_LINK" />Googles vilkår for bruk<ph name="END_TOS_LINK" /> og <ph name="BEGIN_ATOS_LINK" />tilleggsvilkårene for bruk av Google Chrome og ChromeOS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb index bf2875f..9e5dee2a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_or.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ଛୋଟ ଛୋଟ ଭାଗରେ ଟେକ୍ସଟ୍ ସେୟାର୍ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ</translation> <translation id="2111511281910874386">ପୃଷ୍ଠାକୁ ଯାଆନ୍ତୁ</translation> <translation id="2122601567107267586">ଆପ୍କୁ ଖୋଲି ହେଲା ନାହିଁ</translation> -<translation id="2126426811489709554">Chrome ଦ୍ୱାରା ସମର୍ଥିତ</translation> <translation id="2132122640199389833">ସମସ୍ତ ଲିଙ୍କ କରାଯାଇଥିବା ଡିଭାଇସକୁ କାଢ଼ି ଦିଅନ୍ତୁ</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" />ବନ୍ଦ ହୋଇଯାଇଛି</translation> <translation id="2134927169889348449">Chrome ବ୍ୟବହାର କରି, ଆପଣ <ph name="BEGIN_TOS_LINK" />Google ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_TOS_LINK" /> ଏବଂ <ph name="BEGIN_ATOS_LINK" />Google Chrome ଏବଂ ChromeOSର ଅତିରିକ୍ତ ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_ATOS_LINK" />ରେ ସମ୍ମତ ହୁଅନ୍ତି।</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">ଫାଇଲ୍ର ଏକ୍ସଟେନ୍ସନ୍ ବଦଳାଇବେ କି?</translation> <translation id="3341262203274374114">ଅନୁସରଣ କରିବା ବନ୍ଦ କରାଯାଇପାରିବ ନାହିଁ। କିଛି ତ୍ରୁଟି ହୋଇଛି।</translation> <translation id="3359667936385849800">ଆପଣଙ୍କ ବର୍ତ୍ତମାନର ସେବା ପ୍ରଦାନକାରୀ ବ୍ୟବହାର କରନ୍ତୁ</translation> +<translation id="3365271666488085187">Chrome ଏହି ରୁଚିକୁ ବିଚାର କରିପାରିବ</translation> <translation id="3367813778245106622">ସିଙ୍କ୍କୁ ଆରମ୍ଭ କରିବାପାଇଁ ପୁନଃ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ</translation> <translation id="3373979091428520308">ଏହି ପୃଷ୍ଠାକୁ ଅନ୍ୟ ଏକ ଡିଭାଇସ୍ ସହ ସେୟାର୍ କରିବା ପାଇଁ ଅନ୍ୟ ଡିଭାଇସରେ Chrome ସେଟିଂସରେ ସିଙ୍କ୍ ଚାଲୁ କରନ୍ତୁ</translation> <translation id="3374023511497244703">ଆପଣଙ୍କର ବୁକ୍ମାର୍କ, ଇତିହାସ, ପାସ୍ୱାର୍ଡ ଓ ଅନ୍ୟ Chrome ଡାଟା ଆଉ ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟରେ ସିଙ୍କ୍ ହେବ ନାହିଁ।</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB ଉପଲବ୍ଧ ଅଛି</translation> <translation id="3549657413697417275">ଆପଣଙ୍କର ଇତିବୃତ୍ତି ସନ୍ଧାନ କରନ୍ତୁ</translation> <translation id="3557336313807607643">ଯୋଗାଯୋଗରେ ଯୋଗ କରନ୍ତୁ</translation> +<translation id="3560491354538957576">ସାଇଟ ରୁଚିଗୁଡ଼ିକୁ ପରିଭାଷିତ କରିପାରିବ</translation> <translation id="3563767357928833671">କ୍ଲିପବୋର୍ଡର ବିଷୟବସ୍ତୁଗୁଡ଼ିକ ଦେଖାଯାଇଛି</translation> <translation id="3566923219790363270">Chrome ଏବେ ମଧ୍ୟ VR ପାଇଁ ପ୍ରସ୍ତୁତ ହେଉଛି। ପରେ Chrome ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।</translation> <translation id="3568688522516854065">ଆପଣଙ୍କର ଅନ୍ୟ ଡିଭାଇସ୍ଗୁଡ଼ିକରୁ ନିଜର ଟାବ୍ ପ୍ରାପ୍ତ କରିବା ପାଇଁ, ସାଇନ୍ ଇନ୍ କରି ସିଙ୍କ ଚାଲୁ କରନ୍ତୁ</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb index e5f5256..4147f63 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_pa.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ਲਿਖਤ ਨੂੰ ਵਧੇਰੇ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਸਾਂਝਾ ਕਰਕੇ ਦੇਖੋ</translation> <translation id="2111511281910874386">ਪੰਨੇ 'ਤੇ ਜਾਓ</translation> <translation id="2122601567107267586">ਐਪ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ</translation> -<translation id="2126426811489709554">Google ਵੱਲੋਂ ਸੰਚਾਲਿਤ</translation> <translation id="2132122640199389833">ਲਿੰਕ ਕੀਤੇ ਸਾਰੇ ਡੀਵਾਈਸਾਂ ਨੂੰ ਹਟਾਓ</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> ਬੰਦ ਕੀਤਾ</translation> <translation id="2134927169889348449">Chrome ਨੂੰ ਵਰਤ ਕੇ, ਤੁਸੀਂ <ph name="BEGIN_TOS_LINK" />Google ਦੇ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_TOS_LINK" /> ਅਤੇ <ph name="BEGIN_ATOS_LINK" />Google Chrome ਅਤੇ ChromeOS ਦੇ ਵਧੀਕ ਸੇਵਾ ਦੇ ਨਿਯਮਾਂ<ph name="END_ATOS_LINK" /> ਨਾਲ ਸਹਿਮਤ ਹੁੰਦੇ ਹੋ।</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 bc52ee1..9d55e82 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Spróbuj udostępnić mniejsze fragmenty tekstu</translation> <translation id="2111511281910874386">Przejdź do strony</translation> <translation id="2122601567107267586">Nie udało się otworzyć aplikacji</translation> -<translation id="2126426811489709554">Technologia Chrome</translation> <translation id="2132122640199389833">Usuń wszystkie połączone urządzenia</translation> <translation id="213279576345780926">Zamknięto: <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Korzystając z Chrome, wyrażasz zgodę na <ph name="BEGIN_TOS_LINK" />Warunki korzystania z usług Google<ph name="END_TOS_LINK" /> oraz <ph name="BEGIN_ATOS_LINK" />Dodatkowe warunki korzystania z Google Chrome i Chrome OS<ph name="END_ATOS_LINK" />.</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 ef01bc6..5adf4892 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Tente compartilhar o texto em segmentos menores</translation> <translation id="2111511281910874386">Ir para a página</translation> <translation id="2122601567107267586">Não foi possível abrir o aplicativo</translation> -<translation id="2126426811489709554">Em execução no Chrome</translation> <translation id="2132122640199389833">Remover todos os dispositivos vinculados</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> fechada</translation> <translation id="2134927169889348449">Ao usar o Chrome, você concorda com os <ph name="BEGIN_TOS_LINK" />Termos de Serviço do Google<ph name="END_TOS_LINK" /> e os <ph name="BEGIN_ATOS_LINK" />Termos de Serviço adicionais do Google Chrome e do ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Mudar extensão do arquivo?</translation> <translation id="3341262203274374114">Não foi possível parar de seguir. Algo deu errado.</translation> <translation id="3359667936385849800">Usar o provedor de serviços atual</translation> +<translation id="3365271666488085187">O Chrome pode considerar este interesse</translation> <translation id="3367813778245106622">Faça login novamente para começar a sincronizar</translation> <translation id="3373979091428520308">Para compartilhar esta página com outro dispositivo, ative a sincronização nas configurações do Chrome no outro dispositivo</translation> <translation id="3374023511497244703">Seus favoritos, histórico, senhas e outros dados do Chrome não serão mais sincronizados com sua Conta do Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">Disponíveis: <ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">Pesquise o seu histórico</translation> <translation id="3557336313807607643">Adicionar aos contatos</translation> +<translation id="3560491354538957576">O site pode definir interesses</translation> <translation id="3563767357928833671">Conteúdo da área de transferência exibido</translation> <translation id="3566923219790363270">O Chrome ainda está se preparando para a RV. Reinicie-o mais tarde.</translation> <translation id="3568688522516854065">Para ver as guias dos seus outros dispositivos, faça login e ative a sincronização</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 ac57f7b..8f7eeb10 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Experimente partilhar o texto em partes mais pequenas.</translation> <translation id="2111511281910874386">Ir para a página</translation> <translation id="2122601567107267586">Não foi possível abrir a aplicação.</translation> -<translation id="2126426811489709554">Com tecnologia do Chrome</translation> <translation id="2132122640199389833">Remover todos os dispositivos associados</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> fechado</translation> <translation id="2134927169889348449">Ao usar o Chrome, aceita os <ph name="BEGIN_TOS_LINK" />Termos de Utilização da Google<ph name="END_TOS_LINK" /> e os <ph name="BEGIN_ATOS_LINK" />Termos de Utilização Adicionais do Google Chrome e ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -1090,7 +1089,7 @@ <translation id="686366188661646310">Eliminar a palavra-passe?</translation> <translation id="6864459304226931083">Transferir imagem</translation> <translation id="6865313869410766144">Dados de formulário de Preenchimento automático</translation> -<translation id="6867400383614725881">Novo separador de navegação anónima</translation> +<translation id="6867400383614725881">Novo separador anónimo</translation> <translation id="6869056123412990582">computador</translation> <translation id="6882836635272038266">Proteção padrão contra Websites, transferências e extensões identificados como perigosos.</translation> <translation id="6883204995689174413">Partilhar</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb index 6ac67e3a..f4296a59 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ro.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Împarte textul în fragmente mai mici</translation> <translation id="2111511281910874386">Accesează pagina</translation> <translation id="2122601567107267586">Aplicația nu poate fi deschisă</translation> -<translation id="2126426811489709554">Afișată de Chrome</translation> <translation id="2132122640199389833">Elimină toate dispozitivele conectate</translation> <translation id="213279576345780926">Fila <ph name="TAB_TITLE" /> a fost închisă</translation> <translation id="2134927169889348449">Dacă folosești Chrome, ești de acord cu <ph name="BEGIN_TOS_LINK" />Termenii și condițiile Google<ph name="END_TOS_LINK" /> și cu <ph name="BEGIN_ATOS_LINK" />Termenii și condițiile suplimentare pentru Google Chrome și Sistemul de operare Chrome<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb index e9fdc04..58bed08 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Перед отправкой разбейте текст на несколько частей.</translation> <translation id="2111511281910874386">Перейти на страницу</translation> <translation id="2122601567107267586">Не удалось открыть приложение</translation> -<translation id="2126426811489709554">Технологии Chrome</translation> <translation id="2132122640199389833">Удалить все связанные устройства</translation> <translation id="213279576345780926">Вкладка "<ph name="TAB_TITLE" />" закрыта.</translation> <translation id="2134927169889348449">Используя Chrome, вы принимаете <ph name="BEGIN_TOS_LINK" />Условия использования Google<ph name="END_TOS_LINK" /> и <ph name="BEGIN_ATOS_LINK" />Дополнительные условия использования Chrome и Chrome OS<ph name="END_ATOS_LINK" />.</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 ef7fb94a..1c4b8d2 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">පාඨය කුඩා කැබලි ලෙස බෙදා ගැනීමට උත්සාහ කරන්න</translation> <translation id="2111511281910874386">පිටුවට යන්න</translation> <translation id="2122601567107267586">යෙදුම විවෘත කළ නොහැකි විය</translation> -<translation id="2126426811489709554">Chrome විසින් බලගන්වන ලද</translation> <translation id="2132122640199389833">සියලුම සබැඳි කළ උපාංග ඉවත් කරන්න</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> වසන ලදී</translation> <translation id="2134927169889348449">Chrome භාවිත කිරීමෙන්, ඔබ <ph name="BEGIN_TOS_LINK" />Google සේවා නියම<ph name="END_TOS_LINK" /> සහ <ph name="BEGIN_ATOS_LINK" />Google Chrome සහ ChromeOS අතිරේක සේවා නියම<ph name="END_ATOS_LINK" /> සමග එකඟ වේ.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb index 2cc060ce7..e3614ac 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sk.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Skúste text zdieľať po menších častiach</translation> <translation id="2111511281910874386">Prejdite na stránku</translation> <translation id="2122601567107267586">Aplikáciu sa nepodarilo otvoriť</translation> -<translation id="2126426811489709554">Používa technológiu prehliadača Chrome</translation> <translation id="2132122640199389833">Odstrániť všetky prepojené zariadenia</translation> <translation id="213279576345780926">Karta „<ph name="TAB_TITLE" />“ je zavretá</translation> <translation id="2134927169889348449">Používaním Chromu vyjadrujete súhlas so <ph name="BEGIN_TOS_LINK" />zmluvnými podmienkami spoločnosti Google<ph name="END_TOS_LINK" /> a <ph name="BEGIN_ATOS_LINK" />dodatočnými zmluvnými podmienkami prehliadača Google Chrome a systému Chrome OS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb index 6651f63..df4939f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sl.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Poskusite deliti besedilo v manjših kosih</translation> <translation id="2111511281910874386">Pojdi na stran</translation> <translation id="2122601567107267586">Aplikacije ni bilo mogoče odpreti</translation> -<translation id="2126426811489709554">Uporablja tehnologijo Chrome</translation> <translation id="2132122640199389833">Odstrani vse povezane naprave</translation> <translation id="213279576345780926">Zaprt zavihek: <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Če uporabljate Chrome, se strinjate z <ph name="BEGIN_TOS_LINK" />Googlovimi pogoji storitve<ph name="END_TOS_LINK" /> in <ph name="BEGIN_ATOS_LINK" />dodatnimi pogoji storitve za Google Chrome in Chrome OS<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb index 1e65c012..f5433fbe 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sq.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Provo ta ndash tekstin në copëza më të vogla</translation> <translation id="2111511281910874386">Shko te faqja</translation> <translation id="2122601567107267586">Aplikacioni nuk mund të hapej</translation> -<translation id="2126426811489709554">E mundësuar nga Chrome</translation> <translation id="2132122640199389833">Hiq të gjitha pajisjet e lidhura</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> është mbyllur</translation> <translation id="2134927169889348449">Duke përdorur Chrome, ti pranon <ph name="BEGIN_TOS_LINK" />"Kushtet e shërbimit" të Google<ph name="END_TOS_LINK" /> dhe <ph name="BEGIN_ATOS_LINK" />"Kushtet shtesë të shërbimit" të Google Chrome dhe të ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Do ta ndryshosh prapashtesën e skedarit?</translation> <translation id="3341262203274374114">Ndjekja nuk mund të anulohet. Ndodhi një gabim.</translation> <translation id="3359667936385849800">Përdor ofruesin aktual të shërbimit</translation> +<translation id="3365271666488085187">Chrome mund ta marrë parasysh këtë interes</translation> <translation id="3367813778245106622">Identifikohu përsëri për të nisur sinkronizimin</translation> <translation id="3373979091428520308">Për ta ndarë këtë faqe në një pajisje tjetër, aktivizo sinkronizimin në cilësimet e Chrome në pajisjen tjetër</translation> <translation id="3374023511497244703">Faqeshënuesit, historiku, fjalëkalimet dhe të dhënat e tjera të Chrome nuk do të sinkronizohen më në "Llogarinë tënde të Google"</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> KB në dispozicion</translation> <translation id="3549657413697417275">Kërko në historikun tënd</translation> <translation id="3557336313807607643">Shto te kontaktet</translation> +<translation id="3560491354538957576">Sajti mund të përcaktojë interesat</translation> <translation id="3563767357928833671">Përmbajtjet e kujtesës së fragmenteve janë shfaqur</translation> <translation id="3566923219790363270">Chrome po përgatitet akoma për VR. Rinise Chrome më vonë.</translation> <translation id="3568688522516854065">Për të marrë skedat nga pajisjet e tjera të tua, identifikohu dhe aktivizo sinkronizimin</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb index 4510a8f..394219d 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Probajte da delite tekst u manjim delovima</translation> <translation id="2111511281910874386">Idi na stranicu</translation> <translation id="2122601567107267586">Otvaranje aplikacije nije uspelo</translation> -<translation id="2126426811489709554">Omogućava Chrome</translation> <translation id="2132122640199389833">Ukloni sve povezane uređaje</translation> <translation id="213279576345780926">Zatvorili ste karticu <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Ako koristite Chrome, prihvatate <ph name="BEGIN_TOS_LINK" />Google uslove korišćenja usluge<ph name="END_TOS_LINK" /> i <ph name="BEGIN_ATOS_LINK" />dodatne uslove korišćenja usluge za Google Chrome i Chrome OS<ph name="END_ATOS_LINK" />.</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 1e1cd18..4a958ffa 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Пробајте да делите текст у мањим деловима</translation> <translation id="2111511281910874386">Иди на страницу</translation> <translation id="2122601567107267586">Отварање апликације није успело</translation> -<translation id="2126426811489709554">Омогућава Chrome</translation> <translation id="2132122640199389833">Уклони све повезане уређаје</translation> <translation id="213279576345780926">Затворили сте картицу <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Ако користите Chrome, прихватате <ph name="BEGIN_TOS_LINK" />Google услове коришћења услуге<ph name="END_TOS_LINK" /> и <ph name="BEGIN_ATOS_LINK" />додатне услове коришћења услуге за Google Chrome и Chrome ОС<ph name="END_ATOS_LINK" />.</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 ada76724..efc40c6a 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Testa att dela upp texten i mindre bitar</translation> <translation id="2111511281910874386">Öppna sida</translation> <translation id="2122601567107267586">Det gick inte att öppna appen</translation> -<translation id="2126426811489709554">Drivs av Chrome</translation> <translation id="2132122640199389833">Ta bort alla länkade enheter</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> har stängts</translation> <translation id="2134927169889348449">Genom att använda Chrome godkänner du <ph name="BEGIN_TOS_LINK" />Googles användarvillkor<ph name="END_TOS_LINK" /> och <ph name="BEGIN_ATOS_LINK" />de Ytterligare användarvillkoren för Google Chrome och Chrome OS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Vill du ändra filnamnstillägget?</translation> <translation id="3341262203274374114">Det gick inte att sluta följa flödet på grund av ett fel.</translation> <translation id="3359667936385849800">Använd den nuvarande DNS-leverantören</translation> +<translation id="3365271666488085187">Chrome kan ta hänsyn till detta intresse</translation> <translation id="3367813778245106622">Logga in igen om du vill påbörja synkroniseringen</translation> <translation id="3373979091428520308">Om du vill dela den här sidan med en annan enhet måste du aktivera synkronisering i inställningarna för Chrome på den andra enheten</translation> <translation id="3374023511497244703">Bokmärken, historik, lösenord och annan data i Chrome synkroniseras inte längre med ditt Google-konto</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> kB tillgängligt</translation> <translation id="3549657413697417275">Sök i historik</translation> <translation id="3557336313807607643">Lägg till i kontakter</translation> +<translation id="3560491354538957576">Webbplatsen kan definiera intressen</translation> <translation id="3563767357928833671">Innehållet i Urklipp visas</translation> <translation id="3566923219790363270">Chrome förbereds fortfarande för VR. Starta om Chrome senare.</translation> <translation id="3568688522516854065">Logga in och aktivera synkronisering om du vill ha samma flikar tillgängliga på alla enheter</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 ad360d23..11cd1fe 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Jaribu kushiriki maandishi katika sehemu ndogo ndogo</translation> <translation id="2111511281910874386">Nenda kwenye ukurasa</translation> <translation id="2122601567107267586">Imeshindwa kufungua programu</translation> -<translation id="2126426811489709554">Unaendeshwa na Chrome</translation> <translation id="2132122640199389833">Ondoa vifaa vyote vilivyounganishwa</translation> <translation id="213279576345780926">Umefunga <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Kwa kutumia Chrome, unakubali <ph name="BEGIN_TOS_LINK" />Sheria na Masharti ya Google<ph name="END_TOS_LINK" /> na <ph name="BEGIN_ATOS_LINK" />Sheria na Masharti ya Ziada ya Google Chrome na Mfumo wa Uendeshaji wa Chrome<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Ungependa kubadilisha kiendelezi cha faili?</translation> <translation id="3341262203274374114">Imeshinda kuacha kufuatilia. Hitilafu fulani imetokea.</translation> <translation id="3359667936385849800">Tumia mtoa huduma wako wa sasa</translation> +<translation id="3365271666488085187">Chrome inaweza kuzingatia jambo hili linalokuvutia</translation> <translation id="3367813778245106622">Ingia tena katika akaunti ili uanze kusawazisha</translation> <translation id="3373979091428520308">Ili ushiriki ukurasa huu kwenye kifaa kingine, washa usawazishaji katika mipangilio ya Chrome kwenye kifaa kingine</translation> <translation id="3374023511497244703">Alamisho, historia, manenosiri na data yako nyingine ya Chrome hazitasawazishwa tena kwenye Akaunti yako ya Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">KB <ph name="KILOBYTES" /> zinapatikana</translation> <translation id="3549657413697417275">Tafuta katika historia yako</translation> <translation id="3557336313807607643">Ongeza kwenye anwani</translation> +<translation id="3560491354538957576">Tovuti inaweza kutambua mambo yanayokuvutia</translation> <translation id="3563767357928833671">Yaliyomo kwenye ubao wa kunakili yameonyeshwa</translation> <translation id="3566923219790363270">Chrome bado inasubiri Uhalisia Pepe. Zima kisha uwashe Chrome baadaye</translation> <translation id="3568688522516854065">Ingia katika akaunti na uwashe kipengele cha usawazishaji ili upate vichupo vyako kutoka vifaa vyako vingine</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb index 1fd0b37b..96a67422 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ta.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">சிறுசிறு பகுதியாக உரையைப் பகிர முயலவும்</translation> <translation id="2111511281910874386">பக்கத்திற்குச் செல்லவும்</translation> <translation id="2122601567107267586">பயன்பாட்டைத் திறக்க முடியவில்லை</translation> -<translation id="2126426811489709554">Chromeஇல் இயங்குகிறது</translation> <translation id="2132122640199389833">இணைக்கப்பட்டுள்ள சாதனங்கள் அனைத்தையும் அகற்று</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> மூடப்பட்டது</translation> <translation id="2134927169889348449">Chromeமைப் பயன்படுத்துவதன் மூலம் <ph name="BEGIN_TOS_LINK" />Google சேவை விதிமுறைகள்<ph name="END_TOS_LINK" />, <ph name="BEGIN_ATOS_LINK" />Google Chrome & ChromeOS தொடர்பான கூடுதல் சேவை விதிமுறைகள்<ph name="END_ATOS_LINK" /> ஆகியவற்றை ஏற்கிறீர்கள்.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">ஃபைல் நீட்டிப்பை மாற்றவா?</translation> <translation id="3341262203274374114">பின்தொடர்வதை நிறுத்த முடியவில்லை. ஏதோ தவறாகிவிட்டது.</translation> <translation id="3359667936385849800">எனது தற்போதைய சேவை வழங்குநரைப் பயன்படுத்து</translation> +<translation id="3365271666488085187">இந்த ஆர்வத்தின்படி விளம்பரங்களை Chrome காட்டலாம்</translation> <translation id="3367813778245106622">ஒத்திசைப்பதைத் தொடங்க, மீண்டும் உள்நுழையவும்</translation> <translation id="3373979091428520308">வேறொரு சாதனத்திற்கு இந்தப் பக்கத்தைப் பகிர, மற்ற சாதனத்தில் உள்ள Chrome அமைப்புகளில் 'ஒத்திசை' என்பதை இயக்கவும்</translation> <translation id="3374023511497244703">இனி உங்கள் Google கணக்குடன் புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் போன்ற பிற Chrome தரவு ஒத்திசைக்கப்படாது</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775"><ph name="KILOBYTES" /> கி.பை. உள்ளது</translation> <translation id="3549657413697417275">உங்கள் வரலாற்றைத் தேடுக</translation> <translation id="3557336313807607643">தொடர்புகளில் சேர்</translation> +<translation id="3560491354538957576">தளம் ஆர்வங்களை வரையறுக்கலாம்</translation> <translation id="3563767357928833671">கிளிப்போர்டில் உள்ளவை காட்டப்படுகிறது</translation> <translation id="3566923219790363270">VRருக்காக Chrome இன்னமும் தயார்செய்கிறது. Chromeமைப் பின்னர் மீண்டும் தொடங்கவும்.</translation> <translation id="3568688522516854065">உங்கள் பிற சாதனங்களிலிருந்து தாவல்களைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb index b9f89a6..f7552f9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">వచనాన్ని చిన్న భాగాలుగా చేసి షేర్ చేయడానికి ప్రయత్నించండి</translation> <translation id="2111511281910874386">పేజీకి వెళ్లండి</translation> <translation id="2122601567107267586">యాప్ను తెరవడం సాధ్యపడలేదు</translation> -<translation id="2126426811489709554">Chrome ఆధారితం</translation> <translation id="2132122640199389833">అన్ని లింక్ చేయబడిన పరికరాలను తీసివేయండి</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> మూసివేయబడింది</translation> <translation id="2134927169889348449">Chromeను ఉపయోగించడం ద్వారా, మీరు <ph name="BEGIN_TOS_LINK" />Google సర్వీస్ నియమాలు<ph name="END_TOS_LINK" />, అలాగే <ph name="BEGIN_ATOS_LINK" />Google Chrome, ChromeOS అదనపు సర్వీస్ నియమాలను<ph name="END_ATOS_LINK" /> అంగీకరిస్తున్నారు.</translation> @@ -270,7 +269,7 @@ <translation id="247737702124049222">ఇమేజ్ వివరణలు ఆన్ చేయబడ్డాయి</translation> <translation id="2482878487686419369">నోటిఫికేషన్లు</translation> <translation id="2485422356828889247">అన్ఇన్స్టాల్ చేయి</translation> -<translation id="2494974097748878569">Chromeలో Google అసిస్టెంట్</translation> +<translation id="2494974097748878569">Chromeలో Google Assistant</translation> <translation id="2496180316473517155">బ్రౌజింగ్ హిస్టరీ</translation> <translation id="2497852260688568942">సింక్ను మీ నిర్వాహకులు నిలిపివేశారు</translation> <translation id="250020030759455918">మీరు Chromeలో మీ <ph name="SITE_NAME" /> సైన్ ఇన్ స్టేటస్, బ్రౌజింగ్ డేటా ఇంకా సైట్ డేటాను చూస్తారు</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb index baca4f4d..44cde48 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">ลองแชร์ข้อความโดยแบ่งเป็นส่วนเล็กๆ หลายส่วน</translation> <translation id="2111511281910874386">ไปที่หน้า</translation> <translation id="2122601567107267586">เปิดแอปไม่ได้</translation> -<translation id="2126426811489709554">สนับสนุนโดย Chrome</translation> <translation id="2132122640199389833">นำอุปกรณ์ทั้งหมดที่ลิงก์ออก</translation> <translation id="213279576345780926">ปิด <ph name="TAB_TITLE" /> แล้ว</translation> <translation id="2134927169889348449">การใช้ Chrome หมายความว่า คุณยอมรับ<ph name="BEGIN_TOS_LINK" />ข้อกำหนดในการให้บริการของ Google<ph name="END_TOS_LINK" /> และ<ph name="BEGIN_ATOS_LINK" />ข้อกำหนดในการให้บริการเพิ่มเติมของ Google Chrome และ Chrome OS<ph name="END_ATOS_LINK" /></translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb index 94544ea..feece41 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Metni daha küçük parçalar halinde paylaşmayı deneyin</translation> <translation id="2111511281910874386">Sayfaya gidin</translation> <translation id="2122601567107267586">Uygulama açılamadı</translation> -<translation id="2126426811489709554">Chrome tarafından desteklenmektedir</translation> <translation id="2132122640199389833">Tüm bağlı cihazları kaldır</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> kapatıldı</translation> <translation id="2134927169889348449">Chrome'u kullanarak <ph name="BEGIN_TOS_LINK" />Google Hizmet Şartları<ph name="END_TOS_LINK" /> ile <ph name="BEGIN_ATOS_LINK" />Google Chrome ve ChromeOS Ek Hizmet Şartları<ph name="END_ATOS_LINK" />'nı kabul etmiş olursunuz.</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 fa7cb1c6..5f99499 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Спробуйте надіслати текст меншими частинами</translation> <translation id="2111511281910874386">Перейти на сторінку</translation> <translation id="2122601567107267586">Не вдалося відкрити додаток</translation> -<translation id="2126426811489709554">Технології Chrome</translation> <translation id="2132122640199389833">Видалити всі зв’язані пристрої</translation> <translation id="213279576345780926">Вкладку "<ph name="TAB_TITLE" />" закрито</translation> <translation id="2134927169889348449">Використовуючи Chrome, ви приймаєте <ph name="BEGIN_TOS_LINK" />Загальні положення та умови Google<ph name="END_TOS_LINK" /> і <ph name="BEGIN_ATOS_LINK" />Додаткові умови використання Google Chrome та ОС Chrome<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Змінити розширення файлу?</translation> <translation id="3341262203274374114">Не вдалося скасувати підписку. Сталася помилка.</translation> <translation id="3359667936385849800">Використовувати поточного постачальника послуг</translation> +<translation id="3365271666488085187">Chrome може враховувати цей інтерес</translation> <translation id="3367813778245106622">Увійдіть знову, щоб почати синхронізацію</translation> <translation id="3373979091428520308">Щоб ця сторінка була доступна на іншому пристрої, увімкніть на ньому синхронізацію в налаштуваннях Chrome.</translation> <translation id="3374023511497244703">Закладки, історія, паролі й інші дані Chrome більше не синхронізуватимуться з обліковим записом Google</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">Доступно <ph name="KILOBYTES" /> КБ</translation> <translation id="3549657413697417275">Пошук в історії</translation> <translation id="3557336313807607643">Додати до контактів</translation> +<translation id="3560491354538957576">Сайт може визначати інтереси</translation> <translation id="3563767357928833671">Показано вміст буфера обміну</translation> <translation id="3566923219790363270">Chrome готується до запуску VR. Перезапустіть Chrome пізніше.</translation> <translation id="3568688522516854065">Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис і ввімкніть синхронізацію</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb index 04089a3..bab469f 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ur.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">چھوٹے ٹکڑوں میں متن کا اشتراک کرنے کی کوشش کریں</translation> <translation id="2111511281910874386">صفحہ پر جائیں</translation> <translation id="2122601567107267586">ایپ نہیں کھولی جا سکی</translation> -<translation id="2126426811489709554">تقویت یافتہ بذریعہ Chrome</translation> <translation id="2132122640199389833">سبھی لنک کردہ آلات کو ہٹائیں</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> کو بند کر دیا گیا</translation> <translation id="2134927169889348449">Chrome کا استعمال کر کے، آپ <ph name="BEGIN_TOS_LINK" />Google کی سروس کی شرائط<ph name="END_TOS_LINK" /> اور <ph name="BEGIN_ATOS_LINK" />Google Chrome اور ChromeOS کی اضافی سروس کی شرائط<ph name="END_ATOS_LINK" /> سے اتفاق کرتے ہیں۔</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb index afe4f55..a457101 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Yuboriladigan matnni biroz qisqartiring</translation> <translation id="2111511281910874386">Sahifaga o‘tish</translation> <translation id="2122601567107267586">Dastur ochilmadi</translation> -<translation id="2126426811489709554">Chrome asosida ishlaydi</translation> <translation id="2132122640199389833">Ulangan barcha qurilmalarni olib tashlash</translation> <translation id="213279576345780926">Yopildi: <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Siz Chrome brauzeridan foydalanish orqali <ph name="BEGIN_TOS_LINK" />Google Xizmat shartlari<ph name="END_TOS_LINK" /> hamda <ph name="BEGIN_ATOS_LINK" />Google Chrome va ChromeOS Qoʻshimcha xizmat shartlari<ph name="END_ATOS_LINK" /> uchun rozilik berasiz.</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb index 7f945ad..69769b7c 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Hãy thử chia sẻ văn bản theo các đoạn nhỏ hơn</translation> <translation id="2111511281910874386">Chuyển đến trang</translation> <translation id="2122601567107267586">Không thể mở ứng dụng</translation> -<translation id="2126426811489709554">Được hỗ trợ bởi Chrome</translation> <translation id="2132122640199389833">Xoá mọi thiết bị đã liên kết</translation> <translation id="213279576345780926">Đã đóng <ph name="TAB_TITLE" /></translation> <translation id="2134927169889348449">Bằng việc sử dụng Chrome, bạn đồng ý với <ph name="BEGIN_TOS_LINK" />Điều khoản dịch vụ của Google<ph name="END_TOS_LINK" /> cũng như <ph name="BEGIN_ATOS_LINK" />Điều khoản dịch vụ bổ sung của Google Chrome và ChromeOS<ph name="END_ATOS_LINK" />.</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">Thay đổi đuôi tệp?</translation> <translation id="3341262203274374114">Không thể ngừng theo dõi. Đã xảy ra lỗi.</translation> <translation id="3359667936385849800">Sử dụng nhà cung cấp dịch vụ hiện tại của bạn</translation> +<translation id="3365271666488085187">Chrome có thể xem xét mối quan tâm này</translation> <translation id="3367813778245106622">Đăng nhập lại để bắt đầu đồng bộ hóa</translation> <translation id="3373979091428520308">Để chia sẻ trang này với một thiết bị khác, hãy bật tính năng đồng bộ hóa trong phần cài đặt Chrome trên thiết bị đó</translation> <translation id="3374023511497244703">Dấu trang, lịch sử, mật khẩu và các dữ liệu khác trên Chrome sẽ không được đồng bộ hóa với Tài khoản Google của bạn nữa</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">Còn <ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">Tìm kiếm trong nhật ký duyệt web</translation> <translation id="3557336313807607643">Thêm vào danh bạ</translation> +<translation id="3560491354538957576">Trang web có thể xác định mối quan tâm</translation> <translation id="3563767357928833671">Đã hiện nội dung của bảng nhớ tạm</translation> <translation id="3566923219790363270">Chrome vẫn đang chuẩn bị mô-đun Thực tế ảo. Hãy khởi động lại Chrome sau.</translation> <translation id="3568688522516854065">Để sử dụng các thẻ từ những thiết bị khác, hãy đăng nhập và bật tính năng đồng bộ hóa</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb index 542edc6..65d2f60 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">请尝试使用较小的文本块进行分享</translation> <translation id="2111511281910874386">转至相关网页</translation> <translation id="2122601567107267586">无法打开此应用</translation> -<translation id="2126426811489709554">由 Chrome 提供支持</translation> <translation id="2132122640199389833">移除所有已关联的设备</translation> <translation id="213279576345780926">已关闭“<ph name="TAB_TITLE" />”</translation> <translation id="2134927169889348449">使用 Chrome 即表示您同意接受 <ph name="BEGIN_TOS_LINK" />Google 服务条款<ph name="END_TOS_LINK" />以及 <ph name="BEGIN_ATOS_LINK" />Google Chrome 和 Chrome 操作系统附加服务条款<ph name="END_ATOS_LINK" />。</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">更改文件扩展名?</translation> <translation id="3341262203274374114">无法取消关注。出了点问题。</translation> <translation id="3359667936385849800">使用您当前的服务提供商</translation> +<translation id="3365271666488085187">Chrome 可能会根据此兴趣来展示广告</translation> <translation id="3367813778245106622">重新登录以开始同步</translation> <translation id="3373979091428520308">如果想将此页分享到其他设备,请在相应设备上的 Chrome 设置中开启同步</translation> <translation id="3374023511497244703">您的书签、历史记录、密码和其他 Chrome 数据将不再同步到您的 Google 帐号中</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">可用空间:<ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">搜索您的历史记录</translation> <translation id="3557336313807607643">添加到通讯录</translation> +<translation id="3560491354538957576">系统可能会根据此网站来推测您的兴趣</translation> <translation id="3563767357928833671">已显示剪贴板内容</translation> <translation id="3566923219790363270">Chrome 仍在准备 VR。请稍等片刻再重启 Chrome。</translation> <translation id="3568688522516854065">要访问您在其他设备上的标签页,请登录您的帐号并开启同步功能</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 66792ca..cef8289 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">請嘗試將要分享的文字分為數個簡短片段</translation> <translation id="2111511281910874386">前往網頁</translation> <translation id="2122601567107267586">無法開啟應用程式</translation> -<translation id="2126426811489709554">Chrome 技術提供</translation> <translation id="2132122640199389833">移除所有已連結的裝置</translation> <translation id="213279576345780926">已關閉「<ph name="TAB_TITLE" />」</translation> <translation id="2134927169889348449">使用 Chrome 即表示您同意《<ph name="BEGIN_TOS_LINK" />Google 服務條款<ph name="END_TOS_LINK" />》以及 <ph name="BEGIN_ATOS_LINK" />Google Chrome 和 Chrome OS 的《附加服務條款》<ph name="END_ATOS_LINK" />。</translation> @@ -443,6 +442,7 @@ <translation id="3334729583274622784">要變更副檔名嗎?</translation> <translation id="3341262203274374114">無法取消追蹤,發生錯誤。</translation> <translation id="3359667936385849800">使用目前的服務供應商</translation> +<translation id="3365271666488085187">Chrome 可根據這項興趣顯示廣告</translation> <translation id="3367813778245106622">如要開始同步處理,請重新登入</translation> <translation id="3373979091428520308">如要將此頁面分享至另一部裝置,請在另一部裝置的 Chrome 設定中開啟同步功能</translation> <translation id="3374023511497244703">您的書籤、記錄、密碼及其他 Chrome 資料將不會同步至您的 Google 帳戶。</translation> @@ -476,6 +476,7 @@ <translation id="3542235761944717775">可用空間:<ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">搜尋你的記錄</translation> <translation id="3557336313807607643">新增至通訊錄</translation> +<translation id="3560491354538957576">網站可以定義興趣</translation> <translation id="3563767357928833671">顯示咗剪貼簿嘅內容</translation> <translation id="3566923219790363270">Chrome 仍在準備 VR。請稍後再重新啟動 Chrome。</translation> <translation id="3568688522516854065">如要取得其他裝置上的分頁,請登入並開啟同步處理功能</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb index db11680..e72a736 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -209,7 +209,6 @@ <translation id="2100314319871056947">請嘗試將要分享的文字分成多個片段</translation> <translation id="2111511281910874386">前往指定頁面</translation> <translation id="2122601567107267586">無法開啟應用程式</translation> -<translation id="2126426811489709554">技術提供:Chrome</translation> <translation id="2132122640199389833">移除所有連結的裝置</translation> <translation id="213279576345780926">已關閉「<ph name="TAB_TITLE" />」</translation> <translation id="2134927169889348449">使用 Chrome 即表示您同意《<ph name="BEGIN_TOS_LINK" />Google 服務條款<ph name="END_TOS_LINK" />》以及 <ph name="BEGIN_ATOS_LINK" />Google Chrome 和 Chrome OS 的《附加服務條款》<ph name="END_ATOS_LINK" />。</translation> @@ -312,7 +311,7 @@ <translation id="2702516483241149200">新功能:分享可跳至這段文字的連結</translation> <translation id="2704606927547763573">已複製</translation> <translation id="2707726405694321444">重新整理頁面</translation> -<translation id="271033894570825754">新</translation> +<translation id="271033894570825754">全新</translation> <translation id="2711073837061989559">試用</translation> <translation id="2718352093833049315">僅限連上 Wi-Fi 網路時</translation> <translation id="2718846868787000099">如要以偏好的語言顯示內容,你所造訪的網站將可查看你的偏好設定</translation> @@ -442,6 +441,7 @@ <translation id="3334729583274622784">是否要變更副檔名?</translation> <translation id="3341262203274374114">無法取消追蹤,發生錯誤。</translation> <translation id="3359667936385849800">使用目前的服務供應商</translation> +<translation id="3365271666488085187">Chrome 可根據這項興趣顯示廣告</translation> <translation id="3367813778245106622">如要開始同步處理,請重新登入</translation> <translation id="3373979091428520308">如要將這個頁面分享至另一部裝置,你必須在另一部裝置的 Chrome 設定中開啟同步功能</translation> <translation id="3374023511497244703">你的書籤、歷史記錄、密碼和其他 Chrome 資料將停止同步到你的 Google 帳戶</translation> @@ -475,6 +475,7 @@ <translation id="3542235761944717775">可用空間:<ph name="KILOBYTES" /> KB</translation> <translation id="3549657413697417275">搜尋你的記錄</translation> <translation id="3557336313807607643">新增為聯絡人</translation> +<translation id="3560491354538957576">網站可以定義興趣</translation> <translation id="3563767357928833671">已顯示剪貼簿內容</translation> <translation id="3566923219790363270">Chrome 仍在準備 VR 模組。請稍後再重新啟動 Chrome。</translation> <translation id="3568688522516854065">如要存取你在其他裝置上開啟的分頁,請登入並開啟同步處理功能</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 5dd2b960..ddf4883 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
@@ -210,7 +210,6 @@ <translation id="2100314319871056947">Zama ukwabelana ngombhalo ngezingxenye ezincane</translation> <translation id="2111511281910874386">Iya kwikhasi</translation> <translation id="2122601567107267586">Ayikwazanga ukuvula uhlelo lokusebenza</translation> -<translation id="2126426811489709554">Kuxhaswe i-Chrome</translation> <translation id="2132122640199389833">Susa wonke amadivayisi alinkiwe</translation> <translation id="213279576345780926">I-<ph name="TAB_TITLE" /> evaliwe</translation> <translation id="2134927169889348449">Ngokusebenzisa i-Chrome, uvumelana <ph name="BEGIN_TOS_LINK" />Nemigomo Yesevisi ye-Google<ph name="END_TOS_LINK" />, kanye <ph name="BEGIN_ATOS_LINK" />ne-Google Chrome Nemigomo Yesevisi ye-ChromeOS Engeziwe<ph name="END_ATOS_LINK" />.</translation>
diff --git a/chrome/browser/ui/ash/crosapi_new_window_delegate.cc b/chrome/browser/ui/ash/crosapi_new_window_delegate.cc index 3a5f300..ba66db4b 100644 --- a/chrome/browser/ui/ash/crosapi_new_window_delegate.cc +++ b/chrome/browser/ui/ash/crosapi_new_window_delegate.cc
@@ -67,6 +67,7 @@ if (crosapi::GetShellSurfaceWindow(window_id_) == window) { std::move(closure_).Run(window); owner_->DestroyWindowObserver(); + return; } } @@ -84,6 +85,7 @@ if (window == it) { std::move(closure_).Run(window); owner_->DestroyWindowObserver(); + return; } } }
diff --git a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc index 6721266..fd758e8 100644 --- a/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc +++ b/chrome/browser/ui/views/payments/payment_request_browsertest_base.cc
@@ -558,7 +558,7 @@ delegate_ = delegate.get(); auto display_manager = delegate->GetDisplayManager()->GetWeakPtr(); auto* request = new PaymentRequest( - render_frame_host, std::move(delegate), std::move(display_manager), + *render_frame_host, std::move(delegate), std::move(display_manager), std::move(receiver), SPCTransactionMode::NONE, GetWeakPtr()); requests_.push_back(request->GetWeakPtr()); }
diff --git a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc index eb19367..3e20ccb1 100644 --- a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc +++ b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.cc
@@ -83,6 +83,7 @@ dialog_created_time_ = base::TimeTicks::Now(); web_view_ = AddChildView(std::make_unique<views::WebView>(browser->profile())); + web_view_->SetID(kViewIdWebView); web_view_->LoadInitialURL(GURL(chrome::kChromeUIPrivacySandboxDialogURL)); auto width =
diff --git a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.h b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.h index 71dda28..812d4c4 100644 --- a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.h +++ b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view.h
@@ -24,6 +24,8 @@ PrivacySandboxDialogView(Browser* browser, PrivacySandboxService::PromptType dialog_type); + static constexpr int kViewIdWebView = 1; + void Close(); private:
diff --git a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc index cb159e2..9cc716eb 100644 --- a/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/privacy_sandbox/privacy_sandbox_dialog_view_browsertest.cc
@@ -23,6 +23,15 @@ constexpr int kAverageBrowserWidth = 800; constexpr int kAverageBrowserHeight = 700; +void ExpandLearnMoreSection(content::WebContents* web_contents) { + content::RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); + EXPECT_TRUE( + content::ExecJs(main_frame, + "(async () => { return await " + "document.querySelector('privacy-sandbox-dialog-app')." + "expandLearnMoreSectionForTesting(); })()")); +} + } // namespace class PrivacySandboxDialogViewBrowserTest : public DialogBrowserTest { @@ -41,6 +50,9 @@ if (name == "Consent") { prompt_type = PrivacySandboxService::PromptType::kConsent; } + if (name == "ConsentExpanded") { + prompt_type = PrivacySandboxService::PromptType::kConsent; + } if (name == "Notice") { prompt_type = PrivacySandboxService::PromptType::kNotice; } @@ -54,7 +66,13 @@ views::test::AnyWidgetTestPasskey{}, PrivacySandboxDialogView::kViewClassName); ShowPrivacySandboxPrompt(browser(), prompt_type); - waiter.WaitIfNeededAndGet(); + auto* dialog = waiter.WaitIfNeededAndGet(); + if (name == "ConsentExpanded") { + auto* web_view = dialog->GetRootView()->GetViewByID( + PrivacySandboxDialogView::kViewIdWebView); + ExpandLearnMoreSection( + static_cast<views::WebView*>(web_view)->GetWebContents()); + } base::RunLoop().RunUntilIdle(); } @@ -76,6 +94,21 @@ ShowAndVerifyUi(); } +IN_PROC_BROWSER_TEST_F(PrivacySandboxDialogViewBrowserTest, + InvokeUi_ConsentExpanded) { + EXPECT_CALL( + *mock_service(), + PromptActionOccurred(PrivacySandboxService::PromptAction::kConsentShown)); + EXPECT_CALL(*mock_service(), + PromptActionOccurred( + PrivacySandboxService::PromptAction::kConsentMoreInfoOpened)); + EXPECT_CALL( + *mock_service(), + PromptActionOccurred( + PrivacySandboxService::PromptAction::kConsentClosedNoDecision)); + ShowAndVerifyUi(); +} + IN_PROC_BROWSER_TEST_F(PrivacySandboxDialogViewBrowserTest, InvokeUi_Notice) { EXPECT_CALL( *mock_service(),
diff --git a/chrome/browser/ui/web_applications/draggable_region_host_impl.cc b/chrome/browser/ui/web_applications/draggable_region_host_impl.cc index dc55058b..c0ea619b 100644 --- a/chrome/browser/ui/web_applications/draggable_region_host_impl.cc +++ b/chrome/browser/ui/web_applications/draggable_region_host_impl.cc
@@ -12,7 +12,7 @@ #include "mojo/public/cpp/bindings/self_owned_receiver.h" DraggableRegionsHostImpl::DraggableRegionsHostImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<chrome::mojom::DraggableRegions> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -22,6 +22,7 @@ void DraggableRegionsHostImpl::CreateIfAllowed( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<chrome::mojom::DraggableRegions> receiver) { + CHECK(render_frame_host); auto* web_contents = content::WebContents::FromRenderFrameHost(render_frame_host); auto* browser = chrome::FindBrowserWithWebContents(web_contents); @@ -32,13 +33,13 @@ // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new DraggableRegionsHostImpl(render_frame_host, std::move(receiver)); + new DraggableRegionsHostImpl(*render_frame_host, std::move(receiver)); } void DraggableRegionsHostImpl::UpdateDraggableRegions( std::vector<chrome::mojom::DraggableRegionPtr> draggable_region) { auto* web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host()); + content::WebContents::FromRenderFrameHost(&render_frame_host()); auto* browser = chrome::FindBrowserWithWebContents(web_contents); // When a WebApp browser's WebContents is reparented to a tabbed browser, a // draggable regions update may race with the reparenting logic.
diff --git a/chrome/browser/ui/web_applications/draggable_region_host_impl.h b/chrome/browser/ui/web_applications/draggable_region_host_impl.h index 93e5049..6cc74cf 100644 --- a/chrome/browser/ui/web_applications/draggable_region_host_impl.h +++ b/chrome/browser/ui/web_applications/draggable_region_host_impl.h
@@ -31,7 +31,7 @@ private: DraggableRegionsHostImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<chrome::mojom::DraggableRegions> receiver); };
diff --git a/chrome/browser/ui/web_applications/sub_apps_service_impl.cc b/chrome/browser/ui/web_applications/sub_apps_service_impl.cc index d65c6fb1..3c75afd 100644 --- a/chrome/browser/ui/web_applications/sub_apps_service_impl.cc +++ b/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
@@ -58,15 +58,15 @@ return subapps; } -WebAppProvider* GetWebAppProvider(content::RenderFrameHost* render_frame_host) { +WebAppProvider* GetWebAppProvider(content::RenderFrameHost& render_frame_host) { auto* const initiator_web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host); + content::WebContents::FromRenderFrameHost(&render_frame_host); return web_app::WebAppProvider::GetForWebContents(initiator_web_contents); } absl::optional<AppId> GetAppIdForLastCommittedURL( - content::RenderFrameHost* render_frame_host) { - GURL parent_url = render_frame_host->GetLastCommittedURL(); + content::RenderFrameHost& render_frame_host) { + GURL parent_url = render_frame_host.GetLastCommittedURL(); WebAppProvider* provider = GetWebAppProvider(render_frame_host); DCHECK(provider); WebAppRegistrar& web_app_registrar = provider->registrar(); @@ -91,7 +91,7 @@ } // namespace SubAppsServiceImpl::SubAppsServiceImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::SubAppsService> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -101,6 +101,7 @@ void SubAppsServiceImpl::CreateIfAllowed( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::SubAppsService> receiver) { + CHECK(render_frame_host); // This class is created only on the primary main frame (this excludes // fenced frames and prerendered pages). DCHECK(render_frame_host->IsInPrimaryMainFrame()); @@ -114,7 +115,7 @@ // The object is bound to the lifetime of `render_frame_host` and the mojo // connection. See DocumentService for details. - new SubAppsServiceImpl(render_frame_host, std::move(receiver)); + new SubAppsServiceImpl(*render_frame_host, std::move(receiver)); } void SubAppsServiceImpl::Add( @@ -141,7 +142,7 @@ return; } - const GURL& parent_app_url = render_frame_host()->GetLastCommittedURL(); + const GURL& parent_app_url = render_frame_host().GetLastCommittedURL(); // Check that each sub app's install url has the same origin as the parent // app and that the unhashed app id is a valid URL.
diff --git a/chrome/browser/ui/web_applications/sub_apps_service_impl.h b/chrome/browser/ui/web_applications/sub_apps_service_impl.h index 21543b17..5364a62 100644 --- a/chrome/browser/ui/web_applications/sub_apps_service_impl.h +++ b/chrome/browser/ui/web_applications/sub_apps_service_impl.h
@@ -38,7 +38,7 @@ private: SubAppsServiceImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::SubAppsService> receiver); base::WeakPtrFactory<SubAppsServiceImpl> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_handler.cc b/chrome/browser/ui/webui/settings/ash/search/search_handler.cc index db505da..889a416 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_handler.cc +++ b/chrome/browser/ui/webui/settings/ash/search/search_handler.cc
@@ -13,7 +13,7 @@ #include "chrome/browser/ui/webui/settings/chromeos/hierarchy.h" #include "chrome/browser/ui/webui/settings/chromeos/os_settings_sections.h" #include "chrome/grit/generated_resources.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "ui/base/l10n/l10n_util.h" namespace chromeos {
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_handler.h b/chrome/browser/ui/webui/settings/ash/search/search_handler.h index 11b11c1..fd7722d7 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_handler.h +++ b/chrome/browser/ui/webui/settings/ash/search/search_handler.h
@@ -10,8 +10,8 @@ #include "base/gtest_prod_util.h" #include "chrome/browser/ui/webui/settings/ash/search/search.mojom.h" #include "chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver_set.h"
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_handler_unittest.cc b/chrome/browser/ui/webui/settings/ash/search/search_handler_unittest.cc index d2bfd1e..39215dd7 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_handler_unittest.cc +++ b/chrome/browser/ui/webui/settings/ash/search/search_handler_unittest.cc
@@ -13,7 +13,7 @@ #include "chrome/browser/ui/webui/settings/chromeos/fake_hierarchy.h" #include "chrome/browser/ui/webui/settings/chromeos/fake_os_settings_sections.h" #include "chrome/grit/generated_resources.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "mojo/public/cpp/bindings/remote.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.cc b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.cc index 6e02532..44c862d 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.cc +++ b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.cc
@@ -11,7 +11,7 @@ #include "base/strings/string_number_conversions.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/ui/webui/settings/ash/search/search_concept.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "ui/base/l10n/l10n_util.h" namespace chromeos {
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h index 8d519f0..4c8568e 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h +++ b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h
@@ -13,8 +13,8 @@ #include "base/observer_list.h" #include "base/observer_list_types.h" #include "chrome/browser/ui/webui/settings/chromeos/os_settings_section.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "mojo/public/cpp/bindings/remote.h" namespace chromeos {
diff --git a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry_unittest.cc b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry_unittest.cc index bd4e862..bb47722b 100644 --- a/chrome/browser/ui/webui/settings/ash/search/search_tag_registry_unittest.cc +++ b/chrome/browser/ui/webui/settings/ash/search/search_tag_registry_unittest.cc
@@ -10,7 +10,7 @@ #include "chrome/browser/ui/webui/settings/ash/search/search_concept.h" #include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom.h" #include "chrome/grit/generated_resources.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos {
diff --git a/chrome/browser/ui/webui/settings/chromeos/multidevice_section_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/multidevice_section_unittest.cc index 72cfd259..48a481d 100644 --- a/chrome/browser/ui/webui/settings/chromeos/multidevice_section_unittest.cc +++ b/chrome/browser/ui/webui/settings/chromeos/multidevice_section_unittest.cc
@@ -17,7 +17,7 @@ #include "chrome/browser/ui/webui/settings/ash/search/search_tag_registry.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile_manager.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h" #include "content/public/browser/web_ui_data_source.h"
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc index e705b2c..2cd73306 100644 --- a/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc +++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_factory.cc
@@ -19,7 +19,7 @@ #include "chrome/browser/sync/sync_service_factory.h" #include "chrome/browser/ui/app_list/arc/arc_app_list_prefs_factory.h" #include "chrome/browser/ui/webui/settings/chromeos/os_settings_manager.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" namespace chromeos {
diff --git a/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc b/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc index ef1a073..01ca9f23 100644 --- a/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc +++ b/chrome/browser/ui/webui/settings/chromeos/os_settings_manager_unittest.cc
@@ -26,9 +26,9 @@ #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" -#include "chromeos/components/local_search_service/search_metrics_reporter.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/web_applications/daily_metrics_helper.cc b/chrome/browser/web_applications/daily_metrics_helper.cc index a5fb112..ec40936 100644 --- a/chrome/browser/web_applications/daily_metrics_helper.cc +++ b/chrome/browser/web_applications/daily_metrics_helper.cc
@@ -38,7 +38,8 @@ static void Emit(const DailyInteraction& record) { DCHECK(record.start_url.is_valid()); ukm::SourceId source_id = - ukm::UkmRecorder::GetSourceIdForDesktopWebAppStartUrl(record.start_url); + ukm::UkmRecorder::GetSourceIdForDesktopWebAppStartUrl( + base::PassKey<DesktopWebAppUkmRecorder>(), record.start_url); ukm::builders::WebApp_DailyInteraction builder(source_id); builder.SetUsed(true) .SetInstalled(record.installed)
diff --git a/chrome/browser/webshare/share_service_impl.cc b/chrome/browser/webshare/share_service_impl.cc index 11eaeb18..1443f79 100644 --- a/chrome/browser/webshare/share_service_impl.cc +++ b/chrome/browser/webshare/share_service_impl.cc
@@ -35,14 +35,14 @@ // //components/browser_ui/webshare/android/java/src/org/chromium/components/browser_ui/webshare/ShareServiceImpl.java ShareServiceImpl::ShareServiceImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::ShareService> receiver) : content::DocumentService<blink::mojom::ShareService>(render_frame_host, std::move(receiver)) #if BUILDFLAG(IS_CHROMEOS) , sharesheet_client_( - content::WebContents::FromRenderFrameHost(render_frame_host)) + content::WebContents::FromRenderFrameHost(&render_frame_host)) #endif { DCHECK(base::FeatureList::IsEnabled(features::kWebShare)); @@ -54,7 +54,7 @@ void ShareServiceImpl::Create( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::ShareService> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); if (render_frame_host->IsNestedWithinFencedFrame()) { // The renderer should have checked and disallowed the request for fenced // frames in NavigatorShare and thrown a DOMException. Ignore the request @@ -64,7 +64,7 @@ return; } - new ShareServiceImpl(render_frame_host, std::move(receiver)); + new ShareServiceImpl(*render_frame_host, std::move(receiver)); } // static @@ -169,7 +169,7 @@ UMA_HISTOGRAM_ENUMERATION(kWebShareApiCountMetric, WebShareMethod::kShare); content::WebContents* const web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host()); + content::WebContents::FromRenderFrameHost(&render_frame_host()); if (!web_contents) { VLOG(1) << "Cannot share after navigating away"; std::move(callback).Run(blink::mojom::ShareError::PERMISSION_DENIED); @@ -239,7 +239,7 @@ safe_browsing_request_.reset(); content::WebContents* const web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host()); + content::WebContents::FromRenderFrameHost(&render_frame_host()); if (!web_contents) { VLOG(1) << "Cannot share after navigating away"; std::move(callback).Run(blink::mojom::ShareError::PERMISSION_DENIED);
diff --git a/chrome/browser/webshare/share_service_impl.h b/chrome/browser/webshare/share_service_impl.h index 5bd0e37..59d702d 100644 --- a/chrome/browser/webshare/share_service_impl.h +++ b/chrome/browser/webshare/share_service_impl.h
@@ -64,7 +64,7 @@ bool is_safe); private: - ShareServiceImpl(content::RenderFrameHost* render_frame_host, + ShareServiceImpl(content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::ShareService> receiver); ~ShareServiceImpl() override;
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index f5935f522..ac68059 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1657173309-151e17222528c5d193c68d1f0acff47cf0151ae5.profdata +chrome-linux-main-1657195044-3c86484fed2a862220df0aeccac563af5c3b0382.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 5bff0e14..a2f042c 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1657151967-bfdd976142579f1c5cc7d72cc00e6d630b9a6e35.profdata +chrome-mac-arm-main-1657173309-cc6b6d1fb1c12e1b6efa16ace4cc6d27897ae21a.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 92bab40..954120c 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1657162680-c0b5b60de71f8bdee7a5099b497d852bee231336.profdata +chrome-win64-main-1657184339-1d54fb4a6688e24248bedce2767937a3d6973927.profdata
diff --git a/chrome/common/chromeos/extensions/chromeos_system_extension_info.cc b/chrome/common/chromeos/extensions/chromeos_system_extension_info.cc index 47aa5fe..c6a68a61 100644 --- a/chrome/common/chromeos/extensions/chromeos_system_extension_info.cc +++ b/chrome/common/chromeos/extensions/chromeos_system_extension_info.cc
@@ -10,6 +10,7 @@ #include "base/check.h" #include "base/command_line.h" +#include "base/containers/flat_set.h" namespace chromeos { @@ -35,12 +36,13 @@ const ChromeOSSystemExtensionInfos& getMap() { static const ChromeOSSystemExtensionInfos kExtensionIdToExtensionInfoMap{ {/*extension_id=*/"gogonhoemckpdpadfnjnpgbjpbjnodgc", - {/*manufacturer=*/"HP", /*pwa_origin=*/"*://www.google.com/*"}}, + {/*manufacturers=*/{"HP", "ASUS"}, + /*pwa_origin=*/"*://www.google.com/*"}}, {/*extension_id=*/"alnedpmllcfpgldkagbfbjkloonjlfjb", - {/*manufacturer=*/"HP", + {/*manufacturers=*/{"HP"}, /*pwa_origin=*/"https://hpcs-appschr.hpcloud.hp.com/*"}}, {/*extension_id=*/"hdnhcpcfohaeangjpkcjkgmgmjanbmeo", - {/*manufacturer=*/"ASUS", + {/*manufacturers=*/{"ASUS"}, /*pwa_origin=*/"https://dlcdnccls.asus.com/*"}}}; return kExtensionIdToExtensionInfoMap; @@ -49,9 +51,9 @@ } // namespace ChromeOSSystemExtensionInfo::ChromeOSSystemExtensionInfo( - const std::string& manufacturer, + base::flat_set<std::string> manufacturers, const std::string& pwa_origin) - : manufacturer(manufacturer), pwa_origin(pwa_origin) {} + : manufacturers(std::move(manufacturers)), pwa_origin(pwa_origin) {} ChromeOSSystemExtensionInfo::ChromeOSSystemExtensionInfo( const ChromeOSSystemExtensionInfo& other) = default; ChromeOSSystemExtensionInfo::~ChromeOSSystemExtensionInfo() = default; @@ -75,8 +77,8 @@ if (command_line->HasSwitch( switches::kTelemetryExtensionManufacturerOverrideForTesting)) { - info.manufacturer = command_line->GetSwitchValueASCII( - switches::kTelemetryExtensionManufacturerOverrideForTesting); + info.manufacturers = {command_line->GetSwitchValueASCII( + switches::kTelemetryExtensionManufacturerOverrideForTesting)}; } return info;
diff --git a/chrome/common/chromeos/extensions/chromeos_system_extension_info.h b/chrome/common/chromeos/extensions/chromeos_system_extension_info.h index 2731f49..ddf27f49 100644 --- a/chrome/common/chromeos/extensions/chromeos_system_extension_info.h +++ b/chrome/common/chromeos/extensions/chromeos_system_extension_info.h
@@ -8,6 +8,8 @@ #include <cstddef> #include <string> +#include "base/containers/flat_set.h" + namespace chromeos { namespace switches { @@ -18,12 +20,12 @@ } // namespace switches struct ChromeOSSystemExtensionInfo { - ChromeOSSystemExtensionInfo(const std::string& manufacturer, + ChromeOSSystemExtensionInfo(base::flat_set<std::string> manufacturers, const std::string& pwa_origin); ChromeOSSystemExtensionInfo(const ChromeOSSystemExtensionInfo& other); ~ChromeOSSystemExtensionInfo(); - std::string manufacturer; + base::flat_set<std::string> manufacturers; std::string pwa_origin; };
diff --git a/chrome/common/chromeos/extensions/chromeos_system_extension_info_unittest.cc b/chrome/common/chromeos/extensions/chromeos_system_extension_info_unittest.cc index 3f4ff016..fe4b0cc 100644 --- a/chrome/common/chromeos/extensions/chromeos_system_extension_info_unittest.cc +++ b/chrome/common/chromeos/extensions/chromeos_system_extension_info_unittest.cc
@@ -5,6 +5,7 @@ #include "chrome/common/chromeos/extensions/chromeos_system_extension_info.h" #include "base/command_line.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" TEST(ChromeOSSystemExtensionInfo, CheckAllowlistedExtensionsSize) { @@ -17,7 +18,8 @@ const auto& extension_info = chromeos::GetChromeOSExtensionInfoForId(google_extension_id); - EXPECT_EQ("HP", extension_info.manufacturer); + EXPECT_THAT(extension_info.manufacturers, + testing::UnorderedElementsAre("ASUS", "HP")); EXPECT_EQ("*://www.google.com/*", extension_info.pwa_origin); } @@ -27,7 +29,8 @@ const auto extension_info = chromeos::GetChromeOSExtensionInfoForId(hp_extension_id); - EXPECT_EQ("HP", extension_info.manufacturer); + EXPECT_THAT(extension_info.manufacturers, + testing::UnorderedElementsAre("HP")); EXPECT_EQ("https://hpcs-appschr.hpcloud.hp.com/*", extension_info.pwa_origin); } @@ -37,7 +40,8 @@ const auto extension_info = chromeos::GetChromeOSExtensionInfoForId(asus_extension_id); - EXPECT_EQ("ASUS", extension_info.manufacturer); + EXPECT_THAT(extension_info.manufacturers, + testing::UnorderedElementsAre("ASUS")); EXPECT_EQ("https://dlcdnccls.asus.com/*", extension_info.pwa_origin); } @@ -51,13 +55,15 @@ const auto google_extension_info = chromeos::GetChromeOSExtensionInfoForId( "gogonhoemckpdpadfnjnpgbjpbjnodgc"); EXPECT_EQ("*://www.google.com/*", google_extension_info.pwa_origin); - EXPECT_EQ(kManufacturerOverride, google_extension_info.manufacturer); + EXPECT_THAT(google_extension_info.manufacturers, + testing::UnorderedElementsAre(kManufacturerOverride)); const auto hp_extension_info = chromeos::GetChromeOSExtensionInfoForId( "alnedpmllcfpgldkagbfbjkloonjlfjb"); EXPECT_EQ("https://hpcs-appschr.hpcloud.hp.com/*", hp_extension_info.pwa_origin); - EXPECT_EQ(kManufacturerOverride, hp_extension_info.manufacturer); + EXPECT_THAT(hp_extension_info.manufacturers, + testing::UnorderedElementsAre(kManufacturerOverride)); } TEST(ChromeOSSystemExtensionInfo, PwaOriginOverride) { @@ -70,10 +76,12 @@ const auto google_extension_info = chromeos::GetChromeOSExtensionInfoForId( "gogonhoemckpdpadfnjnpgbjpbjnodgc"); EXPECT_EQ(kPwaOriginOverride, google_extension_info.pwa_origin); - EXPECT_EQ("HP", google_extension_info.manufacturer); + EXPECT_THAT(google_extension_info.manufacturers, + testing::UnorderedElementsAre("HP", "ASUS")); const auto hp_extension_info = chromeos::GetChromeOSExtensionInfoForId( "alnedpmllcfpgldkagbfbjkloonjlfjb"); EXPECT_EQ(kPwaOriginOverride, hp_extension_info.pwa_origin); - EXPECT_EQ("HP", hp_extension_info.manufacturer); + EXPECT_THAT(hp_extension_info.manufacturers, + testing::UnorderedElementsAre("HP")); }
diff --git a/chrome/common/features.gni b/chrome/common/features.gni index b90a12f5..07378bea 100644 --- a/chrome/common/features.gni +++ b/chrome/common/features.gni
@@ -66,10 +66,6 @@ # Android stores them separately on the Java side. enable_session_service = !is_android && !is_castos - # Enables supervision for Family Link users. - # Supervision is only supported on Chrome OS and Android. - enable_supervised_users = is_chromeos || is_android - # Enables usage of the system-provided notification center. enable_system_notifications = is_android || is_mac || is_win || (is_linux && use_dbus) || is_chromeos @@ -83,6 +79,10 @@ # optimize_webui was moved to ui/base/ui_features.gni } +# Enables supervision for Family Link users. +# Supervision is only supported on Chrome OS and Android. +enable_supervised_users = is_chromeos || is_android + # Use brlapi from brltty for braille display support. use_brlapi = is_chromeos_ash
diff --git a/chrome/installer/gcapi_mac/BUILD.gn b/chrome/installer/gcapi_mac/BUILD.gn index 218a4039..5265fef 100644 --- a/chrome/installer/gcapi_mac/BUILD.gn +++ b/chrome/installer/gcapi_mac/BUILD.gn
@@ -15,13 +15,13 @@ cflags = [ "-isysroot", rebase_path(sysroot, root_build_dir), - "-mmacosx-version-min=$min_version", + "-mmacos-version-min=$min_version", "-stdlib=libc++", # TODO(thakis): Remove once min_version >= 10.9. ] ldflags = [ "-isysroot", rebase_path(sysroot, root_build_dir), - "-mmacosx-version-min=$min_version", + "-mmacos-version-min=$min_version", "-stdlib=libc++", # TODO(thakis): Remove once min_version >= 10.9. ] } @@ -36,7 +36,7 @@ frameworks = [ "Cocoa.framework" ] - # Don't use runtime_library, to be able to pick a custom mmacosx-version-min. + # Don't use runtime_library, to be able to pick a custom mmacos-version-min. configs -= [ "//build/config/compiler:runtime_library" ] configs += [ ":gcapi_config" ] @@ -48,7 +48,7 @@ deps = [ ":gcapi_lib" ] - # Don't use runtime_library, to be able to pick a custom mmacosx-version-min. + # Don't use runtime_library, to be able to pick a custom mmacos-version-min. configs -= [ "//build/config/compiler:runtime_library" ] configs += [ ":gcapi_config" ]
diff --git a/chrome/services/system_signals/win/BUILD.gn b/chrome/services/system_signals/win/BUILD.gn index a97ae89..f1e4005 100644 --- a/chrome/services/system_signals/win/BUILD.gn +++ b/chrome/services/system_signals/win/BUILD.gn
@@ -7,7 +7,11 @@ source_set("win") { public = [ "win_system_signals_service.h" ] - sources = [ "win_system_signals_service.cc" ] + sources = [ + "metrics_utils.cc", + "metrics_utils.h", + "win_system_signals_service.cc", + ] public_deps = [ "//components/device_signals/core/common/mojom",
diff --git a/chrome/services/system_signals/win/metrics_utils.cc b/chrome/services/system_signals/win/metrics_utils.cc new file mode 100644 index 0000000..93d463c --- /dev/null +++ b/chrome/services/system_signals/win/metrics_utils.cc
@@ -0,0 +1,78 @@ +// Copyright 2022 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/services/system_signals/win/metrics_utils.h" + +#include <cmath> + +#include "base/metrics/histogram_functions.h" +#include "base/strings/strcat.h" +#include "base/strings/string_piece.h" +#include "base/win/wmi.h" +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace system_signals { + +namespace { + +// Returns a percentage number representing the error rate when given the number +// of successfully parsed items as `items_count`, and the number of items that +// were not successfully parsed as `errors_count`. +int CalculateErrorRate(size_t items_count, size_t errors_count) { + auto total_count = items_count + errors_count; + if (total_count == 0) { + return 0; + } + + return std::round(100.0 * errors_count / total_count); +} + +template <typename T, typename U> +void LogResponse(const base::StringPiece& histogram_variant, + size_t items_count, + const absl::optional<T>& query_error, + const std::vector<U>& parsing_errors) { + static constexpr char kCollectionHistogramPrefix[] = + "Enterprise.SystemSignals.Collection"; + if (query_error) { + base::UmaHistogramEnumeration( + base::StrCat( + {kCollectionHistogramPrefix, histogram_variant, ".QueryError"}), + query_error.value()); + return; + } + + static constexpr char kParsingError[] = ".ParsingError"; + if (!parsing_errors.empty()) { + auto parsing_error_histogram = base::StrCat( + {kCollectionHistogramPrefix, histogram_variant, kParsingError}); + for (auto error : parsing_errors) { + base::UmaHistogramEnumeration(parsing_error_histogram, error); + } + } + + base::UmaHistogramPercentage( + base::StrCat({kCollectionHistogramPrefix, histogram_variant, + kParsingError, ".Rate"}), + CalculateErrorRate(items_count, parsing_errors.size())); +} + +} // namespace + +void LogWscAvResponse(const device_signals::WscAvProductsResponse& response) { + LogResponse(".WSC.AntiVirus", response.av_products.size(), + response.query_error, response.parsing_errors); +} + +void LogWmiAvResponse(const device_signals::WmiAvProductsResponse& response) { + LogResponse(".WMI.AntiVirus", response.av_products.size(), + response.query_error, response.parsing_errors); +} + +void LogWmiHotfixResponse(const device_signals::WmiHotfixesResponse& response) { + LogResponse(".WMI.Hotfixes", response.hotfixes.size(), response.query_error, + response.parsing_errors); +} + +} // namespace system_signals
diff --git a/chrome/services/system_signals/win/metrics_utils.h b/chrome/services/system_signals/win/metrics_utils.h new file mode 100644 index 0000000..942c5f11e --- /dev/null +++ b/chrome/services/system_signals/win/metrics_utils.h
@@ -0,0 +1,27 @@ +// Copyright 2022 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_SERVICES_SYSTEM_SIGNALS_WIN_METRICS_UTILS_H_ +#define CHROME_SERVICES_SYSTEM_SIGNALS_WIN_METRICS_UTILS_H_ + +#include "components/device_signals/core/system_signals/win/wmi_client.h" +#include "components/device_signals/core/system_signals/win/wsc_client.h" + +namespace system_signals { + +// Logs UMA metrics related to the number of items and errors contained in +// `response`. +void LogWscAvResponse(const device_signals::WscAvProductsResponse& response); + +// Logs UMA metrics related to the number of items and errors contained in +// `response`. +void LogWmiAvResponse(const device_signals::WmiAvProductsResponse& response); + +// Logs UMA metrics related to the number of items and errors contained in +// `response`. +void LogWmiHotfixResponse(const device_signals::WmiHotfixesResponse& response); + +} // namespace system_signals + +#endif // CHROME_SERVICES_SYSTEM_SIGNALS_WIN_METRICS_UTILS_H_
diff --git a/chrome/services/system_signals/win/win_system_signals_service.cc b/chrome/services/system_signals/win/win_system_signals_service.cc index 89f7c59..1df7baf 100644 --- a/chrome/services/system_signals/win/win_system_signals_service.cc +++ b/chrome/services/system_signals/win/win_system_signals_service.cc
@@ -5,6 +5,7 @@ #include "chrome/services/system_signals/win/win_system_signals_service.h" #include "base/win/windows_version.h" +#include "chrome/services/system_signals/win/metrics_utils.h" #include "components/device_signals/core/system_signals/win/wmi_client.h" #include "components/device_signals/core/system_signals/win/wmi_client_impl.h" #include "components/device_signals/core/system_signals/win/wsc_client.h" @@ -50,13 +51,13 @@ // WSC is only supported on Win8+. auto response = wsc_client_->GetAntiVirusProducts(); - // TODO(b/229737923): Collect metrics. + LogWscAvResponse(response); av_products = std::move(response.av_products); } else { // Fallback to an undocumented WMI table on Win7 and earlier. auto response = wmi_client_->GetAntiVirusProducts(); - // TODO(b/229737923): Collect metrics. + LogWmiAvResponse(response); av_products = std::move(response.av_products); } @@ -67,7 +68,7 @@ GetHotfixSignalsCallback callback) { auto response = wmi_client_->GetInstalledHotfixes(); - // TODO(b/229737923): Collect metrics. + LogWmiHotfixResponse(response); std::move(callback).Run(std::move(response.hotfixes)); }
diff --git a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc index a520081..bac1ff24 100644 --- a/chrome/services/system_signals/win/win_system_signals_service_unittest.cc +++ b/chrome/services/system_signals/win/win_system_signals_service_unittest.cc
@@ -7,6 +7,7 @@ #include <array> #include <memory> +#include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_os_info_override_win.h" #include "base/test/task_environment.h" #include "base/test/test_future.h" @@ -43,6 +44,7 @@ } base::test::TaskEnvironment task_environment_; + base::HistogramTester histogram_tester_; absl::optional<base::test::ScopedOSInfoOverride> os_info_override_; MockWmiClient* wmi_client_; @@ -79,6 +81,7 @@ base::test::ScopedOSInfoOverride::Type::kWin11Pro, }; + int counter = 0; for (const auto win_version : win_versions) { os_info_override_.emplace(win_version); @@ -101,9 +104,92 @@ EXPECT_EQ(av_products.size(), fake_response.av_products.size()); EXPECT_EQ(av_products[0].product_id, fake_response.av_products[0].product_id); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError.Rate", + /*error_rate=*/0, ++counter); } } +// Tests the behavior when WSC returns no items nor error. +TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Wsc_Empty) { + os_info_override_.emplace(base::test::ScopedOSInfoOverride::Type::kWin10Pro); + + device_signals::WscAvProductsResponse fake_response; + + EXPECT_CALL(*wsc_client_, GetAntiVirusProducts()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::AvProduct>&> future; + win_system_signals_service_->GetAntiVirusSignals(future.GetCallback()); + + const auto& av_products = future.Get(); + EXPECT_TRUE(av_products.empty()); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError.Rate", + /*error_rate=*/0, 1); +} + +// Tests the behavior when a Query error is returned from querying WSC. +TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Wsc_QueryError) { + os_info_override_.emplace(base::test::ScopedOSInfoOverride::Type::kWin10Pro); + + device_signals::WscAvProductsResponse fake_response; + fake_response.query_error = + device_signals::WscQueryError::kFailedToCreateInstance; + + EXPECT_CALL(*wsc_client_, GetAntiVirusProducts()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::AvProduct>&> future; + win_system_signals_service_->GetAntiVirusSignals(future.GetCallback()); + + const auto& av_products = future.Get(); + EXPECT_TRUE(av_products.empty()); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.QueryError", + fake_response.query_error.value(), 1); +} + +// Tests the behavior when parsing errors are returned from querying WSC. +TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Wsc_MixedParsingError) { + os_info_override_.emplace(base::test::ScopedOSInfoOverride::Type::kWin10Pro); + device_signals::AvProduct fake_av_product; + fake_av_product.display_name = "some display name"; + fake_av_product.product_id = "some product id"; + fake_av_product.state = device_signals::AvProductState::kOn; + + // Adding 2 success and 2 failures, so the error rate should be 50%. + device_signals::WscAvProductsResponse fake_response; + fake_response.av_products.push_back(fake_av_product); + fake_response.av_products.push_back(fake_av_product); + fake_response.parsing_errors.push_back( + device_signals::WscParsingError::kFailedToGetState); + fake_response.parsing_errors.push_back( + device_signals::WscParsingError::kStateInvalid); + + EXPECT_CALL(*wsc_client_, GetAntiVirusProducts()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::AvProduct>&> future; + win_system_signals_service_->GetAntiVirusSignals(future.GetCallback()); + + const auto& av_products = future.Get(); + EXPECT_EQ(av_products.size(), fake_response.av_products.size()); + + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError", + device_signals::WscParsingError::kFailedToGetState, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError", + device_signals::WscParsingError::kStateInvalid, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError.Rate", + /*error_rate=*/50, 1); +} + // Tests that AV products are retrieved via WMI on Win7. TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Win7_Success) { device_signals::AvProduct fake_av_product; @@ -129,6 +215,99 @@ const auto& av_products = future.Get(); EXPECT_EQ(av_products.size(), fake_response.av_products.size()); EXPECT_EQ(av_products[0].product_id, fake_response.av_products[0].product_id); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WMI.AntiVirus.ParsingError.Rate", + /*error_rate=*/0, 1); +} + +// Tests when a query error occurs when querying AVs from WMI on Win7. +TEST_F(WinSystemSignalsServiceTest, GetAntiVirusSignals_Win7_QueryError) { + device_signals::WmiAvProductsResponse fake_response; + fake_response.query_error = base::win::WmiError::kFailedToCreateInstance; + + EXPECT_CALL(*wmi_client_, GetAntiVirusProducts()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::AvProduct>&> future; + + // Override OS version after initializing `future` to prevent running into + // a DCHECK in ScopedWinrtInitializer. + os_info_override_.emplace( + base::test::ScopedOSInfoOverride::Type::kWin7ProSP1); + + win_system_signals_service_->GetAntiVirusSignals(future.GetCallback()); + + const auto& av_products = future.Get(); + EXPECT_TRUE(av_products.empty()); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WMI.AntiVirus.QueryError", + fake_response.query_error.value(), 1); +} + +// Tests when items and parsing error are returned when querying AVs from WMI on +// Win7. +TEST_F(WinSystemSignalsServiceTest, + GetAntiVirusSignals_Win7_MixedParsingErrors) { + device_signals::AvProduct fake_av_product; + fake_av_product.display_name = "some display name"; + fake_av_product.product_id = "some product id"; + fake_av_product.state = device_signals::AvProductState::kOn; + + // Adding 2 success and 2 failures, so the error rate should be 50%. + device_signals::WmiAvProductsResponse fake_response; + fake_response.av_products.push_back(fake_av_product); + fake_response.av_products.push_back(fake_av_product); + fake_response.parsing_errors.push_back( + device_signals::WmiParsingError::kFailedToGetName); + fake_response.parsing_errors.push_back( + device_signals::WmiParsingError::kStateInvalid); + + EXPECT_CALL(*wmi_client_, GetAntiVirusProducts()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::AvProduct>&> future; + + // Override OS version after initializing `future` to prevent running into + // a DCHECK in ScopedWinrtInitializer. + os_info_override_.emplace( + base::test::ScopedOSInfoOverride::Type::kWin7ProSP1); + + win_system_signals_service_->GetAntiVirusSignals(future.GetCallback()); + + const auto& av_products = future.Get(); + EXPECT_EQ(av_products.size(), fake_response.av_products.size()); + + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.AntiVirus.ParsingError", + device_signals::WmiParsingError::kFailedToGetName, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.AntiVirus.ParsingError", + device_signals::WmiParsingError::kStateInvalid, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.AntiVirus.ParsingError.Rate", + /*error_rate=*/50, 1); +} + +// Tests that Hotfix information is retrieved via WMI. +TEST_F(WinSystemSignalsServiceTest, GetHotfixSignals_Empty) { + device_signals::InstalledHotfix fake_hotfix{"some hotfix id"}; + device_signals::WmiHotfixesResponse fake_response; + + EXPECT_CALL(*wmi_client_, GetInstalledHotfixes()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::InstalledHotfix>&> + future; + win_system_signals_service_->GetHotfixSignals(future.GetCallback()); + + const auto& hotfixes_response = future.Get(); + EXPECT_TRUE(hotfixes_response.empty()); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.ParsingError.Rate", + /*error_rate=*/0, 1); } // Tests that Hotfix information is retrieved via WMI. @@ -148,6 +327,65 @@ EXPECT_EQ(hotfixes_response.size(), fake_response.hotfixes.size()); EXPECT_EQ(hotfixes_response[0].hotfix_id, fake_response.hotfixes[0].hotfix_id); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.ParsingError.Rate", + /*error_rate=*/0, 1); +} + +// Tests that a query error is returned when querying Hotfixes via WMI. +TEST_F(WinSystemSignalsServiceTest, GetHotfixSignals_QueryError) { + device_signals::WmiHotfixesResponse fake_response; + fake_response.query_error = base::win::WmiError::kFailedToCreateInstance; + + EXPECT_CALL(*wmi_client_, GetInstalledHotfixes()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::InstalledHotfix>&> + future; + win_system_signals_service_->GetHotfixSignals(future.GetCallback()); + + const auto& hotfixes_response = future.Get(); + EXPECT_TRUE(hotfixes_response.empty()); + + histogram_tester_.ExpectUniqueSample( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.QueryError", + fake_response.query_error.value(), 1); +} + +// Tests that items and parsing errors are returned when querying Hotfixes via +// WMI. +TEST_F(WinSystemSignalsServiceTest, GetHotfixSignals_MixedParsingErrors) { + device_signals::InstalledHotfix fake_hotfix{"some hotfix id"}; + + // Adding 2 success and 2 failures, so the error rate should be 50%. + device_signals::WmiHotfixesResponse fake_response; + fake_response.hotfixes.push_back(fake_hotfix); + fake_response.hotfixes.push_back(fake_hotfix); + fake_response.parsing_errors.push_back( + device_signals::WmiParsingError::kFailedToGetState); + fake_response.parsing_errors.push_back( + device_signals::WmiParsingError::kFailedToGetId); + + EXPECT_CALL(*wmi_client_, GetInstalledHotfixes()) + .WillOnce(Return(fake_response)); + + base::test::TestFuture<const std::vector<device_signals::InstalledHotfix>&> + future; + win_system_signals_service_->GetHotfixSignals(future.GetCallback()); + + const auto& hotfixes_response = future.Get(); + EXPECT_EQ(hotfixes_response.size(), fake_response.hotfixes.size()); + + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.ParsingError", + device_signals::WmiParsingError::kFailedToGetState, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.ParsingError", + device_signals::WmiParsingError::kFailedToGetId, 1); + histogram_tester_.ExpectBucketCount( + "Enterprise.SystemSignals.Collection.WMI.Hotfixes.ParsingError.Rate", + /*error_rate=*/50, 1); } } // namespace system_signals
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index dfcdd86..e74c0a55 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -3621,7 +3621,6 @@ "../browser/ash/login/password_change_browsertest.cc", "../browser/ash/login/proxy_auth_dialog_browsertest.cc", "../browser/ash/login/quick_unlock/pin_migration_browsertest.cc", - "../browser/ash/login/reporting/login_logout_reporter_browsertest.cc", "../browser/ash/login/reset_browsertest.cc", "../browser/ash/login/saml/fake_saml_idp_mixin.cc", "../browser/ash/login/saml/lockscreen_reauth_dialog_test_helper.cc",
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/background.js b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/background.js deleted file mode 100644 index 9fff5e7..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/background.js +++ /dev/null
@@ -1,67 +0,0 @@ -// Copyright 2022 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. - -let testServerPort = 0; -let matchedRuleInfos = []; -let expectedCallback = null; - -const onRuleMatchedDebugCallback = info => { - if (expectedCallback) - expectedCallback(info); -}; - -function navigateAndWaitForUrlMatch(navigatePath, waitPath) { - matchedRuleInfos = []; - const baseUrl = `http://a.test:${testServerPort}/extensions/api_test/` + - `declarative_net_request/prerendering/`; - const waitUrl = baseUrl + waitPath; - - return new Promise(resolve => { - expectedCallback = info => { - matchedRuleInfos.push(info); - if (info.request.url == waitUrl) - resolve(); - }; - chrome.tabs.update({ url: baseUrl + navigatePath }); - }); -} - -function setup() { - chrome.declarativeNetRequest.onRuleMatchedDebug.addListener( - onRuleMatchedDebugCallback); - // Wait for a round trip to ensure the listener is properly added in the - // browser process before initiating any requests. - chrome.test.waitForRoundTrip('msg', chrome.test.succeed); -} - -async function testBlockPrerendering() { - await navigateAndWaitForUrlMatch( - 'prerender_blocked_url.html', 'block_main'); - chrome.test.assertEq(1, matchedRuleInfos.length); - chrome.test.succeed(); -} - -async function testBlockSubframeRequestFromPrerenderedPage() { - await navigateAndWaitForUrlMatch( - 'prerender_allowed_url_with_iframes.html', 'block_sub'); - chrome.test.assertEq(1, matchedRuleInfos.length); - chrome.test.succeed(); -} - -async function testBlockImageRequestFromPrerenderedPage() { - await navigateAndWaitForUrlMatch( - 'prerender_allowed_url_with_image.html', 'block_image'); - chrome.test.assertEq(1, matchedRuleInfos.length); - chrome.test.succeed(); -} - -chrome.test.getConfig(async config => { - testServerPort = config.testServer.port; - chrome.test.runTests([ - setup, - testBlockPrerendering, - testBlockSubframeRequestFromPrerenderedPage, - testBlockImageRequestFromPrerenderedPage, - ]); -});
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/manifest.json b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/manifest.json deleted file mode 100644 index 87f1199790..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/manifest.json +++ /dev/null
@@ -1,25 +0,0 @@ -{ - "name": "Test extension", - "declarative_net_request": { - "rule_resources": [ - { - "id": "rules", - "path": "rules.json", - "enabled": true - } - ] - }, - "manifest_version": 2, - "permissions": [ - "declarativeNetRequest", - "declarativeNetRequestFeedback", - "tabs" - ], - "version": "1.0", - "background": { - "scripts": [ - "background.js" - ], - "persistent": false - } -}
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_iframes.html b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_iframes.html deleted file mode 100644 index f3760d0d..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_iframes.html +++ /dev/null
@@ -1,8 +0,0 @@ -<script type="speculationrules"> -{ - "prerender": [{ - "source": "list", - "urls": ["show_iframes.html"] - }] -} -</script>
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_image.html b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_image.html deleted file mode 100644 index 9c94a43..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_allowed_url_with_image.html +++ /dev/null
@@ -1,8 +0,0 @@ -<script type="speculationrules"> -{ - "prerender": [{ - "source": "list", - "urls": ["show_image.html"] - }] -} -</script>
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_blocked_url.html b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_blocked_url.html deleted file mode 100644 index cb3f839..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/prerender_blocked_url.html +++ /dev/null
@@ -1,8 +0,0 @@ -<script type="speculationrules"> -{ - "prerender": [{ - "source": "list", - "urls": ["block_main"] - }] -} -</script>
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/rules.json b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/rules.json deleted file mode 100644 index 340407a8..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/rules.json +++ /dev/null
@@ -1,42 +0,0 @@ -[ - { - "id": 1, - "priority": 1, - "condition": { - "urlFilter": "block_main", - "resourceTypes": [ - "main_frame" - ] - - }, - "action": { - "type": "block" - } - }, - { - "id": 2, - "priority": 1, - "condition": { - "urlFilter": "block_sub", - "resourceTypes": [ - "sub_frame" - ] - }, - "action": { - "type": "block" - } - }, - { - "id": 3, - "priority": 1, - "condition": { - "urlFilter": "block_image", - "resourceTypes": [ - "image" - ] - }, - "action": { - "type": "block" - } - } -]
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_iframes.html b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_iframes.html deleted file mode 100644 index 6d009c8..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_iframes.html +++ /dev/null
@@ -1,5 +0,0 @@ -<!-- should not be blocked --> -<iframe src="block_main"></iframe> - -<!-- should be blocked --> -<iframe src="block_sub"></iframe>
diff --git a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_image.html b/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_image.html deleted file mode 100644 index 71d8dcec..0000000 --- a/chrome/test/data/extensions/api_test/declarative_net_request/prerendering/show_image.html +++ /dev/null
@@ -1 +0,0 @@ -<img src="block_image">
diff --git a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts index 34fbf8f..1a3b099 100644 --- a/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts +++ b/chrome/test/data/webui/privacy_sandbox/privacy_sandbox_dialog_test.ts
@@ -36,6 +36,8 @@ suite('PrivacySandboxDialogConsent', function() { let page: PrivacySandboxDialogAppElement; let browserProxy: TestPrivacySandboxDialogBrowserProxy; + // TODO(olesiamarukhno): Add tests with more dialog sizes. + const defaultSize: [string, string] = ['500px', '500px']; function testClickButton(buttonSelector: string) { const actionButton = @@ -54,6 +56,12 @@ PrivacySandboxDialogBrowserProxy.setInstance(browserProxy); document.body.innerHTML = ''; + // Set a fixed size for the body to make the content area scrollable. + document.body.style.position = 'fixed'; + const [width, height]: [string, string] = defaultSize; + document.body.style.width = width; + document.body.style.height = height; + page = document.createElement('privacy-sandbox-dialog-app'); document.body.appendChild(page); @@ -96,10 +104,17 @@ const collapseElement = page.shadowRoot!.querySelector('iron-collapse'); const contentArea: HTMLElement|null = page.shadowRoot!.querySelector('#contentArea'); + const expandSection = page.shadowRoot!.querySelector('#expandSection'); let hasScrollbar = contentArea!.offsetHeight < contentArea!.scrollHeight; + // Set transition duration to 0 to save time in tests. + collapseElement!.style.setProperty( + '--iron-collapse-transition-duration', '0ms'); + assertFalse(collapseElement!.opened); assertEquals(contentArea!.classList.contains('can-scroll'), hasScrollbar); + const expandSectionTop = expandSection!.getBoundingClientRect().top; + assertEquals(contentArea!.scrollTop, 0); // After clicking on the collapse section, the content area expands and // becomes scrollable with a separator in the bottom. The collapse section // is opened and the native UI is notified about the action. @@ -111,6 +126,8 @@ openedAction, PrivacySandboxPromptAction.CONSENT_MORE_INFO_OPENED); assertTrue(collapseElement!.opened); assertTrue(contentArea!.classList.contains('can-scroll')); + await page.waitForScrollToEndForTesting(); + assertEquals(contentArea!.scrollTop, expandSectionTop); // Reset proxy in between button clicks. browserProxy.reset(); @@ -125,6 +142,8 @@ closedAction, PrivacySandboxPromptAction.CONSENT_MORE_INFO_CLOSED); assertFalse(collapseElement!.opened); assertEquals(contentArea!.classList.contains('can-scroll'), hasScrollbar); + await page.waitForScrollToEndForTesting(); + assertEquals(contentArea!.scrollTop, 0); }); test('escPressed', async function() {
diff --git a/chrome/test/payments/payment_request_test_controller_desktop.cc b/chrome/test/payments/payment_request_test_controller_desktop.cc index 1277beb..4e9bea9 100644 --- a/chrome/test/payments/payment_request_test_controller_desktop.cc +++ b/chrome/test/payments/payment_request_test_controller_desktop.cc
@@ -309,7 +309,7 @@ auto display_manager = delegate->GetDisplayManager()->GetWeakPtr(); // PaymentRequest is a DocumentService, whose lifetime is managed by the // RenderFrameHost passed in here. - new PaymentRequest(render_frame_host, std::move(delegate), + new PaymentRequest(*render_frame_host, std::move(delegate), std::move(display_manager), std::move(receiver), manager->transaction_mode(), observer_for_test); },
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn index 90d20c63..bcd7439e 100644 --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn
@@ -183,8 +183,8 @@ "//chrome/services/file_util", "//chrome/services/sharing", "//chromeos/ash/components/assistant:buildflags", - "//chromeos/components/local_search_service:local_search_service", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/services/tts", "//chromeos/services/tts/public/mojom", ]
diff --git a/chrome/utility/DEPS b/chrome/utility/DEPS index 77673e7c..2451385 100644 --- a/chrome/utility/DEPS +++ b/chrome/utility/DEPS
@@ -29,10 +29,10 @@ "+chrome/services/util_win/processor_metrics.h", "+chrome/services/util_win/public/mojom", "+chromeos/ash/components/assistant/buildflags.h", + "+chromeos/ash/components/local_search_service/local_search_service.h", + "+chromeos/ash/components/local_search_service/public/mojom", "+chromeos/ash/services/assistant", "+chromeos/ash/services/assistant/audio_decoder", - "+chromeos/components/local_search_service/local_search_service.h", - "+chromeos/components/local_search_service/public/mojom", "+chromeos/components/quick_answers/public", "+chromeos/services/libassistant/libassistant_service.h", "+chromeos/services/tts",
diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc index 8ba02bc..8c2ad3e 100644 --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc
@@ -118,8 +118,8 @@ #include "ash/services/recording/recording_service.h" #include "chrome/services/sharing/sharing_impl.h" #include "chromeos/ash/components/assistant/buildflags.h" // nogncheck -#include "chromeos/components/local_search_service/local_search_service.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/local_search_service.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" #include "chromeos/services/tts/public/mojom/tts_service.mojom.h" #include "chromeos/services/tts/tts_service.h"
diff --git a/chromecast/browser/application_media_info_manager.cc b/chromecast/browser/application_media_info_manager.cc index 4c9e5ca..f3a7bee 100644 --- a/chromecast/browser/application_media_info_manager.cc +++ b/chromecast/browser/application_media_info_manager.cc
@@ -14,22 +14,34 @@ namespace chromecast { namespace media { -void CreateApplicationMediaInfoManager( +void ApplicationMediaInfoManager::Create( content::RenderFrameHost* render_frame_host, std::string application_session_id, bool mixer_audio_enabled, mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> receiver) { + CHECK(render_frame_host); // The created ApplicationMediaInfoManager will be deleted on connection // error, or when the frame navigates away. See DocumentService for // details. - new ApplicationMediaInfoManager(render_frame_host, std::move(receiver), + new ApplicationMediaInfoManager(*render_frame_host, std::move(receiver), std::move(application_session_id), mixer_audio_enabled); } +ApplicationMediaInfoManager& ApplicationMediaInfoManager::CreateForTesting( + content::RenderFrameHost& render_frame_host, + std::string application_session_id, + bool mixer_audio_enabled, + mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> + receiver) { + return *new ApplicationMediaInfoManager( + render_frame_host, std::move(receiver), std::move(application_session_id), + mixer_audio_enabled); +} + ApplicationMediaInfoManager::ApplicationMediaInfoManager( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> receiver, std::string application_session_id, @@ -39,7 +51,7 @@ mixer_audio_enabled_(mixer_audio_enabled), renderer_blocked_(false) { shell::CastRendererBlockData::SetApplicationMediaInfoManagerForWebContents( - content::WebContents::FromRenderFrameHost(render_frame_host), this); + content::WebContents::FromRenderFrameHost(&render_frame_host), this); } ApplicationMediaInfoManager::~ApplicationMediaInfoManager() = default;
diff --git a/chromecast/browser/application_media_info_manager.h b/chromecast/browser/application_media_info_manager.h index 9028845..05c0e3b 100644 --- a/chromecast/browser/application_media_info_manager.h +++ b/chromecast/browser/application_media_info_manager.h
@@ -27,23 +27,36 @@ ::media::mojom::CastApplicationMediaInfoManager>, public base::SupportsWeakPtr<ApplicationMediaInfoManager> { public: - ApplicationMediaInfoManager( + static void Create( content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> - receiver, std::string application_session_id, - bool mixer_audio_enabled); + bool mixer_audio_enabled, + mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> + receiver); + static ApplicationMediaInfoManager& CreateForTesting( + content::RenderFrameHost& render_frame_host, + std::string application_session_id, + bool mixer_audio_enabled, + mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> + receiver); ApplicationMediaInfoManager(const ApplicationMediaInfoManager&) = delete; ApplicationMediaInfoManager& operator=(const ApplicationMediaInfoManager&) = delete; - ~ApplicationMediaInfoManager() override; - void SetRendererBlock(bool renderer_blocked); private: friend ApplicationMediaInfoManagerTest; + + ApplicationMediaInfoManager( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> + receiver, + std::string application_session_id, + bool mixer_audio_enabled); + ~ApplicationMediaInfoManager() override; + // ::media::mojom::CastApplicationMediaInfoManager implementation: void GetCastApplicationMediaInfo( GetCastApplicationMediaInfoCallback callback) final; @@ -55,13 +68,6 @@ bool renderer_blocked_; }; -void CreateApplicationMediaInfoManager( - content::RenderFrameHost* render_frame_host, - std::string application_session_id, - bool mixer_audio_enabled, - mojo::PendingReceiver<::media::mojom::CastApplicationMediaInfoManager> - receiver); - } // namespace media } // namespace chromecast
diff --git a/chromecast/browser/application_media_info_manager_unittest.cc b/chromecast/browser/application_media_info_manager_unittest.cc index a4aed62..c2dfb57 100644 --- a/chromecast/browser/application_media_info_manager_unittest.cc +++ b/chromecast/browser/application_media_info_manager_unittest.cc
@@ -36,10 +36,11 @@ void SetUp() override { initializer_ = std::make_unique<content::TestContentClientInitializer>(); content::RenderViewHostTestHarness::SetUp(); - application_media_info_manager_ = new ApplicationMediaInfoManager( - main_rfh(), - application_media_info_manager_remote_.BindNewPipeAndPassReceiver(), - kSessionId, kMixedAudioEnabled); + application_media_info_manager_ = + &ApplicationMediaInfoManager::CreateForTesting( + *main_rfh(), kSessionId, kMixedAudioEnabled, + application_media_info_manager_remote_ + .BindNewPipeAndPassReceiver()); } void OnCastApplicationMediaInfo(
diff --git a/chromecast/browser/audio_socket_broker.cc b/chromecast/browser/audio_socket_broker.cc index 0665b59dd..33dca23 100644 --- a/chromecast/browser/audio_socket_broker.cc +++ b/chromecast/browser/audio_socket_broker.cc
@@ -110,15 +110,24 @@ AudioSocketBroker::PendingConnectionInfo::~PendingConnectionInfo() = default; -void CreateAudioSocketBroker( +void AudioSocketBroker::Create( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<mojom::AudioSocketBroker> receiver) { + CHECK(render_frame_host); // Lifecycle managed by content::DocumentService. - new AudioSocketBroker(render_frame_host, std::move(receiver)); + new AudioSocketBroker(*render_frame_host, std::move(receiver)); +} + +AudioSocketBroker& AudioSocketBroker::CreateForTesting( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<mojom::AudioSocketBroker> receiver, + const std::string& audio_output_service_path) { + return *new AudioSocketBroker(render_frame_host, std::move(receiver), + audio_output_service_path); } AudioSocketBroker::AudioSocketBroker( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::AudioSocketBroker> receiver) : AudioSocketBroker(render_frame_host, std::move(receiver), @@ -126,7 +135,7 @@ kDefaultAudioOutputServiceUnixDomainSocketPath) {} AudioSocketBroker::AudioSocketBroker( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::AudioSocketBroker> receiver, const std::string& audio_output_service_path) : DocumentService(render_frame_host, std::move(receiver)),
diff --git a/chromecast/browser/audio_socket_broker.h b/chromecast/browser/audio_socket_broker.h index 8fb41324..2e50e442 100644 --- a/chromecast/browser/audio_socket_broker.h +++ b/chromecast/browser/audio_socket_broker.h
@@ -34,18 +34,25 @@ class AudioSocketBroker : public ::content::DocumentService<mojom::AudioSocketBroker> { public: - AudioSocketBroker(content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<mojom::AudioSocketBroker> receiver); - AudioSocketBroker(content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<mojom::AudioSocketBroker> receiver, - const std::string& audio_output_service_path); + static void Create(content::RenderFrameHost* render_frame_host, + mojo::PendingReceiver<mojom::AudioSocketBroker> receiver); + static AudioSocketBroker& CreateForTesting( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<mojom::AudioSocketBroker> receiver, + const std::string& audio_output_service_path); AudioSocketBroker(const AudioSocketBroker&) = delete; AudioSocketBroker& operator=(const AudioSocketBroker&) = delete; - ~AudioSocketBroker() override; private: class SocketFdConnection; + AudioSocketBroker(content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<mojom::AudioSocketBroker> receiver); + AudioSocketBroker(content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<mojom::AudioSocketBroker> receiver, + const std::string& audio_output_service_path); + ~AudioSocketBroker() override; + // Helper struct which holds the information regarding a socket pair // in the time between sending the socket to the renderer and the audio // service. @@ -80,10 +87,6 @@ base::WeakPtrFactory<AudioSocketBroker> weak_factory_{this}; }; -void CreateAudioSocketBroker( - content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<mojom::AudioSocketBroker> receiver); - } // namespace media } // namespace chromecast
diff --git a/chromecast/browser/audio_socket_broker_unittest.cc b/chromecast/browser/audio_socket_broker_unittest.cc index 20a10b0..181cc90 100644 --- a/chromecast/browser/audio_socket_broker_unittest.cc +++ b/chromecast/browser/audio_socket_broker_unittest.cc
@@ -58,8 +58,8 @@ socket_path_ = test_dir_.GetPath().Append(kTestSocket).value(); initializer_ = std::make_unique<content::TestContentClientInitializer>(); content::RenderViewHostTestHarness::SetUp(); - audio_socket_broker_ = new AudioSocketBroker( - main_rfh(), audio_socket_broker_remote_.BindNewPipeAndPassReceiver(), + audio_socket_broker_ = &AudioSocketBroker::CreateForTesting( + *main_rfh(), audio_socket_broker_remote_.BindNewPipeAndPassReceiver(), socket_path_); }
diff --git a/chromecast/browser/cast_browser_interface_binders.cc b/chromecast/browser/cast_browser_interface_binders.cc index 78dfbea..916385b 100644 --- a/chromecast/browser/cast_browser_interface_binders.cc +++ b/chromecast/browser/cast_browser_interface_binders.cc
@@ -60,7 +60,7 @@ } auto application_session_id = CastNavigationUIData::GetSessionIdForWebContents(web_contents); - media::CreateApplicationMediaInfoManager( + media::ApplicationMediaInfoManager::Create( frame_host, std::move(application_session_id), /*mixer_audio_enabled=*/false, std::move(receiver)); } @@ -68,7 +68,7 @@ void BindAudioSocketBroker( content::RenderFrameHost* frame_host, mojo::PendingReceiver<::chromecast::mojom::AudioSocketBroker> receiver) { - media::CreateAudioSocketBroker(frame_host, std::move(receiver)); + media::AudioSocketBroker::Create(frame_host, std::move(receiver)); } // Some Cast internals still dynamically set up interface binders after
diff --git a/chromecast/browser/cast_content_browser_client_receiver_bindings.cc b/chromecast/browser/cast_content_browser_client_receiver_bindings.cc index 1923ca7..8b85659b 100644 --- a/chromecast/browser/cast_content_browser_client_receiver_bindings.cc +++ b/chromecast/browser/cast_content_browser_client_receiver_bindings.cc
@@ -80,7 +80,7 @@ // The object will be deleted on connection error, or when the frame navigates // away. new cdm::MediaDrmStorageImpl( - render_frame_host, pref_service, base::BindRepeating(&CreateOriginId), + *render_frame_host, pref_service, base::BindRepeating(&CreateOriginId), base::BindRepeating(&AllowEmptyOriginIdCB), std::move(receiver)); } @@ -143,9 +143,9 @@ bool mixer_audio_enabled; GetApplicationMediaInfo(&application_session_id, &mixer_audio_enabled, render_frame_host); - media::CreateApplicationMediaInfoManager(render_frame_host, - std::move(application_session_id), - mixer_audio_enabled, std::move(r)); + media::ApplicationMediaInfoManager::Create( + render_frame_host, std::move(application_session_id), + mixer_audio_enabled, std::move(r)); return; } }
diff --git a/chromeos/ash/components/BUILD.gn b/chromeos/ash/components/BUILD.gn index 0e1717e6..b8e18883 100644 --- a/chromeos/ash/components/BUILD.gn +++ b/chromeos/ash/components/BUILD.gn
@@ -13,6 +13,8 @@ deps = [ "//chromeos/ash/components/dbus:unit_tests", "//chromeos/ash/components/human_presence:unit_tests", + "//chromeos/ash/components/local_search_service:unit_tests", + "//chromeos/ash/components/local_search_service/public/mojom:unit_tests", "//chromeos/ash/components/memory:unit_tests", "//chromeos/ash/components/oobe_quick_start:unit_tests", ]
diff --git a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc index c8d80970..2c60185 100644 --- a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc +++ b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.cc
@@ -1026,6 +1026,7 @@ LOG(ERROR) << "AuthSession not found"; *error = ::user_data_auth::CryptohomeErrorCode:: CRYPTOHOME_INVALID_AUTH_SESSION_TOKEN; + return nullptr; } // Check if the AuthSession is properly authenticated. @@ -1033,6 +1034,7 @@ LOG(ERROR) << "AuthSession is not authenticated"; *error = ::user_data_auth::CryptohomeErrorCode:: CRYPTOHOME_ERROR_INVALID_ARGUMENT; + return nullptr; } return &auth_session->second;
diff --git a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h index e85160f..18046f82 100644 --- a/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h +++ b/chromeos/ash/components/dbus/userdataauth/fake_userdataauth_client.h
@@ -328,7 +328,8 @@ // The method takes serialized auth session id and returns an authenticated // auth session associated with the id. If the session is missing or not - // authenticated, |nullptr| is returned. + // authenticated, an error code is assigned to |*error| and |nullptr| is + // returned. const AuthSessionData* GetAuthenticatedAuthSession( const std::string& auth_session_id, ::user_data_auth::CryptohomeErrorCode* error) const;
diff --git a/chromeos/components/local_search_service/BUILD.gn b/chromeos/ash/components/local_search_service/BUILD.gn similarity index 80% rename from chromeos/components/local_search_service/BUILD.gn rename to chromeos/ash/components/local_search_service/BUILD.gn index 2501732..aba48fef 100644 --- a/chromeos/components/local_search_service/BUILD.gn +++ b/chromeos/ash/components/local_search_service/BUILD.gn
@@ -2,7 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos") +import("//build/config/chromeos/ui_mode.gni") + +assert(is_chromeos_ash) source_set("local_search_service") { sources = [ @@ -31,7 +33,7 @@ deps = [ "//base:i18n", "//cc", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service/public/mojom", "//chromeos/components/string_matching", ] @@ -52,9 +54,9 @@ ] deps = [ - "//chromeos/components/local_search_service:local_search_service", - "//chromeos/components/local_search_service/public/cpp:local_search_service_provider", - "//chromeos/components/local_search_service/public/mojom", + ":local_search_service", + "//chromeos/ash/components/local_search_service/public/cpp:local_search_service_provider", + "//chromeos/ash/components/local_search_service/public/mojom", "//content/public/browser:browser", ] } @@ -93,8 +95,8 @@ ":local_search_service_provider", ":test_support", "//base/test:test_support", - "//chromeos/components/local_search_service/public/cpp:cpp", - "//chromeos/components/local_search_service/public/cpp:local_search_service_provider", + "//chromeos/ash/components/local_search_service/public/cpp", + "//chromeos/ash/components/local_search_service/public/cpp:local_search_service_provider", "//components/prefs:test_support", "//content/test:test_support", "//mojo/public/cpp/bindings:bindings",
diff --git a/chromeos/components/local_search_service/DEPS b/chromeos/ash/components/local_search_service/DEPS similarity index 74% rename from chromeos/components/local_search_service/DEPS rename to chromeos/ash/components/local_search_service/DEPS index acad16c..33586110 100644 --- a/chromeos/components/local_search_service/DEPS +++ b/chromeos/ash/components/local_search_service/DEPS
@@ -2,8 +2,6 @@ "+components/keyed_service/content", "+components/keyed_service/core", "+components/metrics", - "+components/prefs", "+content/public/browser", "+content/public/test", - "+sandbox/policy/sandbox_type.h", ]
diff --git a/chromeos/components/local_search_service/OWNERS b/chromeos/ash/components/local_search_service/OWNERS similarity index 100% rename from chromeos/components/local_search_service/OWNERS rename to chromeos/ash/components/local_search_service/OWNERS
diff --git a/chromeos/components/local_search_service/README.md b/chromeos/ash/components/local_search_service/README.md similarity index 100% rename from chromeos/components/local_search_service/README.md rename to chromeos/ash/components/local_search_service/README.md
diff --git a/chromeos/components/local_search_service/content_extraction_utils.cc b/chromeos/ash/components/local_search_service/content_extraction_utils.cc similarity index 98% rename from chromeos/components/local_search_service/content_extraction_utils.cc rename to chromeos/ash/components/local_search_service/content_extraction_utils.cc index 2afa086..2eba372 100644 --- a/chromeos/components/local_search_service/content_extraction_utils.cc +++ b/chromeos/ash/components/local_search_service/content_extraction_utils.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/content_extraction_utils.h" +#include "chromeos/ash/components/local_search_service/content_extraction_utils.h" #include <memory> #include <string> #include <unordered_map>
diff --git a/chromeos/components/local_search_service/content_extraction_utils.h b/chromeos/ash/components/local_search_service/content_extraction_utils.h similarity index 84% rename from chromeos/components/local_search_service/content_extraction_utils.h rename to chromeos/ash/components/local_search_service/content_extraction_utils.h index f19d75e..b1d300d1 100644 --- a/chromeos/components/local_search_service/content_extraction_utils.h +++ b/chromeos/ash/components/local_search_service/content_extraction_utils.h
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_ #include <string> -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" namespace chromeos { namespace local_search_service { @@ -44,4 +44,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_CONTENT_EXTRACTION_UTILS_H_
diff --git a/chromeos/components/local_search_service/content_extraction_utils_unittest.cc b/chromeos/ash/components/local_search_service/content_extraction_utils_unittest.cc similarity index 96% rename from chromeos/components/local_search_service/content_extraction_utils_unittest.cc rename to chromeos/ash/components/local_search_service/content_extraction_utils_unittest.cc index 73bc886..cf28340 100644 --- a/chromeos/components/local_search_service/content_extraction_utils_unittest.cc +++ b/chromeos/ash/components/local_search_service/content_extraction_utils_unittest.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/content_extraction_utils.h" +#include "chromeos/ash/components/local_search_service/content_extraction_utils.h" #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/index.cc b/chromeos/ash/components/local_search_service/index.cc similarity index 98% rename from chromeos/components/local_search_service/index.cc rename to chromeos/ash/components/local_search_service/index.cc index dec33015..e286893 100644 --- a/chromeos/components/local_search_service/index.cc +++ b/chromeos/ash/components/local_search_service/index.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/index.h" +#include "chromeos/ash/components/local_search_service/index.h" #include "base/metrics/histogram_functions.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chromeos/components/local_search_service/index.h b/chromeos/ash/components/local_search_service/index.h similarity index 86% rename from chromeos/components/local_search_service/index.h rename to chromeos/ash/components/local_search_service/index.h index 1332236..f736e45c 100644 --- a/chromeos/components/local_search_service/index.h +++ b/chromeos/ash/components/local_search_service/index.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_ #include <cstdint> #include <string> #include <vector> -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver_set.h" @@ -75,4 +75,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INDEX_H_
diff --git a/chromeos/components/local_search_service/inverted_index.cc b/chromeos/ash/components/local_search_service/inverted_index.cc similarity index 98% rename from chromeos/components/local_search_service/inverted_index.cc rename to chromeos/ash/components/local_search_service/inverted_index.cc index fa798b4..3ab4aeb 100644 --- a/chromeos/components/local_search_service/inverted_index.cc +++ b/chromeos/ash/components/local_search_service/inverted_index.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/inverted_index.h" +#include "chromeos/ash/components/local_search_service/inverted_index.h" #include <numeric> #include <string> @@ -14,7 +14,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/task/task_traits.h" #include "base/task/thread_pool.h" -#include "chromeos/components/local_search_service/search_utils.h" +#include "chromeos/ash/components/local_search_service/search_utils.h" namespace chromeos { namespace local_search_service {
diff --git a/chromeos/components/local_search_service/inverted_index.h b/chromeos/ash/components/local_search_service/inverted_index.h similarity index 95% rename from chromeos/components/local_search_service/inverted_index.h rename to chromeos/ash/components/local_search_service/inverted_index.h index 76a1e92a..eaf004a 100644 --- a/chromeos/components/local_search_service/inverted_index.h +++ b/chromeos/ash/components/local_search_service/inverted_index.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_ #include <string> #include <tuple> @@ -15,7 +15,7 @@ #include "base/gtest_prod_util.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" namespace chromeos { namespace local_search_service { @@ -163,4 +163,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_H_
diff --git a/chromeos/components/local_search_service/inverted_index_search.cc b/chromeos/ash/components/local_search_service/inverted_index_search.cc similarity index 96% rename from chromeos/components/local_search_service/inverted_index_search.cc rename to chromeos/ash/components/local_search_service/inverted_index_search.cc index d55c0a9..934876b 100644 --- a/chromeos/components/local_search_service/inverted_index_search.cc +++ b/chromeos/ash/components/local_search_service/inverted_index_search.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/inverted_index_search.h" +#include "chromeos/ash/components/local_search_service/inverted_index_search.h" #include <cstdint> #include <utility> @@ -17,8 +17,8 @@ #include "base/task/task_traits.h" #include "base/task/thread_pool.h" #include "base/time/time.h" -#include "chromeos/components/local_search_service/content_extraction_utils.h" -#include "chromeos/components/local_search_service/inverted_index.h" +#include "chromeos/ash/components/local_search_service/content_extraction_utils.h" +#include "chromeos/ash/components/local_search_service/inverted_index.h" #include "chromeos/components/string_matching/tokenized_string.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chromeos/components/local_search_service/inverted_index_search.h b/chromeos/ash/components/local_search_service/inverted_index_search.h similarity index 87% rename from chromeos/components/local_search_service/inverted_index_search.h rename to chromeos/ash/components/local_search_service/inverted_index_search.h index d7d8f1b..0dff014b0 100644 --- a/chromeos/components/local_search_service/inverted_index_search.h +++ b/chromeos/ash/components/local_search_service/inverted_index_search.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_ #include <cstdint> #include <map> @@ -13,8 +13,8 @@ #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" -#include "chromeos/components/local_search_service/index.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/index.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" namespace chromeos { namespace local_search_service { @@ -76,4 +76,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_INVERTED_INDEX_SEARCH_H_
diff --git a/chromeos/components/local_search_service/inverted_index_search_unittest.cc b/chromeos/ash/components/local_search_service/inverted_index_search_unittest.cc similarity index 98% rename from chromeos/components/local_search_service/inverted_index_search_unittest.cc rename to chromeos/ash/components/local_search_service/inverted_index_search_unittest.cc index 37c3b20..9861d0e 100644 --- a/chromeos/components/local_search_service/inverted_index_search_unittest.cc +++ b/chromeos/ash/components/local_search_service/inverted_index_search_unittest.cc
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/inverted_index_search.h" +#include "chromeos/ash/components/local_search_service/inverted_index_search.h" #include "base/strings/utf_string_conversions.h" #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/inverted_index_unittest.cc b/chromeos/ash/components/local_search_service/inverted_index_unittest.cc similarity index 98% rename from chromeos/components/local_search_service/inverted_index_unittest.cc rename to chromeos/ash/components/local_search_service/inverted_index_unittest.cc index ef4c7da..38b3ae45 100644 --- a/chromeos/components/local_search_service/inverted_index_unittest.cc +++ b/chromeos/ash/components/local_search_service/inverted_index_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/inverted_index.h" +#include "chromeos/ash/components/local_search_service/inverted_index.h" #include <cmath> #include <string> @@ -12,8 +12,8 @@ #include "base/bind.h" #include "base/strings/utf_string_conversions.h" #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/shared_structs.h" -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromeos/components/local_search_service/linear_map_search.cc b/chromeos/ash/components/local_search_service/linear_map_search.cc similarity index 97% rename from chromeos/components/local_search_service/linear_map_search.cc rename to chromeos/ash/components/local_search_service/linear_map_search.cc index 0349fb0..1153aae 100644 --- a/chromeos/components/local_search_service/linear_map_search.cc +++ b/chromeos/ash/components/local_search_service/linear_map_search.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/linear_map_search.h" +#include "chromeos/ash/components/local_search_service/linear_map_search.h" #include <utility> #include <vector> @@ -10,7 +10,7 @@ #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "base/time/time.h" -#include "chromeos/components/local_search_service/search_utils.h" +#include "chromeos/ash/components/local_search_service/search_utils.h" #include "chromeos/components/string_matching/fuzzy_tokenized_string_match.h" #include "chromeos/components/string_matching/tokenized_string.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chromeos/components/local_search_service/linear_map_search.h b/chromeos/ash/components/local_search_service/linear_map_search.h similarity index 84% rename from chromeos/components/local_search_service/linear_map_search.h rename to chromeos/ash/components/local_search_service/linear_map_search.h index 7d6cfd4..3635ce1 100644 --- a/chromeos/components/local_search_service/linear_map_search.h +++ b/chromeos/ash/components/local_search_service/linear_map_search.h
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_ #include <map> #include <memory> #include <string> #include <vector> -#include "chromeos/components/local_search_service/index.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/index.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" namespace chromeos { @@ -66,4 +66,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LINEAR_MAP_SEARCH_H_
diff --git a/chromeos/components/local_search_service/linear_map_search_unittest.cc b/chromeos/ash/components/local_search_service/linear_map_search_unittest.cc similarity index 97% rename from chromeos/components/local_search_service/linear_map_search_unittest.cc rename to chromeos/ash/components/local_search_service/linear_map_search_unittest.cc index f807f50..f95cbf7 100644 --- a/chromeos/components/local_search_service/linear_map_search_unittest.cc +++ b/chromeos/ash/components/local_search_service/linear_map_search_unittest.cc
@@ -11,9 +11,9 @@ #include <vector> #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/linear_map_search.h" -#include "chromeos/components/local_search_service/shared_structs.h" -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/linear_map_search.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/local_search_service.cc b/chromeos/ash/components/local_search_service/local_search_service.cc similarity index 87% rename from chromeos/components/local_search_service/local_search_service.cc rename to chromeos/ash/components/local_search_service/local_search_service.cc index 2515813..ef734936 100644 --- a/chromeos/components/local_search_service/local_search_service.cc +++ b/chromeos/ash/components/local_search_service/local_search_service.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/local_search_service.h" -#include "chromeos/components/local_search_service/inverted_index_search.h" -#include "chromeos/components/local_search_service/linear_map_search.h" +#include "chromeos/ash/components/local_search_service/local_search_service.h" +#include "chromeos/ash/components/local_search_service/inverted_index_search.h" +#include "chromeos/ash/components/local_search_service/linear_map_search.h" namespace chromeos { namespace local_search_service {
diff --git a/chromeos/components/local_search_service/local_search_service.h b/chromeos/ash/components/local_search_service/local_search_service.h similarity index 68% rename from chromeos/components/local_search_service/local_search_service.h rename to chromeos/ash/components/local_search_service/local_search_service.h index 9692746..a32ae10 100644 --- a/chromeos/components/local_search_service/local_search_service.h +++ b/chromeos/ash/components/local_search_service/local_search_service.h
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_ -#include "chromeos/components/local_search_service/index.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/index.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote_set.h" @@ -37,4 +37,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_H_
diff --git a/chromeos/components/local_search_service/local_search_service_provider_for_testing.cc b/chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.cc similarity index 88% rename from chromeos/components/local_search_service/local_search_service_provider_for_testing.cc rename to chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.cc index f960c30e..2057c81 100644 --- a/chromeos/components/local_search_service/local_search_service_provider_for_testing.cc +++ b/chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/local_search_service_provider_for_testing.h" +#include "chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h" #include <memory>
diff --git a/chromeos/components/local_search_service/local_search_service_provider_for_testing.h b/chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h similarity index 61% rename from chromeos/components/local_search_service/local_search_service_provider_for_testing.h rename to chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h index a516314..29547e54 100644 --- a/chromeos/components/local_search_service/local_search_service_provider_for_testing.h +++ b/chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h
@@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_ -#include "chromeos/components/local_search_service/local_search_service.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/local_search_service.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h" namespace chromeos { namespace local_search_service { @@ -29,4 +29,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_LOCAL_SEARCH_SERVICE_PROVIDER_FOR_TESTING_H_
diff --git a/chromeos/components/local_search_service/local_search_service_provider_unittest.cc b/chromeos/ash/components/local_search_service/local_search_service_provider_unittest.cc similarity index 95% rename from chromeos/components/local_search_service/local_search_service_provider_unittest.cc rename to chromeos/ash/components/local_search_service/local_search_service_provider_unittest.cc index 9d2b50a..fe151b9 100644 --- a/chromeos/components/local_search_service/local_search_service_provider_unittest.cc +++ b/chromeos/ash/components/local_search_service/local_search_service_provider_unittest.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/local_search_service_provider_for_testing.h" +#include "chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h" #include <memory>
diff --git a/chromeos/components/local_search_service/local_search_service_proxy_unittest.cc b/chromeos/ash/components/local_search_service/local_search_service_proxy_unittest.cc similarity index 93% rename from chromeos/components/local_search_service/local_search_service_proxy_unittest.cc rename to chromeos/ash/components/local_search_service/local_search_service_proxy_unittest.cc index 5c9aacc..220a631 100644 --- a/chromeos/components/local_search_service/local_search_service_proxy_unittest.cc +++ b/chromeos/ash/components/local_search_service/local_search_service_proxy_unittest.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include <memory> #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/local_search_service_provider_for_testing.h" +#include "chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h" #include "components/prefs/testing_pref_service.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromeos/components/local_search_service/local_search_service_unittest.cc b/chromeos/ash/components/local_search_service/local_search_service_unittest.cc similarity index 96% rename from chromeos/components/local_search_service/local_search_service_unittest.cc rename to chromeos/ash/components/local_search_service/local_search_service_unittest.cc index e6070c6e..9d06db1 100644 --- a/chromeos/components/local_search_service/local_search_service_unittest.cc +++ b/chromeos/ash/components/local_search_service/local_search_service_unittest.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/local_search_service.h" +#include "chromeos/ash/components/local_search_service/local_search_service.h" #include <memory> #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/search_metrics_reporter.h" -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include "components/prefs/testing_pref_service.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromeos/components/local_search_service/oop_local_search_service_provider.cc b/chromeos/ash/components/local_search_service/oop_local_search_service_provider.cc similarity index 82% rename from chromeos/components/local_search_service/oop_local_search_service_provider.cc rename to chromeos/ash/components/local_search_service/oop_local_search_service_provider.cc index 4254734c..8622781 100644 --- a/chromeos/components/local_search_service/oop_local_search_service_provider.cc +++ b/chromeos/ash/components/local_search_service/oop_local_search_service_provider.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/oop_local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/oop_local_search_service_provider.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" #include "content/public/browser/service_process_host.h" namespace chromeos {
diff --git a/chromeos/ash/components/local_search_service/oop_local_search_service_provider.h b/chromeos/ash/components/local_search_service/oop_local_search_service_provider.h new file mode 100644 index 0000000..003fdd0 --- /dev/null +++ b/chromeos/ash/components/local_search_service/oop_local_search_service_provider.h
@@ -0,0 +1,28 @@ +// 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 CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ + +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom-forward.h" +namespace chromeos { +namespace local_search_service { + +// An implementation that runs LocalSearchService in the LSS service +// process. +class OopLocalSearchServiceProvider : public LocalSearchServiceProvider { + public: + OopLocalSearchServiceProvider(); + ~OopLocalSearchServiceProvider() override; + + // LocalSearchServiceProvider: + void BindLocalSearchService( + mojo::PendingReceiver<mojom::LocalSearchService> receiver) override; +}; + +} // namespace local_search_service +} // namespace chromeos + +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_
diff --git a/chromeos/components/local_search_service/pref_names.cc b/chromeos/ash/components/local_search_service/pref_names.cc similarity index 94% rename from chromeos/components/local_search_service/pref_names.cc rename to chromeos/ash/components/local_search_service/pref_names.cc index 7de795f..cf699e4 100644 --- a/chromeos/components/local_search_service/pref_names.cc +++ b/chromeos/ash/components/local_search_service/pref_names.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/pref_names.h" +#include "chromeos/ash/components/local_search_service/pref_names.h" namespace chromeos { namespace local_search_service {
diff --git a/chromeos/components/local_search_service/pref_names.h b/chromeos/ash/components/local_search_service/pref_names.h similarity index 85% rename from chromeos/components/local_search_service/pref_names.h rename to chromeos/ash/components/local_search_service/pref_names.h index b5443d7..668ae24 100644 --- a/chromeos/components/local_search_service/pref_names.h +++ b/chromeos/ash/components/local_search_service/pref_names.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_ namespace chromeos { namespace local_search_service { @@ -30,4 +30,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PREF_NAMES_H_
diff --git a/chromeos/components/local_search_service/public/cpp/BUILD.gn b/chromeos/ash/components/local_search_service/public/cpp/BUILD.gn similarity index 61% rename from chromeos/components/local_search_service/public/cpp/BUILD.gn rename to chromeos/ash/components/local_search_service/public/cpp/BUILD.gn index c26d951..548c8a8 100644 --- a/chromeos/components/local_search_service/public/cpp/BUILD.gn +++ b/chromeos/ash/components/local_search_service/public/cpp/BUILD.gn
@@ -2,7 +2,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos") +import("//build/config/chromeos/ui_mode.gni") + +assert(is_chromeos_ash) source_set("local_search_service_provider") { sources = [ @@ -11,8 +13,8 @@ ] deps = [ - "//chromeos/components/local_search_service:local_search_service", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service", + "//chromeos/ash/components/local_search_service/public/mojom", ] } @@ -26,9 +28,9 @@ deps = [ ":local_search_service_provider", - "//chromeos/components/local_search_service:local_search_service", - "//chromeos/components/local_search_service:local_search_service_provider", - "//chromeos/components/local_search_service/public/mojom", + "//chromeos/ash/components/local_search_service", + "//chromeos/ash/components/local_search_service:local_search_service_provider", + "//chromeos/ash/components/local_search_service/public/mojom", "//components/keyed_service/content:content", "//components/prefs:prefs", ]
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_provider.cc b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.cc similarity index 75% rename from chromeos/components/local_search_service/public/cpp/local_search_service_provider.cc rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.cc index 557afd9..39c4db4 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_provider.cc +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/cpp/local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h" -#include "chromeos/components/local_search_service/local_search_service.h" +#include "chromeos/ash/components/local_search_service/local_search_service.h" namespace chromeos { namespace local_search_service {
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_provider.h b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h similarity index 75% rename from chromeos/components/local_search_service/public/cpp/local_search_service_provider.h rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h index 3dd7f0d3..8bc49f0 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_provider.h +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom-forward.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom-forward.h" #include "mojo/public/cpp/bindings/remote_set.h" namespace chromeos { @@ -35,4 +35,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROVIDER_H_
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy.cc b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.cc similarity index 89% rename from chromeos/components/local_search_service/public/cpp/local_search_service_proxy.cc rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.cc index 19e882b..ac80156 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy.cc +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.cc
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include <memory> #include "base/metrics/histogram_functions.h" -#include "chromeos/components/local_search_service/local_search_service_provider_for_testing.h" -#include "chromeos/components/local_search_service/oop_local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/local_search_service_provider_for_testing.h" +#include "chromeos/ash/components/local_search_service/oop_local_search_service_provider.h" #include "components/prefs/pref_service.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h similarity index 73% rename from chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h index b8125427..63839c46 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_ #include <memory> -#include "chromeos/components/local_search_service/public/cpp/local_search_service_provider.h" -#include "chromeos/components/local_search_service/public/mojom/index.mojom.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" -#include "chromeos/components/local_search_service/search_metrics_reporter.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_provider.h" +#include "chromeos/ash/components/local_search_service/public/mojom/index.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" #include "components/keyed_service/core/keyed_service.h" class PrefService; @@ -60,4 +60,4 @@ } // namespace local_search_service } // namespace ash -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_H_
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc similarity index 90% rename from chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc index 7958648..b6c38bd 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.cc
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "base/no_destructor.h" -#include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy.h" +#include "chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h similarity index 83% rename from chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h rename to chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.h index a16d37eb..ddca5641 100644 --- a/chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h +++ b/chromeos/ash/components/local_search_service/public/cpp/local_search_service_proxy_factory.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_ #include "base/no_destructor.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" @@ -51,4 +51,4 @@ } // namespace local_search_service } // namespace ash -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_CPP_LOCAL_SEARCH_SERVICE_PROXY_FACTORY_H_
diff --git a/chromeos/components/local_search_service/public/mojom/BUILD.gn b/chromeos/ash/components/local_search_service/public/mojom/BUILD.gn similarity index 86% rename from chromeos/components/local_search_service/public/mojom/BUILD.gn rename to chromeos/ash/components/local_search_service/public/mojom/BUILD.gn index bfcafd3..decdb4ab 100644 --- a/chromeos/components/local_search_service/public/mojom/BUILD.gn +++ b/chromeos/ash/components/local_search_service/public/mojom/BUILD.gn
@@ -2,8 +2,11 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/chromeos/ui_mode.gni") import("//mojo/public/tools/bindings/mojom.gni") +assert(is_chromeos_ash) + mojom("mojom") { sources = [ "index.mojom", @@ -52,8 +55,8 @@ cpp = "::chromeos::local_search_service::Backend" }, ] - traits_headers = [ "//chromeos/components/local_search_service/public/mojom/types_mojom_traits.h" ] - traits_sources = [ "//chromeos/components/local_search_service/public/mojom/types_mojom_traits.cc" ] + traits_headers = [ "//chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h" ] + traits_sources = [ "//chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.cc" ] }, ] }
diff --git a/chromeos/components/local_search_service/public/mojom/OWNERS b/chromeos/ash/components/local_search_service/public/mojom/OWNERS similarity index 100% rename from chromeos/components/local_search_service/public/mojom/OWNERS rename to chromeos/ash/components/local_search_service/public/mojom/OWNERS
diff --git a/chromeos/components/local_search_service/public/mojom/index.mojom b/chromeos/ash/components/local_search_service/public/mojom/index.mojom similarity index 95% rename from chromeos/components/local_search_service/public/mojom/index.mojom rename to chromeos/ash/components/local_search_service/public/mojom/index.mojom index f56ad8ed..5f136be6 100644 --- a/chromeos/components/local_search_service/public/mojom/index.mojom +++ b/chromeos/ash/components/local_search_service/public/mojom/index.mojom
@@ -4,7 +4,7 @@ module chromeos.local_search_service.mojom; -import "chromeos/components/local_search_service/public/mojom/types.mojom"; +import "chromeos/ash/components/local_search_service/public/mojom/types.mojom"; import "mojo/public/mojom/base/string16.mojom"; // An Index has a registry of searchable data, which can be updated. It also
diff --git a/chromeos/components/local_search_service/public/mojom/local_search_service.mojom b/chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom similarity index 89% rename from chromeos/components/local_search_service/public/mojom/local_search_service.mojom rename to chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom index 0fde4775..5209df2e 100644 --- a/chromeos/components/local_search_service/public/mojom/local_search_service.mojom +++ b/chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom
@@ -4,8 +4,8 @@ module chromeos.local_search_service.mojom; -import "chromeos/components/local_search_service/public/mojom/index.mojom"; -import "chromeos/components/local_search_service/public/mojom/types.mojom"; +import "chromeos/ash/components/local_search_service/public/mojom/index.mojom"; +import "chromeos/ash/components/local_search_service/public/mojom/types.mojom"; import "sandbox/policy/mojom/sandbox.mojom"; enum IndexId {
diff --git a/chromeos/components/local_search_service/public/mojom/types.mojom b/chromeos/ash/components/local_search_service/public/mojom/types.mojom similarity index 100% rename from chromeos/components/local_search_service/public/mojom/types.mojom rename to chromeos/ash/components/local_search_service/public/mojom/types.mojom
diff --git a/chromeos/components/local_search_service/public/mojom/types_mojom_traits.cc b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.cc similarity index 98% rename from chromeos/components/local_search_service/public/mojom/types_mojom_traits.cc rename to chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.cc index 160ba17..a64212b 100644 --- a/chromeos/components/local_search_service/public/mojom/types_mojom_traits.cc +++ b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/mojom/types_mojom_traits.h" +#include "chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h" #include "mojo/public/cpp/base/string16_mojom_traits.h"
diff --git a/chromeos/components/local_search_service/public/mojom/types_mojom_traits.h b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h similarity index 89% rename from chromeos/components/local_search_service/public/mojom/types_mojom_traits.h rename to chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h index 9b05c0ce..1fa059d 100644 --- a/chromeos/components/local_search_service/public/mojom/types_mojom_traits.h +++ b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_ #include <string> -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom-shared.h" -#include "chromeos/components/local_search_service/public/mojom/types.mojom-shared.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom-shared.h" +#include "chromeos/ash/components/local_search_service/public/mojom/types.mojom-shared.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "mojo/public/cpp/bindings/struct_traits.h" namespace mojo { @@ -143,4 +143,4 @@ } // namespace mojo -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_PUBLIC_MOJOM_TYPES_MOJOM_TRAITS_H_
diff --git a/chromeos/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc similarity index 95% rename from chromeos/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc rename to chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc index 57c4dd3..d69a0c328 100644 --- a/chromeos/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc +++ b/chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits_unittest.cc
@@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/public/mojom/types_mojom_traits.h" +#include "chromeos/ash/components/local_search_service/public/mojom/types_mojom_traits.h" #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/public/mojom/types.mojom.h" +#include "chromeos/ash/components/local_search_service/public/mojom/types.mojom.h" #include "mojo/public/cpp/test_support/test_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromeos/components/local_search_service/search_metrics_reporter.cc b/chromeos/ash/components/local_search_service/search_metrics_reporter.cc similarity index 96% rename from chromeos/components/local_search_service/search_metrics_reporter.cc rename to chromeos/ash/components/local_search_service/search_metrics_reporter.cc index 379a0ca8..fb261c62 100644 --- a/chromeos/components/local_search_service/search_metrics_reporter.cc +++ b/chromeos/ash/components/local_search_service/search_metrics_reporter.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/search_metrics_reporter.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" #include "base/check_op.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" -#include "chromeos/components/local_search_service/pref_names.h" +#include "chromeos/ash/components/local_search_service/pref_names.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h"
diff --git a/chromeos/components/local_search_service/search_metrics_reporter.h b/chromeos/ash/components/local_search_service/search_metrics_reporter.h similarity index 85% rename from chromeos/components/local_search_service/search_metrics_reporter.h rename to chromeos/ash/components/local_search_service/search_metrics_reporter.h index f3e2a28..df71613 100644 --- a/chromeos/components/local_search_service/search_metrics_reporter.h +++ b/chromeos/ash/components/local_search_service/search_metrics_reporter.h
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_ #include "base/timer/timer.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/public/mojom/local_search_service.mojom.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "components/metrics/daily_event.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" @@ -78,4 +78,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_METRICS_REPORTER_H_
diff --git a/chromeos/components/local_search_service/search_metrics_reporter_unittest.cc b/chromeos/ash/components/local_search_service/search_metrics_reporter_unittest.cc similarity index 95% rename from chromeos/components/local_search_service/search_metrics_reporter_unittest.cc rename to chromeos/ash/components/local_search_service/search_metrics_reporter_unittest.cc index fcd23b3..0e6b3f47 100644 --- a/chromeos/components/local_search_service/search_metrics_reporter_unittest.cc +++ b/chromeos/ash/components/local_search_service/search_metrics_reporter_unittest.cc
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/search_metrics_reporter.h" +#include "chromeos/ash/components/local_search_service/search_metrics_reporter.h" #include <memory> #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" -#include "chromeos/components/local_search_service/pref_names.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/pref_names.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "components/metrics/daily_event.h" #include "components/prefs/testing_pref_service.h" #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chromeos/components/local_search_service/search_utils.cc b/chromeos/ash/components/local_search_service/search_utils.cc similarity index 93% rename from chromeos/components/local_search_service/search_utils.cc rename to chromeos/ash/components/local_search_service/search_utils.cc index 623895b..3740086 100644 --- a/chromeos/components/local_search_service/search_utils.cc +++ b/chromeos/ash/components/local_search_service/search_utils.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/search_utils.h" +#include "chromeos/ash/components/local_search_service/search_utils.h" #include <algorithm> #include <memory> @@ -16,7 +16,7 @@ #include "base/i18n/unicodestring.h" #include "base/memory/ptr_util.h" #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "chromeos/components/string_matching/sequence_matcher.h" #include "chromeos/components/string_matching/tokenized_string.h" #include "third_party/icu/source/i18n/unicode/translit.h"
diff --git a/chromeos/components/local_search_service/search_utils.h b/chromeos/ash/components/local_search_service/search_utils.h similarity index 85% rename from chromeos/components/local_search_service/search_utils.h rename to chromeos/ash/components/local_search_service/search_utils.h index f5711fc..7e13af1 100644 --- a/chromeos/components/local_search_service/search_utils.h +++ b/chromeos/ash/components/local_search_service/search_utils.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_ #include <string> @@ -35,4 +35,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SEARCH_UTILS_H_
diff --git a/chromeos/components/local_search_service/search_utils_unittest.cc b/chromeos/ash/components/local_search_service/search_utils_unittest.cc similarity index 94% rename from chromeos/components/local_search_service/search_utils_unittest.cc rename to chromeos/ash/components/local_search_service/search_utils_unittest.cc index 435c03d..0a4f35c 100644 --- a/chromeos/components/local_search_service/search_utils_unittest.cc +++ b/chromeos/ash/components/local_search_service/search_utils_unittest.cc
@@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/search_utils.h" +#include "chromeos/ash/components/local_search_service/search_utils.h" #include <algorithm> #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos {
diff --git a/chromeos/components/local_search_service/shared_structs.cc b/chromeos/ash/components/local_search_service/shared_structs.cc similarity index 94% rename from chromeos/components/local_search_service/shared_structs.cc rename to chromeos/ash/components/local_search_service/shared_structs.cc index 8a5e92b..c34dc90 100644 --- a/chromeos/components/local_search_service/shared_structs.cc +++ b/chromeos/ash/components/local_search_service/shared_structs.cc
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include <utility> #include "base/strings/string_split.h" #include "base/strings/string_util.h" -#include "chromeos/components/local_search_service/linear_map_search.h" +#include "chromeos/ash/components/local_search_service/linear_map_search.h" #include "chromeos/components/string_matching/fuzzy_tokenized_string_match.h" #include "chromeos/components/string_matching/tokenized_string.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chromeos/components/local_search_service/shared_structs.h b/chromeos/ash/components/local_search_service/shared_structs.h similarity index 96% rename from chromeos/components/local_search_service/shared_structs.h rename to chromeos/ash/components/local_search_service/shared_structs.h index a9237b4..bb1f4505 100644 --- a/chromeos/components/local_search_service/shared_structs.h +++ b/chromeos/ash/components/local_search_service/shared_structs.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_ #include <string> #include <vector> @@ -179,4 +179,4 @@ } // namespace local_search_service } // namespace ash -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_SHARED_STRUCTS_H_
diff --git a/chromeos/components/local_search_service/test_utils.cc b/chromeos/ash/components/local_search_service/test_utils.cc similarity index 97% rename from chromeos/components/local_search_service/test_utils.cc rename to chromeos/ash/components/local_search_service/test_utils.cc index d01f9bd..7896910 100644 --- a/chromeos/components/local_search_service/test_utils.cc +++ b/chromeos/ash/components/local_search_service/test_utils.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/components/local_search_service/test_utils.h" +#include "chromeos/ash/components/local_search_service/test_utils.h" #include <cmath> #include <map>
diff --git a/chromeos/components/local_search_service/test_utils.h b/chromeos/ash/components/local_search_service/test_utils.h similarity index 82% rename from chromeos/components/local_search_service/test_utils.h rename to chromeos/ash/components/local_search_service/test_utils.h index df749b9f..f29a39c 100644 --- a/chromeos/components/local_search_service/test_utils.h +++ b/chromeos/ash/components/local_search_service/test_utils.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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_ +#define CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_ #include <map> #include <string> @@ -11,7 +11,7 @@ #include <vector> #include "base/strings/utf_string_conversions.h" -#include "chromeos/components/local_search_service/shared_structs.h" +#include "chromeos/ash/components/local_search_service/shared_structs.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos { @@ -43,4 +43,4 @@ } // namespace local_search_service } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_ +#endif // CHROMEOS_ASH_COMPONENTS_LOCAL_SEARCH_SERVICE_TEST_UTILS_H_
diff --git a/chromeos/components/BUILD.gn b/chromeos/components/BUILD.gn index 306a1a44..9ba1179 100644 --- a/chromeos/components/BUILD.gn +++ b/chromeos/components/BUILD.gn
@@ -23,8 +23,6 @@ "//build:chromeos_buildflags", "//chromeos/components/cdm_factory_daemon:unit_tests", "//chromeos/components/feature_usage:unit_tests", - "//chromeos/components/local_search_service:unit_tests", - "//chromeos/components/local_search_service/public/mojom:unit_tests", "//chromeos/components/mojo_bootstrap:unit_tests", "//chromeos/components/onc:unit_tests", "//chromeos/components/quick_answers:unit_tests",
diff --git a/chromeos/components/local_search_service/oop_local_search_service_provider.h b/chromeos/components/local_search_service/oop_local_search_service_provider.h deleted file mode 100644 index d19a7be..0000000 --- a/chromeos/components/local_search_service/oop_local_search_service_provider.h +++ /dev/null
@@ -1,28 +0,0 @@ -// 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 CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ -#define CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_ - -#include "chromeos/components/local_search_service/public/cpp/local_search_service_provider.h" -#include "chromeos/components/local_search_service/public/mojom/local_search_service.mojom-forward.h" -namespace chromeos { -namespace local_search_service { - -// An implementation that runs LocalSearchService in the LSS service -// process. -class OopLocalSearchServiceProvider : public LocalSearchServiceProvider { - public: - OopLocalSearchServiceProvider(); - ~OopLocalSearchServiceProvider() override; - - // LocalSearchServiceProvider: - void BindLocalSearchService( - mojo::PendingReceiver<mojom::LocalSearchService> receiver) override; -}; - -} // namespace local_search_service -} // namespace chromeos - -#endif // CHROMEOS_COMPONENTS_LOCAL_SEARCH_SERVICE_OOP_LOCAL_SEARCH_SERVICE_PROVIDER_H_
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb index 0cc4bf3..431656e 100644 --- a/chromeos/strings/chromeos_strings_am.xtb +++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">የጨለማ ሁነታን አጥፋ</translation> <translation id="1881188606372070653">በሕጋዊ ምክንያቶች የይዘት ለውጦችን ለመጠየቅ ወደ <ph name="BEGIN_LINK1" />የሕግ እገዛ ገጽ<ph name="END_LINK1" /> ይሂዱ። የተወሰነ የመለያ እና የስርዓት መረጃ ለGoogle ሊላክ ይችላል። በእኛ <ph name="BEGIN_LINK2" />የግላዊነት መመሪያ<ph name="END_LINK2" /> እና <ph name="BEGIN_LINK3" />የአገልግሎት ውል<ph name="END_LINK3" /> መሠረት ቴክኒካዊ ችግሮችን ለመፍታትና አገልግሎቶቻችንን ለማሻሻል እንዲያግዝ እርስዎ የሚሰጡንን መረጃ እንጠቀምበታለን።</translation> <translation id="1887850431809612466">የሃርድዌር ክለሳ</translation> +<translation id="1904932688895783618">አንዳንድ ሌሎች አጋዥ ግብዓቶች እዚህ አሉ፦</translation> <translation id="1905710495812624430">የሚፈቀደው ከፍተኛ የሙከራዎች ብዛት ታልፏል።</translation> <translation id="1908234395526491708">የ UDP ጥያቄ አለመሳካቶች</translation> <translation id="1932611479324127242">ባትሪ አቋርጥ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">የመላ ፍለጋ እርምጃዎችን ይሞክሩ</translation> <translation id="2016848882344942759">--ነጭ-መሰየሚያ የለም--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">እባክዎ ከአውታረ መረብ ጋር ይገናኙ እና የማያ ገጽ ማቆያን ለማየት ገጹን እንደገና ይጫኑ።</translation> <translation id="2080070583977670716">ተጨማሪ ቅንብሮች</translation> <translation id="2085089206770112532">የማሳያ ብሩህነት መቀነሻ</translation> <translation id="2105810540595158374">መሣሪያ የጨዋታ መቆጣጠሪያ ነው።</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">የጎራ ድኅረ ቅጥያ ዝምድና</translation> <translation id="7769672763586021400">የሞዴል መታወቂያ</translation> <translation id="7784116172884276937">ምንም የዲኤንኤስ አገልጋዮች አልተዋቀሩም</translation> +<translation id="779591286616261875">አዲስ ሪፖርት ላክ</translation> <translation id="7799817062559422778">የብርሃን ሁነታ</translation> <translation id="780301667611848630">አይ፣ አመሰግናለሁ</translation> <translation id="7805768142964895445">ሁኔታ</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">ይህን ቪዲዮ ተጠቀም</translation> <translation id="9087578468327036362">ይህንን መጠይቅ ሪፖርት ያድርጉ</translation> <translation id="9088306295921699330">የአሁኑ አጠቃቀም</translation> +<translation id="9092255287806472980">ግብረመልስዎ የChrome ስርዓተ ክወናን ለማሻሽል ይረዳል እና በእኛ ቡድን የሚገመገም ይሆናል። በሪፖርቶች ብዛት ምክንያት መልስ መላክ አንችልም።</translation> <translation id="9095775724867566971">PluginVm</translation> <translation id="90977145661420967">መሣሪያውን መከፋፈት ይኖርብዎታል</translation> <translation id="9098156406873149060">የተጠቃሚ ውሂብ ያቆዩት</translation>
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index 87774746..aa89a59 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">إيقاف تشغيل الوضع المُعتِم</translation> <translation id="1881188606372070653">يُرجى الانتقال إلى <ph name="BEGIN_LINK1" />صفحة المساعدة القانونية<ph name="END_LINK1" /> لطلب تغيير المحتوى لأسباب قانونية. قد يتم إرسال بعض المعلومات عن الحساب والنظام إلى Google. وسنستعين بالمعلومات التي تصلنا منك لحل المشاكل التقنية وتحسين خدماتنا وفقًا <ph name="BEGIN_LINK2" />لسياسة الخصوصية<ph name="END_LINK2" /> و<ph name="BEGIN_LINK3" />بنود الخدمة<ph name="END_LINK3" /> لدينا.</translation> <translation id="1887850431809612466">مراجعة الأجهزة</translation> +<translation id="1904932688895783618">إليك بعض المراجع المفيدة الأخرى:</translation> <translation id="1905710495812624430">تم تجاوز الحد الأقصى لعدد المحاولات المسموح بها.</translation> <translation id="1908234395526491708">تعذَّر طلب بروتوكول UDP.</translation> <translation id="1932611479324127242">فصل التيار عن البطارية</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">تجربة خطوات تحديد المشاكل وحلّها</translation> <translation id="2016848882344942759">--لم يتم تغيير العلامة التجارية للجهاز--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">يُرجى الاتصال بشبكة وإعادة تحميل الصفحة لعرض شاشة الاستراحة.</translation> <translation id="2080070583977670716">مزيد من الإعدادات</translation> <translation id="2085089206770112532">تقليل سطوع الشاشة</translation> <translation id="2105810540595158374">الجهاز هو ذراع تحكّم في الألعاب.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">مطابقة لاحقة النطاق</translation> <translation id="7769672763586021400">رقم تعريف النموذج</translation> <translation id="7784116172884276937">لم يتم ضبط أي خوادم لنظام أسماء النطاقات.</translation> +<translation id="779591286616261875">إرسال تقرير جديد</translation> <translation id="7799817062559422778">الوضع الفاتح</translation> <translation id="780301667611848630">لا، شكرًا</translation> <translation id="7805768142964895445">الحالة</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">استخدام هذا الفيديو</translation> <translation id="9087578468327036362">الإبلاغ عن هذا الطلب</translation> <translation id="9088306295921699330">الاستخدام الحالي</translation> +<translation id="9092255287806472980">تساعدنا تعليقاتك في تحسين نظام التشغيل Chrome وسيراجعها فريقنا. وبسبب التقارير التي تصلنا بأعداد هائلة، لن نتمكّن من إرسال ردّ إليك.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">يجب فصل أجزاء الجهاز.</translation> <translation id="9098156406873149060">الاحتفاظ ببيانات المستخدم</translation>
diff --git a/chromeos/strings/chromeos_strings_as.xtb b/chromeos/strings/chromeos_strings_as.xtb index 9776b18..f6f508f4 100644 --- a/chromeos/strings/chromeos_strings_as.xtb +++ b/chromeos/strings/chromeos_strings_as.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">গাঢ় ম’ড অফ কৰক</translation> <translation id="1881188606372070653">আইনী কাৰণৰ বাবে সমলৰ পৰিৱৰ্তনৰ অনুৰোধ জনাবলৈ <ph name="BEGIN_LINK1" />আইন সম্পৰ্কীয় সহায়ক পৃষ্ঠা<ph name="END_LINK1" />লৈ যাওক। একাউণ্ট আৰু ছিষ্টেম সম্পৰ্কীয় কিছুমান তথ্য Googleলৈ পঠিওৱা হ’ব পাৰে। আপুনি আমাক জনোৱা তথ্যখিনি আমি কাৰিকৰী সমস্যাসমূহ সমাধান কৰিবলৈ আৰু আমাৰ সেৱা উন্নত কৰিবলৈ <ph name="BEGIN_LINK2" />গোপনীয়তা নীতি<ph name="END_LINK2" /> আৰু <ph name="BEGIN_LINK3" />সেৱাৰ চৰ্তাৱলী<ph name="END_LINK3" /> অনুযায়ী ব্যৱহাৰ কৰিম।</translation> <translation id="1887850431809612466">হাৰ্ডৱেৰৰ পুনৰীক্ষণ</translation> +<translation id="1904932688895783618">এইবোৰ অন্য কিছুমান সহায়ক উৎস:</translation> <translation id="1905710495812624430">চেষ্টা কৰাৰ সৰ্বাধিক সীমা অতিক্ৰম কৰিছে।</translation> <translation id="1908234395526491708">বিফল UDP অনুৰোধসমূহ</translation> <translation id="1932611479324127242">বেটাৰী কাটঅফ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">সমস্যা নিবাৰণৰ পদক্ষেপসমূহ কাৰ্যকৰী কৰি চাওক</translation> <translation id="2016848882344942759">--কোনো বগা-লেবেল নাই--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">অনুগ্ৰহ কৰি এটা নেটৱৰ্কৰ সৈতে সংযোগ কৰক আৰু স্ক্ৰীন ছেভাৰ চাবলৈ পৃষ্ঠাখন পুনৰ ল’ড কৰক।</translation> <translation id="2080070583977670716">অধিক ছেটিং</translation> <translation id="2085089206770112532">ডিছপ্লে’ৰ উজ্জ্বলতা ডাউন</translation> <translation id="2105810540595158374">ডিভাইচটো এটা গে’ম নিয়ন্ত্ৰক।</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">ডমেইন চাফিক্সৰ সৈতে মিলা</translation> <translation id="7769672763586021400">ম’ডেল আইডি:</translation> <translation id="7784116172884276937">কোনো DNS ছাৰ্ভাৰ ছেট আপ কৰা হোৱা নাই</translation> +<translation id="779591286616261875">এটা নতুন ৰিপ’ৰ্ট পঠিয়াওক</translation> <translation id="7799817062559422778">উজ্জ্বল ম’ড</translation> <translation id="780301667611848630">নালাগে, ধন্যবাদ</translation> <translation id="7805768142964895445">স্থিতি</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">এই ভিডিঅ'টো ব্যৱহাৰ কৰক</translation> <translation id="9087578468327036362">এই প্ৰশ্নটোৰ অভিযোগ দিয়ক</translation> <translation id="9088306295921699330">এতিয়ালৈকে কৰা ব্যৱহাৰৰ পৰিমাণ</translation> +<translation id="9092255287806472980">আপোনাৰ মতামতে Chrome OS উন্নত কৰাত সহায় কৰে আৰু আমাৰ দলে সেয়া পৰ্যালোচনা কৰিব। ৰিপ’ৰ্টৰ সংখ্যা বেছি হোৱাৰ বাবে আমি কোনো প্ৰত্যুত্তৰ পঠিয়াব নোৱাৰিম।</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">আপুনি ডিভাইচটোৰ অংশবোৰ পৃথক কৰিব লাগিব</translation> <translation id="9098156406873149060">ব্যৱহাৰকাৰীৰ ডেটা ৰাখক</translation>
diff --git a/chromeos/strings/chromeos_strings_az.xtb b/chromeos/strings/chromeos_strings_az.xtb index 0980207..8ff7c18 100644 --- a/chromeos/strings/chromeos_strings_az.xtb +++ b/chromeos/strings/chromeos_strings_az.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Qaranlıq rejimi deaktiv edin</translation> <translation id="1881188606372070653">Hüquqi səbəbdən məzmun dəyişikliyini tələb etmək üçün <ph name="BEGIN_LINK1" />Hüquqi Yardım səhifəsinə<ph name="END_LINK1" /> keçin. Bəzi hesab və sistem məlumatları Google'a göndərilə bilər. Verdiyiniz məlumatı <ph name="BEGIN_LINK2" />Məxfilik Siyasəti<ph name="END_LINK2" /> və <ph name="BEGIN_LINK3" />Xidmət Şərtləri<ph name="END_LINK3" /> subyekti olan xidmətlərimizin daha da qabaqcıl edilməsi üçün istifadə ediləcək.</translation> <translation id="1887850431809612466">Avadanlıq versiyası</translation> +<translation id="1904932688895783618">Digər faydalı resurslar:</translation> <translation id="1905710495812624430">Maksimum icazə verilən cəhdlər bitdi</translation> <translation id="1908234395526491708">Alınmayan UDP sorğuları</translation> <translation id="1932611479324127242">Enerji bitdikdə söndürülmə</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Nasazlıqların aradan qaldırılması addımlarını sınayın</translation> <translation id="2016848882344942759">--ağ etiketsiz--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Ekran qoruyucusu görmək üçün şəbəkəyə qoşulun və səhifəni yenidən yükləyin.</translation> <translation id="2080070583977670716">Digər ayarlar</translation> <translation id="2085089206770112532">Displey parlaqlığını azaldın</translation> <translation id="2105810540595158374">Cihaz oyun nizamlayıcısıdır.</translation> @@ -772,6 +774,7 @@ <translation id="7763470514545477072">Domen sonluğunun uyğunluğu</translation> <translation id="7769672763586021400">Model ID</translation> <translation id="7784116172884276937">DNS serveri ayarlanmayıb</translation> +<translation id="779591286616261875">Yeni hesabat göndərin</translation> <translation id="7799817062559422778">İşıqlı rejim</translation> <translation id="780301667611848630">Yox, çox sağ olun</translation> <translation id="7805768142964895445">Status</translation> @@ -924,6 +927,7 @@ <translation id="9082718469794970195">Bu videonu istifadə edin</translation> <translation id="9087578468327036362">Bu sorğunu bildirin</translation> <translation id="9088306295921699330">Cari istifadə</translation> +<translation id="9092255287806472980">Rəyiniz Chrome OS'i təkmilləşdirməyə kömək edir və komandamız tərəfindən nəzərdən keçiriləcək. Çox sayda hesabat olduğu üçün cavab göndərə bilməyəcəyik.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Cihaz; ayırmalısınız</translation> <translation id="9098156406873149060">İstifadəçi datasını saxlayın</translation>
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 320a292e..7212bf3 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Изключване на тъмния режим</translation> <translation id="1881188606372070653">Отворете <ph name="BEGIN_LINK1" />страницата за правна помощ<ph name="END_LINK1" />, за да заявите промени в съдържанието по правни причини. Част от информацията за профила и системата може да бъде изпратена до Google. Ще използваме предоставените от вас данни за отстраняване на технически проблеми и за подобряване на услугите ни в съответствие с <ph name="BEGIN_LINK2" />Декларацията за поверителност<ph name="END_LINK2" /> и <ph name="BEGIN_LINK3" />Общите ни условия<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Версия на хардуера</translation> +<translation id="1904932688895783618">Ето някои други полезни ресурси:</translation> <translation id="1905710495812624430">Максималният брой опити е надвишен.</translation> <translation id="1908234395526491708">Неуспешни заявки през UDP</translation> <translation id="1932611479324127242">Прекъсване на захранването от батерията</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Изпробвайте стъпките за отстраняване на неизправности</translation> <translation id="2016848882344942759">– без бял етикет –</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Моля, свържете се с мрежа и презаредете страницата, за да прегледате скрийнсейвъра.</translation> <translation id="2080070583977670716">Още настройки</translation> <translation id="2085089206770112532">Намаляване на яркостта на дисплея</translation> <translation id="2105810540595158374">Устройството е контролер за игри.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Съответствие на суфикса на домейна</translation> <translation id="7769672763586021400">Идент. № на модела</translation> <translation id="7784116172884276937">Не са настроени DNS сървъри</translation> +<translation id="779591286616261875">Изпращане на нов сигнал</translation> <translation id="7799817062559422778">Светъл режим</translation> <translation id="780301667611848630">Не, благодаря</translation> <translation id="7805768142964895445">Състояние</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Използване на този видеоклип</translation> <translation id="9087578468327036362">Подаване на сигнал за тази заявка</translation> <translation id="9088306295921699330">Текущо използване</translation> +<translation id="9092255287806472980">Отзивите ви помагат за подобряването на Chrome OS и ще бъдат прегледани от екипа ни. Поради големия брой сигнали не можем да изпратим отговор.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Ще трябва да разглобите устройството</translation> <translation id="9098156406873149060">Запазване на потребителските данни</translation>
diff --git a/chromeos/strings/chromeos_strings_de.xtb b/chromeos/strings/chromeos_strings_de.xtb index 4147732..3bcc199 100644 --- a/chromeos/strings/chromeos_strings_de.xtb +++ b/chromeos/strings/chromeos_strings_de.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Dunklen Modus ausschalten</translation> <translation id="1881188606372070653">Auf der Seite <ph name="BEGIN_LINK1" />Rechtliche Hinweise<ph name="END_LINK1" /> kannst du Inhaltsänderungen aus rechtlichen Gründen beantragen. Einige Konto- und Systeminformationen werden möglicherweise an Google gesendet. Wir verwenden diese Informationen, um unter Einhaltung der <ph name="BEGIN_LINK2" />Datenschutzerklärung<ph name="END_LINK2" /> und der <ph name="BEGIN_LINK3" />Nutzungsbedingungen<ph name="END_LINK3" /> von Google technische Probleme zu beheben und unsere Dienste zu optimieren.</translation> <translation id="1887850431809612466">Hardware-Version</translation> +<translation id="1904932688895783618">Hier findest du hilfreiches Infomaterial:</translation> <translation id="1905710495812624430">Die maximal zulässige Anzahl an Versuchen wurde überschritten.</translation> <translation id="1908234395526491708">Fehlgeschlagene UDP-Anfragen</translation> <translation id="1932611479324127242">Akku abschalten</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Schritte zur Fehlerbehebung ausprobieren</translation> <translation id="2016848882344942759">--kein White Label--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Stelle eine Verbindung zu einem Netzwerk her und lade die Seite neu, um den Bildschirmschoner anzusehen.</translation> <translation id="2080070583977670716">Weitere Einstellungen</translation> <translation id="2085089206770112532">Displayhelligkeit verringern</translation> <translation id="2105810540595158374">Das Gerät ist ein Controller.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Domain-Suffix stimmt überein</translation> <translation id="7769672763586021400">Modell-ID</translation> <translation id="7784116172884276937">Es sind keine DNS-Server eingerichtet</translation> +<translation id="779591286616261875">Neuen Bericht senden</translation> <translation id="7799817062559422778">Heller Modus</translation> <translation id="780301667611848630">Kein Interesse</translation> <translation id="7805768142964895445">Status</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Dieses Video verwenden</translation> <translation id="9087578468327036362">Diese Anfrage melden</translation> <translation id="9088306295921699330">Aktuelle Nutzung</translation> +<translation id="9092255287806472980">Dein Feedback hilft uns, ChromeOS zu verbessern, und wird von unserem Team geprüft. Da wir sehr viele Rückmeldungen erhalten, können wir dir nicht persönlich antworten.</translation> <translation id="9095775724867566971">PluginVM</translation> <translation id="90977145661420967">Du musst das Gerät auseinanderbauen</translation> <translation id="9098156406873149060">Nutzerdaten beibehalten</translation>
diff --git a/chromeos/strings/chromeos_strings_es-419.xtb b/chromeos/strings/chromeos_strings_es-419.xtb index e8dbd98..73ca5f1 100644 --- a/chromeos/strings/chromeos_strings_es-419.xtb +++ b/chromeos/strings/chromeos_strings_es-419.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Desactivar el modo oscuro</translation> <translation id="1881188606372070653">Ve a la <ph name="BEGIN_LINK1" />página de ayuda legal<ph name="END_LINK1" /> para solicitar cambios de contenido por motivos legales. Es posible que se envíe a Google cierta información de la cuenta y el sistema. Usaremos los datos que nos proporciones para solucionar problemas técnicos y mejorar nuestros servicios, sujeto a nuestra <ph name="BEGIN_LINK2" />Política de Privacidad<ph name="END_LINK2" /> y nuestras <ph name="BEGIN_LINK3" />Condiciones del Servicio<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Revisión de hardware</translation> +<translation id="1904932688895783618">A continuación, se incluyen otros recursos útiles:</translation> <translation id="1905710495812624430">Se superó la cantidad máxima de intentos permitidos.</translation> <translation id="1908234395526491708">Fallos de solicitudes de UDP</translation> <translation id="1932611479324127242">Corte de batería</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Probar los pasos para solucionar el problema</translation> <translation id="2016848882344942759">--sin etiqueta blanca--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Conéctate a una red y vuelve a cargar la página para ver el protector de pantalla.</translation> <translation id="2080070583977670716">Más opciones de configuración</translation> <translation id="2085089206770112532">Disminuir el brillo de la pantalla</translation> <translation id="2105810540595158374">El dispositivo es un control de juegos.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Coincidencia del sufijo de dominio</translation> <translation id="7769672763586021400">ID del modelo</translation> <translation id="7784116172884276937">No hay ningún servidor DNS configurado</translation> +<translation id="779591286616261875">Enviar informe nuevo</translation> <translation id="7799817062559422778">Modo claro</translation> <translation id="780301667611848630">No, gracias</translation> <translation id="7805768142964895445">Estado</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Usar este video</translation> <translation id="9087578468327036362">Denuncia esta búsqueda</translation> <translation id="9088306295921699330">Uso actual</translation> +<translation id="9092255287806472980">Tus comentarios ayudan a mejorar Chrome OS. Nuestro equipo los revisará. Debido a la gran cantidad de informes, no podremos enviarte una respuesta.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Tendrás que desarmar el dispositivo</translation> <translation id="9098156406873149060">Guardar datos del usuario</translation>
diff --git a/chromeos/strings/chromeos_strings_fi.xtb b/chromeos/strings/chromeos_strings_fi.xtb index 2d45e7c..a1839a9 100644 --- a/chromeos/strings/chromeos_strings_fi.xtb +++ b/chromeos/strings/chromeos_strings_fi.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Laita tumma tila pois päältä</translation> <translation id="1881188606372070653">Voit pyytää juridisiin syihin perustuvia sisältömuutoksia <ph name="BEGIN_LINK1" />Oikeudellinen apu ‑sivulla<ph name="END_LINK1" />. Joitakin tili- ja järjestelmätietoja voidaan lähettää Googlelle. Käytämme ilmoittamiasi tietoja teknisten ongelmien ratkaisemiseen ja palvelujemme kehittämiseen <ph name="BEGIN_LINK2" />tietosuojakäytäntömme<ph name="END_LINK2" /> ja <ph name="BEGIN_LINK3" />käyttöehtojemme<ph name="END_LINK3" /> mukaisesti.</translation> <translation id="1887850431809612466">Laitteistoversio</translation> +<translation id="1904932688895783618">Hyödyllistä lisätietoa:</translation> <translation id="1905710495812624430">Yritysten enimmäismäärä ylitettiin.</translation> <translation id="1908234395526491708">Epäonnistuneita UDP-pyyntöjä</translation> <translation id="1932611479324127242">Akun sammutus</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Kokeile ongelmanratkaisuohjeita</translation> <translation id="2016848882344942759">--ei tuotemerkitön--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Muodosta verkkoyhteys ja päivitä sivu nähdäksesi näytönsäästäjän.</translation> <translation id="2080070583977670716">Lisää asetuksia</translation> <translation id="2085089206770112532">Vähennä näytön kirkkautta</translation> <translation id="2105810540595158374">Laite on peliohjain.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Verkkotunnuksen päätteen vastaavuus</translation> <translation id="7769672763586021400">Mallitunnus</translation> <translation id="7784116172884276937">DNS-palvelimia ei ole määritetty</translation> +<translation id="779591286616261875">Lähetä uusi raportti</translation> <translation id="7799817062559422778">Vaalea tila</translation> <translation id="780301667611848630">Ei kiitos</translation> <translation id="7805768142964895445">Tila</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Käytä tätä videota</translation> <translation id="9087578468327036362">Ilmoita tästä kyselystä</translation> <translation id="9088306295921699330">Nykyinen käyttö</translation> +<translation id="9092255287806472980">Palautteesi auttaa meitä parantamaan Chrome-käyttöjärjestelmää, ja tiimimme tarkistaa sen. Ilmoitusten suuren määrän vuoksi emme voi lähettää vastausta.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Sinun pitää purkaa laite</translation> <translation id="9098156406873149060">Säilytä käyttäjädata</translation>
diff --git a/chromeos/strings/chromeos_strings_fr-CA.xtb b/chromeos/strings/chromeos_strings_fr-CA.xtb index 8c08c1a..42aee8c 100644 --- a/chromeos/strings/chromeos_strings_fr-CA.xtb +++ b/chromeos/strings/chromeos_strings_fr-CA.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Désactiver le mode sombre</translation> <translation id="1881188606372070653">Accédez à la <ph name="BEGIN_LINK1" />page d'aide pour les questions d'ordre juridique<ph name="END_LINK1" /> afin de demander des modifications de contenu pour des raisons juridiques. Certains renseignements relatifs à votre compte et à votre système peuvent être envoyés à Google. Nous utiliserons les renseignements que vous nous fournissez pour vous aider à résoudre les problèmes techniques et pour améliorer nos services, sous réserve de notre <ph name="BEGIN_LINK2" />politique de confidentialité<ph name="END_LINK2" /> et de nos <ph name="BEGIN_LINK3" />conditions d'utilisation<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Révision du matériel</translation> +<translation id="1904932688895783618">Voici quelques autres ressources utiles :</translation> <translation id="1905710495812624430">Nombre maximal autorisé de tentatives atteint.</translation> <translation id="1908234395526491708">Échecs des demandes UDP</translation> <translation id="1932611479324127242">Déconnexion de la pile</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Essayer les étapes de dépannage</translation> <translation id="2016848882344942759">--pas de marque blanque--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Veuillez vous connecter à un réseau et actualiser la page pour afficher l'écran de veille.</translation> <translation id="2080070583977670716">Plus de paramètres</translation> <translation id="2085089206770112532">Diminuer la luminosité de l'écran</translation> <translation id="2105810540595158374">L'appareil est une manette de jeu.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Correspondance du suffixe de domaine</translation> <translation id="7769672763586021400">Identifiant de modèle</translation> <translation id="7784116172884276937">Aucun serveur DNS n'est configuré</translation> +<translation id="779591286616261875">Envoyer un nouveau rapport</translation> <translation id="7799817062559422778">Mode clair</translation> <translation id="780301667611848630">Non merci</translation> <translation id="7805768142964895445">État</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Utiliser cette vidéo</translation> <translation id="9087578468327036362">Signalez cette requête</translation> <translation id="9088306295921699330">Utilisation actuelle</translation> +<translation id="9092255287806472980">Vos commentaires contribuent à améliorer Chrome OS; ils seront examinés par notre équipe. En raison du grand nombre de rapports, nous ne serons pas en mesure de vous envoyer de réponse.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Vous devrez désassembler l'appareil</translation> <translation id="9098156406873149060">Conserver les données de l'utilisateur</translation>
diff --git a/chromeos/strings/chromeos_strings_fr.xtb b/chromeos/strings/chromeos_strings_fr.xtb index 34a3dbc..903be1cb 100644 --- a/chromeos/strings/chromeos_strings_fr.xtb +++ b/chromeos/strings/chromeos_strings_fr.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Annuler le mode sombre</translation> <translation id="1881188606372070653">Accédez à la <ph name="BEGIN_LINK1" />page d'aide des demandes légales<ph name="END_LINK1" /> pour demander des modifications de contenu pour des raisons juridiques. Certaines informations concernant votre compte et votre système pourront être envoyées à Google. Nous utiliserons les données fournies pour résoudre des problèmes techniques et pour améliorer nos services, conformément à nos <ph name="BEGIN_LINK2" />Règles de confidentialité<ph name="END_LINK2" /> et à nos <ph name="BEGIN_LINK3" />Conditions d'utilisation<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Version du matériel</translation> +<translation id="1904932688895783618">Voici d'autres ressources utiles :</translation> <translation id="1905710495812624430">Vous avez atteint le nombre maximal autorisé de tentatives.</translation> <translation id="1908234395526491708">Échec de la requête UDP</translation> <translation id="1932611479324127242">Désactiver la batterie</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Essayer la procédure de dépannage</translation> <translation id="2016848882344942759">--pas de marque blanche--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Connectez-vous à un réseau et actualisez la page pour voir l'économiseur d'écran.</translation> <translation id="2080070583977670716">Plus de paramètres</translation> <translation id="2085089206770112532">Baisser la luminosité de l'écran</translation> <translation id="2105810540595158374">L'appareil est une manette de jeu.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Correspondance du suffixe de domaine</translation> <translation id="7769672763586021400">ID du modèle</translation> <translation id="7784116172884276937">Aucun serveur DNS configuré</translation> +<translation id="779591286616261875">Envoyer un nouveau rapport</translation> <translation id="7799817062559422778">Mode clair</translation> <translation id="780301667611848630">Non merci</translation> <translation id="7805768142964895445">État</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Utiliser cette vidéo</translation> <translation id="9087578468327036362">Signaler cette requête</translation> <translation id="9088306295921699330">Utilisation actuelle</translation> +<translation id="9092255287806472980">Vos commentaires nous aident à améliorer Chrome OS. Ils seront examinés par notre équipe. Étant donné la multitude de rapports que nous recevons, nous ne sommes pas en mesure d'y répondre.</translation> <translation id="9095775724867566971">PluginVM</translation> <translation id="90977145661420967">Vous devrez démonter l'appareil</translation> <translation id="9098156406873149060">Garder les données utilisateur</translation>
diff --git a/chromeos/strings/chromeos_strings_gl.xtb b/chromeos/strings/chromeos_strings_gl.xtb index 0a16533..40dbc63e 100644 --- a/chromeos/strings/chromeos_strings_gl.xtb +++ b/chromeos/strings/chromeos_strings_gl.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Quitar modo escuro</translation> <translation id="1881188606372070653">Accede á <ph name="BEGIN_LINK1" />páxina Axuda legal<ph name="END_LINK1" /> para solicitar cambios de contido por razóns legais. Pódese enviar parte da información da conta e do sistema a Google. Utilizaremos os datos que nos indiques para solucionar problemas técnicos e mellorar os nosos servizos segundo o estipulado na <ph name="BEGIN_LINK2" />Política de privacidade<ph name="END_LINK2" /> e nas <ph name="BEGIN_LINK3" />Condicións de servizo<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Revisión do hardware</translation> +<translation id="1904932688895783618">Aquí tes outros recursos útiles:</translation> <translation id="1905710495812624430">Superouse o número máximo de intentos.</translation> <translation id="1908234395526491708">Erros nas solicitudes de UDP</translation> <translation id="1932611479324127242">Desconectar batería</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Probar os pasos para tentar solucionar o problema</translation> <translation id="2016848882344942759">--sen etiqueta branca--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Para ver o protector de pantalla, conéctate a unha rede e volve cargar a páxina.</translation> <translation id="2080070583977670716">Máis opcións de configuración</translation> <translation id="2085089206770112532">Reducir brillo da pantalla</translation> <translation id="2105810540595158374">O dispositivo é un mando de xogos.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Coincidencia do sufixo de dominio</translation> <translation id="7769672763586021400">ID do modelo</translation> <translation id="7784116172884276937">Non hai ningún servidor DNS configurado</translation> +<translation id="779591286616261875">Enviar informe novo</translation> <translation id="7799817062559422778">Modo claro</translation> <translation id="780301667611848630">Non, grazas</translation> <translation id="7805768142964895445">Estado</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Usar este vídeo</translation> <translation id="9087578468327036362">Informar desta consulta</translation> <translation id="9088306295921699330">En uso</translation> +<translation id="9092255287806472980">Os teus comentarios axudan a mellorar Chrome OS. O noso equipo revisaraos. Non imos poder enviar unha resposta debido ao gran número de informes que recibimos.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Vas ter que desmontar o dispositivo</translation> <translation id="9098156406873149060">Manter datos do usuario</translation>
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index 69eac6d..a7902ce 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">ઘેરો મોડ બંધ કરો</translation> <translation id="1881188606372070653">કાનૂની કારણોસર કન્ટેન્ટમાં ફેરફારની વિનંતી કરવા માટે <ph name="BEGIN_LINK1" />કાનૂની સહાય પેજ<ph name="END_LINK1" /> પર જાઓ. એકાઉન્ટ અને સિસ્ટમની અમુક માહિતી Googleને મોકલવામાં આવી શકે છે. તમે અમને જે માહિતી આપશો, તેનો ઉપયોગ અમે અમારી <ph name="BEGIN_LINK2" />પ્રાઇવસી પૉલિસી<ph name="END_LINK2" /> અને <ph name="BEGIN_LINK3" />સેવાની શરતો<ph name="END_LINK3" />ને આધીન રહીને ટેક્નિકલ સમસ્યાઓના નિવારણ માટે અને અમારી સેવાઓને બહેતર બનાવવા માટે કરીશું.</translation> <translation id="1887850431809612466">હાર્ડવેર પુનરાવર્તન</translation> +<translation id="1904932688895783618">અહીં કેટલાક અન્ય સહાયરૂપ સંસાધનો આપવામાં આવ્યા છે:</translation> <translation id="1905710495812624430">મહત્તમ મંજૂર પ્રયત્નોની સંખ્યા ઓળંગાઈ.</translation> <translation id="1908234395526491708">UDP વિનંતી નિષ્ફળ થઈ</translation> <translation id="1932611479324127242">બૅટરી કટઑફ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">સમસ્યા નિવારણના પગલાં અજમાવી જુઓ</translation> <translation id="2016848882344942759">--કોઈ સફેદ-લેબલ નથી--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">કૃપા કરીને નેટવર્ક સાથે કનેક્ટ કરો અને સ્ક્રીન સેવર જોવા માટે પેજને ફરીથી લોડ કરો.</translation> <translation id="2080070583977670716">વધુ સેટિંગ</translation> <translation id="2085089206770112532">ડિસ્પ્લેનું બ્રાઇટનેસ ઘટાડવાની કી</translation> <translation id="2105810540595158374">ડિવાઇસ એક ગેમ કન્ટ્રોલર છે.</translation> @@ -772,6 +774,7 @@ <translation id="7763470514545477072">ડોમેન સફિક્સનો મેળ</translation> <translation id="7769672763586021400">મોડલ ID</translation> <translation id="7784116172884276937">કોઈપણ DNS સર્વરનું સેટઅપ કરવામાં આવ્યું નથી</translation> +<translation id="779591286616261875">નવો રિપોર્ટ મોકલો</translation> <translation id="7799817062559422778">લાઇટ મોડ</translation> <translation id="780301667611848630">નહીં, આભાર</translation> <translation id="7805768142964895445">સ્થિતિ</translation> @@ -924,6 +927,7 @@ <translation id="9082718469794970195">આ વીડિયોનો ઉપયોગ કરો</translation> <translation id="9087578468327036362">આ ક્વેરીની જાણ કરો</translation> <translation id="9088306295921699330">વર્તમાન વપરાશ</translation> +<translation id="9092255287806472980">તમારો પ્રતિસાદ Chrome OSને બહેતર બનાવવામાં મદદ કરે છે અને અમારી ટીમ દ્વારા તેનો રિવ્યૂ કરવામાં આવે છે. મોટી સંખ્યામાં મળેલા રિપોર્ટને કારણે, અમે કોઈ જવાબ મોકલી શકીશું નહીં.</translation> <translation id="9095775724867566971">PluginVM</translation> <translation id="90977145661420967">તમારે ડિવાઇસને અલગ કરવાની જરૂર પડશે</translation> <translation id="9098156406873149060">વપરાશકર્તાનો ડેટા રાખો</translation>
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index 78a661d9..0f1abcf 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">השבתת המצב הכהה</translation> <translation id="1881188606372070653">אפשר לעבור אל <ph name="BEGIN_LINK1" />דף העזרה המשפטית<ph name="END_LINK1" /> כדי לבקש שינויים בתוכן מסיבות משפטיות. פרטים מסוימים על החשבון והמערכת עשויים להישלח ל-Google. אנחנו נשתמש במידע שיתקבל ממך כדי לטפל בבעיות טכניות ולשפר את השירותים שלנו, בכפוף ל<ph name="BEGIN_LINK2" />מדיניות הפרטיות<ph name="END_LINK2" /> ו<ph name="BEGIN_LINK3" />לתנאים ולהגבלות<ph name="END_LINK3" /> שלנו.</translation> <translation id="1887850431809612466">שכתוב חומרה</translation> +<translation id="1904932688895783618">הנה עוד כמה מקורות מידע שימושיים:</translation> <translation id="1905710495812624430">חריגה ממספר הניסיונות המרבי המותר.</translation> <translation id="1908234395526491708">בקשות UDP נכשלו</translation> <translation id="1932611479324127242">ניתוק הסוללה</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">להוראות לפתרון בעיות</translation> <translation id="2016848882344942759">--לא מכשיר גנרי--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">כדי לצפות בשומר המסך, מתחברים לרשת וטוענים מחדש את הדף.</translation> <translation id="2080070583977670716">הגדרות נוספות</translation> <translation id="2085089206770112532">הפחתת הבהירות של התצוגה</translation> <translation id="2105810540595158374">המכשיר הוא שלט לגיימינג.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">התאמה של סיומות אתרים</translation> <translation id="7769672763586021400">מזהה דגם</translation> <translation id="7784116172884276937">לא הוגדרו שרתי DNS</translation> +<translation id="779591286616261875">שליחת דוח חדש</translation> <translation id="7799817062559422778">מצב בהיר</translation> <translation id="780301667611848630">לא תודה</translation> <translation id="7805768142964895445">סטטוס</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">שימוש בסרטון הזה</translation> <translation id="9087578468327036362">דיווח על השאילתה הזו</translation> <translation id="9088306295921699330">שימוש נוכחי</translation> +<translation id="9092255287806472980">המשוב שלך עוזר לשפר את Chrome OS, והצוות שלנו יבדוק אותו. אנחנו מקבלים הרבה דיווחים, ולכן לא נוכל לשלוח תשובה.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">יהיה צורך לפרק את המכשיר</translation> <translation id="9098156406873149060">שמירת נתוני המשתמש</translation>
diff --git a/chromeos/strings/chromeos_strings_ka.xtb b/chromeos/strings/chromeos_strings_ka.xtb index 6ecb060..c12ac39 100644 --- a/chromeos/strings/chromeos_strings_ka.xtb +++ b/chromeos/strings/chromeos_strings_ka.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">მუქი რეჟიმის გამორთვა</translation> <translation id="1881188606372070653">გადადით <ph name="BEGIN_LINK1" />სამართლებრივი დახმარების გვერდზე<ph name="END_LINK1" />, რათა მოითხოვოთ კონტენტის ცვლილება სამართლებრივი მიზეზებით. ანგარიშისა და სისტემის შესახებ გარკვეული ინფორმაცია შეიძლება გაეგზავნოს Google-ს. თქვენ მიერ მოწოდებულ ინფორმაციას ტექნიკური პრობლემების მოსაგვარებლად და ჩვენი სერვისების გასაუმჯობესებლად გამოვიყენებთ, ჩვენი <ph name="BEGIN_LINK2" />კონფიდენციალურობის დებულებისა<ph name="END_LINK2" /> და <ph name="BEGIN_LINK3" />მომსახურების პირობების<ph name="END_LINK3" /> შესაბამისად.</translation> <translation id="1887850431809612466">აპარატურის ვერსია</translation> +<translation id="1904932688895783618">გთავაზობთ სხვა სასარგებლო რესურსებს:</translation> <translation id="1905710495812624430">გადაჭარბებულია მცდელობათა მაქსიმალური რაოდენობა.</translation> <translation id="1908234395526491708">წარუმატებელი UDP მოთხოვნები</translation> <translation id="1932611479324127242">ბარატერის გათიშვის პროცედურა</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">გამოცადეთ დეფექტების აღმოფხვრის საფეხურები</translation> <translation id="2016848882344942759">--თეთრი ეტიკეტის გარეშე--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">ეკრანმზოგის სანახავად დაუკავშირდით ქსელს და გადატვირთეთ გვერდი.</translation> <translation id="2080070583977670716">დამატებითი პარამეტრები</translation> <translation id="2085089206770112532">ეკრანის სიკაშკაშის დაკლება</translation> <translation id="2105810540595158374">მოწყობილობა არის სათამაშო კონტროლერი.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">დომენის სუფიქსის დამთხვევა</translation> <translation id="7769672763586021400">მოდელის ID</translation> <translation id="7784116172884276937">DNS სერვერები არ არის დაყენებული</translation> +<translation id="779591286616261875">ახალი ანგარიშის გაგზავნა</translation> <translation id="7799817062559422778">ღია რეჟიმი</translation> <translation id="780301667611848630">არა, მადლობთ</translation> <translation id="7805768142964895445">სტატუსი</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">ამ ვიდეოს გამოყენება</translation> <translation id="9087578468327036362">მოხსენება ამ მოთხოვნის შესახებ</translation> <translation id="9088306295921699330">ამჟამად გამოყენებული</translation> +<translation id="9092255287806472980">თქვენი გამოხმაურება ხელს უწყობს Chrome OS-ის გაუმჯობესებას — მას ჩვენი გუნდი გაეცნობა. მომართვების რაოდენობიდან გამომდინარე, ყველას ინდივიდუალურად ვერ ვუპასუხებთ.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">მოწყობილობის დაშლა დაგჭირდებათ</translation> <translation id="9098156406873149060">მომხმარებლების მონაცემების შენარჩუნება</translation>
diff --git a/chromeos/strings/chromeos_strings_lo.xtb b/chromeos/strings/chromeos_strings_lo.xtb index 3ff1ebe..659470b 100644 --- a/chromeos/strings/chromeos_strings_lo.xtb +++ b/chromeos/strings/chromeos_strings_lo.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">ປິດໂໝດມືດ</translation> <translation id="1881188606372070653">ເຂົ້າໄປ <ph name="BEGIN_LINK1" />ໜ້າຊ່ວຍເຫຼືອທາງກົດໝາຍ<ph name="END_LINK1" /> ເພື່ອຮ້ອງຂໍການປ່ຽນແປງເນື້ອຫາດ້ວຍເຫດຜົນທາງກົດໝາຍ. ຂໍ້ມູນບັນຊີ ແລະ ຂໍ້ມູນລະບົບບາງຢ່າງອາດຖືກສົ່ງໄປໃຫ້ Google. ພວກເຮົາຈະໃຊ້ຂໍ້ມູນທີ່ທ່ານມອບໃຫ້ພວກເຮົາເພື່ອແກ້ໄຂບັນຫາທາງເທັກນິກ ແລະ ປັບປຸງບໍລິການຂອງພວກເຮົາ, ເຊິ່ງຈະເປັນໄປຕາມ <ph name="BEGIN_LINK2" />ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ<ph name="END_LINK2" /> ແລະ <ph name="BEGIN_LINK3" />ຂໍ້ກຳນົດບໍລິການຂອງພວກເຮົາ<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">ການປັບປຸງແກ້ໄຂຮາດແວ</translation> +<translation id="1904932688895783618">ນີ້ແມ່ນຊັບພະຍາກອນທີ່ມີປະໂຫຍດຈຳນວນໜຶ່ງ:</translation> <translation id="1905710495812624430">ເກີນຈຳນວນຄວາມພະຍາຍາມສູງສຸດແລ້ວ.</translation> <translation id="1908234395526491708">ຂໍ UDP ບໍ່ສຳເລັດ</translation> <translation id="1932611479324127242">ຕັດແຮງດັນໄຟຟ້າຂອງແບັດເຕີຣີ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">ກະລຸນາລອງເຮັດຂັ້ນຕອນການແກ້ໄຂບັນຫາ</translation> <translation id="2016848882344942759">--ບໍ່ມີ white-label--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">ກະລຸນາເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍ ແລະ ໂຫຼດໜ້າຄືນໃໝ່ເພື່ອເບິ່ງຕົວພັກໜ້າຈໍ.</translation> <translation id="2080070583977670716">ການຕັ້ງຄ່າເພີ່ມເຕີມ</translation> <translation id="2085089206770112532">ຫຼຸດຄວາມສະຫວ່າງການສະແດງຜົນ</translation> <translation id="2105810540595158374">ອຸປະກອນແມ່ນມືເກມ.</translation> @@ -775,6 +777,7 @@ <translation id="7763470514545477072">ຈັບຄູ່ສ່ວນຕໍ່ທ້າຍຂອງໂດເມນ</translation> <translation id="7769672763586021400">ID ຮຸ່ນ</translation> <translation id="7784116172884276937">ບໍ່ໄດ້ຕັ້ງຄ່າ DNS ເທື່ອ</translation> +<translation id="779591286616261875">ສົ່ງລາຍງານໃໝ່</translation> <translation id="7799817062559422778">ໂໝດແຈ້ງ</translation> <translation id="780301667611848630">ບໍ່, ຂອບໃຈ</translation> <translation id="7805768142964895445">ສະຖານະ</translation> @@ -927,6 +930,7 @@ <translation id="9082718469794970195">ໃຊ້ວິດີໂອ</translation> <translation id="9087578468327036362">ລາຍງານຄຳຊອກຫານີ້</translation> <translation id="9088306295921699330">ການນຳໃຊ້ໃນປັດຈຸບັນ</translation> +<translation id="9092255287806472980">ຄຳຕິຊົມຂອງທ່ານຈະຊ່ວຍປັບປຸງລະບົບປະຕິບັດການ Chrome ແລະ ຈະຖືກກວດສອບໂດຍທີມງານຂອງພວກເຮົາ. ເນື່ອງຈາກມີລາຍງານຈຳນວນຫຼາຍ, ພວກເຮົາຈະບໍ່ສາມາດຕອບກັບໄດ້.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">ທ່ານຈະຕ້ອງຖອດແຍກອຸປະກອນ</translation> <translation id="9098156406873149060">ເກັບຂໍ້ມູນຜູ້ໃຊ້ໄວ້</translation>
diff --git a/chromeos/strings/chromeos_strings_mr.xtb b/chromeos/strings/chromeos_strings_mr.xtb index 71ca591..1f809391 100644 --- a/chromeos/strings/chromeos_strings_mr.xtb +++ b/chromeos/strings/chromeos_strings_mr.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">गडद मोड बंद करा</translation> <translation id="1881188606372070653">कायदेशीर कारणांसाठी आशय बदलांची विनंती करण्यासाठी <ph name="BEGIN_LINK1" />कायदेशीर मदत पेज<ph name="END_LINK1" /> वर जा. काही खाते आणि सिस्टीम माहिती Google ला पाठवली जाईल. आम्ही आमचे <ph name="BEGIN_LINK2" />गोपनीयता धोरण<ph name="END_LINK2" /> आणि <ph name="BEGIN_LINK3" />सेवा अटी<ph name="END_LINK3" /> यांच्या अधीन राहून, तुम्ही आम्हाला दिलेल्या माहितीचा वापर तांत्रिक समस्या सोडवण्यात आणि आमच्या सेवांमध्ये सुधारणा करण्यात मदत करण्यासाठी करू.</translation> <translation id="1887850431809612466">हार्डवेअर पुनरावृत्ती</translation> +<translation id="1904932688895783618">हे काही इतर उपयुक्त स्रोत आहेत:</translation> <translation id="1905710495812624430">कमाल अनुमती असलेले प्रयत्न ओलांडले.</translation> <translation id="1908234395526491708">UDP विनंती पूर्ण करता आली नाही</translation> <translation id="1932611479324127242">बॅटरी कटऑफ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">ट्रबलशूटिंगच्या पायऱ्या वापरून पहा</translation> <translation id="2016848882344942759">--व्हाइट-लेबल नाही--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">कृपया नेटवर्कशी कनेक्ट करा आणि स्क्रीन सेव्हर पाहण्यासाठी पेज रीलोड करा.</translation> <translation id="2080070583977670716">अधिक सेटिंग्ज</translation> <translation id="2085089206770112532">डिस्प्लेचा ब्राइटनेस कमी करा</translation> <translation id="2105810540595158374">डिव्हाइस हे गेम नियंत्रक आहे.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">डोमेन सफिक्स जुळणी</translation> <translation id="7769672763586021400">मॉडेल आयडी</translation> <translation id="7784116172884276937">कोणतेही DNS सर्व्हर सेट केलेले नाहीत</translation> +<translation id="779591286616261875">नवीन तक्रार पाठवा</translation> <translation id="7799817062559422778">प्रकाश मोड</translation> <translation id="780301667611848630">नाही, नको</translation> <translation id="7805768142964895445">स्थिती</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">हा व्हिडिओ वापरा</translation> <translation id="9087578468327036362">या क्वेरीची तक्रार करा</translation> <translation id="9088306295921699330">सद्य वापर</translation> +<translation id="9092255287806472980">तुमचा फीडबॅक Chrome OS मध्ये सुधारणा करण्यात मदत करतो आणि त्याचे आमच्या टीमद्वारे पुनरावलोकन केले जाईल. मोठ्या प्रमाणात तक्रारी मिळाल्यामुळे, आम्हाला उत्तर पाठवता येणार नाही.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">तुम्हाला डिव्हाइस वेगळे करावे लागेल</translation> <translation id="9098156406873149060">वापरकर्त्याचा डेटा ठेवा</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 1f4102a..d6a56ff49 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Matikan mod gelap</translation> <translation id="1881188606372070653">Pergi ke <ph name="BEGIN_LINK1" />halaman Bantuan Undang-undang<ph name="END_LINK1" /> untuk meminta perubahan kandungan atas sebab undang-undang. Sesetengah maklumat akaun dan sistem mungkin dihantar kepada Google. Kami akan menggunakan maklumat yang anda berikan untuk membantu kami menyelesaikan isu teknikal dan untuk menambah baik perkhidmatan kami, tertakluk pada <ph name="BEGIN_LINK2" />Dasar Privasi<ph name="END_LINK2" /> dan <ph name="BEGIN_LINK3" />Syarat Perkhidmatan<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Semakan perkakasan</translation> +<translation id="1904932688895783618">Yang berikut ialah beberapa sumber lain yang berguna:</translation> <translation id="1905710495812624430">Melebihi had maksimum percubaan yang dibenarkan.</translation> <translation id="1908234395526491708">Kegagalan permintaan UDP</translation> <translation id="1932611479324127242">Mematikan bateri dalaman</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Cuba langkah penyelesaian masalah</translation> <translation id="2016848882344942759">--tiada label putih--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Sila sambung kepada rangkaian dan muatkan halaman itu untuk melihat penyelamat skrin.</translation> <translation id="2080070583977670716">Lagi tetapan</translation> <translation id="2085089206770112532">Kurangkan kecerahan paparan</translation> <translation id="2105810540595158374">Peranti ialah pengawal permainan.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Padanan akhiran domain</translation> <translation id="7769672763586021400">ID Model</translation> <translation id="7784116172884276937">Tiada pelayan DNS disediakan</translation> +<translation id="779591286616261875">Hantar laporan baharu</translation> <translation id="7799817062559422778">Mod cerah</translation> <translation id="780301667611848630">Tidak, terima kasih</translation> <translation id="7805768142964895445">Status</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Gunakan video ini</translation> <translation id="9087578468327036362">Laporkan pertanyaan ini</translation> <translation id="9088306295921699330">Penggunaan semasa</translation> +<translation id="9092255287806472980">Maklum balas anda membantu kami meningkatkan Chrome OS dan akan disemak oleh pasukan kami. Oleh sebab kami menerima jumlah laporan yang banyak, kami tidak akan dapat menghantar balasan.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Anda perlu meleraikan peranti tersebut</translation> <translation id="9098156406873149060">Simpan data pengguna</translation>
diff --git a/chromeos/strings/chromeos_strings_ne.xtb b/chromeos/strings/chromeos_strings_ne.xtb index 1d4b3e1..98999b7 100644 --- a/chromeos/strings/chromeos_strings_ne.xtb +++ b/chromeos/strings/chromeos_strings_ne.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">अँध्यारो मोड अफ गर्नुहोस्</translation> <translation id="1881188606372070653">कानुनी कारणहरू देखाएर सामग्री परिवर्तन गरिदिन अनुरोध गर्न <ph name="BEGIN_LINK1" />कानुनी मद्दतसम्बन्धी पेज<ph name="END_LINK1" /> मा जानुहोस्। खाता तथा सिस्टमसम्बन्धी केही जानकारी Google मा पठाइन सक्छ। हामी तपाईंले दिनुभएको जानकारी प्राविधिक समस्याहरू समाधान गर्ने र हाम्रा सेवाहरूको गुणस्तर सुधार गर्ने प्रयोजनका लागि हाम्रो <ph name="BEGIN_LINK2" />गोपनीयता नीति<ph name="END_LINK2" /> तथा <ph name="BEGIN_LINK3" />सेवाका सर्तहरू<ph name="END_LINK3" /> बमोजिम प्रयोग गर्ने छौँ।</translation> <translation id="1887850431809612466">हार्डवेयरको पुनरावृत्ति</translation> +<translation id="1904932688895783618">यहाँ केही अन्य उपयोगी स्रोतहरू दिइएका छन्:</translation> <translation id="1905710495812624430">अनुमति दिइएका प्रयासहरूको अधिकतम संख्या नाघ्यो।</translation> <translation id="1908234395526491708">UDP सम्बन्धी अनुरोध गर्न सकिएन</translation> <translation id="1932611479324127242">ब्याट्री कटअफ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">समस्या निवारण गर्ने चरणहरू पालना गरी हेर्नुहोस्</translation> <translation id="2016848882344942759">--श्वेत लेबल छैन--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">स्क्रिन सेभर हेर्न इन्टरनेटमा कनेक्ट गर्नुहोस् र यो पेज रिलोड गर्नुहोस्।</translation> <translation id="2080070583977670716">थप सेटिङहरू</translation> <translation id="2085089206770112532">डिस्प्लेको चमक घटाउने की</translation> <translation id="2105810540595158374">यो डिभाइस गेम कन्ट्रोलर हो।</translation> @@ -772,6 +774,7 @@ <translation id="7763470514545477072">डोमेन सफिक्ससँग मिल्दोजुल्दो</translation> <translation id="7769672763586021400">मोडेलको ID</translation> <translation id="7784116172884276937">कुनै पनि DNS सर्भर सेटअप गरिएको छैन</translation> +<translation id="779591286616261875">नयाँ रिपोर्ट पठाउनुहोस्</translation> <translation id="7799817062559422778">उज्यालो मोड</translation> <translation id="780301667611848630">भयो, धन्यवाद</translation> <translation id="7805768142964895445">स्थिति</translation> @@ -924,6 +927,7 @@ <translation id="9082718469794970195">यो भिडियो प्रयोग गर्नुहोस्</translation> <translation id="9087578468327036362">यो क्वेरीका बारेमा रिपोर्ट गर्नुहोस्</translation> <translation id="9088306295921699330">हालको प्रयोग</translation> +<translation id="9092255287806472980">तपाईंले दिनुभएको प्रतिक्रियाले Chrome OS को गुणस्तर सुधार्न मद्दत गर्छ र हाम्रो टोलीले सो प्रतिक्रियाको समीक्षा गर्ने छ। रिपोर्टहरूको सङ्ख्या अत्यन्त धेरै भएकाले हामी जवाफ दिन सक्ने छैनौँ।</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">तपाईंले डिभाइस क्यालिब्रेट गर्नु पर्ने हुन्छ</translation> <translation id="9098156406873149060">प्रयोगकर्ताको डेटा सेभ गरियोस्</translation>
diff --git a/chromeos/strings/chromeos_strings_or.xtb b/chromeos/strings/chromeos_strings_or.xtb index 5b690fe..57c4357 100644 --- a/chromeos/strings/chromeos_strings_or.xtb +++ b/chromeos/strings/chromeos_strings_or.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">ଡାର୍କ ମୋଡ୍ ବନ୍ଦ କରନ୍ତୁ</translation> <translation id="1881188606372070653">ଆଇନଗତ କାରଣଗୁଡ଼ିକ ପାଇଁ ବିଷୟବସ୍ତୁ ପରିବର୍ତ୍ତନର ଅନୁରୋଧ କରିବାକୁ <ph name="BEGIN_LINK1" />ଆଇନଗତ ସହାୟତା ପୃଷ୍ଠା<ph name="END_LINK1" />କୁ ଯାଆନ୍ତୁ। କିଛି ଆକାଉଣ୍ଟ ଏବଂ ସିଷ୍ଟମ ସୂଚନା Googleକୁ ପଠାଯାଇପାରେ। ଆମର <ph name="BEGIN_LINK2" />ଗୋପନୀୟତା ନୀତି<ph name="END_LINK2" /> ଏବଂ <ph name="BEGIN_LINK3" />ସେବାର ସର୍ତ୍ତାବଳୀ<ph name="END_LINK3" /> ଅନୁସାରେ, ଟେକନିକାଲ ସମସ୍ୟାର ସମାଧାନ କରିବା ଏବଂ ଆମର ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଆପଣ ଆମକୁ ଦେଇଥିବା ସୂଚନାକୁ ଆମେ ବ୍ୟବହାର କରିବୁ।</translation> <translation id="1887850431809612466">ହାର୍ଡୱେୟାର୍ ପୁନରାବୃତ୍ତି</translation> +<translation id="1904932688895783618">ଏଠାରେ ଅନ୍ୟ କିଛି ଉପଯୋଗୀ ରିସୋର୍ସ ଅଛି:</translation> <translation id="1905710495812624430">ସର୍ବାଧିକ ଅନୁମୋଦିତ ପ୍ରଚେଷ୍ଟା ସୀମା ଅତିକ୍ରମ କଲା।</translation> <translation id="1908234395526491708">UDP ଅନୁରୋଧ ବିଫଳ</translation> <translation id="1932611479324127242">ବ୍ୟାଟେରୀ କଟଅଫ</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">ଟ୍ରବୁଲସୁଟିଂ ଷ୍ଟେପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ</translation> <translation id="2016848882344942759">--କୌଣସି ହ୍ୱାଇଟ-ଲେବଲ ନାହିଁ--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">ସ୍କ୍ରିନ ସେଭର ଦେଖିବା ପାଇଁ ଦୟାକରି ଏକ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରି ପୃଷ୍ଠାଟିକୁ ପୁଣି ଲୋଡ କରନ୍ତୁ।</translation> <translation id="2080070583977670716">ଅଧିକ ସେଟିଂ</translation> <translation id="2085089206770112532">ଡିସପ୍ଲେର ଉଜ୍ଜ୍ୱଳତା କମ୍ କରନ୍ତୁ</translation> <translation id="2105810540595158374">ଡିଭାଇସଟି ଏକ ଗେମ କଣ୍ଟ୍ରୋଲର ଅଟେ।</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">ଡୋମେନ୍ ସଫିକ୍ସ ସହ ମେଳ</translation> <translation id="7769672763586021400">ମଡେଲ୍ ID</translation> <translation id="7784116172884276937">କୌଣସି DNS ସର୍ଭର ସେଟ ଅପ କରାଯାଇନାହିଁ</translation> +<translation id="779591286616261875">ନୂଆ ରିପୋର୍ଟ ପଠାନ୍ତୁ</translation> <translation id="7799817062559422778">ଲାଇଟ୍ ମୋଡ୍</translation> <translation id="780301667611848630">ନାଁ, ଥାଉ</translation> <translation id="7805768142964895445">ସ୍ଥିତି</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">ଏହି ଭିଡିଓ ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="9087578468327036362">ଏହି କ୍ୱେରୀ ବିଷୟରେ ରିପୋର୍ଟ କରନ୍ତୁ</translation> <translation id="9088306295921699330">ବର୍ତ୍ତମାନର ବ୍ୟବହାର</translation> +<translation id="9092255287806472980">Chrome OSକୁ ଉନ୍ନତ କରିବାରେ ଆପଣଙ୍କ ମତାମତ ସାହାଯ୍ୟ କରେ ଏବଂ ଏହାକୁ ଆମ ଟିମ ଦ୍ୱାରା ସମୀକ୍ଷା କରାଯିବ। ବହୁ ସଂଖ୍ୟକ ରିପୋର୍ଟ ଯୋଗୁଁ ଆମେ ଏକ ପ୍ରତ୍ୟୁତ୍ତର ପଠାଇବାକୁ ସକ୍ଷମ ହେବୁ ନାହିଁ।</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">ଆପଣଙ୍କୁ ଡିଭାଇସ ବିଚ୍ଛିନ୍ନ କରିବାକୁ ହେବ</translation> <translation id="9098156406873149060">ଉପଯୋଗକର୍ତ୍ତା ଡାଟା ରଖନ୍ତୁ</translation>
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb index abb731d..8c4677a 100644 --- a/chromeos/strings/chromeos_strings_pt-BR.xtb +++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Desativar o modo escuro</translation> <translation id="1881188606372070653">Acesse a <ph name="BEGIN_LINK1" />página de Ajuda do Jurídico<ph name="END_LINK1" /> para pedir mudanças no conteúdo por questões legais. Talvez alguns dados sobre a conta e o sistema sejam enviados ao Google. As informações que você fornecer vão ser usadas para ajudar a resolver problemas técnicos e melhorar nossos serviços, conforme descrito na <ph name="BEGIN_LINK2" />Política de Privacidade<ph name="END_LINK2" /> e nos <ph name="BEGIN_LINK3" />Termos de Serviço<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Revisão do hardware</translation> +<translation id="1904932688895783618">Veja outros recursos úteis:</translation> <translation id="1905710495812624430">O número máximo de tentativas permitidas foi excedido.</translation> <translation id="1908234395526491708">Falhas de solicitações UDP</translation> <translation id="1932611479324127242">Desligar a bateria</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Testar etapas de solução de problemas</translation> <translation id="2016848882344942759">--limpar marca branca--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Conecte-se a uma rede e atualize a página para conferir o protetor de tela.</translation> <translation id="2080070583977670716">Mais definições</translation> <translation id="2085089206770112532">Diminuir o brilho da tela</translation> <translation id="2105810540595158374">Este dispositivo é um controle de jogo.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Correspondência do sufixo de domínio</translation> <translation id="7769672763586021400">Código do modelo</translation> <translation id="7784116172884276937">Nenhum servidor DNS está configurado</translation> +<translation id="779591286616261875">Enviar nova denúncia</translation> <translation id="7799817062559422778">Modo claro</translation> <translation id="780301667611848630">Não</translation> <translation id="7805768142964895445">Status</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Usar este vídeo</translation> <translation id="9087578468327036362">Denuncie essa consulta</translation> <translation id="9088306295921699330">Uso atual</translation> +<translation id="9092255287806472980">Seu feedback ajuda a melhorar o Chrome OS e vai ser analisado pela nossa equipe. Devido ao grande número de denúncias, não podemos dar uma resposta.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Você vai precisar desmontar o dispositivo</translation> <translation id="9098156406873149060">Manter os dados do usuário</translation>
diff --git a/chromeos/strings/chromeos_strings_sq.xtb b/chromeos/strings/chromeos_strings_sq.xtb index c4759d9b..e0466c4 100644 --- a/chromeos/strings/chromeos_strings_sq.xtb +++ b/chromeos/strings/chromeos_strings_sq.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Çaktivizo modalitetin e errët</translation> <translation id="1881188606372070653">Shko te <ph name="BEGIN_LINK1" />faqja e Ndihmës ligjore<ph name="END_LINK1" /> për të kërkuar ndryshime të përmbajtjes për arsye ligjore. Disa prej informacioneve të llogarisë dhe të sistemit mund të dërgohen në Google. Informacionet që na jep do t'i përdorim për zgjidhjen e problemeve teknike për përmirësimin e shërbimeve tona, sipas <ph name="BEGIN_LINK2" />Politikës së privatësisë<ph name="END_LINK2" /> dhe <ph name="BEGIN_LINK3" />Kushteve të shërbimit<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Rishikimi i harduerit</translation> +<translation id="1904932688895783618">Këtu janë disa burime të tjera të dobishme:</translation> <translation id="1905710495812624430">U kaluan përpjekjet maksimale të lejuara.</translation> <translation id="1908234395526491708">Dështimet e kërkesave UDP</translation> <translation id="1932611479324127242">Fikja e baterisë së brendshme</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Provo hapat e zgjidhjes së problemeve</translation> <translation id="2016848882344942759">--pa etiketë të bardhë--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Lidhu në një rrjet dhe ringarko faqen për të parë mbrojtësin e ekranit.</translation> <translation id="2080070583977670716">Cilësime të tjera</translation> <translation id="2085089206770112532">Ulja e ndriçimit të ekranit</translation> <translation id="2105810540595158374">Pajisja është një kontrollues loje.</translation> @@ -772,6 +774,7 @@ <translation id="7763470514545477072">Përputhje e prapashtesës së domenit</translation> <translation id="7769672763586021400">ID-ja e modelit</translation> <translation id="7784116172884276937">Nuk është konfiguruar asnjë server DNS</translation> +<translation id="779591286616261875">Dërgo një raportim të ri</translation> <translation id="7799817062559422778">Modaliteti i ndriçuar</translation> <translation id="780301667611848630">Jo, faleminderit</translation> <translation id="7805768142964895445">Statusi</translation> @@ -924,6 +927,7 @@ <translation id="9082718469794970195">Përdor këtë video</translation> <translation id="9087578468327036362">Raportoje këtë kërkesë</translation> <translation id="9088306295921699330">Përdorimi aktual</translation> +<translation id="9092255287806472980">Komentet e tua ndihmojnë në përmirësimin e Chrome OS dhe do të rishikohen nga ekipi ynë. Për shkak të numrit të lartë të raportimeve, nuk do të mund të dërgojmë një përgjigje.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Do të duhet ta shkëputësh pajisjen</translation> <translation id="9098156406873149060">Mbaji të dhënat e përdoruesit</translation>
diff --git a/chromeos/strings/chromeos_strings_sv.xtb b/chromeos/strings/chromeos_strings_sv.xtb index 5d8ef0a..40d19513 100644 --- a/chromeos/strings/chromeos_strings_sv.xtb +++ b/chromeos/strings/chromeos_strings_sv.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Inaktivera mörkt läge</translation> <translation id="1881188606372070653">Besök sidan för <ph name="BEGIN_LINK1" />juridisk hjälp<ph name="END_LINK1" /> om du vill begära innehållsändringar av juridiska skäl. Vissa konto- och systemuppgifter kan skickas till Google. Vi använder informationen du ger oss till att lösa tekniska problem och förbättra våra tjänster, i enlighet med vår <ph name="BEGIN_LINK2" />integritetspolicy<ph name="END_LINK2" /> och våra <ph name="BEGIN_LINK3" />användarvillkor<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Revision av maskinvara</translation> +<translation id="1904932688895783618">Här är några andra användbara resurser:</translation> <translation id="1905710495812624430">Du har försökt för många gånger.</translation> <translation id="1908234395526491708">Misslyckade UDP-förfrågningar</translation> <translation id="1932611479324127242">Inaktivera batteriet</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Testa felsökningsstegen</translation> <translation id="2016848882344942759">–ingen vit etikett–</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Anslut till ett nätverk och läs in sidan igen för att se skärmsläckaren.</translation> <translation id="2080070583977670716">Fler inställningar</translation> <translation id="2085089206770112532">Tangenten som minskar skärmens ljusstyrka</translation> <translation id="2105810540595158374">Enheten är en spelkontroll.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Matchning av domänsuffix</translation> <translation id="7769672763586021400">Modell-id</translation> <translation id="7784116172884276937">Inga DNS-servrar har konfigurerats</translation> +<translation id="779591286616261875">Skicka ny rapport</translation> <translation id="7799817062559422778">Ljust läge</translation> <translation id="780301667611848630">Nej tack</translation> <translation id="7805768142964895445">Status</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Använd den här videon</translation> <translation id="9087578468327036362">Rapportera sökfrågan</translation> <translation id="9088306295921699330">Nuvarande användning</translation> +<translation id="9092255287806472980">Din feedback hjälper oss att förbättra Chrome OS och kommer att granskas av vårt team. Vi får många rapporter och därför kan vi inte svara på dem.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Du behöver ta isär enheten</translation> <translation id="9098156406873149060">Behåll användaruppgifter</translation>
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index a67c19a..2c255e0b 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Zima hali nyeusi</translation> <translation id="1881188606372070653">Nenda kwenye <ph name="BEGIN_LINK1" />Ukurasa wa Usaidizi wa Kisheria<ph name="END_LINK1" /> ili uombe maudhui yabadilishwe kutokana na sababu za kisheria. Huenda baadhi ya maelezo ya akaunti na mfumo yakatumwa kwenda Google. Tutatumia maelezo unayotupatia ili kusaidia kutatua matatizo ya kiufundi na kuboresha huduma zetu, kulingana na <ph name="BEGIN_LINK2" />Sera yetu ya Faragha<ph name="END_LINK2" /> na <ph name="BEGIN_LINK3" />Sheria na Masharti<ph name="END_LINK3" />.</translation> <translation id="1887850431809612466">Sahihisho la maunzi</translation> +<translation id="1904932688895783618">Hizi ni baadhi ya nyenzo zingine muhimu:</translation> <translation id="1905710495812624430">Idadi ya juu ya majaribio yanayoruhusiwa.</translation> <translation id="1908234395526491708">Maombi ya UDP ambayo hayakufaulu</translation> <translation id="1932611479324127242">Hifadhi chaji ya betri</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Jaribu hatua za utatuzi</translation> <translation id="2016848882344942759">--hakuna lebo-nyeupe--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Tafadhali unganisha kwenye mtandao na upakie upya ukurasa ili uangalie taswira ya skrini.</translation> <translation id="2080070583977670716">Mipangilio zaidi</translation> <translation id="2085089206770112532">Punguza mwangaza wa skrini</translation> <translation id="2105810540595158374">Kifaa hiki ni kidhibiti cha mchezo.</translation> @@ -772,6 +774,7 @@ <translation id="7763470514545477072">Kiambishi cha kikoa kinacholingana</translation> <translation id="7769672763586021400">Aina ya Kitambulisho</translation> <translation id="7784116172884276937">Hakuna seva za DNS zilizowekwa mipangilio</translation> +<translation id="779591286616261875">Tuma ripoti mpya</translation> <translation id="7799817062559422778">Hali ya mwangaza</translation> <translation id="780301667611848630">Hapana</translation> <translation id="7805768142964895445">Hali</translation> @@ -924,6 +927,7 @@ <translation id="9082718469794970195">Tumia video hii</translation> <translation id="9087578468327036362">Ripoti hoja hii</translation> <translation id="9088306295921699330">Matumizi ya sasa</translation> +<translation id="9092255287806472980">Maoni yako husaidia kuboresha mfumo wa uendeshaji wa Chrome na yatakaguliwa na timu yetu. Kutokana na idadi kubwa ya ripoti, hatutaweza kutuma jibu.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">Utahitaji kutofautisha kifaa</translation> <translation id="9098156406873149060">Hifadhi data ya mtumiaji</translation>
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb index 81b9ee4..6ffa519 100644 --- a/chromeos/strings/chromeos_strings_ta.xtb +++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">டார்க் பயன்முறையை முடக்குதல்</translation> <translation id="1881188606372070653">சட்டப்பூர்வக் காரணங்களுக்காக உள்ளடக்க மாற்றங்களைக் கோர, <ph name="BEGIN_LINK1" />சட்டப்பூர்வ உதவிப் பக்கத்திற்குச்<ph name="END_LINK1" /> செல்லவும். சில கணக்கு மற்றும் சிஸ்டம் தகவல்கள் Googleளுக்கு அனுப்பப்படக்கூடும். தொழில்நுட்பச் சிக்கல்களைச் சரிசெய்யவும் எங்கள் சேவைகளை மேம்படுத்தவும் நீங்கள் அளிக்கும் தகவல்களை எங்கள் <ph name="BEGIN_LINK2" />தனியுரிமைக் கொள்கை<ph name="END_LINK2" />, <ph name="BEGIN_LINK3" />சேவை விதிமுறைகள்<ph name="END_LINK3" /> ஆகியவற்றுக்கு உட்பட்டுப் பயன்படுத்துவோம்.</translation> <translation id="1887850431809612466">வன்பொருள் பதிப்பு</translation> +<translation id="1904932688895783618">உதவிகரமான சில ஆதாரங்கள்:</translation> <translation id="1905710495812624430">அனுமதிக்கப்பட்ட அதிகபட்ச முயற்சிகளைக் கடந்துவிட்டீர்கள்.</translation> <translation id="1908234395526491708">UDP கோரிக்கையை அனுப்ப முடியவில்லை</translation> <translation id="1932611479324127242">பேட்டரி இணைப்பை நீக்கு</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">பிழையறிந்து திருத்தும் படிகளை முயன்று பார்க்கவும்</translation> <translation id="2016848882344942759">--வெள்ளை லேபிள் இல்லை--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">ஸ்கிரீன் சேவரைப் பார்க்க நெட்வொர்க்குடன் இணைத்து, பக்கத்தை ரெஃப்ரெஷ் செய்யவும்.</translation> <translation id="2080070583977670716">மேலும் அமைப்புகள்</translation> <translation id="2085089206770112532">காட்சி ஒளிர்வைக் குறைக்கும்</translation> <translation id="2105810540595158374">சாதனம் ஒரு கேம் கண்ட்ரோலர்.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">டொமைனின் பிற்பாதிக்கான பொருத்தம்</translation> <translation id="7769672763586021400">மாடல் ஐடி</translation> <translation id="7784116172884276937">DNS சேவையகங்கள் எதுவும் அமைக்கப்படவில்லை</translation> +<translation id="779591286616261875">புதிய அறிக்கையை அனுப்பு</translation> <translation id="7799817062559422778">லைட் பயன்முறை</translation> <translation id="780301667611848630">வேண்டாம்</translation> <translation id="7805768142964895445">நிலை</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">இந்த வீடியோவைப் பயன்படுத்து</translation> <translation id="9087578468327036362">இந்த வினவல் குறித்துப் புகாரளிக்கலாம்</translation> <translation id="9088306295921699330">தற்போதைய உபயோகம்</translation> +<translation id="9092255287806472980">உங்கள் கருத்து Chrome OSஸை மேம்படுத்த உதவும். மேலும் எங்கள் குழுவினரால் மதிப்பாய்வு செய்யப்படும். புகார்களின் எண்ணிக்கை அதிகமாக இருப்பதால் எங்களால் பதிலளிக்க முடியாது.</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">இந்தச் சாதனத்தின் பாகங்களை நீங்கள் பிரிக்க வேண்டும்</translation> <translation id="9098156406873149060">பயனர் தரவை வைத்திரு</translation>
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb index d04b8a2..58fff93 100644 --- a/chromeos/strings/chromeos_strings_uk.xtb +++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Вимкнути темний режим</translation> <translation id="1881188606372070653">Щоб надіслати запит на змінення контенту з юридичних причин, перейдіть на <ph name="BEGIN_LINK1" />сторінку правової довідки<ph name="END_LINK1" />. Певні дані про ваш обліковий запис і систему можуть надсилатися в Google. Ми використовуватимемо їх відповідно до <ph name="BEGIN_LINK2" />Політики конфіденційності<ph name="END_LINK2" /> й <ph name="BEGIN_LINK3" />Умов використання<ph name="END_LINK3" />, щоб вирішувати технічні проблеми та покращувати наші сервіси.</translation> <translation id="1887850431809612466">Апаратне забезпечення</translation> +<translation id="1904932688895783618">Нижче наведено інші корисні ресурси.</translation> <translation id="1905710495812624430">Перевищено максимальну кількість дозволених спроб.</translation> <translation id="1908234395526491708">Не виконано запити за протоколом UDP</translation> <translation id="1932611479324127242">Відключити акумулятор</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Виконайте дії для вирішення проблеми</translation> <translation id="2016848882344942759">--немає бренду продавця--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Щоб переглянути заставку, підключіться до мережі й оновіть сторінку.</translation> <translation id="2080070583977670716">Інші налаштування</translation> <translation id="2085089206770112532">Зменшити яскравість екрана</translation> <translation id="2105810540595158374">Це ігровий контролер.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Збіг із суфіксом домену</translation> <translation id="7769672763586021400">Ідентифікатор моделі</translation> <translation id="7784116172884276937">DNS-сервери не налаштовано</translation> +<translation id="779591286616261875">Надіслати новий звіт</translation> <translation id="7799817062559422778">Світлий режим</translation> <translation id="780301667611848630">Ні, дякую</translation> <translation id="7805768142964895445">Статус</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Використати це відео</translation> <translation id="9087578468327036362">Повідомити про проблеми із запитом</translation> <translation id="9088306295921699330">Використовується</translation> +<translation id="9092255287806472980">Наша команда розгляне ваш відгук. Він допоможе покращити ОС Chrome. Зверніть увагу: через велику кількість повідомлень ми не відповідаємо на них.</translation> <translation id="9095775724867566971">PluginVM</translation> <translation id="90977145661420967">Вам доведеться розібрати пристрій</translation> <translation id="9098156406873149060">Зберегти дані користувача</translation>
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index 34c4c5c3..83fad4e 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">Tắt chế độ tối</translation> <translation id="1881188606372070653">Nếu bạn muốn yêu cầu thay đổi nội dung vì lý do pháp lý, hãy truy cập <ph name="BEGIN_LINK1" />trang Trợ giúp pháp lý<ph name="END_LINK1" />. Một số thông tin về tài khoản và hệ thống có thể được gửi đến Google. Chúng tôi sẽ dùng thông tin mà bạn cung cấp để giúp khắc phục các vấn đề kỹ thuật, đồng thời cải thiện các dịch vụ theo <ph name="BEGIN_LINK2" />Chính sách quyền riêng tư<ph name="END_LINK2" /> và <ph name="BEGIN_LINK3" />Điều khoản dịch vụ<ph name="END_LINK3" /> của chúng tôi.</translation> <translation id="1887850431809612466">Hiệu chỉnh phần cứng</translation> +<translation id="1904932688895783618">Dưới đây là một số tài nguyên hữu ích khác:</translation> <translation id="1905710495812624430">Đã vượt quá số lần thử tối đa được phép.</translation> <translation id="1908234395526491708">Không gửi được yêu cầu UDP</translation> <translation id="1932611479324127242">Tắt hẳn pin</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">Thử các bước khắc phục vấn đề</translation> <translation id="2016848882344942759">--không nhãn trắng--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">Vui lòng kết nối mạng và tải lại trang để xem trình bảo vệ màn hình.</translation> <translation id="2080070583977670716">Chế độ cài đặt khác</translation> <translation id="2085089206770112532">Giảm độ sáng màn hình</translation> <translation id="2105810540595158374">Thiết bị là tay điều khiển trò chơi.</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">Khớp hậu tố tên miền</translation> <translation id="7769672763586021400">ID kiểu máy</translation> <translation id="7784116172884276937">Không có máy chủ DNS nào được thiết lập</translation> +<translation id="779591286616261875">Gửi báo cáo mới</translation> <translation id="7799817062559422778">Chế độ sáng</translation> <translation id="780301667611848630">Không, cảm ơn</translation> <translation id="7805768142964895445">Trạng thái</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">Dùng video này</translation> <translation id="9087578468327036362">Báo lỗi truy vấn này</translation> <translation id="9088306295921699330">Mức sử dụng hiện tại</translation> +<translation id="9092255287806472980">Ý kiến phản hồi của bạn giúp cải thiện Chrome OS và sẽ được nhóm của chúng tôi xem xét. Do nhận được số lượng lớn báo cáo nên chúng tôi sẽ không thể gửi thư trả lời cho bạn.</translation> <translation id="9095775724867566971">PluginVm</translation> <translation id="90977145661420967">Bạn cần phải tháo rời thiết bị</translation> <translation id="9098156406873149060">Giữ lại dữ liệu người dùng</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-CN.xtb b/chromeos/strings/chromeos_strings_zh-CN.xtb index b864ec10..2c8976a 100644 --- a/chromeos/strings/chromeos_strings_zh-CN.xtb +++ b/chromeos/strings/chromeos_strings_zh-CN.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">关闭深色模式</translation> <translation id="1881188606372070653">若要依法提出内容更改请求,请前往<ph name="BEGIN_LINK1" />法律帮助页面<ph name="END_LINK1" />。系统可能会将一些帐号信息和系统信息发送给 Google。我们会借助您向我们提供的信息来解决技术问题和提升服务质量,并且会在使用这些信息的过程中严格遵守 Google 的<ph name="BEGIN_LINK2" />隐私权政策<ph name="END_LINK2" />和<ph name="BEGIN_LINK3" />服务条款<ph name="END_LINK3" />。</translation> <translation id="1887850431809612466">硬件版本</translation> +<translation id="1904932688895783618">以下是一些其他的实用资源:</translation> <translation id="1905710495812624430">已超过允许的尝试次数上限。</translation> <translation id="1908234395526491708">UDP 请求失败</translation> <translation id="1932611479324127242">切断电池供电</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">尝试问题排查步骤</translation> <translation id="2016848882344942759">--无白标签--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">若要查看屏保,请连接到网络并重新加载此页面。</translation> <translation id="2080070583977670716">更多设置</translation> <translation id="2085089206770112532">调低显示屏亮度</translation> <translation id="2105810540595158374">设备类型是游戏控制器。</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">域名后缀匹配</translation> <translation id="7769672763586021400">型号 ID</translation> <translation id="7784116172884276937">未设置 DNS 服务器</translation> +<translation id="779591286616261875">发送新报告</translation> <translation id="7799817062559422778">浅色模式</translation> <translation id="780301667611848630">不用了,谢谢</translation> <translation id="7805768142964895445">状态</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">使用此视频</translation> <translation id="9087578468327036362">报告此次查询</translation> <translation id="9088306295921699330">目前用量</translation> +<translation id="9092255287806472980">您的反馈将有助于我们改进 Chrome OS,并将由我们的团队审核。由于举报数量众多,我们无法发送回复。</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">您将需要拆开此设备</translation> <translation id="9098156406873149060">保留用户数据</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-HK.xtb b/chromeos/strings/chromeos_strings_zh-HK.xtb index 7724fb0..21d1b8d2 100644 --- a/chromeos/strings/chromeos_strings_zh-HK.xtb +++ b/chromeos/strings/chromeos_strings_zh-HK.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">關閉暗光模式</translation> <translation id="1881188606372070653">如因法律理由而需要變更內容,請於<ph name="BEGIN_LINK1" />「法律說明」頁面<ph name="END_LINK1" />提出要求。部分帳戶及系統資料可能會傳送予 Google。我們會根據《<ph name="BEGIN_LINK2" />私隱權政策<ph name="END_LINK2" />》及《<ph name="BEGIN_LINK3" />服務條款<ph name="END_LINK3" />》,利用您提供的資料以解決技術問題和改善服務。</translation> <translation id="1887850431809612466">硬件版本</translation> +<translation id="1904932688895783618">其他實用資源如下:</translation> <translation id="1905710495812624430">允許的嘗試次數超過上限。</translation> <translation id="1908234395526491708">UDP 要求失敗</translation> <translation id="1932611479324127242">切斷電池供電</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">請嘗試解決疑難步驟</translation> <translation id="2016848882344942759">--沒有白色標籤--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">如要查看螢幕保護程式,請連上網路並重新載入頁面。</translation> <translation id="2080070583977670716">顯示更多設定</translation> <translation id="2085089206770112532">顯示屏校暗亮度</translation> <translation id="2105810540595158374">裝置類型係遊戲控制器。</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">域名尾碼相符</translation> <translation id="7769672763586021400">型號識別碼</translation> <translation id="7784116172884276937">沒有設定 DNS 伺服器</translation> +<translation id="779591286616261875">傳送新的回報內容</translation> <translation id="7799817062559422778">明亮模式</translation> <translation id="780301667611848630">不用了,謝謝</translation> <translation id="7805768142964895445">狀態</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">使用這段影片</translation> <translation id="9087578468327036362">報告此查詢</translation> <translation id="9088306295921699330">目前使用量</translation> +<translation id="9092255287806472980">你的寶貴意見有助於改善 Chrome OS,且提交的內容將由 Google 團隊進行審查。由於回報數量眾多,我們將不會逐一回覆。</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">您需要拆解裝置</translation> <translation id="9098156406873149060">保留使用者資料</translation>
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb index ffafe6c2..a275493 100644 --- a/chromeos/strings/chromeos_strings_zh-TW.xtb +++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -123,6 +123,7 @@ <translation id="188114911237521550">關閉深色模式</translation> <translation id="1881188606372070653">如要基於法律原因提出內容變更要求,請前往<ph name="BEGIN_LINK1" />法律說明頁面<ph name="END_LINK1" />。系統可能會將部分帳戶和系統資訊傳送給 Google。我們會使用您提供的資訊處理技術問題及改善服務品質,且過程中會遵守《<ph name="BEGIN_LINK2" />隱私權政策<ph name="END_LINK2" />》和《<ph name="BEGIN_LINK3" />服務條款<ph name="END_LINK3" />》。</translation> <translation id="1887850431809612466">硬體版本</translation> +<translation id="1904932688895783618">其他實用資源如下:</translation> <translation id="1905710495812624430">超過嘗試次數上限。</translation> <translation id="1908234395526491708">UDP 要求失敗</translation> <translation id="1932611479324127242">電池斷開</translation> @@ -137,6 +138,7 @@ <translation id="2016697457005847575">試試疑難排解步驟</translation> <translation id="2016848882344942759">--沒有白標--</translation> <translation id="202500043506723828">EID</translation> +<translation id="2047316797244836561">如要查看螢幕保護程式,請連上網路並重新載入頁面。</translation> <translation id="2080070583977670716">顯示更多設定</translation> <translation id="2085089206770112532">顯示亮度調低</translation> <translation id="2105810540595158374">裝置類型為遊戲控制器。</translation> @@ -773,6 +775,7 @@ <translation id="7763470514545477072">網域字尾比對</translation> <translation id="7769672763586021400">型號 ID</translation> <translation id="7784116172884276937">尚未設定任何 DNS 伺服器</translation> +<translation id="779591286616261875">傳送新的回報內容</translation> <translation id="7799817062559422778">淺色模式</translation> <translation id="780301667611848630">不用了,謝謝</translation> <translation id="7805768142964895445">狀態</translation> @@ -925,6 +928,7 @@ <translation id="9082718469794970195">使用這部影片</translation> <translation id="9087578468327036362">請回報這項查詢</translation> <translation id="9088306295921699330">目前用量</translation> +<translation id="9092255287806472980">你的寶貴意見有助於改善 Chrome OS,且提交的內容將由 Google 團隊進行審查。由於回報數量眾多,我們將不會逐一回覆。</translation> <translation id="9095775724867566971">Pluginvm</translation> <translation id="90977145661420967">你必須拆解裝置</translation> <translation id="9098156406873149060">保留使用者資料</translation>
diff --git a/components/autofill/core/browser/autofill_manager.h b/components/autofill/core/browser/autofill_manager.h index 43d4d67d..8614ac5 100644 --- a/components/autofill/core/browser/autofill_manager.h +++ b/components/autofill/core/browser/autofill_manager.h
@@ -231,8 +231,8 @@ translate::TranslateDriver* translate_driver) override; // Invoked when the language has been detected by the Translate component. // As this usually happens after Autofill has parsed the forms for the first - // time, the heuristics need to be re-run by this function in order to run - // use language-specific patterns. + // time, the heuristics need to be re-run by this function in order to use + // language-specific patterns. void OnLanguageDetermined( const translate::LanguageDetectionDetails& details) override;
diff --git a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb index 0ee426b..f790462 100644 --- a/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb +++ b/components/autofill_assistant/android/internal/java/strings/translations/android_chrome_autofill_assistant_strings_te.xtb
@@ -10,16 +10,16 @@ <translation id="3018033505440165876">Chromeలో Google Assistantను\nట్రై చేయండి</translation> <translation id="4130750466177569591">నేను అంగీకరిస్తున్నాను</translation> <translation id="4404736763084919307">Google Assistantకు మీ అనుమతి అవసరం</translation> -<translation id="4437727785356380473">Chromeలో Google అసిస్టెంట్ మూసివేయబడింది.</translation> +<translation id="4437727785356380473">Chromeలో Google Assistant మూసివేయబడింది.</translation> <translation id="4517854969512651305">విలువను పెంచుతుంది</translation> <translation id="4850886885716139402">వీక్షణ</translation> <translation id="4952448020231702394">శోధన, చెక్అవుట్ వంటి వెబ్ చర్యలను పూర్తి చేయడంలో మీకు సహాయపడటం ద్వారా Google Assistant మీ సమయాన్ని ఆదా చేస్తుంది.</translation> <translation id="4982366513646093083">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా\nఆహారాన్ని ఆర్డర్ చేయండి</translation> -<translation id="5267269112080050255">Chromeలో Google అసిస్టెంట్ పూర్తి ఎత్తులో తెరవబడింది.</translation> +<translation id="5267269112080050255">Chromeలో Google Assistant పూర్తి ఎత్తులో తెరవబడింది.</translation> <translation id="5447168050208292829">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా\nమీ విమానంలోకి చెక్ ఇన్ చేయండి</translation> <translation id="5545898449961003030">హాయ్, కేవలం కొన్ని ట్యాప్లు చేయడం ద్వారా టికెట్లను కొనుగోలు చేయడంలో నేను మీకు సహాయం చేయగలను</translation> <translation id="5801568494490449797">ప్రాధాన్యతలు</translation> -<translation id="6555233628095991027">Chromeలో Google అసిస్టెంట్ సగం ఎత్తులో తెరవబడింది.</translation> +<translation id="6555233628095991027">Chromeలో Google Assistant సగం ఎత్తులో తెరవబడింది.</translation> <translation id="6785872064505734160">Chromeలో Google Assistant మీ కోసం వెబ్సైట్ల అంతటా చర్యలను పూర్తి చేయగలదు</translation> <translation id="6973932557599545801">క్షమించండి నేను సహాయం చేయలేకపోయాను, దయచేసి మీరే స్వంతంగా కొనసాగండి.</translation> <translation id="7135664311366978968">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా\nసినిమా టిక్కెట్లను కొనుగోలు చేయండి</translation> @@ -27,7 +27,7 @@ <translation id="7658239707568436148">రద్దు చేయండి</translation> <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation> <translation id="7953600313732929223">వెబ్సైట్లలో\nవాయిస్ చర్యలను ట్రై చేయండి</translation> -<translation id="8253702004019660079">Chromeలో Google అసిస్టెంట్.</translation> +<translation id="8253702004019660079">Chromeలో Google Assistant.</translation> <translation id="8500511870202433545">కేవలం కొన్ని సార్లు ట్యాప్ చేయడం ద్వారా \nకారు అద్దెకు తీసుకోండి</translation> <translation id="9084406551994160152">మీ Google Assistant మీరు సురక్షితంగా స్టోర్ చేసిన వివరాలను ఉపయోగించి సినిమా టికెట్లను కొనుగోలు చేయడాన్ని సులభతరం చేస్తుంది</translation> <translation id="9202590983572380008">వాయిస్ సూచనలను ప్రారంభించండి లేదా ఆపివేయండి</translation>
diff --git a/components/autofill_assistant/browser/controller.cc b/components/autofill_assistant/browser/controller.cc index e0405c61..056fd9a 100644 --- a/components/autofill_assistant/browser/controller.cc +++ b/components/autofill_assistant/browser/controller.cc
@@ -88,7 +88,10 @@ ukm_recorder_(ukm_recorder), annotate_dom_model_service_(annotate_dom_model_service) {} -Controller::~Controller() {} +Controller::~Controller() { + // Record failure, iff an earlier call didn't already record. + MaybeRecordFlowFinishedMetrics(Metrics::FlowFinishedState::DESTROYED); +} const ClientSettings& Controller::GetSettings() { return settings_; @@ -366,6 +369,9 @@ script_tracker_->StopScript(); SetStoppedUI(); EnterState(AutofillAssistantState::STOPPED); + + // Record failure, iff an earlier call didn't already record. + MaybeRecordFlowFinishedMetrics(Metrics::FlowFinishedState::FAILURE); } void Controller::SetStoppedUI() { @@ -674,6 +680,10 @@ void Controller::OnScriptExecuted(const std::string& script_path, AutofillAssistantState end_state, const ScriptExecutor::Result& result) { + MaybeRecordFlowFinishedMetrics(result.success + ? Metrics::FlowFinishedState::SUCCESS + : Metrics::FlowFinishedState::FAILURE); + if (!result.success) { #ifdef NDEBUG VLOG(1) << "Failed to execute script"; @@ -1263,6 +1273,8 @@ void Controller::WebContentsDestroyed() { suppress_keyboard_raii_.reset(); + // Record failure, iff an earlier call didn't already record. + MaybeRecordFlowFinishedMetrics(Metrics::FlowFinishedState::DESTROYED); } void Controller::SuppressKeyboard(bool suppress) { @@ -1343,4 +1355,36 @@ return script_tracker_.get(); } +void Controller::OnActionsResponseReceived( + const RoundtripNetworkStats& network_stats) { + accumulated_network_stats_.set_num_roundtrips( + accumulated_network_stats_.num_roundtrips() + + network_stats.num_roundtrips()); + accumulated_network_stats_.set_roundtrip_encoded_body_size_bytes( + accumulated_network_stats_.roundtrip_encoded_body_size_bytes() + + network_stats.roundtrip_encoded_body_size_bytes()); + accumulated_network_stats_.set_roundtrip_decoded_body_size_bytes( + accumulated_network_stats_.roundtrip_decoded_body_size_bytes() + + network_stats.roundtrip_decoded_body_size_bytes()); + for (const auto& action_network_stats : network_stats.action_stats()) { + *accumulated_network_stats_.add_action_stats() = action_network_stats; + } +} + +void Controller::MaybeRecordFlowFinishedMetrics( + Metrics::FlowFinishedState state) { + if (accumulated_network_stats_.num_roundtrips() == 0 || !web_contents()) { + return; + } + + Metrics::RecordFlowFinished( + ukm_recorder_, + web_contents()->GetPrimaryMainFrame()->GetPageUkmSourceId(), state, + accumulated_network_stats_); + + // Reset network stats. Subsequent calls to this method should be ignored, + // unless a new run was started in the meantime. + accumulated_network_stats_ = RoundtripNetworkStats(); +} + } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/controller.h b/components/autofill_assistant/browser/controller.h index 0379c34..cf1a6be 100644 --- a/components/autofill_assistant/browser/controller.h +++ b/components/autofill_assistant/browser/controller.h
@@ -139,6 +139,8 @@ bool ShouldShowWarning() override; ProcessedActionStatusDetailsProto& GetLogInfo() override; bool MustUseBackendData() const override; + void OnActionsResponseReceived( + const RoundtripNetworkStats& network_stats) override; // Show the UI if it's not already shown. This is only meaningful while in // states where showing the UI is optional, such as RUNNING, in tracking mode. @@ -293,6 +295,10 @@ void SetDirectActionScripts( const std::vector<ScriptHandle>& direct_action_scripts); + // Records flow metrics. This may be invoked multiple times per flow, but will + // only record the first impression for each flow. + void MaybeRecordFlowFinishedMetrics(Metrics::FlowFinishedState state); + // Sets the semantic selector in the DOM annotation service. void SetSemanticSelectorPolicy(SemanticSelectorPolicy policy); @@ -442,6 +448,10 @@ // Holds the client's locale. std::string locale_; + // The accumulated network stats of an entire flow. Used for metrics upon + // flow completion. + RoundtripNetworkStats accumulated_network_stats_; + base::WeakPtrFactory<Controller> weak_ptr_factory_{this}; };
diff --git a/components/autofill_assistant/browser/controller_unittest.cc b/components/autofill_assistant/browser/controller_unittest.cc index 49f85f2a..e8d239e4 100644 --- a/components/autofill_assistant/browser/controller_unittest.cc +++ b/components/autofill_assistant/browser/controller_unittest.cc
@@ -35,6 +35,7 @@ #include "components/autofill_assistant/browser/switches.h" #include "components/autofill_assistant/browser/test_util.h" #include "components/autofill_assistant/browser/trigger_context.h" +#include "components/autofill_assistant/browser/ukm_test_util.h" #include "components/autofill_assistant/browser/web/mock_web_controller.h" #include "components/password_manager/core/browser/mock_password_change_success_tracker.h" #include "components/strings/grit/components_strings.h" @@ -46,6 +47,7 @@ #include "content/public/test/test_renderer_host.h" #include "content/public/test/web_contents_tester.h" #include "net/http/http_status_code.h" +#include "services/metrics/public/cpp/metrics_utils.h" #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/public/common/features.h" #include "ui/base/l10n/l10n_util.h" @@ -58,6 +60,7 @@ using ::testing::AnyNumber; using ::testing::DoAll; using ::testing::ElementsAre; +using ::testing::ElementsAreArray; using ::testing::Eq; using ::testing::Field; using ::testing::Gt; @@ -99,6 +102,8 @@ auto service = std::make_unique<NiceMock<MockService>>(); mock_service_ = service.get(); ukm::InitializeSourceUrlRecorderForWebContents(web_contents_.get()); + navigation_ids_.emplace_back( + web_contents()->GetPrimaryMainFrame()->GetPageUkmSourceId()); ON_CALL(mock_client_, GetWebContents).WillByDefault(Return(web_contents())); ON_CALL(mock_client_, HasHadUI()).WillByDefault(Return(true)); @@ -111,7 +116,7 @@ mock_runtime_manager_->GetWeakPtr(), std::move(service), &ukm_recorder_, &mock_annotate_dom_model_service_); - controller_->SetWebControllerForTest(std::move(web_controller)); + SetWebControllerForTest(controller_.get(), std::move(web_controller)); ON_CALL(mock_client_, AttachUI()).WillByDefault(Invoke([this]() { controller_->SetUiShown(true); @@ -175,6 +180,12 @@ return script; } + // Defined as a function to allow access to other tests. + void SetWebControllerForTest(Controller* controller, + std::unique_ptr<WebController> web_controller) { + controller->SetWebControllerForTest(std::move(web_controller)); + } + void SetupScripts(SupportsScriptResponseProto scripts) { std::string scripts_str; scripts.SerializeToString(&scripts_str); @@ -220,6 +231,8 @@ url, web_contents()->GetPrimaryMainFrame()); content::WebContentsTester::For(web_contents())->TestSetIsLoading(false); controller_->DidFinishLoad(nullptr, GURL("")); + navigation_ids_.emplace_back( + web_contents()->GetPrimaryMainFrame()->GetPageUkmSourceId()); } void SimulateWebContentsFocused() { @@ -272,6 +285,7 @@ ukm::TestAutoSetUkmRecorder ukm_recorder_; std::unique_ptr<Controller> controller_; NiceMock<MockAnnotateDomModelService> mock_annotate_dom_model_service_; + std::vector<ukm::SourceId> navigation_ids_; }; struct NavigationState { @@ -2204,6 +2218,187 @@ EXPECT_EQ(AutofillAssistantState::STOPPED, controller_->GetState()); } +TEST_F(ControllerTest, FlowFinishedMetricOneRoundtripNoActions) { + SupportsScriptResponseProto script_response; + AddRunnableScript(&script_response, "script") + ->mutable_presentation() + ->set_autostart(true); + SetupScripts(script_response); + + EXPECT_CALL(*mock_service_, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_OK, "", + ServiceRequestSender::ResponseInfo{.encoded_body_length = 13})); + + Start("http://a.example.com/path"); + + EXPECT_THAT( + GetUkmFlowFinished(ukm_recorder_), + ElementsAreArray(std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>{ + {navigation_ids_[0], + {{kFlowFinishedState, 1 /*Metrics::FlowFinishedState::SUCCESS*/}, + {kFlowFinishedNumActions, 0}, + {kFlowFinishedNumJsFlowActions, 0}, + {kFlowFinishedNumRoundtrips, 1}, + {kFlowFinishedTotalDecodedGetActionsSizeInBytes, 0}, + {kFlowFinishedTotalDecodedJsFlowSizeInBytes, 0}, + {kFlowFinishedTotalEncodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes(13)}}}})); +} + +TEST_F(ControllerTest, FlowFinishedMetricFailedRoundtrip) { + SupportsScriptResponseProto script_response; + AddRunnableScript(&script_response, "script") + ->mutable_presentation() + ->set_autostart(true); + SetupScripts(script_response); + + EXPECT_CALL(*mock_service_, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_UNAUTHORIZED, "", + ServiceRequestSender::ResponseInfo{.encoded_body_length = 13})); + + Start("http://a.example.com/path"); + + EXPECT_THAT( + GetUkmFlowFinished(ukm_recorder_), + ElementsAreArray(std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>{ + {navigation_ids_[0], + {{kFlowFinishedState, 2 /*Metrics::FlowFinishedState::FAILURE*/}, + {kFlowFinishedNumActions, 0}, + {kFlowFinishedNumJsFlowActions, 0}, + {kFlowFinishedNumRoundtrips, 1}, + {kFlowFinishedTotalDecodedGetActionsSizeInBytes, 0}, + {kFlowFinishedTotalDecodedJsFlowSizeInBytes, 0}, + {kFlowFinishedTotalEncodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes(13)}}}})); +} + +TEST_F(ControllerTest, FlowFinishedMetricControllerDestroyedMidFlow) { + auto service = std::make_unique<NiceMock<MockService>>(); + auto* service_ptr = service.get(); + + auto controller = std::make_unique<Controller>( + web_contents(), &mock_client_, task_environment()->GetMockTickClock(), + mock_runtime_manager_->GetWeakPtr(), std::move(service), &ukm_recorder_, + /* annotate_dom_model_service= */ nullptr); + SetWebControllerForTest(controller.get(), + std::make_unique<NiceMock<MockWebController>>()); + + SupportsScriptResponseProto script_response; + AddRunnableScript(&script_response, "script") + ->mutable_presentation() + ->set_autostart(true); + std::string serialized_script_response; + script_response.SerializeToString(&serialized_script_response); + EXPECT_CALL(*service_ptr, GetScriptsForUrl) + .WillOnce(RunOnceCallback<2>(net::HTTP_OK, serialized_script_response, + ServiceRequestSender::ResponseInfo{})); + + // Run a prompt to block execution. + ActionsResponseProto roundtrip; + roundtrip.add_actions() + ->mutable_prompt() + ->add_choices() + ->mutable_chip() + ->set_text("ok"); + std::string serialized_roundtrip; + roundtrip.SerializeToString(&serialized_roundtrip); + EXPECT_CALL(*service_ptr, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_OK, serialized_roundtrip, + ServiceRequestSender::ResponseInfo{.encoded_body_length = 10})); + controller->Start(GURL("http://a.example.com/path"), + std::make_unique<TriggerContext>()); + EXPECT_THAT(GetUkmFlowFinished(ukm_recorder_), IsEmpty()); + + controller.reset(); + EXPECT_THAT( + GetUkmFlowFinished(ukm_recorder_), + ElementsAreArray(std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>{ + {navigation_ids_[0], + {{kFlowFinishedState, 3 /*Metrics::FlowFinishedState::DESTROYED*/}, + {kFlowFinishedNumActions, 1}, + {kFlowFinishedNumJsFlowActions, 0}, + {kFlowFinishedNumRoundtrips, 1}, + {kFlowFinishedTotalDecodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes(serialized_roundtrip.size())}, + {kFlowFinishedTotalDecodedJsFlowSizeInBytes, 0}, + {kFlowFinishedTotalEncodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes(10)}}}})); +} + +TEST_F(ControllerTest, FlowFinishedMetricMultipleRoundtrips) { + // A single script with a prompt action. + SupportsScriptResponseProto script_response; + AddRunnableScript(&script_response, "script") + ->mutable_presentation() + ->set_autostart(true); + SetupScripts(script_response); + + // First roundtrip, containing a single action and pretending to be 10 bytes. + ActionsResponseProto first_roundtrip; + first_roundtrip.add_actions() + ->mutable_prompt() + ->add_choices() + ->mutable_chip() + ->set_text("ok 1"); + std::string serialized_first_roundtrip; + first_roundtrip.SerializeToString(&serialized_first_roundtrip); + EXPECT_CALL(*mock_service_, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_OK, serialized_first_roundtrip, + ServiceRequestSender::ResponseInfo{.encoded_body_length = 10})); + + // Second roundtrip, containing three actions (one of which a JS flow action), + // pretending to be 15 bytes long. Note that the first action fails + // immediately, leading to only a subset of actions being executed (but they + // should all count towards network traffic). + ActionsResponseProto second_roundtrip; + // Invalid showcast, since no selector is specified. + second_roundtrip.add_actions()->mutable_show_cast(); + second_roundtrip.add_actions()->mutable_js_flow()->set_js_flow("return 5;"); + second_roundtrip.add_actions() + ->mutable_prompt() + ->add_choices() + ->mutable_chip() + ->set_text("ok 2"); + std::string serialized_second_roundtrip; + second_roundtrip.SerializeToString(&serialized_second_roundtrip); + EXPECT_CALL(*mock_service_, GetNextActions) + .WillOnce(RunOnceCallback<6>( + net::HTTP_OK, serialized_second_roundtrip, + ServiceRequestSender::ResponseInfo{.encoded_body_length = 15})) + // Third roundtrip is empty, ending the flow. + .WillOnce(RunOnceCallback<6>(net::HTTP_OK, "", + ServiceRequestSender::ResponseInfo{})); + + Start("http://a.example.com/path"); + EXPECT_THAT(*fake_script_executor_ui_delegate_.GetUserActions(), + ElementsAre(Property(&UserAction::chip, + Field(&Chip::text, StrEq("ok 1"))))); + (*fake_script_executor_ui_delegate_.GetUserActions())[0].RunCallback(); + + EXPECT_THAT( + GetUkmFlowFinished(ukm_recorder_), + ElementsAreArray(std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry>{ + {navigation_ids_[0], + {{kFlowFinishedState, 1 /*Metrics::FlowFinishedState::SUCCESS*/}, + {kFlowFinishedNumActions, 4}, + {kFlowFinishedNumJsFlowActions, 1}, + {kFlowFinishedNumRoundtrips, 3}, + {kFlowFinishedTotalDecodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes( + serialized_first_roundtrip.size() + + serialized_second_roundtrip.size())}, + {kFlowFinishedTotalDecodedJsFlowSizeInBytes, + ukm::GetExponentialBucketMinForBytes( + second_roundtrip.actions(1).SerializeAsString().size())}, + {kFlowFinishedTotalEncodedGetActionsSizeInBytes, + ukm::GetExponentialBucketMinForBytes( + 25 /* sum of response infos */)}}}})); +} + class ControllerPrerenderTest : public ControllerTest { public: ControllerPrerenderTest() {
diff --git a/components/autofill_assistant/browser/fake_script_executor_delegate.cc b/components/autofill_assistant/browser/fake_script_executor_delegate.cc index 602f708b..3645f7f 100644 --- a/components/autofill_assistant/browser/fake_script_executor_delegate.cc +++ b/components/autofill_assistant/browser/fake_script_executor_delegate.cc
@@ -184,4 +184,9 @@ return &browse_domains_; } +void FakeScriptExecutorDelegate::OnActionsResponseReceived( + const RoundtripNetworkStats& network_stats) { + roundtrip_network_stats_ = network_stats; +} + } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/fake_script_executor_delegate.h b/components/autofill_assistant/browser/fake_script_executor_delegate.h index 32360e9f..bd02e7b4 100644 --- a/components/autofill_assistant/browser/fake_script_executor_delegate.h +++ b/components/autofill_assistant/browser/fake_script_executor_delegate.h
@@ -74,6 +74,8 @@ void SetBrowseModeInvisible(bool invisible) override; ProcessedActionStatusDetailsProto& GetLogInfo() override; bool MustUseBackendData() const override; + void OnActionsResponseReceived( + const RoundtripNetworkStats& network_stats) override; bool ShouldShowWarning() override; @@ -122,6 +124,10 @@ must_use_backend_data_ = must_use_backend_data; } + RoundtripNetworkStats GetRoundtripNetworkStats() const { + return roundtrip_network_stats_; + } + private: ClientSettings client_settings_; GURL current_url_; @@ -144,6 +150,7 @@ raw_ptr<UserData> user_data_ = nullptr; ProcessedActionStatusDetailsProto log_info_; bool must_use_backend_data_ = false; + RoundtripNetworkStats roundtrip_network_stats_; bool require_ui_ = false; };
diff --git a/components/autofill_assistant/browser/metrics.cc b/components/autofill_assistant/browser/metrics.cc index 2c3ce701..1ed95fc 100644 --- a/components/autofill_assistant/browser/metrics.cc +++ b/components/autofill_assistant/browser/metrics.cc
@@ -4,6 +4,9 @@ #include "components/autofill_assistant/browser/metrics.h" +#include <algorithm> +#include <numeric> + #include "base/containers/flat_map.h" #include "base/logging.h" #include "base/metrics/histogram_functions.h" @@ -11,6 +14,7 @@ #include "components/autofill_assistant/browser/features.h" #include "components/autofill_assistant/browser/intent_strings.h" #include "components/autofill_assistant/browser/startup_util.h" +#include "services/metrics/public/cpp/metrics_utils.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -532,7 +536,6 @@ base::UmaHistogramEnumeration(kOnboardingFetcherResultStatus, status); } -// static void Metrics::RecordServiceRequestRetryCount(int count, bool success) { DCHECK_GE(count, 0); base::UmaHistogramExactLinear(success ? kServiceRequestSuccessRetryCount @@ -542,6 +545,38 @@ } // static +void Metrics::RecordFlowFinished(ukm::UkmRecorder* ukm_recorder, + ukm::SourceId source_id, + FlowFinishedState state, + RoundtripNetworkStats flow_network_stats) { + int num_js_flow_actions = 0; + size_t total_decoded_js_flow_size_in_bytes = 0; + for (const auto& action : flow_network_stats.action_stats()) { + if (action.action_info_case() != + static_cast<int>(ActionProto::ActionInfoCase::kJsFlow)) { + continue; + } + num_js_flow_actions++; + total_decoded_js_flow_size_in_bytes += action.decoded_size_bytes(); + } + + ukm::builders::AutofillAssistant_FlowFinished(source_id) + .SetFlowFinishedState(static_cast<int64_t>(state)) + .SetNumJsFlowActions(num_js_flow_actions) + .SetTotalDecodedJsFlowSizeInBytes(ukm::GetExponentialBucketMinForBytes( + total_decoded_js_flow_size_in_bytes)) + .SetNumActions(flow_network_stats.action_stats().size()) + .SetNumRoundtrips(flow_network_stats.num_roundtrips()) + .SetTotalEncodedGetActionsSizeInBytes( + ukm::GetExponentialBucketMinForBytes( + flow_network_stats.roundtrip_encoded_body_size_bytes())) + .SetTotalDecodedGetActionsSizeInBytes( + ukm::GetExponentialBucketMinForBytes( + flow_network_stats.roundtrip_decoded_body_size_bytes())) + .Record(ukm_recorder); +} + +// static AutofillAssistantIntent Metrics::ExtractIntentFromScriptParameters( const ScriptParameters& script_parameters) { absl::optional<std::string> intent = script_parameters.GetIntent();
diff --git a/components/autofill_assistant/browser/metrics.h b/components/autofill_assistant/browser/metrics.h index a83a516..c1badd4 100644 --- a/components/autofill_assistant/browser/metrics.h +++ b/components/autofill_assistant/browser/metrics.h
@@ -8,6 +8,7 @@ #include <iosfwd> #include <string> +#include "components/autofill_assistant/browser/service.pb.h" #include "components/autofill_assistant/core/public/autofill_assistant_intent.h" #include "services/metrics/public/cpp/ukm_source_id.h" #include "third_party/abseil-cpp/absl/types/optional.h" @@ -723,6 +724,27 @@ kMaxValue = SCRIPT_STARTED }; + // This enum is used in histograms, do not remove/renumber entries. Only add + // at the end and update kMaxValue. Also remember to update the + // AutofillAssistantFlowFinishedState enum listing in + // tools/metrics/histograms/enums.xml. + enum class FlowFinishedState { + UNKNOWN = 0, + // For now, this means that the script finished successfully, i.e., the + // script executor returned 'true' as result. This does not mean that the + // run will be counted towards our backend metrics - it's just an indicator + // that the script ran until a scripted end. + SUCCESS = 1, + // There was a script execution error. This can have a variety of causes + // such as network outage and many others. + FAILURE = 2, + // The controller was destroyed mid-script. Usually, this happens if the + // tab owning the controller was destroyed, or if the entire activity was + // closed by the user. + DESTROYED = 3, + kMaxValue = DESTROYED + }; + static void RecordDropOut(DropOutReason reason, const std::string& intent); static void RecordPaymentRequestPrefilledSuccess( bool initially_complete, @@ -802,6 +824,10 @@ static void RecordCupRpcVerificationEvent(CupRpcVerificationEvent event); static void RecordJsFlowStartedEvent(JsFlowStartedEvent event); static void RecordServiceRequestRetryCount(int count, bool success); + static void RecordFlowFinished(ukm::UkmRecorder* ukm_recorder, + ukm::SourceId source_id, + FlowFinishedState state, + RoundtripNetworkStats flow_network_stats); // Extracts the enum value corresponding to the intent specified in // |script_parameters|.
diff --git a/components/autofill_assistant/browser/mock_script_executor_delegate.h b/components/autofill_assistant/browser/mock_script_executor_delegate.h index a9653de..06363eb 100644 --- a/components/autofill_assistant/browser/mock_script_executor_delegate.h +++ b/components/autofill_assistant/browser/mock_script_executor_delegate.h
@@ -104,6 +104,10 @@ MOCK_METHOD(ProcessedActionStatusDetailsProto&, GetLogInfo, (), (override)); MOCK_METHOD(bool, ShouldShowWarning, (), (override)); MOCK_METHOD(bool, MustUseBackendData, (), (const override)); + MOCK_METHOD(void, + OnActionsResponseReceived, + (const RoundtripNetworkStats& network_stats), + (override)); private: ClientSettings client_settings_;
diff --git a/components/autofill_assistant/browser/protocol_utils.cc b/components/autofill_assistant/browser/protocol_utils.cc index f98a49fa..dbbe934a 100644 --- a/components/autofill_assistant/browser/protocol_utils.cc +++ b/components/autofill_assistant/browser/protocol_utils.cc
@@ -1031,6 +1031,7 @@ const ServiceRequestSender::ResponseInfo& response_info, const std::vector<std::unique_ptr<Action>>& actions) { RoundtripNetworkStats stats; + stats.set_num_roundtrips(1); stats.set_roundtrip_decoded_body_size_bytes(response.size()); stats.set_roundtrip_encoded_body_size_bytes( response_info.encoded_body_length);
diff --git a/components/autofill_assistant/browser/protocol_utils_unittest.cc b/components/autofill_assistant/browser/protocol_utils_unittest.cc index 97e171f..9fcd0ee 100644 --- a/components/autofill_assistant/browser/protocol_utils_unittest.cc +++ b/components/autofill_assistant/browser/protocol_utils_unittest.cc
@@ -130,6 +130,7 @@ processed_actions.emplace_back(ProcessedActionProto()); RoundtripNetworkStats network_stats; + network_stats.set_num_roundtrips(1); network_stats.set_roundtrip_encoded_body_size_bytes(12345); network_stats.set_roundtrip_decoded_body_size_bytes(23456); auto* action_stats = network_stats.add_action_stats(); @@ -668,6 +669,7 @@ response_info.encoded_body_length = 20; RoundtripNetworkStats expected_stats; + expected_stats.set_num_roundtrips(1); expected_stats.set_roundtrip_encoded_body_size_bytes(20); expected_stats.set_roundtrip_decoded_body_size_bytes(28); auto* action_stats = expected_stats.add_action_stats();
diff --git a/components/autofill_assistant/browser/public/external_action.proto b/components/autofill_assistant/browser/public/external_action.proto index 031806ac..aca1910 100644 --- a/components/autofill_assistant/browser/public/external_action.proto +++ b/components/autofill_assistant/browser/public/external_action.proto
@@ -18,11 +18,11 @@ optional ActionInfo info = 1; } -// Extended by the integrator. message ActionInfo { optional bytes action_payload = 1; - oneof Action { + // Action forwarded to the client delegate. + oneof action { password_change.GenericPasswordChangeSpecification generic_password_change_specification = 2; }
diff --git a/components/autofill_assistant/browser/script_executor.cc b/components/autofill_assistant/browser/script_executor.cc index eea924c..901d256 100644 --- a/components/autofill_assistant/browser/script_executor.cc +++ b/components/autofill_assistant/browser/script_executor.cc
@@ -846,6 +846,10 @@ } if (!success) { + roundtrip_network_stats_ = ProtocolUtils::ComputeNetworkStats( + response, response_info, /* actions = */ {}); + delegate_->OnActionsResponseReceived(roundtrip_network_stats_); + RunCallback(false); return; } @@ -892,6 +896,7 @@ roundtrip_network_stats_ = ProtocolUtils::ComputeNetworkStats(response, response_info, actions_); + delegate_->OnActionsResponseReceived(roundtrip_network_stats_); ReportPayloadsToListener(); if (should_update_scripts) { ReportScriptsUpdateToListener(std::move(scripts));
diff --git a/components/autofill_assistant/browser/script_executor_delegate.h b/components/autofill_assistant/browser/script_executor_delegate.h index 577c3fbd..efb72a891 100644 --- a/components/autofill_assistant/browser/script_executor_delegate.h +++ b/components/autofill_assistant/browser/script_executor_delegate.h
@@ -158,6 +158,10 @@ // backend endpoint to query data. virtual bool MustUseBackendData() const = 0; + // Called when a new action response has been received. Used for metrics. + virtual void OnActionsResponseReceived( + const RoundtripNetworkStats& network_stats) = 0; + protected: virtual ~ScriptExecutorDelegate() = default; };
diff --git a/components/autofill_assistant/browser/script_executor_unittest.cc b/components/autofill_assistant/browser/script_executor_unittest.cc index 469b2dc..35795e20 100644 --- a/components/autofill_assistant/browser/script_executor_unittest.cc +++ b/components/autofill_assistant/browser/script_executor_unittest.cc
@@ -2208,30 +2208,33 @@ EXPECT_EQ(1000, timing_stats.client_time_ms()); } -TEST_F(ScriptExecutorTest, RoundtripNetworkStats) { +TEST_F(ScriptExecutorTest, RoundtripNetworkStatsForSuccessfulRoundtrip) { ActionsResponseProto actions_response; ActionProto* action = actions_response.add_actions(); action->mutable_tell()->set_message("Hello world"); - ServiceRequestSender::ResponseInfo response_info; - response_info.encoded_body_length = 12; - EXPECT_CALL(mock_service_, GetActions) - .WillOnce(RunOnceCallback<5>(net::HTTP_OK, Serialize(actions_response), - response_info)); + .WillOnce(RunOnceCallback<5>( + net::HTTP_OK, Serialize(actions_response), + ServiceRequestSender::ResponseInfo{.encoded_body_length = 76})); RoundtripNetworkStats captured_network_stats; EXPECT_CALL(mock_service_, GetNextActions) - .WillOnce( - DoAll(SaveArg<5>(&captured_network_stats), - RunOnceCallback<6>(net::HTTP_OK, /* response= */ "", - ServiceRequestSender::ResponseInfo{}))); + .WillOnce(DoAll( + SaveArg<5>(&captured_network_stats), + [&]() { + EXPECT_EQ(captured_network_stats, + delegate_.GetRoundtripNetworkStats()); + }, + RunOnceCallback<6>( + net::HTTP_OK, "", + ServiceRequestSender::ResponseInfo{.encoded_body_length = 13}))); EXPECT_CALL(executor_callback_, Run(Field(&ScriptExecutor::Result::success, true))); executor_->Run(&user_data_, executor_callback_.Get()); - EXPECT_EQ(captured_network_stats.roundtrip_encoded_body_size_bytes(), 12); + EXPECT_EQ(captured_network_stats.roundtrip_encoded_body_size_bytes(), 76); EXPECT_EQ(static_cast<size_t>( captured_network_stats.roundtrip_decoded_body_size_bytes()), Serialize(actions_response).size()); @@ -2240,6 +2243,53 @@ EXPECT_EQ(static_cast<size_t>( captured_network_stats.action_stats(0).decoded_size_bytes()), Serialize(*action).size()); + + // Roundtrip accumulation is more comprehensively tested in the controller, + // this is just to make sure that GetActions and GetNextActions are both + // reported to the delegate. + EXPECT_EQ( + delegate_.GetRoundtripNetworkStats().roundtrip_encoded_body_size_bytes(), + 13); +} + +TEST_F(ScriptExecutorTest, RoundtripNetworkStatsForFailedRoundtrip) { + EXPECT_CALL(mock_service_, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_UNAUTHORIZED, "", + ServiceRequestSender::ResponseInfo{.encoded_body_length = 12})); + + EXPECT_CALL(executor_callback_, + Run(Field(&ScriptExecutor::Result::success, false))); + executor_->Run(&user_data_, executor_callback_.Get()); + + EXPECT_EQ( + delegate_.GetRoundtripNetworkStats().roundtrip_encoded_body_size_bytes(), + 12); + EXPECT_EQ( + delegate_.GetRoundtripNetworkStats().roundtrip_decoded_body_size_bytes(), + 0); + EXPECT_EQ(delegate_.GetRoundtripNetworkStats().num_roundtrips(), 1); + EXPECT_EQ(delegate_.GetRoundtripNetworkStats().action_stats().size(), 0); +} + +TEST_F(ScriptExecutorTest, RoundtripNetworkStatsForParsingError) { + EXPECT_CALL(mock_service_, GetActions) + .WillOnce(RunOnceCallback<5>( + net::HTTP_OK, "\xff\xff\xff not a valid proto, 36 bytes long", + ServiceRequestSender::ResponseInfo{.encoded_body_length = 12})); + + EXPECT_CALL(executor_callback_, + Run(Field(&ScriptExecutor::Result::success, false))); + executor_->Run(&user_data_, executor_callback_.Get()); + + EXPECT_EQ( + delegate_.GetRoundtripNetworkStats().roundtrip_encoded_body_size_bytes(), + 12); + EXPECT_EQ( + delegate_.GetRoundtripNetworkStats().roundtrip_decoded_body_size_bytes(), + 36); + EXPECT_EQ(delegate_.GetRoundtripNetworkStats().num_roundtrips(), 1); + EXPECT_EQ(delegate_.GetRoundtripNetworkStats().action_stats().size(), 0); } TEST_F(ScriptExecutorTest, ClearPersistentUiOnError) {
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index 1f690d3..b9a67abc 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -699,6 +699,9 @@ // actions that were not executed, so this list can be longer than // |processed_actions|. repeated ActionNetworkStats action_stats = 3; + // Used for Chrome metrics only; in backend-metrics, this will always be 1 and + // can be ignored. + optional int32 num_roundtrips = 4; } // Next request to get a script's actions.
diff --git a/components/autofill_assistant/browser/service/service_impl_unittest.cc b/components/autofill_assistant/browser/service/service_impl_unittest.cc index 860db4a..eca70f9d9 100644 --- a/components/autofill_assistant/browser/service/service_impl_unittest.cc +++ b/components/autofill_assistant/browser/service/service_impl_unittest.cc
@@ -204,8 +204,8 @@ Run(net::HTTP_OK, std::string("response"), _)); service_->GetNextActions( - TriggerContext(), previous_global_payload, previous_script_payload, - /* processed_actions = */ {}, + TriggerContext(), std::string("fake_previous_global_payload"), + std::string("fake_previous_script_payload"), /* processed_actions = */ {}, /* timing_stats = */ RoundtripTimingStats(), RoundtripNetworkStats(), mock_response_callback_.Get()); }
diff --git a/components/autofill_assistant/browser/ukm_test_util.cc b/components/autofill_assistant/browser/ukm_test_util.cc index cf81eda..bfdae3e 100644 --- a/components/autofill_assistant/browser/ukm_test_util.cc +++ b/components/autofill_assistant/browser/ukm_test_util.cc
@@ -142,6 +142,17 @@ {kUserDataSource}); } +std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmFlowFinished( + ukm::TestAutoSetUkmRecorder& ukm_recorder) { + return ukm_recorder.GetEntries( + kAutofillAssistantFlowFinishedEntry, + {kFlowFinishedState, kFlowFinishedNumActions, + kFlowFinishedNumJsFlowActions, kFlowFinishedNumRoundtrips, + kFlowFinishedTotalDecodedGetActionsSizeInBytes, + kFlowFinishedTotalDecodedJsFlowSizeInBytes, + kFlowFinishedTotalEncodedGetActionsSizeInBytes}); +} + std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> ToHumanReadableMetrics( const std::vector<std::pair<ukm::SourceId, std::vector<UkmEnumVariant>>>& input) {
diff --git a/components/autofill_assistant/browser/ukm_test_util.h b/components/autofill_assistant/browser/ukm_test_util.h index 693b594d..9e209aab 100644 --- a/components/autofill_assistant/browser/ukm_test_util.h +++ b/components/autofill_assistant/browser/ukm_test_util.h
@@ -38,6 +38,8 @@ "AutofillAssistant.CollectShippingAddress"; const char kAutofillAssistantCollectUserDataResult[] = "AutofillAssistant.CollectUserDataResult"; +const char kAutofillAssistantFlowFinishedEntry[] = + "AutofillAssistant.FlowFinished"; // The identifiers for all UKM metrics that we currently record/test. const char kTriggerUiType[] = "TriggerUIType"; @@ -71,6 +73,16 @@ const char kResult[] = "Result"; const char kTimeTakenMs[] = "TimeTakenMs"; const char kUserDataSource[] = "UserDataSource"; +const char kFlowFinishedState[] = "FlowFinishedState"; +const char kFlowFinishedNumActions[] = "NumActions"; +const char kFlowFinishedNumJsFlowActions[] = "NumJsFlowActions"; +const char kFlowFinishedNumRoundtrips[] = "NumRoundtrips"; +const char kFlowFinishedTotalDecodedGetActionsSizeInBytes[] = + "TotalDecodedGetActionsSizeInBytes"; +const char kFlowFinishedTotalDecodedJsFlowSizeInBytes[] = + "TotalDecodedJsFlowSizeInBytes"; +const char kFlowFinishedTotalEncodedGetActionsSizeInBytes[] = + "TotalEncodedGetActionsSizeInBytes"; // Convenience accessors for UKM metrics. std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> @@ -127,6 +139,9 @@ std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmUserDataSource( ukm::TestAutoSetUkmRecorder& ukm_recorder); +std::vector<ukm::TestUkmRecorder::HumanReadableUkmEntry> GetUkmFlowFinished( + ukm::TestAutoSetUkmRecorder& ukm_recorder); + // Variant containing all UKM enums that we currently record/test. // NOTE: When adding entries, remember to also modify kUkmEnumMetricNames! using UkmEnumVariant = absl::variant<TriggerScriptProto::TriggerUIType, @@ -140,7 +155,8 @@ Metrics::AutofillAssistantSource, AutofillAssistantIntent, Metrics::AutofillAssistantExperiment, - Metrics::Onboarding>; + Metrics::Onboarding, + Metrics::FlowFinishedState>; // The metric names corresponding to the variant alternatives of UkmEnumVariant. // NOTE: When adding entries, remember to also modify UkmEnumVariant! @@ -155,7 +171,8 @@ kSource, kIntent, kExperiments, - kOnboarding}; + kOnboarding, + kFlowFinishedState}; // Intended to be used to convert a UkmEnumVariant to int64_t using a visitor. // Usage:
diff --git a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc index 835661e..6114f6e 100644 --- a/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc +++ b/components/breadcrumbs/core/breadcrumb_persistent_storage_manager.cc
@@ -49,8 +49,13 @@ base::MemoryMappedFile::READ_WRITE_EXTEND); if (file_valid) { + // TODO(crbug.com/1327267): Writing past the end of the memory-mapped file + // is suspected to cause a crash. Remove CHECK once the crash is understood. + const size_t remaining_length = kPersistedFilesizeInBytes - position; + CHECK(events.length() < remaining_length); + char* data = reinterpret_cast<char*>(file.data()); - strcpy(&data[position], events.data()); + base::strlcpy(&data[position], events.c_str(), remaining_length); } }
diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb index 5708082..0bf369e2 100644 --- a/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb +++ b/components/browser_ui/strings/android/translations/browser_ui_strings_it.xtb
@@ -171,7 +171,7 @@ <translation id="509133520954049755">Richiedi visualizzazione desktop</translation> <translation id="5100237604440890931">Compresso. Fai clic per espandere.</translation> <translation id="5123685120097942451">Scheda di navigazione in incognito</translation> -<translation id="5134599672855298214">Richiedi visualizzazione per dispositivi mobili (opzione consigliata)</translation> +<translation id="5134599672855298214">Richiedi visualizzazione mobile (opzione consigliata)</translation> <translation id="5186036860380548585">Opzione disponibile nella parte superiore dello schermo</translation> <translation id="5197729504361054390">I contatti che selezioni verranno condivisi con <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />.</translation> <translation id="5216942107514965959">Ultima visita: oggi</translation>
diff --git a/components/cdm/browser/media_drm_storage_impl.cc b/components/cdm/browser/media_drm_storage_impl.cc index 34a51d84..3f385a5 100644 --- a/components/cdm/browser/media_drm_storage_impl.cc +++ b/components/cdm/browser/media_drm_storage_impl.cc
@@ -716,7 +716,7 @@ // MediaDrmStorageImpl MediaDrmStorageImpl::MediaDrmStorageImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, PrefService* pref_service, GetOriginIdCB get_origin_id_cb, AllowEmptyOriginIdCB allow_empty_origin_id_cb, @@ -734,13 +734,13 @@ } MediaDrmStorageImpl::MediaDrmStorageImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, GetOriginIdCB get_origin_id_cb, AllowEmptyOriginIdCB allow_empty_origin_id_cb, mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver) : MediaDrmStorageImpl( render_frame_host, - user_prefs::UserPrefs::Get(render_frame_host->GetBrowserContext()), + user_prefs::UserPrefs::Get(render_frame_host.GetBrowserContext()), get_origin_id_cb, allow_empty_origin_id_cb, std::move(receiver)) {}
diff --git a/components/cdm/browser/media_drm_storage_impl.h b/components/cdm/browser/media_drm_storage_impl.h index 721a07e..c6af6390 100644 --- a/components/cdm/browser/media_drm_storage_impl.h +++ b/components/cdm/browser/media_drm_storage_impl.h
@@ -100,7 +100,7 @@ // allowed or not. It is called if |get_origin_id_cb| is unable to return an // origin ID. MediaDrmStorageImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, PrefService* pref_service, GetOriginIdCB get_origin_id_cb, AllowEmptyOriginIdCB allow_empty_origin_id_cb, @@ -109,7 +109,7 @@ // As above, but derives the PrefService from |render_frame_host|. // TODO(estade): make this the only constructor. MediaDrmStorageImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, GetOriginIdCB get_origin_id_cb, AllowEmptyOriginIdCB allow_empty_origin_id_cb, mojo::PendingReceiver<media::mojom::MediaDrmStorage> receiver);
diff --git a/components/cdm/browser/media_drm_storage_impl_unittest.cc b/components/cdm/browser/media_drm_storage_impl_unittest.cc index edacff4..f527399e 100644 --- a/components/cdm/browser/media_drm_storage_impl_unittest.cc +++ b/components/cdm/browser/media_drm_storage_impl_unittest.cc
@@ -100,7 +100,7 @@ std::move(pending_media_drm_storage)); // The created object will be destroyed on connection error. - new MediaDrmStorageImpl(rfh, pref_service_.get(), + new MediaDrmStorageImpl(*rfh, pref_service_.get(), std::move(get_origin_id_cb), std::move(allow_empty_cb), std::move(receiver));
diff --git a/components/device_signals/core/browser/signals_aggregator_impl.cc b/components/device_signals/core/browser/signals_aggregator_impl.cc index 1779c52..180ef92a 100644 --- a/components/device_signals/core/browser/signals_aggregator_impl.cc +++ b/components/device_signals/core/browser/signals_aggregator_impl.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/browser/signals_aggregator_impl_unittest.cc b/components/device_signals/core/browser/signals_aggregator_impl_unittest.cc index eb82341..be1e86c 100644 --- a/components/device_signals/core/browser/signals_aggregator_impl_unittest.cc +++ b/components/device_signals/core/browser/signals_aggregator_impl_unittest.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/browser/user_context.cc b/components/device_signals/core/browser/user_context.cc index ed3d091..8a74ea4 100644 --- a/components/device_signals/core/browser/user_context.cc +++ b/components/device_signals/core/browser/user_context.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/common/signals_constants.cc b/components/device_signals/core/common/signals_constants.cc index 2ed18b2..c91726d4 100644 --- a/components/device_signals/core/common/signals_constants.cc +++ b/components/device_signals/core/common/signals_constants.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/common/signals_constants.h b/components/device_signals/core/common/signals_constants.h index d2c286a8..b020bee 100644 --- a/components/device_signals/core/common/signals_constants.h +++ b/components/device_signals/core/common/signals_constants.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/common/win/win_types.h b/components/device_signals/core/common/win/win_types.h index 729b033..9f9748b 100644 --- a/components/device_signals/core/common/win/win_types.h +++ b/components/device_signals/core/common/win/win_types.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/com_fakes.cc b/components/device_signals/core/system_signals/win/com_fakes.cc index bbeb29b..3d1c01b 100644 --- a/components/device_signals/core/system_signals/win/com_fakes.cc +++ b/components/device_signals/core/system_signals/win/com_fakes.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/com_fakes.h b/components/device_signals/core/system_signals/win/com_fakes.h index 04744d4f..5bbfd28 100644 --- a/components/device_signals/core/system_signals/win/com_fakes.h +++ b/components/device_signals/core/system_signals/win/com_fakes.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/mock_wmi_client.cc b/components/device_signals/core/system_signals/win/mock_wmi_client.cc index 112f597..f7f3729 100644 --- a/components/device_signals/core/system_signals/win/mock_wmi_client.cc +++ b/components/device_signals/core/system_signals/win/mock_wmi_client.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/mock_wmi_client.h b/components/device_signals/core/system_signals/win/mock_wmi_client.h index 45e7220..500526e 100644 --- a/components/device_signals/core/system_signals/win/mock_wmi_client.h +++ b/components/device_signals/core/system_signals/win/mock_wmi_client.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/mock_wsc_client.cc b/components/device_signals/core/system_signals/win/mock_wsc_client.cc index 63226c4..c0c75d4 100644 --- a/components/device_signals/core/system_signals/win/mock_wsc_client.cc +++ b/components/device_signals/core/system_signals/win/mock_wsc_client.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/mock_wsc_client.h b/components/device_signals/core/system_signals/win/mock_wsc_client.h index e3a3d98..7726761 100644 --- a/components/device_signals/core/system_signals/win/mock_wsc_client.h +++ b/components/device_signals/core/system_signals/win/mock_wsc_client.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wmi_client.cc b/components/device_signals/core/system_signals/win/wmi_client.cc index 90620cdd..f460779d 100644 --- a/components/device_signals/core/system_signals/win/wmi_client.cc +++ b/components/device_signals/core/system_signals/win/wmi_client.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wmi_client.h b/components/device_signals/core/system_signals/win/wmi_client.h index 3aa735bb..58fb42609 100644 --- a/components/device_signals/core/system_signals/win/wmi_client.h +++ b/components/device_signals/core/system_signals/win/wmi_client.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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. @@ -17,6 +17,8 @@ namespace device_signals { // Errors that can occur when calling WMI, or parsing response values. +// Do not change ordering. This enum is captured as +// `DeviceSignalsWmiParsingError` in enums.xml. enum class WmiParsingError { kFailedToIterateResults = 0, kFailedToGetName = 1,
diff --git a/components/device_signals/core/system_signals/win/wmi_client_impl.cc b/components/device_signals/core/system_signals/win/wmi_client_impl.cc index 78b2d26..779558b8 100644 --- a/components/device_signals/core/system_signals/win/wmi_client_impl.cc +++ b/components/device_signals/core/system_signals/win/wmi_client_impl.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wmi_client_impl.h b/components/device_signals/core/system_signals/win/wmi_client_impl.h index 6b35f31..49cb8f8 100644 --- a/components/device_signals/core/system_signals/win/wmi_client_impl.h +++ b/components/device_signals/core/system_signals/win/wmi_client_impl.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wmi_client_impl_unittest.cc b/components/device_signals/core/system_signals/win/wmi_client_impl_unittest.cc index b21339e..5331a492 100644 --- a/components/device_signals/core/system_signals/win/wmi_client_impl_unittest.cc +++ b/components/device_signals/core/system_signals/win/wmi_client_impl_unittest.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wsc_client.cc b/components/device_signals/core/system_signals/win/wsc_client.cc index 3ec0ac21..7a8d80c 100644 --- a/components/device_signals/core/system_signals/win/wsc_client.cc +++ b/components/device_signals/core/system_signals/win/wsc_client.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wsc_client.h b/components/device_signals/core/system_signals/win/wsc_client.h index ca8dd46..f90390a 100644 --- a/components/device_signals/core/system_signals/win/wsc_client.h +++ b/components/device_signals/core/system_signals/win/wsc_client.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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. @@ -15,13 +15,19 @@ // https://docs.microsoft.com/en-us/windows/win32/api/iwscapi/ namespace device_signals { +// Errors that can occur when querying WSC. +// Do not change ordering. This enum is captured as +// `DeviceSignalsWscQueryError` in enums.xml. enum class WscQueryError { kFailedToCreateInstance = 0, kFailedToInitializeProductList = 1, kFailedToGetProductCount = 2, + kMaxValue = kFailedToGetProductCount }; // Errors that can occur when calling WSC, or parsing response values. +// Do not change ordering. This enum is captured as +// `DeviceSignalsWscParsingError` in enums.xml. enum class WscParsingError { kFailedToGetItem = 0, kFailedToGetState = 1,
diff --git a/components/device_signals/core/system_signals/win/wsc_client_impl.cc b/components/device_signals/core/system_signals/win/wsc_client_impl.cc index f9d68328..3dfd5ec 100644 --- a/components/device_signals/core/system_signals/win/wsc_client_impl.cc +++ b/components/device_signals/core/system_signals/win/wsc_client_impl.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wsc_client_impl.h b/components/device_signals/core/system_signals/win/wsc_client_impl.h index cd18f3b3..3d32ae7 100644 --- a/components/device_signals/core/system_signals/win/wsc_client_impl.h +++ b/components/device_signals/core/system_signals/win/wsc_client_impl.h
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/device_signals/core/system_signals/win/wsc_client_impl_unittest.cc b/components/device_signals/core/system_signals/win/wsc_client_impl_unittest.cc index 7b832d68..ae56cf38 100644 --- a/components/device_signals/core/system_signals/win/wsc_client_impl_unittest.cc +++ b/components/device_signals/core/system_signals/win/wsc_client_impl_unittest.cc
@@ -1,4 +1,4 @@ -// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 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.
diff --git a/components/history_clusters/core/history_clusters_service_test_api.cc b/components/history_clusters/core/history_clusters_service_test_api.cc index d62cc74..6e5b4a0 100644 --- a/components/history_clusters/core/history_clusters_service_test_api.cc +++ b/components/history_clusters/core/history_clusters_service_test_api.cc
@@ -101,23 +101,30 @@ } history::ClusterVisit GetHardcodedClusterVisit(history::VisitID visit_id, - float score) { - const auto& visits = GetHardcodedTestVisits(); - for (const auto& visit : visits) { - if (visit.visit_row.visit_id != visit_id) - continue; - - history::ClusterVisit cluster_visit; - cluster_visit.annotated_visit = visit; - cluster_visit.normalized_url = visit.url_row.url(); - cluster_visit.url_for_deduping = - ComputeURLForDeduping(cluster_visit.normalized_url); - cluster_visit.score = score; - return cluster_visit; + float score, + int engagement_score) { + for (const auto& visit : GetHardcodedTestVisits()) { + if (visit.visit_row.visit_id == visit_id) + return AnnotatedVisitToClusterVisit(visit, score, engagement_score); } - NOTREACHED(); - return history::ClusterVisit(); + NOTREACHED() << "GetHardcodedClusterVisit() could not find visit_id: " + << visit_id; + return {}; +} + +history::ClusterVisit AnnotatedVisitToClusterVisit( + const history::AnnotatedVisit& visit, + float score, + int engagement_score) { + history::ClusterVisit cluster_visit; + cluster_visit.annotated_visit = visit; + cluster_visit.normalized_url = visit.url_row.url(); + cluster_visit.url_for_deduping = + ComputeURLForDeduping(cluster_visit.normalized_url); + cluster_visit.score = score; + cluster_visit.engagement_score = engagement_score; + return cluster_visit; } } // namespace history_clusters
diff --git a/components/history_clusters/core/history_clusters_service_test_api.h b/components/history_clusters/core/history_clusters_service_test_api.h index fd1652c..c50bdf5 100644 --- a/components/history_clusters/core/history_clusters_service_test_api.h +++ b/components/history_clusters/core/history_clusters_service_test_api.h
@@ -75,7 +75,13 @@ // Fetches the hardcoded `ClusterVisit` with ID `visit_id`. history::ClusterVisit GetHardcodedClusterVisit(history::VisitID visit_id, - float score = 0.5); + float score = 0.5, + int engagement_score = 0); + +history::ClusterVisit AnnotatedVisitToClusterVisit( + const history::AnnotatedVisit& visit, + float score = .5, + int engagement_score = 0); } // namespace history_clusters
diff --git a/components/history_clusters/core/history_clusters_service_unittest.cc b/components/history_clusters/core/history_clusters_service_unittest.cc index 0b074bd..a1ee15b8 100644 --- a/components/history_clusters/core/history_clusters_service_unittest.cc +++ b/components/history_clusters/core/history_clusters_service_unittest.cc
@@ -68,23 +68,16 @@ // Fetches a scored visit by an ID. `visit_id` must be valid. This is a // convenience method used for constructing the fake response. - history::ClusterVisit GetVisitById(int visit_id, - float score = 0.5, - int engagement_score = 0) { - for (auto& visit : last_clustered_visits_) { - if (visit.visit_row.visit_id == visit_id) { - history::ClusterVisit cluster_visit; - cluster_visit.annotated_visit = visit; - cluster_visit.normalized_url = visit.url_row.url(); - cluster_visit.score = score; - cluster_visit.engagement_score = engagement_score; - return cluster_visit; - } + history::ClusterVisit GetVisitById(int visit_id) { + for (const auto& visit : last_clustered_visits_) { + if (visit.visit_row.visit_id == visit_id) + return AnnotatedVisitToClusterVisit(visit); } - NOTREACHED() << "TestClusteringBackend::GetVisitById " - << "could not find visit_id: " << visit_id; - return history::ClusterVisit(); + NOTREACHED() + << "TestClusteringBackend::GetVisitById() could not find visit_id: " + << visit_id; + return {}; } // Should be invoked before `GetClusters()` is invoked. @@ -309,6 +302,28 @@ return {old_clusters, visits}; } + // Helper to flush out the multiple history and cluster backend requests made + // by `Does[Query|URL]MatchAnyCluster()`. It won't populate the cache until + // all its requests have been completed. It makes 1 request (to each) per + // unique day with at least 1 visit; i.e. `number_of_days_with_visits`. + void FlushKeywordRequests(std::vector<history::Cluster> clusters, + size_t number_of_days_with_visits) { + test_clustering_backend_->WaitForGetClustersCall(); + test_clustering_backend_->FulfillCallback(clusters); + + // `Does[Query|URL]MatchAnyCluster()` will continue making history and + // cluster backend requests until it has exhausted history. We have to flush + // out these requests before it will populate the cache. + for (size_t i = 0; i < number_of_days_with_visits - 1; ++i) { + test_clustering_backend_->WaitForGetClustersCall(); + history::BlockUntilHistoryProcessesPendingRequests( + history_service_.get()); + test_clustering_backend_->FulfillCallback({}); + } + // One last wait to flush out the last, empty history request. + history::BlockUntilHistoryProcessesPendingRequests(history_service_.get()); + }; + protected: // ScopedFeatureList needs to be declared before TaskEnvironment, so that it // is destroyed after the TaskEnvironment is destroyed, preventing other @@ -878,71 +893,49 @@ // query should have kicked off a cache population request. EXPECT_FALSE(history_clusters_service_->DoesQueryMatchAnyCluster("apples")); - // Helper to flush out the multiple history and cluster backend requests made - // by `DoesQueryMatchAnyCluster()`. It won't populate the cache until all its - // requests have been completed. It makes 1 request (to each) per unique day - // with at least 1 visit; i.e. `number_of_days_with_visits`. - const auto flush_keyword_requests = [&](size_t number_of_days_with_visits) { - test_clustering_backend_->WaitForGetClustersCall(); - - std::vector<history::Cluster> clusters; - clusters.push_back(history::Cluster( - 0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById(2), - }, - {{u"apples", history::ClusterKeywordData( - history::ClusterKeywordData::kEntity, 5.0f, {})}, - {u"oranges", history::ClusterKeywordData()}, - {u"z", history::ClusterKeywordData()}, - {u"apples bananas", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - clusters.push_back(history::Cluster( - 0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById(2), - }, - { - {u"apples", - history::ClusterKeywordData( - history::ClusterKeywordData::kSearchTerms, 100.0f, {})}, - }, - /*should_show_on_prominent_ui_surfaces=*/true)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById(2), - }, - {{u"sensitive", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/false)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(5), - }, - {{u"singlevisit", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - - test_clustering_backend_->FulfillCallback(clusters); - - // `DoesQueryMatchAnyCluster()` will continue making history and cluster - // backend requests until it has exhausted history. We have to flush out - // these requests before it will populate the cache. - for (size_t i = 0; i < number_of_days_with_visits - 1; ++i) { - test_clustering_backend_->WaitForGetClustersCall(); - history::BlockUntilHistoryProcessesPendingRequests( - history_service_.get()); - test_clustering_backend_->FulfillCallback({}); - } - // One last wait to flush out the last, empty history request. - history::BlockUntilHistoryProcessesPendingRequests(history_service_.get()); - }; + std::vector<history::Cluster> clusters; + clusters.push_back(history::Cluster( + 0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit(2), + }, + {{u"apples", history::ClusterKeywordData( + history::ClusterKeywordData::kEntity, 5.0f, {})}, + {u"oranges", history::ClusterKeywordData()}, + {u"z", history::ClusterKeywordData()}, + {u"apples bananas", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); + clusters.push_back(history::Cluster( + 0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit(2), + }, + { + {u"apples", + history::ClusterKeywordData( + history::ClusterKeywordData::kSearchTerms, 100.0f, {})}, + }, + /*should_show_on_prominent_ui_surfaces=*/true)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit(2), + }, + {{u"sensitive", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/false)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(5), + }, + {{u"singlevisit", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); // Hardcoded test visits span 3 days (1-day-old, 2-days-old, and 60-day-old). - flush_keyword_requests(3); + FlushKeywordRequests(clusters, 3); // Now the exact query should match the populated cache. const auto keyword_data = @@ -992,7 +985,7 @@ // Visits now span 2 days (1-day-old and 60-day-old) since we deleted the only // 2-day-old visit. - flush_keyword_requests(2); + FlushKeywordRequests(clusters, 2); // The keyword cache should be repopulated. EXPECT_TRUE(history_clusters_service_->DoesQueryMatchAnyCluster("apples")); @@ -1054,59 +1047,37 @@ EXPECT_FALSE(history_clusters_service_->DoesURLMatchAnyCluster( ComputeURLKeywordForLookup(GURL("https://second-1-day-old-visit.com/")))); - // Helper to flush out the multiple history and cluster backend requests made - // by `DoesURLMatchAnyCluster()`. It won't populate the cache until all its - // requests have been completed. It makes 1 request (to each) per unique day - // with at least 1 visit; i.e. `number_of_days_with_visits`. - const auto flush_keyword_requests = [&](size_t number_of_days_with_visits) { - test_clustering_backend_->WaitForGetClustersCall(); - - std::vector<history::Cluster> clusters; - clusters.push_back(history::Cluster( - 0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById( - /*visit_id=*/2, /*score=*/0.0, /*engagement_score=*/20.0), - }, - {{u"apples", history::ClusterKeywordData()}, - {u"oranges", history::ClusterKeywordData()}, - {u"z", history::ClusterKeywordData()}, - {u"apples bananas", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById(2), - }, - {{u"sensitive", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/false)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(2), - }, - {{u"singlevisit", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - - test_clustering_backend_->FulfillCallback(clusters); - - // `DoesQueryMatchAnyCluster()` will continue making history and cluster - // backend requests until it has exhausted history. We have to flush out - // these requests before it will populate the cache. - for (size_t i = 0; i < number_of_days_with_visits - 1; ++i) { - test_clustering_backend_->WaitForGetClustersCall(); - history::BlockUntilHistoryProcessesPendingRequests( - history_service_.get()); - test_clustering_backend_->FulfillCallback({}); - } - // One last wait to flush out the last, empty history request. - history::BlockUntilHistoryProcessesPendingRequests(history_service_.get()); - }; + std::vector<history::Cluster> clusters; + clusters.push_back(history::Cluster( + 0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit( + /*visit_id=*/2, /*score=*/0.0, /*engagement_score=*/20.0), + }, + {{u"apples", history::ClusterKeywordData()}, + {u"oranges", history::ClusterKeywordData()}, + {u"z", history::ClusterKeywordData()}, + {u"apples bananas", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit(2), + }, + {{u"sensitive", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/false)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(2), + }, + {{u"singlevisit", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); // Hardcoded test visits span 3 days (1-day-old, 2-days-old, and 60-day-old). - flush_keyword_requests(3); + FlushKeywordRequests(clusters, 3); // Now the exact query should match the populated cache. EXPECT_TRUE(history_clusters_service_->DoesURLMatchAnyCluster( @@ -1124,7 +1095,7 @@ // Visits now span 2 days (1-day-old and 60-day-old) since we deleted the only // 2-day-old visit. - flush_keyword_requests(2); + FlushKeywordRequests(clusters, 2); // The keyword cache should be repopulated. EXPECT_TRUE(history_clusters_service_->DoesURLMatchAnyCluster( @@ -1145,59 +1116,37 @@ EXPECT_FALSE(history_clusters_service_->DoesURLMatchAnyCluster( ComputeURLKeywordForLookup(GURL("https://second-1-day-old-visit.com/")))); - // Helper to flush out the multiple history and cluster backend requests made - // by `DoesURLMatchAnyCluster()`. It won't populate the cache until all its - // requests have been completed. It makes 1 request (to each) per unique day - // with at least 1 visit; i.e. `number_of_days_with_visits`. - const auto flush_keyword_requests = [&](size_t number_of_days_with_visits) { - test_clustering_backend_->WaitForGetClustersCall(); - - std::vector<history::Cluster> clusters; - clusters.push_back(history::Cluster( - 0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById( - /*visit_id=*/2, /*score=*/0.0, /*engagement_score=*/20.0), - }, - {{u"apples", history::ClusterKeywordData()}, - {u"oranges", history::ClusterKeywordData()}, - {u"z", history::ClusterKeywordData()}, - {u"apples bananas", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(5), - test_clustering_backend_->GetVisitById(2), - }, - {{u"sensitive", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/false)); - clusters.push_back( - history::Cluster(0, - { - test_clustering_backend_->GetVisitById(2), - }, - {{u"singlevisit", history::ClusterKeywordData()}}, - /*should_show_on_prominent_ui_surfaces=*/true)); - - test_clustering_backend_->FulfillCallback(clusters); - - // `DoesQueryMatchAnyCluster()` will continue making history and cluster - // backend requests until it has exhausted history. We have to flush out - // these requests before it will populate the cache. - for (size_t i = 0; i < number_of_days_with_visits - 1; ++i) { - test_clustering_backend_->WaitForGetClustersCall(); - history::BlockUntilHistoryProcessesPendingRequests( - history_service_.get()); - test_clustering_backend_->FulfillCallback({}); - } - // One last wait to flush out the last, empty history request. - history::BlockUntilHistoryProcessesPendingRequests(history_service_.get()); - }; + std::vector<history::Cluster> clusters; + clusters.push_back(history::Cluster( + 0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit( + /*visit_id=*/2, /*score=*/0.0, /*engagement_score=*/20.0), + }, + {{u"apples", history::ClusterKeywordData()}, + {u"oranges", history::ClusterKeywordData()}, + {u"z", history::ClusterKeywordData()}, + {u"apples bananas", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(5), + GetHardcodedClusterVisit(2), + }, + {{u"sensitive", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/false)); + clusters.push_back( + history::Cluster(0, + { + GetHardcodedClusterVisit(2), + }, + {{u"singlevisit", history::ClusterKeywordData()}}, + /*should_show_on_prominent_ui_surfaces=*/true)); // Hardcoded test visits span 3 days (1-day-old, 2-days-old, and 60-day-old). - flush_keyword_requests(3); + FlushKeywordRequests(clusters, 3); // Now the exact query should match the populated cache. EXPECT_TRUE(history_clusters_service_->DoesURLMatchAnyCluster( @@ -1216,7 +1165,7 @@ // Visits now span 2 days (1-day-old and 60-day-old) since we deleted the only // 2-day-old visit. - flush_keyword_requests(2); + FlushKeywordRequests(clusters, 2); // The keyword cache should be repopulated. EXPECT_TRUE(history_clusters_service_->DoesURLMatchAnyCluster( @@ -1236,6 +1185,7 @@ private: Config config_; }; + TEST_F(HistoryClustersServiceMaxKeywordsTest, DoesQueryMatchAnyClusterMaxKeywordPhrases) { base::HistogramTester histogram_tester;
diff --git a/components/password_manager/core/common/password_manager_features.cc b/components/password_manager/core/common/password_manager_features.cc index 612862c..b8d8145 100644 --- a/components/password_manager/core/common/password_manager_features.cc +++ b/components/password_manager/core/common/password_manager_features.cc
@@ -171,6 +171,13 @@ const base::Feature kSecondaryServerFieldPredictions = { "SecondaryServerFieldPredictions", base::FEATURE_ENABLED_BY_DEFAULT}; +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +// Enables biometric authentication in settings +const base::Feature kEnableBiometricAuthenticationInSettings = { + "EnableBiometricAuthenticationInSettings", + base::FEATURE_DISABLED_BY_DEFAULT}; +#endif + #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) // Displays at least the decryptable and never saved logins in the password // manager
diff --git a/components/password_manager/core/common/password_manager_features.h b/components/password_manager/core/common/password_manager_features.h index c967337..6fda581 100644 --- a/components/password_manager/core/common/password_manager_features.h +++ b/components/password_manager/core/common/password_manager_features.h
@@ -54,6 +54,9 @@ extern const base::Feature kPasswordScriptsFetching; extern const base::Feature kRecoverFromNeverSaveAndroid; extern const base::Feature kSecondaryServerFieldPredictions; +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) +extern const base::Feature kEnableBiometricAuthenticationInSettings; +#endif #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) extern const base::Feature kSkipUndecryptablePasswords; #endif
diff --git a/components/payments/content/payment_credential.cc b/components/payments/content/payment_credential.cc index a3dc890..efe7ba3 100644 --- a/components/payments/content/payment_credential.cc +++ b/components/payments/content/payment_credential.cc
@@ -31,7 +31,7 @@ content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::PaymentCredential> receiver, scoped_refptr<PaymentManifestWebDataService> web_data_service) - : DocumentService(&render_frame_host, std::move(receiver)), + : DocumentService(render_frame_host, std::move(receiver)), web_data_service_(web_data_service) {} PaymentCredential::~PaymentCredential() { @@ -82,7 +82,7 @@ } bool PaymentCredential::IsCurrentStateValid() const { - if (!IsFrameAllowedToUseSecurePaymentConfirmation(render_frame_host()) || + if (!IsFrameAllowedToUseSecurePaymentConfirmation(&render_frame_host()) || !web_data_service_) { return false; }
diff --git a/components/payments/content/payment_request.cc b/components/payments/content/payment_request.cc index 1ee417367..5e9e269 100644 --- a/components/payments/content/payment_request.cc +++ b/components/payments/content/payment_request.cc
@@ -67,7 +67,7 @@ } // namespace PaymentRequest::PaymentRequest( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, std::unique_ptr<ContentPaymentRequestDelegate> delegate, base::WeakPtr<PaymentRequestDisplayManager> display_manager, mojo::PendingReceiver<mojom::PaymentRequest> receiver, @@ -75,7 +75,7 @@ base::WeakPtr<ObserverForTest> observer_for_testing) : DocumentService(render_frame_host, std::move(receiver)), WebContentsObserver( - content::WebContents::FromRenderFrameHost(render_frame_host)), + content::WebContents::FromRenderFrameHost(&render_frame_host)), log_(web_contents()), delegate_(std::move(delegate)), display_manager_(display_manager), @@ -83,12 +83,12 @@ top_level_origin_(url_formatter::FormatUrlForSecurityDisplay( web_contents()->GetLastCommittedURL())), frame_origin_(url_formatter::FormatUrlForSecurityDisplay( - render_frame_host->GetLastCommittedURL())), - frame_security_origin_(render_frame_host->GetLastCommittedOrigin()), + render_frame_host.GetLastCommittedURL())), + frame_security_origin_(render_frame_host.GetLastCommittedOrigin()), spc_transaction_mode_(spc_transaction_mode), observer_for_testing_(observer_for_testing), journey_logger_(delegate_->IsOffTheRecord(), - render_frame_host->GetPageUkmSourceId()) { + render_frame_host.GetPageUkmSourceId()) { payment_handler_host_ = std::make_unique<PaymentHandlerHost>( web_contents(), weak_ptr_factory_.GetWeakPtr()); } @@ -197,7 +197,7 @@ /*observer=*/weak_ptr_factory_.GetWeakPtr(), delegate_->GetApplicationLocale()); state_ = std::make_unique<PaymentRequestState>( - render_frame_host(), top_level_origin_, frame_origin_, + &render_frame_host(), top_level_origin_, frame_origin_, frame_security_origin_, spec(), /*delegate=*/weak_ptr_factory_.GetWeakPtr(), delegate_->GetApplicationLocale(), delegate_->GetPersonalDataManager(), @@ -630,7 +630,7 @@ observer_for_testing_->OnAppListReady(weak_ptr_factory_.GetWeakPtr()); } - if (render_frame_host()->IsActive() && + if (render_frame_host().IsActive() && spec_->IsSecurePaymentConfirmationRequested() && state()->available_apps().empty() && base::FeatureList::IsEnabled(::features::kSecurePaymentConfirmation) && @@ -867,7 +867,7 @@ // PaymentRequest is attached to. if (!navigation_in_frame_will_destroy_or_cache_document_in_frame( navigation_handle->GetPreviousRenderFrameHostId(), - render_frame_host())) { + &render_frame_host())) { return; } @@ -988,7 +988,7 @@ << "): hasEnrolledInstrument = " << has_enrolled_instrument; if (!spec_ || CanMakePaymentQueryFactory::GetInstance() - ->GetForContext(render_frame_host()->GetBrowserContext()) + ->GetForContext(render_frame_host().GetBrowserContext()) ->CanQuery(top_level_origin_, frame_origin_, spec_->query_for_quota())) { RespondToHasEnrolledInstrumentQuery(has_enrolled_instrument,
diff --git a/components/payments/content/payment_request.h b/components/payments/content/payment_request.h index 1e3eef0..d73d900 100644 --- a/components/payments/content/payment_request.h +++ b/components/payments/content/payment_request.h
@@ -77,7 +77,7 @@ virtual ~ObserverForTest() {} }; - PaymentRequest(content::RenderFrameHost* render_frame_host, + PaymentRequest(content::RenderFrameHost& render_frame_host, std::unique_ptr<ContentPaymentRequestDelegate> delegate, base::WeakPtr<PaymentRequestDisplayManager> display_manager, mojo::PendingReceiver<mojom::PaymentRequest> receiver,
diff --git a/components/payments/content/payment_request_web_contents_manager_unittest.cc b/components/payments/content/payment_request_web_contents_manager_unittest.cc index b2a0923a..955d782 100644 --- a/components/payments/content/payment_request_web_contents_manager_unittest.cc +++ b/components/payments/content/payment_request_web_contents_manager_unittest.cc
@@ -37,7 +37,7 @@ // PaymentRequest is a DocumentService, whose lifetime is managed by the // RenderFrameHost passed in here. - return new PaymentRequest(web_contents()->GetPrimaryMainFrame(), + return new PaymentRequest(*web_contents()->GetPrimaryMainFrame(), std::move(delegate), std::move(display_manager), std::move(receiver), mode, /*observer_for_testing=*/nullptr);
diff --git a/components/policy/core/common/cloud/enterprise_metrics.cc b/components/policy/core/common/cloud/enterprise_metrics.cc index 1d72563..5f47e98c 100644 --- a/components/policy/core/common/cloud/enterprise_metrics.cc +++ b/components/policy/core/common/cloud/enterprise_metrics.cc
@@ -140,7 +140,6 @@ "Enterprise.AutoEnrollmentProtocolTime"; const char kUMAHashDanceBucketDownloadTime[] = "Enterprise.AutoEnrollmentBucketDownloadTime"; -const char kUMAHashDanceExtraTime[] = "Enterprise.AutoEnrollmentExtraTime"; const char kUMAHashDanceRequestStatus[] = "Enterprise.AutoEnrollmentRequestStatus"; const char kUMAHashDanceNetworkErrorCode[] =
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index b19cd092..f757f562 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -1622,6 +1622,7 @@ <translation id="264771271300359481">Keiner Website erlauben, die Zwischenablage zu verwenden</translation> <translation id="2649896281375932517">Nutzer entscheiden lassen</translation> <translation id="2650049181907741121">Auszuführende Aktion beim Zuklappen des Geräts</translation> +<translation id="2656559539624760733">Chrome Root Store nicht verwenden.</translation> <translation id="2658653824183107970">Alte <ph name="CORS" />-Implementierung statt des neuen <ph name="CORS" /> verwenden</translation> <translation id="2660846099862559570">Nie Proxy verwenden</translation> <translation id="2661628029848851543">Jegliche Nutzung von verwalteten Konten ist zulässig</translation> @@ -3509,6 +3510,12 @@ Wenn diese Richtlinie nicht konfiguriert ist, kann die Funktion von durch Unternehmen verwaltete Nutzer und nicht verwaltete Nutzer standardmäßig verwendet werden.</translation> <translation id="487460824085252184">Automatisch migrieren, ohne die Zustimmung des Nutzers einzuholen</translation> +<translation id="48749493657448872">Wenn diese Einstellung aktiviert ist, verifiziert <ph name="PRODUCT_NAME" /> Serverzertifikate anhand der integrierten Zertifikatsprüfung. + Ist sie deaktiviert, verifiziert <ph name="PRODUCT_NAME" /> Serverzertifikate anhand der von der Plattform bereitgestellten Legacy-Zertifikatsprüfung, es sei denn <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> ist aktiviert. + Wenn diese Einstellung nicht konfiguriert ist, wird die integrierte oder die Legacy-Zertifikatsprüfung verwendet. + + Diese Richtlinie wird voraussichtlich in Version 107 von <ph name="PRODUCT_NAME" /> für <ph name="MAC_OS_NAME" /> entfernt, wenn auch die Legacy-Zertifikatsprüfung in <ph name="MAC_OS_NAME" /> voraussichtlich nicht mehr unterstützt wird. + </translation> <translation id="4874982543810021567">WebUSB auf diesen Websites blockieren</translation> <translation id="4876805738539874299">SSL-Höchstversion aktiviert</translation> <translation id="4877402532842958110">Diese Richtlinie wurde eingestellt. Bitte verwende stattdessen <ph name="URL_ALLOWLIST_POLICY_NAME" />. @@ -4305,6 +4312,7 @@ <translation id="5733040281451845496">Wenn die Richtlinie aktiviert ist, wird die erste Aktivität des Nutzers in einer Sitzung als Ausgangspunkt für Verzögerungen bei der Energieverwaltung und Begrenzungen der Sitzungslänge verwendet. Ist die Richtlinie deaktiviert oder nicht konfiguriert, wird der Start der Sitzung als Ausgangspunkt für Verzögerungen bei der Energieverwaltung und Begrenzungen der Sitzungslänge verwendet.</translation> +<translation id="5733357908790472408">Chrome Root Store verwenden.</translation> <translation id="5735915264686983150">Deaktivierte Funktionen ausblenden und sperren</translation> <translation id="5737394734996319911">Über die Bedienungshilfe „<ph name="PRODUCT_NAME" />“ erhalten sehbehinderte Screenreader-Nutzer Beschreibungen für unbeschriftete Bilder im Internet. Nutzer, die diese Funktion aktivieren, können einen anonymen Google-Dienst verwenden, um automatische Beschreibungen für unbeschriftete Bilder im Internet zu erhalten. @@ -4767,6 +4775,7 @@ <translation id="6258658183356534534">Steuert die Funktion zur Aktualisierung des GREASE-Algorithmus für Client-Hinweise in „User-Agent“-Headern.</translation> <translation id="6261643884958898336">Gerätebezogene Daten erfassen</translation> <translation id="6265892395051519509">Diesen Websites den Zugriff auf Sensoren erlauben</translation> +<translation id="6266043141694454734">Legt fest, ob der Chrome Root Store und die integrierte Zertifikatsprüfung zum Verifizieren von Serverzertifikaten verwendet werden</translation> <translation id="6273015149273504999">Hierdurch wird eine Liste von Apps und Erweiterungen festgelegt, die automatisch auf dem Anmeldebildschirm installiert werden, also ohne Interaktion des Nutzers, und die vom Nutzer weder deinstalliert noch deaktiviert werden können. Von den Apps und Erweiterungen angeforderte Berechtigungen werden implizit, ohne Eingriff durch den Nutzer, gewährt. Dazu gehören auch alle weiteren Berechtigungen, die von künftigen Versionen der Apps oder Erweiterungen angefordert werden. <ph name="PRODUCT_NAME" /> schränkt das Set von Berechtigungen ein, das von Erweiterungen angefragt werden kann. @@ -5749,6 +5758,23 @@ Sind weder <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> noch <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" /> konfiguriert, können Nutzer ihre Homepage auswählen. Unter <ph name="MS_WIN_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die Teil einer <ph name="MS_AD_NAME" />-Domain sind, auf denen Windows 10 Pro läuft oder die über <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> verwaltet werden. Unter <ph name="MAC_OS_NAME" /> steht diese Funktion nur bei Instanzen zur Verfügung, die über die Mobilgeräteverwaltung verwaltet werden oder per MCX mit einer Domain verbunden sind.</translation> +<translation id="7258250780552783197">Liste der Einstellungen für Chrome Enterprise Connectors-Dienste für den Enterprise Connector „<ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" />“. Dieser wird ausgelöst, wenn eine Datei über <ph name="PRODUCT_OS_NAME" /> übertragen wird. + + Mit den Feldern „<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />“, „<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />“, „<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />“ und „<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" />“ wird festgelegt, ob der Connector eine Datei zur Analyse senden soll, wenn sie zwischen einer Quelle und einem Ziel übertragen wird, und welche Tags in der Analyseanfrage für diese Datei enthalten sein sollen. Ein Tag, das einer „enable“-Regel entspricht, wird der Analyseanfrage hinzugefügt, wenn die Quelle und das Ziel mit der Regel für dieses Tag übereinstimmen – jedoch nur, wenn keine „disable“-Regel mit demselben Tag mit der Übertragung übereinstimmt. Die Analyse wird durchgeführt, wenn die Anfrage mindestens ein Tag enthält. Eine „<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />“-Regel wird durch eine Paarliste definiert, wobei jedes Paar eine Liste mit Quellen und eine Liste mit Zielen enthält. Mit dem Feld „<ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" />“ wird definiert, auf welches Dateisystem eine Regel angewendet werden soll. + + Mit dem Feld „<ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" />“ wird festgelegt, für welchen Analyseanbieter die Einstellungen gelten. + + Wenn das Feld „<ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" />“ auf 1 gesetzt ist, wartet <ph name="PRODUCT_OS_NAME" /> auf eine Antwort des Analyseanbieters, bevor die Übertragung zugelassen wird. Wenn es auf einen anderen Ganzzahlwert gesetzt ist, ermöglicht <ph name="PRODUCT_OS_NAME" /> die sofortige Übertragung. + + Mit dem Feld „<ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" />“ wird festgelegt, ob <ph name="PRODUCT_OS_NAME" /> den Zugriff auf Dateien, die durch ein Passwort geschützt sind, blockiert oder erlaubt. + + Mit dem Feld „<ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" />“ wird festgelegt, ob <ph name="PRODUCT_OS_NAME" /> den Zugriff auf Dateien, die zu groß für die Analyse sind, blockiert oder erlaubt. + + Mit dem Feld „<ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" />“ wird festgelegt, für welche Tags der Connector vom Nutzer eine Begründung für das Umgehen eines Scans anfordern soll, die zu einer Genehmigung für die Umgehung führt. Wenn das Feld nicht festgelegt ist, wird angenommen, dass keine Begründung erforderlich ist. + + Mit den Feldern „<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />“, „<ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />“, „<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />“, „<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />“ und „<ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" />“ wird festgelegt, welche Nachricht der Nutzer sieht, wenn eine Warnung angezeigt wird, nachdem beim Scan ein potenzielles Problem gefunden wurde. Das Nachrichtenfeld enthält den Text, den der Nutzer sieht (maximal 200 Zeichen). Das Feld „<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />“ enthält eine vom Administrator festgelegte URL, die der Nutzer anklicken kann, um weitere benutzerdefinierte Informationen darüber zu erhalten, warum die Aktion blockiert wurde. Das Feld „<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />” ist optional und enthält die Sprache der Nachricht. Wenn das Feld „<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />“ leer oder auf „default“ festgelegt ist, wird die entsprechende Nachricht angezeigt, wenn es für die Sprache des Nutzers keine eigene Nachricht gibt. Das Tag-Feld gibt an, für welche Arten von Scans die Nachricht angezeigt wird. Die Liste „<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />“ kann keine oder mehrere Einträge haben – das Nachrichten- und das Tag-Feld der einzelnen Einträge dürfen dabei nicht leer sein. + + Für diese Richtlinie sind zusätzliche Einrichtungen nötig. Weitere Informationen dazu finden Sie unter https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation> <translation id="7258823566580374486">Zugangsbeschränkung für Remotezugriff-Hosts aktivieren</translation> <translation id="7260204423892780600">Legt die Einstellungen für Google Assistant fest.</translation> <translation id="7261140115553020049">Dienst für unverankerten Arbeitsbereich aktivieren</translation> @@ -7207,6 +7233,7 @@ Ist die Richtlinie nicht konfiguriert, wird eine plattformspezifische Standardeinstellung verwendet: <ph name="IE_PRODUCT_NAME" /> für <ph name="MS_WIN_NAME" /> oder <ph name="SAFARI_PRODUCT_NAME" /> für <ph name="MAC_OS_NAME" />. Unter <ph name="LINUX_OS_NAME" /> wird kein alternativer Browser geöffnet.</translation> <translation id="8836975838488342340">Dauer in Sekunden, für die der Zugriffscode gültig ist.</translation> +<translation id="883744045558067826">Die Verfügbarkeit des Chrome Root Stores hängt vom Einführungsprozess dieser Funktion ab.</translation> <translation id="8839799083601163225">Mit dieser Richtlinie kann festgelegt werden, ob der Netzwerkdienstprozess in einer Sandbox ausgeführt wird. Wenn die Richtlinie aktiviert ist, wird der Netzwerkdienstprozess in einer Sandbox ausgeführt. Ist sie deaktiviert, erfolgt die Ausführung des Netzwerkdienstprozesses nicht in einer Sandbox. Dadurch entstehen zusätzliche Sicherheitsrisiken für den Nutzer, die auf die Ausführung des Netzwerkdienstes ohne Sandbox zurückzuführen sind. @@ -7384,6 +7411,12 @@ Der Richtlinienwert sollte in Millisekunden angegeben werden. Der Wert kann zwischen 30 Sekunden und 24 Stunden liegen.</translation> <translation id="9040042535845939426">Mit dieser Richtlinie legst du den Status des Datenschutzbildschirms auf dem Anmeldebildschirm fest</translation> +<translation id="9046609670147277653">Wenn diese Einstellung aktiviert ist, verifiziert <ph name="PRODUCT_NAME" /> Serverzertifikate anhand der integrierten Zertifikatsprüfung und dem Chrome Root Store als vertrauenswürdige Quelle. + Wenn diese Einstellung deaktiviert ist, verwendet <ph name="PRODUCT_NAME" /> den Chrome Root Store nicht. Bei der Verifizierung kann die Systemzertifikatsprüfung oder die integrierte Prüfung verwendet werden, wenn die Richtlinie <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> verfügbar und nicht deaktiviert ist. + Wenn diese Einstellung nicht konfiguriert ist, werden der Chrome Root Store oder die systemeigenen Stämme verwendet. + + Diese Richtlinie wird voraussichtlich in Version 111 von <ph name="PRODUCT_NAME" /> für <ph name="MS_WIN_NAME" /> und für <ph name="MAC_OS_NAME" /> entfernt, wenn auch die Verwendung der von der Plattform bereitgestellten Zertifikatsprüfung und Stämme nicht mehr unterstützt wird. + </translation> <translation id="9050853837490399534">Diese Richtlinie gibt vor, ob das Gerät auf einen Quick-Fix-Build aktualisiert werden soll. Wenn als Richtlinienwert ein Token festgelegt ist, das mit einem Quick-Fix-Build verknüpft ist, wird das Gerät auf den entsprechenden Build aktualisiert, sofern eine solche Aktualisierung nicht durch eine andere Richtlinie blockiert wird. @@ -7433,6 +7466,7 @@ Wenn die Richtlinie auf „false“ gesetzt oder nicht konfiguriert ist, werden keine Informationen ausgegeben. Wenn sie auf „true“ gesetzt wird, werden die Anmelde-/Abmeldeereignisse auf den Geräten gemeldet.</translation> +<translation id="9087652369391570821">Konfigurationsrichtlinie für den Chrome Enterprise Connector „OnFileTransfer”</translation> <translation id="9088191250434406767">Wenn diese Richtlinie nicht konfiguriert oder auf „Enabled“ gesetzt wird, können Nutzer mit <ph name="GOOGLE_LENS_PRODUCT_NAME" /> ihre Kamera für die Suche verwenden. Ist die Richtlinie auf „Disabled“ gesetzt, wird Nutzern die Schaltfläche „<ph name="GOOGLE_LENS_PRODUCT_NAME" />“ im Suchfeld nicht angezeigt, wenn die kameragestützte Suche mit <ph name="GOOGLE_LENS_PRODUCT_NAME" /> verfügbar ist.</translation> <translation id="9088433379343318874">Contentanbieter für betreute Nutzer aktivieren</translation> <translation id="9088444059179765143">Methode für die automatische Erkennung der Zeitzone konfigurieren</translation>
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index a5de3958..5d7b8b5 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1645,6 +1645,7 @@ <translation id="264771271300359481">No permitir que ningún sitio use el permiso para sitios del portapapeles</translation> <translation id="2649896281375932517">Dejar que los usuarios decidan</translation> <translation id="2650049181907741121">Medida que se debe tomar cuando el usuario cierra la tapa</translation> +<translation id="2656559539624760733">No utilizar Chrome Root Store</translation> <translation id="2658653824183107970">Utiliza la implementación heredada de <ph name="CORS" /> en lugar de la nueva implementación de <ph name="CORS" /></translation> <translation id="2660846099862559570">Nunca usar un proxy</translation> <translation id="2661628029848851543">Se permiten todos los usos de cuentas administradas</translation> @@ -3543,6 +3544,12 @@ Si no estableces esta política, se podrá utilizar el valor predeterminado tanto para usuarios administrados por una empresa como para aquellos no administrados.</translation> <translation id="487460824085252184">Migra automáticamente y no solicita el consentimiento del usuario.</translation> +<translation id="48749493657448872">Si habilitas esta configuración, <ph name="PRODUCT_NAME" /> verificará los certificados de servidores mediante el verificador de certificados integrado. + Si la inhabilitas, <ph name="PRODUCT_NAME" /> verificará los certificados de servidores mediante el verificador de certificados heredado que incluye la plataforma, a menos que se habilite <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />. + Si no la estableces, podrá utilizarse el verificador de certificados integrado o el heredado. + + Se planea quitar esta política en la versión 107 de <ph name="PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" /> cuando se quite la compatibilidad con el verificador de certificados heredado de <ph name="MAC_OS_NAME" />. + </translation> <translation id="4874982543810021567">Bloquea WebUSB en estos sitios</translation> <translation id="4876805738539874299">Versión de SSL máxima habilitada</translation> <translation id="4877402532842958110">Esta política dejó de estar disponible. Usa la política "<ph name="URL_ALLOWLIST_POLICY_NAME" />" en su lugar. @@ -4345,6 +4352,7 @@ <translation id="5733040281451845496">Si habilitas la política, se iniciarán los tiempos de espera para la administración de la energía y los límites de extensión de la sesión después de la primera actividad del usuario en una sesión. Si la inhabilitas o no la estableces, se iniciarán los tiempos de espera para la administración de la energía y el límite de tiempo inmediatamente al iniciarse la sesión.</translation> +<translation id="5733357908790472408">Usar Chrome Root Store</translation> <translation id="5735915264686983150">Oculta y bloquea las funciones inhabilitadas</translation> <translation id="5737394734996319911">La función de accesibilidad de <ph name="PRODUCT_NAME" /> permite que los usuarios de lectores de pantalla para personas con discapacidad visual @@ -4830,6 +4838,7 @@ <translation id="6258658183356534534">Controlar la función de actualización de GREASE de optimización del cliente de usuario-cliente</translation> <translation id="6261643884958898336">Enviar la información de identificación de la máquina</translation> <translation id="6265892395051519509">Permite el acceso a los sensores en estos sitios</translation> +<translation id="6266043141694454734">Determina si se usarán Chrome Root Store y el verificador de certificados integrado para verificar los certificados de servidores</translation> <translation id="6273015149273504999"> Especifica una lista de apps y extensiones que se instalan de manera silenciosa en la pantalla de acceso, sin interacción del usuario y que este no puede desinstalar ni inhabilitar. @@ -5827,6 +5836,23 @@ Si no estableces <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> ni <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" />, los usuarios podrán elegir la página principal. En <ph name="MS_WIN_NAME" />, esta funcionalidad solo estará disponible en instancias que están vinculadas a un dominio de <ph name="MS_AD_NAME" />, están inscritas en <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" /> o se ejecutan en Windows 10 Pro. En <ph name="MAC_OS_NAME" />, esta funcionalidad solo está disponible en instancias administradas mediante MDM o vinculadas a un dominio a través de MCX.</translation> +<translation id="7258250780552783197">Lista de parámetros de configuración para los servicios de Chrome Enterprise Connectors que se aplicarán al Enterprise Connector <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" />, el cual se activa cuando se transfiere un archivo en <ph name="PRODUCT_OS_NAME" />. + + Los campos <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> y <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> se usan para determinar si el conector debe enviar un archivo para que se analice cuando se transfiere entre una fuente y un destino, y qué etiquetas debe incluir la solicitud de análisis del archivo. La solicitud de análisis incluirá la etiqueta correspondiente a una regla "enable" si la fuente y el destino coinciden con la regla asociada a esa etiqueta, siempre y cuando la regla "disable" que tenga la misma etiqueta no coincida con la transferencia. Si la solicitud incluye al menos 1 etiqueta, se realizará el análisis. Una regla <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> se define mediante una lista de pares, en la que cada par contiene una lista de fuentes y una lista de destinos. El campo <ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> define para qué sistema de archivos se debe aplicar una regla. + + El campo <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> especifica el proveedor de servicios de análisis al que corresponde la configuración. + + Si se establece el valor "1" en el campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" />, <ph name="PRODUCT_OS_NAME" /> esperará a recibir una respuesta del servicio de análisis para permitir la transferencia. Si se indica cualquier otro valor entero, <ph name="PRODUCT_OS_NAME" /> permitirá la transferencia de inmediato. + + El campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> controla si <ph name="PRODUCT_OS_NAME" /> bloquea o permite el acceso a archivos protegidos con contraseña. + + El campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> controla si <ph name="PRODUCT_OS_NAME" /> bloquea o permite los archivos que son demasiado grandes para ser analizados. + + El campo <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> se utiliza para determinar en qué etiquetas el conector requerirá que el usuario ingrese una justificación para evitar un análisis que derive en una advertencia evitable. Si no estableces el campo, se asumirá que no se requiere una justificación. + + Los campos <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> y <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> se usan para configurar el mensaje que verá el usuario cuando se muestre una advertencia después de que un análisis determine una infracción de política. El campo del mensaje incluye el texto que se le mostrará al usuario. Este puede tener un máximo de 200 caracteres. El administrador puede incluir una URL en el campo <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> a fin de que el usuario obtenga con un clic más información del cliente sobre los motivos para bloquear la acción. El campo <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> es opcional. Indica el idioma del mensaje. Si el campo <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> se deja vacío o con el valor "default", se utilizará el mensaje correspondiente cuando no haya ningún mensaje en el idioma del usuario. El campo de la etiqueta especifica para qué tipo de análisis se mostrará el mensaje. La lista <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" /> puede tener cero o más entradas, y cada una deberá tener completos los campos del mensaje y de la etiqueta. + + Esta política requiere configuración adicional para tener efecto. Visita https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting para obtener más información.</translation> <translation id="7258823566580374486">Habilitar modo de cortina en hosts de acceso remoto</translation> <translation id="7260204423892780600">Controla la configuración del Asistente de Google.</translation> <translation id="7261140115553020049">Habilitar el servicio Floating Workspace</translation> @@ -7295,6 +7321,7 @@ Si no estableces la política, se utilizará la configuración predeterminada específica de la plataforma: <ph name="IE_PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> o <ph name="SAFARI_PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" />. En <ph name="LINUX_OS_NAME" />, se producirá un error al intentar ejecutar un navegador alternativo.</translation> <translation id="8836975838488342340">El período durante el cual es válido el código de acceso (en segundos).</translation> +<translation id="883744045558067826">Chrome Root Store se puede usar según el proceso de lanzamiento de funciones</translation> <translation id="8839799083601163225">Esta política controla si el proceso del servicio de red se ejecuta o no en una zona de pruebas. Si habilitas esta política, el proceso del servicio de red se ejecutará en una zona de pruebas. Si la inhabilitas, el proceso del servicio de red se ejecutará fuera de una zona de pruebas. Esta acción deja a los usuarios desprotegidos ante riesgos de seguridad adicionales relacionados con la ejecución del servicio de red fuera de una zona de pruebas. @@ -7472,6 +7499,12 @@ El valor de la política debe especificarse en milisegundos. Los valores están fijados en un intervalo de entre 30 segundos y 24 horas.</translation> <translation id="9040042535845939426">Establecer el estado de la pantalla de privacidad en la pantalla de acceso</translation> +<translation id="9046609670147277653">Si habilitas esta configuración, <ph name="PRODUCT_NAME" /> verificará los certificados de servidores mediante el verificador de certificados integrado con Chrome Root Store como fuente de confianza pública. + Si la inhabilitas, <ph name="PRODUCT_NAME" /> no usará Chrome Root Store. La verificación puede usar el verificador de certificados del sistema o el verificador integrado si la política <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> está disponible y habilitada. + Si no estableces esta configuración, se podrán usar las raíces provistas por el sistema o Chrome Root Store. + + Se planea quitar esta política en la versión 111 de <ph name="PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> y <ph name="MAC_OS_NAME" />, cuando se quiten las raíces que proporciona la plataforma y la compatibilidad para usar el verificador de certificados. + </translation> <translation id="9050853837490399534">Esta política controla si se debe actualizar el dispositivo a una versión de corrección rápida. Si se establece el valor de esta política en un token que se mapee a una versión de corrección rápida, se actualizará el dispositivo a la versión de corrección rápida correspondiente en caso de que otra política no haya bloqueado la actualización. @@ -7521,6 +7554,7 @@ Si estableces la política como falsa o no la estableces, no se informarán los eventos. Si la estableces como verdadera, se informarán los eventos de acceso y salida desde el dispositivo.</translation> +<translation id="9087652369391570821">Política de configuración para Chrome Enterprise Connector OnFileTransfer</translation> <translation id="9088191250434406767">Si no estableces la política o la habilitas, los usuarios podrán realizar búsquedas con sus cámaras mediante <ph name="GOOGLE_LENS_PRODUCT_NAME" />. Si la inhabilitas, los usuarios no verán el botón de <ph name="GOOGLE_LENS_PRODUCT_NAME" /> en el cuadro de búsqueda, independientemente de que sea compatible la búsqueda asistida por cámara mediante <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation> <translation id="9088433379343318874">Habilitar el proveedor de contenido de un usuario supervisado</translation> <translation id="9088444059179765143">Configurar el método de detección automática de la zona horaria</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 289ff7a17..da5d2ac 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1641,6 +1641,7 @@ <translation id="264771271300359481">Interdire à tous les sites d'utiliser l'autorisation d'accès au presse-papiers</translation> <translation id="2649896281375932517">Choix laissé aux utilisateurs</translation> <translation id="2650049181907741121">Action à effectuer lorsque l'utilisateur ferme le couvercle</translation> +<translation id="2656559539624760733">Ne pas utiliser pas le Chrome Root Store.</translation> <translation id="2658653824183107970">Utiliser l'ancienne mise en œuvre de <ph name="CORS" /> plutôt que la nouvelle mise en œuvre de <ph name="CORS" /></translation> <translation id="2660846099862559570">Ne jamais utiliser de proxy</translation> <translation id="2661628029848851543">L'utilisation des comptes gérés n'est pas limitée</translation> @@ -3526,6 +3527,12 @@ Si cette règle n'est pas définie, le paramètre par défaut est autorisé pour les utilisateurs gérés par une entreprise et pour les utilisateurs non gérés.</translation> <translation id="487460824085252184">Effectuer automatiquement la migration, sans demander l'autorisation de l'utilisateur.</translation> +<translation id="48749493657448872">Lorsque ce paramètre est activé, <ph name="PRODUCT_NAME" /> vérifie les certificats des serveurs à l'aide de l'outil de vérification intégré. + Lorsqu'il est désactivé, <ph name="PRODUCT_NAME" /> vérifie les certificats des serveurs à l'aide de l'ancien outil de vérification fourni par la plate-forme, sauf si <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> est activé. + Lorsqu'il n'est pas défini, l'outil intégré de vérification des certificats ou l'ancien outil peuvent être utilisés. + + Il est prévu que cette règle soit supprimée dans la version 107 de <ph name="PRODUCT_NAME" /> pour <ph name="MAC_OS_NAME" />, car l'ancien outil de vérification des certificats sur <ph name="MAC_OS_NAME" /> ne devrait alors plus être pris en charge. + </translation> <translation id="4874982543810021567">Bloquer WebUSB sur ces sites</translation> <translation id="4876805738539874299">Version SSL maximale activée</translation> <translation id="4877402532842958110">Cette règle est obsolète (veuillez utiliser la règle <ph name="URL_ALLOWLIST_POLICY_NAME" /> à la place). @@ -4324,6 +4331,7 @@ <translation id="5733040281451845496">Si cette règle est activée, les délais liés à la gestion de l'alimentation et les limites relatives à la durée de session ne sont activés que lorsque l'utilisateur a effectué une première activité au cours d'une session. Si la règle est désactivée ou qu'elle n'est pas configurée, ces délais et limites sont activés dès le lancement de la session.</translation> +<translation id="5733357908790472408">Utiliser le Chrome Root Store.</translation> <translation id="5735915264686983150">Masquer et bloquer les fonctionnalités désactivées</translation> <translation id="5737394734996319911">La fonctionnalité d'accessibilité <ph name="PRODUCT_NAME" /> permet aux déficients visuels qui utilisent un lecteur d'écran @@ -4795,6 +4803,7 @@ <translation id="6258658183356534534">Contrôlez la fonctionnalité de mise à jour GREASE des indications du client user-agent.</translation> <translation id="6261643884958898336">Enregistrer les informations d'identification de l'ordinateur</translation> <translation id="6265892395051519509">Autoriser l'accès aux capteurs sur ces sites</translation> +<translation id="6266043141694454734">Détermine si le Chrome Root Store et l'outil de vérification des certificats intégré seront utilisés pour vérifier les certificats de serveur</translation> <translation id="6273015149273504999"> Définit la liste des applications et extensions qui sont installées silencieusement sur l'écran de connexion, sans aucune intervention de l'utilisateur, et que celui-ci ne peut pas désinstaller ni désactiver. @@ -5781,6 +5790,23 @@ Si les règles <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> et <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" /> ne sont pas configurées, les utilisateurs peuvent choisir leur page d'accueil. Sous <ph name="MS_WIN_NAME" />, cette règle n'est disponible que sur les instances associées à un domaine <ph name="MS_AD_NAME" />, exécutées sous Windows 10 Pro ou qui bénéficient de la <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Sous <ph name="MAC_OS_NAME" />, elle n'est disponible que sur les instances gérées via MDM ou associées à un domaine via MCX.</translation> +<translation id="7258250780552783197">Liste des paramètres des services des connecteurs Chrome Enterprise à appliquer au connecteur Enterprise <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" />, qui se déclenche lorsqu'un fichier est déplacé dans <ph name="PRODUCT_OS_NAME" />. + + Les champs "<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" />" et "<ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" />" permettent de déterminer si le connecteur doit envoyer un fichier en vue d'une analyse lorsqu'il est déplacé entre une source et une destination, ainsi que les tags à inclure dans la demande d'analyse de ce fichier. Un tag correspondant à une règle "enable" sera inclus dans la demande d'analyse si la source et la destination correspondent à la règle associée à ce tag, à condition qu'aucune règle "disable" associée à ce même tag ne corresponde au transfert. L'analyse a lieu si au moins un tag doit être inclus dans la demande. Une règle "<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />" consiste en une liste de paires, où chaque paire contient une liste de sources et une liste de destinations. "<ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" />" définit le système de fichiers auquel une règle doit s'appliquer. + + Le champ "<ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" />" indique à quel fournisseur de services d'analyse correspondent les paramètres. + + Si la valeur du champ "<ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" />" est 1, <ph name="PRODUCT_OS_NAME" /> attend de recevoir une réponse du service d'analyse avant d'autoriser le transfert. Pour toute autre valeur entière, <ph name="PRODUCT_OS_NAME" /> autorise le transfert immédiatement. + + Le champ "<ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" />" permet de définir si <ph name="PRODUCT_OS_NAME" /> doit bloquer ou autoriser les fichiers protégés par un mot de passe. + + Le champ "<ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" />" permet de spécifier si <ph name="PRODUCT_OS_NAME" /> doit bloquer ou autoriser les fichiers trop volumineux pour être analysés. + + Le champ "<ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" />" permet d'indiquer les tags pour lesquels le connecteur doit demander à l'utilisateur d'indiquer pourquoi une analyse entraînant l'affichage d'un avertissement doit être ignorée. Si ce champ n'est pas renseigné, nous partons du principe qu'aucune justification n'est requise. + + Les champs "<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />", "<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />" et "<ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" />" permettent de configurer le message à montrer à l'utilisateur lorsqu'un avertissement s'affiche après une analyse dont le résultat révèle un problème. Le message saisi dans le champ ne doit pas comporter plus de 200 caractères. Le champ "<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />" contient une URL fournie par l'administrateur. L'utilisateur peut cliquer sur cette URL pour obtenir des informations supplémentaires fournies par le client et savoir pourquoi l'action a été bloquée. Le champ "<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />" est facultatif. Il indique la langue dans laquelle est saisi le message. Si ce champ "<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />" est vide ou contient la valeur "par défaut", un message est proposé par défaut en l'absence de message disponible dans la langue de l'utilisateur. Le champ "tag" spécifie pour quel type d'analyses le message est affiché. Le champ "<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />" peut être vide ou contenir plusieurs entrées. Les champs "message" et "tag" doivent être renseignés pour chaque entrée. + + Cette règle nécessite un réglage supplémentaire pour être appliquée. Pour en savoir plus, consultez la page https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation> <translation id="7258823566580374486">Activer la protection des hôtes d'accès à distance</translation> <translation id="7260204423892780600">Contrôle les paramètres de l'Assistant Google.</translation> <translation id="7261140115553020049">Activer le service d'espace de travail flottant</translation> @@ -7232,6 +7258,7 @@ Si cette règle n'est pas définie, l'URL s'ouvre par défaut dans un navigateur spécifique à la plate-forme : <ph name="IE_PRODUCT_NAME" /> sous <ph name="MS_WIN_NAME" /> ou <ph name="SAFARI_PRODUCT_NAME" /> sous <ph name="MAC_OS_NAME" />. Sous <ph name="LINUX_OS_NAME" />, le lancement d'un navigateur secondaire entraîne une erreur.</translation> <translation id="8836975838488342340">Durée de validité du code d'accès (en secondes).</translation> +<translation id="883744045558067826">Le Chrome Root Store peut être utilisé, selon le processus employé pour son lancement.</translation> <translation id="8839799083601163225">Cette règle détermine si le processus de service réseau doit être exécuté en bac à sable. Si elle est activée, le processus de service réseau sera exécuté en bac à sable. Si elle est désactivée, celui-ci sera exécuté sans bac à sable. Les utilisateurs sont alors exposés à des risques de sécurité supplémentaires liés à l'exécution du service réseau hors bac à sable. @@ -7406,6 +7433,12 @@ La valeur de la règle doit être indiquée en millisecondes. Cette valeur doit être comprise entre 30 secondes et 24 heures.</translation> <translation id="9040042535845939426">Définir l'état de l'écran de confidentialité sur l'écran de connexion</translation> +<translation id="9046609670147277653">Lorsque ce paramètre est activé, <ph name="PRODUCT_NAME" /> vérifie les certificats des serveurs à l'aide de l'outil de vérification intégré et utilise le Chrome Root Store comme source de confiance publique. + Lorsqu'il est désactivé, <ph name="PRODUCT_NAME" /> n'utilise pas le Chrome Root Store. La vérification peut utiliser l'outil de vérification des certificats du système, ou l'outil de vérification intégré si la règle "<ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" />" est disponible et qu'elle n'est pas désactivée. + Lorsque ce paramètre n'est pas défini, le Chrome Root Store ou les racines fournies par le système peuvent être utilisés. + + Il est prévu que cette règle soit supprimée dans la version 111 de <ph name="PRODUCT_NAME" /> pour <ph name="MS_WIN_NAME" /> et <ph name="MAC_OS_NAME" />, car l'outil de vérification des certificats et les racines fournies par la plate-forme ne seront plus pris en charge. + </translation> <translation id="9050853837490399534">Cette règle détermine si un build Quick Fix doit être installé sur l'appareil. Si la règle est définie sur un jeton qui correspond à un build Quick Fix, l'appareil sera mis à jour avec le build Quick Fix correspondant à condition que la mise à jour ne soit pas bloquée par une autre règle. @@ -7455,6 +7488,7 @@ Si la règle est définie sur "False" ou si elle n'est pas configurée, ces informations ne seront pas transmises. Si elle est définie sur "True", les événements de connexion/déconnexion de l'appareil seront transmis.</translation> +<translation id="9087652369391570821">Règle de configuration du connecteur Chrome Enterprise OnFileTransfer</translation> <translation id="9088191250434406767">Si cette règle est activée ou qu'elle n'est pas configurée, les utilisateurs peuvent rechercher avec leur appareil photo à l'aide de <ph name="GOOGLE_LENS_PRODUCT_NAME" />. Si cette règle est désactivée, les utilisateurs ne peuvent pas voir le bouton <ph name="GOOGLE_LENS_PRODUCT_NAME" /> dans le champ de recherche lorsque la recherche <ph name="GOOGLE_LENS_PRODUCT_NAME" /> assistée par appareil photo est compatible.</translation> <translation id="9088433379343318874">Activer le fournisseur de contenu de l'utilisateur supervisé</translation> <translation id="9088444059179765143">Configurer la méthode de détection automatique du fuseau horaire</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 039aadb..ea513bd6 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1641,6 +1641,7 @@ <translation id="264771271300359481">Não permitir que sites usem a permissão do site para a área de transferência</translation> <translation id="2649896281375932517">Deixar os usuários decidirem</translation> <translation id="2650049181907741121">Ação a ser realizada quando o usuário fecha a tampa</translation> +<translation id="2656559539624760733">Não usar a Chrome Root Store.</translation> <translation id="2658653824183107970">Usar a implementação legada de <ph name="CORS" /> em vez do novo <ph name="CORS" /></translation> <translation id="2660846099862559570">Nunca usar um proxy</translation> <translation id="2661628029848851543">Todos os usos de contas gerenciadas são permitidos</translation> @@ -3537,6 +3538,12 @@ Se a política for deixada sem definição, o padrão será permitido tanto para usuários gerenciados por empresas quanto para os não gerenciados.</translation> <translation id="487460824085252184">Migrar automaticamente, sem autorização do usuário.</translation> +<translation id="48749493657448872">Quando esta configuração estiver ativada, o <ph name="PRODUCT_NAME" /> vai verificar os certificados do servidor usando o verificador integrado de certificados. + Quando ela estiver desativada, o <ph name="PRODUCT_NAME" /> vai verificar os certificados do servidor usando o verificador legado disponibilizado pela plataforma, a menos que <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> esteja ativada. + Quando esta configuração não for definida, tanto o verificador de certificados integrado quanto o legado podem ser usados. + + Esta política vai ser removida no <ph name="PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" /> versão 107. O suporte ao verificador de certificados legado no <ph name="MAC_OS_NAME" /> também vai ser removido nessa versão. + </translation> <translation id="4874982543810021567">Bloquear o WebUSB nesses sites</translation> <translation id="4876805738539874299">Versão máxima de SSL ativada</translation> <translation id="4877402532842958110">Esta política está obsoleta. Use a <ph name="URL_ALLOWLIST_POLICY_NAME" />. @@ -4334,6 +4341,7 @@ <translation id="5733040281451845496">Se a política for definida como "Ativada", os intervalos de gerenciamento de energia e os limites de duração da sessão não começarão a ser contados até a primeira atividade do usuário em uma sessão. Se a política for definida como "Desativada" ou não for definida, os intervalos de gerenciamento de energia e o limite de duração começarão a ser contados assim que a sessão for iniciada.</translation> +<translation id="5733357908790472408">Usar a Chrome Root Store.</translation> <translation id="5735915264686983150">Oculte e bloqueie os recursos desativados</translation> <translation id="5737394734996319911">O recurso de acessibilidade "<ph name="PRODUCT_NAME" />" permite que pessoas com deficiência visual que usam leitores de tela recebam descrições de imagens sem etiqueta na Web. Os usuários que decidirem ativá-lo poderão usar um serviço anônimo do Google para fornecer @@ -4814,6 +4822,7 @@ <translation id="6258658183356534534">Controlar o recurso de atualização do User-Agent Client Hints GREASE.</translation> <translation id="6261643884958898336">Reportar informações de identificação da máquina</translation> <translation id="6265892395051519509">Permite acesso a sensores nesses sites</translation> +<translation id="6266043141694454734">Determina se a Chrome Root Store e o verificador de certificados integrado vão ser usados para verificar os certificados do servidor</translation> <translation id="6273015149273504999"> Especifica uma lista de apps e extensões que são instalados silenciosamente na tela de login, sem qualquer interação do usuário e sem permitir a desinstalação nem a desativação feita por ele. @@ -5811,6 +5820,23 @@ Se <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> e <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" /> não forem definidas, o usuário poderá escolher a página inicial. No <ph name="MS_WIN_NAME" />, essa funcionalidade está disponível apenas em instâncias associadas a um domínio do <ph name="MS_AD_NAME" />, executadas no Windows 10 Pro ou registradas no <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. No <ph name="MAC_OS_NAME" />, essa funcionalidade está disponível apenas em instâncias gerenciadas por MDM ou associadas a um domínio via MCX.</translation> +<translation id="7258250780552783197">Lista de configurações para os serviços do Chrome Enterprise Connectors que vão ser aplicados ao conector <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" />, que é acionado quando um arquivo é transferido no <ph name="PRODUCT_OS_NAME" />. + + Os campos <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> e <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> são usados para determinar se o conector envia um arquivo para análise quando ele é transferido entre uma origem e um destino e quais tags são incluídas na solicitação de análise. Uma tag correspondente a uma regra "ativar" vai ser incluída na solicitação de análise se a origem e o destino corresponderem à regra associada à tag. Isso vai acontecer apenas se nenhuma regra "desativar" com a mesma tag corresponder à transferência. A análise vai ser feita se pelo menos uma tag for incluída na solicitação. Uma regra <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> é definida por uma lista de pares, em que cada par contém uma lista de origens e uma lista de destinos. O campo <ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> define para qual sistema de arquivos uma regra é aplicada. + + O campo <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> identifica o provedor de serviços de análise correspondente às configurações. + + Se o campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> for definido como 1, o <ph name="PRODUCT_OS_NAME" /> vai esperar uma resposta do serviço de análise antes de permitir a transferência. Qualquer outro valor inteiro significa que o <ph name="PRODUCT_OS_NAME" /> permite a transferência imediatamente. + + O campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> controla se o <ph name="PRODUCT_OS_NAME" /> bloqueia ou permite arquivos protegidos por senha. + + O campo <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> controla se o <ph name="PRODUCT_OS_NAME" /> bloqueia ou permite que arquivos grandes demais sejam analisados. + + O campo <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> é usado com o objetivo de determinar para quais tags o conector precisa de uma justificativa do usuário para ignorar uma verificação que resulta em um aviso que pode ser ignorado. Se o campo não for definido, presume-se que uma justificativa não é necessária. + + Os campos <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> e <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> são usados para configurar uma mensagem que informa o usuário quando um aviso é mostrado após uma verificação ter um resultado não limpo. O campo message contém o texto que é mostrado ao usuário e pode ter no máximo 200 caracteres. O campo <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> contém um URL fornecido pelo administrador em que o usuário pode clicar para receber mais informações fornecidas pelo cliente sobre o motivo da ação ter sido bloqueada. O campo <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> é opcional e contém o idioma da mensagem. Deixar o campo <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> vazio ou com um valor "padrão" indica uma mensagem que é usada quando o idioma do usuário não tem uma mensagem associada. O campo tag especifica para quais tipos de verificação a mensagem é mostrada. A lista <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" /> pode ter zero ou mais entradas. Cada uma precisa ter campos message e tag não vazios. + + Configurações extras são necessárias para que essa política seja aplicada. Acesse https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting para mais informações.</translation> <translation id="7258823566580374486">Ativar cortinas de hosts de acesso remoto</translation> <translation id="7260204423892780600">Controla as configurações do Google Assistente.</translation> <translation id="7261140115553020049">Ativar serviço do Workspace flutuante</translation> @@ -7260,6 +7286,7 @@ Se a política não for definida, o padrão usado seguirá a plataforma: <ph name="IE_PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> ou <ph name="SAFARI_PRODUCT_NAME" /> para <ph name="MAC_OS_NAME" />. No <ph name="LINUX_OS_NAME" />, não será possível abrir um navegador alternativo.</translation> <translation id="8836975838488342340">Tempo pelo qual o código de acesso é válido (em segundos).</translation> +<translation id="883744045558067826">A Chrome Root Store pode ser usada dependendo do processo de lançamento do recurso.</translation> <translation id="8839799083601163225">Esta política controla se o processo de serviço de rede é executado no sandbox. Se esta política for ativada, o processo de serviço de rede será executado no sandbox. Se esta política for desativada, o processo de serviço de rede será executado fora do sandbox. Essa opção deixa os usuários vulneráveis a riscos de segurança relacionados à execução do serviço de rede fora do sandbox. @@ -7434,6 +7461,12 @@ O valor da política precisa ser especificado em milissegundos. Os valores são ajustados a um intervalo entre 30 segundos e 24 horas.</translation> <translation id="9040042535845939426">Definir o estado da tela de privacidade na tela de login</translation> +<translation id="9046609670147277653">Quando esta configuração estiver ativada, o <ph name="PRODUCT_NAME" /> vai verificar os certificados do servidor usando o verificador de certificados integrado com a Chrome Root Store como fonte de confiança pública. + Quando ela estiver desativada, o <ph name="PRODUCT_NAME" /> não vai usar a Chrome Root Store. Se a política <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> estiver disponível e não desativada, a verificação vai poder usar o verificador de certificados do sistema ou o verificador integrado. + Quando esta configuração não for definida, o sistema vai poder usar a Chrome Root Store ou fornecer as próprias raízes. + + Esta política vai ser removida no <ph name="PRODUCT_NAME" /> para <ph name="MS_WIN_NAME" /> e <ph name="MAC_OS_NAME" /> versão 111. O suporte ao uso das raízes e do verificador de certificados disponibilizados pela plataforma também será removido nessa versão. + </translation> <translation id="9050853837490399534">Esta política controla se é necessário ou não que o dispositivo seja atualizado para um Quick Fix Build. Se o valor da política for definido para um token que mapeia para um Quick Fix Build, o dispositivo será atualizado para o Quick Fix Build correspondente se a atualização não estiver bloqueada por outra política. @@ -7483,6 +7516,7 @@ Se a política for definida como falsa ou deixada sem definição, as informações não serão enviadas. Se ela for definida como verdadeira, os eventos de login/logout do dispositivo serão informados.</translation> +<translation id="9087652369391570821">Política de configuração para o conector OnFileTransfer do Chrome Enterprise</translation> <translation id="9088191250434406767">Se a política for ativada ou deixada sem definição, os usuários poderão pesquisar com a câmera usando o <ph name="GOOGLE_LENS_PRODUCT_NAME" />. Se a política for desativada, o botão do <ph name="GOOGLE_LENS_PRODUCT_NAME" /> não estará disponível na caixa de pesquisa quando houver compatibilidade com a pesquisa assistida pela câmera do <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation> <translation id="9088433379343318874">Ativar o provedor de conteúdo de usuário supervisionado</translation> <translation id="9088444059179765143">Configurar o método de detecção automática de fuso horário</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index ba2b7a16..31b5a0c 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -1645,6 +1645,7 @@ <translation id="264771271300359481">Не дозволяти жодному сайту запитувати дозвіл на використання буфера обміну</translation> <translation id="2649896281375932517">Вирішують користувачі</translation> <translation id="2650049181907741121">Дія, яка має виконуватися, коли користувач закриває кришку</translation> +<translation id="2656559539624760733">Не використовувати Chrome Root Store.</translation> <translation id="2658653824183107970">Використовувати для <ph name="CORS" />застаріле застосування <ph name="CORS" />, а не нове</translation> <translation id="2660846099862559570">Ніколи не використовувати проксі-сервер</translation> <translation id="2661628029848851543">Усі способи використання керованих облікових записів дозволено</translation> @@ -3547,6 +3548,12 @@ Якщо це правило не налаштувати, за умовчанням цю функцію зможуть вмикати користувачі, якими керує адміністратор, і ті, якими він не керує.</translation> <translation id="487460824085252184">Переміщувати автоматично без дозволу користувача.</translation> +<translation id="48749493657448872">Якщо це налаштування ввімкнено, <ph name="PRODUCT_NAME" /> перевірятиме сертифікати сервера за допомогою вбудованого інструмента перевірки сертифікатів. + Якщо це налаштування та правило <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> вимкнено, <ph name="PRODUCT_NAME" /> перевірятиме сертифікати сервера за допомогою застарілого інструмента перевірки сертифікатів, наданого платформою. + Якщо цей параметр не налаштовано, може використовуватися вбудований або застарілий інструмент перевірки сертифікатів. + + Коли підтримка застарілого інструмента перевірки сертифікатів у <ph name="MAC_OS_NAME" /> припиниться, це правило буде вилучено в <ph name="PRODUCT_NAME" /> для <ph name="MAC_OS_NAME" /> версії 107. + </translation> <translation id="4874982543810021567">Блокувати WebUSB на цих сайтах</translation> <translation id="4876805738539874299">Увімкнено максимальну версію SSL</translation> <translation id="4877402532842958110">Це правило більше не підтримується. Натомість використовуйте <ph name="URL_ALLOWLIST_POLICY_NAME" />. @@ -4344,6 +4351,7 @@ <translation id="5733040281451845496">Якщо ввімкнути це правило, затримки керування живленням і обмеження тривалості сеансу запускаються лише тоді, коли користувач виконує першу дію в сеансі. Якщо це правило вимкнено або не налаштовано, затримки керування живленням чи обмеження тривалості сеансу запускаються відразу після початку сеансу.</translation> +<translation id="5733357908790472408">Використовувати Chrome Root Store.</translation> <translation id="5735915264686983150">Приховати й блокувати вимкнені функції</translation> <translation id="5737394734996319911">Завдяки спеціальній можливості "<ph name="PRODUCT_NAME" />" люди з вадами зору можуть дізнаватись описи зображень без міток @@ -4825,6 +4833,7 @@ <translation id="6258658183356534534">Керувати функцією User-Agent Client Hints GREASE Update.</translation> <translation id="6261643884958898336">Повідомляти ідентифікаційну інформацію комп’ютера</translation> <translation id="6265892395051519509">Надати доступ до датчиків на цих сайтах</translation> +<translation id="6266043141694454734">Визначає, чи перевіряти сертифікати сервера за допомогою Chrome Root Store і вбудованого інструмента перевірки сертифікатів</translation> <translation id="6273015149273504999"> Визначає список додатків і розширень, які автоматично встановлюються на екрані входу без взаємодії з користувачем та які не можна видалити чи вимкнути. @@ -5824,6 +5833,23 @@ Якщо правила <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> та <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" /> не налаштовано, користувачі можуть самі вибирати головну сторінку. У <ph name="MS_WIN_NAME" /> ця функція доступна лише для машин із Windows 10 Pro, зареєстрованих у домені <ph name="MS_AD_NAME" /> чи сервісі <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. У <ph name="MAC_OS_NAME" /> ця функція доступна лише для машин, які контролюються через Керування мобільними пристроями або зареєстровані в домені через MCX.</translation> +<translation id="7258250780552783197">Список налаштувань сервісів Chrome Enterprise Connectors, які застосовуються до конектора Enterprise <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" />, що активується, коли в <ph name="PRODUCT_OS_NAME" /> переноситься файл. + + Поля <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> визначають, чи надсилатиме конектор на аналіз файл, що переноситься з вихідного розташування в цільове, а також які теги додавати в запит на аналіз цього файлу. Тег, який відповідає правилу enable, буде включено в запит на аналіз, якщо вихідне та цільове розташування відповідають правилу, зв’язаному з цим тегом, і якщо для цього тега немає правила disable, що відповідає такому перенесенню. Дані аналізуються, якщо запит містить принаймні 1 тег. Правило <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> визначається списком пар, кожна з яких містить список вихідних розташувань і список цільових розташувань. Поле <ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> визначає, до якої файлової системи має застосовуватися правило. + + Поле <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> визначає, якому постачальнику послуг аналізу відповідають налаштування. + + Якщо в полі <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> указано значення 1, <ph name="PRODUCT_OS_NAME" /> надає дозвіл на перенесення, лише коли отримує відповідь від сервісу аналізу. Якщо в цьому полі вказано будь-яке інше ціле число, <ph name="PRODUCT_OS_NAME" /> одразу надає дозвіл на перенесення. + + Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> контролює, чи блокуватиме <ph name="PRODUCT_OS_NAME" /> захищені паролем файли. + + Поле <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> контролює, чи блокуватиме <ph name="PRODUCT_OS_NAME" /> завеликі для аналізу файли. + + Поле <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> визначає теги, для яких конектор вимагає від користувача вказати підставу для обходу перевірки (після чого попередження можна буде закрити). Якщо це поле не налаштовано, вважається, що вказувати підставу не потрібно. + + Поля <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> і <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> дають змогу налаштувати повідомлення для користувача про незадовільний результат перевірки. Поле message – це текст, який бачитиме користувач (завдовжки не більше ніж 200 символів). Поле <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> містить указану адміністратором URL-адресу, за якою користувач зможе перейти й дізнатися докладніше, чому дію заблоковано. Поле <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> – необов’язкове, у ньому вказано мову повідомлення. Порожнє поле <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> або значення за умовчанням указують, яке повідомлення буде відображатися, коли немає повідомлення мовою користувача. Поле tag визначає, для яких типів перевірки показується повідомлення. Список <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" /> може мати нуль або більше записів, і для кожного з них потрібно налаштувати поля message та tag. + + Щоб це правило почало діяти, його потрібно додатково налаштувати. Докладніше читайте на сторінці https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting.</translation> <translation id="7258823566580374486">Увімкнути закривання хостів віддаленого доступу</translation> <translation id="7260204423892780600">Керує налаштуваннями для Google Асистента.</translation> <translation id="7261140115553020049">Увімкнути плаваючу робочу область</translation> @@ -7278,6 +7304,7 @@ Якщо це правило не налаштовано, застосовуються значення за умовчанням для конкретних платформ: <ph name="IE_PRODUCT_NAME" /> для <ph name="MS_WIN_NAME" /> або <ph name="SAFARI_PRODUCT_NAME" /> для <ph name="MAC_OS_NAME" />. У <ph name="LINUX_OS_NAME" /> альтернативний веб-переглядач не запускатиметься.</translation> <translation id="8836975838488342340">Час, упродовж якого дійсний код доступу (у секундах).</translation> +<translation id="883744045558067826">Chrome Root Store може використовуватись у міру розгортання цієї функції.</translation> <translation id="8839799083601163225">Це правило дає змогу вказати, чи має мережевий сервіс працювати в ізольованому програмному середовищі. Якщо його ввімкнути, мережевий сервіс працюватиме в ізольованому програмному середовищі. Якщо його вимкнути, мережевий сервіс працюватиме в неізольованому програмному середовищі, через що можуть виникати додаткові загрози безпеці користувачів. @@ -7452,6 +7479,12 @@ Значення правила вказується в мілісекундах. Діапазон значень – від 30 секунд до 24 годин.</translation> <translation id="9040042535845939426">Налаштувати стан екрана конфіденційності на екрані входу</translation> +<translation id="9046609670147277653">Якщо це налаштування ввімкнено, <ph name="PRODUCT_NAME" /> перевірятиме сертифікати сервера за допомогою вбудованого інструмента перевірки сертифікатів із використанням Chrome Root Store як джерела суспільної довіри. + Якщо це налаштування вимкнено, <ph name="PRODUCT_NAME" /> не використовуватиме Chrome Root Store. Якщо правило <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> доступне та його ввімкнено, перевірка може виконуватися через системний інструмент перевірки сертифікатів або вбудований інструмент перевірки. + Якщо параметр не налаштовано, можуть використовуватися і кореневі сертифікати, надані системою, і Chrome Root Store. + + Коли підтримка системного інструмента перевірки сертифікатів припиниться й буде вилучено кореневі сертифікати, це правило буде вилучено в <ph name="PRODUCT_NAME" /> для <ph name="MS_WIN_NAME" /> і <ph name="MAC_OS_NAME" /> версії 111. + </translation> <translation id="9050853837490399534">Це правило дає змогу вказати, чи оновлювати пристрій до складання Quick Fix. Якщо для правила вказано маркер, який зіставляється зі складанням Quick Fix, пристрій буде оновлено до відповідного складання Quick Fix за умови, що це оновлення не блокується іншим правилом. @@ -7501,6 +7534,7 @@ Якщо для цього правила вибрано значення false або його не налаштовано, інформація не надсилатиметься. Якщо для нього вибрано значення true, дані про входи й виходи на пристроях надсилатимуться.</translation> +<translation id="9087652369391570821">Правило для налаштування конектора Chrome Enterprise OnFileTransfer</translation> <translation id="9088191250434406767">Якщо не налаштувати це правило або вибрати для нього значення Enabled, користувачі зможуть здійснювати пошук за допомогою своїх камер у додатку <ph name="GOOGLE_LENS_PRODUCT_NAME" />. Якщо для цього правила вибрати значення Disabled, користувачі не бачитимуть кнопку <ph name="GOOGLE_LENS_PRODUCT_NAME" /> у полі пошуку, навіть якщо пошук за допомогою камери в додатку <ph name="GOOGLE_LENS_PRODUCT_NAME" /> підтримується.</translation> <translation id="9088433379343318874">Увімкнути постачальника вмісту для контрольованих користувачів</translation> <translation id="9088444059179765143">Налаштувати метод автоматичного визначення часового поясу</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index cbd3c2b..178d6ff6 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -1648,6 +1648,7 @@ <translation id="264771271300359481">Không cho phép bất kỳ trang web nào sử dụng quyền bảng nhớ tạm cho trang web</translation> <translation id="2649896281375932517">Để người dùng quyết định</translation> <translation id="2650049181907741121">Hành động sẽ thực hiện khi người dùng đóng nắp</translation> +<translation id="2656559539624760733">Không sử dụng Chrome Root Store.</translation> <translation id="2658653824183107970">Sử dụng quy trình triển khai <ph name="CORS" /> cũ thay vì <ph name="CORS" /> mới</translation> <translation id="2660846099862559570">Không bao giờ sử dụng proxy</translation> <translation id="2661628029848851543">Cho phép mọi cách sử dụng tài khoản được quản lý</translation> @@ -3542,6 +3543,12 @@ Nếu bạn không thiết lập chính sách này, thì chế độ mặc định sẽ được áp dụng cho cả người dùng do doanh nghiệp quản lý và người dùng không được quản lý.</translation> <translation id="487460824085252184">Tự động di chuyển, không cần yêu cầu sự chấp thuận của người dùng.</translation> +<translation id="48749493657448872">Khi bạn bật chế độ cài đặt này, <ph name="PRODUCT_NAME" /> sẽ sử dụng trình xác minh chứng chỉ tích hợp sẵn để xác minh chứng chỉ máy chủ. + Khi bạn tắt chế độ cài đặt này, <ph name="PRODUCT_NAME" /> sẽ sử dụng trình xác minh chứng chỉ cũ do nền tảng cung cấp để xác minh chứng chỉ máy chủ, trừ khi bạn bật <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />. + Nếu bạn không đặt chế độ cài đặt này, thì trình xác minh chứng chỉ cũ hoặc tích hợp sẵn có thể được sử dụng. + + Chúng tôi dự định loại bỏ chính sách này khỏi <ph name="PRODUCT_NAME" /> cho <ph name="MAC_OS_NAME" /> phiên bản 107, khi ngừng hỗ trợ trình xác minh chứng chỉ cũ trong <ph name="MAC_OS_NAME" /> theo kế hoạch. + </translation> <translation id="4874982543810021567">Chặn WebUSB trên các trang web này</translation> <translation id="4876805738539874299">Đã bật phiên bản SSL tối đa</translation> <translation id="4877402532842958110">Chính sách này không còn dùng nữa, vui lòng sử dụng chính sách "<ph name="URL_ALLOWLIST_POLICY_NAME" />". @@ -4343,6 +4350,7 @@ <translation id="5733040281451845496">Nếu bạn đặt chính sách này thành Bật, thì thời gian trì hoãn của chính sách quản lý điện và giới hạn thời lượng phiên hoạt động sẽ chỉ bắt đầu sau khi hoạt động đầu tiên của người dùng xảy ra trong một phiên hoạt động. Nếu bạn không đặt hoặc đặt chính sách này thành Tắt, thì thời gian trì hoãn và giới hạn thời gian của chính sách quản lý điện sẽ bắt đầu ngay lập tức lúc bắt đầu phiên hoạt động.</translation> +<translation id="5733357908790472408">Sử dụng Chrome Root Store.</translation> <translation id="5735915264686983150">Ẩn và chặn các tính năng bị tắt</translation> <translation id="5737394734996319911">Tính năng hỗ trợ tiếp cận <ph name="PRODUCT_NAME" /> cho phép người khiếm thị sử dụng trình đọc màn hình @@ -4814,6 +4822,7 @@ <translation id="6258658183356534534">Kiểm soát tính năng Cập nhật thuật toán GREASE trong User-Agent Client Hints.</translation> <translation id="6261643884958898336">Báo cáo thông tin nhận dạng máy</translation> <translation id="6265892395051519509">Cho phép sử dụng cảm biến trên các trang web này</translation> +<translation id="6266043141694454734">Xác định xem Chrome Root Store và trình xác minh chứng chỉ tích hợp có dùng để xác minh chứng chỉ máy chủ hay không</translation> <translation id="6273015149273504999"> Chỉ định danh sách các ứng dụng và tiện ích được cài đặt tự động trên màn hình đăng nhập mà không có sự tương tác của người dùng và người dùng không thể gỡ cài đặt hay tắt. @@ -5801,6 +5810,23 @@ Nếu bạn không đặt cả hai chính sách <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> và <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" />, thì người dùng có thể chọn trang chủ của họ. Trên <ph name="MS_WIN_NAME" />, chức năng này chỉ có ở những phiên bản liên kết với một miền <ph name="MS_AD_NAME" />, chạy trên Windows 10 Pro hoặc đã đăng ký <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />. Trên <ph name="MAC_OS_NAME" />, chức năng này chỉ có ở những phiên bản được quản lý qua MDM hoặc liên kết với một miền qua MCX.</translation> +<translation id="7258250780552783197">Danh sách các chế độ cài đặt dịch vụ Chrome Enterprise Connectors sẽ áp dụng cho Trình kết nối <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" /> của Enterprise. Trình kết nối này sẽ kích hoạt khi có tệp được truyền trong <ph name="PRODUCT_OS_NAME" />. + + Các trường <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> và <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> giúp xác định xem trình kết nối có cần gửi tệp đi để phân tích hay không khi tệp được truyền giữa nguồn và đích, cũng như xác định xem cần thêm thẻ nào vào yêu cầu phân tích cho tệp đó. Nếu nguồn và đích khớp với quy tắc liên kết với một thẻ tương ứng với một quy tắc "enable", thì hệ thống sẽ đưa thẻ đó vào yêu cầu phân tích chừng nào không còn quy tắc "disable" có cùng thẻ như vậy khớp với quá trình truyền. Quá trình phân tích sẽ diễn ra nếu hệ thống thêm ít nhất 1 thẻ vào yêu cầu. Quy tắc <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> được xác định bằng danh sách các cặp, trong đó mỗi cặp chứa một danh sách nguồn và một danh sách đích. <ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> xác định hệ thống tệp mà quy tắc sẽ áp dụng. + + Trường <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> xác định nhà cung cấp dịch vụ phân tích tương ứng với các chế độ cài đặt. + + Nếu bạn đặt trường <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> thành 1, thì <ph name="PRODUCT_OS_NAME" /> sẽ đợi nhận phản hồi từ dịch vụ phân tích rồi mới cho phép truyền. Nếu bạn đặt trường này thành bất kỳ giá trị số nguyên nào khác, thì <ph name="PRODUCT_OS_NAME" /> sẽ cho phép truyền ngay lập tức. + + Trường <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> sẽ kiểm soát việc <ph name="PRODUCT_OS_NAME" /> chặn hay cho phép tệp được bảo vệ bằng mật khẩu. + + Trường <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> kiểm soát việc <ph name="PRODUCT_OS_NAME" /> chặn hay cho phép phân tích các tệp quá lớn. + + Trường <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> giúp xác định những thẻ mà trình kết nối cần yêu cầu người dùng cho biết lý do bỏ qua quá trình quét dẫn đến cảnh báo có thể bỏ qua. Nếu bạn không đặt trường này, hệ thống sẽ xem như người dùng không cần cho biết lý do. + + Các trường <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />, <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> và <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> giúp định cấu hình thông báo cần hiển thị cho người dùng khi cảnh báo hiển thị cho biết quá trình quét cho kết quả không rõ ràng. Trường thông báo chứa văn bản sẽ hiển thị với người dùng và phải có tối đa 200 ký tự. Trường <ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> chứa URL do quản trị viên cung cấp. Người dùng có thể nhấp vào URL này để nhận thêm thông tin từ khách hàng cho biết lý do chặn hành động. Trường <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> là trường không bắt buộc và cho biết ngôn ngữ của thông báo. Trường <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> trống hoặc có giá trị "default" cho biết thông báo sẽ được sử dụng khi không có thông báo bằng ngôn ngữ của người dùng. Trường thẻ chỉ định kiểu quét mà thông báo sẽ hiển thị. Danh sách <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" /> có thể không có hoặc có nhiều mục nhập, trong đó mỗi mục nhập bắt buộc phải có các trường thẻ và thông báo không được để trống. + + Bạn cần thực hiện các thao tác thiết lập bổ sung để chính sách này có hiệu lực. Vui lòng truy cập https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting để biết thêm thông tin.</translation> <translation id="7258823566580374486">Bật tính năng ẩn của máy chủ truy cập từ xa</translation> <translation id="7260204423892780600">Các tùy chọn cài đặt kiểm soát dành cho Trợ lý Google.</translation> <translation id="7261140115553020049">Bật dịch vụ Không gian làm việc nổi</translation> @@ -7260,6 +7286,7 @@ Nếu bạn không đặt chính sách này, một giá trị mặc định dành riêng cho nền tảng sẽ được đưa vào sử dụng là: <ph name="IE_PRODUCT_NAME" /> đối với <ph name="MS_WIN_NAME" /> hoặc <ph name="SAFARI_PRODUCT_NAME" /> đối với <ph name="MAC_OS_NAME" />. Trên <ph name="LINUX_OS_NAME" />, trình duyệt thay thế sẽ không chạy được.</translation> <translation id="8836975838488342340">Thời gian hiệu lực của mã truy cập (tính bằng giây).</translation> +<translation id="883744045558067826">Chrome Root Store có thể được sử dụng tuỳ thuộc vào quá trình ra mắt tính năng.</translation> <translation id="8839799083601163225">Chính sách này kiểm soát việc tiến trình dịch vụ mạng có chạy trong môi trường hộp cát hay không. Nếu bạn bật chính sách này, thì tiến trình dịch vụ mạng sẽ chạy trong môi trường hộp cát. Nếu bạn tắt chính sách này, thì tiến trình dịch vụ mạng sẽ không chạy trong môi trường hộp cát. Điều này sẽ khiến người dùng có nguy cơ gặp phải các rủi ro bảo mật bổ sung liên quan đến việc không chạy tiến trình dịch vụ mạng ở trong môi trường hộp cát. @@ -7437,6 +7464,12 @@ Bạn nên chỉ định giá trị tính bằng mili giây cho chính sách. Giá trị được giới hạn trong khoảng từ 30 giây đến 24 giờ.</translation> <translation id="9040042535845939426">Đặt trạng trái của màn hình bảo vệ quyền riêng tư trên màn hình đăng nhập</translation> +<translation id="9046609670147277653">Khi bạn bật chế độ cài đặt này, <ph name="PRODUCT_NAME" /> sẽ sử dụng trình xác minh chứng chỉ tích hợp sẵn với Chrome Root Store là nguồn tin cậy công khai để xác minh chứng chỉ máy chủ. + Khi bạn tắt chế độ cài đặt này, <ph name="PRODUCT_NAME" /> sẽ không sử dụng Chrome Root Store. Quá trình xác minh có thể sử dụng trình xác minh chứng chỉ hệ thống hoặc trình xác minh tích hợp nếu có chính sách <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> và chính sách này không bị tắt. + Nếu bạn không đặt chế độ cài đặt này, Chrome Root Store hoặc gốc do hệ thống cung cấp có thể được sử dụng. + + Chúng tôi dự định loại bỏ chính sách này khỏi <ph name="PRODUCT_NAME" /> cho <ph name="MS_WIN_NAME" /> và <ph name="MAC_OS_NAME" /> phiên bản 111, khi ngừng hỗ trợ việc sử dụng trình xác minh chứng chỉ và gốc do nền tảng cung cấp theo kế hoạch. + </translation> <translation id="9050853837490399534">Chính sách này kiểm soát việc có cập nhật thiết bị lên Bản dựng Quick Fix hay không. Nếu bạn đặt giá trị của chính sách thành một mã thông báo tương ứng với Bản dựng Quick Fix, thì thiết bị sẽ được cập nhật lên Bản dựng Quick Fix tương ứng nếu không có chính sách nào khác chặn quá trình cập nhật này. @@ -7486,6 +7519,7 @@ Nếu bạn tắt hoặc không đặt chính sách này thì thông tin nêu trên sẽ không được báo cáo. Nếu bạn bật chính sách này thì các lần đăng nhập/đăng xuất của thiết bị sẽ được báo cáo.</translation> +<translation id="9087652369391570821">Chính sách cấu hình dành cho Trình kết nối OnFileTransfer của Chrome Enterprise</translation> <translation id="9088191250434406767">Nếu bạn đặt thành Bật hoặc không đặt chính sách này, thì người dùng sẽ được phép tìm kiếm bằng máy ảnh thông qua <ph name="GOOGLE_LENS_PRODUCT_NAME" />. Nếu bạn đặt chính sách này thành Tắt, người dùng sẽ không thấy nút <ph name="GOOGLE_LENS_PRODUCT_NAME" /> trong hộp tìm kiếm dù họ có thể sử dụng tính năng tìm kiếm bằng máy ảnh thông qua <ph name="GOOGLE_LENS_PRODUCT_NAME" />.</translation> <translation id="9088433379343318874">Cho phép nhà cung cấp nội dung của người dùng được giám sát</translation> <translation id="9088444059179765143">Định cấu hình phương thức phát hiện múi giờ tự động</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index 2667941..18ed74a 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1604,6 +1604,7 @@ <translation id="264771271300359481">不允许任何网站使用剪贴板网站权限</translation> <translation id="2649896281375932517">由用户决定</translation> <translation id="2650049181907741121">当用户合上屏幕时执行的操作</translation> +<translation id="2656559539624760733">不使用 Chrome 根存储区。</translation> <translation id="2658653824183107970">使用旧版 <ph name="CORS" /> 实现方案(而非新版 <ph name="CORS" />)</translation> <translation id="2660846099862559570">从不使用代理</translation> <translation id="2661628029848851543">允许受管理的帐号的所有使用情况</translation> @@ -3482,6 +3483,12 @@ 如果未设置此政策,则默认情况下,受企业管理的用户和不受管理的用户都可以使用该功能。</translation> <translation id="487460824085252184">自动迁移,不询问用户是否同意。</translation> +<translation id="48749493657448872">如果此设置已启用,<ph name="PRODUCT_NAME" /> 将会使用内置的证书验证程序来验证服务器证书。 + 如果此设置已停用,<ph name="PRODUCT_NAME" /> 将会使用平台提供的旧版证书验证程序来验证服务器证书,除非已启用 <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" />。 + 如果此设置未配置,系统既可能会使用内置的证书验证程序,也可能会使用旧版证书验证程序。 + + 按照我们的计划,此政策将会从 <ph name="MAC_OS_NAME" /> 上的 <ph name="PRODUCT_NAME" /> 107 版中移除,该版本将不再支持在 <ph name="MAC_OS_NAME" /> 上使用旧版证书验证程序。 + </translation> <translation id="4874982543810021567">禁止这些网站使用 WebUSB</translation> <translation id="4876805738539874299">启用最高 SSL 版本</translation> <translation id="4877402532842958110">此政策已被弃用,请改用“<ph name="URL_ALLOWLIST_POLICY_NAME" />”政策。 @@ -4277,6 +4284,7 @@ <translation id="5733040281451845496">如果此政策已启用,仅当在会话内察觉到首项用户活动后,系统才会开始应用电源管理延迟时间和会话时长限制。 如果此政策已停用或未设置,系统会在会话启动后立即开始应用电源管理延迟时间和时长限制。</translation> +<translation id="5733357908790472408">使用 Chrome 根存储区。</translation> <translation id="5735915264686983150">隐藏并禁用已停用的功能</translation> <translation id="5737394734996319911">无障碍功能“<ph name="PRODUCT_NAME" />”让使用屏幕阅读器的视障用户能够获取对无标签网络图片的说明。如果选择启用该功能,用户将能选择使用匿名 Google 服务为他们遇到的无标签网络图片提供自动说明。 @@ -4736,6 +4744,7 @@ <translation id="6258658183356534534">控制 User-Agent Client Hints GREASE Update 功能。</translation> <translation id="6261643884958898336">报告机器标识信息</translation> <translation id="6265892395051519509">允许在这些网站上使用传感器</translation> +<translation id="6266043141694454734">确定是否使用 Chrome 根存储区和内置的证书验证程序来验证服务器证书</translation> <translation id="6273015149273504999"> 以列表形式指定一系列无需用户干预即会在登录屏幕上静默安装且无法由用户卸载或停用的应用和扩展程序。 @@ -5721,6 +5730,23 @@ 如果 <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> 和 <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" /> 均未设置,用户便可自行选择主页。 在 <ph name="MS_WIN_NAME" /> 上,此功能仅适用于已加入 <ph name="MS_AD_NAME" /> 网域的实例、在 Windows 10 专业版上运行的实例,或已注册 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />的实例。在 <ph name="MAC_OS_NAME" /> 上,此功能仅适用于通过 MDM 进行管理或通过 MCX 加入网域的实例。</translation> +<translation id="7258250780552783197">让您能够指定一系列要应用于 <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" /> 企业版接口的 Chrome 企业版接口服务设置,以供系统在有人在 <ph name="PRODUCT_OS_NAME" /> 中传输文件时调用。 + + <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> 和 <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> 字段用于确定当用户在源位置和目标位置之间传输某个文件时,该接口是否应将此文件发送给系统进行分析,以及要将哪些标记添加到此文件的分析请求中。如果相应的源位置和目标位置与某个标记关联的“enable”规则相匹配,那么只要此标记关联的“disable”规则不与此传输匹配,该接口便会将这个标记添加到分析请求中。如果该接口向分析请求中添加了至少 1 个标记,系统便会分析此文件。<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> 规则由对列表定义,其中每个对都包含源位置列表和目标位置列表。<ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> 用于定义规则应该应用到哪个文件系统。 + + <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> 字段用于确定您指定的设置对应于哪个分析服务提供商。 + + 如果您将 <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> 字段设为 1,<ph name="PRODUCT_OS_NAME" /> 需要先等到分析服务做出响应,再确定是否要允许传输。如果您将该字段设为任何其他整数值,<ph name="PRODUCT_OS_NAME" /> 就会立即允许传输。 + + <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> 字段用于控制 <ph name="PRODUCT_OS_NAME" /> 是禁止还是允许传输受密码保护的文件。 + + <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> 字段用于控制 <ph name="PRODUCT_OS_NAME" /> 是禁止还是允许传输因过大而无法分析的文件。 + + <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> 字段用于确定该接口应要求用户为哪些标记输入理由,以绕过那些触发了可绕过式警告的扫描。如果该字段未设置,系统会假设不需要输入理由。 + + <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> 和 <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> 字段用于配置系统在扫描完毕并判定数据有问题后向用户显示的警告消息。message 字段包含要向用户显示的文字,最多只能有 200 个字符。<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" /> 字段包含管理员提供的网址,用户可点击该网址以从客户提供的信息中详细了解相应操作被禁止的原因。<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> 字段是可选字段,包含消息所用的语言。如果 <ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> 字段留空或值为“default”,则说明要显示的消息不是以用户所用语言设定的。tag 字段用于指定要针对哪类扫描显示消息。<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" /> 列表可包含零个或多个条目,每个条目都必须具有非空的 message 和 tag 字段。 + + 此政策需要额外的设置才能生效,请访问 https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting 了解详情。</translation> <translation id="7258823566580374486">启用远程访问主机的屏蔽设置</translation> <translation id="7260204423892780600">控制 Google 助理的设置。</translation> <translation id="7261140115553020049">启用悬浮式工作区服务</translation> @@ -7157,6 +7183,7 @@ 如果您未设置此政策,系统会使用相应的平台专用默认浏览器:在 <ph name="MS_WIN_NAME" /> 上使用 <ph name="IE_PRODUCT_NAME" />,在 <ph name="MAC_OS_NAME" /> 上使用 <ph name="SAFARI_PRODUCT_NAME" />。在 <ph name="LINUX_OS_NAME" /> 上,无法启动备用浏览器。</translation> <translation id="8836975838488342340">访问代码的有效时长(以秒为单位)。</translation> +<translation id="883744045558067826">可能会使用 Chrome 根存储区,具体取决于功能启动流程。</translation> <translation id="8839799083601163225">此政策用于控制网络服务进程是否在已沙盒化的环境中运行。 如果此政策已启用,网络服务进程将在已沙盒化的环境中运行。 如果此政策已停用,网络服务进程将在未沙盒化的环境中运行。这会导致用户面临与在未沙盒化的环境中运行网络服务相关的更多安全风险。 @@ -7331,6 +7358,12 @@ 该政策值应该以毫秒为单位。值的范围限定在 30 秒到 24 小时之间。</translation> <translation id="9040042535845939426">设置“隐私保护屏”在登录屏幕上的状态</translation> +<translation id="9046609670147277653">如果此设置已启用,<ph name="PRODUCT_NAME" /> 将会使用内置的证书验证程序来验证服务器证书,并将 Chrome 根存储区作为公共信任来源。 + 如果此设置已停用,<ph name="PRODUCT_NAME" /> 将不会使用 Chrome 根存储区。如果 <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> 政策可用且未停用,可能会使用系统证书验证程序或内置的验证程序进行验证。 + 如果此设置未配置,则既可能会使用 Chrome 根存储区,也可能会使用系统提供的根目录。 + + 按照我们的计划,此政策将会从 <ph name="MS_WIN_NAME" /> 和 <ph name="MAC_OS_NAME" /> 上的 <ph name="PRODUCT_NAME" /> 111 版中移除,该版本将不再支持使用平台提供的证书验证程序和根目录。 + </translation> <translation id="9050853837490399534">此政策用于控制相应设备是否应该更新至 Quick Fix Build。 如果此政策的值设为与 Quick Fix Build 对应的令牌,那么只要更新未被其他政策阻止,该设备就会更新至相应的 Quick Fix Build。 @@ -7380,6 +7413,7 @@ 如果此政策设为 false 或未设置,系统将不会报告这些信息。 如果此政策设为 true,系统便会报告这类设备上的登录/退出事件。</translation> +<translation id="9087652369391570821">OnFileTransfer Chrome 企业版接口的配置政策</translation> <translation id="9088191250434406767">如果此政策未设置或已启用,用户便可借助 <ph name="GOOGLE_LENS_PRODUCT_NAME" />使用摄像头进行搜索。如果此政策已停用,那么即使可以使用由 <ph name="GOOGLE_LENS_PRODUCT_NAME" />提供支持的摄像头辅助搜索功能,用户也不会在搜索框中看到 <ph name="GOOGLE_LENS_PRODUCT_NAME" />按钮。</translation> <translation id="9088433379343318874">启用受监管用户内容提供方</translation> <translation id="9088444059179765143">配置自动检测时区方法</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 6c45217..6ff3be8 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -1611,6 +1611,7 @@ <translation id="264771271300359481">不允許任何網站使用剪貼簿網站權限</translation> <translation id="2649896281375932517">讓使用者決定</translation> <translation id="2650049181907741121">使用者蓋上螢幕時所採取的動作</translation> +<translation id="2656559539624760733">不要使用 Chrome Root Store。</translation> <translation id="2658653824183107970">使用舊版 <ph name="CORS" /> 模式,而不使用新版 <ph name="CORS" /></translation> <translation id="2660846099862559570">永不使用 Proxy</translation> <translation id="2661628029848851543">允許受管理帳戶的所有使用情況</translation> @@ -3485,6 +3486,12 @@ 如果不設定這項政策,預設值是允許受企業管理以及未受管理的使用者執行這項功能。</translation> <translation id="487460824085252184">自動遷移,不要求使用者同意。</translation> +<translation id="48749493657448872">如果啟用這項設定,<ph name="PRODUCT_NAME" /> 將使用內建的憑證驗證器執行伺服器憑證驗證作業。 + 除非 <ph name="CHROME_ROOT_STORE_ENABLED_POLICY_NAME" /> 已啟用,否則如果停用這項設定,<ph name="PRODUCT_NAME" /> 將使用平台提供的舊版憑證驗證器執行伺服器憑證驗證作業。 + 如果不進行設定,系統可能會使用內建或舊版的憑證驗證器。 + + 我們計劃將這項政策從 <ph name="MAC_OS_NAME" /> 107 版的 <ph name="PRODUCT_NAME" /> 中移除,屆時也將停止支援 <ph name="MAC_OS_NAME" /> 的舊版憑證驗證器。 + </translation> <translation id="4874982543810021567">在這些網站上封鎖 WebUSB</translation> <translation id="4876805738539874299">已啟用 SSL 最高版本</translation> <translation id="4877402532842958110">這項政策已遭淘汰,請改用「<ph name="URL_ALLOWLIST_POLICY_NAME" />」政策。 @@ -4277,6 +4284,7 @@ <translation id="5733040281451845496">如果將這項政策設為啟用,系統會等到電源管理工作階段中出現第一項使用者活動後,才開始套用延遲時間和工作階段長度限制。 如果將這項政策設為停用或不設定,系統會在電源管理工作階段一開始便套用延遲時間設定和時間限制。</translation> +<translation id="5733357908790472408">使用 Chrome Root Store。</translation> <translation id="5735915264686983150">隱藏並封鎖已停用的功能</translation> <translation id="5737394734996319911">「<ph name="PRODUCT_NAME" />」無障礙功能可讓螢幕閱讀器的視障使用者取得無標籤網路圖片的說明。啟用這項功能的使用者可利用去識別化的 Google 服務,取得系統針對無標籤網路圖片自動產生的說明。啟用這項功能後,系統會將圖片內容傳送給 Google 伺服器以產生說明內容。系統不會傳送 Cookie 或其他使用者資料,且 Google 不會儲存或記錄任何圖片內容。如果將這項政策設為「啟用」,「<ph name="PRODUCT_NAME" />」功能便會開啟,不過這項設定只會影響螢幕閱讀器或其他類似輔助技術的使用者。如果將這項政策設為「停用」,使用者將無法啟用這項功能。如未設定這項政策,則使用者可自行選擇是否要使用此功能 </translation> @@ -4725,6 +4733,7 @@ <translation id="6258658183356534534">控制 User-Agent Client Hints GREASE Update 功能。</translation> <translation id="6261643884958898336">回報裝置識別資訊</translation> <translation id="6265892395051519509">允許在這些網站上存取感應器</translation> +<translation id="6266043141694454734">決定是否要使用 Chrome Root Store 和內建的憑證驗證器來驗證伺服器憑證</translation> <translation id="6273015149273504999"> 指定要在登入畫面上以無訊息方式 (使用者無需操作) 安裝的應用程式和擴充功能清單;使用者無法解除安裝或停用這些網站。 @@ -5706,6 +5715,23 @@ 如果未設定 <ph name="HOMEPAGE_LOCATION_POLICY_NAME" /> 和 <ph name="HOMEPAGE_IS_NEW_TAB_PAGE_POLICY_NAME" />,使用者將可選擇首頁。 在 <ph name="MS_WIN_NAME" /> 上,這項功能僅適用於已加入 <ph name="MS_AD_NAME" /> 網域的執行個體、在 Windows 10 專業版上執行的執行個體,或是已註冊 <ph name="CHROME_BROWSER_CLOUD_MANAGEMENT_NAME" />服務的執行個體。在 <ph name="MAC_OS_NAME" /> 上,這項功能僅適用於透過行動裝置管理 (MDM) 軟體進行管理或透過 MCX 加入網域的執行個體。</translation> +<translation id="7258250780552783197">要套用至 <ph name="ON_FILE_TRANSFER_ENTERPRISE_CONNECTOR" /> Enterprise 連接器的 Chrome Enterprise 連接器服務設定清單,該連接器會在檔案於 <ph name="PRODUCT_OS_NAME" /> 內轉移時觸發。 + + 在來源和目的地之間轉移檔案時,系統會使用 <ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_TAGS_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_ENABLE_FIELD" /> 和 <ph name="ENTERPRISE_CONNECTOR_DISABLE_FIELD" /> 欄位來判斷連接器是否要傳送檔案進行分析,以及要為該檔案在分析要求中加入哪些標記。系統會比對標記對應的規則,如果來源和目的地符合與該標記相關聯的規則,且該標記的「disable」規則不符合該項轉移作業,系統就會在分析要求中加入與「enable」規則相對應的標記。當要求中加入至少 1 個標記時,系統就會進行分析。<ph name="ENTERPRISE_CONNECTOR_SOURCE_DESTINATION_LIST_FIELD" /> 規則是由配對清單所定義,每組配對皆包含來源清單和目的地清單。<ph name="ENTERPRISE_CONNECTOR_FILE_SYSTEM_TYPE_FIELD" /> 會定義規則應套用至哪個檔案系統。 + + <ph name="ENTERPRISE_CONNECTOR_SERVICE_PROVIDER_FIELD" /> 欄位可用來指定設定是對應至哪個分析服務供應商。 + + 如果將 <ph name="ENTERPRISE_CONNECTOR_BLOCK_UNTIL_VERDICT_FIELD" /> 欄位設為 1,<ph name="PRODUCT_OS_NAME" /> 會先等候分析服務的回應,再允許轉移作業。如果設為其他整數值,<ph name="PRODUCT_OS_NAME" /> 會立即允許轉移作業。 + + <ph name="ENTERPRISE_CONNECTOR_BLOCK_PASSWORD_PROTECTED_FIELD" /> 欄位可控制 <ph name="PRODUCT_OS_NAME" /> 要封鎖還是允許受到密碼保護的檔案。 + + <ph name="ENTERPRISE_CONNECTOR_BLOCK_LARGE_FILES_FIELD" /> 欄位可控制 <ph name="PRODUCT_OS_NAME" /> 要封鎖還是允許因太大而無法分析的檔案。 + + 當掃描結果顯示可略過的警告時,系統會使用 <ph name="ENTERPRISE_CONNECTOR_REQUIRE_JUSTIFICATION_TAGS_FIELD" /> 欄位來判斷連接器該在哪些標記中要求使用者輸入略過掃描的原因。如果不設定這個欄位,系統會認定不需要輸入原因。 + + 當掃描結果判定檔案有問題時,系統會使用 <ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_MESSAGE_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />、<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" /> 和 <ph name="ENTERPRISE_CONNECTOR_TAG_FIELD" /> 欄位來設定要向使用者顯示的訊息。「message」欄位包含要向使用者顯示的文字,長度上限為 200 個半形字元。「<ph name="ENTERPRISE_CONNECTOR_LEARN_MORE_URL_FIELD" />」欄位包含由管理員提供的網址,使用者點選後可取得更多由客戶提供的資訊,瞭解動作遭到封鎖的原因。「<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />」欄位為選填,包含訊息所用語言。如果將「<ph name="ENTERPRISE_CONNECTOR_LANGUAGE_FIELD" />」欄位留空或設為「default」值,表示在找不到使用者語言的訊息時,系統會使用預設訊息。「tag」欄位可用來指定要顯示訊息的掃描類型。「<ph name="ENTERPRISE_CONNECTOR_CUSTOM_MESSAGES_FIELD" />」清單可以有零或多個項目,每個項目都必須包括非空白的「message」和「tag」欄位。 + + 這項政策需要額外設定才會生效,詳情請參閱 https://support.google.com/chrome/a?p=chrome_enterprise_connector_policies_setting。</translation> <translation id="7258823566580374486">啟用遠端存取主機遮幕</translation> <translation id="7260204423892780600">控管 Google 助理的設定。</translation> <translation id="7261140115553020049">啟用浮動工作區服務</translation> @@ -7127,6 +7153,7 @@ 如果不設定這項政策,系統會使用平台專屬的預設值:<ph name="MS_WIN_NAME" /> 使用 <ph name="IE_PRODUCT_NAME" />、<ph name="MAC_OS_NAME" /> 使用 <ph name="SAFARI_PRODUCT_NAME" />。<ph name="LINUX_OS_NAME" /> 將無法啟動替代瀏覽器。</translation> <translation id="8836975838488342340">存取碼的有效時限 (以秒為單位)。</translation> +<translation id="883744045558067826">視功能啟動程序而定,系統可能會使用 Chrome Root Store。</translation> <translation id="8839799083601163225">這項政策可控管系統是否會採用沙箱機制執行網路服務程序。 如果啟用這項政策,系統會採用沙箱機制執行網路服務程序。 如果停用這項政策,系統將不採用沙箱機制執行網路服務程序。如果不採用沙箱機制執行網路服務,可能會讓使用者面臨額外的安全性風險。 @@ -7302,6 +7329,12 @@ 指定政策值時需以毫秒為單位。該值必須介於 30 秒至 24 小時之間。</translation> <translation id="9040042535845939426">設定登入畫面上的隱私保護畫面狀態</translation> +<translation id="9046609670147277653">如果啟用這項設定,<ph name="PRODUCT_NAME" /> 將使用內建憑證驗證器和 Chrome Root Store 做為公開信任來源,驗證伺服器憑證。 + 如果停用這項設定,<ph name="PRODUCT_NAME" /> 將不會使用 Chrome Root Store。如果 <ph name="BUILT_IN_CERTIFICATE_VERIFIER_ENABLED_POLICY_NAME" /> 政策可供使用且沒有遭到停用,系統可能會使用系統憑證驗證器或內建的驗證器進行驗證。 + 如果不進行設定,系統可能會使用 Chrome Root Store 或系統提供的根層級。 + + 我們計劃將這項政策從 <ph name="MS_WIN_NAME" /> 和 <ph name="MAC_OS_NAME" /> 111 版的 <ph name="PRODUCT_NAME" /> 中移除,屆時也將停止支援平台提供的憑證驗證器和根層級。 + </translation> <translation id="9050853837490399534">這項政策可控管是否要將裝置更新為「快速修復版本」。 如果將政策值設為對應至快速修復版本的符記,且其他政策未封鎖更新,則裝置會更新為相應的快速修復版本。 @@ -7350,6 +7383,7 @@ 如果將這項政策設為 False 或未設定,系統不會回報這項資訊。 如果設為 True,則系統會回報裝置的登入/登出事件。</translation> +<translation id="9087652369391570821">OnFileTransfer Chrome Enterprise 連接器的設定政策</translation> <translation id="9088191250434406767">如果將這項政策設為 Enabled 或不設定,使用者就可以使用 <ph name="GOOGLE_LENS_PRODUCT_NAME" />透過相機進行搜尋。如果將這項政策設為 Disabled,即使裝置支援 <ph name="GOOGLE_LENS_PRODUCT_NAME" />相機輔助搜尋功能,使用者在搜尋框中也不會看到 [<ph name="GOOGLE_LENS_PRODUCT_NAME" />] 按鈕。</translation> <translation id="9088433379343318874">啟用受監管的使用者內容提供者</translation> <translation id="9088444059179765143">設定自動偵測時區方式</translation>
diff --git a/components/services/app_service/DEPS b/components/services/app_service/DEPS index a0be99c..db49e46 100644 --- a/components/services/app_service/DEPS +++ b/components/services/app_service/DEPS
@@ -2,6 +2,7 @@ "+components/account_id/account_id.h", "+components/services/app_service/public/cpp", "+content/public", + "+ui/gfx/geometry", "+ui/gfx/image", ]
diff --git a/components/services/app_service/public/cpp/app_launch_util.h b/components/services/app_service/public/cpp/app_launch_util.h index e5389fa..62db0de 100644 --- a/components/services/app_service/public/cpp/app_launch_util.h +++ b/components/services/app_service/public/cpp/app_launch_util.h
@@ -6,6 +6,8 @@ #define COMPONENTS_SERVICES_APP_SERVICE_PUBLIC_CPP_APP_LAUNCH_UTIL_H_ #include "components/services/app_service/public/mojom/types.mojom.h" +#include "third_party/abseil-cpp/absl/types/optional.h" +#include "ui/gfx/geometry/rect.h" namespace apps { @@ -71,6 +73,16 @@ kMaxValue = kLaunchContainerNone, }; +// The window information to launch an app. +struct WindowInfo { + int32_t window_id = -1; + int32_t state = 0; + int32_t display_id = -1; + absl::optional<gfx::Rect> bounds; +}; + +using WindowInfoPtr = std::unique_ptr<WindowInfo>; + // TODO(crbug.com/1253250): Remove these functions after migrating to non-mojo // AppService. COMPONENT_EXPORT(APP_TYPES)
diff --git a/components/services/app_service/public/mojom/types.mojom b/components/services/app_service/public/mojom/types.mojom index e76f0de..f16804b 100644 --- a/components/services/app_service/public/mojom/types.mojom +++ b/components/services/app_service/public/mojom/types.mojom
@@ -527,6 +527,8 @@ }; // The window information to launch an app. +// DEPRECATED. Please use the WindowInfo struct in +// components/services/app_service/public/cpp/app_launch_util.h. struct WindowInfo { int32 window_id = -1; int32 state = 0;
diff --git a/components/strings/components_strings_af.xtb b/components/strings/components_strings_af.xtb index 1dbf96c..29244be 100644 --- a/components/strings/components_strings_af.xtb +++ b/components/strings/components_strings_af.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kameragebruik en -beweging</translation> <translation id="191374271204266022">Kopieer as JSON</translation> <translation id="1914326953223720820">Dekompakteer diens</translation> -<translation id="1915697529809968049">Gebruik Touch ID pleks van CVC?</translation> <translation id="1916770123977586577">Herlaai hierdie bladsy om jou opgedateerde instellings op hierdie werf toe te pas</translation> <translation id="1919345977826869612">Advertensies</translation> <translation id="1919367280705858090">Kry hulp met 'n spesifieke foutboodskap</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Kon nie jou betaling verwerk nie. Probeer weer.</translation> <translation id="4073797364926776829">Bekyk kaart</translation> <translation id="4075732493274867456">Die kliënt en bediener steun nie 'n gemeenskaplike SSL-protokolweergawe of kodesuite nie.</translation> -<translation id="4075941231477579656">Aanraak-ID</translation> <translation id="4079302484614802869">Instaanbedieneropstelling is gestel om 'n .pac-skrip-URL te gebruik, nie vaste instaanbedieners nie.</translation> <translation id="4082393374666368382">Instellings – Bestuur</translation> <translation id="4087296516249690906">Skep Geleentheid-knoppie; druk Enter om vinnig 'n nuwe geleentheid in Google Kalender te skep</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Stawingsfout: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Die stelseladministrateur kontak</translation> <translation id="450710068430902550">Deling met administrateur</translation> -<translation id="4508814173490746936">Kon nie Touch ID gebruik nie</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, druk Tab en dan Enter om hierdie bladsy met Google Vertaal te vertaal</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Skakel Reise af</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Voer die vervaldatum en CVC vir <ph name="CREDIT_CARD" /> in</translation> <translation id="6415778972515849510">Chromium kan jou help om jou Google-rekening te beskerm en jou wagwoord te verander.</translation> -<translation id="6423385022588644828">Gebruik van nou af Touch ID om jou kaarte vinniger te bevestig</translation> <translation id="6425092077175753609">Materiaal</translation> <translation id="6427730057873428458">Uitvoublad</translation> <translation id="6428450836711225518">Verifieer jou foonnommer</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">'n Private verbinding aan <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> kan nie gevestig word nie omdat jou toestel se datum en tyd (<ph name="DATE_AND_TIME" />) verkeerd is.</translation> <translation id="8564182942834072828">Afsonderlike dokumente/nie-ingesorteerde kopieë</translation> <translation id="8564985650692024650">Chromium beveel aan dat jy jou <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-wagwoord terugstel as jy dit ook op ander werwe gebruik het.</translation> -<translation id="8574899947864779331">Gebruik Touch ID om kaarte vinniger te bevestig</translation> <translation id="8576310925653847813">Tuisteaterstelsels</translation> <translation id="8577348305244205642">Virtuele kaart is nie beskikbaar nie</translation> <translation id="858637041960032120">Voeg foonnommer by</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Hierdie bladsy sluit verder ander hulpbronne in wat nie veilig is nie. Hierdie hulpbronne kan deur ander mense bekyk word terwyl hulle op pad is, en kan deur 'n aanvaller aangepas word om die bladsy se gedrag te verander.</translation> <translation id="9040464167025094690">Knoppie om my toestel te kry. Druk Enter om jou toestel in die Google-rekening te kry</translation> <translation id="9042617223719777575">Groot kapasiteit</translation> -<translation id="9044359186343685026">Gebruik Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Jy het probeer om <ph name="DOMAIN" /> te bereik, maar die bediener het 'n ongeldige sertifikaat voorgehou.</translation> <translation id="9050666287014529139">Wagfrase</translation>
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index ec5b089..5933dde49 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">የካሜራ አጠቃቀም እና እንቅስቃሴ</translation> <translation id="191374271204266022">እንደ JSON ቅዳ</translation> <translation id="1914326953223720820">አገልግሎትን በትን</translation> -<translation id="1915697529809968049">ከCVC ይልቅ የንክኪ መታወቂያ ይጠቀሙ?</translation> <translation id="1916770123977586577">የተዘመኑ ቅንብሮችዎን በዚህ ጣቢያ ላይ ለመተግበር ይህን ገጽ እንደገና ይጫኑት</translation> <translation id="1919345977826869612">ማስታወቂያዎች</translation> <translation id="1919367280705858090">በአንድ የተወሰነ የስህተት መልዕክት ላይ እገዛ ያግኙ</translation> @@ -830,6 +829,7 @@ <translation id="3226387218769101247">ድንክዬዎች</translation> <translation id="3227137524299004712">ማይክሮፎን</translation> <translation id="3229041911291329567">የእርስዎ መሣሪያ እና አሳሽ የስሪት መረጃ</translation> +<translation id="3229277193950731405">የስሪት ሕብረቁምፊን ቅዳ</translation> <translation id="323107829343500871">የ<ph name="CREDIT_CARD" /> ሲቪሲ ያስገቡ</translation> <translation id="3234666976984236645">ሁልጊዜ በዚህ ጣቢያ ላይ ያለ አስፈላጊ ይዘትን አግኝ</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ የአሳሽዎን መልክ ለማበጀት ትርን ከዚያ አስገባን ይጫኑ</translation> @@ -1122,7 +1122,6 @@ <translation id="4072486802667267160">የእርስዎን ትዕዛዝ መሥራት ላይ የሆነ ስህተት ነበር። እባክዎ እንደገና ይሞክሩ።</translation> <translation id="4073797364926776829">ካርድ ይመልከቱ</translation> <translation id="4075732493274867456">ደንበኛው እና አገልጋዩ የተለመደ የኤስኤስኤል ፕሮቶኮል ስሪት ወይም የስነ መሰውር ጥቅል አይደግፉም።</translation> -<translation id="4075941231477579656">የንክኪ መታወቂያ</translation> <translation id="4079302484614802869">የተኪ ውቅር ቋሚ አገልጋዮችን ሳይሆን የ.pac ስክሪፕት ዩአርኤል ለመጠቀም ነው የተዋቀረው።</translation> <translation id="4082393374666368382">ቅንብሮች - አስተዳደር</translation> <translation id="4087296516249690906">የክስተት አዝራርን ይፍጠሩ፣ በGoogle ቀን መቁጠሪያ ውስጥ አዲስ ክስተት በፍጥነት ለመፍጠር አስገባን ይጫኑ</translation> @@ -1294,7 +1293,6 @@ <translation id="4506176782989081258">የማረጋገጥ ስህተት፦ <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">የሥርዓት አስተዳዳሪውን ማነጋገር</translation> <translation id="450710068430902550">ከአስተዳዳሪ ጋር ማጋራት</translation> -<translation id="4508814173490746936">የንኪ መታወቂያን መጠቀም አልተቻለም</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />፣ ትርን ይጫኑ በመቀጠል በGoogle ትርጉም ይህን ገጽ ለመተርጎም አስገባን ይጫኑ</translation> <translation id="4510487217173779431">Chou4 (የደብዳቤ ፖስታ)</translation> <translation id="4514308731478712184">ጉዞዎችን ያጥፉ</translation> @@ -1968,7 +1966,6 @@ <translation id="6406765186087300643">C0 (የደብዳቤ ፖስታ)</translation> <translation id="6410264514553301377">የ<ph name="CREDIT_CARD" /> የአገልግሎት ማብቂያ ቀን እና ሲቪሲ ያስገቡ</translation> <translation id="6415778972515849510">Chromium የGoogle መለያዎን እንዲጠብቁ እና የይለፍ ቃልዎን እንዲቀይሩት ያግዘዎታል።</translation> -<translation id="6423385022588644828">ከአሁን በኋላ የንኪ መታወቂያን በመጠቀም የእርስዎን ካርዶች በበለጠ ፍጥነት ያረጋግጡ</translation> <translation id="6425092077175753609">ቁሳዊ</translation> <translation id="6427730057873428458">የበር እጥፋት</translation> <translation id="6428450836711225518">ስልክ ቁጥርዎን ያረጋግጡ</translation> @@ -2737,7 +2734,6 @@ <translation id="8559762987265718583">የእርስዎ መሣሪያ ቀን (<ph name="DATE_AND_TIME" />) ልክ ስላልሆነ ወደ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> የግል ግንኙነት መመስረት አይቻልም።</translation> <translation id="8564182942834072828">የተለዩ ሰነዶች/ያልተጣመሩ ቅጂዎች</translation> <translation id="8564985650692024650">Chromium የእርስዎን የ<ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ይለፍ ቃል በሌሎች ጣቢያዎች ላይ ዳግም ከተጠቀሙበት እንደገና እንዲያዋቅሩት ይመክራል።</translation> -<translation id="8574899947864779331">ካርዶችን በበለጠ ፍጥነት ለማረጋገጥ የንኪ መታወቂያን ይጠቀሙ</translation> <translation id="8576310925653847813">የቤት ትያትር ስርዓቶች</translation> <translation id="8577348305244205642">ምናባዊ ካርድ አይገኝም</translation> <translation id="858637041960032120">ስልክ ቁጥር ያክሉ @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">በተጨማሪ፣ ይህ ገጽ ደህንነታቸው ያልተጠበቀ ሌሎች ንብረቶችን አካትቷል። እነዚህ ንብረቶች በሽግግር ወቅት በሌሎች ሊታዩ ይችላሉ፣ እናም የገጹን ባህሪ ለመለወጥ በአጥቂዎች ሊቀየሩ ይችላሉ።</translation> <translation id="9040464167025094690">የእኔን መሳሪያ አግኝ አዝራር፣ በGoogle መለያ ውስጥ መሳርያዎን ያግኙን ለመጎብኘት አስገባንን ይጫኑ</translation> <translation id="9042617223719777575">ትልቅ የመያዝ አቅም</translation> -<translation id="9044359186343685026">የንክኪ መታወቂያን ተጠቀም</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" />ን ለመድረስ ሞክረው ነበር፣ ግን አገልጋዩ ልክ ያልሆነ የእውቅና ማረጋገጫ ነው ያሳየው።</translation> <translation id="9050666287014529139">የይለፍ ሐረግ</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index 1b8ac781..f9755ee 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">استخدام الكاميرا وتحريكها</translation> <translation id="191374271204266022">نسخ بتنسيق JSON</translation> <translation id="1914326953223720820">خدمة "فك الضغط"</translation> -<translation id="1915697529809968049">هل تريد استخدام ميزة Touch ID بدلاً من رمز التحقق من البطاقة (CVC)؟</translation> <translation id="1916770123977586577">لتطبيق الإعدادات المُحدَّثة على الموقع الإلكتروني هذا، أعِد تحميل هذه الصفحة</translation> <translation id="1919345977826869612">الإعلانات</translation> <translation id="1919367280705858090">الحصول على مساعدة بخصوص رسالة خطأ محددة</translation> @@ -832,6 +831,7 @@ <translation id="3226387218769101247">الصور المصغرة</translation> <translation id="3227137524299004712">الميكروفون</translation> <translation id="3229041911291329567">معلومات الإصدار حول جهازك ومتصفِّحك</translation> +<translation id="3229277193950731405">نَسخ بيانات الإصدار</translation> <translation id="323107829343500871">أدخِل رمز التحقّق (CVC) لبطاقة <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">الكشف دائمًا عن المحتوى المهم على هذا الموقع</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />، اضغط على مفتاح Tab ثم مفتاح Enter لتخصيص مظهر المتصفِّح</translation> @@ -1125,7 +1125,6 @@ <translation id="4072486802667267160">حدث خطأ أثناء معالجة طلبك. يُرجى إعادة المحاولة.</translation> <translation id="4073797364926776829">الاطّلاع على البطاقة</translation> <translation id="4075732493274867456">لا يدعم كل من العميل والخادم مجموعة ترميز أو إصدار بروتوكول طبقة المقابس الآمنة الشائع.</translation> -<translation id="4075941231477579656">ميزة Touch ID</translation> <translation id="4079302484614802869">تم ضبط إعداد الخادم الوكيل لاستخدام عنوان URL نص برمجي .pac وليس الخوادم الوكيلة الثابتة.</translation> <translation id="4082393374666368382">الإعدادات - الإدارة</translation> <translation id="4087296516249690906">زرّ إنشاء حدث: اضغط على مفتاح Enter لإنشاء حدث جديد في "تقويم Google" بسرعة.</translation> @@ -1297,7 +1296,6 @@ <translation id="4506176782989081258">خطأ في عملية التحقق: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">الاتصال بمشرف النظام</translation> <translation id="450710068430902550">المشاركة مع المشرف</translation> -<translation id="4508814173490746936">تعذّر استخدام ميزة Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />، اضغط على مفتاح التبويب (Tab) ثم مفتاح Enter لترجمة هذه الصفحة باستخدام "ترجمة Google".</translation> <translation id="4510487217173779431">Chou4 (مغلف)</translation> <translation id="4514308731478712184">إيقاف ميزة "رحلات البحث" @@ -1972,7 +1970,6 @@ <translation id="6406765186087300643">C0 (مغلف)</translation> <translation id="6410264514553301377">أدخِل تاريخ انتهاء الصلاحية ورمز التحقّق (CVC) لبطاقة <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">يمكن أن يساعدك Chromium على حماية حسابك على Google وتغيير كلمة المرور.</translation> -<translation id="6423385022588644828">التأكد من بطاقاتك بشكلٍ أسرع باستخدام ميزة Touch ID من الآن فصاعدًا</translation> <translation id="6425092077175753609">متعدد الأبعاد</translation> <translation id="6427730057873428458">الطي على شكل بوابة</translation> <translation id="6428450836711225518">إثبات ملكية رقم الهاتف</translation> @@ -2743,7 +2740,6 @@ <translation id="8559762987265718583">تعذر إنشاء اتصال خاص بـ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> نظرًا لأن التاريخ والوقت للجهاز (<ph name="DATE_AND_TIME" />) غير صحيحين.</translation> <translation id="8564182942834072828">مستندات مفصولة/نُسخ مفصولة</translation> <translation id="8564985650692024650">يُوصي Chromium بإعادة تحديد كلمة المرور <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> في حال إعادة استخدامها في مواقع إلكترونية أخرى.</translation> -<translation id="8574899947864779331">استخدام ميزة Touch ID للتأكد من البطاقات بشكلٍ أسرع</translation> <translation id="8576310925653847813">أنظمة مسرح منزلي</translation> <translation id="8577348305244205642">البطاقة الافتراضية غير متوفّرة</translation> <translation id="858637041960032120">إضافة رقم هاتف @@ -2900,7 +2896,6 @@ <translation id="9039213469156557790">إضافة إلى ذلك، تتضمن هذه الصفحة موارد أخرى غير آمنة. ويستطيع الآخرون مشاهدة هذه الموارد أثناء نقلها، كما يستطيع أي مهاجم تعديلها لتغيير سلوك الصفحة.</translation> <translation id="9040464167025094690">زر "العثور على جهازي": اضغط على مفتاح Enter للانتقال إلى ميزة "العثور على جهازي" المتوفّرة في حساب Google.</translation> <translation id="9042617223719777575">سِعة كبيرة</translation> -<translation id="9044359186343685026">استخدام ميزة Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">لقد حاولت الوصول إلى <ph name="DOMAIN" />, ولكن الخادم قدّم شهادة غير صالحة.</translation> <translation id="9050666287014529139">عبارة المرور</translation>
diff --git a/components/strings/components_strings_as.xtb b/components/strings/components_strings_as.xtb index 858632f6..f26fafd 100644 --- a/components/strings/components_strings_as.xtb +++ b/components/strings/components_strings_as.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">কেমেৰাৰ ব্যৱহাৰ আৰু গতিবিধি</translation> <translation id="191374271204266022">JSON হিচাপে প্ৰতিলিপি কৰক</translation> <translation id="1914326953223720820">আনজিপ সেৱা</translation> -<translation id="1915697529809968049">CVCৰ পৰিৱৰ্তে স্পৰ্শ আইডি ব্যৱহাৰ কৰিবনে?</translation> <translation id="1916770123977586577">আপোনাৰ আপডে’ট কৰা ছেটিংসমূহ এই ছাইটটোত প্ৰয়োগ কৰিবলৈ এই পৃষ্ঠাটো পুনৰ ল’ড কৰক</translation> <translation id="1919345977826869612">বিজ্ঞাপনসমূহ</translation> <translation id="1919367280705858090">কোনো নির্দিষ্ট আসোঁৱাহ বার্তাৰ জৰিয়তে সহায় পাওক</translation> @@ -829,6 +828,7 @@ <translation id="3226387218769101247">থাম্বনেইলসমূহ</translation> <translation id="3227137524299004712">মাইক্ৰ’ফ’ন</translation> <translation id="3229041911291329567">আপোনাৰ ডিভাইচ আৰু ব্ৰাউজাৰৰ সংস্কৰণৰ তথ্য</translation> +<translation id="3229277193950731405">সংস্কৰণৰ ষ্ট্ৰিং প্ৰতিলিপি কৰক</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" />ৰ CVC দিয়ক</translation> <translation id="3234666976984236645">এই ছাইটটোত সদায়েই গুৰুত্বপূৰ্ণ সমল ধৰা পেলাওক</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, আপোনাৰ ব্ৰাউজাৰৰ ৰূপ কাষ্টমাইজ কৰিবলৈ টেব টিপক আৰু তাৰ পাছত এণ্টাৰ টিপক</translation> @@ -1120,7 +1120,6 @@ <translation id="4072486802667267160">আপোনাৰ অৰ্ডাৰ প্ৰক্ৰিয়া চলি থকা অৱস্থাত কোনো আসোঁৱাহ হৈছে। অনুগ্ৰহ কৰি আকৌ চেষ্টা কৰক।</translation> <translation id="4073797364926776829">কাৰ্ড চাওক</translation> <translation id="4075732493274867456">ক্লায়েণ্ট আৰু ছাৰ্ভাৰত এটা উমৈহতীয়া SSL প্ৰট’কল সংস্কৰণ বা চাইফাৰ ছুট সমৰ্থন নকৰে।</translation> -<translation id="4075941231477579656">স্পৰ্শ আইডি</translation> <translation id="4079302484614802869">প্ৰক্সি কনফিগাৰেশ্বন এটা .pac স্ক্রিপ্ট URL ব্যৱহাৰ কৰিবলৈহে ছেট কৰা হয়, স্থিৰ প্ৰক্সি ছাৰ্ভাৰ ব্যৱহাৰ কৰিবলৈ নহয়।</translation> <translation id="4082393374666368382">ছেটিংসমূহ - পৰিচালনা</translation> <translation id="4087296516249690906">অনুষ্ঠান সৃষ্টি কৰাৰ বুটাম, Google Calendarত ক্ষিপ্ৰভাৱে এটা নতুন অনুষ্ঠান সৃষ্টি কৰিবলৈ এণ্টাৰ টিপক</translation> @@ -1291,7 +1290,6 @@ <translation id="4506176782989081258">মান্যতা সম্পর্কীয় আসোঁৱাহ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ছিষ্টেমৰ প্ৰশাসকৰ সৈতে সংযোগ কৰি থকা হৈছে</translation> <translation id="450710068430902550">প্ৰশাসকৰ সৈতে শ্বেয়াৰ কৰি থকা হৈছে</translation> -<translation id="4508814173490746936">স্পৰ্শ আইডি ব্যৱহাৰ কৰিব পৰা নগ’ল</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, এই পৃষ্ঠাখন Google Translateৰ জৰিয়তে অনুবাদ কৰিবলৈ প্ৰথমে টেব আৰু তাৰ পাছত এণ্টাৰ টিপক</translation> <translation id="4510487217173779431">Chou4 (লেফাফা)</translation> <translation id="4514308731478712184">যাত্ৰাৰ সুবিধাটো অফ কৰক</translation> @@ -1964,7 +1962,6 @@ <translation id="6406765186087300643">C0 (লেফাফা)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" />ৰ ম্যাদ উকলা তাৰিখ আৰু CVC দিয়ক</translation> <translation id="6415778972515849510">Chromiumএ আপোনাৰ Google একাউণ্ট সুৰক্ষিত কৰাত আৰু আপোনৰ পাছৱৰ্ড সলনি কৰাত সহায় কৰিব পাৰে।</translation> -<translation id="6423385022588644828">এতিয়াৰ পৰা স্পৰ্শ আইডি ব্যৱহাৰ কৰি আপোনাৰ কাৰ্ডসমূহ খৰতকীয়াকৈ নিশ্চিত কৰক</translation> <translation id="6425092077175753609">সামগ্ৰী</translation> <translation id="6427730057873428458">গে'ট ফ'ল্ড কৰক</translation> <translation id="6428450836711225518">আপোনাৰ ফ’ন নম্বৰটো সত্যাপন কৰক</translation> @@ -2733,7 +2730,6 @@ <translation id="8559762987265718583">আপোনাৰ ডিভাইচৰ তাৰিখ আৰু সময় (<ph name="DATE_AND_TIME" />) অশুদ্ধ হোৱাৰ বাবে <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />লৈ কোনো ব্যক্তিগত সংযোগ স্থাপন কৰিব নোৱাৰি।</translation> <translation id="8564182942834072828">পৃথক নথি/নিমিলোৱা প্ৰতিলিপিসমূহ</translation> <translation id="8564985650692024650">আপুনি যদি নিজৰ পাছৱৰ্ডটো অন্য ছাইটত পুনৰ ব্যৱহাৰ কৰিছিল <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />এ আপোনাৰ পাছৱর্ডটো ৰিছেট কৰিবলৈ চুপাৰিছ কৰে।</translation> -<translation id="8574899947864779331">কাৰ্ডসমূহ খৰতকীয়াকৈ নিশ্চিত কৰিবলৈ স্পৰ্শ আইডি ব্যৱহাৰ কৰক</translation> <translation id="8576310925653847813">হ’ম থিয়েটাৰ ছিষ্টেম</translation> <translation id="8577348305244205642">ভাৰ্চুৱেল কাৰ্ডখন উপলব্ধ নহয়</translation> <translation id="858637041960032120">ফোন নম্বৰ যোগ কৰক</translation> @@ -2889,7 +2885,6 @@ <translation id="9039213469156557790">তদুপৰি, এই পৃষ্ঠাত কিছুমান অসুৰক্ষিত সমল আছে। এই সমল পৰিবহণৰ সময়ত অন্য লোকসকলে চাব পাৰিব আৰু পৃষ্ঠাটোৰ কার্যকলাপ সলনি কৰিবলৈ কোনো আক্ৰমণকাৰীয়ে এই সমল সংশোধন কৰিব পাৰে।</translation> <translation id="9040464167025094690">মোৰ ডিভাইচ বিচাৰক বুটাম, Google একাউণ্টটোত আপোনাৰ ডিভাইচ বিচাৰকলৈ যাবলৈ এণ্টাৰ টিপক</translation> <translation id="9042617223719777575">সৰহীয়া বহনক্ষমতা</translation> -<translation id="9044359186343685026">স্পৰ্শ আইডি ব্যৱহাৰ কৰক</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">আপুনি <ph name="DOMAIN" /> পাবলৈ প্ৰয়াস কৰিছে কিন্তু ছার্ভাৰে এখন অমান্য প্ৰমাণপত্ৰ উপস্থাপন কৰিছে।</translation> <translation id="9050666287014529139">পাছফ্ৰেজ</translation>
diff --git a/components/strings/components_strings_az.xtb b/components/strings/components_strings_az.xtb index dc974bd..2507cef 100644 --- a/components/strings/components_strings_az.xtb +++ b/components/strings/components_strings_az.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kameranın istifadəsi və hərəkət etdirilməsi</translation> <translation id="191374271204266022">JSON olaraq kopyalayın</translation> <translation id="1914326953223720820">Faylların Açılması</translation> -<translation id="1915697529809968049">CVC əvəzinə Toxunuş ID-i istifadə edilsin?</translation> <translation id="1916770123977586577">Yenilənən ayarları bu sayta tətbiq etmək üçün səhifəni təkrar yükləyin</translation> <translation id="1919345977826869612">Reklamlar</translation> <translation id="1919367280705858090">Spesifik xəta mesajı ilə bağlı yardım əldə edin</translation> @@ -829,6 +828,7 @@ <translation id="3226387218769101247">Miniatürlər</translation> <translation id="3227137524299004712">Mikrofon</translation> <translation id="3229041911291329567">Cihaz və brauzer haqqında versiya məlumatı</translation> +<translation id="3229277193950731405">Versiya sətirini kopyalayın</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> üçün CVC kodu daxil edin</translation> <translation id="3234666976984236645">Bu saytda həmişə önəmli məzmunu aşkarlayın</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq brauzerinizin görünüşünü fərdiləşdirin</translation> @@ -1119,7 +1119,6 @@ <translation id="4072486802667267160">Sifariş hazırlanarkən xəta baş verdi. Yenidən cəhd edin.</translation> <translation id="4073797364926776829">Karta baxın</translation> <translation id="4075732493274867456">Klient və server ümumi SSL protokol versiyasını və ya şifrə dəstini dəstəkləmir.</translation> -<translation id="4075941231477579656">Toxunuş ID-si</translation> <translation id="4079302484614802869">Proksi konfiqurasiyası sabit proksi serverlər deyil, .pac skript URL istifadə etmək üçün ayarlanıb.</translation> <translation id="4082393374666368382">Ayarlar - İdarəetmə</translation> <translation id="4087296516249690906">"Tədbir yaradın" düyməsi, Enter düyməsinə basaraq Google Calendar'da cəld yeni tədbir yaradın</translation> @@ -1291,7 +1290,6 @@ <translation id="4506176782989081258">Doğrulama xətası: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Sistem admini ilə əlaqə yardılır</translation> <translation id="450710068430902550">Administrator ilə paylaşılır</translation> -<translation id="4508814173490746936">Toxunuş ID-si istifadə edilmədi</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab düyməsi, sonra Enter düyməsinə basaraq bu səhifəni Google Tərcümə ilə tərcümə edin</translation> <translation id="4510487217173779431">Chou4 (Zərf)</translation> <translation id="4514308731478712184">Baxışları deaktiv edin</translation> @@ -1965,7 +1963,6 @@ <translation id="6406765186087300643">C0 (Zərf)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> üçün bitmə tarixi və CVC nömrəsini daxil edin</translation> <translation id="6415778972515849510">Chromium Google Hesabını qorumağa və parolu dəyişməyə kömək edir.</translation> -<translation id="6423385022588644828">Bundan sonra Toxunuş İD'si istifadə edərək kartlarınızı daha sürətli təsdiqləyin</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Qapı şəklində qatlayın</translation> <translation id="6428450836711225518">Telefon nömrənizi doğrulayın</translation> @@ -2734,7 +2731,6 @@ <translation id="8559762987265718583">Cihazınızın tarixi və vaxtı (<ph name="DATE_AND_TIME" />) yanlış olduğundan, <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> domeninə şəxsi bağlantı yaradıla bilməz.</translation> <translation id="8564182942834072828">Ayrıca sənədlər/Sıralanmamış nüsxələr</translation> <translation id="8564985650692024650">Parolunuzdan digər saytlarda təkrar istifadə etmisinizsə, Chromium <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> parolunuzu sıfırlamağı tövsiyə edir.</translation> -<translation id="8574899947864779331">Kartları daha sürətli təsdiqləmək üçün Toxunuş İD'si istifadə edin</translation> <translation id="8576310925653847813">Ev kinoteatrı sistemləri</translation> <translation id="8577348305244205642">Virtual kart əlçatan deyil</translation> <translation id="858637041960032120">Telefon nömrəsi əlavə edin</translation> @@ -2890,7 +2886,6 @@ <translation id="9039213469156557790">Bundan əlavə, bu səhifəyə təhlükəsiz olmayan başqa resurslar daxildir. Bu resurslar keçid zamanı başqaları tərəfindən görüntülən bilər və hücumçu tərəfindən səhifə rejiminin dəyişdirilməsi üçün modifikasiya edilə bilər.</translation> <translation id="9040464167025094690">"Cihazımı Tap" düyməsi, Enter düyməsinə basaraq Google Hesabında cihazınızı tapma bölməsinə keçin</translation> <translation id="9042617223719777575">Geniş Tutum</translation> -<translation id="9044359186343685026">Toxunuş ID-dən istifadə edin</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> domeninə giriş cəhdi etdiniz, amma server yanlış sertifikat təqdim etdi.</translation> <translation id="9050666287014529139">Parol ifadəsi</translation>
diff --git a/components/strings/components_strings_be.xtb b/components/strings/components_strings_be.xtb index 4e1c7de..965fadd 100644 --- a/components/strings/components_strings_be.xtb +++ b/components/strings/components_strings_be.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Выкарыстоўванне і рух камеры</translation> <translation id="191374271204266022">Скапіраваць як JSON</translation> <translation id="1914326953223720820">Сэрвіс распакоўвання архіваў</translation> -<translation id="1915697529809968049">Выкарыстоўваць Touch ID замест CVC?</translation> <translation id="1916770123977586577">Каб прымяніць змененыя налады гэтага сайта, абнавіце гэту старонку</translation> <translation id="1919345977826869612">Рэклама</translation> <translation id="1919367280705858090">Дапамога пры асобных паведамленнях аб памылцы</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">Адбылася памылка апрацоўкi вашага заказу. Паўтарыце спробу.</translation> <translation id="4073797364926776829">Праглядзець картку</translation> <translation id="4075732493274867456">Кліент і сервер не падтрымліваюць агульную версію пратакола SLL або набор шыфраў.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Канфігурацыяй проксі зададзена выкарыстоўваць URL-адрас сцэнарыя .pac, а не фіксаваныя проксі-серверы.</translation> <translation id="4082393374666368382">Налады – Кіраванне</translation> <translation id="4087296516249690906">Кнопка "Стварыць падзею". Каб хутка стварыць новую падзею ў Google Календары, націсніце Enter</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Памылка праверкі: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Звярнуцца да сістэмнага адміністратара.</translation> <translation id="450710068430902550">Абагульванне з адміністратарам</translation> -<translation id="4508814173490746936">Не ўдалося выкарыстаць Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Каб перакласці гэту старонку ў Перакладчыку Google, націсніце Tab, затым Enter</translation> <translation id="4510487217173779431">Chou4 (канверт)</translation> <translation id="4514308731478712184">Выключыць функцыю "Шляхі карыстальніка"</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (канверт)</translation> <translation id="6410264514553301377">Увядзіце тэрмін дзеяння і код CVC з карткі <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium можа дапамагчы абараніць ваш Уліковы запіс Google і змяніць ваш пароль.</translation> -<translation id="6423385022588644828">Калі выкарыстоўваць Touch ID, пацвярджаць карткі можна будзе хутчэй</translation> <translation id="6425092077175753609">Матэрыял</translation> <translation id="6427730057873428458">Згіб "вароты"</translation> <translation id="6428450836711225518">Спраўдзіце свой нумар тэлефона</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Памылка прыватнага падключэння да дамена <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />: дата і час на вашай прыладзе (<ph name="DATE_AND_TIME" />) няправільныя.</translation> <translation id="8564182942834072828">Асобныя дакументы, неразабраныя копіі</translation> <translation id="8564985650692024650">Chromium рэкамендуе скінуць пароль <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, калі вы карысталіся ім на іншых сайтах.</translation> -<translation id="8574899947864779331">Выкарыстоўваць Touch ID для хутчэйшага пацвярджэння картак</translation> <translation id="8576310925653847813">Дамашнія кінатэатры</translation> <translation id="8577348305244205642">Віртуальная картка недаступная</translation> <translation id="858637041960032120">Дадайце нумар тэлефона</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Акрамя таго, на гэтай старонцы ёсць іншыя рэсурсы, якія не з'яўляюцца бяспечнымі: яны могуць быць прагледжаны іншымі падчас перадачы, а таксама могуць быць мадыфікаваны зламыснікам з мэтай змяніць паводзіны старонкі.</translation> <translation id="9040464167025094690">Кнопка "Знайсці прыладу". Каб знайсці сваю прыладу ва Уліковым запісе Google, націсніце Enter</translation> <translation id="9042617223719777575">Вялікая ёмістасць</translation> -<translation id="9044359186343685026">Выкарыстоўваць Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" />.–.<ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Вы спрабавалі трапіць на дамен <ph name="DOMAIN" />, але сервер выдаў несапраўдны сертыфікат.</translation> <translation id="9050666287014529139">Фраза-пароль</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index 39e88a6..7840878 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Използване и местене на камерата</translation> <translation id="191374271204266022">Копиране като JSON</translation> <translation id="1914326953223720820">Услуга за разкомпресиране</translation> -<translation id="1915697529809968049">Искате ли да използвате Touch ID вместо код за проверка?</translation> <translation id="1916770123977586577">Презаредете страницата, за да приложите актуализираните си настройки към този сайт</translation> <translation id="1919345977826869612">Реклами</translation> <translation id="1919367280705858090">Получаване на помощ за конкретно съобщение за грешка</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Миниизображения</translation> <translation id="3227137524299004712">Микрофон</translation> <translation id="3229041911291329567">Информацията за версията на устройството и браузъра</translation> +<translation id="3229277193950731405">Копиране на низа за версията</translation> <translation id="323107829343500871">Въведете кода за проверка за <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Важното съдържание на този сайт да се открива винаги</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това Enter, за да персонализирате облика на браузъра си</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">При обработването на поръчката ви възникна грешка. Моля, опитайте отново.</translation> <translation id="4073797364926776829">Преглед на картата</translation> <translation id="4075732493274867456">Клиентът и сървърът не поддържат обща версия или пакет за шифроване за протокола SSL.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">За конфигурацията на прокси сървъра е зададено да използва URL адрес на скрипт във формат .pac, а не фиксирани прокси сървъри.</translation> <translation id="4082393374666368382">Настройки – Управление</translation> <translation id="4087296516249690906">Бутон за създаване на събитие. Натиснете Enter, за да създадете бързо събитие в Google Календар</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Грешка при потвърждаването: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Свържете се със системния администратор.</translation> <translation id="450710068430902550">Споделяне с администратор</translation> -<translation id="4508814173490746936">Touch ID не можа да се използва</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Натиснете Tab и след това – Enter, за да преведете тази страница с Google Преводач</translation> <translation id="4510487217173779431">Chou4 (плик)</translation> <translation id="4514308731478712184">Изключване на пътешествията</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (плик)</translation> <translation id="6410264514553301377">Въвеждане на датата на валидност и кода за проверка за <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium може да ви помогне да защитите профила си в Google и да промените паролата си.</translation> -<translation id="6423385022588644828">Потвърждавайте картите си по-бързо, като от сега нататък използвате Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Сгъване на двата края навътре</translation> <translation id="6428450836711225518">Потвърдете телефонния си номер</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Не може да се установи частна връзка с/ъс <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, тъй като датата и часът на устройството ви (<ph name="DATE_AND_TIME" />) са неправилни.</translation> <translation id="8564182942834072828">Отделни документи/неподредени копия</translation> <translation id="8564985650692024650">Chromium препоръчва да зададете повторно паролата си за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, ако сте я използвали и на други сайтове.</translation> -<translation id="8574899947864779331">Използвайте Touch ID, за да потвърждавате картите по-бързо</translation> <translation id="8576310925653847813">Системи за домашно кино</translation> <translation id="8577348305244205642">Няма достъп до виртуалната карта</translation> <translation id="858637041960032120">+ тел. номер</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">Освен това тази страница включва други ресурси, които не са защитени. Докато се предават, те могат да бъдат видени от други хора и да бъдат модифицирани от извършител на атака, така че да се промени поведението на страницата.</translation> <translation id="9040464167025094690">Бутон „Намиране на устройството ми“. Натиснете Enter, за да преминете към „Намиране на устройството ми“ в профила ви Google</translation> <translation id="9042617223719777575">Тава с голяма вместимост</translation> -<translation id="9044359186343685026">Използване на Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Опитахте да отворите <ph name="DOMAIN" />, но сървърът предостави невалиден сертификат.</translation> <translation id="9050666287014529139">Парола</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 8d9abaaa..0488712 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -380,7 +380,6 @@ <translation id="1908217026282415406">ক্যামেরা ব্যবহার এবং গতিবিধি</translation> <translation id="191374271204266022">JSON ফর্ম্যাটে কপি করুন</translation> <translation id="1914326953223720820">পরিষেবা আনজিপ করুন</translation> -<translation id="1915697529809968049">সিভিসি কোডের পরিবর্তে টাচ আইডি ব্যবহার করবেন?</translation> <translation id="1916770123977586577">আপডেট করা সেটিংস এই সাইটে প্রয়োগ করতে পৃষ্ঠাটি আবার লোড করুন</translation> <translation id="1919345977826869612">বিজ্ঞাপন</translation> <translation id="1919367280705858090">কোনও নির্দিষ্ট এরর মেসেজের বিষয়ে সাহায্য পান</translation> @@ -1125,7 +1124,6 @@ <translation id="4072486802667267160">আপনার অর্ডার প্রক্রিয়া করার সময় একটি সমস্যা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।</translation> <translation id="4073797364926776829">কার্ড দেখুন</translation> <translation id="4075732493274867456">ক্লায়েন্ট ও সার্ভারটি কোনো অভিন্ন SSL প্রোটোকল সংস্করণ বা সাইফার স্যুট সমর্থন করে না।</translation> -<translation id="4075941231477579656">টাচ আইডি</translation> <translation id="4079302484614802869">প্রক্সি কনফিগারেশনটি .pac স্ক্রিপ্ট URL-এ ব্যবহার করাতে সেট থাকে স্থির প্রক্সি সার্ভারগুলিতে নয়৷</translation> <translation id="4082393374666368382">সেটিংস - ম্যানেজমেন্ট</translation> <translation id="4087296516249690906">'ইভেন্ট তৈরি করুন' বোতাম, Google Calendar-এ চটপট নতুন ইভেন্ট তৈরি করতে Enter প্রেস করুন</translation> @@ -1297,7 +1295,6 @@ <translation id="4506176782989081258">যাচাইকরণের ত্রুটি: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">সিস্টেম প্রশাসকের সাথে যোগাযোগ করে দেখুন</translation> <translation id="450710068430902550">প্রশাসকের সাথে ভাগ করছে</translation> -<translation id="4508814173490746936">টাচ আইডি ব্যবহার করা যায়নি</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate ব্যবহার করে এই পৃষ্ঠা অনুবাদ করতে, প্রথমে Tab আর তারপরে Enter প্রেস করুন</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">অ্যাক্টিভিটির সিরিজ বন্ধ করুন</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Enter the expiration date and CVC for <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">আপনার পাসওয়ার্ড পরিবর্তন করে Google অ্যাকাউন্ট সুরক্ষিত রাখতে Chromium সাহায্য করতে পারবে।</translation> -<translation id="6423385022588644828">এখন থেকে টাচ আইডি ব্যবহার করে আপনার কার্ড আরও দ্রুত কনফার্ম করুন</translation> <translation id="6425092077175753609">মেটারিয়াল</translation> <translation id="6427730057873428458">গেট ফোল্ড</translation> <translation id="6428450836711225518">আপনার ফোন নম্বর যাচাই করুন</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> এ একটি ব্যক্তিগত সংযোগ স্থাপন করা যায়নি কারণ আপনার ডিভাইসের তারিখ এবং সময় (<ph name="DATE_AND_TIME" />) সঠিক নয়৷</translation> <translation id="8564182942834072828">আলাদা ডকুমেন্ট/সংগ্রহ না করা কপি</translation> <translation id="8564985650692024650">Chromium-এর নীতি অনুযায়ী আপনার <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> পাসওয়ার্ড বদলে ফেলা উচিত যদি আপনি সেটি অন্য কোনও সাইটে ব্যবহার করে থাকেন।</translation> -<translation id="8574899947864779331">কার্ড আরও দ্রুত কনফার্ম করতে টাচ আইডি ব্যবহার করুন</translation> <translation id="8576310925653847813">হোম থিয়েটার সিস্টেম</translation> <translation id="8577348305244205642">ভার্চুয়াল কার্ড উপলভ্য নেই</translation> <translation id="858637041960032120">ফোননম্বর জুড়ুন</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">উপরন্তু, এই পৃষ্ঠাতে অন্যান্য সংস্থান অন্তর্ভুক্ত রয়েছে যা নিরাপদ নয়৷ এই সংস্থানগুলি ট্রানজিটের সময় অন্যরা দেখতে পাবে এবং পৃষ্ঠাটির আচরণ পরিবর্তন করার জন্য কোনো আক্রমণকারী এর পরিবর্তন করতে পারেন৷</translation> <translation id="9040464167025094690">'Find My Device' বোতাম, Google অ্যাকাউন্টে 'Find My Device'-এ যেতে Enter প্রেস করুন</translation> <translation id="9042617223719777575">অধিক ক্ষমতা সম্পন্ন</translation> -<translation id="9044359186343685026">টাচ আইডি ব্যবহার করুন</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">আপনি <ph name="DOMAIN" />-এ পৌছানোর প্রয়াস করছেন, কিন্তু সার্ভার একটি ভুল সার্টিফিকেট উপস্থাপন করেছে|</translation> <translation id="9050666287014529139">পাসফ্রেজ</translation>
diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb index 3438716..474f987 100644 --- a/components/strings/components_strings_bs.xtb +++ b/components/strings/components_strings_bs.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Korištenje kamere i pomjeranje</translation> <translation id="191374271204266022">Kopiraj kao JSON fajl</translation> <translation id="1914326953223720820">Usluga za otvaranje zip fajlova</translation> -<translation id="1915697529809968049">Koristiti Touch ID umjesto CVC-a?</translation> <translation id="1916770123977586577">Da primijenite ažurirane postavke na ovoj web lokaciji, ponovo učitajte stranicu.</translation> <translation id="1919345977826869612">Oglasi</translation> <translation id="1919367280705858090">Potražite pomoć za određene poruke o greškama</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Došlo je do greške prilikom obrade vaše narudžbe. Pokušajte ponovo.</translation> <translation id="4073797364926776829">Prikaži karticu</translation> <translation id="4075732493274867456">Klijent i server ne podržavaju verziju zajedničkog SSL protokola ili paket za šifriranje.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfiguracija proxy poslužitelja postavljena je za upotrebu URL-a .pac skripte, a ne fiksnih proxy poslužitelja.</translation> <translation id="4082393374666368382">Postavke – Upravljanje</translation> <translation id="4087296516249690906">Dugme Kreiraj događaj, pritisnite Enter da brzo kreirate novi događaj u Google Kalendaru</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Greška pri provjeri valjanosti: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontaktirati administratora sistema</translation> <translation id="450710068430902550">Dijeljenje s administratorom</translation> -<translation id="4508814173490746936">Korištenje identifikacije dodirom nije uspjelo</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pritisnite Tab, a zatim Enter da prevedete ovu stranicu pomoću Google Prevodioca</translation> <translation id="4510487217173779431">Chou4 (koverta)</translation> <translation id="4514308731478712184">Isključi iskustva pregledanja</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (koverta)</translation> <translation id="6410264514553301377">Unesite datum isteka i CVC za karticu <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium vam može pomoći da zaštitite svoj Google račun i promijenite lozinku.</translation> -<translation id="6423385022588644828">Od sada brže potvrđujte kartice korištenjem funkcije Touch ID</translation> <translation id="6425092077175753609">Materijal</translation> <translation id="6427730057873428458">Presavijanje</translation> <translation id="6428450836711225518">Potvrdite broj telefona</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Nije moguće uspostaviti privatnu vezu s domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> jer datum i vrijeme (<ph name="DATE_AND_TIME" />) na vašem uređaju nisu tačni.</translation> <translation id="8564182942834072828">Zasebni dokumenti/nerazvrstane kopije</translation> <translation id="8564985650692024650">Chromium preporučuje da poništite lozinku za <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ako ste je ponovo koristili na drugim web lokacijama.</translation> -<translation id="8574899947864779331">Koristite Touch ID da brže potvrdite kartice</translation> <translation id="8576310925653847813">Sistemi kućnih kina</translation> <translation id="8577348305244205642">Virtuelna kartica nije dostupna</translation> <translation id="858637041960032120">Dodajte broj telefona</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Dalje, ova stranica obuhvata druge resurse koji nisu sigurni. Te resurse mogu vidjeti drugi dok su u tranzitu, a može ih izmijeniti napadač kako bi promijenio ponašanje stranice.</translation> <translation id="9040464167025094690">Dugme Pronađi moj uređaj, pritisnite Enter da otvorite uslugu Pronađi moj uređaj na Google računu</translation> <translation id="9042617223719777575">Veliki kapacitet</translation> -<translation id="9044359186343685026">Koristi Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Pokušali ste pristupiti domeni <ph name="DOMAIN" />, ali je server prikazao nevažeću potvrdu.</translation> <translation id="9050666287014529139">Zaporka</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index 6413c12..af15f269 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Ús i moviment de la càmera</translation> <translation id="191374271204266022">Copia com a JSON</translation> <translation id="1914326953223720820">Descomprimeix el servei</translation> -<translation id="1915697529809968049">Vols utilitzar Touch ID en lloc del CVC?</translation> <translation id="1916770123977586577">Per aplicar la configuració actualitzada a aquest lloc web, torna a carregar la pàgina</translation> <translation id="1919345977826869612">Anuncis</translation> <translation id="1919367280705858090">Obtenir ajuda amb un missatge d'error específic</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">S’ha produït un error en processar la comanda. Torna-ho a provar.</translation> <translation id="4073797364926776829">Mostra la targeta</translation> <translation id="4075732493274867456">El client i el servidor no admeten cap versió de protocol SSL ni cap sistema de xifratge comuns.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">La configuració del servidor intermediari s'ha definit perquè utilitzi un URL de script .pac, en lloc de servidors intermedis fixos.</translation> <translation id="4082393374666368382">Configuració - Gestió</translation> <translation id="4087296516249690906">Botó Crea un esdeveniment: prem Retorn per crear un esdeveniment ràpidament a Google Calendar</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Error de validació: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Contacteu amb l'administrador del sistema</translation> <translation id="450710068430902550">Comparteix informació amb l'administrador</translation> -<translation id="4508814173490746936">No s'ha pogut fer servir Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />; prem Tab i després Retorn per traduir aquesta pàgina amb el Traductor de Google</translation> <translation id="4510487217173779431">Chou4 (sobre)</translation> <translation id="4514308731478712184">Desactiva els recorreguts</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (sobre)</translation> <translation id="6410264514553301377">Introdueix la data de caducitat i el CVC de la targeta <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium et pot ajudar a protegir el Compte de Google i a canviar la contrasenya.</translation> -<translation id="6423385022588644828">A partir d'ara, confirma les targetes més ràpidament amb Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Plegat en finestra</translation> <translation id="6428450836711225518">Verifica el número de telèfon</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">No es pot establir una connexió privada amb <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perquè la data i l'hora (<ph name="DATE_AND_TIME" />) del dispositiu són incorrectes.</translation> <translation id="8564182942834072828">Documents independents / Còpies sense recopilar</translation> <translation id="8564985650692024650">Chromium et recomana que restableixis la contrasenya per a <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si l'has fet servir en altres llocs web.</translation> -<translation id="8574899947864779331">Fes servir Touch ID per confirmar les targetes més ràpidament</translation> <translation id="8576310925653847813">Sistemes de cinema domèstic</translation> <translation id="8577348305244205642">La targeta virtual no està disponible</translation> <translation id="858637041960032120">Afegeix un número de telèfon</translation> @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">A més, aquesta pàgina conté altres recursos que no són segurs. La resta d'usuaris poden visualitzar-los mentre estan en trànsit, i algun atacant podria modificar-los per canviar el comportament de la pàgina.</translation> <translation id="9040464167025094690">Botó Troba el meu dispositiu: prem Retorn per anar a Troba el meu dispositiu al Compte de Google</translation> <translation id="9042617223719777575">Gran capacitat</translation> -<translation id="9044359186343685026">Utilitza Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" />, <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Heu provat d'accedir a <ph name="DOMAIN" />, però el servidor ha presentat un certificat no vàlid.</translation> <translation id="9050666287014529139">Frase de contrasenya</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 727a524f..e292423 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Používání a natáčení kamery</translation> <translation id="191374271204266022">Kopírovat jako JSON</translation> <translation id="1914326953223720820">Služba rozbalování souborů ZIP</translation> -<translation id="1915697529809968049">Použít Touch ID namísto CVC?</translation> <translation id="1916770123977586577">Chcete-li pro tento web použít aktualizovaná nastavení, načtěte tuto stránku znovu</translation> <translation id="1919345977826869612">Reklamy</translation> <translation id="1919367280705858090">Nápověda ke konkrétní chybové zprávě</translation> @@ -1120,7 +1119,6 @@ <translation id="4072486802667267160">Při zpracování objednávky došlo k chybě. Zkuste to prosím znovu.</translation> <translation id="4073797364926776829">Zobrazit kartu</translation> <translation id="4075732493274867456">Klient a server nepodporují společnou verzi protokolu SSL nebo šifrovací sadu.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy je nastaveno na používání adresy URL skriptu PAC, nikoliv pevně daných serverů proxy.</translation> <translation id="4082393374666368382">Nastavení – správa</translation> <translation id="4087296516249690906">Tlačítko Vytvořit událost, stisknutím klávesy Enter rychle vytvoříte novou událost v Kalendáři Google</translation> @@ -1292,7 +1290,6 @@ <translation id="4506176782989081258">Chyba ověřování: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Kontaktovat administrátora systému</translation> <translation id="450710068430902550">Sdílení s administrátorem</translation> -<translation id="4508814173490746936">Touch ID nebylo možné použít</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, stisknutím klávesy Tab a poté Enter přeložíte tuto stránku pomocí Překladače Google</translation> <translation id="4510487217173779431">Chou4 (obálka)</translation> <translation id="4514308731478712184">Vypnout cesty</translation> @@ -1965,7 +1962,6 @@ <translation id="6406765186087300643">C0 (obálka)</translation> <translation id="6410264514553301377">Zadejte datum vypršení platnosti a kód CVC karty <ph name="CREDIT_CARD" />.</translation> <translation id="6415778972515849510">Chromium vám může pomoci ochránit váš účet Google a změnit heslo.</translation> -<translation id="6423385022588644828">Od teď karty potvrzujte rychleji pomocí technologie Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Otevírací přeložení</translation> <translation id="6428450836711225518">Ověření telefonního čísla</translation> @@ -2733,7 +2729,6 @@ <translation id="8559762987265718583">Soukromé připojení k doméně <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nelze navázat, protože máte v zařízení nastaveno chybné datum a čas (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Oddělené dokumenty / nekompletované kopie</translation> <translation id="8564985650692024650">Pokud jste heslo organizace <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili na jiném webu, doporučujeme vám ho resetovat.</translation> -<translation id="8574899947864779331">Potvrzovat karty rychleji pomocí technologie Touch ID</translation> <translation id="8576310925653847813">Systémy pro domácí kino</translation> <translation id="8577348305244205642">Virtuální karta není k dispozici</translation> <translation id="858637041960032120">Přidat telefon @@ -2890,7 +2885,6 @@ <translation id="9039213469156557790">Tato stránka obsahuje ještě další nezabezpečené zdroje. Tyto zdroje budou během přenosu moci zobrazit jiní uživatelé a případní útočníci je mohou upravit a změnit tak chování stránky.</translation> <translation id="9040464167025094690">Tlačítko funkce Najdi moje zařízení. Stisknutím klávesy Enter přejdete na funkci Najdi moje zařízení v účtu Google</translation> <translation id="9042617223719777575">Velká kapacita</translation> -<translation id="9044359186343685026">Použít Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Pokusili jste se přejít do domény <ph name="DOMAIN" />, ale server předložil certifikát, jehož platnost vypršela.</translation> <translation id="9050666287014529139">Heslová fráze</translation>
diff --git a/components/strings/components_strings_cy.xtb b/components/strings/components_strings_cy.xtb index d23c590..daf6c815 100644 --- a/components/strings/components_strings_cy.xtb +++ b/components/strings/components_strings_cy.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Symudiad a defnydd camera</translation> <translation id="191374271204266022">Copïo fel JSON</translation> <translation id="1914326953223720820">Gwasanaeth Dadsipio</translation> -<translation id="1915697529809968049">Defnyddio Touch ID yn lle CVC?</translation> <translation id="1916770123977586577">I gymhwyso'ch gosodiadau sydd wedi'u diweddaru i'r wefan hon, ail-lwythwch y dudalen hon</translation> <translation id="1919345977826869612">Hysbysebion</translation> <translation id="1919367280705858090">Cael help gyda neges wall benodol</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Bu gwall wrth brosesu eich archeb. Rhowch gynnig arall arni.</translation> <translation id="4073797364926776829">Gweld y cerdyn</translation> <translation id="4075732493274867456">Nid yw'r cleient na'r gweinydd yn cefnogi fersiwn protocol SSL cyffredin na chyfres seiffr.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Mae'r ffurfweddiad dirprwy weinyddion wedi'i osod i ddefnyddio URL sgript .pac, nid dirprwy weinyddion sefydlog.</translation> <translation id="4082393374666368382">Gosodiadau - Rheoli</translation> <translation id="4087296516249690906">Botwm creu digwyddiad, pwyswch Enter i greu digwyddiad newydd yn Google Calendar yn gyflym</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Gwall dilysu: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Cysylltu â gweinyddwr y system</translation> <translation id="450710068430902550">Rhannu â'r Gweinyddwr</translation> -<translation id="4508814173490746936">Methu â defnyddio Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pwyswch Tab ac Enter i gyfieithu'r dudalen hon gyda Google Translate</translation> <translation id="4510487217173779431">Chou4 (Amlen)</translation> <translation id="4514308731478712184">Diffodd Teithiau</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Amlen)</translation> <translation id="6410264514553301377">Rhowch y dyddiad darfod a'r CVC ar gyfer <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Gall Chromium eich helpu i amddiffyn eich Cyfrif Google ac i newid eich cyfrinair.</translation> -<translation id="6423385022588644828">Cadarnhewch eich cardiau'n gynt gan ddefnyddio Touch ID o hyn ymlaen</translation> <translation id="6425092077175753609">Deunydd</translation> <translation id="6427730057873428458">Plyg giât</translation> <translation id="6428450836711225518">Dilysu'ch rhif ffôn</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Ni ellir sefydlu cysylltiad preifat â <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> oherwydd bod dyddiad ac amser eich dyfais (<ph name="DATE_AND_TIME" />) yn anghywir.</translation> <translation id="8564182942834072828">Dogfennau ar wahân/Copïau heb eu coladu</translation> <translation id="8564985650692024650">Mae Chromium yn argymell ailosod eich cyfrinair ar gyfer <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> os gwnaethoch ei ailddefnyddio ar wefannau eraill.</translation> -<translation id="8574899947864779331">Defnyddiwch Touch ID i gadarnhau cardiau yn gynt</translation> <translation id="8576310925653847813">Systemau theatr cartref</translation> <translation id="8577348305244205642">Nid yw'r cerdyn rhithwir ar gael</translation> <translation id="858637041960032120">Ychwanegu rhif ffôn</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Ymhellach, mae'r dudalen hon yn cynnwys adnoddau eraill nad ydynt yn ddiogel. Gall eraill weld yr adnoddau hyn wrth iddynt gael eu trosglwyddo, a gall ymosodwr eu haddasu i newid ymddygiad y dudalen.</translation> <translation id="9040464167025094690">Botwm Find my device, pwyswch Enter i ymweld â Find my device yn eich Cyfrif Google</translation> <translation id="9042617223719777575">Capasiti Mawr</translation> -<translation id="9044359186343685026">Defnyddio Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Gwnaethoch geisio cyrraedd <ph name="DOMAIN" />, ond cyflwynodd y gweinydd dystysgrif annilys.</translation> <translation id="9050666287014529139">Cyfrinymadrodd</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 9a769ba..c38d47d 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamerabrug og -bevægelse</translation> <translation id="191374271204266022">Kopiér som JSON</translation> <translation id="1914326953223720820">Udpakningstjeneste</translation> -<translation id="1915697529809968049">Vil du bruge Touch ID i stedet for kontrolkoden?</translation> <translation id="1916770123977586577">Genindlæs denne side for at anvende dine opdaterede indstillinger på dette website</translation> <translation id="1919345977826869612">Annoncer</translation> <translation id="1919367280705858090">Få hjælp til en specifik fejlmeddelelse</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Der opstod en fejl under behandlingen af din ordre. Prøv igen.</translation> <translation id="4073797364926776829">Vis kort</translation> <translation id="4075732493274867456">Klienten og serveren understøtter ikke en fælles SSL-protokolversion eller et fælles krypteringsprogram.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxykonfiguration er angivet til at anvende en webadresse for .pac-script, ikke faste proxyservere.</translation> <translation id="4082393374666368382">Indstillinger – administration</translation> <translation id="4087296516249690906">Knappen Opret begivenhed, tryk på Enter for hurtigt at oprette en ny begivenhed i Google Kalender</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Valideringsfejl: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontakte systemadministratoren</translation> <translation id="450710068430902550">Deling med administrator</translation> -<translation id="4508814173490746936">Touch ID kunne ikke anvendes</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – tryk på Tab-tasten efterfulgt af Enter for at oversætte denne side med Google Oversæt</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Deaktiver Søgninger</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Angiv udløbsdatoen og kontrolkoden for <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium kan hjælpe dig med at beskytte din Google-konto og ændre din adgangskode.</translation> -<translation id="6423385022588644828">Bekræft dine kort hurtigere ved hjælp af Touch ID fra nu af</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Portfals</translation> <translation id="6428450836711225518">Bekræft dit telefonnummer</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Der kan ikke oprettes en privat forbindelse til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, da tid og dato (<ph name="DATE_AND_TIME" />) på din enhed er forkerte.</translation> <translation id="8564182942834072828">Individuelle dokumenter/ikke-samlede kopier</translation> <translation id="8564985650692024650">Chromium anbefaler, at du nulstiller din adgangskode til <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, hvis du har brugt den på andre websites.</translation> -<translation id="8574899947864779331">Brug Touch ID for at bekræfte dine kort hurtigere</translation> <translation id="8576310925653847813">Hjemmebiografsystemer</translation> <translation id="8577348305244205642">Virtuelt kort er ikke tilgængeligt</translation> <translation id="858637041960032120">Tilføj tlf.nr. @@ -2896,7 +2891,6 @@ <translation id="9039213469156557790">Desuden indeholder denne side andre ressourcer, som ikke er sikre. Disse ressourcer kan ses af andre under overførslen og kan ændres af en hacker, så siden opfører sig anderledes.</translation> <translation id="9040464167025094690">Knappen Find min enhed – tryk på Enter for at gå til Find min enhed på din Google-konto</translation> <translation id="9042617223719777575">Stor kapacitet</translation> -<translation id="9044359186343685026">Brug Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Du har forsøgt at nå <ph name="DOMAIN" />, men serveren præsenterede et ugyldigt certifikat.</translation> <translation id="9050666287014529139">Adgangssætning</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index 1ab4b472..31ca9e6 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamera verwenden und bewegen</translation> <translation id="191374271204266022">Als JSON kopieren</translation> <translation id="1914326953223720820">Dienst entpacken</translation> -<translation id="1915697529809968049">Touch ID anstelle des CVCs verwenden?</translation> <translation id="1916770123977586577">Lade diese Seite neu, um die aktualisierten Einstellungen für diese Website zu übernehmen</translation> <translation id="1919345977826869612">Werbung</translation> <translation id="1919367280705858090">Hilfe bei bestimmten Fehlermeldungen</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniaturansichten</translation> <translation id="3227137524299004712">Mikrofon</translation> <translation id="3229041911291329567">Versionsinformationen zu deinem Gerät und Browser</translation> +<translation id="3229277193950731405">Versionsstring kopieren</translation> <translation id="323107829343500871">CVC für <ph name="CREDIT_CARD" /> eingeben</translation> <translation id="3234666976984236645">Wichtige Inhalte auf dieser Website immer erkennen</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" /> – drücke die Tabulatortaste und dann die Eingabetaste, um das Erscheinungsbild deines Browsers anzupassen</translation> @@ -897,7 +897,7 @@ <translation id="3395827396354264108">Abholoption</translation> <translation id="3399952811970034796">Lieferadresse</translation> <translation id="3402261774528610252">Diese Website wurde unter Verwendung von TLS 1.0 oder TLS 1.1 geladen. Diese Versionen wurden eingestellt und werden zukünftig deaktiviert. Sobald sie deaktiviert wurden, können Nutzer diese Website nicht mehr aufrufen. Auf dem Server sollte TLS 1.2 oder höher laufen.</translation> -<translation id="3405664148539009465">Schriftart anpassen</translation> +<translation id="3405664148539009465">Schriftarten anpassen</translation> <translation id="3407789382767355356">Drittanbieter-Anmeldung</translation> <translation id="3409896703495473338">Sicherheitseinstellungen verwalten</translation> <translation id="3414952576877147120">Größe:</translation> @@ -1121,7 +1121,6 @@ <translation id="4072486802667267160">Bei der Verarbeitung deiner Bestellung ist ein Fehler aufgetreten. Bitte versuche es noch einmal.</translation> <translation id="4073797364926776829">Karte ansehen</translation> <translation id="4075732493274867456">Client und Server unterstützen keine gemeinsame SSL-Protokollversion oder Verschlüsselungssammlung.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Die Proxy-Konfiguration ist auf die Verwendung einer PAC-Skript-URL und nicht die von festen Proxyservern eingestellt.</translation> <translation id="4082393374666368382">Einstellungen – Verwaltung</translation> <translation id="4087296516249690906">Termin erstellen – drücke die Eingabetaste, um schnell einen neuen Termin in Google Kalender zu erstellen</translation> @@ -1293,7 +1292,6 @@ <translation id="4506176782989081258">Fehler bei der Überprüfung: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontakt mit dem Systemadministrator aufnehmen</translation> <translation id="450710068430902550">Datenfreigabe an Administrator</translation> -<translation id="4508814173490746936">Touch ID konnte nicht verwendet werden</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – drücke die Tabulatortaste und dann die Eingabetaste, um diese Seite mit Google Übersetzer übersetzen zu lassen</translation> <translation id="4510487217173779431">Chou4 (Umschlag)</translation> <translation id="4514308731478712184">„Recherchen“ deaktivieren</translation> @@ -1822,7 +1820,7 @@ <translation id="598637245381783098">Fehler beim Öffnen der Zahlungs-App</translation> <translation id="5989320800837274978">Weder feste Proxyserver noch eine PAC-Skript-URL sind festgelegt.</translation> <translation id="5992691462791905444">Technische Z-Faltung</translation> -<translation id="5995727681868049093">Daten, Datenschutz- und Sicherheitseinstellungen in deinem Google-Konto verwalten</translation> +<translation id="5995727681868049093">Daten, Datenschutz- und Sicherheitseinstellungen in deinem Google-Konto verwalten</translation> <translation id="5997247540087773573">Das eingegebene Passwort wurde in einer Datenpanne gefunden. Zum besseren Schutz deiner Konten empfiehlt der Google Passwortmanager, das Passwort jetzt zu ändern und deine gespeicherten Passwörter zu prüfen.</translation> <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> Ergebnisse für "<ph name="SEARCH_TEXT" />"</translation> <translation id="6006484371116297560">Klassisch</translation> @@ -1967,7 +1965,6 @@ <translation id="6406765186087300643">C0 (Umschlag)</translation> <translation id="6410264514553301377">Ablaufdatum und CVC für <ph name="CREDIT_CARD" /> eingeben</translation> <translation id="6415778972515849510">Mithilfe von Chromium kannst du dein Google-Konto schützen und dein Passwort ändern.</translation> -<translation id="6423385022588644828">Karten mithilfe von Touch ID ab sofort schneller bestätigen</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Fensterfaltung</translation> <translation id="6428450836711225518">Telefonnummer bestätigen</translation> @@ -2736,7 +2733,6 @@ <translation id="8559762987265718583">Es kann keine private Verbindung zu <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hergestellt werden, weil Datum und Uhrzeit deines Geräts falsch sind (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Getrennte Dokumente/nicht sortierte Kopien</translation> <translation id="8564985650692024650">Chromium empfiehlt, dein Passwort für <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> zurückzusetzen, wenn du es auf anderen Websites verwendet hast.</translation> -<translation id="8574899947864779331">Touch ID verwenden, um Karten schneller zu bestätigen</translation> <translation id="8576310925653847813">Heimkinosysteme</translation> <translation id="8577348305244205642">Virtuelle Karte nicht verfügbar</translation> <translation id="858637041960032120">Weitere Nummer @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">Außerdem enthält diese Seite andere, nicht sichere Ressourcen. Diese Ressourcen können während der Übertragung von anderen Nutzern angezeigt und von Angreifern bearbeitet werden, die das Verhalten der Seite verändern.</translation> <translation id="9040464167025094690">Schaltfläche „Mein Gerät finden“ – drücke die Eingabetaste, um „Mein Gerät finden“ im Google-Konto aufzurufen</translation> <translation id="9042617223719777575">Hohe Kapazität</translation> -<translation id="9044359186343685026">Touch ID verwenden</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Du hast versucht, auf <ph name="DOMAIN" /> zuzugreifen, der Server hat sich jedoch mit einem ungültigen Zertifikat ausgewiesen.</translation> <translation id="9050666287014529139">Passphrase</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index bafb51f..531505b 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Χρήση και μετακίνηση κάμερας</translation> <translation id="191374271204266022">Αντιγραφή ως JSON</translation> <translation id="1914326953223720820">Υπηρεσία αποσυμπίεσης</translation> -<translation id="1915697529809968049">Χρήση Touch ID αντί του CVC;</translation> <translation id="1916770123977586577">Προκειμένου να εφαρμοστούν οι ενημερωμένες ρυθμίσεις σας σε αυτόν τον ιστότοπο, επαναλάβετε τη φόρτωση αυτής της σελίδες</translation> <translation id="1919345977826869612">Διαφημίσεις</translation> <translation id="1919367280705858090">Λήψη βοήθειας για συγκεκριμένο μήνυμα σφάλματος</translation> @@ -1125,7 +1124,6 @@ <translation id="4072486802667267160">Προέκυψε σφάλμα κατά την επεξεργασία της παραγγελίας σας. Δοκιμάστε ξανά.</translation> <translation id="4073797364926776829">Προβολή κάρτας</translation> <translation id="4075732493274867456">Η εφαρμογή πελάτης και ο διακομιστής δεν υποστηρίζουν κάποια κοινή έκδοση πρωτοκόλλου SSL ή σουίτα κρυπτογράφησης.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Η διαμόρφωση του διακομιστή μεσολάβησης είναι ορισμένη να χρησιμοποιεί μια διεύθυνση URL σεναρίου .pac και όχι σταθερούς διακομιστές μεσολάβησης.</translation> <translation id="4082393374666368382">Ρυθμίσεις - Διαχείριση</translation> <translation id="4087296516249690906">Κουμπί Δημιουργία συμβάντος, πατήστε το πλήκτρο Enter για να δημιουργήσετε γρήγορα ένα νέο συμβάν στο Ημερολόγιο Google</translation> @@ -1298,7 +1296,6 @@ <translation id="4506176782989081258">Σφάλμα επικύρωσης: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Επικοινωνήστε με το διαχειριστή συστήματος</translation> <translation id="450710068430902550">Κοινοποίηση στο διαχειριστή</translation> -<translation id="4508814173490746936">Δεν ήταν δυνατή η χρήση του Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, πατήστε Tab και έπειτα Enter για μετάφραση αυτής της σελίδας με τη Μετάφραση Google.</translation> <translation id="4510487217173779431">Chou4 (Φάκελος)</translation> <translation id="4514308731478712184">Απενεργοποίηση διαδρομών</translation> @@ -1974,7 +1971,6 @@ <translation id="6406765186087300643">C0 (Φάκελος)</translation> <translation id="6410264514553301377">Εισαγάγετε την ημερομηνία λήξης και τον κωδικό CVC για την κάρτα <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Το Chromium μπορεί να σας βοηθήσει να προστατεύσετε τον Λογαριασμό σας Google και να αλλάξετε τον κωδικό πρόσβασής σας.</translation> -<translation id="6423385022588644828">Επιβεβαιώστε πιο γρήγορα τις κάρτες σας, χρησιμοποιώντας το Touch ID από εδώ και στο εξής</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Δίπλωση παράθυρο</translation> <translation id="6428450836711225518">Επαλήθευση του αριθμού τηλεφώνου σας</translation> @@ -2744,7 +2740,6 @@ <translation id="8559762987265718583">Δεν είναι δυνατή η επίτευξη ιδιωτικής σύνδεσης με τον τομέα <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> επειδή η ημερομηνία και η ώρα (<ph name="DATE_AND_TIME" />) της συσκευής σας είναι λανθασμένες.</translation> <translation id="8564182942834072828">Ξεχωριστά έγγραφα/Αντίγραφα χωρίς συρραφή</translation> <translation id="8564985650692024650">Το Chromium συνιστά την επαναφορά του κωδικού πρόσβασης <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, εάν τον έχετε χρησιμοποιήσει και σε άλλους ιστοτόπους.</translation> -<translation id="8574899947864779331">Χρησιμοποιήστε το Touch ID για πιο γρήγορη επιβεβαίωση καρτών</translation> <translation id="8576310925653847813">Συστήματα οικιακού κινηματογράφου</translation> <translation id="8577348305244205642">Η εικονική κάρτα δεν είναι διαθέσιμη</translation> <translation id="858637041960032120">Προσθ. τηλεφ. @@ -2902,7 +2897,6 @@ <translation id="9039213469156557790">Επίσης, αυτή η σελίδα περιέχει άλλους πόρους, οι οποίοι δεν είναι ασφαλείς. Αυτοί οι πόροι μπορούν να προβληθούν από άλλους χρήστες κατά τη μετάβαση και μπορούν να τροποποιηθούν από έναν εισβολέα ώστε να αλλάξει η συμπεριφορά της σελίδας.</translation> <translation id="9040464167025094690">Κουμπί Εύρεση συσκευής, πατήστε Enter για να μεταβείτε στην εύρεση της συσκευής σας στον Λογαριασμό Google.</translation> <translation id="9042617223719777575">Μεγάλη χωρητικότητα</translation> -<translation id="9044359186343685026">Χρήση Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Επιχειρήσατε να μεταβείτε στον <ph name="DOMAIN" /> , αλλά ο διακομιστής παρουσίασε ένα μη έγκυρο πιστοποιητικό.</translation> <translation id="9050666287014529139">Φράση πρόσβασής σας</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index 7e797eb..95f9a03 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Camera use and movement</translation> <translation id="191374271204266022">Copy as JSON</translation> <translation id="1914326953223720820">Unzip Service</translation> -<translation id="1915697529809968049">Use Touch ID instead of CVC?</translation> <translation id="1916770123977586577">To apply your updated settings to this site, reload this page</translation> <translation id="1919345977826869612">Ads</translation> <translation id="1919367280705858090">Get help with a specific error message</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">There was an error processing your order. Please try again.</translation> <translation id="4073797364926776829">View card</translation> <translation id="4075732493274867456">The client and server don't support a common SSL protocol version or cipher suite.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy configuration is set to use a .pac script URL, not fixed proxy servers.</translation> <translation id="4082393374666368382">Settings – Management</translation> <translation id="4087296516249690906">Create event button: press Enter to create a new event in Google Calendar quickly</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Validation error: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Contacting the system admin</translation> <translation id="450710068430902550">Sharing with Administrator</translation> -<translation id="4508814173490746936">Couldn't use Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, press tab, then enter to translate this page with Google Translate</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Turn off Journeys</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Enter the expiry date and CVC for <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium can help you protect your Google account and change your password.</translation> -<translation id="6423385022588644828">Confirm your cards faster by using Touch ID from now on</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Gate fold</translation> <translation id="6428450836711225518">Verifying your phone number</translation> @@ -2245,7 +2241,7 @@ <translation id="7219179957768738017">The connection uses <ph name="SSL_VERSION" />.</translation> <translation id="7220786058474068424">Processing</translation> <translation id="7221855153210829124">Show notifications</translation> -<translation id="722454870747268814">New Incognito Tab</translation> +<translation id="722454870747268814">New incognito tab</translation> <translation id="7233592378249864828">Print confirmation sheet</translation> <translation id="7234638337680728591">Gas prices and vehicle fueling</translation> <translation id="7237492777898608035">Don't show this message again for this site</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">A private connection to <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> can't be established because your device's date and time (<ph name="DATE_AND_TIME" />) are incorrect.</translation> <translation id="8564182942834072828">Separate documents/Uncollated copies</translation> <translation id="8564985650692024650">Chromium recommends resetting your <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> password if you reused it on other sites.</translation> -<translation id="8574899947864779331">Use Touch ID to confirm cards faster</translation> <translation id="8576310925653847813">Home theater systems</translation> <translation id="8577348305244205642">Virtual card not available</translation> <translation id="858637041960032120">Add phone no.</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Furthermore, this page includes other resources which are not secure. These resources can be viewed by others while in transit, and can be modified by an attacker to change the behaviour of the page.</translation> <translation id="9040464167025094690">Find my device button, press Enter to visit find your device in the Google Account</translation> <translation id="9042617223719777575">Large capacity</translation> -<translation id="9044359186343685026">Use Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">You attempted to reach <ph name="DOMAIN" />, but the server presented an invalid certificate.</translation> <translation id="9050666287014529139">Passphrase</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index 8cb882e1..a502efb 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uso y movimiento de la cámara</translation> <translation id="191374271204266022">Copiar como JSON</translation> <translation id="1914326953223720820">Servicio de descompresión</translation> -<translation id="1915697529809968049">¿Deseas usar Touch ID en lugar de CVC?</translation> <translation id="1916770123977586577">Para aplicar la configuración actualizada en este sitio, vuelve a cargar la página</translation> <translation id="1919345977826869612">Anuncios</translation> <translation id="1919367280705858090">Cómo obtener ayuda con un mensaje de error específico</translation> @@ -832,6 +831,7 @@ <translation id="3226387218769101247">Miniaturas</translation> <translation id="3227137524299004712">Micrófono</translation> <translation id="3229041911291329567">Información de versión sobre tu dispositivo y navegador</translation> +<translation id="3229277193950731405">Copiar string de la versión</translation> <translation id="323107829343500871">Ingresar el CVC de la tarjeta <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Siempre detectar contenido importante en este sitio</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, presiona Tab y, luego, Intro para personalizar el estilo del navegador</translation> @@ -1124,7 +1124,6 @@ <translation id="4072486802667267160">Se produjo un error al procesar tu pedido. Vuelve a intentarlo.</translation> <translation id="4073797364926776829">Ver tarjeta</translation> <translation id="4075732493274867456">El cliente y el servidor no admiten un conjunto de cifrado o una versión de protocolo SSL en común.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">El proxy está configurado para usar una URL de script .pac, no servidores proxy fijos.</translation> <translation id="4082393374666368382">Configuración - Administración</translation> <translation id="4087296516249690906">Botón Crear evento, presiona Intro para crear un evento en el Calendario de Google rápidamente</translation> @@ -1296,7 +1295,6 @@ <translation id="4506176782989081258">Error de validación: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Comunicarse con el administrador del sistema.</translation> <translation id="450710068430902550">Compartir con el administrador</translation> -<translation id="4508814173490746936">No se pudo usar Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />: presiona Tab y, luego, Intro para traducir esta página con Google Traductor</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Desactivar Exploraciones</translation> @@ -1970,7 +1968,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Ingresar la fecha de vencimiento y el CVC para <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium puede ayudarte a proteger tu Cuenta de Google y cambiar tu contraseña.</translation> -<translation id="6423385022588644828">A partir de ahora, usa Touch ID para confirmar las tarjetas más rápido</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Plegado en ventana</translation> <translation id="6428450836711225518">Verifica tu número de teléfono</translation> @@ -2739,7 +2736,6 @@ <translation id="8559762987265718583">No se puede establecer una conexión privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora del dispositivo (<ph name="DATE_AND_TIME" />) son incorrectas.</translation> <translation id="8564182942834072828">Documentos separados/copias sin intercalar</translation> <translation id="8564985650692024650">Chromium te recomienda que restablezcas la contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la volviste a usar en otros sitios.</translation> -<translation id="8574899947864779331">Usa Touch ID para confirmar las tarjetas más rápido</translation> <translation id="8576310925653847813">Sistemas de Home Theater</translation> <translation id="8577348305244205642">La tarjeta virtual no está disponible</translation> <translation id="858637041960032120">Agregar teléfono @@ -2896,7 +2892,6 @@ <translation id="9039213469156557790">Además, esta página incluye otros recursos que no son seguros. Otras personas pueden ver estos recursos mientras se encuentran en tránsito, y un atacante puede modificarlos para cambiar el funcionamiento de la página.</translation> <translation id="9040464167025094690">Botón Encontrar mi dispositivo, presiona Intro para acceder al servicio Encontrar mi dispositivo en la Cuenta de Google</translation> <translation id="9042617223719777575">Gran capacidad</translation> -<translation id="9044359186343685026">Usar Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Has intentado acceder a <ph name="DOMAIN" />, pero el servidor presentó un certificado no válido.</translation> <translation id="9050666287014529139">Frase de contraseña</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index a306513..b4a045b 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uso y movimiento de la cámara</translation> <translation id="191374271204266022">Copiar como JSON</translation> <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="1919345977826869612">Anuncios</translation> <translation id="1919367280705858090">Solucionar un error específico</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Se ha producido un error al procesar el pedido. Vuelve a intentarlo.</translation> <translation id="4073797364926776829">Ver tarjeta</translation> <translation id="4075732493274867456">El cliente y el servidor no son compatibles con la misma versión de protocolo SSL o de cifrado.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Se ha configurado el proxy para que use una URL de secuencia de comandos .pac, en lugar de servidores proxy fijos.</translation> <translation id="4082393374666368382">Configuración - Administración</translation> <translation id="4087296516249690906">Botón de crear evento, pulsa Intro para crear un nuevo evento en Google Calendar rápidamente</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Error de validación: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Ponerte en contacto con el administrador del sistema</translation> <translation id="450710068430902550">Compartir con el administrador</translation> -<translation id="4508814173490746936">No se ha podido usar Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pulsa Tabulador y, a continuación, Intro para traducir esta página con el Traductor de Google</translation> <translation id="4510487217173779431">Chou4 (sobre)</translation> <translation id="4514308731478712184">Desactivar recorridos</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (sobre)</translation> <translation id="6410264514553301377">Introduce la fecha de vencimiento y el código CVC de la tarjeta <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium puede ayudarte a proteger tu cuenta de Google y a cambiar tu contraseña.</translation> -<translation id="6423385022588644828">A partir de ahora, puedes confirmar tus tarjetas más rápido con Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Plegado en ventana</translation> <translation id="6428450836711225518">Verifica tu número de teléfono</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">No se puede establecer una conexión privada con <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque la fecha y la hora de tu dispositivo (<ph name="DATE_AND_TIME" />) no son correctas.</translation> <translation id="8564182942834072828">Separar documentos/Copias sin intercalar</translation> <translation id="8564985650692024650">Chromium te recomienda que cambies tu contraseña de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si la has vuelto a utilizar en otros sitios.</translation> -<translation id="8574899947864779331">Usa Touch ID para confirmar tarjetas más rápido</translation> <translation id="8576310925653847813">Sistemas de cine en casa</translation> <translation id="8577348305244205642">Tarjeta virtual no disponible</translation> <translation id="858637041960032120">Añade un teléfono</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Además, esta página incluye otros recursos que no son seguros. Otros usuarios pueden acceder a estos recursos mientras están en circulación y un atacante puede modificarlos para cambiar el comportamiento de la página.</translation> <translation id="9040464167025094690">Botón Encontrar mi dispositivo: pulsa Intro para buscar tu dispositivo en la cuenta de Google</translation> <translation id="9042617223719777575">Gran capacidad</translation> -<translation id="9044359186343685026">Usar Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" />: <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Has intentado acceder a <ph name="DOMAIN" />, pero el servidor ha presentado un certificado no válido.</translation> <translation id="9050666287014529139">Frase de contraseña</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 89bcd0e..d44ee46 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kaamera kasutamine ja liigutamine</translation> <translation id="191374271204266022">Kopeeri JSON-failina</translation> <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="1919345977826869612">Reklaamid</translation> <translation id="1919367280705858090">Konkreetse veateate puhul abi hankimine</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Teie tellimuse töötlemisel ilmnes viga. Proovige uuesti.</translation> <translation id="4073797364926776829">Kuva kaart</translation> <translation id="4075732493274867456">Klient ja server ei toeta tavapärast SSL-protokolli versiooni ega šifreerimiskomplekti.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Puhverserveri konfigureerimine on määratud kasutama pac-skripti URL-i, mitte fikseeritud puhverservereid.</translation> <translation id="4082393374666368382">Seaded – haldus</translation> <translation id="4087296516249690906">Nupp Loo sündmus, rakenduses Google'i kalender kiirelt uue sündmuse loomiseks vajutage sisestusklahvi</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Valideerimisviga: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Võtke ühendust süsteemiadministraatoriga</translation> <translation id="450710068430902550">Administraatoriga jagamine</translation> -<translation id="4508814173490746936">Touch ID-d ei saanud kasutada</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, vajutage selle lehe tõlkimiseks rakendusega Google'i tõlge tabulaatorit ja siis sisestusklahvi</translation> <translation id="4510487217173779431">Chou4 (ümbrik)</translation> <translation id="4514308731478712184">Lülita funktsioon Teekonnad välja</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (ümbrik)</translation> <translation id="6410264514553301377">Sisestage krediitkaardi <ph name="CREDIT_CARD" /> aegumiskuupäev ja CVC</translation> <translation id="6415778972515849510">Chromium aitab teil oma Google'i kontot kaitsta ja parooli muuta.</translation> -<translation id="6423385022588644828">Kinnitage oma kaardid kiiremini, kasutades edaspidi funktsiooni Touch ID</translation> <translation id="6425092077175753609">Materiaalne</translation> <translation id="6427730057873428458">Väravakujuliselt volditud</translation> <translation id="6428450836711225518">Kinnitage oma telefoninumber</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Privaatset ühendust ei saa domeeniga <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> luua, kuna seadme kuupäev ja kellaaeg (<ph name="DATE_AND_TIME" />) on valed.</translation> <translation id="8564182942834072828">Eraldi dokumendid / järjestamata koopiad</translation> <translation id="8564985650692024650">Chromium soovitab teil organisatsiooni <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> parooli lähtestada, kui kasutasite seda ka muudel saitidel.</translation> -<translation id="8574899947864779331">Kasutage kaartide kiiremaks kinnitamiseks Touch ID-d</translation> <translation id="8576310925653847813">Kodukinosüsteemid</translation> <translation id="8577348305244205642">Virtuaalkaart pole saadaval</translation> <translation id="858637041960032120">Lisage telefoninumber</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Lisaks sisaldab see leht teisi ressursse, mis pole turvalised. Edastamise ajal võivad ressursse vaadata ka teised ja ründajad saavad lehe käitumise muutmiseks ressursse muuta.</translation> <translation id="9040464167025094690">Nupp Leia mu seade, Google'i kontol oma seadme leidmiseks vajutage sisestusklahvi.</translation> <translation id="9042617223719777575">Suur mahutavus</translation> -<translation id="9044359186343685026">Kasuta Touch ID-d</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Proovisite jõuda domeenile <ph name="DOMAIN" />, kuid server esitas kehtetu sertifikaadi.</translation> <translation id="9050666287014529139">Parool</translation>
diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb index b576567..e3ecd41 100644 --- a/components/strings/components_strings_eu.xtb +++ b/components/strings/components_strings_eu.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamera erabili eta mugitu</translation> <translation id="191374271204266022">Kopiatu JSON gisa</translation> <translation id="1914326953223720820">Deskonprimatze-zerbitzua</translation> -<translation id="1915697529809968049">Touch ID erabili nahi duzu CVC kodearen ordez?</translation> <translation id="1916770123977586577">Kargatu berriro orria eguneratutako ezarpenak webgunean aplika daitezen</translation> <translation id="1919345977826869612">Iragarkiak</translation> <translation id="1919367280705858090">Lortu errore-mezu jakin bati buruzko laguntza</translation> @@ -1120,7 +1119,6 @@ <translation id="4072486802667267160">Errore bat gertatu da eskaera prozesatzean. Saiatu berriro.</translation> <translation id="4073797364926776829">Ikusi txartela</translation> <translation id="4075732493274867456">Bezeroak eta zerbitzariak ez dute onartzen SSL protokoloaren bertsio edo enkriptatze multzo arrunta.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy-konfigurazioa .pac scripteko URLa erabiltzeko dago ezarrita, ez proxy-zerbitzari finkoak.</translation> <translation id="4082393374666368382">Ezarpenak - Kudeaketa</translation> <translation id="4087296516249690906">Gertaera bat sortzeko botoia: sakatu "Sartu", Google Calendar-en gertaera bat bizkor sortzeko</translation> @@ -1292,7 +1290,6 @@ <translation id="4506176782989081258">Baliozkotze-errorea: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Sistemaren administratzailearekin harremanetan jarri.</translation> <translation id="450710068430902550">Administratzailearekin partekatzea</translation> -<translation id="4508814173490746936">Ezin izan da erabili Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />: sakatu tabuladorea eta, ondoren, sakatu Sartu orri hau Google Translate-rekin itzultzeko</translation> <translation id="4510487217173779431">Chou4 (gutun-azala)</translation> <translation id="4514308731478712184">Desaktibatu bilaketa-ibilbideak</translation> @@ -1965,7 +1962,6 @@ <translation id="6406765186087300643">C0 (gutun-azala)</translation> <translation id="6410264514553301377">Idatzi <ph name="CREDIT_CARD" /> txartelaren iraungitze-data eta CVC kodea</translation> <translation id="6415778972515849510">Google-ko kontua babesten eta pasahitza aldatzen lagun diezazuke Chromium-ek.</translation> -<translation id="6423385022588644828">Aurrerantzean, berretsi txartelak bizkorrago Touch ID erabilita</translation> <translation id="6425092077175753609">Material diseinua</translation> <translation id="6427730057873428458">Leiho-erako tolestura</translation> <translation id="6428450836711225518">Egiaztatu telefono-zenbakia</translation> @@ -2734,7 +2730,6 @@ <translation id="8559762987265718583">Ezin da ezarri <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> domeinurako konexio pribatua gailuaren data eta ordua (<ph name="DATE_AND_TIME" />) okerrak direlako.</translation> <translation id="8564182942834072828">Dokumentu bereiziak / Elkartu gabeko kopiak</translation> <translation id="8564985650692024650"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> pasahitza beste webgune batzuetan ere erabili baduzu, hura berrezartzea gomendatzen du Chromium-ek.</translation> -<translation id="8574899947864779331">Erabili Touch ID txartelak bizkorrago berresteko</translation> <translation id="8576310925653847813">Etxeko zinema-sistemak</translation> <translation id="8577348305244205642">Txartel birtuala ez dago erabilgarri</translation> <translation id="858637041960032120">Gehitu telefono-zenbakia</translation> @@ -2890,7 +2885,6 @@ <translation id="9039213469156557790">Gainera, orri honetan seguruak ez diren beste baliabide batzuk daude. Bidean dauden bitartean, beste pertsonek baliabide horiek ikus ditzakete eta erasotzaileek aldatu egin ditzakete orriaren portaera aldatzeko.</translation> <translation id="9040464167025094690">Bilatu nire gailua botoia: sakatu "Sartu" tekla Google-ko kontuko Bilatu nire gailua zerbitzura joateko</translation> <translation id="9042617223719777575">Edukiera handia</translation> -<translation id="9044359186343685026">Erabili Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_PRODUCT_SOURCE" /> (<ph name="RESULT_MODIFIED_DATE" />)</translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> domeinura konektatzen saiatu zara, baina zerbitzariak balio ez duen ziurtagiria aurkeztu du.</translation> <translation id="9050666287014529139">Pasaesaldia</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index b27b2d6..1338ab48 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">استفاده از دوربین و حرکت دادن آن</translation> <translation id="191374271204266022">کپی با قالب JSON</translation> <translation id="1914326953223720820">سرویس خارج کردن از فشردهسازی</translation> -<translation id="1915697529809968049">بهجای CVC از شناسه لمسی استفاده شود؟</translation> <translation id="1916770123977586577">برای اعمال کردن تنظیمات بهروزرسانیشده خود در این سایت، این صفحه را تازهسازی کنید</translation> <translation id="1919345977826869612">آگهیها</translation> <translation id="1919367280705858090">دریافت راهنمایی برای پیام خطایی خاص</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">هنگام پردازش سفارش شما خطایی روی داد. لطفاً دوباره امتحان کنید.</translation> <translation id="4073797364926776829">مشاهده کارت</translation> <translation id="4075732493274867456">کلاینت و سرور از مجموعه رمزگذاری یا نسخه پروتکل SSL مشترکی استفاده نمیکنند.</translation> -<translation id="4075941231477579656">شناسه لمسی</translation> <translation id="4079302484614802869">تنظیمات پروکسی، برای استفاده از آدرس اسکریپت pac. تنظیم شده است و از سرورهای ثابت نمیتواند استفاده کند.</translation> <translation id="4082393374666368382">تنظیمات - مدیریت</translation> <translation id="4087296516249690906">دکمه ایجاد رویداد؛ برای ایجاد سریع رویداد جدید در «تقویم Google»، کلید «ورود» را فشار دهید</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">خطای ارزیابی: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">تماس با سرپرست سیستم</translation> <translation id="450710068430902550">اشتراکگذاری با سرپرست سیستم</translation> -<translation id="4508814173490746936">استفاده از «شناسه لمسی» ممکن نشد</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />، برای ترجمه کردن این صفحه بااستفاده از «ترجمه Google»، کلید Tab (جهش) و سپس Enter (ورود) را فشار دهید</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">خاموش کردن «سفرها»</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">CVC و تاریخ انقضای <ph name="CREDIT_CARD" /> را وارد کنید</translation> <translation id="6415778972515849510">Chromium میتواند کمک کند از حساب Google خود محافظت کنید و گذرواژهتان را تغییر دهید.</translation> -<translation id="6423385022588644828">ازاینپس، برای بهتأیید رساندن سریعتر کارتها، از «شناسه لمسی» استفاده شود</translation> <translation id="6425092077175753609">سهبعدی</translation> <translation id="6427730057873428458">تاخوردگی دروازهای</translation> <translation id="6428450836711225518">بهتأیید رساندن شماره تلفن</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">اتصال خصوصی به <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> انجام نمیشود، زیرا تاریخ و زمان دستگاه شما (<ph name="DATE_AND_TIME" />) نادرست است.</translation> <translation id="8564182942834072828">اسناد جداگانه/کپیهای تلفیقنشده</translation> <translation id="8564985650692024650">Chromium توصیه میکند اگر از گذرواژه <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> خود در سایت دیگری استفاده کردید آن را بازنشانی کنید.</translation> -<translation id="8574899947864779331">برای بهتأیید رساندن سریعتر کارتها، از «شناسه لمسی» استفاده شود</translation> <translation id="8576310925653847813">سیستم سینمای خانگی</translation> <translation id="8577348305244205642">کارت مجازی دردسترس نیست</translation> <translation id="858637041960032120">افزودن شماره تلفن</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">علاوه بر این، این صفحه دارای منابع دیگری است که امن نیستند. دیگران میتوانند در حین انتقال، این منابع را ببینند و این منابع میتوانند برای تغییر رفتار صفحه، توسط یک مهاجم تغییر داده شوند.</translation> <translation id="9040464167025094690">دکمه «یافتن دستگاهم»؛ برای پیدا کردن دستگاهتان در «حساب Google»، کلید «ورود» را فشار دهید</translation> <translation id="9042617223719777575">ظرفیت بالا</translation> -<translation id="9044359186343685026">استفاده از شناسه لمسی</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">شما سعی کردید به <ph name="DOMAIN" /> دسترسی داشته باشید، اما سرور یک گواهی نامعتبر را نشان داد.</translation> <translation id="9050666287014529139">گذرعبارت</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index f8b8f576..84a6861 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kameran käyttö ja liike</translation> <translation id="191374271204266022">Kopioi JSON-tiedostona</translation> <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="1919345977826869612">Mainokset</translation> <translation id="1919367280705858090">Tiettyjen virheiden korjaaminen</translation> @@ -832,6 +831,7 @@ <translation id="3226387218769101247">Pikkukuvat</translation> <translation id="3227137524299004712">Mikrofoni</translation> <translation id="3229041911291329567">Laitteen ja selaimen versiotiedot</translation> +<translation id="3229277193950731405">Kopioi version merkkijono</translation> <translation id="323107829343500871">Anna kortin <ph name="CREDIT_CARD" /> CVC</translation> <translation id="3234666976984236645">Havaitse aina tärkeä sisältö tällä sivustolla</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, muokkaa selaimen ulkoasua painamalla sarkainta ja sitten Enter</translation> @@ -1124,7 +1124,6 @@ <translation id="4072486802667267160">Virhe tilausta käsiteltäessä. Yritä uudelleen.</translation> <translation id="4073797364926776829">Katso kortti</translation> <translation id="4075732493274867456">Asiakassovellus ja palvelin eivät tue samaa SSL-protokollaversiota tai salaustekniikkaa.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Välityspalvelinmääritykset on asetettu käyttämään .pac-URL-osoitteita, ei kiinteitä välityspalvelimia.</translation> <translation id="4082393374666368382">Asetukset – Ylläpito</translation> <translation id="4087296516249690906">Luo tapahtuma ‑painike, luo uusi tapahtuma nopeasti Google Kalenterissa painamalla Enter</translation> @@ -1296,7 +1295,6 @@ <translation id="4506176782989081258">Todennusvirhe: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Ota yhteyttä järjestelmänvalvojaan.</translation> <translation id="450710068430902550">Jakaminen järjestelmänvalvojan kanssa</translation> -<translation id="4508814173490746936">Touch ID:n käyttö ei onnistunut</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, käännä tämä sivu Google Kääntäjällä painamalla sarkainta ja sitten Enter</translation> <translation id="4510487217173779431">Chou4 (kirjekuori)</translation> <translation id="4514308731478712184">Laita Matkat pois päältä</translation> @@ -1970,7 +1968,6 @@ <translation id="6406765186087300643">C0 (kirjekuori)</translation> <translation id="6410264514553301377">Anna kortin <ph name="CREDIT_CARD" /> vanhentumispäivä ja CVC</translation> <translation id="6415778972515849510">Chromium voi auttaa suojaamaan Google-tiliäsi ja vaihtamaan salasanasi.</translation> -<translation id="6423385022588644828">Vahvista kortit jatkossa nopeammin Touch ID:llä</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Lehtitaite</translation> <translation id="6428450836711225518">Vahvista puhelinnumerosi</translation> @@ -2739,7 +2736,6 @@ <translation id="8559762987265718583">Verkkotunnukseen <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ei voi muodostaa salattua yhteyttä, koska laitteesi aika ja päivämäärä (<ph name="DATE_AND_TIME" />) ovat virheelliset.</translation> <translation id="8564182942834072828">Erilliset dokumentit / Kokoamattomat kopiot</translation> <translation id="8564985650692024650">Chromium suosittelee organisaation <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> salasanasi vaihtamista, jos olet käyttänyt sitä myös muilla sivustoilla.</translation> -<translation id="8574899947864779331">Vahvista kortteja nopeammin Touch ID:llä</translation> <translation id="8576310925653847813">Kotiteatterijärjestelmät</translation> <translation id="8577348305244205642">Virtuaalinen kortti ei käytettävissä</translation> <translation id="858637041960032120">Lisää puh.nro @@ -2896,7 +2892,6 @@ <translation id="9039213469156557790">Tällä sivulla on kuitenkin muita osia, jotka eivät ole suojattuja. Muut voivat tarkastella näitä osia siirron aikana, ja hyökkääjä voi muuttaa sivun käyttäytymistä muokkaamalla näitä osia.</translation> <translation id="9040464167025094690">Paikanna laite ‑painike, siirry Google-tilille käyttämään laitteen paikannusta painamalla Enter</translation> <translation id="9042617223719777575">Suuri kapasiteetti</translation> -<translation id="9044359186343685026">Käytä Touch ID:tä</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Yritit muodostaa yhteyden verkkotunnukseen <ph name="DOMAIN" />, mutta palvelin esitti virheellisen varmenteen.</translation> <translation id="9050666287014529139">Tunnuslause</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 54cc03f..1f9be8c3 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Paggamit at paggalaw ng camera</translation> <translation id="191374271204266022">Kopyahin bilang JSON</translation> <translation id="1914326953223720820">I-unzip ang Serbisyo</translation> -<translation id="1915697529809968049">Gamitin ang Touch ID sa halip na CVC?</translation> <translation id="1916770123977586577">Upang ilapat ang iyong mga na-update na setting sa site na ito, i-reload ang page</translation> <translation id="1919345977826869612">Mga Ad</translation> <translation id="1919367280705858090">Humingi ng tulong sa partikular na mensahe ng error</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Nagkaroon ng error sa pagproseso ng iyong order. Pakisubukang muli.</translation> <translation id="4073797364926776829">Tingnan ang card</translation> <translation id="4075732493274867456">Hindi sinusuportahan ng client at server ang isang karaniwang bersyon o cipher suite ng SSL protocol.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Nakatakda ang configuration ng proxy upang gumamit ng isang .pac script URL, hindi ng mga hindi nababagong proxy server.</translation> <translation id="4082393374666368382">Mga Setting - Pamamahala</translation> <translation id="4087296516249690906">Button na gumawa ng event, pindutin ang Enter para gumawa ng bagong event sa Google Calendar nang mabilis</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Error sa pagpapatunay: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Makipag-ugnayan sa admin ng system</translation> <translation id="450710068430902550">Pagbabahagi sa Administrator</translation> -<translation id="4508814173490746936">Hindi magamit ang Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pindutin ang Tab at pagkatapos ay ang Enter para isalin ang page na ito gamit ang Google Translate</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">I-off ang Mga Journey</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Ilagay ang petsa ng pag-expire at CVC para sa <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Makakatulong sa iyo ang Chromium na protektahan ang iyong Google Account at palitan ang password mo.</translation> -<translation id="6423385022588644828">Kumpirmahin nang mas mabilis ang iyong mga card gamit ang Touch ID mula ngayon</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Gate fold</translation> <translation id="6428450836711225518">I-verify ang iyong numero ng telepono</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Hindi makapagtatag ng pribadong koneksyon sa <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> dahil mali ang petsa at oras ng iyong device (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Mga hiwalay na dokumento/Mga hindi naka-collate na kopya</translation> <translation id="8564985650692024650">Inirerekomenda ng Chromium na i-reset ang iyong password sa <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> kung ginamit mo ito sa iba pang site.</translation> -<translation id="8574899947864779331">Gamitin ang Touch ID para kumpirmahin nang mas mabilis ang mga card</translation> <translation id="8576310925653847813">Mga home theater system</translation> <translation id="8577348305244205642">Hindi available ang virtual card</translation> <translation id="858637041960032120">Magdagdag ng numero ng telepono</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Bukod pa rito, ang page na ito ay may iba pang mga mapagkukunang hindi secure. Makikita ng iba ang mga mapagkukunang ito habang ipinadadala, at maaaring baguhin ng isang umaatake upang baguhin ang gawi ng page.</translation> <translation id="9040464167025094690">Button na Hanapin ang aking device, pindutin ang Enter para bisitahin ang hanapin ang iyong device sa Google Account</translation> <translation id="9042617223719777575">Malaking Kapasidad</translation> -<translation id="9044359186343685026">Gamitin ang Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Tinangka mong maabot ang <ph name="DOMAIN" />, ngunit nagpakita ang server ng isang di-wastong certificate.</translation> <translation id="9050666287014529139">Passphrase</translation>
diff --git a/components/strings/components_strings_fr-CA.xtb b/components/strings/components_strings_fr-CA.xtb index 0f94b845..7417ae8 100644 --- a/components/strings/components_strings_fr-CA.xtb +++ b/components/strings/components_strings_fr-CA.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Utilisation et mouvement de la caméra</translation> <translation id="191374271204266022">Copier au format JSON</translation> <translation id="1914326953223720820">Service de décompression</translation> -<translation id="1915697529809968049">Utiliser Touch ID au lieu du code CVC?</translation> <translation id="1916770123977586577">Pour appliquer à ce site vos paramètres mis à jour, actualisez cette page</translation> <translation id="1919345977826869612">Annonces</translation> <translation id="1919367280705858090">Obtenir de l'aide pour un message d'erreur spécifique</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniatures</translation> <translation id="3227137524299004712">Microphone</translation> <translation id="3229041911291329567">Renseignements sur la version de votre appareil et de votre navigateur</translation> +<translation id="3229277193950731405">Copier la chaîne de version</translation> <translation id="323107829343500871">Entrez le code de vérification de carte (CVC) pour <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Toujours détecter le contenu important sur ce site</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Tabulation, puis sur la touche Entrée pour personnaliser le style de votre navigateur</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Une erreur s'est produite lors du traitement de votre commande. Veuillez réessayer.</translation> <translation id="4073797364926776829">Affichez la carte</translation> <translation id="4075732493274867456">Le client et le serveur ne prennent pas en charge une version habituelle du protocole SSL et de la suite de chiffrement.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">La configuration du mandataire est réglée à l'utilisation d'une adresse URL de script .pac, et non des serveurs mandataires fixes.</translation> <translation id="4082393374666368382">Paramètres - Gestion</translation> <translation id="4087296516249690906">Bouton Créer un événement, appuyez sur Entrée pour rapidement créer un événement dans Google Agenda</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Erreur de validation : <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">De communiquer avec l'administrateur système</translation> <translation id="450710068430902550">Partage avec l'administrateur</translation> -<translation id="4508814173490746936">Impossible d'utiliser Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, appuyez sur la touche Entrée pour traduire cette page avec Google Traduction</translation> <translation id="4510487217173779431">Enveloppe Chou4</translation> <translation id="4514308731478712184">Désactiver la fonctionnalité Explorations</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">Enveloppe C0</translation> <translation id="6410264514553301377">Entrez la date d'expiration et le code de vérification de carte (CVC) pour <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium peut vous aider à protéger votre compte Google et à changer votre mot de passe.</translation> -<translation id="6423385022588644828">Vérifiez vos cartes plus rapidement en vous servant de Touch ID à partir de maintenant</translation> <translation id="6425092077175753609">Matériel</translation> <translation id="6427730057873428458">Pli fenêtre</translation> <translation id="6428450836711225518">Vérifier votre numéro de téléphone</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Impossible d'établir une connexion privée à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, car la date et l'heure de votre appareil (<ph name="DATE_AND_TIME" />) sont incorrectes.</translation> <translation id="8564182942834072828">Documents séparés/Copies non assemblées</translation> <translation id="8564985650692024650">Chromium recommande de réinitialiser votre mot de passe <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si vous l'avez réutilisé sur d'autres sites.</translation> -<translation id="8574899947864779331">Utiliser Touch ID pour vérifier les cartes plus rapidement</translation> <translation id="8576310925653847813">Chaînes de cinéma maison</translation> <translation id="8577348305244205642">Votre carte virtuelle n'est plus valide</translation> <translation id="858637041960032120">Ajouter un numéro de téléphone</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">De plus, cette page inclut d'autres ressources qui ne sont pas sécurisées. Ces ressources peuvent être consultées par des tiers pendant leur transfert, et modifiées par un pirate informatique dans le but de changer le comportement de cette page.</translation> <translation id="9040464167025094690">Bouton Localiser mon appareil, appuyez sur la touche Entrée pour accéder à la fonctionnalité Localiser mon appareil dans le compte Google</translation> <translation id="9042617223719777575">Grande capacité</translation> -<translation id="9044359186343685026">Utiliser Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Vous avez essayé d'accéder à <ph name="DOMAIN" />, mais le serveur a présenté un certificat non valide.</translation> <translation id="9050666287014529139">Phrase de passe</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index 2f148e1..59a9263 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Utiliser et bouger la caméra</translation> <translation id="191374271204266022">Copier au format JSON</translation> <translation id="1914326953223720820">Service de décompression de fichier</translation> -<translation id="1915697529809968049">Utiliser Touch ID au lieu du code CVC ?</translation> <translation id="1916770123977586577">Pour appliquer vos paramètres mis à jour à ce site, actualisez la page</translation> <translation id="1919345977826869612">Annonces</translation> <translation id="1919367280705858090">Obtenir de l'aide pour un message d'erreur spécifique</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Vignettes</translation> <translation id="3227137524299004712">Micro</translation> <translation id="3229041911291329567">Informations sur la version de l'appareil et du navigateur</translation> +<translation id="3229277193950731405">Copier la chaîne de la version</translation> <translation id="323107829343500871">Saisir le code CVC de la carte <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Toujours détecter du contenu important sur ce site</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, puis Tabulation, puis Entrée pour personnaliser l'apparence de votre navigateur</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Une erreur s'est produite lors du traitement de votre commande. Veuillez réessayer.</translation> <translation id="4073797364926776829">Afficher la carte</translation> <translation id="4075732493274867456">Le client et le serveur ne sont pas compatibles avec une version de protocole ou une méthode de chiffrement SSL commune.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">La configuration du proxy est définie pour utiliser une URL de script .pac, et non pas des serveurs proxy déterminés.</translation> <translation id="4082393374666368382">Paramètres - Gestion</translation> <translation id="4087296516249690906">Bouton "Créer un événement", appuyez sur Entrée pour créer rapidement un événement dans Google Agenda</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Erreur de validation : <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Contacter l'administrateur système</translation> <translation id="450710068430902550">Partage avec l'administrateur</translation> -<translation id="4508814173490746936">Impossible d'utiliser Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> : appuyer sur Tabulation, puis sur Entrée pour traduire cette page avec Google Traduction</translation> <translation id="4510487217173779431">Chou4 (enveloppe)</translation> <translation id="4514308731478712184">Désactiver "Parcours"</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (enveloppe)</translation> <translation id="6410264514553301377">Saisissez la date d'expiration et le code CVC pour <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium peut vous aider à protéger votre compte Google et à modifier votre mot de passe.</translation> -<translation id="6423385022588644828">Confirmez désormais vos cartes plus rapidement avec Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Pli en volets</translation> <translation id="6428450836711225518">Validez votre numéro de téléphone</translation> @@ -2739,7 +2736,6 @@ <translation id="8559762987265718583">Impossible d'établir une connexion privée à <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> : la date et l'heure de votre appareil (<ph name="DATE_AND_TIME" />) sont incorrectes.</translation> <translation id="8564182942834072828">Documents séparés/Copies non assemblées</translation> <translation id="8564985650692024650">L'équipe Chromium vous recommande de réinitialiser votre mot de passe <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> si vous l'avez réutilisé sur d'autres sites.</translation> -<translation id="8574899947864779331">Utiliser Touch ID pour confirmer les cartes plus rapidement</translation> <translation id="8576310925653847813">Systèmes home cinéma</translation> <translation id="8577348305244205642">Carte virtuelle non disponible</translation> <translation id="858637041960032120">Saisir num tél</translation> @@ -2895,7 +2891,6 @@ <translation id="9039213469156557790">De plus, cette page inclut d'autres ressources qui ne sont pas sécurisées. Ces ressources peuvent être consultées par des tiers pendant leur transfert, et modifiées par un pirate informatique dans le but de changer le comportement de cette page.</translation> <translation id="9040464167025094690">Bouton "Localiser mon appareil", appuyez sur Entrée pour accéder à Localiser votre appareil dans le compte Google</translation> <translation id="9042617223719777575">Grande capacité</translation> -<translation id="9044359186343685026">Utiliser Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Vous avez tenté de contacter <ph name="DOMAIN" />, mais le certificat présenté par le serveur est incorrect.</translation> <translation id="9050666287014529139">Phrase secrète</translation>
diff --git a/components/strings/components_strings_gl.xtb b/components/strings/components_strings_gl.xtb index e210a8a..e7c546f 100644 --- a/components/strings/components_strings_gl.xtb +++ b/components/strings/components_strings_gl.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uso e movemento da cámara</translation> <translation id="191374271204266022">Copiar como JSON</translation> <translation id="1914326953223720820">Servizo de descompresión</translation> -<translation id="1915697529809968049">Queres usar Touch ID en lugar do CVC?</translation> <translation id="1916770123977586577">Para aplicar a túa configuración actualizada a este sitio, volve cargar esta páxina</translation> <translation id="1919345977826869612">Anuncios</translation> <translation id="1919367280705858090">Obter axuda cando aparece unha mensaxe de erro concreta</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniaturas</translation> <translation id="3227137524299004712">Micrófono</translation> <translation id="3229041911291329567">Información sobre a versión do dispositivo e do navegador</translation> +<translation id="3229277193950731405">Copiar cadea da versión</translation> <translation id="323107829343500871">Introduce o código CVC da tarxeta <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Detectar sempre contido importante neste sitio</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Para personalizar o aspecto do navegador, preme Tabulador e, a continuación, Introducir</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Produciuse un erro ao procesar a túa solicitude. Téntao de novo.</translation> <translation id="4073797364926776829">Ver tarxeta</translation> <translation id="4075732493274867456">O cliente e o servidor non admiten unha versión do protocolo SSL ou o paquete de cifraxe comúns.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">A configuración do proxy está establecida para utilizar un URL de script .pac, non servidores proxy fixos.</translation> <translation id="4082393374666368382">Configuración - Xestión</translation> <translation id="4087296516249690906">Botón Crear evento. Preme Introducir para crear rapidamente un evento novo en Google Calendar</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Erro de validación: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Poñerte en contacto co administrador do sistema</translation> <translation id="450710068430902550">Compartindo co administrador</translation> -<translation id="4508814173490746936">Non se puido utilizar Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Preme Tab e, a continuación, Intro para traducir esta páxina co Tradutor de Google</translation> <translation id="4510487217173779431">Chou4 (sobre)</translation> <translation id="4514308731478712184">Desactivar Percorridos</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (sobre)</translation> <translation id="6410264514553301377">Introduce a data de caducidade e o código CVC da tarxeta <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium pode axudarche a protexer a túa Conta de Google e a cambiar o teu contrasinal.</translation> -<translation id="6423385022588644828">A partir de agora, confirma as tarxetas máis rápido con Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Dobrez en ventá</translation> <translation id="6428450836711225518">Verificar o teu número de teléfono</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Non se pode establecer unha conexión privada con <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> porque a data e a hora do dispositivo (<ph name="DATE_AND_TIME" />) son incorrectas.</translation> <translation id="8564182942834072828">Documentos independentes/copias non intercaladas</translation> <translation id="8564985650692024650">Chromium recoméndache que restablezas o contrasinal de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se o reutilizaches noutros sitios.</translation> -<translation id="8574899947864779331">Usar Touch ID para confirmar as tarxetas máis rápido</translation> <translation id="8576310925653847813">Sistemas de cine domésticos</translation> <translation id="8577348305244205642">A tarxeta virtual non está dispoñible</translation> <translation id="858637041960032120">Engadir número de teléfono</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">Ademais, esta páxina inclúe outros recursos que non son seguros. Outros usuarios poden ver estes recursos mentres se desprazan e un atacante pode modificalos para cambiar o comportamento da páxina.</translation> <translation id="9040464167025094690">Botón da función Localizar o meu dispositivo. Para acceder á función da Conta de Google Localizar o meu dispositivo, preme Introducir</translation> <translation id="9042617223719777575">Gran capacidade</translation> -<translation id="9044359186343685026">Usar Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" />: <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Intentaches acceder a <ph name="DOMAIN" />, pero o servidor presentou un certificado non válido.</translation> <translation id="9050666287014529139">Frase de acceso</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index ad54b89..017092ef 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">કૅમેરાનો ઉપયોગ કરો અને તેને ખસેડો</translation> <translation id="191374271204266022">JSON તરીકે કૉપિ કરો</translation> <translation id="1914326953223720820">સેવાને અનઝિપ કરો</translation> -<translation id="1915697529809968049">CVCને બદલે Touch IDનો ઉપયોગ કરીએ?</translation> <translation id="1916770123977586577">આ સાઇટ પર તમારા અપડેટ કરેલા સેટિંગ લાગુ પાડવા માટે, આ પેજને ફરીથી લોડ કરો</translation> <translation id="1919345977826869612">જાહેરાતો</translation> <translation id="1919367280705858090">ભૂલના ચોક્કસ સંદેશ વડે સહાય મેળવો</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">થંબનેલ</translation> <translation id="3227137524299004712">માઇક્રોફોન</translation> <translation id="3229041911291329567">તમારા ડિવાઇસ અને બ્રાઉઝર વિશે વર્ઝન માહિતી</translation> +<translation id="3229277193950731405">વર્ઝનની સ્ટ્રિંગ કૉપિ કરો</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> માટે CVC દાખલ કરો</translation> <translation id="3234666976984236645">હંમેશાં આ સાઇટ પરનું મહત્ત્વનું કન્ટેન્ટ શોધો</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, તમારા બ્રાઉઝરનો દેખાવ કસ્ટમાઇઝ કરવા માટે, પહેલાં Tab અને પછી Enter કી દબાવો</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">તમારા ઑર્ડરની પ્રક્રિયા કરતી વખતે એક ભૂલ આવી હતી. કૃપા કરીને ફરીથી પ્રયાસ કરો.</translation> <translation id="4073797364926776829">કાર્ડ જુઓ</translation> <translation id="4075732493274867456">ક્લાઇન્ટ અને સર્વર સામાન્ય SSL પ્રોટોકોલ વર્ઝન અથવા સાઇફર સ્યૂટની સહાય કરતા નથી.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">પ્રૉક્સી ગોઠવણી .pac સ્ક્રિપ્ટ URLનો ઉપયોગ કરવા માટે સેટ છે, ફિક્સ્ડ પ્રૉક્સી સર્વર માટે નહીંં.</translation> <translation id="4082393374666368382">સેટિંગ - મેનેજમેન્ટ</translation> <translation id="4087296516249690906">'ઇવેન્ટ બનાવો' બટન, Google Calendarમાં ઝડપથી કોઈ નવી ઇવેન્ટ બનાવવા માટે, Enter કી દબાવો</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">માન્યતા ભૂલ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">સિસ્ટમ વ્યવસ્થાપકનો સંપર્ક કરીને</translation> <translation id="450710068430902550">વ્યવસ્થાપક સાથે શેર કરવું</translation> -<translation id="4508814173490746936">ટચ IDનો ઉપયોગ કરી શક્યાં નથી</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate વડે આ પેજનો અનુવાદ કરવા માટે Tab પછી Enter દબાવો</translation> <translation id="4510487217173779431">Chou4 (એન્વલપ)</translation> <translation id="4514308731478712184">પ્રવાસ બંધ કરો</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (એન્વલપ)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> માટે સમાપ્તિ તારીખ અને CVC દાખલ કરો</translation> <translation id="6415778972515849510">Chromium તમારા Google એકાઉન્ટને સુરક્ષિત કરવામાં અને તમારો પાસવર્ડ બદલવામાં તમારી સહાય કરી શકે છે.</translation> -<translation id="6423385022588644828">હવેથી Touch IDનો ઉપયોગ કરીને તમારા કાર્ડ વધુ ઝડપથી કન્ફર્મ કરો</translation> <translation id="6425092077175753609">સામગ્રી</translation> <translation id="6427730057873428458">ગેટ ફોલ્ડ</translation> <translation id="6428450836711225518">તમારો ફોન નંબર ચકાસો</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> પર ખાનગી કનેક્શન સ્થાપિત કરી શકાતું નથી કારણ કે તમારા ઉપકરણની તારીખ અને સમય (<ph name="DATE_AND_TIME" />) અયોગ્ય છે.</translation> <translation id="8564182942834072828">અલગ દસ્તાવેજો/ગોઠવણી વિનાની કૉપિ</translation> <translation id="8564985650692024650">જો તમે અન્ય સાઇટ પર <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> પાસવર્ડનો ફરી ઉપયોગ કર્યો હોય, તો Chromium તેને રીસેટ કરવાનો સુઝાવ આપે છે.</translation> -<translation id="8574899947864779331">કાર્ડને વધુ ઝડપથી કન્ફર્મ કરવા માટે Touch IDનો ઉપયોગ કરો</translation> <translation id="8576310925653847813">હોમ થિયેટર સિસ્ટમ</translation> <translation id="8577348305244205642">વર્ચ્યુઅલ કાર્ડ ઉપલબ્ધ નથી</translation> <translation id="858637041960032120">ફોન નંબર ઉમેરો</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">વળી, આ પેજમાં અન્ય એવા સાધનો છે જે સુરક્ષિત નથી. પરિવહનમાં હોવા પર અન્ય લોકો દ્વારા આ સાધનો જોઈ શકાય છે અને પેજનો વ્યવહાર બદલવા માટે હુમલાખોર દ્વારા સંશોધિત કરવામાં આવી શકે છે.</translation> <translation id="9040464167025094690">Find My Deviceનું બટન, Google એકાઉન્ટમાં Find My Device સુવિધાની મુલાકાત લેવા માટે Enter કી દબાવો</translation> <translation id="9042617223719777575">વધુ ક્ષમતા</translation> -<translation id="9044359186343685026">Touch IDનો ઉપયોગ કરો</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">તમે <ph name="DOMAIN" /> સુધી પહોંચવાનો પ્રયાસ કર્યો, પરંતુ સર્વરે અમાન્ય પ્રમાણપત્ર પ્રસ્તુત કર્યું. </translation> <translation id="9050666287014529139">પાસફ્રેઝ</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index c4d4f45c..57e4563 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -297,7 +297,7 @@ <translation id="1682696192498422849">शॉर्ट एज फ़र्स्ट</translation> <translation id="168693727862418163">इस नीति का मान अपनी स्कीमा के हिसाब से काम नहीं कर सका और इसे अनदेखा किया जाएगा.</translation> <translation id="168841957122794586">सर्वर प्रमाणपत्र में कमज़ोर क्रिप्टोग्राफ़िक कुंजी है.</translation> -<translation id="1697532407822776718">आप बिल्कुल तैयार हैं!</translation> +<translation id="1697532407822776718">आप बिलकुल तैयार हैं!</translation> <translation id="1699570257714336246">जानकारी मौजूद नहीं है</translation> <translation id="1703835215927279855">लेटर</translation> <translation id="1706625117072057435">ज़ूम स्तर</translation> @@ -380,7 +380,6 @@ <translation id="1908217026282415406">कैमरे का इस्तेमाल और उसे मूव करना</translation> <translation id="191374271204266022">JSON फ़ॉर्मैट में सेव करें</translation> <translation id="1914326953223720820">अनज़िप सेवा</translation> -<translation id="1915697529809968049">क्या आप कार्ड वेरीफ़िकेशन कोड (सीवीसी) के बजाय टच आईडी का इस्तेमाल करना चाहते हैं?</translation> <translation id="1916770123977586577">इस साइट पर अपनी अपडेट की गई सेटिंग लागू करने के लिए, इस पेज को फिर से लोड करें</translation> <translation id="1919345977826869612">विज्ञापन</translation> <translation id="1919367280705858090">गड़बड़ी के किसी खास मैसेज से मदद पाना</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">आपका आदेश संसाधित करते समय गड़बड़ी हुई. कृपया फिर से कोशिश करें.</translation> <translation id="4073797364926776829">कार्ड देखें</translation> <translation id="4075732493274867456">क्लाइंट और सर्वर, सामान्य SSL प्रोटोकॉल वर्शन या सिफ़र सुइट का समर्थन नहीं करते हैं.</translation> -<translation id="4075941231477579656">टच आईडी</translation> <translation id="4079302484614802869">प्रॉक्सी कॉन्फ़िगरेशन को .pac स्क्रिप्ट यूआरएल का उपयोग करने के लिए सेट किया जाता है, फ़िक्स्ड प्रॉक्सी सर्वर के लिए नहीं.</translation> <translation id="4082393374666368382">सेटिंग - प्रबंधन</translation> <translation id="4087296516249690906">इवेंट बनाने के लिए बटन, Google Calendar में जल्दी से नया इवेंट बनाने के लिए Enter दबाएं</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">सत्यापन गड़बड़ी: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">सिस्टम व्यवस्थापक से संपर्क करें</translation> <translation id="450710068430902550">व्यवस्थापक के साथ शेयर करना</translation> -<translation id="4508814173490746936">टच आईडी का इस्तेमाल नहीं किया जा सका</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate की मदद से इस पेज का अनुवाद करने के लिए, पहले Tab और फिर Enter दबाएं</translation> <translation id="4510487217173779431">शू4 (एन्वेलप)</translation> <translation id="4514308731478712184">'Chrome इतिहास' में, अपनी गतिविधियां देखने की सुविधा बंद करें</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">सी0 (एन्वेलप)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> का समाप्ति तारीख और CVC डालें</translation> <translation id="6415778972515849510">क्रोमियम से आप अपने Google खाते की सुरक्षा कर सकते हैं और अपना पासवर्ड बदल सकते हैं.</translation> -<translation id="6423385022588644828">अब Touch ID का इस्तेमाल करके अपने कार्ड की जल्दी पुष्टि करें</translation> <translation id="6425092077175753609">मटीरियल</translation> <translation id="6427730057873428458">गेट फ़ोल्ड</translation> <translation id="6428450836711225518">अपने फ़ोन नंबर की पुष्टि करें</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> से एक निजी कनेक्शन स्थापित नहीं किया जा सकता क्योंकि आपके डिवाइस का तारीख और समय (<ph name="DATE_AND_TIME" />) गलत है.</translation> <translation id="8564182942834072828">अलग-अलग दस्तावेज़/बिना क्रम के लगाई गई कॉपी</translation> <translation id="8564985650692024650">अगर आपने अपने <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो क्रोमियम आपको उसे रीसेट करने का सुझाव देता है.</translation> -<translation id="8574899947864779331">Touch ID का इस्तेमाल करके कार्ड की जल्दी पुष्टि करें</translation> <translation id="8576310925653847813">होम थिएटर सिस्टम</translation> <translation id="8577348305244205642">वर्चुअल कार्ड उपलब्ध नहीं है</translation> <translation id="858637041960032120">फ़ोन नंबर जोड़ें @@ -2896,7 +2891,6 @@ <translation id="9039213469156557790">इसके अतिरिक्त, इस पेज में ऐसे अन्य संसाधन भी शामिल हैं, जो सुरक्षित नहीं हैं. ट्रांज़िट में होने के दौरान ये संसाधन अन्य लोगों द्वारा देखे जा सकते हैं और पेज का व्यवहार बदलने के लिए किसी हमवलावर द्वारा इनमें बदलाव किए जा सकते हैं.</translation> <translation id="9040464167025094690">डिवाइस को ढूंढने वाला बटन, Google खाते में अपने डिवाइस को ढूंढने वाली सुविधा पर जाने के लिए, Enter दबाएं</translation> <translation id="9042617223719777575">ज़्यादा क्षमता</translation> -<translation id="9044359186343685026">टच आईडी का इस्तेमाल करें</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">आपने <ph name="DOMAIN" /> पर पहुंचने की कोशिश की लेकिन सर्वर ने एक अमान्य प्रमाणपत्र पेश किया.</translation> <translation id="9050666287014529139">पासफ़्रेज़ (लंबा पासवर्ड)</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index 0efab92..5a72e84 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Upotreba i pomicanje kamere</translation> <translation id="191374271204266022">Kopiraj kao JSON</translation> <translation id="1914326953223720820">Usluga raspakiravanja</translation> -<translation id="1915697529809968049">Želite li koristiti Touch ID umjesto CVC-a?</translation> <translation id="1916770123977586577">Ponovo učitajte stranicu da bi se ažurirane postavke primijenile na ovu web-lokaciju</translation> <translation id="1919345977826869612">Oglasi</translation> <translation id="1919367280705858090">Pomoć za konkretne poruke pogreške</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">Došlo je do pogreške pri obradi narudžbe. Pokušajte ponovo.</translation> <translation id="4073797364926776829">Prikaz kartice</translation> <translation id="4075732493274867456">Klijent i poslužitelj ne podržavaju uobičajenu verziju SSL protokola ili paket šifri.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfiguracija proxy poslužitelja postavljena je za upotrebu URL-a .pac skripte, a ne fiksnih proxy poslužitelja.</translation> <translation id="4082393374666368382">Postavke – upravljanje</translation> <translation id="4087296516249690906">Gumb Izradite događaj, pritisnite Enter da biste brzo izradili novi događaj u Google kalendaru</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Pogreška pri provjeri valjanosti: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">kontaktirajte administratora sustava</translation> <translation id="450710068430902550">Dijeljenje s administratorom</translation> -<translation id="4508814173490746936">Upotreba Touch ID-ja nije uspjela</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, a zatim Enter da biste preveli ovu stranicu uz pomoć Google prevoditelja</translation> <translation id="4510487217173779431">Chou4 (omotnica)</translation> <translation id="4514308731478712184">Isključite putovanja</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (omotnica)</translation> <translation id="6410264514553301377">Unesite datum isteka i CVC za karticu <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium vam može pomoći da zaštitite svoj Google račun i promijenite zaporku.</translation> -<translation id="6423385022588644828">Odsad brže potvrdite svoje kartice upotrebom značajke Touch ID.</translation> <translation id="6425092077175753609">Materijal</translation> <translation id="6427730057873428458">Presavijanje u obliku prozora</translation> <translation id="6428450836711225518">Potvrdite svoj telefonski broj</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Sigurnu vezu s domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nije moguće uspostaviti jer datum i vrijeme (<ph name="DATE_AND_TIME" />) na vašem uređaju nisu točni.</translation> <translation id="8564182942834072828">Zasebni dokumenti/nerazvrstani primjerci</translation> <translation id="8564985650692024650">Chromium preporučuje poništavanje zaporke za organizaciju <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ako ste je upotrebljavali za druge web-lokacije.</translation> -<translation id="8574899947864779331">Upotrijebite značajku Touch ID za brže potvrđivanje kartica</translation> <translation id="8576310925653847813">Sustavi kućnog kina</translation> <translation id="8577348305244205642">Virtualna kartica nije dostupna</translation> <translation id="858637041960032120">Dodaj tel. broj @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Nadalje, ova stranica sadrži druge resurse koji nisu sigurni. Te resurse mogu vidjeti drugi tijekom prijenosa i napadač ih može izmijeniti kako bi promijenio ponašanje stranice.</translation> <translation id="9040464167025094690">Gumb Pronađi moj uređaj, pritisnite Enter da biste otvorili značajku Pronađi moj uređaj na svojem Google računu</translation> <translation id="9042617223719777575">Veliki kapacitet</translation> -<translation id="9044359186343685026">Koristi Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Pokušali ste pristupiti domeni <ph name="DOMAIN" />, ali poslužitelj je prikazao nevažeći certifikat.</translation> <translation id="9050666287014529139">Zaporka</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index c2b9663e..20dadfba 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamera használata és mozgatása</translation> <translation id="191374271204266022">Másolás JSON-ként</translation> <translation id="1914326953223720820">Kicsomagolási szolgáltatás</translation> -<translation id="1915697529809968049">A Touch ID funkciót szeretné használni a CVC helyett?</translation> <translation id="1916770123977586577">A frissített beállításoknak a webhelyen történő alkalmazásához töltse be újra az oldalt</translation> <translation id="1919345977826869612">Hirdetések</translation> <translation id="1919367280705858090">Segítség kérése adott hibaüzenet esetén</translation> @@ -1122,7 +1121,6 @@ <translation id="4072486802667267160">Hiba történt a rendelés feldolgozása közben. Kérjük, próbálja újra.</translation> <translation id="4073797364926776829">Kártya megtekintése</translation> <translation id="4075732493274867456">Az ügyfél és a szerver nem támogat ugyanolyan SSL-protokollverziót vagy rejtjelezési csomagot.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">A proxykonfiguráció a .pac típusú szkript URL-cím, nem pedig a fix proxyszerverek használatára van beállítva.</translation> <translation id="4082393374666368382">Beállítások – kezelés</translation> <translation id="4087296516249690906">Esemény létrehozása gomb, nyomja meg az Enter billentyűt új esemény gyors létrehozásához a Google Naptár szolgáltatással</translation> @@ -1294,7 +1292,6 @@ <translation id="4506176782989081258">Érvényesítési hiba: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kapcsolatfelvétel a rendszergazdával</translation> <translation id="450710068430902550">Megosztás a rendszergazdával</translation> -<translation id="4508814173490746936">Hiba történt a Touch ID használata során</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, nyomja le a Tab, majd az Enter billentyűt az oldalnak a Google Fordítóval történő lefordításához</translation> <translation id="4510487217173779431">Chou4 (boríték)</translation> <translation id="4514308731478712184">Az utazások kikapcsolása</translation> @@ -1968,7 +1965,6 @@ <translation id="6406765186087300643">C0 (boríték)</translation> <translation id="6410264514553301377">Írja be a(z) <ph name="CREDIT_CARD" /> kártyán szereplő lejárati dátumot és CVC-t</translation> <translation id="6415778972515849510">A Chromium segíthet a Google-fiók védelmében és a jelszó módosításában.</translation> -<translation id="6423385022588644828">Mostantól gyorsabban igazolhatja kártyáit a Touch ID használatával</translation> <translation id="6425092077175753609">Anyag</translation> <translation id="6427730057873428458">Kihajtható</translation> <translation id="6428450836711225518">Telefonszám ellenőrzése</translation> @@ -2737,7 +2733,6 @@ <translation id="8559762987265718583">Nem hozható létre privát kapcsolat a következővel: <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, mert az eszköz dátum- és időbeállítása helytelen (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Különálló dokumentumok/Nem szétválogatott másolatok</translation> <translation id="8564985650692024650">A Chromium azt javasolja, hogy adjon meg új <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-jelszót a régi helyett, ha azt más webhelyeken is használta.</translation> -<translation id="8574899947864779331">A Touch ID használata a kártyák gyorsabb ellenőrzése érdekében</translation> <translation id="8576310925653847813">Házimozirendszerek</translation> <translation id="8577348305244205642">A virtuális kártya nem áll rendelkezésre</translation> <translation id="858637041960032120">Szám hozzáadása @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">Emellett az oldal más forrásokat is tartalmaz, amelyek nem biztonságosak. Ezeket a forrásokat mások is megtekinthetik átvitel közben, és megváltoztatásukkal a támadók módosíthatják az oldal viselkedését.</translation> <translation id="9040464167025094690">Készülékkereső gomb. Nyomja le az Entert a Készülékkereső megnyitásához a Google-fiókban.</translation> <translation id="9042617223719777575">Nagy kapacitás</translation> -<translation id="9044359186343685026">Touch ID használata</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Megpróbálta elérni a(z) <ph name="DOMAIN" /> webhelyet, de a szerver érvénytelen tanúsítványt mutatott be.</translation> <translation id="9050666287014529139">Összetett jelszó</translation>
diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb index ce16d48..00c5ab3 100644 --- a/components/strings/components_strings_hy.xtb +++ b/components/strings/components_strings_hy.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Տեսախցիկի օգտագործում և տեղաշարժում</translation> <translation id="191374271204266022">Պատճենել JSON ձևաչափով</translation> <translation id="1914326953223720820">Ապասեղմման ծառայություն</translation> -<translation id="1915697529809968049">Օգտագործե՞լ Touch ID՝ CVC-ի փոխարեն</translation> <translation id="1916770123977586577">Կայքի թարմացված կարգավորումները կիրառելու համար վերաբեռնեք այս էջը</translation> <translation id="1919345977826869612">Գովազդ</translation> <translation id="1919367280705858090">Որոշակի սխալների վերացման օգնություն</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Վճարումը մշակելու ընթացքում սխալ առաջացավ: Նորից փորձեք:</translation> <translation id="4073797364926776829">Դիտել քարտը</translation> <translation id="4075732493274867456">Սպասառուն և սերվերը չեն աջակցում SSL հաղորդակարգի միևնույն տարբերակը կամ ծածկագրման լրակազմը:</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Պրոքսի-սերվերի կազմաձևումը նախատեսում է PAC սկրիպտների URL-ների օգտագործում՝ ֆիքսված պրոքսի-սերվերների փոխարեն:</translation> <translation id="4082393374666368382">Կարգավորումներ – Կառավարում</translation> <translation id="4087296516249690906">«Ստեղծել միջոցառում» կոճակ։ Google Օրացույցում արագ միջոցառում ստեղծելու համար սեղմեք Enter։</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Վավերացման սխալ՝ <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Կապվել համակարգի ադմինիստրատորի հետ</translation> <translation id="450710068430902550">Համօգտագործում ադմինիստրատորի հետ</translation> -<translation id="4508814173490746936">Չհաջողվեց օգտագործել Touch ID-ն</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />։ Այս էջը Google Translate-ով թարգմանելու համար սեղմեք Tab, ապա՝ Enter։</translation> <translation id="4510487217173779431">Chou4 (ծրար)</translation> <translation id="4514308731478712184">Անջատել Այցելությունները</translation> @@ -1971,7 +1968,6 @@ <translation id="6406765186087300643">C0 (ծրար)</translation> <translation id="6410264514553301377">Մուտքագրեք <ph name="CREDIT_CARD" /> քարտի սպառման ամսաթիվը և CVC կոդը</translation> <translation id="6415778972515849510">Chromium-ը կօգնի պաշտպանել ձեր Google հաշիվը և փոխել գաղտնաբառը։</translation> -<translation id="6423385022588644828">Այսուհետ ավելի արագ հաստատեք ձեր քարտերը Touch ID-ի միջոցով</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Երկփեղկ ծալում</translation> <translation id="6428450836711225518">Հաստատեք ձեր հեռախոսահամարը</translation> @@ -2740,7 +2736,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />-ի հետ կապակցում չի կարող հաստատվել, քանի որ ձեր սարքի ամսաթիվը և ժամը (<ph name="DATE_AND_TIME" />) սխալ է:</translation> <translation id="8564182942834072828">Մի քանի փաստաթուղթ/չառանձնացված պատճեններ</translation> <translation id="8564985650692024650">Խորհուրդ ենք տալիս վերակայել <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-ի ձեր գաղտնաբառը, եթե այն օգտագործել եք այլ կայքերում:</translation> -<translation id="8574899947864779331">Օգտագործել Touch ID-ն՝ քարտերն ավելի արագ հաստատելու համար</translation> <translation id="8576310925653847813">Տնային կինոթատրոններ</translation> <translation id="8577348305244205642">Վիրտուալ քարտն անհասանելի է</translation> <translation id="858637041960032120">Ավելացնել հեռախոսահամար</translation> @@ -2896,7 +2891,6 @@ <translation id="9039213469156557790">Բացի այդ, այս էջը պարունակում է այլ ռեսուրսներ, որոնք ապահով չեն: Այս ռեսուրսները տարանցման ժամանակ կարող են դիտվել ուրիշների կողմից և փոփոխվել հարձակվողի կողմից, ինչը կփոխի էջի վարքագիծը:</translation> <translation id="9040464167025094690">«Գտնել իմ սարքը» կոճակ։ Սեղմեք Enter՝ ձեր Google հաշվում «Գտնել իմ սարքը» բաժինը բացելու համար։</translation> <translation id="9042617223719777575">Մեծ տարողություն</translation> -<translation id="9044359186343685026">Օգտագործել Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Դուք փորձում էիք մտնել <ph name="DOMAIN" />, սակայն սերվերը սխալ վկայագիր ներկայացրեց:</translation> <translation id="9050666287014529139">Անցաբառ</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index 66ffaa2..d6e1e54 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Penggunaan & gerakan kamera</translation> <translation id="191374271204266022">Salin sebagai JSON</translation> <translation id="1914326953223720820">Layanan Ekstraksi File</translation> -<translation id="1915697529809968049">Gunakan Touch ID dan bukan CVC?</translation> <translation id="1916770123977586577">Untuk menerapkan setelan yang telah diupdate pada situs ini, muat ulang halaman ini</translation> <translation id="1919345977826869612">Iklan</translation> <translation id="1919367280705858090">Mendapatkan bantuan terkait pesan error tertentu</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">Terjadi error saat memproses pesanan Anda. Harap coba lagi.</translation> <translation id="4073797364926776829">Lihat kartu</translation> <translation id="4075732493274867456">Klien dan server tidak mendukung versi protokol SSL umum atau cipher suite.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfigurasi proxy disetel untuk menggunakan URL skrip .pac, bukan server proxy yang tetap.</translation> <translation id="4082393374666368382">Setelan - Pengelolaan</translation> <translation id="4087296516249690906">Tombol Buat acara, tekan Enter untuk membuat acara baru di Google Kalender dengan cepat</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Kesalahan validasi: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Hubungi admin sistem</translation> <translation id="450710068430902550">Berbagi dengan Administrator</translation> -<translation id="4508814173490746936">Tidak dapat menggunakan Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab lalu Enter untuk menerjemahkan halaman ini dengan Google Terjemahan</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Nonaktifkan Perjalanan</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Masukkan tanggal kedaluwarsa dan CVC <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium dapat membantu Anda melindungi Akun Google dan mengubah sandi Anda.</translation> -<translation id="6423385022588644828">Mulai sekarang, konfirmasikan kartu Anda lebih cepat menggunakan Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Gate fold</translation> <translation id="6428450836711225518">Verifikasi nomor telepon Anda</translation> @@ -2734,7 +2730,6 @@ <translation id="8559762987265718583">Sambungan pribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak dapat dibuat karena tanggal dan waktu (<ph name="DATE_AND_TIME" />) perangkat tidak benar.</translation> <translation id="8564182942834072828">Dokumen terpisah/Salinan tidak tersusun</translation> <translation id="8564985650692024650">Chromium menyarankan untuk menyetel ulang sandi <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika Anda juga menggunakannya di situs lain.</translation> -<translation id="8574899947864779331">Gunakan Touch ID untuk mengonfirmasi kartu dengan lebih cepat</translation> <translation id="8576310925653847813">Sistem home theater</translation> <translation id="8577348305244205642">Kartu virtual tidak tersedia</translation> <translation id="858637041960032120">+ nomor telepon</translation> @@ -2890,7 +2885,6 @@ <translation id="9039213469156557790">Selain itu, halaman ini berisi sumber daya lainnya yang tidak aman. Sumber daya ini dapat dilihat oleh orang lain saat transit dan dapat dimodifikasi oleh penyerang untuk mengubah perilaku halaman.</translation> <translation id="9040464167025094690">Tombol Temukan perangkat saya, tekan Enter untuk membuka fitur temukan perangkat saya di Akun Google</translation> <translation id="9042617223719777575">Kapasitas Besar</translation> -<translation id="9044359186343685026">Gunakan Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Anda berupaya menjangkau <ph name="DOMAIN" />, tetapi server menyajikan sertifikat yang tidak valid.</translation> <translation id="9050666287014529139">Frasa sandi</translation>
diff --git a/components/strings/components_strings_is.xtb b/components/strings/components_strings_is.xtb index 14c40d33..e2ca721 100644 --- a/components/strings/components_strings_is.xtb +++ b/components/strings/components_strings_is.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Notkun og hreyfing myndavélar</translation> <translation id="191374271204266022">Afrita sem JSON</translation> <translation id="1914326953223720820">Afþjöppunarþjónusta</translation> -<translation id="1915697529809968049">Viltu nota snertiauðkenni í stað CVC-númers?</translation> <translation id="1916770123977586577">Endurnýjaðu þessa síðu til að nota uppfærðar stillingar á þetta vefsvæði</translation> <translation id="1919345977826869612">Auglýsingar</translation> <translation id="1919367280705858090">Fáðu aðstoð varðandi einstök villuskilaboð</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Villa kom upp þegar verið var að vinna úr pöntuninni þinni. Reyndu aftur.</translation> <translation id="4073797364926776829">Skoða kort</translation> <translation id="4075732493274867456">Biðlarinn og þjónninn styðja ekki sameiginlega útgáfu SSL-samskiptareglna eða dulkóðunarsafns.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy-stillingar nota vefslóð á .pac-skriftu en ekki fasta proxy-þjóna.</translation> <translation id="4082393374666368382">Stillingar – Stjórnun</translation> <translation id="4087296516249690906">Hnappurinn „Búa til viðburð“, ýttu á Enter til að búa til nýjan viðburð í Google dagatali á skjótan hátt</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Prófunarvilla: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Hafa samband við kerfisstjórann</translation> <translation id="450710068430902550">Deilir með kerfisstjóra.</translation> -<translation id="4508814173490746936">Ekki var hægt að nota Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ýttu á Tab og svo Enter til að þýða þessa síðu með Google Translate</translation> <translation id="4510487217173779431">Chou4 (umslag)</translation> <translation id="4514308731478712184">Slökkva á ferðum</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (umslag)</translation> <translation id="6410264514553301377">Sláðu inn gildistímann og CVC-númerið fyrir <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium getur hjálpað þér að vernda Google reikninginn þinn og breyta aðgangsorðinu.</translation> -<translation id="6423385022588644828">Staðfestu kortin þín hraðar með því að nota Touch ID héðan í frá</translation> <translation id="6425092077175753609">Nýja útlitshönnunin</translation> <translation id="6427730057873428458">Bæklingabrot</translation> <translation id="6428450836711225518">Staðfestu símanúmerið þitt</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Ekki er hægt að koma á lokaðri tengingu við <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> vegna þess að dag- og tímasetning tækisins (<ph name="DATE_AND_TIME" />) er röng.</translation> <translation id="8564182942834072828">Aðskilin skjöl / ekki samröðuð eintök</translation> <translation id="8564985650692024650">Chromium mælir með því að þú endurstillir aðgangsorðið fyrir <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ef þú notaðir það einnig á öðrum síðum.</translation> -<translation id="8574899947864779331">Notaðu Touch ID til að staðfesta kort hraðar</translation> <translation id="8576310925653847813">Heimabíókerfi</translation> <translation id="8577348305244205642">Sýndarkort ekki tiltækt</translation> <translation id="858637041960032120">Bæta við símanúmeri</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Aukinheldur inniheldur þessi síða önnir tilföng sem ekki er hægt að treysta. Þessi tilföng kunna að vera skoðuð af öðrum á meðan þau eru í umferð, og tölvuþrjótur gæti breytt þeim til þess að reyna að breyta hegðun síðunnar.</translation> <translation id="9040464167025094690">Hnappur til að finna tækið mitt, ýttu á Enter til að opna „Finna tækið mitt“ á Google reikningnum</translation> <translation id="9042617223719777575">Stór bakki</translation> -<translation id="9044359186343685026">Nota snertiauðkenni</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Þú reyndir að tengjast <ph name="DOMAIN" /> en netþjónninn framvísaði ógildu vottorði.</translation> <translation id="9050666287014529139">Aðgangsorð</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index d8b5a69..08dd23b 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uso e movimento della videocamera</translation> <translation id="191374271204266022">Copia come JSON</translation> <translation id="1914326953223720820">Servizio di decompressione</translation> -<translation id="1915697529809968049">Usare Touch ID anziché CVC?</translation> <translation id="1916770123977586577">Ricarica la pagina per applicare le impostazioni aggiornate a questo sito</translation> <translation id="1919345977826869612">Annunci</translation> <translation id="1919367280705858090">Assistenza per un messaggio di errore specifico</translation> @@ -1120,7 +1119,6 @@ <translation id="4072486802667267160">Si è verificato un errore durante l'elaborazione dell'ordine. Riprova.</translation> <translation id="4073797364926776829">Visualizza carta</translation> <translation id="4075732493274867456">Il client e il server non supportano una suite di crittografia o una versione del protocollo SSL comuni.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">L'impostazione della configurazione proxy prevede l'utilizzo di un URL script .pac, non di server proxy fissi.</translation> <translation id="4082393374666368382">Impostazioni - Gestione</translation> <translation id="4087296516249690906">Pulsante Crea evento, premi Invio per creare rapidamente un nuovo evento in Google Calendar</translation> @@ -1292,7 +1290,6 @@ <translation id="4506176782989081258">Errore di convalida. <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Contattare l'amministratore di sistema</translation> <translation id="450710068430902550">Condivisione con l'amministratore</translation> -<translation id="4508814173490746936">Impossibile usare Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, premi Tab poi Invio per tradurre questa pagina con Google Traduttore</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Disattiva i percorsi</translation> @@ -1965,7 +1962,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Inserisci la data di scadenza e il codice CVC della carta <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium può aiutarti a proteggere il tuo Account Google e a modificare la password.</translation> -<translation id="6423385022588644828">Verifica più velocemente le tue carte usando Touch ID d'ora in poi</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Piegatura a finestra</translation> <translation id="6428450836711225518">Verifica il numero di telefono</translation> @@ -2735,7 +2731,6 @@ <translation id="8559762987265718583">Impossibile stabilire una connessione privata con il sito <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> perché data e ora del dispositivo (<ph name="DATE_AND_TIME" />) sono sbagliate.</translation> <translation id="8564182942834072828">Documenti separati/Copie non fascicolate</translation> <translation id="8564985650692024650">Chromium ti consiglia di reimpostare la password di <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, se l'hai utilizzata su altri siti.</translation> -<translation id="8574899947864779331">Usa Touch ID per verificare più velocemente le carte</translation> <translation id="8576310925653847813">Sistemi home theater</translation> <translation id="8577348305244205642">Carta virtuale non disponibile</translation> <translation id="858637041960032120">Aggiungi telefono</translation> @@ -2891,7 +2886,6 @@ <translation id="9039213469156557790">Inoltre, questa pagina include altre risorse che non sono sicure. Tali risorse possono essere visualizzate da altri durante il transito dei dati e possono essere modificate da un utente malintenzionato al fine di modificare il comportamento della pagina.</translation> <translation id="9040464167025094690">Pulsante Trova il mio dispositivo, premi Invio per andare a Trova il mio dispositivo nell'Account Google.</translation> <translation id="9042617223719777575">Capacità elevata</translation> -<translation id="9044359186343685026">Usa Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Hai tentato di connetterti a <ph name="DOMAIN" />, ma il server ha presentato un certificato scaduto.</translation> <translation id="9050666287014529139">Passphrase</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 51629fe..d202e4cb 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">הרשאה להשתמש במצלמה ולהזיז אותה</translation> <translation id="191374271204266022">העתקה כ-JSON</translation> <translation id="1914326953223720820">שירות לפתיחת קבצים דחוסים</translation> -<translation id="1915697529809968049">האם להשתמש ב-Touch ID במקום ב-CVC?</translation> <translation id="1916770123977586577">כדי להחיל על האתר את ההגדרות המעודכנות, יש לטעון מחדש את הדף</translation> <translation id="1919345977826869612">מודעות</translation> <translation id="1919367280705858090">עזרה לגבי הודעות שגיאה ספציפיות</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">תמונות ממוזערות</translation> <translation id="3227137524299004712">מיקרופון</translation> <translation id="3229041911291329567">פרטי גרסה של המכשיר והדפדפן</translation> +<translation id="3229277193950731405">העתקת מחרוזת הגרסה</translation> <translation id="323107829343500871">יש להזין את קוד האימות של הכרטיס <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">זהה תמיד תוכן חשוב באתר זה</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, מקישים על Tab ואז על Enter כדי להתאים אישית את מראה הדפדפן</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">התרחשה שגיאה במהלך עיבוד התשלום שלך. יש לנסות שוב.</translation> <translation id="4073797364926776829">הצגת הכרטיס</translation> <translation id="4075732493274867456">הלקוח והשרת אינם תומכים בגרסה נפוצה של פרוטוקול SSL או בחבילת הצפנה.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">תצורת ה-Proxy מוגדרת להשתמש בכתובת אתר של סקריפט מסוג .Pac ולא בשרתי Proxy קבועים.</translation> <translation id="4082393374666368382">הגדרות - ניהול</translation> <translation id="4087296516249690906">לחצן ליצירת אירוע, מקישים על Enter כדי ליצור במהירות אירוע חדש ביומן Google</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">שגיאת אימות: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">לפנות אל מנהל המערכת</translation> <translation id="450710068430902550">שיתוף עם מנהל מערכת</translation> -<translation id="4508814173490746936">לא ניתן להשתמש ב-Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, יש להקיש על Tab ואז על Enter כדי לתרגם את הדף הזה באמצעות Google Translate</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">השבתת התהליכים</translation> @@ -1974,7 +1972,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">יש להזין את תאריך התפוגה ואת קוד האימות של <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">בעזרת Chromium אפשר להגן על חשבון Google ולשנות את הסיסמה.</translation> -<translation id="6423385022588644828">כדי לאשר את הכרטיסים שלך מהר יותר, אפשר להשתמש ב-Touch ID מעכשיו והלאה</translation> <translation id="6425092077175753609">עיצוב חדשני תלת-ממדי</translation> <translation id="6427730057873428458">כנף בקיפול</translation> <translation id="6428450836711225518">אימות מספר הטלפון שלך</translation> @@ -2743,7 +2740,6 @@ <translation id="8559762987265718583">לא ניתן ליצור חיבור פרטי אל <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> מפני שהתאריך והשעה (<ph name="DATE_AND_TIME" />) במכשיר שלך שגויים.</translation> <translation id="8564182942834072828">מסמכים נפרדים/עותקים לא מסודרים</translation> <translation id="8564985650692024650">אם הזנת את הסיסמה של <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> באתרים אחרים, ההמלצה של Chromium היא לאפס אותה.</translation> -<translation id="8574899947864779331">שימוש ב-Touch ID כדי לאשר כרטיסים מהר יותר</translation> <translation id="8576310925653847813">מערכות קולנוע ביתי</translation> <translation id="8577348305244205642">הכרטיס הווירטואלי לא זמין</translation> <translation id="858637041960032120">הוספת מספר טלפון</translation> @@ -2899,7 +2895,6 @@ <translation id="9039213469156557790">כמו כן, דף זה כולל משאבים נוספים שאינם מאובטחים. גורמים אחרים עלולים לראות את המשאבים האלה במהלך העברתם, ותוקף עלול לשנות אותם באופן שישנה את התנהגות הדף.</translation> <translation id="9040464167025094690">הלחצן 'איפה המכשיר שלי', מקישים על Enter כדי להיכנס ל'איפה המכשיר שלי' דרך חשבון Google</translation> <translation id="9042617223719777575">קיבולת גדולה</translation> -<translation id="9044359186343685026">שימוש ב-Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ניסית להגיע ל-<ph name="DOMAIN" />, אך השרת הציג אישור לא חוקי.</translation> <translation id="9050666287014529139">ביטוי סיסמה</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 1a2d2b85..a6bf99e9 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">カメラの使用と移動</translation> <translation id="191374271204266022">JSON 形式でコピー</translation> <translation id="1914326953223720820">解凍サービス</translation> -<translation id="1915697529809968049">CVC の代わりに Touch ID を使用しますか?</translation> <translation id="1916770123977586577">更新後の設定をこのサイトに適用するには、このページを再読み込みしてください</translation> <translation id="1919345977826869612">広告</translation> <translation id="1919367280705858090">特定のエラー メッセージに関する情報</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">ご注文の処理中にエラーが発生しました。もう一度お試しください。</translation> <translation id="4073797364926776829">カードを表示</translation> <translation id="4075732493274867456">クライアントとサーバーで、共通の SSL プロトコル バージョンまたは暗号スイートがサポートされていません。</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">プロキシは固定プロキシ サーバーではなく .pac スクリプト URL を使用するように設定されています。</translation> <translation id="4082393374666368382">設定 - 管理</translation> <translation id="4087296516249690906">[イベントを作成] ボタンです。Enter キーを押すと、Google カレンダーで新しいイベントをすばやく作成します</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">検証エラー: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">システム管理者に問い合わせる</translation> <translation id="450710068430902550">管理者との共有</translation> -<translation id="4508814173490746936">Touch ID を使用できませんでした</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> です。Tab キー、Enter キーの順に押すと、Google 翻訳を使用してこのページを翻訳します</translation> <translation id="4510487217173779431">長4(封筒)</translation> <translation id="4514308731478712184">ジャーニーをオフにする</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0(封筒)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> の有効期限と CVC を入力</translation> <translation id="6415778972515849510">Chromium には Google アカウントの保護とパスワードの変更をサポートする機能があります。</translation> -<translation id="6423385022588644828">今後 Touch ID を使用して、カードの確認をより迅速に行います</translation> <translation id="6425092077175753609">マテリアル</translation> <translation id="6427730057873428458">観音折り</translation> <translation id="6428450836711225518">電話番号の確認</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">デバイスの日時(<ph name="DATE_AND_TIME" />)が正しくないため、<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> へのプライベート接続を確立できません。</translation> <translation id="8564182942834072828">個別のドキュメント(丁合いなし)</translation> <translation id="8564985650692024650"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> パスワードを他のサイトで再使用した場合、Chromium ではパスワードの再設定を促すメッセージが表示されます。</translation> -<translation id="8574899947864779331">Touch ID を使用してカードをすばやく確認する</translation> <translation id="8576310925653847813">ホームシアター システム</translation> <translation id="8577348305244205642">仮想カードを使用できません</translation> <translation id="858637041960032120">電話番号を追加 @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">加えて、このページには安全でない他のリソースが含まれています。このリソースは送信中に他のユーザーから見られる可能性があります。また、悪意のあるユーザーによって改変されページの動作が変わる可能性もあります。</translation> <translation id="9040464167025094690">[デバイスを探す] ボタンです。Enter キーを押すと、Google アカウントで「デバイスを探す」に移動します</translation> <translation id="9042617223719777575">大容量</translation> -<translation id="9044359186343685026">Touch ID を使用</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> にアクセスしようとしましたが、サーバーから無効な証明書が提示されました。</translation> <translation id="9050666287014529139">パスフレーズ</translation>
diff --git a/components/strings/components_strings_ka.xtb b/components/strings/components_strings_ka.xtb index d6bfc0ea..31444d77 100644 --- a/components/strings/components_strings_ka.xtb +++ b/components/strings/components_strings_ka.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">კამერის გამოყენება და გადაადგილება</translation> <translation id="191374271204266022">JSON-ის სახით კოპირება</translation> <translation id="1914326953223720820">არქივიდან ამოღების სერვისი</translation> -<translation id="1915697529809968049">გსურთ გამოიყენოთ Touch ID ნაცვლად CVC-ისა?</translation> <translation id="1916770123977586577">განახლებული პარამეტრების ამ საიტისთვის მისასადაგებლად საჭიროა გვერდის გადატვირთვა</translation> <translation id="1919345977826869612">რეკლამა</translation> <translation id="1919367280705858090">შეცდომის შესახებ კონკრეტულ შეტყობინებებთან დაკავშირებული დახმარება</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">ესკიზები</translation> <translation id="3227137524299004712">მიკროფონი</translation> <translation id="3229041911291329567">თქვენი მოწყობილობისა და ბრაუზერის ვერსიების ინფორმაცია</translation> +<translation id="3229277193950731405">ვერსიის ფრაზის კოპირება</translation> <translation id="323107829343500871">შეიყვანეთ <ph name="CREDIT_CARD" />-ის CVC</translation> <translation id="3234666976984236645">ამ საიტზე ყოველთვის აღმოაჩინოს მნიშვნელოვანი შინაარსი</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, თქვენი ბრაუზერის იერსახის მოსარგებად დააჭირეთ კლავიშს Tab, შემდეგ კი Enter-ს</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">თქვენი შეკვეთის დამუშავება ვერ მოხერხდა. გთხოვთ, ცადოთ ხელახლა.</translation> <translation id="4073797364926776829">ბარათის ნახვა</translation> <translation id="4075732493274867456">კლიენტისა და სერვერის მიერ არ არის მხარდაჭერილი SSL პროტოკოლის საერთო ვერსია ან შიფრატორების ნაკრები.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">პროქსის კონფიგურაცია დაყენებულია .pac სკრიპტის URL-ის გამოსაყენებლად, ფიქსირებული პროქსი სერვერების ნაცვლად.</translation> <translation id="4082393374666368382">პარამეტრები — მართვა</translation> <translation id="4087296516249690906">მოვლენის შექმნის ღილაკი, Google Calendar-ში ახალი მოვლენის სწრაფად შესაქმნელად დააჭირეთ კლავიშს Enter</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">შეცდომა დამოწმებისას: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">სისტემის ადმინისტრატორთან დაკავშირება</translation> <translation id="450710068430902550">ადმინისტრატორთან გაზიარება</translation> -<translation id="4508814173490746936">Touch ID-ს გამოყენება ვერ მოხერხდა</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ამ გვერდის Google Translate-ით სათარგმნად დააჭირეთ კლავიშს Tab, შემდეგ კი Enter-ს</translation> <translation id="4510487217173779431">Chou4 (კონვერტი)</translation> <translation id="4514308731478712184">პროცესების გამორთვა</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (კონვერტი)</translation> <translation id="6410264514553301377">შეიყვანეთ <ph name="CREDIT_CARD" />-ის მოქმედების ვადა და CVC</translation> <translation id="6415778972515849510">Chromium-ს შეუძლია დაგეხმაროთ თქვენი Google ანგარიშის დაცვასა და პაროლის შეცვლაში.</translation> -<translation id="6423385022588644828">დაადასტურეთ ბარათები უფრო სწრაფად ამიერიდან Touch ID-ს გამოყენების მეშვეობით</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">დაკეცვა ჭიშკრის ფორმით</translation> <translation id="6428450836711225518">დაადასტურეთ თქვენი ტელეფონის ნომერი</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />-თან პირადი კავშირის დამყარება შეუძლებელია, რადგან თქვენი მოწყობილობის თარიღი და დრო (<ph name="DATE_AND_TIME" />) არასწორია.</translation> <translation id="8564182942834072828">სხვადასხვა დოკუმენტი/შეურჩეველი ასლები</translation> <translation id="8564985650692024650">Chromium გირჩევთ, გადააყენოთ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-ის პაროლი, თუ მას სხვა საიტებზეც იყენებთ.</translation> -<translation id="8574899947864779331">Touch ID-ს გამოყენება ბარათების უფრო სწრაფად დასადასტურებლად</translation> <translation id="8576310925653847813">სახლის კინოთეატრის სისტემები</translation> <translation id="8577348305244205642">ვირტუალური ბარათი მიუწვდომელია</translation> <translation id="858637041960032120">დაამატეთ ტელეფონის ნომერი</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">გარდა ამისა, ეს გვერდი შეიცავს სხვა არაუსაფრთხო რესურსებს. ამ რესურსების დათვალიერება გადაცემისას სხვა პირებს შეუძლიათ, ხოლო თავდამსხმელს მათი მოდიფიკაცია გვერდის მუშაობის შეცვლის მიზნით შეუძლია.</translation> <translation id="9040464167025094690">ჩემი მოწყობილობის პოვნის ღილაკი, Google ანგარიშში თქვენი მოწყობილობის საპოვნელად დააჭირეთ კლავიშს Enter</translation> <translation id="9042617223719777575">დიდი მოცულობის</translation> -<translation id="9044359186343685026">Touch ID-ს გამოყენება</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> — <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">თქვენ სცადეთ <ph name="DOMAIN" />-თან დაკავშირება, მაგრამ სერვერმა წარმოადგინა არასწორი სერტიფიკატი.</translation> <translation id="9050666287014529139">საიდუმლო ფრაზა</translation>
diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb index 43541ef4..ae1217e 100644 --- a/components/strings/components_strings_kk.xtb +++ b/components/strings/components_strings_kk.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Камераны пайдалану және жылжыту</translation> <translation id="191374271204266022">JSON етіп көшіру</translation> <translation id="1914326953223720820">Мұрағаттан шығару қызметі</translation> -<translation id="1915697529809968049">CVC орнына Touch ID қолданасыз ба?</translation> <translation id="1916770123977586577">Жаңартылған параметрлерді бұл сайтқа қолдану үшін осы бетті қайта жүктеңіз</translation> <translation id="1919345977826869612">Жарнамалар</translation> <translation id="1919367280705858090">Арнайы қате туралы хабар арқылы көмек алу</translation> @@ -1122,7 +1121,6 @@ <translation id="4072486802667267160">Төлем жасау кезінде қате кетті. Әрекетті қайталаңыз.</translation> <translation id="4073797364926776829">Картаны көру</translation> <translation id="4075732493274867456">Клиент пен сервер ортақ SSL протоколының нұсқасын немесе шифрлар жиынтығын қолдамайды.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Прокси конфигурациясы бекітілген прокси серверлерді емес, .pac сценарий URL мекенжайын пайдалануға орнатылған.</translation> <translation id="4082393374666368382">Параметрлер − Басқару</translation> <translation id="4087296516249690906">"Іс-шара жасау" түймесі, Google Calendar-да жылдам жаңа іс-шара жасау үшін Enter пернесін басыңыз.</translation> @@ -1294,7 +1292,6 @@ <translation id="4506176782989081258">Тексеру қатесі: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Жүйе әкімшісіне хабарласу</translation> <translation id="450710068430902550">Әкімшімен бөлісу</translation> -<translation id="4508814173490746936">Сенсорлық идентификаторды пайдалану мүмкін болмады</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Бұл бетті Google Translate арқылы аудару үшін Tab, одан кейін Enter пернесін басыңыз.</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Journeys функциясын өшіру</translation> @@ -1968,7 +1965,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> картасының жарамдылық мерзімін және CVC кодын енгізіңіз</translation> <translation id="6415778972515849510">Chromium браузері Google аккаунтыңызды қорғауға және құпия сөзіңізді өзгертуге көмектеседі.</translation> -<translation id="6423385022588644828">Қазірден бастап Touch ID арқылы карталараңызды жылдам растаңыз</translation> <translation id="6425092077175753609">Материал</translation> <translation id="6427730057873428458">Қақпа тәрізді бүктеу</translation> <translation id="6428450836711225518">Телефон нөміріңізді растаңыз</translation> @@ -2737,7 +2733,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> доменімен жеке байланыс орнату мүмкін емес, себебі құрылғыңыздың күні мен уақыты (<ph name="DATE_AND_TIME" />) дұрыс емес.</translation> <translation id="8564182942834072828">Бөлек құжаттар/реттелмеген көшірмелер</translation> <translation id="8564985650692024650">Chromium басқа сайттарда пайдаланылған <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> құпия сөзін қайта орнатуды ұсынады.</translation> -<translation id="8574899947864779331">Карталарыңызды жылдам растау үшін Touch ID пайдаланыңыз.</translation> <translation id="8576310925653847813">Үй кинотеатры жүйелері</translation> <translation id="8577348305244205642">Виртуалдық карта қолжетімсіз</translation> <translation id="858637041960032120">Телефон нөмірін қосу</translation> @@ -2893,7 +2888,6 @@ <translation id="9039213469156557790">Сонымен қатар бұл бет басқа да қауіпті ресурстарды қамтиды. Бұл ресурстарды өту кезінде басқалар көре алады және беттің іс-әрекетіне өзгеріс енгізу мақсатында оны шабуылшы өзгерте алады.</translation> <translation id="9040464167025094690">"Find My Device" түймесі. Google аккаунтында құрылғыны табу бөліміне кіру үшін Enter пернесін басыңыз.</translation> <translation id="9042617223719777575">Үлкен сыйымдылық</translation> -<translation id="9044359186343685026">Touch ID пайдалану</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> доменіне қол жеткізуге әрекет еттіңіз, бірақ сервер жарамсыз сертификат ұсынды.</translation> <translation id="9050666287014529139">Құпия фраза</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 33bc7c0..479f3ab 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -381,7 +381,6 @@ <translation id="1908217026282415406">ការផ្លាស់ទី និងការប្រើប្រាស់កាមេរ៉ា</translation> <translation id="191374271204266022">ចម្លងជា JSON</translation> <translation id="1914326953223720820">សេវាកម្មពន្លាឯកសារ</translation> -<translation id="1915697529809968049">ប្រើ Touch ID ជំនួសឱ្យ CVC?</translation> <translation id="1916770123977586577">ដើម្បីអនុវត្តការកំណត់ដែលអ្នកបានធ្វើបច្ចុប្បន្នភាពចំពោះទំព័រនេះ សូមផ្ទុកទំព័រនេះឡើងវិញ</translation> <translation id="1919345977826869612">ពាណិជ្ជកម្ម</translation> <translation id="1919367280705858090">ទទួលបានជំនួយដោយប្រើសារបញ្ហាជាក់លាក់មួយ</translation> @@ -1127,7 +1126,6 @@ <translation id="4072486802667267160">មានបញ្ហាក្នុងការដំណើរការការបញ្ជាទិញរបស់អ្នក។ សូមព្យាយាមម្ដងទៀត។</translation> <translation id="4073797364926776829">មើលកាត</translation> <translation id="4075732493274867456">ម៉ាស៊ីនកូន និងម៉ាស៊ីនមេមិនគាំទ្រកំណែប្រូតូកូល SSL ទូទៅ ឬសៃភ័រស៊ូត (cipher suite) ទេ។</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">ការតំឡើងប្រូកស៊ីត្រូវបានកំណត់ឲ្យប្រើ URL ស្គ្រីបផេក មិនមែនម៉ាស៊ីនមេប្រូកស៊ីដែលថេរទេ។</translation> <translation id="4082393374666368382">ការកំណត់៖ ការគ្រប់គ្រង</translation> <translation id="4087296516249690906">ប៊ូតុងបង្កើតព្រឹត្តិការណ៍ ចុច Enter ដើម្បីបង្កើតព្រឹត្តិការណ៍ថ្មីនៅក្នុង Google ប្រតិទិនបានរហ័ស</translation> @@ -1300,7 +1298,6 @@ <translation id="4506176782989081258">កំហុសឆ្គងសុពលភាព៖ <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ទាក់ទងទៅអ្នកគ្រប់គ្រងប្រព័ន្ធ</translation> <translation id="450710068430902550">ការចែករំលែកជាមួយអ្នកគ្រប់គ្រង</translation> -<translation id="4508814173490746936">មិនអាចប្រើ Touch ID បានទេ</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ចុច "Tab" រួចចុច "Enter" ដើម្បីបកប្រែទំព័រនេះដោយប្រើ Google បកប្រែ</translation> <translation id="4510487217173779431">Chou4 (ស្រោមសំបុត្រ)</translation> <translation id="4514308731478712184">បិទការស្វែងរក</translation> @@ -1974,7 +1971,6 @@ <translation id="6406765186087300643">C0 (ស្រោមសំបុត្រ)</translation> <translation id="6410264514553301377">បញ្ចូលកាលបរិច្ឆេទផុតកំណត់ និង CVC សម្រាប់ <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium អាចជួយអ្នកក្នុងការការពារគណនី Google និងផ្លាស់ប្ដូរពាក្យសម្ងាត់របស់អ្នក។</translation> -<translation id="6423385022588644828">បញ្ជាក់បណ្ណរបស់អ្នករហ័សជាងមុនដោយប្រើ Touch ID ចាប់ពីពេលនេះតទៅ</translation> <translation id="6425092077175753609">សម្ភារៈ</translation> <translation id="6427730057873428458">បត់ជាផ្ទាំងៗមានសណ្ឋានជាទ្វារ</translation> <translation id="6428450836711225518">ផ្ទៀងផ្ទាត់លេខទូរសព្ទរបស់អ្នក</translation> @@ -2745,7 +2741,6 @@ <translation id="8559762987265718583">ការភ្ជាប់ឯកជនទៅ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> មិនអាចធ្វើឡើងទេ ពីព្រោះកាលបរិច្ឆេទ និងម៉ោងឧបករណ៍របស់អ្នក (<ph name="DATE_AND_TIME" />)មិនត្រឹមត្រូវ។</translation> <translation id="8564182942834072828">ឯកសារដាច់ដោយឡែក/ច្បាប់ចម្លងដាច់ដោយឡែក</translation> <translation id="8564985650692024650">Chromium ណែនាំឱ្យកំណត់ពាក្យសម្ងាត់ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> របស់អ្នកឡើងវិញ ប្រសិនបើអ្នកបានប្រើវាម្តងទៀតនៅលើទំព័រផ្សេង។</translation> -<translation id="8574899947864779331">ប្រើ Touch ID ដើម្បីបញ្ជាក់បណ្ណឱ្យបានរហ័សជាងមុន</translation> <translation id="8576310925653847813">ប្រព័ន្ធបញ្ចាំងភាពយន្តនៅផ្ទះ</translation> <translation id="8577348305244205642">មិនអាចប្រើកាតនិមិ្មតបានទេ</translation> <translation id="858637041960032120">បន្ថែមលេខទូរស័ព្ទ</translation> @@ -2901,7 +2896,6 @@ <translation id="9039213469156557790">ជាងនេះទៅទៀត ទំព័រនេះរាប់បញ្ចូលធនធានផ្សេងទៀតដែលគ្មានសុវត្ថិភាព។ ធនធានទាំងនេះអាចត្រូវបានមើលដោយអ្នកផ្សេងទៀតខណៈពេលឆ្លងកាត់ និងអាចត្រូវបានកែសម្រួលដោយអ្នកវាយប្រហារដើម្បីប្តូរលក្ខណៈសម្បតិ្តរបស់ទំព័រ។</translation> <translation id="9040464167025094690">ប៊ូតុង "រកឧបករណ៍របស់ខ្ញុំ" ចុច Enter ដើម្បីចូលទៅកាន់ "រកឧបករណ៍របស់អ្នក" នៅក្នុងគណនី Google</translation> <translation id="9042617223719777575">ទម្រផ្ទុកធំ</translation> -<translation id="9044359186343685026">ប្រើ Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">អ្នកប៉ុនប៉ងទៅកាន់ <ph name="DOMAIN" /> ប៉ុន្តែម៉ាស៊ីនមេបានបង្ហាញវិញ្ញាបនប័ត្រដែលគ្មានសុពលភាព។</translation> <translation id="9050666287014529139">ឃ្លាសម្ងាត់</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index 5dd81d5..b564488 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -378,7 +378,6 @@ <translation id="1908217026282415406">ಕ್ಯಾಮರಾದ ಬಳಕೆ ಮತ್ತು ಚಲನೆ</translation> <translation id="191374271204266022">JSON ಫಾರ್ಮ್ಯಾಟ್ ರೀತಿಯಲ್ಲೇ ನಕಲಿಸಿ</translation> <translation id="1914326953223720820">ಸೇವೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಿ</translation> -<translation id="1915697529809968049">CVC ಬದಲಿಗೆ ಸ್ಪರ್ಶ ಐಡಿಯನ್ನು ಬಳಸುವಿರಾ?</translation> <translation id="1916770123977586577">ನಿಮ್ಮ ಅಪ್ಡೇಟ್ ಮಾಡಲಾದ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಈ ಸೈಟ್ಗೆ ಅನ್ವಯಿಸಲು, ಈ ಪುಟವನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="1919345977826869612">ಜಾಹೀರಾತುಗಳು</translation> <translation id="1919367280705858090">ನಿರ್ದಿಷ್ಟ ದೋಷ ಸಂದೇಶಕ್ಕೆ ಸಹಾಯ ಪಡೆಯಿರಿ</translation> @@ -1120,7 +1119,6 @@ <translation id="4072486802667267160">ನಿಮ್ಮ ಆರ್ಡರ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="4073797364926776829">ಕಾರ್ಡ್ ವೀಕ್ಷಿಸಿ</translation> <translation id="4075732493274867456">ಸಾಮಾನ್ಯ SSL ಪ್ರೊಟೋಕಾಲ್ ಆವೃತ್ತಿ ಅಥವಾ ಸೈಫರ್ ಸ್ಯೂಟ್ ಅನ್ನು ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation> -<translation id="4075941231477579656">ಸ್ಪರ್ಶ ID</translation> <translation id="4079302484614802869">ಪ್ರಾಕ್ಸಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು .pac ಸ್ಕ್ರಿಪ್ಟ್ URL ಬಳಸುವಂತೆ ಹೊಂದಿಸಲಾಗಿದೆ, ಹೊಂದಿಸಿದ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ಗಳಲ್ಲ.</translation> <translation id="4082393374666368382">ಸೆಟ್ಟಿಂಗ್ಗಳು - ನಿರ್ವಹಣೆ</translation> <translation id="4087296516249690906">ಈವೆಂಟ್ ಬಟನ್ ರಚಿಸಿ, Google Calendar ನಲ್ಲಿ ಹೊಸ ಈವೆಂಟ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಲು Enter ಒತ್ತಿ</translation> @@ -1292,7 +1290,6 @@ <translation id="4506176782989081258">ಮೌಲ್ಯೀಕರಿಸುವಿಕೆಯ ದೋಷ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ಸಿಸ್ಟಂ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="450710068430902550">ನಿರ್ವಾಹಕರೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳುವುದು</translation> -<translation id="4508814173490746936">ಸ್ಪರ್ಶ ID ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate ನೊಂದಿಗೆ ಈ ಪುಟವನ್ನು ಭಾಷಾಂತರಿಸಲು Tab ಒತ್ತಿ, ನಂತರ Enter ಒತ್ತಿ</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">ಪ್ರಯಾಣಗಳನ್ನು ಆಫ್ ಮಾಡಿ</translation> @@ -1965,7 +1962,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> ಗೆ ಮುಕ್ತಾಯ ದಿನಾಂಕ ಮತ್ತು ಸಿವಿಸಿ ಅನ್ನು ನಮೂದಿಸಿ</translation> <translation id="6415778972515849510">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಹಾಗೂ ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, Chromium ನಿಮಗೆ ಸಹಾಯ ಮಾಡಬಲ್ಲದು.</translation> -<translation id="6423385022588644828">ಇನ್ನು ಮುಂದೆ, ಟಚ್ ID ಬಳಸುವ ಮೂಲಕ ನಿಮ್ಮ ಕಾರ್ಡ್ಗಳನ್ನು ವೇಗವಾಗಿ ದೃಢೀಕರಿಸಿ</translation> <translation id="6425092077175753609">ವಸ್ತು</translation> <translation id="6427730057873428458">ಗೇಟ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸಿ</translation> <translation id="6428450836711225518">ನಿಮ್ಮ ದೂರವಾಣಿ ಸಂಖ್ಯೆಯನ್ನು ದೃಢೀಕರಿಸಿ</translation> @@ -2733,7 +2729,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ಗೆ ಖಾಸಗಿ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ನಿಮ್ಮ ಸಾಧನದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ (<ph name="DATE_AND_TIME" />) ತಪ್ಪಾಗಿದೆ.</translation> <translation id="8564182942834072828">ಪ್ರತ್ಯೇಕ ಡಾಕ್ಯುಮೆಂಟ್ಗಳು/ಸಂಯೋಜಿಸದ ಪ್ರತಿಗಳು</translation> <translation id="8564985650692024650">ನೀವು ಇತರ ಸೈಟ್ಗಳಲ್ಲಿ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದಲ್ಲಿ ನಿಮ್ಮ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ಪಾಸವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation> -<translation id="8574899947864779331">ಕಾರ್ಡ್ಗಳನ್ನು ವೇಗವಾಗಿ ದೃಢೀಕರಿಸಲು ಟಚ್ ID ಬಳಸಿ</translation> <translation id="8576310925653847813">ಹೋಮ್ ಥಿಯೇಟರ್ ಸಿಸ್ಟಮ್ಗಳು</translation> <translation id="8577348305244205642">ವರ್ಚುವಲ್ ಕಾರ್ಡ್ ಲಭ್ಯವಿಲ್ಲ</translation> <translation id="858637041960032120">ಫೋನ್ ಸಂ. ಸೇರಿಸಿ @@ -2890,7 +2885,6 @@ <translation id="9039213469156557790">ಅಲ್ಲದೇ, ಸುರಕ್ಷಿತವಲ್ಲದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಈ ಪುಟ ಹೊಂದಿದೆ. ಸ್ಥಿತ್ಯಂತರಗೊಳ್ಳುವ ಸಂದರ್ಭದಲ್ಲಿ ಈ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಇತರರೂ ವೀಕ್ಷಿಸಬಹುದಾಗಿದೆ ಮತ್ತು ಪುಟದ ಹೊರನೋಟವೇ ಬದಲಾಗುವಂತೆ ಆಕ್ರಮಣಕಾರರು ಅದನ್ನು ತಿದ್ದಬಹುದಾಗಿದೆ.</translation> <translation id="9040464167025094690">Find My Device ಬಟನ್, Google ಖಾತೆಯಲ್ಲಿ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹುಡುಕುವುದಕ್ಕೆ ಭೇಟಿ ನೀಡಲು Enter ಒತ್ತಿ</translation> <translation id="9042617223719777575">ಅಧಿಕ ಸಾಮರ್ಥ್ಯ</translation> -<translation id="9044359186343685026">ಸ್ಪರ್ಶ ಐಡಿ ಬಳಸಿ</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ನೀವು <ph name="DOMAIN" /> ಅನ್ನು ತಲುಪಲು ಪ್ರಯತ್ನಿಸಿರುವಿರಿ, ಆದರೆ ಸರ್ವರ್ ಅಮಾನ್ಯ ಪ್ರಮಾಣಪತ್ರವನ್ನು ನೀಡಿದೆ.</translation> <translation id="9050666287014529139">ಪಾಸ್ಫ್ರೇಸ್</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 4af6f56..31050073 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">카메라 사용 및 이동</translation> <translation id="191374271204266022">JSON으로 복사</translation> <translation id="1914326953223720820">압축 해제 서비스</translation> -<translation id="1915697529809968049">CVC 대신 Touch ID를 사용하시겠습니까?</translation> <translation id="1916770123977586577">이 사이트에 업데이트된 설정을 적용하려면 이 페이지를 다시 로드하세요.</translation> <translation id="1919345977826869612">광고</translation> <translation id="1919367280705858090">특정 오류 메시지에 관한 도움말 보기</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">주문을 처리하는 중에 오류가 발생했습니다. 다시 시도하세요.</translation> <translation id="4073797364926776829">카드 보기</translation> <translation id="4075732493274867456">클라이언트와 서버가 일반적인 SSL 프로토콜 버전 또는 암호화 제품군을 지원하지 않습니다.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">프록시 설정이 고정 프록시 서버가 아닌 .pac 스크립트 URL을 사용하도록 설정됩니다.</translation> <translation id="4082393374666368382">설정 - 관리</translation> <translation id="4087296516249690906">일정 만들기 버튼, Enter를 눌러 Google Calendar에서 빠르게 새 일정 만들기</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">유효성 검사 오류 <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">시스템 관리자에게 문의</translation> <translation id="450710068430902550">관리자와 공유</translation> -<translation id="4508814173490746936">Touch ID를 사용할 수 없음</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google 번역으로 이 페이지를 번역하려면 Tab을 누른 다음 Enter 누르기</translation> <translation id="4510487217173779431">Chou4(봉투)</translation> <translation id="4514308731478712184">탐색 여정 사용 중지</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0(봉투)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" />의 만료일과 CVC를 입력하세요.</translation> <translation id="6415778972515849510">Chromium을 통해 Google 계정을 보호하고 비밀번호를 변경할 수 있습니다.</translation> -<translation id="6423385022588644828">지금부터 Touch ID를 사용하여 빠르게 카드를 확인합니다.</translation> <translation id="6425092077175753609">머티리얼</translation> <translation id="6427730057873428458">게이트 폴드</translation> <translation id="6428450836711225518">전화번호 인증</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">기기의 날짜와 시간(<ph name="DATE_AND_TIME" />)이 잘못되어 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />에 대한 비공개 연결을 설정할 수 없습니다.</translation> <translation id="8564182942834072828">별도 문서/모으지 않은 사본</translation> <translation id="8564985650692024650">다른 사이트에서 비밀번호를 재사용했다면 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 비밀번호를 재설정하는 것이 좋습니다.</translation> -<translation id="8574899947864779331">Touch ID를 사용하여 빠르게 카드 확인</translation> <translation id="8576310925653847813">홈시어터 시스템</translation> <translation id="8577348305244205642">가상 카드 사용할 수 없음</translation> <translation id="858637041960032120">번호 추가</translation> @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">또한 이 페이지에는 안전하지 않은 다른 리소스가 포함되어 있습니다. 이러한 리소스는 전송 중에 다른 사람이 볼 수 있으며 페이지의 작동을 변경하기 위해 공격자가 수정할 수 있습니다.</translation> <translation id="9040464167025094690">내 기기 찾기 버튼, Google 계정에서 내 기기 찾기 페이지를 방문하려면 Enter를 누르세요</translation> <translation id="9042617223719777575">대용량</translation> -<translation id="9044359186343685026">Touch ID 사용</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" />에 접속하려 했지만 서버가 잘못된 인증서를 전달했습니다.</translation> <translation id="9050666287014529139">암호</translation>
diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb index d818ab0..1adbf31 100644 --- a/components/strings/components_strings_ky.xtb +++ b/components/strings/components_strings_ky.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Камераны колдонуу жана жылдыруу</translation> <translation id="191374271204266022">JSON форматында көчүрүү</translation> <translation id="1914326953223720820">Файлдарды архивден чыгаруу кызматы</translation> -<translation id="1915697529809968049">CVC'нин ордуна Touch ID колдонулсунбу?</translation> <translation id="1916770123977586577">Бул сайттагы жаңырган жөндөөлөрдү колдонуп баштоо үчүн баракты жаңыртыңыз</translation> <translation id="1919345977826869612">Жарнамалар</translation> <translation id="1919367280705858090">Белгилүү бир каталар боюнча жардам алуу</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">Буйрутмаңызды иштетүү учурунда ката кетти. Кайталап көрүңүз.</translation> <translation id="4073797364926776829">Картаны көрүү</translation> <translation id="4075732493274867456">Кардар менен серверде ар кандай SSL протоколунун версиялары же шифрлер топтому колдоого алынат.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Прокси конфигурациясы боюнча бекитилген прокси серверлери эмес, .pac скрипт URL'и колдонулат.</translation> <translation id="4082393374666368382">Жөндөөлөр – Башкаруу</translation> <translation id="4087296516249690906">Иш-чара түзүү баскычы. Google Жылнаамада жаңы иш-чараны тез түзүү Enter баскычын басыңыз</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Жарактуулугун текшерүү катасы: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Тутум администраторуна кайрылып көрүңүз</translation> <translation id="450710068430902550">Администратор менен бөлүшүү</translation> -<translation id="4508814173490746936">Touch ID функциясын колдонуу мүмкүн эмес</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Бул баракты Google Котормочу менен которуу үчүн, Tab, андан соң Enter баскычын басыңыз</translation> <translation id="4510487217173779431">Chou4 (Конверт)</translation> <translation id="4514308731478712184">Саякаттарды өчүрүү</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (Конверт)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> карточкасынын мөөнөтү аяктоочу күнүн жана CVC кодун киргизиңиз</translation> <translation id="6415778972515849510">Chromium Google аккаунтуңуздун коопсуздугун коргоп, сырсөзүңүздү өзгөртүүгө жардам берет.</translation> -<translation id="6423385022588644828">Мындан ары Touch ID функциясын колдонуп карталарды тезирээк ырастаңыз</translation> <translation id="6425092077175753609">Материал</translation> <translation id="6427730057873428458">Эки жолу чаптоо</translation> <translation id="6428450836711225518">Телефон номериңизди ырастаңыз</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Түзмөгүңүздүн күнү жана убакыты (<ph name="DATE_AND_TIME" />) туура эмес болгондуктан, <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> менен купуя туташуу мүмкүн болбой жатат.</translation> <translation id="8564182942834072828">Өзүнчө документ/Иреттелбеген көчүрмөлөр</translation> <translation id="8564985650692024650"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> сырсөзүңүздү башка сайттарда колдонгон болсоңуз, Chromium аны өзгөртүүнү сунуштайт.</translation> -<translation id="8574899947864779331">Карталарды тезирээк ырастоо үчүн Touch ID функциясын колдонуу</translation> <translation id="8576310925653847813">Үй кинотеатрынын системалары</translation> <translation id="8577348305244205642">Виртуалдык карта жеткиликсиз</translation> <translation id="858637041960032120">Телефон номерин кошуу</translation> @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">Андан тышкары, бул бетте башка кооптуу булактар бар. Өткөрүү учурунда аларды башка колдонуучулар көрө алышат, ошону менен катар, беттин иш-аракетин өзгөртүү үчүн аларды чабуулчулар бурмалап коюшу мүмкүн.</translation> <translation id="9040464167025094690">Түзмөгүм кайда? баскычы. Google аккаунтуңуз менен түзмөгүңүздү табуу үчүн Enter баскычын басыңыз</translation> <translation id="9042617223719777575">Сыйымдуулугу чоң</translation> -<translation id="9044359186343685026">Touch ID функциясын колдонуу</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> жетүүгө аракет кылдыңыз, бирок сервер жараксыз тастыктама сунуштады.</translation> <translation id="9050666287014529139">Купуя сөз айкашы</translation>
diff --git a/components/strings/components_strings_lo.xtb b/components/strings/components_strings_lo.xtb index a0b0824..3598a5c 100644 --- a/components/strings/components_strings_lo.xtb +++ b/components/strings/components_strings_lo.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">ກ້ອງ ແລະ ການເຄື່ອນໄຫວ</translation> <translation id="191374271204266022">ສຳເນົາເປັນ JSON</translation> <translation id="1914326953223720820">ການບໍລິການແຕກໄຟລ໌</translation> -<translation id="1915697529809968049">ໃຊ້ Touch ID ແທນ CVC ບໍ?</translation> <translation id="1916770123977586577">ເພື່ອນຳໃຊ້ການຕັ້ງຄ່າທີ່ອັບເດດແລ້ວຂອງທ່ານຕໍ່ກັບເວັບໄຊນີ້, ກະລຸນາໂຫຼດໜ້ານີ້ຄືນໃໝ່</translation> <translation id="1919345977826869612">ໂຄສະນາ</translation> <translation id="1919367280705858090">ຂໍຄວາມຊ່ວຍເຫຼືອເລື່ອງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດສະເພາະ</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">ຮູບຕົວຢ່າງ</translation> <translation id="3227137524299004712">ໄມໂຄຣໂຟນ</translation> <translation id="3229041911291329567">ຂໍ້ມູນເວີຊັນກ່ຽວກັບອຸປະກອນ ແລະ ໂປຣແກຣມທ່ອງເວັບຂອງທ່ານ</translation> +<translation id="3229277193950731405">ສຳເນົາສະຕຣິງເວີຊັນ</translation> <translation id="323107829343500871">ປ້ອນ CVC ສຳລັບ <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">ກວດຫາເນື້ອໃນສຳຄັນຢູ່ເທິງເວັບໄຊທ໌ນີ້ທຸກຄັ້ງ</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດ tab ຈາກນັ້ນກົດ Enter ເພື່ອປັບແຕ່ງໜ້າຕາຂອງໂປຣແກຣມທ່ອງເວັບທ່ານ</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">ມີຄວາມຜິດພາດໃນການດຳເນີນຄຳສັ່ງຊື້ຂອງທ່ານ, ກະລຸນາລອງອີກຄັ້ງ.</translation> <translation id="4073797364926776829">ເບິ່ງບັດ</translation> <translation id="4075732493274867456">ລູກຂ່າຍ ແລະ ເຊີບເວີບໍ່ຮອງຮັບເວີຊັນໂປຣໂຕຄໍ ຫຼື ຊຸດລະຫັດລັບ SSL ທົ່ວໄປ.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">ການປັບຕັ້ງຄ່າພຣັອກຊີຕັ້ງຂຶ້ນເພື່ອໃຊ້ URL ຕົວຂຽນ .pac, ບໍ່ແມ່ນເຊີບເວີພຣັອກຊີທີ່ກໍານົດໄວ້.</translation> <translation id="4082393374666368382">ການຕັ້ງຄ່າ - ການຈັດການ</translation> <translation id="4087296516249690906">ປຸ່ມສ້າງນັດໝາຍ, ກົດ Enter ເພື່ອສ້າງນັດໝາຍໃໝ່ໃນ Google ປະຕິທິນໄດ້ຢ່າງວ່ອງໄວ</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">ຄວາມຜິດພາດການຢືນຢັນ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ກຳລັງຕິດຕໍ່ຫາຜູ້ເບິ່ງແຍງລະບົບ</translation> <translation id="450710068430902550">ການແບ່ງປັນກັບຜູ້ເບິ່ງແຍງລະບົບ</translation> -<translation id="4508814173490746936">ບໍ່ສາມາດໃຊ້ Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, ກົດແຖບ ຈາກນັ້ນກົດ Enter ເພື່ອແປໜ້ານີ້ດ້ວຍ Google ແປພາສາ</translation> <translation id="4510487217173779431">Chou4 (ຊອງຈົດໝາຍ)</translation> <translation id="4514308731478712184">ປິດບັນທຶກ</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (ຊອງຈົດໝາຍ)</translation> <translation id="6410264514553301377">ປ້ອນວັນທີໝົດອາຍຸ ແລະ CVC ສຳລັບ <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium ສາມາດຊ່ວຍທ່ານປົກປ້ອງບັນຊີ Google ຂອງທ່ານ ແລະ ປ່ຽນລະຫັດຜ່າຂອງທ່ານໄດ້.</translation> -<translation id="6423385022588644828">ຢືນຢັນບັດຂອງທ່ານໄດ້ໄວຂຶ້ນໂດຍໃຊ້ Touch ID ຈາກນີ້ໄປ</translation> <translation id="6425092077175753609">ເນື້ອໃນ</translation> <translation id="6427730057873428458">ພັບທົບ</translation> <translation id="6428450836711225518">ຢັ້ງຢືນເບີໂທລະສັບຂອງທ່ານ</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">ບໍ່ສາມາດຕັ້ງການເຊື່ອມຕໍ່ສ່ວນຕົວກັບ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ໄດ້ ເພາະວ່າວັນທີ ແລະເວລາອຸປະກອນຂອງທ່ານ (<ph name="DATE_AND_TIME" />) ບໍ່ຖືກຕ້ອງ.</translation> <translation id="8564182942834072828">ເອກະສານແຍກກັນ/ບໍ່ໄດ້ຈັດຊຸດສຳເນົາ</translation> <translation id="8564985650692024650">Chromium ແນະນຳໃຫ້ຣີເຊັດລະຫັດຜ່ານ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ຂອງທ່ານ ຖ້າທ່ານນຳມັນມາໃຊ້ໃໝ່ໃນເວັບໄຊອື່ນ.</translation> -<translation id="8574899947864779331">ໃຊ້ Touch ID ເພື່ອຢືນຢັນບັດໄດ້ໄວຂຶ້ນ</translation> <translation id="8576310925653847813">ລະບົບໂຮມເທຍເຕີ</translation> <translation id="8577348305244205642">ບໍ່ສາມາດໃຊ້ບັດສະເໝືອນໄດ້</translation> <translation id="858637041960032120">ເພີ່ມເບີໂທລະສັບ</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">ນອກຈາກນັ້ນ, ໜ້ານີ້ມີຂໍ້ມູນອື່ນທີ່ບໍ່ປອດໄພນໍາ. ຜູ້ອື່ນສາມາດເບິ່ງຂໍ້ມູນນີ້ໄດ້ໃນຂະນະທີ່ສົ່ງໄປ ແລະຜູ້ໂຈມຕີສາມາດດັດແປງໄດ້ ເພື່ອປ່ຽນພຶດຕິກໍາຂອງໜ້າ.</translation> <translation id="9040464167025094690">ປຸ່ມຊອກຫາອຸປະກອນຂອງຂ້ອຍ, ກົດ Enter ເພື່ອເຂົ້າເບິ່ງການຊອກຫາອຸປະກອນຂອງທ່ານໃນບັນຊີ Google</translation> <translation id="9042617223719777575">ຄວາມຈຸຫຼາຍ</translation> -<translation id="9044359186343685026">ໃຊ້ Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ທ່ານໄດ້ພະຍາຍາມເຂົ້າຫາ <ph name="DOMAIN" />, ແຕ່ເຊີບເວີໄດ້ນໍາສະເໜີໃບຢັ້ງຢືນທີ່ໃຊ້ບໍ່ໄດ້.</translation> <translation id="9050666287014529139">ວະລີຜ່ານ</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index d11f3433..61f3921 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kameros naudojimas ir judinimas</translation> <translation id="191374271204266022">Kopijuoti kaip JSON</translation> <translation id="1914326953223720820">Išpakavimo paslauga</translation> -<translation id="1915697529809968049">Naudoti „Touch ID“ vietoj CVC?</translation> <translation id="1916770123977586577">Kad pritaikytumėte atnaujintus nustatymus šioje svetainėje, iš naujo įkelkite šį puslapį</translation> <translation id="1919345977826869612">Skelbimai</translation> <translation id="1919367280705858090">Gaukite pagalbos dėl konkretaus klaidos pranešimo</translation> @@ -1125,7 +1124,6 @@ <translation id="4072486802667267160">Apdorojant jūsų užsakymą įvyko klaida. Bandykite dar kartą.</translation> <translation id="4073797364926776829">Peržiūrėti kortelę</translation> <translation id="4075732493274867456">Kliento programa ir serveris nepalaiko įprasto SSL protokolo versijos ar šifruotojo programų komplekto.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Įgaliotojo serverio konfigūracijoje nustatyta naudoti .pac scenarijaus URL, o ne fiksuotus įgaliotuosius serverius.</translation> <translation id="4082393374666368382">Nustatymai – valdymas</translation> <translation id="4087296516249690906">Mygtukas „Sukurti įvykį“ – paspauskite klavišą „Enter“, jei norite greitai sukurti naują „Google“ kalendoriaus įvykį</translation> @@ -1297,7 +1295,6 @@ <translation id="4506176782989081258">Tikrinimo klaida: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Susisiekti su sistemos administratoriumi</translation> <translation id="450710068430902550">Bendrinimas su administratoriumi</translation> -<translation id="4508814173490746936">Nepavyko naudoti „Touch ID“</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, paspauskite tabuliavimo klavišą, tada – „Enter“, kad šis puslapis būtų išverstas naudojant „Google“ vertėją</translation> <translation id="4510487217173779431">„Chou4“ (vokas)</translation> <translation id="4514308731478712184">Išjungti atliktus veiksmus</translation> @@ -1971,7 +1968,6 @@ <translation id="6406765186087300643">C0 (vokas)</translation> <translation id="6410264514553301377">įveskite „<ph name="CREDIT_CARD" />“ galiojimo pabaigos datą ir kortelės saugos kodą (CVC)</translation> <translation id="6415778972515849510">„Chromium“ gali padėti apsaugoti „Google“ paskyrą ir pakeisti slaptažodį.</translation> -<translation id="6423385022588644828">Nuo šiol patvirtinkite korteles greičiau su „Touch ID“</translation> <translation id="6425092077175753609">Trimačiai objektai</translation> <translation id="6427730057873428458">Du atvartai</translation> <translation id="6428450836711225518">Patvirtinkite savo telefono numerį</translation> @@ -2740,7 +2736,6 @@ <translation id="8559762987265718583">Nepavyksta užmegzti privataus ryšio su <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, nes įrenginio data ir laikas (<ph name="DATE_AND_TIME" />) yra netinkami.</translation> <translation id="8564182942834072828">Atskiras dokumentas / nesugretintos kopijos</translation> <translation id="8564985650692024650">„Chromium“ rekomenduoja iš naujo nustatyti <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> slaptažodį, jei naudojate jį kitose svetainėse.</translation> -<translation id="8574899947864779331">Patvirtinkite korteles greičiau su „Touch ID“</translation> <translation id="8576310925653847813">Namų kino sistemos</translation> <translation id="8577348305244205642">Virtuali kortelė nepasiekiama</translation> <translation id="858637041960032120">Pridėti tel. nr. @@ -2897,7 +2892,6 @@ <translation id="9039213469156557790">Be to, šiame puslapyje yra kitų nesaugių išteklių. Perduodant duomenis šiuos išteklius gali peržiūrėti kiti asmenys ir keisti atakuojanti programa, siekianti pakeisti puslapio veikimą.</translation> <translation id="9040464167025094690">Mygtukas „Rasti įrenginį“; paspauskite „Enter“, kad apsilankytumėte įrenginio paieškos skiltyje „Google“ paskyroje.</translation> <translation id="9042617223719777575">Didelė talpa</translation> -<translation id="9044359186343685026">Naudoti „Touch ID“</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Bandėte pasiekti <ph name="DOMAIN" />, bet serveris pateikė neteisingą sertifikatą.</translation> <translation id="9050666287014529139">Slaptafrazė</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index c54f1f3f..9c20c54 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kameras izmantošana un kustināšana</translation> <translation id="191374271204266022">Kopēt kā JSON failu</translation> <translation id="1914326953223720820">Pakalpojums failu izgūšanai no arhīva</translation> -<translation id="1915697529809968049">Vai vēlaties izmantot Touch ID, nevis CVC?</translation> <translation id="1916770123977586577">Lai lietotu atjauninātos iestatījumus šai vietnei, atkārtoti ielādējiet šo lapu</translation> <translation id="1919345977826869612">Reklāmas</translation> <translation id="1919367280705858090">Palīdzība par konkrētu kļūdas ziņojumu</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">Apstrādājot pasūtījumu, radās kļūda. Lūdzu, mēģiniet vēlreiz.</translation> <translation id="4073797364926776829">Skatīt karti</translation> <translation id="4075732493274867456">Klients un serveris neatbalsta bieži lietoto SSL protokola versiju vai šifra komplektu.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Starpniekserveris ir iestatīts, lai tas lietotu .pac skripta URL, nevis fiksētus starpniekserverus.</translation> <translation id="4082393374666368382">Iestatījumi — pārvaldība</translation> <translation id="4087296516249690906">Pasākuma izveides poga. Lai ātri izveidotu jaunu pasākumu Google kalendārā, nospiediet taustiņu Enter.</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Validācijas kļūda: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Sazinieties ar sistēmas administratoru.</translation> <translation id="450710068430902550">Kopīgošana ar administratoru</translation> -<translation id="4508814173490746936">Neizdevās izmantot Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Lai tulkotu šo lapu, izmantojot Google tulkotāju, nospiediet tabulēšanas taustiņu un pēc tam — ievadīšanas taustiņu.</translation> <translation id="4510487217173779431">Chou4 (aploksne)</translation> <translation id="4514308731478712184">Izslēgt funkciju Meklēšanas ceļi</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (aploksne)</translation> <translation id="6410264514553301377">Ievadiet kredītkartes <ph name="CREDIT_CARD" /> derīguma termiņu un CVC.</translation> <translation id="6415778972515849510">Chromium var palīdzēt jums aizsargāt jūsu Google kontu un nomainīt paroli.</translation> -<translation id="6423385022588644828">Turpmāk, izmantojot Touch ID, apstipriniet kartes ātrāk</translation> <translation id="6425092077175753609">Materiāls</translation> <translation id="6427730057873428458">Abpusējs locījums</translation> <translation id="6428450836711225518">Verificējiet savu tālruņa numuru</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Nevar izveidot privātu savienojumu ar <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, jo jūsu ierīces datums un laiks (<ph name="DATE_AND_TIME" />) nav pareizs.</translation> <translation id="8564182942834072828">Atsevišķi dokumenti/nesakārtotu lapu kopijas</translation> <translation id="8564985650692024650">Chromium iesaka atiestatīt jūsu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> paroli, ja izmantojāt to citās vietnēs.</translation> -<translation id="8574899947864779331">Izmantot Touch ID, lai apstiprinātu kartes ātrāk</translation> <translation id="8576310925653847813">Mājas kinozāles sistēmas</translation> <translation id="8577348305244205642">Virtuālā karte nav pieejama</translation> <translation id="858637041960032120">Piev. tālr. nr. @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Turklāt šajā lapā ir citi resursi, kas nav droši. Kamēr šie resursi tiek pārsūtīti, tos var aplūkot citi, kā arī uzbrucējs var tos pārveidot, lai mainītu lapas uzvedību.</translation> <translation id="9040464167025094690">Poga Atrast ierīci. Lai meklētu ierīci Google kontā, nospiediet taustiņu Enter</translation> <translation id="9042617223719777575">Liela ietilpība</translation> -<translation id="9044359186343685026">Izmantot Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> — <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Jūs centāties piekļūt <ph name="DOMAIN" />, bet serveris piedāvāja nederīgu sertifikātu.</translation> <translation id="9050666287014529139">Ieejas frāze</translation>
diff --git a/components/strings/components_strings_mk.xtb b/components/strings/components_strings_mk.xtb index 3b506fd4..a9581b49 100644 --- a/components/strings/components_strings_mk.xtb +++ b/components/strings/components_strings_mk.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Користење и движење на камерата</translation> <translation id="191374271204266022">Копирај како JSON</translation> <translation id="1914326953223720820">Услуга за отпакување</translation> -<translation id="1915697529809968049">Да се користи Touch ID наместо CVC?</translation> <translation id="1916770123977586577">За да ги примените изменетите поставки на страницава, вчитајте ја повторно</translation> <translation id="1919345977826869612">Реклами</translation> <translation id="1919367280705858090">Добивање помош околу конкретна порака за грешка</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Настана грешка при обработката на вашата нарачка. Обидете се повторно.</translation> <translation id="4073797364926776829">Прикажи картичка</translation> <translation id="4075732493274867456">Клиентот и серверот не ја поддржуваат верзијата на заедничкиот SSL-протокол или пакетот за шифрирање.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Конфигурацијата на прокси е поставена да користи URL на скрипта .pac, а не фиксни прокси-сервери.</translation> <translation id="4082393374666368382">Поставки - Управување</translation> <translation id="4087296516249690906">Копче за создавање настан, притиснете го копчето Enter за да набрзина создадете нов настан во „Календар на Google“</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Грешка при проверката: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Да контактирате со системскиот администратор</translation> <translation id="450710068430902550">Споделување со администратор</translation> -<translation id="4508814173490746936">Не може да се користи Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, притиснете Tab, а потоа Enter за да ја преведете страницава со „Преведи на Google“</translation> <translation id="4510487217173779431">Chou4 (плик)</translation> <translation id="4514308731478712184">Исклучи ги „Патувања“</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (плик)</translation> <translation id="6410264514553301377">Внесете ги датумот на истекување и CVC за <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium може да ви помогне да ја заштитите сметката на Google и да ја промените лозинката.</translation> -<translation id="6423385022588644828">Отсега, потврдувајте ги картичките побрзо со Touch ID</translation> <translation id="6425092077175753609">Материјален</translation> <translation id="6427730057873428458">Превиткување како брошура</translation> <translation id="6428450836711225518">Потврдете го телефонскиот број</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Не може да се воспостави приватна врска до <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> бидејќи датумот и времето на вашиот уред (<ph name="DATE_AND_TIME" />) се погрешни.</translation> <translation id="8564182942834072828">Одделни документи/неподредени примероци</translation> <translation id="8564985650692024650">Chromium препорачува ресетирање на лозинката за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ако повторно сте ја употребиле на други сајтови.</translation> -<translation id="8574899947864779331">Користете Touch ID за побрзо потврдување на картичките</translation> <translation id="8576310925653847813">Системи за домашно кино</translation> <translation id="8577348305244205642">Виртуелната картичка не е достапна</translation> <translation id="858637041960032120">Додај телефонски број</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Понатаму, страницава опфаќа други ресурси што не се безбедни. Нив може да ги гледаат други лица при преносот и може да ги менува напаѓач за да го смени однесувањето на страницата.</translation> <translation id="9040464167025094690">Копче „Најди го мојот уред“, притиснете Enter за да отидете на „Најди го мојот уред“ во сметката на Google</translation> <translation id="9042617223719777575">Голем капацитет</translation> -<translation id="9044359186343685026">Користи Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Се обидовте да го добиете <ph name="DOMAIN" />, но серверот даде неважечки сертификат.</translation> <translation id="9050666287014529139">Пристапна фраза</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 220dc70..44bc6ef 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">ക്യാമറയുടെ ഉപയോഗവും ചലനവും</translation> <translation id="191374271204266022">JSON ഫോർമാറ്റിൽ പകർത്തുക</translation> <translation id="1914326953223720820">അൺസിപ്പ് സേവനം</translation> -<translation id="1915697529809968049">CVC-യ്ക്ക് പകരം ടച്ച് ഐഡി ഉപയോഗിക്കണോ?</translation> <translation id="1916770123977586577">ഈ സൈറ്റിലേക്ക് നിങ്ങളുടെ അപ്ഡേറ്റ് ചെയ്ത ക്രമീകരണം ഉപയോഗിക്കുന്നതിന്, ഈ പേജ് റീലോഡ് ചെയ്യുക</translation> <translation id="1919345977826869612">പരസ്യങ്ങള്</translation> <translation id="1919367280705858090">നിർദ്ദിഷ്ട പിശക് സന്ദേശവുമായി ബന്ധപ്പെട്ട് സഹായം നേടുക</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">നിങ്ങളുടെ ഓർഡർ പ്രോസസ് ചെയ്യുന്നതിൽ ഒരു പിശകുണ്ടായി. വീണ്ടും ശ്രമിച്ചുനോക്കൂ.</translation> <translation id="4073797364926776829">കാർഡ് കാണുക</translation> <translation id="4075732493274867456">ഒരു സാധാരണ SSL പ്രോട്ടോക്കോൾ പതിപ്പിനെയോ സൈഫർ സ്യൂട്ടിനെയോ ക്ലയന്റും സെർവറും പിന്തുണയ്ക്കില്ല.</translation> -<translation id="4075941231477579656">ടച്ച് ഐഡി</translation> <translation id="4079302484614802869">പ്രോക്സി കോൺഫിഗറേഷൻ .pac സ്ക്രിപ്റ്റ് URL ഉപയോഗിക്കുന്നതിനായി സജ്ജീകരിച്ചിരിക്കുന്നു, സ്ഥിരമായ പ്രോക്സി സെർവറുകൾ ഉപയോഗിക്കുന്നതിനായല്ല.</translation> <translation id="4082393374666368382">ക്രമീകരണം - മാനേജ്മെൻ്റ്</translation> <translation id="4087296516249690906">'ഇവന്റ് സൃഷ്ടിക്കുക' ബട്ടൺ, Google Calendar-ൽ പുതിയൊരു ഇവന്റ് വേഗത്തിൽ സൃഷ്ടിക്കാൻ Enter അമർത്തുക</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">മൂല്യനിർണ്ണയ പിശക്: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">സിസ്റ്റം അഡ്മിനെ ബന്ധപ്പെടുന്നു</translation> <translation id="450710068430902550">അഡ്മിനിസ്ട്രേറ്ററുമായി പങ്കിടുന്നു</translation> -<translation id="4508814173490746936">ടച്ച് ഐഡി ഉപയോഗിക്കാനായില്ല</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate ഉപയോഗിച്ച് ഈ പേജ് വിവർത്തനം ചെയ്യാൻ 'Tab' അമർത്തുക, തുടർന്ന് 'Enter' അമർത്തുക</translation> <translation id="4510487217173779431">Chou4 (എൻവലപ്പ്)</translation> <translation id="4514308731478712184">തിരയലുകൾ ഓഫാക്കുക</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (എൻവലപ്പ്)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" />-ന്റെ കാലാവധി തീരുന്ന തീയതിയും CVC-യും നൽകുക</translation> <translation id="6415778972515849510">നിങ്ങളുടെ Google അക്കൗണ്ട് പരിരക്ഷിക്കാനും പാസ്വേഡ് മാറ്റാനും Chromium സഹായിക്കും.</translation> -<translation id="6423385022588644828">ടച്ച് ഐഡി ഉപയോഗിച്ച് നിങ്ങളുടെ കാർഡുകൾ ഇപ്പോൾ മുതൽ വേഗത്തിൽ സ്ഥിരീകരിക്കുക</translation> <translation id="6425092077175753609">മെറ്റീരിയൽ</translation> <translation id="6427730057873428458">ഗേറ്റ് മടക്ക്</translation> <translation id="6428450836711225518">നിങ്ങളുടെ ഫോൺ നമ്പർ പരിശോധിച്ചുറപ്പിക്കുക</translation> @@ -2736,7 +2732,6 @@ <translation id="8559762987265718583">നിങ്ങളുടെ ഉപകരണത്തിന്റെ തീയതിയും സമയവും (<ph name="DATE_AND_TIME" />) തെറ്റായതിനാൽ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> എന്നതിലേക്കുള്ള സ്വകാര്യ കണക്ഷൻ സ്ഥാപിക്കാനാവില്ല.</translation> <translation id="8564182942834072828">വെവ്വേറെ ഡോക്യുമെന്റുകൾ/ക്രമത്തിലല്ലാത്ത പകർപ്പുകൾ</translation> <translation id="8564985650692024650">മറ്റ് സൈറ്റുകളിൽ നിങ്ങൾ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> പാസ്വേഡ് പുനരുപയോഗിച്ചിട്ടുണ്ടെങ്കിൽ, അത് റീസെറ്റ് ചെയ്യാൻ Chromium ശുപാർശ ചെയ്യുന്നു.</translation> -<translation id="8574899947864779331">കാർഡുകൾ വേഗത്തിൽ സ്ഥിരീകരിക്കാൻ ടച്ച് ഐഡി ഉപയോഗിക്കുക</translation> <translation id="8576310925653847813">ഹോം തീയറ്റർ സംവിധാനങ്ങൾ</translation> <translation id="8577348305244205642">വെർച്വൽ കാർഡ് ലഭ്യമല്ല</translation> <translation id="858637041960032120">ഫോണ് നമ്പര് ചേര്ക്കുക</translation> @@ -2892,7 +2887,6 @@ <translation id="9039213469156557790">ഈ പേജിൽ സുരക്ഷിതമല്ലാത്ത മറ്റ് ഉറവിടങ്ങൾ ഉൾപ്പെടുന്നു. ഈ ഉറവിടങ്ങൾ കൈമാറുന്നതിനിടെ മറ്റുള്ളവർക്ക് കാണാനും പേജിന്റെ പ്രവർത്തനരീതി മാറ്റുന്ന തരത്തിൽ ഒരു ആക്രമണകാരിയ്ക്ക് പരിഷ്ക്കരിക്കാനുമായേക്കും.</translation> <translation id="9040464167025094690">Find My Device ബട്ടൺ, Google അക്കൗണ്ടിൽ 'നിങ്ങളുടെ ഉപകരണം കണ്ടെത്തുക' വിഭാഗം സന്ദർശിക്കാൻ Enter അമർത്തുക</translation> <translation id="9042617223719777575">ഉയർന്ന ശേഷി</translation> -<translation id="9044359186343685026">ടച്ച് ഐഡി ഉപയോഗിക്കുക</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">നിങ്ങള് <ph name="DOMAIN" /> എന്നതില് എത്താന് ശ്രമിച്ചു, പക്ഷേ സെര്വര് ഒരു അസാധുവായ സര്ട്ടിഫിക്കറ്റ് അവതരിപ്പിച്ചു.</translation> <translation id="9050666287014529139">പാസ്ഫ്രെയ്സ്</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index 2d774e9..70197bc3 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Камерын ашиглалт болон хөдөлгөөн</translation> <translation id="191374271204266022">JSON форматаар хуулах</translation> <translation id="1914326953223720820">Багц задлах үйлчилгээ</translation> -<translation id="1915697529809968049">Карт баталгаажуулалтын кодын оронд Touch ID-г ашиглах уу?</translation> <translation id="1916770123977586577">Шинэчилсэн тохиргоогоо энэ сайтад хэрэгжүүлэхийн тулд энэ хуудсыг дахин ачааллана уу</translation> <translation id="1919345977826869612">Зар</translation> <translation id="1919367280705858090">Тодорхой алдаатай мессежээр тусламж авах</translation> @@ -1125,7 +1124,6 @@ <translation id="4072486802667267160">Таны захиалгыг боловсруулахад алдаа гарлаa. Дахин оролдоно уу.</translation> <translation id="4073797364926776829">Картыг харах</translation> <translation id="4075732493274867456">Үйлчлүүлэгч болон сервер нь SSL протоколын нийтлэг хувилбар, эсвэл шифрийн бүрдлийг дэмждэггүй.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Прокси нь .pac бичвэрийн холбоосыг ашиглахаар тохируулагдсан ба прокси серверүүд нь тогтмол бус.</translation> <translation id="4082393374666368382">Тохиргоо - Удирдлага</translation> <translation id="4087296516249690906">Үйл явдал үүсгэх товчлуур, Google Календарьт шинэ үйл явдал шуурхай үүсгэхийн тулд Enter дээр дарна уу</translation> @@ -1297,7 +1295,6 @@ <translation id="4506176782989081258">Баталгаажуулалтын алдаа: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Системийн админтай холбогдож байна</translation> <translation id="450710068430902550">Админтай хуваалцаж байна</translation> -<translation id="4508814173490746936">Touch ID-г ашиглаж чадсангүй</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, энэ хуудсыг Google Орчуулагчаар орчуулахын тулд эхлээд Таб дээр, дараа нь Enter дарна уу</translation> <translation id="4510487217173779431">Chou4 (Дугтуй)</translation> <translation id="4514308731478712184">Аяллуудыг унтраах</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Дугтуй)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" />-н дуусах огноо, карт баталгаажуулалтын кодыг оруулна уу</translation> <translation id="6415778972515849510">Chromium танд Google Бүртгэлээ хамгаалах болон нууц үгээ солиход туслах боломжтой.</translation> -<translation id="6423385022588644828">Одооноос Touch ID ашиглан картуудаа илүү хурдан баталгаажуулаарай</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Дээд доод хэсгийг нь дотогш нугалж эвхэх брошюрын нугалаа</translation> <translation id="6428450836711225518">Утасны дугаараа баталгаажуулах</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> руу таны төхөөрөмжийн он сар өдөр, цаг <ph name="DATE_AND_TIME" /> ) буруу байгаа учраас хувийн холболт үүсгэж болохгүй байна.</translation> <translation id="8564182942834072828">Тусдаа документ/Зэрэгцүүлээгүй хувь</translation> <translation id="8564985650692024650">Хэрэв та <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />-н нууц үгийг бусад сайтад дахин ашигласан бол Chromium-с үүнийг шинэчлэхийг зөвлөж байна.</translation> -<translation id="8574899947864779331">Картуудыг илүү хурдан баталгаажуулахын тулд Touch ID-г ашиглах</translation> <translation id="8576310925653847813">Гэрийн театрын систем</translation> <translation id="8577348305244205642">Виртуал карт боломжгүй байна</translation> <translation id="858637041960032120">Утасны дугаар нэмэх</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Цаашилбал, энэ хуудас нь аюултай бусад үүсвэр агуулж байна. Ийм төрлийн үүсвэрийг дамжуулж байх явцад бусад хүмүүс харах, мөн халдагчийн хуудасны функцийг өөрчлөх хэрэгсэл болж болзошгүй.</translation> <translation id="9040464167025094690">Миний төхөөрөмжийг олох товчлуур, Google Бүртгэл дэх төхөөрөмжөө олоход зочлохын тулд Enter дээр дарна уу</translation> <translation id="9042617223719777575">Багтаамж ихтэй</translation> -<translation id="9044359186343685026">Touch ID ашиглах</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Та <ph name="DOMAIN" /> рүү хүрэхийг оролдсон хэдий ч серверээс хүчингүй гэрчилгээ өгсөн байна.</translation> <translation id="9050666287014529139">Нэвтрэх хэллэг</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index e79a062..c8b2a60 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">कॅमेऱ्याचा वापर आणि त्याची हालचाल</translation> <translation id="191374271204266022">JSON म्हणून कॉपी करा</translation> <translation id="1914326953223720820">अनझिप सेवा</translation> -<translation id="1915697529809968049">CVC ऐवजी टच आयडी वापरायचा का?</translation> <translation id="1916770123977586577">तुमच्या सेटिंग्ज या साइटवर लागू करण्यासाठी, हे पेज रीलोड करा</translation> <translation id="1919345977826869612">जाहिराती</translation> <translation id="1919367280705858090">विशिष्ट एरर मेसेजच्या बाबतीत मदत मिळवा</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">थंबनेल</translation> <translation id="3227137524299004712">मायक्रोफोन</translation> <translation id="3229041911291329567">तुमच्या डिव्हाइस आणि ब्राउझरविषयी आवृत्ती माहिती</translation> +<translation id="3229277193950731405">आवृत्तीची स्ट्रिंग कॉपी करा</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> साठी CVC प्रविष्ट करा</translation> <translation id="3234666976984236645">नेहमी या साइटवर महत्त्वाचा आशय शोधा</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, तुमच्या ब्राउझरचे रूप कस्टमाइझ करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation> @@ -1122,7 +1122,6 @@ <translation id="4072486802667267160">तुमच्या मागणीवर प्रक्रिया करताना एरर आली, कृपया पुन्हा प्रयत्न करा.</translation> <translation id="4073797364926776829">कार्ड पहा</translation> <translation id="4075732493274867456">क्लायंट आणि सर्व्हर एक सामान्य SSL प्रोटोकॉल आवृत्ती किंवा सायफर संचाला सपोर्ट करीत नाही.</translation> -<translation id="4075941231477579656">टच आयडी</translation> <translation id="4079302484614802869">प्रॉक्सी कॉंफिगरेशन .pac स्क्रिप्ट URL वापरण्यास सेट करण्यात आले आहे, निश्चित प्रॉक्सी सर्व्हर नव्हे.</translation> <translation id="4082393374666368382">सेटिंग्ज - व्यवस्थापक</translation> <translation id="4087296516249690906">इव्हेंट तयार करा बटण, Google Calendar मध्ये नवीन इव्हेंट झटपट तयार करण्यासाठी एंटर दाबा</translation> @@ -1294,7 +1293,6 @@ <translation id="4506176782989081258">ऑथेंटिकेशन एरर: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">सिस्टम प्रशासकाशी संपर्क साधणे</translation> <translation id="450710068430902550">ॲडमिनिस्ट्रेटर शेअर करत आहे</translation> -<translation id="4508814173490746936">टच आयडी वापरता आला नाही</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate वापरून या पेजचे भाषांतर करण्यासाठी टॅब आणि त्यानंतर एंटर दाबा</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">प्रवास बंद करा</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> साठी कालबाह्यता तारीख आणि CVC प्रविष्ट करा</translation> <translation id="6415778972515849510">तुमच्या Google खात्याचे संरक्षण करण्यात आणि तुमचा पासवर्ड बदलण्यात Chromium तुम्हाला मदत करू शकते.</translation> -<translation id="6423385022588644828">यापुढे टच आयडी वापरून तुमच्या कार्डांची जलद खात्री करा</translation> <translation id="6425092077175753609">आशय</translation> <translation id="6427730057873428458">गेट फोल्ड</translation> <translation id="6428450836711225518">तुमच्या फोन नंबरची पडताळणी करा</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">आपल्या डिव्हाइसची तारीख आणि वेळ (<ph name="DATE_AND_TIME" />) चुकीची असल्याने <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> सह खाजगी कनेक्शन इंस्टॉल केले जाऊ शकले नाही.</translation> <translation id="8564182942834072828">वेगळे केलेले दस्तऐवज/संकलित न केलेल्या प्रती</translation> <translation id="8564985650692024650">जर तुम्ही तुमच्या <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्डचा इतर साइटवर पुन्हा वापर केला असेल तर Chromium तुम्हाला तो रीसेट करण्याची शिफारस करतो.</translation> -<translation id="8574899947864779331">कार्डांची जलद खात्री करण्यासाठी टच आयडी वापरा</translation> <translation id="8576310925653847813">होम थिएटर सिस्टीम</translation> <translation id="8577348305244205642">व्हर्च्युअल कार्ड उपलब्ध नाही</translation> <translation id="858637041960032120">फोन नंबर जोडा</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">पुढे, या पृष्ठात सुरक्षित नसलेली इतर संसाधने समाविष्ट आहेत. ही संसाधने संक्रमणात असताना इतरांद्वारे पाहिली जाऊ शकतात आणि पृष्ठाचे वर्तन बदलण्यासाठी आक्रमणकर्त्याद्वारे सुधारित केली जाऊ शकतात.</translation> <translation id="9040464167025094690">Find My Device बटण, Google खाते मध्ये तुमच्या Find My Device ला भेट देण्यासाठी एंटर दाबा</translation> <translation id="9042617223719777575">जास्त क्षमता</translation> -<translation id="9044359186343685026">टच आयडी वापरा</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">तुम्ही <ph name="DOMAIN" /> वर पोहोचण्याचा प्रयत्न केला, परंतु सर्व्हरने चुकीचे सर्टिफिकेट दाखवले आहे.</translation> <translation id="9050666287014529139">सांकेतिक पासफ्रेझ</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index 879f6b0..d5967ed 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Penggunaan & pergerakan kamera</translation> <translation id="191374271204266022">Salin sebagai JSON</translation> <translation id="1914326953223720820">Perkhidmatan Nyahzip</translation> -<translation id="1915697529809968049">Gunakan Touch ID dan bukan CVC?</translation> <translation id="1916770123977586577">Untuk menerapkan tetapan anda yang dikemas kini pada tapak ini, muatkan semula halaman ini</translation> <translation id="1919345977826869612">Iklan</translation> <translation id="1919367280705858090">Dapatkan bantuan berkaitan mesej ralat tertentu</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Lakaran kenit</translation> <translation id="3227137524299004712">Mikrofon</translation> <translation id="3229041911291329567">Maklumat versi tentang peranti dan penyemak imbas anda</translation> +<translation id="3229277193950731405">Salin rentetan versi</translation> <translation id="323107829343500871">Masukkan CVC untuk <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Sentiasa kesan kandungan penting di laman web ini</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tekan tab kemudian Enter untuk menyesuaikan rupa penyemak imbas anda</translation> @@ -1124,7 +1124,6 @@ <translation id="4072486802667267160">Ralat berlaku semasa memproses pesanan anda. Sila cuba lagi.</translation> <translation id="4073797364926776829">Lihat kad</translation> <translation id="4075732493274867456">Pelanggan dan pelayan tidak menyokong versi protokol SSL atau set sifer biasa.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfigurasi proksi ditetapkan kepada penggunaaan URL skrip .pac, bukannya pelayan proksi tetap.</translation> <translation id="4082393374666368382">Tetapan - Pengurusan</translation> <translation id="4087296516249690906">Butang buat acara, tekan kekunci Enter untuk membuat acara baharu dalam Google Calendar dengan pantas</translation> @@ -1296,7 +1295,6 @@ <translation id="4506176782989081258">Ralat pengesahan: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Menghubungi pentadbir sistem</translation> <translation id="450710068430902550">Berkongsi dengan Pentadbir</translation> -<translation id="4508814173490746936">Tidak dapat menggunakan Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tekan Tab kemudian Enter untuk menterjemahkan halaman ini dengan Google Terjemah</translation> <translation id="4510487217173779431">Chou4 (Sampul Surat)</translation> <translation id="4514308731478712184">Matikan Perjalanan</translation> @@ -1970,7 +1968,6 @@ <translation id="6406765186087300643">C0 (Sampul Surat)</translation> <translation id="6410264514553301377">Masukkan tarikh tamat tempoh dan CVC untuk <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium boleh membantu anda melindungi Akaun Google anda dan menukar kata laluan anda.</translation> -<translation id="6423385022588644828">Sahkan kad anda dengan lebih cepat dengan menggunakan Touch ID mulai sekarang</translation> <translation id="6425092077175753609">Bahan</translation> <translation id="6427730057873428458">Lipatan pintu</translation> <translation id="6428450836711225518">Sahkan nombor telefon anda</translation> @@ -2739,7 +2736,6 @@ <translation id="8559762987265718583">Sambungan peribadi ke <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tidak boleh diwujudkan kerana tarikh dan masa peranti anda (<ph name="DATE_AND_TIME" />) tidak betul.</translation> <translation id="8564182942834072828">Dokumen berasingan/Salinan berasingan</translation> <translation id="8564985650692024650">Chromium mengesyorkan penetapan semula kata laluan <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> jika anda menggunakan semula kata laluan itu di tapak lain.</translation> -<translation id="8574899947864779331">Gunakan Touch ID untuk mengesahkan kad dengan lebih cepat</translation> <translation id="8576310925653847813">Sistem teater rumah</translation> <translation id="8577348305244205642">Kad maya tidak tersedia</translation> <translation id="858637041960032120">Tambah no. tel. @@ -2896,7 +2892,6 @@ <translation id="9039213469156557790">Selain itu, halaman ini mengandungi sumber lain yang tidak selamat. Sumber ini boleh dilihat oleh orang lain semasa dalam transit dan boleh diubah oleh penyerang untuk menukar kelakuan halaman.</translation> <translation id="9040464167025094690">Butang cari peranti saya, tekan Enter untuk mencari peranti anda dalam Google Account</translation> <translation id="9042617223719777575">Kapasiti Besar</translation> -<translation id="9044359186343685026">Gunakan Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Anda cuba untuk mencapai <ph name="DOMAIN" />, tetapi pelayan memberikan sijil tidak sah.</translation> <translation id="9050666287014529139">Frasa laluan</translation>
diff --git a/components/strings/components_strings_my.xtb b/components/strings/components_strings_my.xtb index 35d4edac..5eacdee 100644 --- a/components/strings/components_strings_my.xtb +++ b/components/strings/components_strings_my.xtb
@@ -380,7 +380,6 @@ <translation id="1908217026282415406">ကင်မရာအသုံးပြုမှုနှင့် ရွေ့လျားမှု</translation> <translation id="191374271204266022">JSON အဖြစ် မိတ္တူကူးရန်</translation> <translation id="1914326953223720820">ဝန်ဆောင်မှုကို အထုပ်ဖြေရန်</translation> -<translation id="1915697529809968049">CVC အစား 'တို့ထိ ID' သုံးမလား။</translation> <translation id="1916770123977586577">အပ်ဒိတ်လုပ်ထားသော ဆက်တင်များ ဤဝဘ်ဆိုက်တွင် သက်ရောက်မှုရှိစေရန် ဤစာမျက်နှာကို ပြန်ဖွင့်ပါ</translation> <translation id="1919345977826869612">ကြော်ငြာများ</translation> <translation id="1919367280705858090">မှားယွင်းကြောင်း မက်ဆေ့ဂျ်အချို့အတွက် အကူအညီ ရယူရန်</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">သင်၏ မှာယူမှုကို ဆောင်ရွက်နေစဉ် မှားယွင်းမှုတစ်ခု ရှိနေပါသည်။ ထပ်လုပ်ကြည့်ပါ။</translation> <translation id="4073797364926776829">ကတ်ကိုကြည့်ရန်</translation> <translation id="4075732493274867456">အသုံးပြုသူနှင့် ဆာဗာသည် ယေဘုယျ SSL ပရိုတိုကောဗားရှင်း သို့မဟုတ် စာဝှက်ဖော်နည်းများကို မထောက်ပံ့ပါ။</translation> -<translation id="4075941231477579656">ထိတွေ့မှု ID</translation> <translation id="4079302484614802869">ပရောက်စီ စီစဉ်ထားမှုမှာ .pac စာတန်း URL ကို သုံးရန် ဖြစ်ပြီး၊ သတ်မှတ် ပရောက်စီ ဆာဗာများ မဟုတ်ပါ။</translation> <translation id="4082393374666368382">ဆက်တင်များ − စီမံခန့်ခွဲမှု</translation> <translation id="4087296516249690906">အစီအစဉ်ပြုလုပ်ရန် ခလုတ်၊ Google Calendar တွင် အစီအစဉ်အသစ် ပြုလုပ်ရန် Enter ခလုတ် နှိပ်ပါ</translation> @@ -1297,7 +1295,6 @@ <translation id="4506176782989081258">အတည်ပြုခြင်း မှားယွင်းမှု: <ph name="VALIDATION_ERROR" />။</translation> <translation id="4506599922270137252">စနစ်စီမံခန့်ခွဲသူကို ဆက်သွယ်နေသည်</translation> <translation id="450710068430902550">စီမံခန့်ခွဲသူနှင့် မျှဝေခြင်း</translation> -<translation id="4508814173490746936">'တို့ထိ ID' အသုံးပြု၍ မရပါ</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />၊ ဤစာမျက်နှာကို Google Translate ဖြင့်ဘာသာပြန်ရန် Tab နှိပ်ပြီးနောက် Enter နှိပ်ပါ</translation> <translation id="4510487217173779431">Chou4 (စာအိတ်)</translation> <translation id="4514308731478712184">‘ခရီးစဉ်များ’ ပိတ်ရန်</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (စာအိတ်)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> အတွက် ကုန်ဆုံးရက်နှင့် CVC ကို ထည့်ပါ</translation> <translation id="6415778972515849510">Chromium က သင်၏ Google အကောင့်ကို ကာကွယ်ရန်နှင့် စကားဝှက်ပြောင်းရန် ကူညီနိုင်ပါသည်။</translation> -<translation id="6423385022588644828">ယခုမှစ၍ Touch ID ကို အသုံးပြု၍ သင့်ကတ်များကို ပိုမိုမြန်ဆန်စွာ အတည်ပြုလိုက်ပါ</translation> <translation id="6425092077175753609">ရုပ်ဝတ္ထုပစ္စည်း</translation> <translation id="6427730057873428458">ဝင်းတံခါးပုံ ခေါက်ရန်</translation> <translation id="6428450836711225518">သင်၏ဖုန်းနံပါတ်ကို အတည်ပြုပါ</translation> @@ -2741,7 +2737,6 @@ <translation id="8559762987265718583">သင့်ကိရိယာ၏ ရက်စွဲ နှင့် အချိန် (<ph name="DATE_AND_TIME" />)မှာ မမှန်၍ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ထံသို့ ကိုယ်ရေး ချိတ်ဆက်မှုကို ထူထောင်မရနိုင်ပါ။</translation> <translation id="8564182942834072828">သီးခြား စာရွက်စာတမ်းများ/စုစည်းစီစဉ်မထားသော မိတ္တူများ</translation> <translation id="8564985650692024650">အခြားဝဘ်ဆိုက်များတွင် သင်၏ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> စကားဝှက်ကို ပြန်သုံးထားပါက ၎င်းကို ပြင်ဆင်သတ်မှတ်ရန် Chromium က အကြံပြုပါသည်။</translation> -<translation id="8574899947864779331">ကတ်များကို ပိုမိုမြန်ဆန်စွာ အတည်ပြုရန် Touch ID ကို အသုံးပြုပါ</translation> <translation id="8576310925653847813">အိမ်သုံး ရုပ်ရှင်ရုံစနစ်များ</translation> <translation id="8577348305244205642">ပကတိအသွင်ကတ် မရနိုင်ပါ</translation> <translation id="858637041960032120">ဖုန်းနံပါတ် ပေါင်းထည့်ရန်</translation> @@ -2897,7 +2892,6 @@ <translation id="9039213469156557790">ထပ်မံ၍၊ ဤစာမျက်နှာတွင် လုံခြုံမှု မရှိသော အခြားမှီငြမ်းထားမှုများ ပါဝင်သည်။ ဤမှီငြမ်းထားမှုများအား ကြားကာလတွင် အခြားသူများမှ ကြည့်နိုင်ပြီး စာမျက်နှာ၏ အမူအကျင့်ကို ပြောင်းလဲရန် တိုက်ခိုက်သူမှ ပြုပြင်နိုင်သည်။</translation> <translation id="9040464167025094690">ကျွန်ုပ်၏စက်ကို ရှာရန် ခလုတ်၊ Google Account တွင် သင်၏စက်ကိုရှာရန် Enter နှိပ်ပါ</translation> <translation id="9042617223719777575">ကြီးမားသည့်ပမာဏ</translation> -<translation id="9044359186343685026">'တို့ထိ ID' အသုံးပြုရန်</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">သင်သည် <ph name="DOMAIN" />ကို လက်လှမ်းမှီရန် ကြိုးစားခဲ့သည်၊ သို့သော် ဆာဗာက မမှန်သည့် လက်မှတ်ကို တင်ပြခဲ့သည်။</translation> <translation id="9050666287014529139">စကားစုဝှက်</translation>
diff --git a/components/strings/components_strings_ne.xtb b/components/strings/components_strings_ne.xtb index 0ec4b89..b895875 100644 --- a/components/strings/components_strings_ne.xtb +++ b/components/strings/components_strings_ne.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">क्यामेराको प्रयोग र चाल</translation> <translation id="191374271204266022">JSON ढाँचामा कपी गर्नुहोस्</translation> <translation id="1914326953223720820">सेवा अन्जिप गर्नुहोस्</translation> -<translation id="1915697529809968049">CVC को सट्टामा Touch ID प्रयोग गर्ने हो?</translation> <translation id="1916770123977586577">यस साइटमा आफ्ना अद्यावधिक गरिएका सेटिङहरू लागू गर्न यो पृष्ठलाई पुनः लोड गर्नुहोस्</translation> <translation id="1919345977826869612">विज्ञापनहरू</translation> <translation id="1919367280705858090">निर्दिष्ट त्रुटिसम्बन्धी सन्देशमार्फत मद्दत प्राप्त गर्नुहोस्।</translation> @@ -828,6 +827,7 @@ <translation id="3226387218769101247">थम्बनेलहरू</translation> <translation id="3227137524299004712">माइक्रोफोन</translation> <translation id="3229041911291329567">तपाईंको यन्त्र र ब्राउजरको संस्करणसम्बन्धी जानकारी</translation> +<translation id="3229277193950731405">संस्करणको स्ट्रिङ कपी गर्नुहोस्</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> को CVC प्रविष्टि गर्नुहोस्</translation> <translation id="3234666976984236645">सधैं यस साइटमा महत्वपूर्ण सामग्री पत्ता लगाउनुहोस्</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, तपाईं आफ्नो ब्राउजरको स्वरूप कस्टमाइज गर्न चाहनुहुन्छ भने Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation> @@ -1120,7 +1120,6 @@ <translation id="4072486802667267160">तपाईंको भुक्तानीको प्रक्रियालाई अघि बढाउँदा कुनै त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।</translation> <translation id="4073797364926776829">कार्ड हेर्नुहोस्</translation> <translation id="4075732493274867456">ग्राहक र सर्भरले एउटा साधारण SSL प्रोटोकल संस्करण वा साइफर सुइटलाई समर्थन गर्दैनन्।</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">प्रोक्सी विन्यासले .प्याक स्क्रिप्ट युआरएल प्रयोग गर्न सेट गरिएको छ, निश्चित प्रोक्सी सर्भरहरू होइन।</translation> <translation id="4082393374666368382">सेटिङहरू - व्यवस्थापन</translation> <translation id="4087296516249690906">"कार्यक्रम बनाउनुहोस्" बटन, Google पात्रो प्रयोग गरी तुरुन्तै नयाँ कार्यक्रम बनाउन Enter थिच्नुहोस्</translation> @@ -1292,7 +1291,6 @@ <translation id="4506176782989081258">प्रमाणीकरण त्रुटि: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">प्रणालीको प्रशासकलाई सम्पर्क गर्नुहोस्</translation> <translation id="450710068430902550">प्रशासकसँग साझेदारी</translation> -<translation id="4508814173490746936">Touch ID प्रयोग गर्न सकिएन</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google अनुवादक प्रयोग गरी यो पृष्ठ अनुवाद गर्न Tab थिच्नुहोस् अनि Enter थिच्नुहोस्</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Journeys अफ गर्नुहोस्</translation> @@ -1966,7 +1964,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> को म्याद सकिने मिति र CVC प्रविष्टि गर्नुहोस्</translation> <translation id="6415778972515849510">Chromium ले तपाईंलाई आफ्नो Google खाता सुरक्षित गर्न र पासवर्ड बदल्न मद्दत गर्न सक्छ।</translation> -<translation id="6423385022588644828">अब उप्रान्त Touch ID प्रयोग गरेर आफ्ना कार्डहरू अझ छिटो पुष्टि गर्नुहोस्</translation> <translation id="6425092077175753609">वस्तु</translation> <translation id="6427730057873428458">गेट फोल्ड</translation> <translation id="6428450836711225518">आफ्नो फोन नम्बरको पुष्टि गर्नुहोस्</translation> @@ -2735,7 +2732,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />मा एउटा निजी जडान स्थापना गर्न सक्दैन किनकि तपाईँको यन्त्रको मिति र समय <ph name="DATE_AND_TIME" /> गलत छन्।</translation> <translation id="8564182942834072828">छुट्टा छुट्टै कागजातहरू/क्रमबद्ध नगरिएका प्रतिहरू</translation> <translation id="8564985650692024650">तपाईंले आफ्नो <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> को पासवर्ड अन्य साइटहरूमा पुनः प्रयोग गर्नुभएका खण्डमा Chromium ले तपाईंलाई उक्त पासवर्ड रिसेट गर्न सिफारिस गर्दछ।</translation> -<translation id="8574899947864779331">कार्डहरू अझ छिटो पुष्टि गर्न Touch ID प्रयोग गर्नुहोस्</translation> <translation id="8576310925653847813">होम थिएटर सिस्टम</translation> <translation id="8577348305244205642">भर्चुअल कार्ड उपलब्ध छैन</translation> <translation id="858637041960032120">फोन नम्बर थप्नुहोस्</translation> @@ -2891,7 +2887,6 @@ <translation id="9039213469156557790">यसबाहेक, यस पृष्ठले सुरक्षित नभएका अन्य संसाधनहरू समावेश गर्छ। यी स्रोतहरू ट्रान्जिटमा भएको बेला अन्यले हेर्न सक्छन्, र पृष्ठको व्यवहार परिवर्तन गर्न कुनै आक्रमणकारीद्वारा परिमार्जन गर्न सकिन्छ।</translation> <translation id="9040464167025094690">"मेरो डिभाइस पत्ता लगाइयोस्" नामक बटन, तपाईं Google खातामा रहेको डिभाइस पत्ता लगाउने पेजमा जान चाहनुहुन्छ भने इन्टर थिच्नुहोस्</translation> <translation id="9042617223719777575">धेरै क्षमता भएको</translation> -<translation id="9044359186343685026">Touch ID प्रयोग गर्नुहोस्</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">तपाइँले <ph name="DOMAIN" /> मा पुग्ने प्रयास गर्नुभयो, तर सर्भरले एक अवैध प्रमाणपत्र प्रदर्शन गर्यो।</translation> <translation id="9050666287014529139">पासफ्रेज</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index f5b4c8c..1a20bb2 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Cameragebruik en -beweging</translation> <translation id="191374271204266022">Kopiëren als json</translation> <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="1919345977826869612">Advertenties</translation> <translation id="1919367280705858090">Hulp bij een specifieke foutmelding</translation> @@ -1119,7 +1118,6 @@ <translation id="4072486802667267160">Er is een fout opgetreden bij het verwerken van je bestelling. Probeer het opnieuw.</translation> <translation id="4073797364926776829">Kaart bekijken</translation> <translation id="4075732493274867456">De client en server ondersteunen geen algemene SSL-protocolversie of coderingssuite.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxyconfiguratie is ingesteld op het gebruik van een pac-script-URL, niet op het gebruik van vaste proxyservers.</translation> <translation id="4082393374666368382">Instellingen: beheer</translation> <translation id="4087296516249690906">Knop Afspraak maken, druk op Enter om snel een nieuwe afspraak in Google Agenda te maken</translation> @@ -1291,7 +1289,6 @@ <translation id="4506176782989081258">Validatiefout: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Neem contact op met de systeembeheerder</translation> <translation id="450710068430902550">Delen met beheerder</translation> -<translation id="4508814173490746936">Kan Touch ID niet gebruiken</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Druk op Tab en vervolgens op Enter om deze pagina te vertalen met Google Translate.</translation> <translation id="4510487217173779431">Chou4 (envelop)</translation> <translation id="4514308731478712184">Trajecten uitzetten</translation> @@ -1964,7 +1961,6 @@ <translation id="6406765186087300643">C0 (envelop)</translation> <translation id="6410264514553301377">Geef de vervaldatum en CVC-code op voor <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium kan je helpen je Google-account te beschermen en je wachtwoord te wijzigen.</translation> -<translation id="6423385022588644828">Bevestig je kaarten sneller door vanaf nu Touch ID te gebruiken</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Luikvouw</translation> <translation id="6428450836711225518">Je telefoonnummer verifiëren</translation> @@ -2733,7 +2729,6 @@ <translation id="8559762987265718583">Er kan geen privéverbinding met <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> tot stand worden gebracht, omdat de datum en tijd van je apparaat (<ph name="DATE_AND_TIME" />) onjuist zijn.</translation> <translation id="8564182942834072828">Afzonderlijke documenten/ongesorteerde exemplaren</translation> <translation id="8564985650692024650">Chromium raadt je aan het wachtwoord voor <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> opnieuw in te stellen als je het voor andere sites hebt hergebruikt.</translation> -<translation id="8574899947864779331">Gebruik Touch ID om kaarten sneller te bevestigen</translation> <translation id="8576310925653847813">Thuisbioscoopsystemen</translation> <translation id="8577348305244205642">Virtuele kaart niet beschikbaar</translation> <translation id="858637041960032120">Telnr. toevoegen</translation> @@ -2889,7 +2884,6 @@ <translation id="9039213469156557790">Bovendien bevat deze pagina bronnen die niet beveiligd zijn. Deze bronnen kunnen tijdens verzending door anderen worden bekeken en kunnen door een aanvaller worden gewijzigd om het gedrag van de pagina aan te passen.</translation> <translation id="9040464167025094690">De knop Vind mijn apparaat, druk op Enter om naar Vind mijn apparaat in het Google-account te gaan</translation> <translation id="9042617223719777575">Hoge capaciteit</translation> -<translation id="9044359186343685026">Touch ID gebruiken</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Je probeert <ph name="DOMAIN" /> te bereiken, maar de server heeft een ongeldig certificaat geretourneerd.</translation> <translation id="9050666287014529139">Wachtwoordzin</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 48b8c284..13140ca 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamerabruk og -bevegelse</translation> <translation id="191374271204266022">Kopiér som JSON</translation> <translation id="1914326953223720820">Utpakkingstjeneste</translation> -<translation id="1915697529809968049">Vil du bruke Touch ID i stedet for CVC?</translation> <translation id="1916770123977586577">Last inn denne siden på nytt for å ta i bruk de oppdaterte innstillingene dine på dette nettstedet.</translation> <translation id="1919345977826869612">Annonser</translation> <translation id="1919367280705858090">Få hjelp med spesifikke feilmeldinger</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Det oppsto en feil under behandlingen av bestillingen din. Prøv på nytt.</translation> <translation id="4073797364926776829">Se kortet</translation> <translation id="4075732493274867456">Klienten og tjeneren støtter ingen felles SSL-protokollversjon eller -chifferserie.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfigurasjonen av proxytjeneren er angitt til å bruke en nettadresse med .pac-skript, ikke statiske proxytjenere.</translation> <translation id="4082393374666368382">Innstillinger – Administrasjon</translation> <translation id="4087296516249690906">Knappen «Opprett hendelse» – trykk på Enter for å opprette en ny hendelse i Google Kalender raskt</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Valideringsfeil: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontakt systemadministratoren</translation> <translation id="450710068430902550">Deling med administratoren</translation> -<translation id="4508814173490746936">Kunne ikke bruke Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å oversette denne siden med Google Oversetter</translation> <translation id="4510487217173779431">Chou4 (konvolutt)</translation> <translation id="4514308731478712184">Slå av reiser</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (konvolutt)</translation> <translation id="6410264514553301377">Skriv inn utløpsdatoen og verifiseringskoden for <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium kan hjelpe deg med å beskytte Google-kontoen din og endre passordet ditt.</translation> -<translation id="6423385022588644828">Bekreft kortene dine raskere ved å bruke Touch ID fra nå av</translation> <translation id="6425092077175753609">Materiale</translation> <translation id="6427730057873428458">Vindusfals</translation> <translation id="6428450836711225518">Bekreft telefonnummeret ditt</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">En privat tilkobling til <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> kunne ikke etableres fordi datoen og klokkeslettet (<ph name="DATE_AND_TIME" />) er feil på enheten.</translation> <translation id="8564182942834072828">Separate dokumenter / ukollaterte eksemplarer</translation> <translation id="8564985650692024650">Chromium anbefaler at du tilbakestiller passordet ditt for <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> hvis du også har brukt det på andre nettsteder.</translation> -<translation id="8574899947864779331">Bruk Touch ID til å bekrefte kort raskere</translation> <translation id="8576310925653847813">Hjemmekinosystemer</translation> <translation id="8577348305244205642">Virtuelt kort er ikke tilgjengelig</translation> <translation id="858637041960032120">Legg til telefonnummer</translation> @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">Denne siden inneholder i tillegg andre ressurser som ikke er sikre. Disse ressursene er synlige for andre mens de sendes frem og tilbake, og eventuelle angripere kan modifisere dem for å endre på atferden til siden.</translation> <translation id="9040464167025094690">«Finn enheten min»-knappen – trykk på Enter for å gå til Finn enheten min i Google-kontoen.</translation> <translation id="9042617223719777575">Stor kapasitet</translation> -<translation id="9044359186343685026">Bruk Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Du forsøkte å nå <ph name="DOMAIN" />, men tjeneren oppga et ugyldig sertifikat.</translation> <translation id="9050666287014529139">Passordfrase</translation>
diff --git a/components/strings/components_strings_or.xtb b/components/strings/components_strings_or.xtb index c5a66cc..c47e7088 100644 --- a/components/strings/components_strings_or.xtb +++ b/components/strings/components_strings_or.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">କ୍ୟାମେରାର ବ୍ୟବହାର ଓ ଗତିବିଧି</translation> <translation id="191374271204266022">JSON ଭାବେ କପି କରନ୍ତୁ</translation> <translation id="1914326953223720820">ଅନ୍ଜିପ୍ ସେବା</translation> -<translation id="1915697529809968049">CVC ପରିବର୍ତ୍ତେ Touch ID ବ୍ୟବହାର କରିବେ?</translation> <translation id="1916770123977586577">ଏହି ସାଇଟ୍ରେ ଆପଣଙ୍କର ଅପ୍ଡେଟ୍ ହୋଇଥିବା ସେଟିଂସ୍କୁ ଲାଗୁ କରିବା ପାଇଁ, ଏହି ପୃଷ୍ଠାକୁ ରିଲୋଡ୍ କରନ୍ତୁ</translation> <translation id="1919345977826869612">ବିଜ୍ଞାପନ</translation> <translation id="1919367280705858090">କୌଣସି ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ତ୍ରୁଟି ମେସେଜ୍ ବିଷୟରେ ସାହାଯ୍ୟ ପାଆନ୍ତୁ</translation> @@ -829,6 +828,7 @@ <translation id="3226387218769101247">ଥମ୍ବନେଲଗୁଡ଼ିକ</translation> <translation id="3227137524299004712">ମାଇକ୍ରୋଫୋନ୍</translation> <translation id="3229041911291329567">ଆପଣଙ୍କର ଡିଭାଇସ୍ ଏବଂ ବ୍ରାଉଜର୍ ସଂସ୍କରଣ ବିଷୟରେ ସୂଚନା</translation> +<translation id="3229277193950731405">ସଂସ୍କରଣ ଷ୍ଟ୍ରିଂ କପି କରନ୍ତୁ</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> ପାଇଁ CVC ଲେଖନ୍ତୁ</translation> <translation id="3234666976984236645">ସର୍ବଦା ଏହି ସାଇଟ୍ରେ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ବିଷୟବସ୍ତୁ ଚିହ୍ନଟ କରେ</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, ଆପଣଙ୍କ ବ୍ରାଉଜରର ଲୁକ କଷ୍ଟମାଇଜ କରିବାକୁ Tab କରି Enter ଦବାନ୍ତୁ</translation> @@ -1120,7 +1120,6 @@ <translation id="4072486802667267160">ଆପଣଙ୍କର ଅର୍ଡର୍ ପ୍ରକ୍ରିୟାକରଣ କରିବା ସମୟରେ ଏକ ତ୍ରୁଟି ହୋଇଛି। ଦୟାକରି ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।</translation> <translation id="4073797364926776829">କାର୍ଡ ଦେଖନ୍ତୁ</translation> <translation id="4075732493274867456">କ୍ଲାଏଣ୍ଟ ଓ ସର୍ଭର୍ ଏକ ସାଧାରଣ SSL ପ୍ରୋଟୋକଲ୍ ସଂସ୍କରଣ କିମ୍ବା ସାଇଫର୍ ସୁଟ୍ର ସମର୍ଥନ କରନ୍ତି ନାହିଁ।</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">ପ୍ରକ୍ସି କନଫିଗ୍ରେସନ୍ ଏକ .pac ସ୍କ୍ରିପ୍ଟ URL ବ୍ୟବହାର କରିବାକୁ ସେଟ୍ କରାଯାଇଛି, ସ୍ଥିରୀକୃତ ପ୍ରକ୍ସି ସର୍ଭର୍ ନୁହେଁ।</translation> <translation id="4082393374666368382">ସେଟିଂସ୍ - ପରିଚାଳନା</translation> <translation id="4087296516249690906">"ଇଭେଣ୍ଟ ତିଆରି କରନ୍ତୁ" ବଟନ୍, Google Calendarରେ ଶୀଘ୍ର ଏକ ନୂଆ ଇଭେଣ୍ଟ ତିଆରି କରିବାକୁ Enter ଦବାନ୍ତୁ</translation> @@ -1292,7 +1291,6 @@ <translation id="4506176782989081258">ଅନୁମୋଦନ ତ୍ରୁଟି <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ସିଷ୍ଟମ୍ ବ୍ୟବସ୍ଥାପକଙ୍କ ସହ ଯୋଗାଯୋଗ କରାଯାଉଛି</translation> <translation id="450710068430902550">ଆଡ୍ମିନିଷ୍ଟ୍ରେଟର୍ଙ୍କ ସହିତ ସେୟାର୍ କରାଯାଉଛି</translation> -<translation id="4508814173490746936">ଟଚ୍ ID ବ୍ୟବହାର କରାଯାଇପାରିଲା ନାହିଁ</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate ବ୍ୟବହାର କରି ଏହି ପୃଷ୍ଠାକୁ ଅନୁବାଦ କରିବାକୁ Tab କରି Enter ଦବାନ୍ତୁ</translation> <translation id="4510487217173779431">Chou4 (ଏନଭଲପ୍)</translation> <translation id="4514308731478712184">ସନ୍ଧାନ ବନ୍ଦ କରନ୍ତୁ</translation> @@ -1966,7 +1964,6 @@ <translation id="6406765186087300643">C0 (ଏନଭଲପ୍)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> ପାଇଁ ମିଆଦ ଶେଷ ହେଉଥିବା ତାରିଖ ଏବଂ CVC ଲେଖନ୍ତୁ</translation> <translation id="6415778972515849510">Chromium ଆପଣଙ୍କୁ ଆପଣଙ୍କର Google ଆକାଉଣ୍ଟକୁ ସୁରକ୍ଷିତ ରଖିବା ଏବଂ ଆପଣଙ୍କର ପାସ୍ୱାର୍ଡ ବଦଳାଇବାରେ ସାହାଯ୍ୟ କରିପାରିବ।</translation> -<translation id="6423385022588644828">ବର୍ତ୍ତମାନ ଠାରୁ Touch ID ବ୍ୟବହାର କରି ଆପଣଙ୍କର କାର୍ଡଗୁଡ଼ିକୁ ଅତି ଶୀଘ୍ର ସୁନିଶ୍ଚିତ କରନ୍ତୁ</translation> <translation id="6425092077175753609">ସାମଗ୍ରୀ</translation> <translation id="6427730057873428458">ଗେଟ୍ ଫୋଲ୍ଡ</translation> <translation id="6428450836711225518">ଆପଣଙ୍କ ଫୋନ୍ ନମ୍ବର ଯାଞ୍ଚ କରନ୍ତୁ</translation> @@ -2735,7 +2732,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />କୁ ଏକ ବ୍ୟକ୍ତିଗତ ସଂଯୋଗ ସ୍ଥାପନ କରାଯାଇପାରିବ ନାହିଁ କାରଣ, ଆପଣଙ୍କ ଡିଭାଇସ୍ର ତାରିଖ ଏବଂ ସମୟ (<ph name="DATE_AND_TIME" />) ଭୁଲ ଅଛି।</translation> <translation id="8564182942834072828">ଅଲଗା ଡକ୍ୟୁମେଣ୍ଟଗୁଡ଼ିକ/ସଂଗ୍ରହ କରାଯାଇନଥିବା କପିଗୁଡ଼ିକ</translation> <translation id="8564985650692024650">ଆପଣ ଯଦି ଆପଣଙ୍କର <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ପାସ୍ୱାର୍ଡକୁ ଅନ୍ୟ ସାଇଟ୍ଗୁଡ଼ିକରେ ପୁନଃ ବ୍ୟବହାର କରିଛନ୍ତି, ତେବେ Chromium ଆପଣଙ୍କୁ ଏହି ପାସ୍ୱାର୍ଡକୁ ରିସେଟ୍ କରିବା ପାଇଁ ସୁପାରିଶ କରୁଛି।</translation> -<translation id="8574899947864779331">କାର୍ଡଗୁଡ଼ିକୁ ଅତି ଶୀଘ୍ର ସୁନିଶ୍ଚିତ କରିବା ପାଇଁ Touch ID ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="8576310925653847813">ହୋମ ଥିଏଟର ସିଷ୍ଟମଗୁଡ଼ିକ</translation> <translation id="8577348305244205642">ଭର୍ଚୁଆଲ୍ କାର୍ଡ ଉପଲବ୍ଧ ନାହିଁ</translation> <translation id="858637041960032120">ଫୋନ୍ ନମ୍ବର୍ ଯୋଗ କରନ୍ତୁ</translation> @@ -2891,7 +2887,6 @@ <translation id="9039213469156557790">ସେ ଯାହା ହେଉ, ଏହି ପୃଷ୍ଠାଟି ସେହି ଅନ୍ୟ ଉତ୍ସଗୁଡିକ ଅନ୍ତର୍ଭୂକ୍ତ କରେ ଯେଉଁଗୁଡିକ ସୁରକ୍ଷିତ ନୁହେଁ। ଗମନାଗମନ ସମୟରେ ଏହି ଉତ୍ସଗୁଡିକ ଅନ୍ୟମାନଙ୍କ ଦ୍ଵାରା ପରିଦୃଷ୍ଟ ହୋଇ ପାରିବ, ତଥା ପୃଷ୍ଠାଟିର ରୂପ ବା ଆଚରଣ ପରିବର୍ତ୍ତନ କରିବାକୁ ଏକ ଆକ୍ରମଣକାରୀଙ୍କ ଦ୍ଵାରା ରୂପାନ୍ତରିତ କରାଯାଇ ପାରିବ।</translation> <translation id="9040464167025094690">"Find My Device" ବଟନ, Google ଆକାଉଣ୍ଟରେ ଆପଣଙ୍କ ଡିଭାଇସ ଖୋଜିବାକୁ Enter ଦବାନ୍ତୁ</translation> <translation id="9042617223719777575">ଅଧିକ କ୍ଷମତା</translation> -<translation id="9044359186343685026">Touch ID ବ୍ୟବହାର କରନ୍ତୁ</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ଆପଣ <ph name="DOMAIN" />ରେ ପହଞ୍ଚିବାକୁ ଚେଷ୍ଟା କରିଥିଲେ କିନ୍ତୁ ସର୍ଭର୍ ଏକ ଅବୈଧ ସାର୍ଟିଫିକେଟ୍ ଉପସ୍ଥାପନ କରିଛି।</translation> <translation id="9050666287014529139">ପାସ୍ଫ୍ରେଜ୍</translation>
diff --git a/components/strings/components_strings_pa.xtb b/components/strings/components_strings_pa.xtb index e0fa449f2..4ae496a 100644 --- a/components/strings/components_strings_pa.xtb +++ b/components/strings/components_strings_pa.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਅਤੇ ਹਲਚਲ</translation> <translation id="191374271204266022">JSON ਵਜੋਂ ਕਾਪੀ ਕਰੋ</translation> <translation id="1914326953223720820">ਅਣ-ਜ਼ਿਪ ਸੇਵਾ</translation> -<translation id="1915697529809968049">ਕੀ CVC ਦੀ ਬਜਾਏ ਸਪਰਸ਼ ਆਈਡੀ ਨੂੰ ਵਰਤਣਾ ਹੈ?</translation> <translation id="1916770123977586577">ਇਸ ਸਾਈਟ 'ਤੇ ਆਪਣੀਆਂ ਅੱਪਡੇਟ ਕੀਤੀ ਸੈਟਿੰਗਾਂ ਲਾਗੂ ਕਰਨ ਲਈ, ਇਸ ਪੰਨੇ ਨੂੰ ਰੀਲੋਡ ਕਰੋ</translation> <translation id="1919345977826869612">ਵਿਗਿਆਪਨ</translation> <translation id="1919367280705858090">ਇੱਕ ਖਾਸ ਗੜਬੜ-ਸੁਨੇਹਾ ਸੰਬੰਧੀ ਮਦਦ ਪ੍ਰਾਪਤ ਕਰੋ</translation> @@ -1121,7 +1120,6 @@ <translation id="4072486802667267160">ਤੁਹਾਡੇ ਆਰਡਰ 'ਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੌਰਾਨ ਗੜਬੜ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।</translation> <translation id="4073797364926776829">ਕਾਰਡ ਦੇਖੋ</translation> <translation id="4075732493274867456">ਗਾਹਕ ਅਤੇ ਸਰਵਰ ਇੱਕ ਆਮ SSL ਪ੍ਰੋਟੋਕੋਲ ਵਰਜਨ ਜਾਂ ਸਿਫ਼ਰ ਸੁਈਟ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੇ ਹਨ।</translation> -<translation id="4075941231477579656">ਸਪਰਸ਼ ਆਈਡੀ</translation> <translation id="4079302484614802869">ਪ੍ਰੌਕਸੀ ਸੰਰੂਪਿਤ ਇੱਕ .pac ਸਕ੍ਰਿਪਟ URL ਵਰਤਣ ਲਈ ਸੈੱਟ ਹੈ, ਸਥਿਰ ਪ੍ਰੌਕਸੀ ਸਰਵਰਾਂ ਨੂੰ ਨਹੀਂ।</translation> <translation id="4082393374666368382">ਸੈਟਿੰਗਾਂ - ਪ੍ਰਬੰਧਨ</translation> <translation id="4087296516249690906">'ਇਵੈਂਟ ਬਣਾਓ' ਬਟਨ, Google Calendar ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਨਵਾਂ ਇਵੈਂਟ ਬਣਾਉਣ ਲਈ Enter ਦਬਾਓ</translation> @@ -1293,7 +1291,6 @@ <translation id="4506176782989081258">ਪ੍ਰਮਾਣੀਕਰਨ ਗੜਬੜ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ਸਿਸਟਮ ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ</translation> <translation id="450710068430902550">ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸ਼ੇਅਰਿੰਗ</translation> -<translation id="4508814173490746936">ਸਪਰਸ਼ ਆਈਡੀ ਨਹੀਂ ਵਰਤ ਸਕਦੇ</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Tab ਦਬਾਓ, ਫਿਰ Google Translate ਨਾਲ ਇਸ ਪੰਨੇ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਲਈ Enter ਦਬਾਓ</translation> <translation id="4510487217173779431">Chou4 (ਲਿਫ਼ਾਫ਼ਾ)</translation> <translation id="4514308731478712184">ਖੋਜ ਸਫ਼ਰ ਬੰਦ ਕਰੋ</translation> @@ -1966,7 +1963,6 @@ <translation id="6406765186087300643">C0 (ਲਿਫ਼ਾਫ਼ਾ)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> ਲਈ ਮਿਆਦ ਸਮਾਪਤੀ ਦੀ ਤਾਰੀਖ ਅਤੇ CVC ਦਾਖਲ ਕਰੋ</translation> <translation id="6415778972515849510">Chromium ਤੁਹਾਡੇ Google ਖਾਤੇ ਦੀ ਸੁਰੱਖਿਆ ਕਰਨ ਅਤੇ ਪਾਸਵਰਡ ਬਦਲਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ।</translation> -<translation id="6423385022588644828">ਹੁਣ ਤੋਂ ਸਪਰਸ਼ ਆਈਡੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਕਾਰਡਾਂ ਦੀ ਤੇਜ਼ੀ ਨਾਲ ਤਸਦੀਕ ਕਰੋ</translation> <translation id="6425092077175753609">ਮੈਟੀਰੀਅਲ</translation> <translation id="6427730057873428458">ਪੱਲੇਦਾਰ ਤਹਿ</translation> <translation id="6428450836711225518">ਆਪਣੇ ਫ਼ੋਨ ਨੰਬਰ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ</translation> @@ -2735,7 +2731,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ਨਾਲ ਇੱਕ ਨਿੱਜੀ ਕਨੈਕਸ਼ਨ ਨੂੰ ਸਥਾਪਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਕਿਉਂਕਿ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਦੀ ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ (<ph name="DATE_AND_TIME" />) ਗ਼ਲਤ ਹੈ।</translation> <translation id="8564182942834072828">ਵੱਖਰੇ ਦਸਤਾਵੇਜ਼/ਅਣਇਕੱਤਰ ਕਾਪੀਆਂ</translation> <translation id="8564985650692024650">ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੇ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ਪਾਸਵਰਡ ਨੂੰ ਹੋਰ ਸਾਈਟਾਂ 'ਤੇ ਮੁੜ ਵਰਤਿਆ ਹੈ, ਤਾਂ Chromium ਵੱਲੋਂ ਇਸਨੂੰ ਰੀਸੈੱਟ ਕਰਨ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।</translation> -<translation id="8574899947864779331">ਕਾਰਡਾਂ ਦੀ ਤੇਜ਼ੀ ਨਾਲ ਤਸਦੀਕ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਆਈਡੀ ਵਰਤੋ</translation> <translation id="8576310925653847813">ਹੋਮ ਥੀਏਟਰ ਸਿਸਟਮ</translation> <translation id="8577348305244205642">ਆਭਾਸੀ ਕਾਰਡ ਉਪਲਬਧ ਨਹੀਂ</translation> <translation id="858637041960032120">ਫ਼ੋਨ ਨੰਬਰ ਸ਼ਾਮਲ ਕਰੋ</translation> @@ -2891,7 +2886,6 @@ <translation id="9039213469156557790">ਅੱਗੇ, ਇਸ ਸਫ਼ੇ ਵਿੱਚ ਦੂਜੇ ਸ੍ਰੋਤ ਸ਼ਾਮਲ ਹਨ, ਜੋ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ। ਇਹ ਸ੍ਰੋਤ ਟ੍ਰਾਂਜਿਟ ਵਿੱਚ ਹੋਣ ਵੇਲੇ ਦੂਜਿਆਂ ਵੱਲੋਂ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ ਅਤੇ ਸਫ਼ੇ ਦੇ ਵਿਹਾਰ ਨੂੰ ਬਦਲਣ ਲਈ ਇੱਕ ਹਮਲਾਵਰ ਵੱਲੋਂ ਸੰਸ਼ੋਧਿਤ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।</translation> <translation id="9040464167025094690">'Find My Device' ਬਟਨ, Google ਖਾਤੇ ਵਿੱਚ 'ਆਪਣਾ ਡੀਵਾਈਸ ਲੱਭੋ' 'ਤੇ ਜਾਣ ਲਈ Enter ਦਬਾਓ</translation> <translation id="9042617223719777575">ਜ਼ਿਆਦਾ ਸਮਰੱਥਾ</translation> -<translation id="9044359186343685026">ਸਪਰਸ਼ ਆਈਡੀ ਨੂੰ ਵਰਤੋ</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ਤੁਸੀਂ <ph name="DOMAIN" /> ਤੱਕ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ, ਪਰ ਸਰਵਰ ਨੇ ਇੱਕ ਅਵੈਧ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪੇਸ਼ ਕੀਤਾ।</translation> <translation id="9050666287014529139">ਪਾਸਫਰੇਜ਼</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 798d6394..b8ab3e1 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Używanie kamery i poruszanie nią</translation> <translation id="191374271204266022">Skopiuj jako JSON</translation> <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="1919345977826869612">Reklamy</translation> <translation id="1919367280705858090">Uzyskiwanie pomocy w przypadku konkretnego komunikatu o błędzie</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Podczas przetwarzania zamówienia wystąpił błąd. Spróbuj ponownie.</translation> <translation id="4073797364926776829">Wyświetl kartę</translation> <translation id="4075732493274867456">Klient i serwer nie obsługują wspólnej wersji protokołu SSL lub mechanizmu szyfrowania.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy skonfigurowano do używania URL-a skryptu PAC, a nie ustalonych serwerów proxy.</translation> <translation id="4082393374666368382">Ustawienia – Zarządzanie</translation> <translation id="4087296516249690906">Przycisk Utwórz wydarzenie; naciśnij Enter, aby szybko utworzyć nowe wydarzenie w Kalendarzu Google</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Błąd sprawdzania poprawności: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Skontaktuj się z administratorem systemu</translation> <translation id="450710068430902550">Udostępnianie administratorowi</translation> -<translation id="4508814173490746936">Nie udało się użyć Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Naciśnij Tab, a potem Enter, by Tłumacz Google przetłumaczył tę stronę.</translation> <translation id="4510487217173779431">Chou4 (koperta)</translation> <translation id="4514308731478712184">Wyłącz Serie czynności</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (koperta)</translation> <translation id="6410264514553301377">Wpisz datę ważności i kod CVC karty <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium może Ci pomóc w zabezpieczeniu Twojego konta Google i zmianie hasła.</translation> -<translation id="6423385022588644828">Potwierdzaj karty szybciej przy użyciu Touch ID</translation> <translation id="6425092077175753609">Styl Material</translation> <translation id="6427730057873428458">Składanie od góry i od dołu do środka</translation> <translation id="6428450836711225518">Weryfikowanie numeru telefonu</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Nie można nawiązać prywatnego połączenia z <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, ponieważ data i godzina (<ph name="DATE_AND_TIME" />) ustawione na urządzeniu są nieprawidłowe.</translation> <translation id="8564182942834072828">Oddzielne dokumenty / Kopie niesortowane</translation> <translation id="8564985650692024650">Chromium zaleca zresetowanie hasła, którego używasz w: <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, jeśli zostało użyte na innej stronie.</translation> -<translation id="8574899947864779331">Używaj Touch ID, by szybciej potwierdzać karty</translation> <translation id="8576310925653847813">Systemy kina domowego</translation> <translation id="8577348305244205642">Karta wirtualna jest niedostępna</translation> <translation id="858637041960032120">Dodaj numer telefonu</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Ta strona zawiera także niezabezpieczone zasoby. Podczas przesyłania mogą je wyświetlić inni użytkownicy, a osoby atakujące mogą je zmodyfikować, by zmienić sposób działania strony.</translation> <translation id="9040464167025094690">Przycisk Znajdź moje urządzenie; aby znaleźć swoje urządzenie na koncie Google, naciśnij Enter</translation> <translation id="9042617223719777575">Duża pojemność</translation> -<translation id="9044359186343685026">Używaj Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Podjęto próbę nawiązania połączenia z witryną <ph name="DOMAIN" />, jednak serwer przedstawił nieprawidłowy certyfikat.</translation> <translation id="9050666287014529139">Hasło</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 2d6c6e7..66d09d3 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uso e movimento da câmera</translation> <translation id="191374271204266022">Copiar como JSON</translation> <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="1919345977826869612">Anúncios</translation> <translation id="1919367280705858090">Receber ajuda com uma mensagem de erro específica</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniaturas</translation> <translation id="3227137524299004712">Microfone</translation> <translation id="3229041911291329567">Informações sobre a versão do seu dispositivo e navegador</translation> +<translation id="3229277193950731405">Copiar string da versão</translation> <translation id="323107829343500871">Digite o CVC do <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Sempre detectar conteúdo importante neste site</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pressione Tab e depois Enter para personalizar a aparência do navegador</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Ocorreu um erro ao processar seu pedido. Tente novamente.</translation> <translation id="4073797364926776829">Ver cartão</translation> <translation id="4075732493274867456">O cliente e o servidor não são compatíveis com uma versão do protocolo SSL comum ou com o pacote de criptografia.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">A configuração do proxy definida utiliza um URL de script .pac, e não servidores proxy fixos.</translation> <translation id="4082393374666368382">Configurações: gerenciamento</translation> <translation id="4087296516249690906">Botão para criar evento. Pressione Enter para criar rapidamente um novo evento no Google Agenda</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Erro de validação: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Entrar em contato com o administrador do sistema</translation> <translation id="450710068430902550">Compartilhar com o administrador</translation> -<translation id="4508814173490746936">Não foi possível usar o Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Pressione "Tab" e depois "Enter" para traduzir esta página com o Google Tradutor</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Desativar as jornadas</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Digite a data de validade e o CVC do <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">No Chromium, você pode receber ajuda para proteger sua Conta do Google e alterar sua senha.</translation> -<translation id="6423385022588644828">Confirme seus cartões mais rapidamente usando o Touch ID de agora em diante</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Dobra janela</translation> <translation id="6428450836711225518">Verificar seu número de telefone</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Não é possível estabelecer uma conexão privada com <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do seu dispositivo (<ph name="DATE_AND_TIME" />) estão incorretas.</translation> <translation id="8564182942834072828">Documentos separados/Cópias não reunidas</translation> <translation id="8564985650692024650">O Chromium recomenda redefinir sua senha de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se você a reutilizou em outros sites.</translation> -<translation id="8574899947864779331">Use o Touch ID para confirmar seus cartões mais rapidamente</translation> <translation id="8576310925653847813">Sistemas de home theater</translation> <translation id="8577348305244205642">Cartão virtual indisponível</translation> <translation id="858637041960032120">Ad. nº. telefone @@ -2895,7 +2891,6 @@ <translation id="9039213469156557790">Além disso, esta página inclui outros recursos que não são seguros. Esses recursos podem ser visualizados por outros usuários enquanto eles navegam e podem ser modificados por um invasor para alterar o comportamento da página.</translation> <translation id="9040464167025094690">Botão "Encontre meu dispositivo". Pressione Enter para encontrar o dispositivo com a Conta do Google</translation> <translation id="9042617223719777575">Grande capacidade</translation> -<translation id="9044359186343685026">Usar o Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" />: <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Você tentou acessar <ph name="DOMAIN" />, mas o servidor apresentou um certificado inválido.</translation> <translation id="9050666287014529139">Senha</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index faf99a3..cb4c090 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Utilização e movimento da câmara</translation> <translation id="191374271204266022">Copiar como JSON</translation> <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="1919345977826869612">Anúncios</translation> <translation id="1919367280705858090">Obter ajuda relativamente a uma mensagem de erro específica</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Ocorreu um erro ao processar a sua encomenda. Tente novamente.</translation> <translation id="4073797364926776829">Ver cartão</translation> <translation id="4075732493274867456">O cliente e o servidor não suportam uma versão do protocolo SSL ou um conjunto de cifras comum.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">A configuração do proxy está definida para utilizar um URL de script .pac e não servidores proxy fixos.</translation> <translation id="4082393374666368382">Definições – Gestão</translation> <translation id="4087296516249690906">Botão Criar evento, prima Enter para criar rapidamente um novo evento no Calendário Google</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Erro de validação: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Contactar o gestor do sistema</translation> <translation id="450710068430902550">Partilha com o gestor</translation> -<translation id="4508814173490746936">Não foi possível utilizar o Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, prima Tab e, em seguida, Enter para traduzir esta página com o Google Tradutor.</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Desativar os percursos</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Introduza a data de validade e o Código de Segurança/CVC de <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">O Chromium pode ajudá-lo a proteger a sua Conta Google e alterar a palavra-passe.</translation> -<translation id="6423385022588644828">Confirme os seus cartões mais rapidamente ao utilizar o Touch ID a partir de agora.</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Dobra simétrica</translation> <translation id="6428450836711225518">Valide o seu número de telefone</translation> @@ -2245,7 +2241,7 @@ <translation id="7219179957768738017">A ligação utiliza <ph name="SSL_VERSION" />.</translation> <translation id="7220786058474068424">A processar</translation> <translation id="7221855153210829124">Mostrar notificações</translation> -<translation id="722454870747268814">Novo separador de navegação anónima</translation> +<translation id="722454870747268814">Novo separador anónimo</translation> <translation id="7233592378249864828">Imprimir folha de confirmação</translation> <translation id="7234638337680728591">Preços da gasolina e combustíveis</translation> <translation id="7237492777898608035">Não voltar a mostrar esta mensagem para este site</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Não é possível estabelecer uma ligação privada a <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, porque a data e a hora do seu dispositivo (<ph name="DATE_AND_TIME" />) estão incorretas.</translation> <translation id="8564182942834072828">Documentos separados/Cópias não agrupadas</translation> <translation id="8564985650692024650">O Chromium recomenda a reposição da palavra-passe da <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> se a tiver reutilizado noutros sites.</translation> -<translation id="8574899947864779331">Utilizar o Touch ID para confirmar os cartões mais rapidamente</translation> <translation id="8576310925653847813">Sistemas de cinema em casa</translation> <translation id="8577348305244205642">Cartão virtual não disponível</translation> <translation id="858637041960032120">Adic. n.º telef. @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Além disso, esta página inclui outros recursos que não são seguros. Estes recursos podem ser vistos por outros utilizadores em trânsito e modificados por um utilizador mal intencionado com o intuito de alterar o comportamento da página.</translation> <translation id="9040464167025094690">Botão Localizar o meu dispositivo, prima Enter para visitar localizar o seu dispositivo na Conta Google</translation> <translation id="9042617223719777575">Capacidade elevada</translation> -<translation id="9044359186343685026">Utilizar Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Tentou aceder a <ph name="DOMAIN" />, mas o servidor apresentou um certificado inválido.</translation> <translation id="9050666287014529139">Frase de acesso</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index e54eae0..4efc143a 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Folosirea și mișcarea camerei</translation> <translation id="191374271204266022">Copiază ca JSON</translation> <translation id="1914326953223720820">Serviciu de dezarhivare</translation> -<translation id="1915697529809968049">Folosești Touch ID în loc de CVC?</translation> <translation id="1916770123977586577">Ca să aplici setările actualizate pentru acest site, reîncarcă pagina</translation> <translation id="1919345977826869612">Anunțuri</translation> <translation id="1919367280705858090">Obține ajutor în privința unui anumit mesaj de eroare</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">A apărut o eroare la procesarea comenzii. Încearcă din nou.</translation> <translation id="4073797364926776829">Afișează cardul</translation> <translation id="4075732493274867456">Clientul și serverul nu acceptă o versiune a protocolului SSL sau o suită de codificare obișnuită.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Configurația pentru proxy este setată să utilizeze o adresă URL pentru scripturi .pac, și nu servere proxy fixe.</translation> <translation id="4082393374666368382">Setări – Administrator</translation> <translation id="4087296516249690906">Butonul Creează un eveniment, apasă pe Enter pentru a crea rapid un eveniment în Google Calendar</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Eroare de validare: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">să contactezi administratorul sistemului;</translation> <translation id="450710068430902550">Permiterea accesului pentru administrator</translation> -<translation id="4508814173490746936">Nu s-a putut folosi Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, apasă pe Tab, apoi pe Enter pentru a traduce această pagină cu Google Traducere</translation> <translation id="4510487217173779431">Chou4 (Plic)</translation> <translation id="4514308731478712184">Dezactivează Parcursuri</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Plic)</translation> <translation id="6410264514553301377">Introdu data de expirare și codul CVC pentru <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium te poate ajuta să îți protejezi Contul Google și să îți schimbi parola.</translation> -<translation id="6423385022588644828">Confirmă-ți cardurile mai rapid, folosind Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Îndoire de tip fereastră</translation> <translation id="6428450836711225518">Confirmă numărul de telefon</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">O conexiune privată la <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> nu poate fi stabilită, deoarece data și ora dispozitivului (<ph name="DATE_AND_TIME" />) sunt incorecte.</translation> <translation id="8564182942834072828">Documente separate/Copii necolaționate</translation> <translation id="8564985650692024650">Chromium îți recomandă să resetezi parola pentru <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> dacă ai folosit-o și pe alte site-uri.</translation> -<translation id="8574899947864779331">Folosește Touch ID ca să confirmi cardurile mai rapid</translation> <translation id="8576310925653847813">Sisteme Home Theater</translation> <translation id="8577348305244205642">Cardul virtual nu este disponibil</translation> <translation id="858637041960032120">Adăugați telefon @@ -2896,7 +2891,6 @@ <translation id="9039213469156557790">În plus, această pagină include alte resurse care nu sunt securizate. Aceste resurse sunt vizibile pentru alți utilizatori în cursul transferului și pot fi modificate de un atacator pentru a schimba comportamentul paginii.</translation> <translation id="9040464167025094690">Butonul Găsește-mi dispozitivul, apasă pe Enter pentru a accesa serviciul Găsește-mi dispozitivul în Contul Google</translation> <translation id="9042617223719777575">Capacitate mare</translation> -<translation id="9044359186343685026">Folosește Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Ai încercat să accesezi <ph name="DOMAIN" />, dar serverul a prezentat un certificat nevalid.</translation> <translation id="9050666287014529139">Expresie de acces</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index 63d1d96d..7ddf8a4 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Использование и перемещение камеры</translation> <translation id="191374271204266022">Копировать в JSON-файл</translation> <translation id="1914326953223720820">Распаковщик файлов</translation> -<translation id="1915697529809968049">Использовать Touch ID вместо CVC-кода?</translation> <translation id="1916770123977586577">Чтобы применить к сайту новые настройки, перезагрузите страницу</translation> <translation id="1919345977826869612">Реклама</translation> <translation id="1919367280705858090">Как устранить определенные виды ошибок</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">При обработке заказа произошла ошибка. Повторите попытку.</translation> <translation id="4073797364926776829">Посмотреть карту</translation> <translation id="4075732493274867456">Клиент и сервер поддерживают разные версии протокола SSL или набора шифров.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Конфигурация прокси-сервера предусматривает использование URL PAC-скриптов вместо фиксированных прокси-серверов.</translation> <translation id="4082393374666368382">Настройки – Управление</translation> <translation id="4087296516249690906">Кнопка "Создать мероприятие". Чтобы быстро создать мероприятие в Google Календаре, нажмите Ввод.</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">Ошибка проверки: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Обратитесь за помощью к системному администратору.</translation> <translation id="450710068430902550">Доступ администратора</translation> -<translation id="4508814173490746936">Не удалось использовать Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Нажмите Tab и затем Ввод, чтобы с помощью Google Переводчика ознакомиться с содержанием страницы.</translation> <translation id="4510487217173779431">Chou4 (конверт)</translation> <translation id="4514308731478712184">Отключить сеансы</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (конверт)</translation> <translation id="6410264514553301377">Введите срок действия и CVC-код карты <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Защитите свой аккаунт Google и смените пароль с помощью Chromium.</translation> -<translation id="6423385022588644828">Подтверждайте карты быстрее с помощью Touch ID</translation> <translation id="6425092077175753609">Material design</translation> <translation id="6427730057873428458">Фальцовка калиткой в два сгиба</translation> <translation id="6428450836711225518">Подтвердите номер телефона</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Не удалось установить защищенное соединение с доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> из-за неверных настроек системных часов и календаря (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Несколько документов/без разбора по копиям</translation> <translation id="8564985650692024650">Chromium рекомендует сбросить пароль, используемый в подразделении <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, если вы указывали его на других сайтах.</translation> -<translation id="8574899947864779331">Использовать Touch ID для быстрого подтверждения карт</translation> <translation id="8576310925653847813">Домашние кинотеатры</translation> <translation id="8577348305244205642">Виртуальная карта недоступна</translation> <translation id="858637041960032120">Добавьте номер</translation> @@ -2894,7 +2889,6 @@ <translation id="9039213469156557790">Обратите внимание, что на странице обнаружен небезопасный контент. Возможно, при передаче ресурсы просматриваются третьими лицами, а злоумышленники могут получить доступ к странице и изменить ее поведение.</translation> <translation id="9040464167025094690">Кнопка "Где мой телефон". Нажмите Ввод, чтобы найти устройство в аккаунте Google.</translation> <translation id="9042617223719777575">Большая емкость</translation> -<translation id="9044359186343685026">Использовать Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Вы попытались открыть <ph name="DOMAIN" />, однако представленный сервером сертификат недействителен.</translation> <translation id="9050666287014529139">Кодовая фраза</translation>
diff --git a/components/strings/components_strings_si.xtb b/components/strings/components_strings_si.xtb index 25eeb72..e2cd235a 100644 --- a/components/strings/components_strings_si.xtb +++ b/components/strings/components_strings_si.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">කැමරා භාවිතය සහ චලනය</translation> <translation id="191374271204266022">JSON ලෙස පිටපත් කරන්න</translation> <translation id="1914326953223720820">සේවාව දිගහරින්න</translation> -<translation id="1915697529809968049">CVC වෙනුවට ස්පර්ශ හැඳුනුම භාවිත කරන්නද?</translation> <translation id="1916770123977586577">මෙම අඩවියට ඔබේ යාවත්කාලීන සැකසීම් යෙදීමට, මෙම පිටුව නැවත පූරණය කරන්න</translation> <translation id="1919345977826869612">වෙළඳ දැන්වීම්</translation> <translation id="1919367280705858090">නිශ්චිත දෝෂ පණිවිඩයක් සමඟ උදවු ලබා ගන්න</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">ඔබේ ඇණවුම සැකසීමේ දෝෂයක් විය. නැවත උත්සාහ කරන්න.</translation> <translation id="4073797364926776829">කාඩ්පත බලන්න</translation> <translation id="4075732493274867456">සේවාලාභියා සහ සේවාදායකයා පොදු SSL ප්රොටොකෝල අනුවාදයක් හෝ කේතාංක කට්ටලයක් සඳහා සහාය නොදක්වයි.</translation> -<translation id="4075941231477579656">ස්පර්ශක හැඳුනුම</translation> <translation id="4079302484614802869">ප්රොක්සි සැකසුම සකසා ඇත්තේ .pac ස්ක්රිප්ට ලිපින භාවිතයටයි. ස්ථිත ප්රොක්සි සේවාදායක භාවිතයට නොවේ.</translation> <translation id="4082393374666368382">සැකසීම් - කළමනාකරණය</translation> <translation id="4087296516249690906">සිදුවීම තනන්න බොත්තම, Google දින දර්ශනයේ නව සිදුවීමක් ඉක්මනින් තැනීමට Enter ඔබන්න</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">වලංගුකරණ දෝෂය: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">පද්ධති පරිපාලක අමතමින්</translation> <translation id="450710068430902550">පරිපාලක සමඟ බෙදා ගැනීම</translation> -<translation id="4508814173490746936">ස්පර්ශ හැඳුනුම භාවිත කළ නොහැකි විය</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google පරිවර්තනය සමගින් මෙම පිටුව පරිවර්තනය කිරීමට Tab ඔබා අනතුරුව Enter ඔබන්න</translation> <translation id="4510487217173779431">Chou4 (ලියුම් කවරය)</translation> <translation id="4514308731478712184">සංචාර ක්රියාවිරහිත කරන්න</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (ලියුම් කවරය)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> සඳහා කල් ඉකුත් වීමේ දිනය සහ CVC ඇතුළු කරන්න</translation> <translation id="6415778972515849510">Chromium ඔබට ඔබේ Google ගිණුම ආරක්ෂා කිරීමටත් ඔබේ මුරපදය වෙනස් කිරීමටත් ඔබට උදවු කළ හැක.</translation> -<translation id="6423385022588644828">දැන් සිට ස්පර්ශ හැඳුනුම භාවිත කිරීමෙන් ඔබේ කාඩ්පත් වඩා වේගයෙන් තහවුරු කරන්න</translation> <translation id="6425092077175753609">ද්රව්ය</translation> <translation id="6427730057873428458">දොරටු නැමීම</translation> <translation id="6428450836711225518">ඔබේ දුරකථන අංකය සත්යාපන කරන්න</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">ඔබගේ උපාංගයේ දිනය සහ වේලාව (<ph name="DATE_AND_TIME" />) නිවැරදි නොවන නිසා <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> වෙත පෞද්ගලික සම්බන්ධයක් සෑදිය නොහැකියි.</translation> <translation id="8564182942834072828">වෙන් වූ ලේඛන/එකතු නොකළ පිටපත්</translation> <translation id="8564985650692024650">Chromium ඔබේ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> මුරපදය ඔබ වෙනත් අඩවිවල නැවත භාවිත කර තිබේ නම් යළි සැකසීමට නිර්දේශ කරයි.</translation> -<translation id="8574899947864779331">කාඩ්පත් වඩා වේගයෙන් තහවුරු කිරීමට ස්පර්ශ හැඳුනුම භාවිත කරන්න</translation> <translation id="8576310925653847813">හෝම් තියටර් පද්ධති</translation> <translation id="8577348305244205642">අතථ්ය කාඩ්පත ලබා ගත නොහැකිය</translation> <translation id="858637041960032120">දුරකථන අංකය එක් කරන්න</translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">තවද, මෙම පිටුවේ ආරක්ෂිත නොවන වෙනත් සම්පත් ඇත. එම සම්පත් හුවමාරුව අතරතුර අනෙක් අයටත් බැලිය හැකි අතර, පිටුවේ හැසිරීම වෙනස් වන අයුරින් වෙනස් කිරීමට වෙබ් ප්රහාරකයෙකුට හැකිය.</translation> <translation id="9040464167025094690">මගේ උපාංගය සොයන්න බොත්තම, Google ගිණුම තුළ ඔබගේ උපාංගය සොයා සොයන්න වෙත පිවිසීමට Enter ඔබන්න</translation> <translation id="9042617223719777575">Large Capacity</translation> -<translation id="9044359186343685026">ස්පර්ශ හැඳුනුම භාවිත කරන්න</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">ඔබ <ph name="DOMAIN" /> වෙත පිවිසීමට උත්සාහ කර තිබේ, නමුත් සර්වරය ඉදිරිපත් කළේ වැරදි සහතිකයකි.</translation> <translation id="9050666287014529139">රහස්වැකිය</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 39afc8a..ac1c0df 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Používanie a pohyb kamery</translation> <translation id="191374271204266022">Skopírovať ako JSON</translation> <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="1919345977826869612">Reklamy</translation> <translation id="1919367280705858090">Pomoc s konkrétnym chybovým hlásením</translation> @@ -1120,7 +1119,6 @@ <translation id="4072486802667267160">Pri spracovaní vašej objednávky sa vyskytla chyba. Skúste to znova.</translation> <translation id="4073797364926776829">Zobraziť kartu</translation> <translation id="4075732493274867456">Klient a server nepodporujú spoločnú verziu protokolu SSL ani šifrovaciu súpravu.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfigurácia proxy je nastavená na použitie skriptu PAC webovej adresy, nie pevne daných serverov proxy.</translation> <translation id="4082393374666368382">Nastavenia – správa</translation> <translation id="4087296516249690906">Tlačidlo na vytvorenie udalosti, stlačením klávesa Enter vytvoríte rýchlym spôsobom novú udalosť v Kalendári Google</translation> @@ -1292,7 +1290,6 @@ <translation id="4506176782989081258">Chyba overenia: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kontaktovať správcu systému</translation> <translation id="450710068430902550">Zdieľanie so správcom</translation> -<translation id="4508814173490746936">Touch ID sa nepodarilo použiť</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, postupným stlačením klávesov Tab a Enter preložte túto stránku pomocou Prekladača Google</translation> <translation id="4510487217173779431">Chou4 (obálka)</translation> <translation id="4514308731478712184">Vypnúť Journeys</translation> @@ -1965,7 +1962,6 @@ <translation id="6406765186087300643">C0 (obálka)</translation> <translation id="6410264514553301377">Zadajte dátum vypršania platnosti a kód CVC karty <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium vám pomôže ochrániť účet Google a zmeniť heslo.</translation> -<translation id="6423385022588644828">Odteraz môžete potvrdzovať karty rýchlejšie pomocou funkcie Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Obojstranná fazóna</translation> <translation id="6428450836711225518">Overenie telefónneho čísla</translation> @@ -2734,7 +2730,6 @@ <translation id="8559762987265718583">Súkromné pripojenie k doméne <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> sa nedá nadviazať, pretože dátum a čas (<ph name="DATE_AND_TIME" />) vášho zariadenia sú nesprávne.</translation> <translation id="8564182942834072828">Samostatné dokumenty alebo nezoradené kópie</translation> <translation id="8564985650692024650">Ak ste heslo organizácie <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> použili aj na iných weboch, Chromium ho odporúča obnoviť.</translation> -<translation id="8574899947864779331">Potvrdzujte karty rýchlejšie pomocou funkcie Touch ID</translation> <translation id="8576310925653847813">Systémy domáceho kina</translation> <translation id="8577348305244205642">Virtuálna karta nie je k dispozícii</translation> <translation id="858637041960032120">Pridať telefón @@ -2891,7 +2886,6 @@ <translation id="9039213469156557790">Táto stránka obsahuje aj iné zdroje, ktoré nie sú zabezpečené. Tieto zdroje môžu pri prenose vidieť ostatní používatelia a útočník ich môže upraviť tak, aby zmenil správanie stránky.</translation> <translation id="9040464167025094690">Tlačidlo na vyhľadanie zariadenia, stlačením klávesa Enter prejdite do funkcie Nájdi moje zariadenie v účte Google</translation> <translation id="9042617223719777575">Veľká kapacita</translation> -<translation id="9044359186343685026">Použiť Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Pokúšate sa otvoriť doménu <ph name="DOMAIN" />, ale server predložil neplatný certifikát.</translation> <translation id="9050666287014529139">Prístupová fráza</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index c6e00cedb..7bde43cc 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Uporaba in premikanje kamere</translation> <translation id="191374271204266022">Kopiraj kot JSON</translation> <translation id="1914326953223720820">Storitev razširjanja datotek</translation> -<translation id="1915697529809968049">Želite namesto kode CVC uporabiti Touch ID?</translation> <translation id="1916770123977586577">Če želite uporabiti posodobljene nastavitve za to spletno mesto, znova naložite to stran</translation> <translation id="1919345977826869612">Oglasi</translation> <translation id="1919367280705858090">Pomoč pri določenem sporočilu o napaki</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Pri obdelavi naročila je prišlo do napake. Poskusite znova.</translation> <translation id="4073797364926776829">Ogled kartice</translation> <translation id="4075732493274867456">Odjemalec in strežnik ne podpirata skupne različice protokola SSL ali šifrirne zbirke.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfiguracija strežnika proxy je nastavljena na uporabo URL-ja skripta .pac, ne na stalne strežnike proxy.</translation> <translation id="4082393374666368382">Nastavitve – upravljanje</translation> <translation id="4087296516249690906">Gumb za ustvarjanje dogodkov, pritisnite Enter, če želite hitro ustvariti nov dogodek v Koledarju Google</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Napaka pri preverjanju veljavnosti: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">se obrniti na skrbnika sistema</translation> <translation id="450710068430902550">Deljenje s skrbnikom</translation> -<translation id="4508814173490746936">Ni bilo mogoče uporabiti funkcije Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite tabulatorko, nato Enter, če želite prevesti to stran s Prevajalnikom Google</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Izklop Poti</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Vnesite datum poteka veljavnosti in kodo CVC za kartico <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium vam lahko pomaga zaščititi račun za Google in spremeniti geslo.</translation> -<translation id="6423385022588644828">Od zdaj naprej lahko uporabljate Touch ID in kartice potrjujete hitreje</translation> <translation id="6425092077175753609">Materialno</translation> <translation id="6427730057873428458">Prepogibanje v obliki okna</translation> <translation id="6428450836711225518">Preverjanje telefonske številke</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Zasebne povezave z domeno <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ni mogoče vzpostaviti, ker sta datum in ura (<ph name="DATE_AND_TIME" />) v napravi nepravilna.</translation> <translation id="8564182942834072828">Ločeni dokumenti/nezbrane kopije</translation> <translation id="8564985650692024650">Chromium priporoča, da ponastavite geslo za <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, če ste ga uporabljali tudi na drugih spletnih mestih.</translation> -<translation id="8574899947864779331">Uporabite Touch ID za hitrejše potrjevanje kartic</translation> <translation id="8576310925653847813">Sistemi za domači kino</translation> <translation id="8577348305244205642">Virtualna kartica ni na voljo</translation> <translation id="858637041960032120">Dodajte tel. št. </translation> @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Poleg tega so na tej strani druga sredstva, ki niso varna. Ta sredstva lahko med prenosom pregledujejo drugi, morebitni napadalec pa jih lahko spremeni, tako da se spremeni način delovanja strani.</translation> <translation id="9040464167025094690">Gumb za Poišči mojo napravo, pritisnite Enter, če želite odpreti razdelek za iskanje naprave v računu Google.</translation> <translation id="9042617223719777575">Velika zmogljivost</translation> -<translation id="9044359186343685026">Uporabi Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Skušali ste dostopati do domene <ph name="DOMAIN" />, vendar je strežnik predložil neveljavno potrdilo.</translation> <translation id="9050666287014529139">Geslo</translation>
diff --git a/components/strings/components_strings_sq.xtb b/components/strings/components_strings_sq.xtb index cead389..657b867 100644 --- a/components/strings/components_strings_sq.xtb +++ b/components/strings/components_strings_sq.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Përdorimi dhe lëvizja e kamerës</translation> <translation id="191374271204266022">Kopjo si JSON</translation> <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="1919345977826869612">Reklamat</translation> <translation id="1919367280705858090">Merr ndihmë për një mesazh specifik gabimi</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniaturat</translation> <translation id="3227137524299004712">Mikrofoni</translation> <translation id="3229041911291329567">Informacioni i versionit rreth pajisjes dhe shfletuesit tënd</translation> +<translation id="3229277193950731405">Kopjo vargun e versionit</translation> <translation id="323107829343500871">Shkruaj kodin CVC për <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Zbulo gjithmonë përmbajtje të rëndësishme në këtë sajt</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. Shtyp "Tab" dhe më pas "Enter" për të personalizuar pamjen e shfletuesit tënd</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Ndodhi një gabim gjatë përpunimit të porosisë. Provo përsëri.</translation> <translation id="4073797364926776829">Shiko kartën</translation> <translation id="4075732493274867456">Klienti dhe serveri nuk mbështesin një version të zakonshëm të protokollit SSL ose një paketë të shifrimit.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfigurimi i përfaqësuesit është caktuar të përdorë një shkrim URL-je .pac, jo serverë të fiksuar përfaqësues.</translation> <translation id="4082393374666368382">Cilësimet - Menaxhimi</translation> <translation id="4087296516249690906">Butoni "Krijo ngjarje", shtyp Enter për të krijuar shpejt një ngjarje të re në Google Calendar</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Gabim i miratimit: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Të kontaktosh me administratorin e sistemit</translation> <translation id="450710068430902550">Ndarja me administratorin</translation> -<translation id="4508814173490746936">Touch ID nuk mund të përdorej</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, shtyp "Tab", më pas "Enter" për ta përkthyer këtë faqe me "Përkthe me Google"</translation> <translation id="4510487217173779431">Chou4 (Zarf)</translation> <translation id="4514308731478712184">Çaktivizo "Udhëtimet"</translation> @@ -1968,7 +1966,6 @@ <translation id="6406765186087300643">C0 (Zarf)</translation> <translation id="6410264514553301377">Fut datën e skadimit dhe kodin CVC për <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium mund të të ndihmojë ta mbrosh "Llogarinë tënde të Google" dhe të ndryshosh fjalëkalimin tënd.</translation> -<translation id="6423385022588644828">Konfirmo kartat e tua më shpejt duke përdorur Touch ID nga tani e tutje</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Palosje me dritare</translation> <translation id="6428450836711225518">Verifiko numrin e telefonit</translation> @@ -2737,7 +2734,6 @@ <translation id="8559762987265718583">Nuk mund të vendoset një lidhje private me <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />sepse data dhe ora (<ph name="DATE_AND_TIME" />) e pajisjes tënde nuk janë të sakta.</translation> <translation id="8564182942834072828">Dokumente të ndara/kopje të parenditura</translation> <translation id="8564985650692024650">Chromium rekomandon rivendosjen e fjalëkalimit tënd të <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> nëse e ke ripërdorur në sajte të tjera.</translation> -<translation id="8574899947864779331">Përdor Touch ID për të konfirmuar kartat më shpejt</translation> <translation id="8576310925653847813">Sistemet e kinemasë së shtëpisë</translation> <translation id="8577348305244205642">Karta virtuale nuk ofrohet</translation> <translation id="858637041960032120">Shto numrin e telefonit</translation> @@ -2893,7 +2889,6 @@ <translation id="9039213469156557790">Për më tepër, kjo faqe përfshin burime të tjera që nuk janë të sigurta. Këto burime mund të shikohen nga të tjerët kur janë në procesin e kalimit dhe mund të modifikohen nga ndonjë sulmues për të ndryshuar sjelljen e faqes.</translation> <translation id="9040464167025094690">Butoni "Gjej pajisjen time". Shtyp "Enter" për të vizituar "Gjej pajisjen time" në "Llogarinë e Google".</translation> <translation id="9042617223719777575">Kapacitet i madh</translation> -<translation id="9044359186343685026">Përdor Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Tentove të gjeje <ph name="DOMAIN" />, por serveri paraqiti një certifikatë të pavlefshme.</translation> <translation id="9050666287014529139">Shprehje kalimi</translation>
diff --git a/components/strings/components_strings_sr-Latn.xtb b/components/strings/components_strings_sr-Latn.xtb index 44f92a2..e6df7fc 100644 --- a/components/strings/components_strings_sr-Latn.xtb +++ b/components/strings/components_strings_sr-Latn.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Korišćenje i kretanje kamere</translation> <translation id="191374271204266022">Kopiraj kao JSON</translation> <translation id="1914326953223720820">Usluga za otpakivanje datoteka</translation> -<translation id="1915697529809968049">Želite li da koristite Touch ID umesto CVC-a?</translation> <translation id="1916770123977586577">Da biste primenili ažurirana podešavanja na ovom sajtu, učitajte stranicu ponovo</translation> <translation id="1919345977826869612">Oglasi</translation> <translation id="1919367280705858090">Potražite pomoć u vezi sa određenom porukom o grešci</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Došlo je do greške pri obradi porudžbine. Probajte ponovo.</translation> <translation id="4073797364926776829">Prikaži karticu</translation> <translation id="4075732493274867456">Klijent i server ne podržavaju istu verziju SSL protokola ili paket za šifrovanje.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Konfiguracija proksija je podešena da koristi URL adresu .pac skripte, a ne fiksne proksi servere.</translation> <translation id="4082393374666368382">Podešavanja – upravljanje</translation> <translation id="4087296516249690906">Dugme Napravite događaj, pritisnite Enter da biste brzo napravili nov događaj u Google kalendaru</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Greška pri potvrdi valjanosti: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">da kontaktirate administratora sistema</translation> <translation id="450710068430902550">Deljenje sa administratorom</translation> -<translation id="4508814173490746936">Korišćenje Touch ID-a nije uspelo</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, pritisnite Tab, pa Enter da biste preveli ovu stranicu pomoću Google prevodioca</translation> <translation id="4510487217173779431">Chou4 (koverat)</translation> <translation id="4514308731478712184">Isključi Puteve</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (koverat)</translation> <translation id="6410264514553301377">Unesite datum isteka i CVC za karticu <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium može da vam pomogne da zaštitite Google nalog i promenite lozinku.</translation> -<translation id="6423385022588644828">Od sada brže potvrđujte kartice uz Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Presavijanje u obliku prozora</translation> <translation id="6428450836711225518">Verifikujte broj telefona</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Nije moguće uspostaviti privatnu vezu sa domenom <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> jer datum i vreme na uređaju (<ph name="DATE_AND_TIME" />) nisu tačni.</translation> <translation id="8564182942834072828">Odvojeni dokumenti/nesređene kopije</translation> <translation id="8564985650692024650">Chromium vam preporučuje da resetujete lozinku za <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ako ste je koristili na drugim sajtovima.</translation> -<translation id="8574899947864779331">Koristite Touch ID za bržu potvrdu kartica</translation> <translation id="8576310925653847813">Kućni bioskopi</translation> <translation id="8577348305244205642">Virtuelna kartica nije dostupna</translation> <translation id="858637041960032120">Dodaj tel. broj @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Pored toga, ova stranica sadrži i druge resurse koji nisu bezbedni. Ove resurse mogu da vide i drugi dok su u prolazu i napadač može da ih izmeni kako bi promenio ponašanje stranice.</translation> <translation id="9040464167025094690">Dugme Pronađi moj uređaj, pritisnite Enter da biste posetili opciju za traženje uređaja na Google nalogu</translation> <translation id="9042617223719777575">Veliki kapacitet</translation> -<translation id="9044359186343685026">Koristi Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Pokušali ste da dođete do domena <ph name="DOMAIN" />, ali server je poslao nevažeći sertifikat.</translation> <translation id="9050666287014529139">Pristupna fraza</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index a9bae4a..b58406d 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Коришћење и кретање камере</translation> <translation id="191374271204266022">Копирај као JSON</translation> <translation id="1914326953223720820">Услуга за отпакивање датотека</translation> -<translation id="1915697529809968049">Желите ли да користите Touch ID уместо CVC-а?</translation> <translation id="1916770123977586577">Да бисте применили ажурирана подешавања на овом сајту, учитајте страницу поново</translation> <translation id="1919345977826869612">Огласи</translation> <translation id="1919367280705858090">Потражите помоћ у вези са одређеном поруком о грешци</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Дошло је до грешке при обради поруџбине. Пробајте поново.</translation> <translation id="4073797364926776829">Прикажи картицу</translation> <translation id="4075732493274867456">Клијент и сервер не подржавају исту верзију SSL протокола или пакет за шифровање.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Конфигурација проксија је подешена да користи URL адресу .pac скрипте, а не фиксне прокси сервере.</translation> <translation id="4082393374666368382">Подешавања – управљање</translation> <translation id="4087296516249690906">Дугме Направите догађај, притисните Enter да бисте брзо направили нов догађај у Google календару</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Грешка при потврди ваљаности: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">да контактирате администратора система</translation> <translation id="450710068430902550">Дељење са администратором</translation> -<translation id="4508814173490746936">Коришћење Touch ID-а није успело</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, притисните Tab, па Enter да бисте превели ову страницу помоћу Google преводиоца</translation> <translation id="4510487217173779431">Chou4 (коверат)</translation> <translation id="4514308731478712184">Искључи Путеве</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (коверат)</translation> <translation id="6410264514553301377">Унесите датум истека и CVC за картицу <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium може да вам помогне да заштитите Google налог и промените лозинку.</translation> -<translation id="6423385022588644828">Од сада брже потврђујте картице уз Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Пресавијање у облику прозора</translation> <translation id="6428450836711225518">Верификујте број телефона</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">Није могуће успоставити приватну везу са доменом <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> јер датум и време на уређају (<ph name="DATE_AND_TIME" />) нису тачни.</translation> <translation id="8564182942834072828">Одвојени документи/несређене копије</translation> <translation id="8564985650692024650">Chromium вам препоручује да ресетујете лозинку за <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ако сте је користили на другим сајтовима.</translation> -<translation id="8574899947864779331">Користите Touch ID за бржу потврду картица</translation> <translation id="8576310925653847813">Кућни биоскопи</translation> <translation id="8577348305244205642">Виртуелна картица није доступна</translation> <translation id="858637041960032120">Додај тел. број @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">Поред тога, ова страница садржи и друге ресурсе који нису безбедни. Ове ресурсе могу да виде и други док су у пролазу и нападач може да их измени како би променио понашање странице.</translation> <translation id="9040464167025094690">Дугме Пронађи мој уређај, притисните Enter да бисте посетили опцију за тражење уређаја на Google налогу</translation> <translation id="9042617223719777575">Велики капацитет</translation> -<translation id="9044359186343685026">Користи Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Покушали сте да дођете до домена <ph name="DOMAIN" />, али сервер је послао неважећи сертификат.</translation> <translation id="9050666287014529139">Приступна фраза</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 3e48562..3429882 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Använda och röra kameran</translation> <translation id="191374271204266022">Kopiera som JSON</translation> <translation id="1914326953223720820">Uppackningstjänst</translation> -<translation id="1915697529809968049">Vill du använda Touch ID i stället för CVC?</translation> <translation id="1916770123977586577">Läs in sidan igen för att tillämpa dina uppdaterade inställningar för webbplatsen</translation> <translation id="1919345977826869612">Annonser</translation> <translation id="1919367280705858090">Få hjälp med ett specifikt felmeddelande</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Miniatyrer</translation> <translation id="3227137524299004712">Mikrofon</translation> <translation id="3229041911291329567">Versionsinformation om enhet och webbläsare</translation> +<translation id="3229277193950731405">Kopiera versionssträngen</translation> <translation id="323107829343500871">Ange CVC-koden för <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Upptäck alltid viktigt innehåll på den här webbplatsen</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />: tryck på Tabb och sedan på Retur om du vill anpassa webbläsarens utseende</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Det gick inte att behandla beställningen. Försök igen.</translation> <translation id="4073797364926776829">Visa kort</translation> <translation id="4075732493274867456">Klienten och servern har inte stöd för en gemensam SSL-protokollversion eller chiffersvit.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxykonfigurationen är inställd på att använda en webbadress med PAC-skript, inte fasta proxyservrar.</translation> <translation id="4082393374666368382">Inställningar – hantering</translation> <translation id="4087296516249690906">Knappen Skapa händelse: tryck på Retur om du snabbt vill skapa en ny händelse i Google Kalender</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Valideringsfel: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">kontakta systemadministratören</translation> <translation id="450710068430902550">Delad med en administratör</translation> -<translation id="4508814173490746936">Det gick inte att använda Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, tryck på Tabb och sedan på Retur om du vill översätta den här sidan med Google Översätt</translation> <translation id="4510487217173779431">Chou4 (kuvert)</translation> <translation id="4514308731478712184">Inaktivera Sökningar</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (kuvert)</translation> <translation id="6410264514553301377">Ange utgångsdatum och CVC-kod för <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Du kan skydda Google-kontot genom att byta lösenord.</translation> -<translation id="6423385022588644828">Verifiera kreditkort snabbare genom att använda Touch ID från och med nu</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Fönsterfalsning</translation> <translation id="6428450836711225518">Bekräfta ditt telefonnummer</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Det gick inte att upprätta en privat anslutning till <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> eftersom enhetens datum och tid (<ph name="DATE_AND_TIME" />) inte stämmer.</translation> <translation id="8564182942834072828">Separata dokument/kopior grupperade per sida</translation> <translation id="8564985650692024650">Du rekommenderas att återställa lösenordet för <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> om du har återanvänt det på andra webbplatser.</translation> -<translation id="8574899947864779331">Verifiera kreditkort snabbare med Touch ID</translation> <translation id="8576310925653847813">Hemmabiosystem</translation> <translation id="8577348305244205642">Virtuella kort är inte tillgängliga</translation> <translation id="858637041960032120">Ange telefonnr @@ -2895,7 +2891,6 @@ <translation id="9039213469156557790">Den här sidan innehåller emellertid andra resurser som inte är säkra. Andra kan se resurserna när de överförs och hackare kan ändra resurserna så att sidan får ett annat beteende.</translation> <translation id="9040464167025094690">Knappen Hitta min enhet: tryck på Retur om du vill hitta din enhet i Google-kontot</translation> <translation id="9042617223719777575">Stor kapacitet</translation> -<translation id="9044359186343685026">Använd Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Du försökte nå <ph name="DOMAIN" /> men servern angav ett ogiltigt certifikat.</translation> <translation id="9050666287014529139">Lösenfras</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index a6b9b2a2..3c5a137 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Utumiaji na usogezaji wa kamera</translation> <translation id="191374271204266022">Nakili katika muundo wa JSON</translation> <translation id="1914326953223720820">Huduma ya Kufungua Faili za Zip</translation> -<translation id="1915697529809968049">Ungependa kutumia Touch ID badala ya CVC?</translation> <translation id="1916770123977586577">Pakia upya ukurasa huu ili mipangilio iliyosasishwa itumike katika tovuti hii</translation> <translation id="1919345977826869612">Matangazo</translation> <translation id="1919367280705858090">Pata usaidizi kwa kutumia ujumbe mahususi kuhusu hitilafu</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Vijipicha</translation> <translation id="3227137524299004712">Maikrofoni</translation> <translation id="3229041911291329567">Maelezo ya toleo kuhusu kivinjari na kifaa chako</translation> +<translation id="3229277193950731405">Nakili mfuatano wa toleo</translation> <translation id="323107829343500871">Weka CVC ya <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Gundua maudhui muhimu kwenye tovuti hii wakati wowote</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Bonyeza 'tab' kisha 'Enter' ili uweke mapendeleo ya mwonekano wa kivinjari chako</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Hitilafu imetokea wakati wa kushughulikia agizo lako. Tafadhali jaribu tena.</translation> <translation id="4073797364926776829">Angalia kadi</translation> <translation id="4075732493274867456">Mteja na seva hazitumii toleo la kawaida la itifaki ya SSL au mipangilio ya kriptografia.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Usanidi wa proksi umewekwa kutumia URL hati ya .pac, siyo seva proksi za kudumu.</translation> <translation id="4082393374666368382">Mipangilio - Usimamizi</translation> <translation id="4087296516249690906">Kitufe cha kuweka tukio, bonyeza 'Enter' ili uweke tukio jipya katika Kalenda ya Google kwa haraka</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Hitilafu ya uthibitishaji: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Kuwasiliana na msimamizi wa mfumo</translation> <translation id="450710068430902550">Kushiriki na Msimamizi</translation> -<translation id="4508814173490746936">Imeshindwa kutumia Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bonyeza 'Tab' kisha 'Enter' ili utafsiri ukurasa huu kwa kutumia Google Tafsiri</translation> <translation id="4510487217173779431">Chou4 (Bahasha)</translation> <translation id="4514308731478712184">Zima kipengele cha Ziara</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Bahasha)</translation> <translation id="6410264514553301377">Weka tarehe ya mwisho wa matumizi na CVC ya <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium inaweza kukusaidia kulinda Akaunti yako ya Google na kubadilisha nenosiri lako.</translation> -<translation id="6423385022588644828">Thibitisha kadi zako kwa haraka zaidi ukitumia Touch ID kuanzia sasa</translation> <translation id="6425092077175753609">Usanifu bora</translation> <translation id="6427730057873428458">Mikunjo miwili sambamba</translation> <translation id="6428450836711225518">Thibitisha nambari yako ya simu</translation> @@ -2734,7 +2731,6 @@ <translation id="8559762987265718583">Muunganisho wa faragha kwenye <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> hauwezi kupatikana kwa sababu tarehe na wakati wa kifaa chako (<ph name="DATE_AND_TIME" />) si sahihi.</translation> <translation id="8564182942834072828">Hati zilizotenganishwa/Nakala ambazo hazijapangwa</translation> <translation id="8564985650692024650">Chromium inapendekeza ubadilishe nenosiri lako la <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ikiwa ulilitumia tena kwenye tovuti zingine.</translation> -<translation id="8574899947864779331">Tumia Touch ID kuthibitisha kadi kwa haraka zaidi</translation> <translation id="8576310925653847813">Vifaa vya burudani vya nyumbani</translation> <translation id="8577348305244205642">Kadi pepe haipatikani</translation> <translation id="858637041960032120">Ongeza simu @@ -2891,7 +2887,6 @@ <translation id="9039213469156557790">Mbali na hayo, ukurasa huu una rasilimali nyingine zisizo salama. Rasilimali hizi zinaweza kuangaliwa na watu wengine wanaosafiri, na zinaweza kurekebishwa na mvamizi kubadilisha tabia ya ukurasa.</translation> <translation id="9040464167025094690">Kitufe cha 'Tafuta kifaa changu', bonyeza 'Enter' ili uende kwenye sehemu ya kutafuta kifaa chako katika Akaunti ya Google</translation> <translation id="9042617223719777575">Kiwango Kikubwa</translation> -<translation id="9044359186343685026">Tumia Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Ulijaribu kufikia <ph name="DOMAIN" />, lakini seva iliwasilisha cheti batili.</translation> <translation id="9050666287014529139">Kaulisiri</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index 3cfec94f..b83fe98 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">கேமரா உபயோகம் & நகர்வு</translation> <translation id="191374271204266022">JSON ஆக நகலெடு</translation> <translation id="1914326953223720820">ஜிப் ஃபைல்களைத் திறக்கும் சேவை</translation> -<translation id="1915697529809968049">CVCக்குப் பதிலாக Touch IDயைப் பயன்படுத்தவா?</translation> <translation id="1916770123977586577">மாற்றிய அமைப்புகளை இந்தத் தளத்தில் பயன்படுத்த, பக்கத்தை மீண்டும் ஏற்றவும்</translation> <translation id="1919345977826869612">விளம்பரங்கள்</translation> <translation id="1919367280705858090">குறிப்பிட்ட பிழைச் செய்திக்கான உதவியைப் பெறுங்கள்</translation> @@ -828,6 +827,7 @@ <translation id="3226387218769101247">சிறுபடங்கள்</translation> <translation id="3227137524299004712">மைக்ரோஃபோன்</translation> <translation id="3229041911291329567">உங்கள் சாதனம் மற்றும் உலாவியின் பதிப்புத் தகவல்</translation> +<translation id="3229277193950731405">பதிப்பு வார்த்தையை நகலெடு</translation> <translation id="323107829343500871"><ph name="CREDIT_CARD" /> இன் CVC எண்ணை உள்ளிடவும்</translation> <translation id="3234666976984236645">இந்தத் தளத்தின் முக்கிய உள்ளடக்கத்தை எப்போதும் இயக்கவும்</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />. உலாவியின் தோற்றத்தைப் பிரத்தியேகமாக்க, Tab பட்டனை அழுத்திவிட்டு Enter பட்டனை அழுத்துங்கள்</translation> @@ -1119,7 +1119,6 @@ <translation id="4072486802667267160">ஆர்டரைச் செயல்படுத்துவதில் பிழை ஏற்பட்டது. பிறகு முயலவும்.</translation> <translation id="4073797364926776829">கார்டைக் காட்டு</translation> <translation id="4075732493274867456">க்ளையன்ட்டும் சேவையகமும் பொதுவான SSL நெறிமுறைப் பதிப்பையோ சைஃபர் பொதியையோ ஆதரிக்கவில்லை.</translation> -<translation id="4075941231477579656">Touch ஐடி</translation> <translation id="4079302484614802869">ப்ராக்ஸி உள்ளமைவானது, .pac ஸ்கிரிப்ட் URL ஐப் பயன்படுத்தும்படி அமைக்கப்பட்டிருக்கிறது, நிலையான ப்ராக்ஸி சேவையகங்களுக்கு அல்ல.</translation> <translation id="4082393374666368382">அமைப்புகள் - நிர்வாகம்</translation> <translation id="4087296516249690906">நிகழ்வை உருவாக்குவதற்கான பட்டன். Google Calendarரில் புதிய நிகழ்வை விரைவாக உருவாக்க Enter பட்டனை அழுத்துங்கள்</translation> @@ -1291,7 +1290,6 @@ <translation id="4506176782989081258">சரிபார்ப்புப் பிழை: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">கணினி நிர்வாகியைத் தொடர்புகொள்ளுதல்</translation> <translation id="450710068430902550">நிர்வாகியுடன் பகிர்பவை</translation> -<translation id="4508814173490746936">Touch IDயைப் பயன்படுத்த இயலவில்லை</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translate மூலம் இந்தப் பக்கத்தை மொழிபெயர்க்க Tab விசையை அழுத்திய பிறகு Enter விசையை அழுத்துங்கள்</translation> <translation id="4510487217173779431">Chou4 (என்வலப்)</translation> <translation id="4514308731478712184">‘குறிப்பிட்ட தேடல் விவரங்கள்’ அம்சத்தை முடக்கு</translation> @@ -1964,7 +1962,6 @@ <translation id="6406765186087300643">C0 (என்வலப்)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" />க்கான காலாவதித் தேதியையும் CVC எண்ணையும் உள்ளிடவும்</translation> <translation id="6415778972515849510">உங்கள் Google கணக்கைப் பாதுகாக்கவும் கடவுச்சொல்லை மாற்றவும் Chromium உதவும்.</translation> -<translation id="6423385022588644828">இப்போதிலிருந்து Touch IDயைப் பயன்படுத்தி மேலும் விரைவாக உங்கள் கார்டுகளை உறுதிப்படுத்துங்கள்</translation> <translation id="6425092077175753609">மெட்டீரியல்</translation> <translation id="6427730057873428458">கேட் ஃபோல்டு</translation> <translation id="6428450836711225518">மொபைல் எண்ணைச் சரிபார்த்தல்</translation> @@ -2733,7 +2730,6 @@ <translation id="8559762987265718583">உங்கள் சாதனத்தின் தேதி மற்றும் நேரம் (<ph name="DATE_AND_TIME" />) தவறாக உள்ளதால் <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> க்கான தனிப்பட்ட இணைப்பை ஏற்படுத்த முடியவில்லை.</translation> <translation id="8564182942834072828">தனித்தனி ஆவணங்கள்/தொகுக்கப்படாத நகல்கள்</translation> <translation id="8564985650692024650">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chromium பரிந்துரைக்கிறது.</translation> -<translation id="8574899947864779331">கார்டுகளை மேலும் விரைவாக உறுதிப்படுத்த Touch IDயைப் பயன்படுத்துங்கள்</translation> <translation id="8576310925653847813">ஹோம் தியேட்டர் சிஸ்டங்கள்</translation> <translation id="8577348305244205642">விர்ச்சுவல் கார்டு கிடைக்கவில்லை</translation> <translation id="858637041960032120">ஃபோன் எண்ணைச் சேர்</translation> @@ -2889,7 +2885,6 @@ <translation id="9039213469156557790">மேலும், பாதுகாப்பற்ற பிற ஆதாரங்கள் இந்தப் பக்கத்தில் உள்ளன. இந்த ஆதாரங்களை ட்ரான்ஸிட்டில் இருக்கும்போதும் பிறர் பார்வையிடலாம், மேலும் பக்கத்தின் செயல்பாட்டை மாற்ற, தீங்கிழைப்பவர் அதை மாற்றியமைக்கலாம்.</translation> <translation id="9040464167025094690">'Find My Device' ஆப்ஸிற்கான பட்டன். Google கணக்கில் உங்கள் சாதனத்தைக் கண்டறிய, Enter பட்டனை அழுத்துங்கள்</translation> <translation id="9042617223719777575">அதிகக் கொள்ளளவு</translation> -<translation id="9044359186343685026">Touch IDயைப் பயன்படுத்து</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">நீங்கள் <ph name="DOMAIN" /> ஐ அடைய முயற்சி செய்தீர்கள், ஆனால் சேவையகம் ஒரு செல்லாத சான்றிதழை வழங்கியது.</translation> <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 14d2526..4cfbaa7 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -381,7 +381,6 @@ <translation id="1908217026282415406">కెమెరా ఉపయోగం & తరలింపు</translation> <translation id="191374271204266022">JSONగా కాపీ చేయి</translation> <translation id="1914326953223720820">సేవను అన్జిప్ చేయండి</translation> -<translation id="1915697529809968049">CVCకి బదులుగా Touch IDని ఉపయోగించాలా?</translation> <translation id="1916770123977586577">ఈ సైట్ విషయంలో మీరు అప్డేట్ చేసిన సెట్టింగ్లను వర్తింపజేయడానికి, ఈ పేజీని మళ్లీ లోడ్ చేయండి</translation> <translation id="1919345977826869612">యాడ్స్</translation> <translation id="1919367280705858090">నిర్దిష్ట ఎర్రర్ మెసేజ్కు సంబంధించిన సహాయం పొందండి</translation> @@ -1126,7 +1125,6 @@ <translation id="4072486802667267160">మీ ఆర్డర్ను ప్రాసెస్ చేస్తున్నప్పుడు ఎర్రర్ ఏర్పడింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="4073797364926776829">కార్డ్ను చూడండి</translation> <translation id="4075732493274867456">క్లయింట్, సర్వర్- ఒకే SSL ప్రోటోకాల్ వెర్షన్ లేదా సైఫర్ సూట్కు మద్దతు ఇవ్వవు.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">స్థిరమైన ప్రాక్సీ సర్వర్లను కాకుండా, ఒక .pac స్క్రిప్ట్ URLను ఉపయోగించేలా ప్రాక్సీ కాన్ఫిగరేషన్ సెట్ చేయబడింది.</translation> <translation id="4082393374666368382">సెట్టింగ్లు - నిర్వహణ</translation> <translation id="4087296516249690906">'ఈవెంట్ను క్రియేట్ చేయండి' బటన్, Google Calendarలో త్వరగా కొత్త ఈవెంట్ను క్రియేట్ చేయడానికి Enterను నొక్కండి</translation> @@ -1298,7 +1296,6 @@ <translation id="4506176782989081258">ధృవీకరణ ఎర్రర్: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">సిస్టమ్ నిర్వాహకుడిని సంప్రదించడం</translation> <translation id="450710068430902550">నిర్వాహకుడితో షేర్</translation> -<translation id="4508814173490746936">Touch IDని ఉపయోగించడం సాధ్యం కాలేదు</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Translateతో ఈ పేజీని అనువదించడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation> <translation id="4510487217173779431">Chou4 (ఎన్వలప్)</translation> <translation id="4514308731478712184">జర్నీస్ ఫీచర్ను ఆఫ్ చేయండి</translation> @@ -1930,7 +1927,7 @@ <translation id="6293309776179964942">JIS B5</translation> <translation id="6295618774959045776">CVC:</translation> <translation id="6300452962057769623">{0,plural, =0{మీ పరికరం ఇప్పుడు రీస్టార్ట్ అవుతుంది}=1{మీ పరికరం 1 సెకనులో రీస్టార్ట్ అవుతుంది}other{మీ పరికరం # సెకన్లలో రీస్టార్ట్ అవుతుంది}}</translation> -<translation id="6302269476990306341">Chromeలో Google అసిస్టెంట్ ఆపివేయబడుతోంది</translation> +<translation id="6302269476990306341">Chromeలో Google Assistant ఆపివేయబడుతోంది</translation> <translation id="6305205051461490394"><ph name="URL" />ని చేరుకోలేకపోయాము.</translation> <translation id="6312113039770857350">వెబ్పేజీ అందుబాటులో లేదు</translation> <translation id="6316226860534107313">స్కూటర్లు & మోపెడ్లు</translation> @@ -1972,7 +1969,6 @@ <translation id="6406765186087300643">C0 (ఎన్వలప్)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> గడువు ముగింపు తేదీ మరియు CVCని నమోదు చేయండి</translation> <translation id="6415778972515849510">మీ Google ఖాతాను సంరక్షించుకోవడంలో, మీ పాస్వర్డ్ను మార్చడంలో Chromium మీకు సహాయపడగలదు.</translation> -<translation id="6423385022588644828">ఇప్పటి నుండి Touch ID ఉపయోగించి మీ కార్డ్లను వేగంగా నిర్ధారించండి</translation> <translation id="6425092077175753609">విశిష్టం</translation> <translation id="6427730057873428458">గేట్ ఫోల్డ్</translation> <translation id="6428450836711225518">మీ ఫోన్ నంబర్ను ధృవీకరించండి</translation> @@ -2741,7 +2737,6 @@ <translation id="8559762987265718583">మీ పరికరం తేదీ మరియు సమయం <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> తప్పుగా ఉన్నందున (<ph name="DATE_AND_TIME" />)కు ప్రైవేట్ కనెక్షన్ ఏర్పాటు చేయబడదు.</translation> <translation id="8564182942834072828">విడి డాక్యుమెంట్లు/విడి కాపీలు</translation> <translation id="8564985650692024650">మీరు మీ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> పాస్వర్డ్ని ఇతర సైట్లలో తిరిగి ఉపయోగించినట్లయితే దీనిని రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation> -<translation id="8574899947864779331">కార్డ్లను వేగంగా నిర్ధారించడానికి Touch IDని ఉపయోగించండి</translation> <translation id="8576310925653847813">హోమ్ థియేటర్ సిస్టమ్లు</translation> <translation id="8577348305244205642">వర్చువల్ కార్డ్ అందుబాటులో లేదు</translation> <translation id="858637041960032120">ఫోన్ నం. జోడిం.</translation> @@ -2897,7 +2892,6 @@ <translation id="9039213469156557790">అలాగే, ఈ పేజీలో సురక్షితం కాని ఇతర వనరులు ఉన్నాయి. ఈ వనరులను బదిలీ చేస్తున్నప్పుడు ఇతరులు చూడగలరు మరియు దాడికి పాల్పడేవారు పేజీ ప్రవర్తనను మార్చేలా వీటిని సవరించగలరు.</translation> <translation id="9040464167025094690">Find my device బటన్, Google ఖాతాలో Find my deviceకు వెళ్లడానికి Enterను నొక్కండి</translation> <translation id="9042617223719777575">లార్జ్ కెపాసిటీ</translation> -<translation id="9044359186343685026">Touch IDని ఉపయోగించు</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">మీరు <ph name="DOMAIN" />ను చేరుకోవడానికి ప్రయత్నించారు, కానీ సర్వర్ ఒక చెల్లుబాటులో లేని ప్రమాణపత్రంను అందించింది.</translation> <translation id="9050666287014529139">రహస్య పదబంధం</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index 28ddf664..c3a56f35 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">การใช้และเคลื่อนย้ายกล้อง</translation> <translation id="191374271204266022">คัดลอกเป็น JSON</translation> <translation id="1914326953223720820">บริการแตกไฟล์</translation> -<translation id="1915697529809968049">ใช้ Touch ID แทน CVC ไหม</translation> <translation id="1916770123977586577">โหลดหน้านี้ซ้ำเพื่อใช้การตั้งค่าที่อัปเดตกับไซต์นี้</translation> <translation id="1919345977826869612">โฆษณา</translation> <translation id="1919367280705858090">ขอความช่วยเหลือเกี่ยวกับข้อความแสดงข้อผิดพลาดที่เจาะจง</translation> @@ -1123,7 +1122,6 @@ <translation id="4072486802667267160">เกิดข้อผิดพลาดในการประมวลผลคำสั่งซื้อของคุณ โปรดลองอีกครั้ง</translation> <translation id="4073797364926776829">ดูบัตร</translation> <translation id="4075732493274867456">ไคลเอ็นต์และเซิร์ฟเวอร์ไม่รองรับโปรโตคอล SSL เวอร์ชันทั่วไปหรือชุดการเข้ารหัส</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">การกำหนดค่าพร็อกซีมีการตั้งค่าให้ใช้ URL สคริปต์ .pac ไม่ใช่พร็อกซีเซิร์ฟเวอร์แบบคงที่</translation> <translation id="4082393374666368382">การตั้งค่า - การจัดการ</translation> <translation id="4087296516249690906">ปุ่มสร้างกิจกรรม กด Enter เพื่อสร้างกิจกรรมใหม่ใน Google ปฏิทินอย่างรวดเร็ว</translation> @@ -1295,7 +1293,6 @@ <translation id="4506176782989081258">ข้อผิดพลาดในการตรวจสอบ: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">ติดต่อผู้ดูแลระบบ</translation> <translation id="450710068430902550">การแชร์กับผู้ดูแลระบบ</translation> -<translation id="4508814173490746936">ใช้ Touch ID ไม่ได้</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" /> กด Tab ตามด้วย Enter เพื่อแปลหน้านี้ด้วย Google แปลภาษา</translation> <translation id="4510487217173779431">Chou4 (ซองจดหมาย)</translation> <translation id="4514308731478712184">ปิดใช้เส้นทางการท่องเว็บ</translation> @@ -1969,7 +1966,6 @@ <translation id="6406765186087300643">C0 (ซองจดหมาย)</translation> <translation id="6410264514553301377">ป้อนวันหมดอายุและ CVC ของ <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium ช่วยคุณปกป้องบัญชี Google และเปลี่ยนรหัสผ่านได้</translation> -<translation id="6423385022588644828">ยืนยันบัตรได้เร็วขึ้นโดยใช้ Touch ID จากนี้ไป</translation> <translation id="6425092077175753609">วัสดุ</translation> <translation id="6427730057873428458">พับทบ</translation> <translation id="6428450836711225518">ยืนยันเบอร์โทรศัพท์</translation> @@ -2738,7 +2734,6 @@ <translation id="8559762987265718583">ไม่สามารถเริ่มการเชื่อมต่อส่วนตัวกับ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ได้เนื่องจากวันที่และเวลาของอุปกรณ์ (<ph name="DATE_AND_TIME" />) ไม่ถูกต้อง</translation> <translation id="8564182942834072828">เอกสารแยกกัน/ไม่จัดชุดสำเนา</translation> <translation id="8564985650692024650">Chromium ขอแนะนำให้รีเซ็ตรหัสผ่าน <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> หากคุณใช้รหัสผ่านนี้ซ้ำในเว็บไซต์อื่น</translation> -<translation id="8574899947864779331">ใช้ Touch ID เพื่อยืนยันบัตรได้เร็วขึ้น</translation> <translation id="8576310925653847813">ระบบโฮมเธียเตอร์</translation> <translation id="8577348305244205642">บัตรเสมือนไม่พร้อมใช้งาน</translation> <translation id="858637041960032120">เพิ่มเบอร์โทร @@ -2895,7 +2890,6 @@ <translation id="9039213469156557790">นอกจากนี้ หน้านี้ประกอบด้วยทรัพยากรอื่นๆ ซึ่งไม่ปลอดภัย ผู้อื่นสามารถดูทรัพยากรเหล่านี้ขณะถ่ายโอน และผู้บุกรุกสามารถแก้ไขเพื่อเปลี่ยนการทำงานของหน้าได้</translation> <translation id="9040464167025094690">ปุ่มหาอุปกรณ์ของฉัน กด Enter เพื่อหาอุปกรณ์ในบัญชี Google</translation> <translation id="9042617223719777575">ความจุมาก</translation> -<translation id="9044359186343685026">ใช้ Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">คุณพยายามเข้าถึง <ph name="DOMAIN" /> แต่เซิร์ฟเวอร์แสดงใบรับรองที่ไม่ถูกต้อง</translation> <translation id="9050666287014529139">ข้อความรหัสผ่าน</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index 203361a..a9e0aec 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Kamera kullanma ve hareket ettirme</translation> <translation id="191374271204266022">JSON olarak kopyala</translation> <translation id="1914326953223720820">Sıkıştırma Açma Hizmeti</translation> -<translation id="1915697529809968049">CVC yerine Touch ID kullanılsın mı?</translation> <translation id="1916770123977586577">Güncellenen ayarlarınızı bu siteye uygulamak için sayfayı yeniden yükleyin</translation> <translation id="1919345977826869612">Reklamlar</translation> <translation id="1919367280705858090">Belirli bir hata mesajıyla ilgili yardım alma</translation> @@ -1124,7 +1123,6 @@ <translation id="4072486802667267160">Ödemeniz işlenirken bir hata oluştu. Lütfen tekrar deneyin.</translation> <translation id="4073797364926776829">Kartı göster</translation> <translation id="4075732493274867456">İstemci ve sunucu, ortak bir SSL protokolü sürümünü veya şifre setini desteklemiyor.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy yapılandırması sabit proxy sunucuları değil, bir .pac komut dosyası URL'sini kullanmak üzere ayarlandı.</translation> <translation id="4082393374666368382">Ayarlar - Yönetim</translation> <translation id="4087296516249690906">Etkinlik oluştur düğmesi, Google Takvim'de hızlıca yeni bir etkinlik oluşturmak için Enter'a basın</translation> @@ -1296,7 +1294,6 @@ <translation id="4506176782989081258">Doğrulama hatası: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Sistem yöneticisiyle iletişime geçme</translation> <translation id="450710068430902550">Yöneticiyle Paylaşma</translation> -<translation id="4508814173490746936">Touch ID kullanılamadı</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bu sayfayı Google Çeviri'yle çevirmek için Sekme'ye, sonra Enter'a basın</translation> <translation id="4510487217173779431">Chou4 (Zarf)</translation> <translation id="4514308731478712184">Arama Yolculukları'nı kapat</translation> @@ -1970,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Zarf)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> numaralı kartın son kullanma tarihini ve CVC kodunu girin</translation> <translation id="6415778972515849510">Chromium, Google Hesabınızı korumanıza ve şifrenizi değiştirmenize yardımcı olabilir.</translation> -<translation id="6423385022588644828">Bundan böyle Touch ID'yi kullanarak kartlarınızı daha hızlı onaylayın</translation> <translation id="6425092077175753609">Malzeme</translation> <translation id="6427730057873428458">İki kırımlı katlama</translation> <translation id="6428450836711225518">Telefon numaranızı doğrulayın</translation> @@ -2739,7 +2735,6 @@ <translation id="8559762987265718583">Cihazınızın tarih ve saati (<ph name="DATE_AND_TIME" />) yanlış olduğundan <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> alan adına gizli bir bağlantı kurulamıyor.</translation> <translation id="8564182942834072828">Ayrı dokümanlar/Harmanlanmamış kopyalar</translation> <translation id="8564985650692024650">Chromium, <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> şifrenizi başka sitelerde kullandıysanız sıfırlamanızı önerir.</translation> -<translation id="8574899947864779331">Kartları daha hızlı onaylamak için Touch ID'yi kullanın</translation> <translation id="8576310925653847813">Ev sineması sistemleri</translation> <translation id="8577348305244205642">Sanal kart kullanılamıyor</translation> <translation id="858637041960032120">Telefon no ekle @@ -2896,7 +2891,6 @@ <translation id="9039213469156557790">Ayrıca, bu sayfa güvenli olmayan başka kaynaklar içeriyor. Bu kaynaklar, aktarım sırasında başkaları tarafından görülebilir ve bir saldırgan tarafından sayfanın davranışını değiştirmek üzere kullanılabilir.</translation> <translation id="9040464167025094690">Cihazımı bul düğmesi, Google Hesabında cihazınızı bulmak için Enter'a basın</translation> <translation id="9042617223719777575">Yüksek Kapasite</translation> -<translation id="9044359186343685026">Touch ID'yi kullan</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619"><ph name="DOMAIN" /> alan adına erişmeye çalıştınız, ancak sunucu geçersiz bir sertifika sağladı.</translation> <translation id="9050666287014529139">Parola</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index 901e8fee..043596e 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Використовувати й переміщувати камеру</translation> <translation id="191374271204266022">Копіювати як JSON</translation> <translation id="1914326953223720820">Сервіс розпакування</translation> -<translation id="1915697529809968049">Використовувати Touch ID замість коду CVC?</translation> <translation id="1916770123977586577">Щоб застосувати оновлені налаштування на цьому сайті, оновіть сторінку</translation> <translation id="1919345977826869612">Оголошення</translation> <translation id="1919367280705858090">Як виправити конкретну помилку</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Ескізи</translation> <translation id="3227137524299004712">Мікрофон</translation> <translation id="3229041911291329567">Інформація про версії пристрою та веб-переглядача</translation> +<translation id="3229277193950731405">Копіювати сегмент з інформацією про версію</translation> <translation id="323107829343500871">Ввести код CVC картки <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Завжди виявляти важливий вміст на цьому сайті</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб налаштувати вигляд веб-переглядача</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Не вдалось обробити ваше замовлення. Повторіть спробу.</translation> <translation id="4073797364926776829">Переглянути картку</translation> <translation id="4075732493274867456">Клієнт і сервер підтримують різні версії протоколу SSL або набору шифрів.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Конфігурацію проксі-сервера налаштовано на використання URL-адреси сценарію .pac, а не фіксованих проксі-серверів.</translation> <translation id="4082393374666368382">Налаштування – керування</translation> <translation id="4087296516249690906">Кнопка "Створити подію"; натисніть Enter, щоб швидко створити нову подію в Google Календарі</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Помилка перевірки: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">зв’язатися із системним адміністратором</translation> <translation id="450710068430902550">Надання інформації адміністратору</translation> -<translation id="4508814173490746936">Не вдалося скористатися Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />; натисніть Tab, а потім – Enter, щоб перекласти цю сторінку в Google Перекладачі</translation> <translation id="4510487217173779431">Chou4 (конверт)</translation> <translation id="4514308731478712184">Вимкнути функцію "Сеанси"</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (конверт)</translation> <translation id="6410264514553301377">Введіть дату закінчення терміну дії та код CVC картки <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium допоможе захистити обліковий запис Google і змінити пароль.</translation> -<translation id="6423385022588644828">Відтепер ви можете підтверджувати картки швидше за допомогою Touch ID</translation> <translation id="6425092077175753609">Матеріальний</translation> <translation id="6427730057873428458">Зігнути за типом "ворота"</translation> <translation id="6428450836711225518">Підтвердьте номер телефону</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Не вдається встановити конфіденційне з’єднання з <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />, оскільки на пристрої встановлено неправильні дату й час (<ph name="DATE_AND_TIME" />).</translation> <translation id="8564182942834072828">Окремі документи/непідібрані копії</translation> <translation id="8564985650692024650">Chromium радить скинути пароль <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />, якщо ви застосовували його на інших сайтах.</translation> -<translation id="8574899947864779331">Використовувати Touch ID, щоб швидше підтверджувати картки</translation> <translation id="8576310925653847813">Системи домашнього кінотеатру</translation> <translation id="8577348305244205642">Віртуальна картка недоступна</translation> <translation id="858637041960032120">Додати тел.номер @@ -2895,7 +2891,6 @@ <translation id="9039213469156557790">Окрім цього, сторінка містить незахищені ресурси. Інші особи можуть переглядати їх під час передавання даних, а зловмисники можуть змінювати роботу сторінки.</translation> <translation id="9040464167025094690">Кнопка "Знайти пристрій"; натисніть Enter, щоб перейти в розділ "Знайти пристрій" в обліковому записі Google.</translation> <translation id="9042617223719777575">Велика місткість</translation> -<translation id="9044359186343685026">Використовувати Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Ви пробували зв’язатися з доменом <ph name="DOMAIN" />, але сервер надав недійсний сертифікат.</translation> <translation id="9050666287014529139">Парольна фраза</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index bd4dfb3..82099b3 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -380,7 +380,6 @@ <translation id="1908217026282415406">کیمرے کا استعمال اور حرکت</translation> <translation id="191374271204266022">بطور JSON کاپی کریں</translation> <translation id="1914326953223720820">اَن زِپ کرنے کی سروس</translation> -<translation id="1915697529809968049">CVC کے بجائے Touch ID کا استعمال کریں؟</translation> <translation id="1916770123977586577">اس سائٹ پر اپنی اپ ڈیٹ کردہ ترتیبات کا اطلاق کرنے کیلئے اس صفحہ کو دوبارہ لوڈ کریں</translation> <translation id="1919345977826869612">اشتہارات</translation> <translation id="1919367280705858090">خرابی کے کسی مخصوص پیغام کے بارے میں مدد حاصل کریں</translation> @@ -1126,7 +1125,6 @@ <translation id="4072486802667267160">آپ کے آرڈر پر کارروائی کرنے میں ایک خرابی پیش آگئی۔ براہ کرم دوبارہ کوشش کریں۔</translation> <translation id="4073797364926776829">کارڈ دیکھیں</translation> <translation id="4075732493274867456">کلائنٹ اور سرور عام SSL پروٹوکول ورژن یا سائفر سوئٹ کا تعاون نہیں کرتے ہیں۔</translation> -<translation id="4075941231477579656">ٹچ ID</translation> <translation id="4079302484614802869">پراکسی کنفیگریشن مقررہ پراکسی سرورز نہیں بلکہ ایک .pac اسکرپٹ URL استعمال کرنے کیلئے سیٹ ہے۔</translation> <translation id="4082393374666368382">ترتیبات، نظم و نسق</translation> <translation id="4087296516249690906">ایونٹ تخلیق کریں بٹن، Google کیلنڈر میں تیزی سے ایک نیا ایونٹ تخلیق کرنے کیلئے Enter دبائیں</translation> @@ -1298,7 +1296,6 @@ <translation id="4506176782989081258">توثیق کی خرابی: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">سسٹم کے منتظم سے رابطہ کیا جا رہا ہے</translation> <translation id="450710068430902550">منتظم کے ساتھ اشتراک کرنا</translation> -<translation id="4508814173490746936">Touch ID کا استعمال نہیں کیا جا سکا</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />، Google ترجمے سے اس صفحے کا ترجمہ کرنے کے لیے ٹیب، پھر اینٹر دبائیں</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">صارف کا تجربہ آف کریں</translation> @@ -1973,7 +1970,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> کی اختتامی تاریخ اور CVC درج کریں</translation> <translation id="6415778972515849510">Chromium آپ کی اپنا Google اکاؤنٹ محفوظ اور پاس ورڈ تبدیل کرنے میں مدد کر سکتا ہے۔</translation> -<translation id="6423385022588644828">اب سے Touch ID کے استعمال سے تیزی سے اپنے کارڈز کی تصدیق کریں</translation> <translation id="6425092077175753609">مٹیریل</translation> <translation id="6427730057873428458">گیٹ فولڈ</translation> <translation id="6428450836711225518">اپنے فون نمبر کی توثیق کریں</translation> @@ -2742,7 +2738,6 @@ <translation id="8559762987265718583"><ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> سے ایک نجی کنکشن تشکیل نہیں دیا جا سکتا ہے کیونکہ آپ کے آلے کی تاریخ اور وقت (<ph name="DATE_AND_TIME" />) غلط ہیں۔</translation> <translation id="8564182942834072828">علیحدہ دستاویزات/بغیر ملائی ہوئی کاپیاں</translation> <translation id="8564985650692024650">اگر آپ نے اپنا پاس ورڈ دیگر سائٹس پر دوبارہ استعمال کیا ہے تو Chromium آپ کو اپنا <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> پاس ورڈ ری سیٹ کرنے کی تجویز کرتا ہے۔</translation> -<translation id="8574899947864779331">تیزی سے اپنے کارڈز کی تصدیق کرنے کے لیے Touch ID استعمال کریں</translation> <translation id="8576310925653847813">ہوم تھیئٹر سسٹمز</translation> <translation id="8577348305244205642">ورچوئل کارڈ دستیاب نہیں ہے</translation> <translation id="858637041960032120">فون نمبر شامل کریں</translation> @@ -2898,7 +2893,6 @@ <translation id="9039213469156557790">اس کے علاوہ، اس صفحہ میں دیگر ایسے وسائل شامل ہیں جو محفوظ نہیں ہیں۔ ان وسائل کو ٹرانزٹ کے دوران دیگر لوگ دیکھ سکتے ہیں اور صفحہ کا برتاؤ تبدیل کرنے کیلئے حملہ آور اس میں ترمیم کر سکتے ہیں۔</translation> <translation id="9040464167025094690">میرا آلہ ڈھونڈیں بٹن تلاش کریں، Google اکاؤنٹ میں اپنا آلہ تلاش کرنا ملاحظہ کرنے کیلئے اینٹر دبائیں</translation> <translation id="9042617223719777575">بڑی گنجائش</translation> -<translation id="9044359186343685026">Touch ID کا استعمال کریں</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">آپ نے <ph name="DOMAIN" /> تک پہنچنے کی کوشش کی لیکن سرور نے ایک غلط سرٹیفکیٹ پیش کیا۔</translation> <translation id="9050666287014529139">پاس فریز</translation>
diff --git a/components/strings/components_strings_uz.xtb b/components/strings/components_strings_uz.xtb index 04ddbdd9..3584d9a 100644 --- a/components/strings/components_strings_uz.xtb +++ b/components/strings/components_strings_uz.xtb
@@ -378,7 +378,6 @@ <translation id="1908217026282415406">Kameradan foydalanish va siljitish</translation> <translation id="191374271204266022">JSON sifatida nusxa olish</translation> <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="1919345977826869612">Reklamalar</translation> <translation id="1919367280705858090">Maxsus turdagi xato xabarlari asosida yordam olish</translation> @@ -1119,7 +1118,6 @@ <translation id="4072486802667267160">To‘lovni amalga oshirishda xatolik yuz berdi. Qayta urinib ko‘ring.</translation> <translation id="4073797364926776829">Kartani ochish</translation> <translation id="4075732493274867456">Mijoz va server turli xil SSL protokoli versiyasi yoki shifrlar to‘plamidan foydalanmoqda.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proksi-serverlar o‘zgarmas manzil orqali emas, PAC-fayli manzil orqali sozlangan.</translation> <translation id="4082393374666368382">Sozlamalar – Boshqaruv</translation> <translation id="4087296516249690906">Tadbir yaratish tugmasi, Google Taqvimda yangi tadbirni tez yaratish uchun Enter tugmasini bosing</translation> @@ -1291,7 +1289,6 @@ <translation id="4506176782989081258">Tekshirish xatosi: <ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">Tizim administratori bilan bog‘lanish</translation> <translation id="450710068430902550">Administratorga ulashish</translation> -<translation id="4508814173490746936">Touch ID ishlatib boʻlmadi</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, bu sahifani Google Translate orqali tarjima qilish uchun avval Tab, keyin esa Enter tugmasini bosing</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Tarixlarni faolsizlantirish</translation> @@ -1964,7 +1961,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> kartasining amal qilish muddati va CVC kodini kiriting</translation> <translation id="6415778972515849510">Chromium Google hisobingizni himoyalash va parolni almashtirish uchun yordam beradi.</translation> -<translation id="6423385022588644828">Touch ID yordamida kartalaringizni tezda tasdiqlang</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Darvozasimon taxlash</translation> <translation id="6428450836711225518">Telefon raqamingizni tasdiqlang</translation> @@ -2733,7 +2729,6 @@ <translation id="8559762987265718583">Tizimdagi sana va vaqt sozlamalari (<ph name="DATE_AND_TIME" />) noto‘g‘ri bo‘lganligi sababli <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> domeni bilan havfsiz aloqa o‘rnatib bo‘lmadi.</translation> <translation id="8564182942834072828">Bir nechta hujjat/Tartibsiz nusxalarda</translation> <translation id="8564985650692024650">Parolingizni <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> domenidan tashqaridagi saytda kiritgan bo‘lsangiz, uni zudlik bilan almashtirishingizni tavsiya etamiz.</translation> -<translation id="8574899947864779331">Kartalarni tezda tasdiqlash uchun Touch ID ishlating</translation> <translation id="8576310925653847813">Uy kinoteatri tizimlari</translation> <translation id="8577348305244205642">Virtual karta mavjud emas</translation> <translation id="858637041960032120">Raqam qo‘shing</translation> @@ -2889,7 +2884,6 @@ <translation id="9039213469156557790">Bundan tashqari, ushbu sahifada xavfli kontent ham aniqlandi. Ma’lumotlarni uzatishda uchinchi tomon resurslarni ko‘rishi mumkin. Yovuz niyatli odamlar esa sahifaga kirishi va uning xatti-harakatini o‘zgartirishi mumkin.</translation> <translation id="9040464167025094690">Qurilmamni top tugmasi, Google hisobidagi qurilmani topish xizmatini ochish uchun Enter tugmasini bosing</translation> <translation id="9042617223719777575">Koʻp sigʻimli</translation> -<translation id="9044359186343685026">Touch ID ishlatish</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Siz <ph name="DOMAIN" /> domenini ochmoqchi bo‘ldingiz, lekin server taqdim qilgan sertifikat haqiqiy emas.</translation> <translation id="9050666287014529139">Kodli ibora</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index c843144..fa75230 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Sử dụng và di chuyển máy ảnh</translation> <translation id="191374271204266022">Sao chép ở định dạng JSON</translation> <translation id="1914326953223720820">Dịch vụ giải nén</translation> -<translation id="1915697529809968049">Sử dụng Touch ID thay cho CVC?</translation> <translation id="1916770123977586577">Để áp dụng các cài đặt đã cập nhật cho trang web này, hãy tải lại trang</translation> <translation id="1919345977826869612">Quảng cáo</translation> <translation id="1919367280705858090">Nhận trợ giúp về thông báo lỗi cụ thể</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">Hình thu nhỏ</translation> <translation id="3227137524299004712">Micrô</translation> <translation id="3229041911291329567">Thông tin phiên bản về thiết bị và trình duyệt của bạn</translation> +<translation id="3229277193950731405">Sao chép chuỗi phiên bản</translation> <translation id="323107829343500871">Nhập CVC cho <ph name="CREDIT_CARD" /></translation> <translation id="3234666976984236645">Luôn luôn phát hiện nội dung quan trọng trên trang web này</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Nhấn phím Tab rồi nhấn phím Enter để tuỳ chỉnh giao diện trình duyệt của bạn</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">Đã xảy ra lỗi khi xử lý đơn đặt hàng của bạn. Vui lòng thử lại.</translation> <translation id="4073797364926776829">Xem thẻ</translation> <translation id="4075732493274867456">Ứng dụng và máy chủ không hỗ trợ bộ mã hóa hoặc phiên bản giao thức SSL thông thường.</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Cấu hình proxy được đặt để sử dụng URL tập lệnh .pac chứ không phải máy chủ proxy cố định.</translation> <translation id="4082393374666368382">Cài đặt – Quản lý</translation> <translation id="4087296516249690906">Nút tạo sự kiện, nhấn phím Enter để tạo nhanh một sự kiện mới trong Lịch Google</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">Lỗi xác thực: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Liên hệ với quản trị viên hệ thống</translation> <translation id="450710068430902550">Chia sẻ với quản trị viên</translation> -<translation id="4508814173490746936">Không thể dùng Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, nhấn phím Tab rồi nhấn Enter để dịch trang này bằng Google Dịch</translation> <translation id="4510487217173779431">Chou4 (Phong bì)</translation> <translation id="4514308731478712184">Tắt tính năng Hành trình</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (Phong bì)</translation> <translation id="6410264514553301377">Nhập ngày hết hạn và CVC cho <ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">Chromium có thể giúp bạn bảo vệ Tài khoản Google của mình và đổi mật khẩu.</translation> -<translation id="6423385022588644828">Từ giờ trở đi, bạn có thể xác nhận các thẻ nhanh hơn bằng Touch ID</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">Gấp dạng cửa</translation> <translation id="6428450836711225518">Xác minh số điện thoại của bạn</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">Không thể thiết lập kết nối riêng tư với <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> vì ngày và giờ (<ph name="DATE_AND_TIME" />) trên thiết bị của bạn không đúng.</translation> <translation id="8564182942834072828">Tài liệu riêng biệt/Bản sao chưa đối chiếu</translation> <translation id="8564985650692024650">Chromium khuyên bạn nên đặt lại mật khẩu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation> -<translation id="8574899947864779331">Dùng Touch ID để xác nhận các thẻ nhanh hơn</translation> <translation id="8576310925653847813">Hệ thống chiếu phim tại nhà</translation> <translation id="8577348305244205642">Không thể sử dụng thẻ ảo</translation> <translation id="858637041960032120">Thêm số đ.thoại @@ -2895,7 +2891,6 @@ <translation id="9039213469156557790">Ngoài ra, trang này bao gồm các tài nguyên khác không an toàn. Những tài nguyên này có thể bị người khác xem khi đang gửi và có thể bị kẻ tấn công sửa đổi nhằm thay đổi hành vi của trang.</translation> <translation id="9040464167025094690">Nút tìm thiết bị của tôi, nhấn phím Enter để truy cập tính năng tìm thiết bị trong Tài khoản Google</translation> <translation id="9042617223719777575">Khay sức chứa lớn</translation> -<translation id="9044359186343685026">Sử dụng Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Bạn đã cố truy cập vào <ph name="DOMAIN" />, nhưng máy chủ cho biết chứng chỉ không hợp lệ.</translation> <translation id="9050666287014529139">Cụm mật khẩu</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index d62e4c4..59c94af 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">使用和移动摄像头</translation> <translation id="191374271204266022">以 JSON 格式复制</translation> <translation id="1914326953223720820">解压缩服务</translation> -<translation id="1915697529809968049">要改用触控 ID 来取代银行卡验证码 (CVC) 吗?</translation> <translation id="1916770123977586577">要将您更新后的设置应用到此网站,请重新加载此页面</translation> <translation id="1919345977826869612">广告</translation> <translation id="1919367280705858090">了解如何解决特定错误消息指出的错误</translation> @@ -829,6 +828,7 @@ <translation id="3226387218769101247">缩略图</translation> <translation id="3227137524299004712">麦克风</translation> <translation id="3229041911291329567">与您的设备和浏览器相关的版本信息</translation> +<translation id="3229277193950731405">复制版本字符串</translation> <translation id="323107829343500871">输入“<ph name="CREDIT_CARD" />”的银行卡验证码 (CVC)</translation> <translation id="3234666976984236645">始终检测此网站上的重要内容</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可自定义您的浏览器外观</translation> @@ -1119,7 +1119,6 @@ <translation id="4072486802667267160">处理您的订单时出错。请重试。</translation> <translation id="4073797364926776829">查看卡</translation> <translation id="4075732493274867456">客户端和服务器不支持一般 SSL 协议版本或加密套件。</translation> -<translation id="4075941231477579656">触控 ID</translation> <translation id="4079302484614802869">代理配置已设置为使用 .pac 脚本网址,而不是固定的代理服务器。</translation> <translation id="4082393374666368382">设置 - 管理</translation> <translation id="4087296516249690906">“创建活动”按钮,按 Enter 键即可在 Google 日历中快速创建新活动</translation> @@ -1291,7 +1290,6 @@ <translation id="4506176782989081258">验证错误:<ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">联系系统管理员</translation> <translation id="450710068430902550">与管理员分享</translation> -<translation id="4508814173490746936">无法使用触控 ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />,依次按 Tab 键和 Enter 键即可使用“Google 翻译”服务来翻译此页面</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">关闭“历程”功能</translation> @@ -1964,7 +1962,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">请输入“<ph name="CREDIT_CARD" />”的到期日期和银行卡验证码 (CVC)</translation> <translation id="6415778972515849510">Chromium 可以帮助您保护您的 Google 帐号和更改密码。</translation> -<translation id="6423385022588644828">从现在开始,您只需使用触控 ID 便能更快速地确认银行卡</translation> <translation id="6425092077175753609">Material</translation> <translation id="6427730057873428458">关门折</translation> <translation id="6428450836711225518">验证您的手机号码</translation> @@ -2733,7 +2730,6 @@ <translation id="8559762987265718583">您设备的日期和时间(<ph name="DATE_AND_TIME" />)不正确,因此无法与 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私密连接。</translation> <translation id="8564182942834072828">单独的文档/非逐份打印的副本</translation> <translation id="8564985650692024650">如果您在其他网站上重复使用了您的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密码,Chromium 建议您重置该密码。</translation> -<translation id="8574899947864779331">使用触控 ID 更快地确认银行卡</translation> <translation id="8576310925653847813">家庭影院系统</translation> <translation id="8577348305244205642">无法使用虚拟卡</translation> <translation id="858637041960032120">添加电话号码 @@ -2890,7 +2886,6 @@ <translation id="9039213469156557790">而且,此页中包含其他不安全的资源。他人能在这些资源传输过程中进行查看,而攻击者可以修改这些资源,从而改变此页的行为。</translation> <translation id="9040464167025094690">“查找我的设备”按钮,按 Enter 键即可访问 Google 帐号中的“查找您的设备”页面</translation> <translation id="9042617223719777575">大容量</translation> -<translation id="9044359186343685026">使用触控 ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">您试图访问 <ph name="DOMAIN" />,但服务器提供的证书无效。</translation> <translation id="9050666287014529139">密码</translation>
diff --git a/components/strings/components_strings_zh-HK.xtb b/components/strings/components_strings_zh-HK.xtb index ff7fbd0..618c411 100644 --- a/components/strings/components_strings_zh-HK.xtb +++ b/components/strings/components_strings_zh-HK.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">使用和移動相機</translation> <translation id="191374271204266022">以 JSON 格式複製</translation> <translation id="1914326953223720820">解壓縮服務</translation> -<translation id="1915697529809968049">要使用 Touch ID 取代 CVC 嗎?</translation> <translation id="1916770123977586577">如要將您已更新的設定套到此網站,請重新載入此網頁</translation> <translation id="1919345977826869612">廣告</translation> <translation id="1919367280705858090">瞭解如何修正特定錯誤訊息指出的錯誤</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">縮圖</translation> <translation id="3227137524299004712">麥克風</translation> <translation id="3229041911291329567">裝置和瀏覽器的版本資料</translation> +<translation id="3229277193950731405">複製版本字串</translation> <translation id="323107829343500871">請輸入 <ph name="CREDIT_CARD" /> 的信用卡驗證碼 (CVC)</translation> <translation id="3234666976984236645">一律在這個網站上偵測重要內容</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以自訂瀏覽器外觀</translation> @@ -1122,7 +1122,6 @@ <translation id="4072486802667267160">處理您的訂單時發生錯誤,請再試一次。</translation> <translation id="4073797364926776829">查看虛擬卡</translation> <translation id="4075732493274867456">用戶端和伺服器不支援共通 SSL 通訊協定版本或加密套件。</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy 設定已設為使用 .pac 指令碼網址,而非固定的 Proxy 伺服器。</translation> <translation id="4082393374666368382">設定 - 管理</translation> <translation id="4087296516249690906">建立活動掣,㩒一下 Enter 鍵就可以喺 Google 日曆度快速建立新活動</translation> @@ -1294,7 +1293,6 @@ <translation id="4506176782989081258">驗證錯誤:<ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">聯絡系統管理員</translation> <translation id="450710068430902550">與管理員分享</translation> -<translation id="4508814173490746936">無法使用 Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />,㩒一下 Tab 鍵,然後㩒一下 Enter 鍵就可以透過 Google 翻譯翻譯呢個頁面</translation> <translation id="4510487217173779431">Chou4 (信封)</translation> <translation id="4514308731478712184">關閉瀏覽過程</translation> @@ -1968,7 +1966,6 @@ <translation id="6406765186087300643">C0 (信封)</translation> <translation id="6410264514553301377">請輸入 <ph name="CREDIT_CARD" /> 的到期日和信用卡驗證碼 (CVC)</translation> <translation id="6415778972515849510">Chromium 可助您保護 Google 帳戶並變更密碼。</translation> -<translation id="6423385022588644828">使用 Touch ID 即可加快確認您的付款卡</translation> <translation id="6425092077175753609">質感</translation> <translation id="6427730057873428458">摺頁</translation> <translation id="6428450836711225518">請驗證您的電話號碼</translation> @@ -2737,7 +2734,6 @@ <translation id="8559762987265718583">您裝置的日期和時間 (<ph name="DATE_AND_TIME" />) 不正確,因此無法建立私人連線至 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />。</translation> <translation id="8564182942834072828">個別文件/未自動分頁的副本</translation> <translation id="8564985650692024650">如果您已在其他網站上重用 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密碼,Chromium 建議您重設密碼。</translation> -<translation id="8574899947864779331">使用 Touch ID 即可加快確認您的付款卡</translation> <translation id="8576310925653847813">家庭影院系統</translation> <translation id="8577348305244205642">虛擬卡無法使用</translation> <translation id="858637041960032120">新增電話號碼</translation> @@ -2893,7 +2889,6 @@ <translation id="9039213469156557790">而且,這個網頁含有其他不安全的資源。其他人可能會在資源傳輸期間檢視這些資源,攻擊者也可能會修改這些資源,繼而變更網頁行為。</translation> <translation id="9040464167025094690">搵我嘅裝置按鈕,㩒一下 Enter 鍵就可以搵你登入 Google 帳戶嘅裝置</translation> <translation id="9042617223719777575">大容量</translation> -<translation id="9044359186343685026">使用 Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">您嘗試連線至 <ph name="DOMAIN" />,但伺服器提供的憑證無效。</translation> <translation id="9050666287014529139">複雜密碼</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 70ffee7..09188817 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">使用及調整攝影機</translation> <translation id="191374271204266022">複製為 JSON 格式</translation> <translation id="1914326953223720820">解壓縮服務</translation> -<translation id="1915697529809968049">要使用 Touch ID 取代信用卡驗證碼嗎?</translation> <translation id="1916770123977586577">如要將你更新過的設定套用到這個網站,請重新載入這個網頁</translation> <translation id="1919345977826869612">廣告</translation> <translation id="1919367280705858090">瞭解如何修正特定錯誤訊息指出的錯誤</translation> @@ -831,6 +830,7 @@ <translation id="3226387218769101247">縮圖</translation> <translation id="3227137524299004712">麥克風</translation> <translation id="3229041911291329567">裝置和瀏覽器的版本資訊</translation> +<translation id="3229277193950731405">複製版本字串</translation> <translation id="323107829343500871">輸入 <ph name="CREDIT_CARD" /> 的信用卡驗證碼</translation> <translation id="3234666976984236645">一律偵測這個網站的重要內容</translation> <translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />;按下 Tab 鍵再按下 Enter 鍵即可自訂瀏覽器外觀</translation> @@ -1123,7 +1123,6 @@ <translation id="4072486802667267160">處理你的訂單時發生錯誤,請再試一次。</translation> <translation id="4073797364926776829">查看卡片</translation> <translation id="4075732493274867456">用戶端和伺服器不支援一般 SSL 通訊協定版本或加密套件。</translation> -<translation id="4075941231477579656">Touch ID</translation> <translation id="4079302484614802869">Proxy 設定已設為使用 .pac 指令碼網址,而非固定的 Proxy 伺服器。</translation> <translation id="4082393374666368382">設定 - 管理</translation> <translation id="4087296516249690906">建立活動的按鈕;按下 Enter 鍵即可在 Google 日曆中快速建立新活動</translation> @@ -1295,7 +1294,6 @@ <translation id="4506176782989081258">驗證錯誤:<ph name="VALIDATION_ERROR" /></translation> <translation id="4506599922270137252">與系統管理員聯絡</translation> <translation id="450710068430902550">與管理員分享</translation> -<translation id="4508814173490746936">無法使用 Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />,按下 Tab 鍵再按下 Enter 鍵即可使用 Google 翻譯來翻譯這個網頁</translation> <translation id="4510487217173779431">Chou4 (信封)</translation> <translation id="4514308731478712184">關閉瀏覽歷程</translation> @@ -1969,7 +1967,6 @@ <translation id="6406765186087300643">C0 (信封)</translation> <translation id="6410264514553301377">輸入 <ph name="CREDIT_CARD" /> 的到期日和信用卡驗證碼</translation> <translation id="6415778972515849510">Chromium 可協助你保護 Google 帳戶並變更密碼。</translation> -<translation id="6423385022588644828">現在就開始使用 Touch ID,加快卡片驗證速度</translation> <translation id="6425092077175753609">質感</translation> <translation id="6427730057873428458">開門摺</translation> <translation id="6428450836711225518">驗證你的電話號碼</translation> @@ -2738,7 +2735,6 @@ <translation id="8559762987265718583">你裝置的日期和時間 (<ph name="DATE_AND_TIME" />) 不正確,因此無法與 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 建立私人連線。</translation> <translation id="8564182942834072828">個別文件/未自動分頁的副本</translation> <translation id="8564985650692024650">如果你在其他網站上重複使用過你的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密碼,Chromium 會建議你重設密碼。</translation> -<translation id="8574899947864779331">使用 Touch ID 加快卡片驗證速度</translation> <translation id="8576310925653847813">家庭劇院系統</translation> <translation id="8577348305244205642">虛擬卡片無法使用</translation> <translation id="858637041960032120">新增電話號碼</translation> @@ -2894,7 +2890,6 @@ <translation id="9039213469156557790">此外,這個網頁含有其他不安全的資源。其他人可能會在資源傳輸期間檢視這些資源,攻擊者也可能會修改這些資源,進而變更網頁行為。</translation> <translation id="9040464167025094690">「尋找我的裝置」按鈕;按下 Enter 鍵即可前往 Google 帳戶中的「尋找你的裝置」頁面</translation> <translation id="9042617223719777575">大容量</translation> -<translation id="9044359186343685026">使用 Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">你嘗試連線至 <ph name="DOMAIN" />,但伺服器提供的憑證無效。</translation> <translation id="9050666287014529139">通關密語</translation>
diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb index c82fd6c..432c82d5e 100644 --- a/components/strings/components_strings_zu.xtb +++ b/components/strings/components_strings_zu.xtb
@@ -379,7 +379,6 @@ <translation id="1908217026282415406">Ukusetshenziswa nokuhanjiswa kwekhamera</translation> <translation id="191374271204266022">Kopisha njenge-JSON</translation> <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="1919345977826869612">Izikhangiso</translation> <translation id="1919367280705858090">Thola usizo ngomlayezo wephutha othize</translation> @@ -1121,7 +1120,6 @@ <translation id="4072486802667267160">Kube nenkinga ekucubunguleni i-oda lakho. Sicela uzame futhi.</translation> <translation id="4073797364926776829">Buka ikhadi</translation> <translation id="4075732493274867456">Iklayenti neseva azisekeli inguqulo yephrothokholi ejwayelekile ye-SSL noma i-cipher suite.</translation> -<translation id="4075941231477579656">I-ID yokuthinta</translation> <translation id="4079302484614802869">Ukulungiselelwa kommeleli kusethelwe ukuze kusebenzise i-URL yesikripthi se-.pac, hhayi amaseva alibamba agxilisiwe.</translation> <translation id="4082393374666368382">Izilungiselelo - Ukuphathwa</translation> <translation id="4087296516249690906">Dala inkinobho yomcimbi, cindezela u-Enter ukuze wakhe umcimbi omusha ngokushesha ku-Google Calender</translation> @@ -1293,7 +1291,6 @@ <translation id="4506176782989081258">Iphutha lokuqinisekisa: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4506599922270137252">Ukuxhumana nomlawuli wesistimu</translation> <translation id="450710068430902550">Yabelana nomlawuli</translation> -<translation id="4508814173490746936">Ayikwazanga ukusebenzisa i-Touch ID</translation> <translation id="4509074745930862522"><ph name="TRANSLATE_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela u-Tab bese u-Enter ukuze uhumushe leli khasi nge-Google Translate</translation> <translation id="4510487217173779431">Chou4 (Envelope)</translation> <translation id="4514308731478712184">Vala Uhambo</translation> @@ -1967,7 +1964,6 @@ <translation id="6406765186087300643">C0 (Envelope)</translation> <translation id="6410264514553301377">Faka idethi yokuphelelwa isikhathi ne-CVC ye-<ph name="CREDIT_CARD" /></translation> <translation id="6415778972515849510">I-Chromium ingakusiza ukuthi uvikele i-akhawunti yakho ye-Google uphinde uguqule iphasiwedi yakho.</translation> -<translation id="6423385022588644828">Qinisekisa amakhadi akho ngokushesha ngokusebenzisa i-Touch ID kusuka manje</translation> <translation id="6425092077175753609">Okubalulekile</translation> <translation id="6427730057873428458">Ukugoqa kwesango</translation> <translation id="6428450836711225518">Iqinisekisa inombolo yakho yefoni</translation> @@ -2736,7 +2732,6 @@ <translation id="8559762987265718583">Uxhumano oluyimfihlo oluya ku-<ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> alukwazi ukusungulwa ngoba idethi nesikhathi sedivayisi yakho (<ph name="DATE_AND_TIME" />) azilungile.</translation> <translation id="8564182942834072828">Amadokhumenti ahlukene/Amakhophi angaqathaniswanga</translation> <translation id="8564985650692024650">I-Chromium incoma ukusetha kabusha iphasiwedi yakho ye-<ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> uma uphinde wayisebenzisa kwamanye amasayithi.</translation> -<translation id="8574899947864779331">Sebenzisa i-Touch ID ukuqinisekisa amakhadi ngokushesha</translation> <translation id="8576310925653847813">Isistimu yasesinema yasekhaya</translation> <translation id="8577348305244205642">Ikhadi le-virtual alitholakali</translation> <translation id="858637041960032120">Engeza inombolo yefoni</translation> @@ -2892,7 +2887,6 @@ <translation id="9039213469156557790">Ngokuqhubekayo, leli khasi lifaka ezinye izisetshenziswa ezingavikelekile. Lezi zisetshenziswa zingabukwa ngabanye ngenkathi ikwezokuthutha, futhi zingalungiswa yisihlaseli ukuze kuguqulwe ukuziphatha kwekhasi.</translation> <translation id="9040464167025094690">Inkinobho Yokuthola idivayisi yami, cindezela u-Enter ukuze uvakashele ukuthola idivayisi yakho ku-Google Account</translation> <translation id="9042617223719777575">Umthamo Omkhulu</translation> -<translation id="9044359186343685026">Sebenzisa i-Touch ID</translation> <translation id="9045525010788763347"><ph name="RESULT_MODIFIED_DATE" /> - <ph name="RESULT_PRODUCT_SOURCE" /></translation> <translation id="9049981332609050619">Uzame ukufika ku-<ph name="DOMAIN" />, kodwa iseva iphrezente isitifiketi esingavumelekile.</translation> <translation id="9050666287014529139">Umushwana wokungena</translation>
diff --git a/components/ukm/ukm_recorder_impl_unittest.cc b/components/ukm/ukm_recorder_impl_unittest.cc index c538b8a..07195c9 100644 --- a/components/ukm/ukm_recorder_impl_unittest.cc +++ b/components/ukm/ukm_recorder_impl_unittest.cc
@@ -234,7 +234,8 @@ ukm::TestAutoSetUkmRecorder test_ukm_recorder; GURL url("https://example_url.com/manifest.json"); - SourceId id = UkmRecorderImpl::GetSourceIdForWebApkManifestUrl(url); + SourceId id = + UkmRecorderImpl::GetSourceIdFromScopeImpl(url, SourceIdType::WEBAPK_ID); ASSERT_NE(kInvalidSourceId, id); @@ -252,7 +253,8 @@ ukm::TestAutoSetUkmRecorder test_ukm_recorder; GURL url("https://bobpay.com"); - SourceId id = UkmRecorderImpl::GetSourceIdForPaymentAppFromScope(url); + SourceId id = UkmRecorderImpl::GetSourceIdFromScopeImpl( + url, SourceIdType::PAYMENT_APP_ID); ASSERT_NE(kInvalidSourceId, id);
diff --git a/content/OWNERS b/content/OWNERS index 81e21bfe..c1d82f3 100644 --- a/content/OWNERS +++ b/content/OWNERS
@@ -23,7 +23,6 @@ creis@chromium.org dgozman@chromium.org jam@chromium.org -jochen@chromium.org kinuko@chromium.org nasko@chromium.org pfeldman@chromium.org
diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc index 255b7a2b7..358dce9 100644 --- a/content/browser/bluetooth/bluetooth_device_chooser_controller.cc +++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.cc
@@ -223,7 +223,7 @@ BluetoothDeviceChooserController::BluetoothDeviceChooserController( WebBluetoothServiceImpl* web_bluetooth_service, - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, scoped_refptr<device::BluetoothAdapter> adapter) : adapter_(std::move(adapter)), web_bluetooth_service_(web_bluetooth_service), @@ -299,7 +299,7 @@ base::Unretained(this)); if (auto* delegate = GetContentClient()->browser()->GetBluetoothDelegate()) { - chooser_ = delegate->RunBluetoothChooser(render_frame_host_, + chooser_ = delegate->RunBluetoothChooser(&*render_frame_host_, std::move(chooser_event_handler)); }
diff --git a/content/browser/bluetooth/bluetooth_device_chooser_controller.h b/content/browser/bluetooth/bluetooth_device_chooser_controller.h index 3cbe7c4..0d56198 100644 --- a/content/browser/bluetooth/bluetooth_device_chooser_controller.h +++ b/content/browser/bluetooth/bluetooth_device_chooser_controller.h
@@ -9,6 +9,7 @@ #include <unordered_set> #include "base/memory/raw_ptr.h" +#include "base/memory/raw_ref.h" #include "base/memory/weak_ptr.h" #include "base/timer/timer.h" #include "content/common/content_export.h" @@ -46,7 +47,7 @@ // |adapter| should be the adapter used to scan for Bluetooth devices. BluetoothDeviceChooserController( WebBluetoothServiceImpl* web_bluetooth_service_, - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, scoped_refptr<device::BluetoothAdapter> adapter); ~BluetoothDeviceChooserController(); @@ -134,7 +135,7 @@ // The WebBluetoothServiceImpl that owns this instance. raw_ptr<WebBluetoothServiceImpl> web_bluetooth_service_; // The RenderFrameHost that owns web_bluetooth_service_. - raw_ptr<RenderFrameHost> render_frame_host_; + raw_ref<RenderFrameHost> render_frame_host_; // Contains the filters and optional services used when scanning. blink::mojom::WebBluetoothRequestDeviceOptionsPtr options_;
diff --git a/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.cc b/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.cc index 02b3a9a..58d6e41 100644 --- a/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.cc +++ b/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.cc
@@ -18,7 +18,7 @@ BluetoothDeviceScanningPromptController:: BluetoothDeviceScanningPromptController( WebBluetoothServiceImpl* web_bluetooth_service, - RenderFrameHost* render_frame_host) + RenderFrameHost& render_frame_host) : web_bluetooth_service_(web_bluetooth_service), render_frame_host_(render_frame_host) {} @@ -39,7 +39,7 @@ if (!render_frame_host_->IsActive()) return; prompt_ = delegate->ShowBluetoothScanningPrompt( - render_frame_host_, std::move(prompt_event_handler)); + &*render_frame_host_, std::move(prompt_event_handler)); } }
diff --git a/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.h b/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.h index 2ce145c4..1054041 100644 --- a/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.h +++ b/content/browser/bluetooth/bluetooth_device_scanning_prompt_controller.h
@@ -9,6 +9,7 @@ #include <string> #include "base/memory/raw_ptr.h" +#include "base/memory/raw_ref.h" #include "base/memory/weak_ptr.h" #include "content/public/browser/bluetooth_scanning_prompt.h" @@ -25,7 +26,7 @@ // |web_bluetooth_service_|. BluetoothDeviceScanningPromptController( WebBluetoothServiceImpl* web_bluetooth_service, - RenderFrameHost* render_frame_host); + RenderFrameHost& render_frame_host); ~BluetoothDeviceScanningPromptController(); void ShowPermissionPrompt(); @@ -42,7 +43,7 @@ // The WebBluetoothServiceImpl that owns this instance. const raw_ptr<WebBluetoothServiceImpl> web_bluetooth_service_; // The RenderFrameHost that owns |web_bluetooth_service_|. - const raw_ptr<RenderFrameHost> render_frame_host_; + const raw_ref<RenderFrameHost> render_frame_host_; // The currently opened BluetoothScanningPrompt. std::unique_ptr<BluetoothScanningPrompt> prompt_;
diff --git a/content/browser/bluetooth/frame_connected_bluetooth_devices.cc b/content/browser/bluetooth/frame_connected_bluetooth_devices.cc index 80fb998..1238e74 100644 --- a/content/browser/bluetooth/frame_connected_bluetooth_devices.cc +++ b/content/browser/bluetooth/frame_connected_bluetooth_devices.cc
@@ -28,9 +28,9 @@ }; FrameConnectedBluetoothDevices::FrameConnectedBluetoothDevices( - RenderFrameHost* rfh) + RenderFrameHost& rfh) : web_contents_impl_(static_cast<WebContentsImpl*>( - WebContents::FromRenderFrameHost(rfh))) {} + WebContents::FromRenderFrameHost(&rfh))) {} FrameConnectedBluetoothDevices::~FrameConnectedBluetoothDevices() { for (size_t i = 0; i < device_id_to_connection_map_.size(); i++) {
diff --git a/content/browser/bluetooth/frame_connected_bluetooth_devices.h b/content/browser/bluetooth/frame_connected_bluetooth_devices.h index ada6450..671bb45 100644 --- a/content/browser/bluetooth/frame_connected_bluetooth_devices.h +++ b/content/browser/bluetooth/frame_connected_bluetooth_devices.h
@@ -37,7 +37,7 @@ public: // |rfh| should be the RenderFrameHost that owns the WebBluetoothServiceImpl // that owns this map. - explicit FrameConnectedBluetoothDevices(RenderFrameHost* rfh); + explicit FrameConnectedBluetoothDevices(RenderFrameHost& rfh); FrameConnectedBluetoothDevices(const FrameConnectedBluetoothDevices&) = delete;
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.cc b/content/browser/bluetooth/web_bluetooth_service_impl.cc index 0b3f6897..f45b0106ee 100644 --- a/content/browser/bluetooth/web_bluetooth_service_impl.cc +++ b/content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -296,7 +296,7 @@ blink::mojom::WebBluetoothAdvertisementClient> client_info) : client_(std::move(client_info)), web_contents_(static_cast<WebContentsImpl*>( - WebContents::FromRenderFrameHost(service->render_frame_host()))), + WebContents::FromRenderFrameHost(&service->render_frame_host()))), service_(service) { // Using base::Unretained() is safe here because all instances of this class // will be owned by |service|. @@ -556,7 +556,7 @@ RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::WebBluetoothService> receiver) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - DCHECK(render_frame_host); + CHECK(render_frame_host); if (render_frame_host->IsNestedWithinFencedFrame()) { // The renderer is supposed to disallow the use of web bluetooth when inside @@ -566,14 +566,14 @@ return nullptr; } - return new WebBluetoothServiceImpl(render_frame_host, std::move(receiver)); + return new WebBluetoothServiceImpl(*render_frame_host, std::move(receiver)); } WebBluetoothServiceImpl::WebBluetoothServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::WebBluetoothService> receiver) : DocumentService(render_frame_host, std::move(receiver)), - WebContentsObserver(WebContents::FromRenderFrameHost(render_frame_host)), + WebContentsObserver(WebContents::FromRenderFrameHost(&render_frame_host)), connected_devices_(new FrameConnectedBluetoothDevices(render_frame_host)) #if PAIR_BLUETOOTH_ON_DEMAND() , @@ -612,19 +612,19 @@ blink::mojom::WebBluetoothResult WebBluetoothServiceImpl::GetBluetoothAllowed() { - // The use of render_frame_host()->GetMainFrame() below is safe as fenced + // The use of render_frame_host().GetMainFrame() below is safe as fenced // frames are disallowed. - DCHECK(!render_frame_host()->IsNestedWithinFencedFrame()); + DCHECK(!render_frame_host().IsNestedWithinFencedFrame()); // Check if Web Bluetooth is allowed by Permissions Policy. - if (!render_frame_host()->IsFeatureEnabled( + if (!render_frame_host().IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kBluetooth)) { return blink::mojom::WebBluetoothResult::PERMISSIONS_POLICY_VIOLATION; } const url::Origin& requesting_origin = origin(); const url::Origin& embedding_origin = - render_frame_host()->GetMainFrame()->GetLastCommittedOrigin(); + render_frame_host().GetMainFrame()->GetLastCommittedOrigin(); // IsSameOriginWith() no longer excludes opaque origins. // TODO(https://crbug.com/994454): Exclude opaque origins explicitly. @@ -656,9 +656,9 @@ void WebBluetoothServiceImpl::OnBluetoothScanningPromptEvent( BluetoothScanningPrompt::Event event, BluetoothDeviceScanningPromptController* prompt_controller) { - // The use of render_frame_host()->GetMainFrame() below is safe as fenced + // The use of render_frame_host().GetMainFrame() below is safe as fenced // frames are disallowed. - DCHECK(!render_frame_host()->IsNestedWithinFencedFrame()); + DCHECK(!render_frame_host().IsNestedWithinFencedFrame()); // It is possible for |scanning_clients_| to be empty if a Mojo connection // error has occurred before this method was called. @@ -677,7 +677,7 @@ result = blink::mojom::WebBluetoothResult::SCANNING_BLOCKED; const url::Origin requesting_origin = origin(); const url::Origin embedding_origin = - render_frame_host()->GetMainFrame()->GetLastCommittedOrigin(); + render_frame_host().GetMainFrame()->GetLastCommittedOrigin(); GetContentClient()->browser()->BlockBluetoothScanning( web_contents()->GetBrowserContext(), requesting_origin, embedding_origin); @@ -707,11 +707,11 @@ } void WebBluetoothServiceImpl::OnPermissionRevoked(const url::Origin& origin) { - // The use of render_frame_host()->GetMainFrame() below is safe as fenced + // The use of render_frame_host().GetMainFrame() below is safe as fenced // frames are disallowed. - DCHECK(!render_frame_host()->IsNestedWithinFencedFrame()); + DCHECK(!render_frame_host().IsNestedWithinFencedFrame()); - if (render_frame_host()->GetMainFrame()->GetLastCommittedOrigin() != origin) { + if (render_frame_host().GetMainFrame()->GetLastCommittedOrigin() != origin) { return; } @@ -721,7 +721,7 @@ return; std::set<blink::WebBluetoothDeviceId> permitted_ids; - for (const auto& device : delegate->GetPermittedDevices(render_frame_host())) + for (const auto& device : delegate->GetPermittedDevices(&render_frame_host())) permitted_ids.insert(device->id); connected_devices_->CloseConnectionsToDevicesNotInList(permitted_ids); @@ -735,7 +735,7 @@ } content::RenderFrameHost* WebBluetoothServiceImpl::GetRenderFrameHost() { - return render_frame_host(); + return &render_frame_host(); } void WebBluetoothServiceImpl::OnVisibilityChanged(Visibility visibility) { @@ -818,7 +818,7 @@ if (!delegate) return; device->id = - delegate->AddScannedDevice(render_frame_host(), device_address); + delegate->AddScannedDevice(&render_frame_host(), device_address); } else { device->id = allowed_devices().AddDevice(device_address); } @@ -996,8 +996,8 @@ BluetoothDelegate* delegate = GetContentClient()->browser()->GetBluetoothDelegate(); if (delegate && - delegate->HasDevicePermission(render_frame_host(), device_id)) { - delegate->RevokeDevicePermissionWebInitiated(render_frame_host(), + delegate->HasDevicePermission(&render_frame_host(), device_id)) { + delegate->RevokeDevicePermissionWebInitiated(&render_frame_host(), device_id); } std::move(callback).Run(); @@ -1017,7 +1017,7 @@ GetContentClient()->browser()->GetBluetoothDelegate(); if (delegate) { is_connect_allowed = - delegate->HasDevicePermission(render_frame_host(), device_id); + delegate->HasDevicePermission(&render_frame_host(), device_id); } } else { is_connect_allowed = allowed_devices().IsAllowedToGATTConnect(device_id); @@ -1555,13 +1555,13 @@ blink::mojom::WebBluetoothRequestLEScanOptionsPtr options, RequestScanningStartCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - // The use of render_frame_host()->GetMainFrame() below is safe as fenced + // The use of render_frame_host().GetMainFrame() below is safe as fenced // frames are disallowed. - DCHECK(!render_frame_host()->IsNestedWithinFencedFrame()); + DCHECK(!render_frame_host().IsNestedWithinFencedFrame()); const url::Origin requesting_origin = origin(); const url::Origin embedding_origin = - render_frame_host()->GetMainFrame()->GetLastCommittedOrigin(); + render_frame_host().GetMainFrame()->GetLastCommittedOrigin(); bool blocked = GetContentClient()->browser()->IsBluetoothScanningBlocked( web_contents()->GetBrowserContext(), requesting_origin, embedding_origin); @@ -1795,7 +1795,8 @@ return; } - std::move(callback).Run(delegate->GetPermittedDevices(render_frame_host())); + std::move(callback).Run( + delegate->GetPermittedDevices(&render_frame_host())); return; } @@ -1885,7 +1886,7 @@ features::kWebBluetoothNewPermissionsBackend) && (!delegate || !delegate->HasDevicePermission( - render_frame_host(), callback_and_client.second->device_id()))) { + &render_frame_host(), callback_and_client.second->device_id()))) { std::move(callback_and_client.first) .Run(blink::mojom::WebBluetoothResult:: NOT_ALLOWED_TO_ACCESS_ANY_SERVICE); @@ -2044,7 +2045,7 @@ return; } web_bluetooth_device->id = delegate->GrantServiceAccessPermission( - render_frame_host(), device, options.get()); + &render_frame_host(), device, options.get()); } else { web_bluetooth_device->id = allowed_devices().AddDevice(device_address, options); @@ -2299,7 +2300,7 @@ GetContentClient()->browser()->GetBluetoothDelegate(); if (delegate) { device_address = - delegate->GetDeviceAddress(render_frame_host(), device_id); + delegate->GetDeviceAddress(&render_frame_host(), device_id); } } else { device_address = allowed_devices().GetDeviceAddress(device_id); @@ -2437,7 +2438,7 @@ } RenderProcessHost* WebBluetoothServiceImpl::GetRenderProcessHost() { - return render_frame_host()->GetProcess(); + return render_frame_host().GetProcess(); } BluetoothAdapter* WebBluetoothServiceImpl::GetAdapter() { @@ -2454,7 +2455,7 @@ // We should use the embedding origin so that permission delegation using // Permissions Policy works correctly. const url::Origin& embedding_origin = - render_frame_host()->GetMainFrame()->GetLastCommittedOrigin(); + render_frame_host().GetMainFrame()->GetLastCommittedOrigin(); StoragePartitionImpl* partition = static_cast<StoragePartitionImpl*>( web_contents()->GetBrowserContext()->GetDefaultStoragePartition()); return partition->GetBluetoothAllowedDevicesMap()->GetOrCreateAllowedDevices( @@ -2520,7 +2521,7 @@ GetContentClient()->browser()->GetBluetoothDelegate(); if (!delegate) return false; - return delegate->IsAllowedToAccessAtLeastOneService(render_frame_host(), + return delegate->IsAllowedToAccessAtLeastOneService(&render_frame_host(), device_id); } return allowed_devices().IsAllowedToAccessAtLeastOneService(device_id); @@ -2535,7 +2536,7 @@ GetContentClient()->browser()->GetBluetoothDelegate(); if (!delegate) return false; - return delegate->IsAllowedToAccessService(render_frame_host(), device_id, + return delegate->IsAllowedToAccessService(&render_frame_host(), device_id, service); } return allowed_devices().IsAllowedToAccessService(device_id, service); @@ -2551,7 +2552,7 @@ if (!delegate) return false; return delegate->IsAllowedToAccessManufacturerData( - render_frame_host(), device_id, manufacturer_code); + &render_frame_host(), device_id, manufacturer_code); } return allowed_devices().IsAllowedToAccessManufacturerData(device_id, manufacturer_code); @@ -2608,7 +2609,7 @@ GetContentClient()->browser()->GetBluetoothDelegate(); if (!delegate) return blink::WebBluetoothDeviceId(); - return delegate->GetWebBluetoothDeviceId(render_frame_host(), + return delegate->GetWebBluetoothDeviceId(&render_frame_host(), device_address); } @@ -2684,7 +2685,7 @@ return; } delegate->ShowDeviceCredentialsPrompt( - render_frame_host(), device_identifier, + &render_frame_host(), device_identifier, base::BindOnce(&BluetoothDelegateCredentialsCallback, std::move(callback))); } @@ -2702,7 +2703,7 @@ return; } delegate->ShowDevicePairConfirmPrompt( - render_frame_host(), device_identifier, + &render_frame_host(), device_identifier, base::BindOnce(&BluetoothDelegatePairConfirmCallback, std::move(callback))); }
diff --git a/content/browser/bluetooth/web_bluetooth_service_impl.h b/content/browser/bluetooth/web_bluetooth_service_impl.h index fafffd4..f5d9ff7 100644 --- a/content/browser/bluetooth/web_bluetooth_service_impl.h +++ b/content/browser/bluetooth/web_bluetooth_service_impl.h
@@ -125,7 +125,7 @@ // |render_frame_host|: The RFH that owns this instance. // |receiver|: The instance will be bound to this receiver's pipe. WebBluetoothServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::WebBluetoothService> receiver); ~WebBluetoothServiceImpl() override;
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc index c64a2ee..b3d247bb 100644 --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc
@@ -740,16 +740,8 @@ map->Add<blink::mojom::ComputePressureHost>(base::BindRepeating( &RenderFrameHostImpl::BindComputePressureHost, base::Unretained(host))); - map->Add<blink::mojom::ContactsManager>(base::BindRepeating( - [](RenderFrameHostImpl* host, - mojo::PendingReceiver<blink::mojom::ContactsManager> receiver) { - DCHECK(host); - - // The object is bound to the lifetime of `render_frame_host`'s logical - // document by virtue of being a `DocumentService` implementation. - new ContactsManagerImpl(host, std::move(receiver)); - }, - base::Unretained(host))); + map->Add<blink::mojom::ContactsManager>( + base::BindRepeating(ContactsManagerImpl::Create, base::Unretained(host))); map->Add<blink::mojom::ContentSecurityNotifier>(base::BindRepeating( [](RenderFrameHostImpl* host,
diff --git a/content/browser/browsing_topics/browsing_topics_document_host.cc b/content/browser/browsing_topics/browsing_topics_document_host.cc index b18f3296..0a7a758 100644 --- a/content/browser/browsing_topics/browsing_topics_document_host.cc +++ b/content/browser/browsing_topics/browsing_topics_document_host.cc
@@ -15,7 +15,7 @@ namespace content { BrowsingTopicsDocumentHost::BrowsingTopicsDocumentHost( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::BrowsingTopicsDocumentService> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -24,7 +24,7 @@ RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::BrowsingTopicsDocumentService> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); if (render_frame_host->GetLastCommittedOrigin().opaque()) { mojo::ReportBadMessage( @@ -42,15 +42,15 @@ // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new BrowsingTopicsDocumentHost(render_frame_host, std::move(receiver)); + new BrowsingTopicsDocumentHost(*render_frame_host, std::move(receiver)); } void BrowsingTopicsDocumentHost::GetBrowsingTopics( GetBrowsingTopicsCallback callback) { std::vector<blink::mojom::EpochTopicPtr> browsing_topics = GetContentClient()->browser()->GetBrowsingTopicsForJsApi( - render_frame_host()->GetLastCommittedOrigin(), - render_frame_host()->GetMainFrame()); + render_frame_host().GetLastCommittedOrigin(), + render_frame_host().GetMainFrame()); std::move(callback).Run(std::move(browsing_topics)); }
diff --git a/content/browser/browsing_topics/browsing_topics_document_host.h b/content/browser/browsing_topics/browsing_topics_document_host.h index a41e252..960dc396 100644 --- a/content/browser/browsing_topics/browsing_topics_document_host.h +++ b/content/browser/browsing_topics/browsing_topics_document_host.h
@@ -19,11 +19,6 @@ class CONTENT_EXPORT BrowsingTopicsDocumentHost final : public DocumentService<blink::mojom::BrowsingTopicsDocumentService> { public: - BrowsingTopicsDocumentHost( - RenderFrameHost* render_frame_host, - mojo::PendingReceiver<blink::mojom::BrowsingTopicsDocumentService> - receiver); - BrowsingTopicsDocumentHost(const BrowsingTopicsDocumentHost&) = delete; BrowsingTopicsDocumentHost& operator=(const BrowsingTopicsDocumentHost&) = delete; @@ -39,6 +34,11 @@ void GetBrowsingTopics(GetBrowsingTopicsCallback callback) override; private: + BrowsingTopicsDocumentHost( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::BrowsingTopicsDocumentService> + receiver); + // |this| can only be destroyed by DocumentService. ~BrowsingTopicsDocumentHost() override; };
diff --git a/content/browser/contacts/contacts_manager_impl.cc b/content/browser/contacts/contacts_manager_impl.cc index 2b7e6b6..cc8b740 100644 --- a/content/browser/contacts/contacts_manager_impl.cc +++ b/content/browser/contacts/contacts_manager_impl.cc
@@ -25,11 +25,11 @@ namespace { std::unique_ptr<ContactsProvider> CreateProvider( - RenderFrameHostImpl* render_frame_host) { - if (render_frame_host->GetParentOrOuterDocument()) + RenderFrameHostImpl& render_frame_host) { + if (render_frame_host.GetParentOrOuterDocument()) return nullptr; // This API is only supported on the main frame. #if BUILDFLAG(IS_ANDROID) - return std::make_unique<ContactsProviderAndroid>(render_frame_host); + return std::make_unique<ContactsProviderAndroid>(&render_frame_host); #else return nullptr; #endif @@ -55,11 +55,11 @@ } // namespace ContactsManagerImpl::ContactsManagerImpl( - RenderFrameHostImpl* render_frame_host, + RenderFrameHostImpl& render_frame_host, mojo::PendingReceiver<blink::mojom::ContactsManager> receiver) : DocumentService(render_frame_host, std::move(receiver)), contacts_provider_(CreateProvider(render_frame_host)), - source_id_(render_frame_host->GetPageUkmSourceId()) {} + source_id_(render_frame_host.GetPageUkmSourceId()) {} ContactsManagerImpl::~ContactsManagerImpl() = default;
diff --git a/content/browser/contacts/contacts_manager_impl.h b/content/browser/contacts/contacts_manager_impl.h index 4ff6b6a..e35ed3e 100644 --- a/content/browser/contacts/contacts_manager_impl.h +++ b/content/browser/contacts/contacts_manager_impl.h
@@ -17,9 +17,14 @@ class ContactsManagerImpl : public DocumentService<blink::mojom::ContactsManager> { public: - explicit ContactsManagerImpl( + static void Create( RenderFrameHostImpl* render_frame_host, - mojo::PendingReceiver<blink::mojom::ContactsManager> receiver); + mojo::PendingReceiver<blink::mojom::ContactsManager> receiver) { + CHECK(render_frame_host); + // The object is bound to the lifetime of `render_frame_host`'s logical + // document by virtue of being a `DocumentService` implementation. + new ContactsManagerImpl(*render_frame_host, std::move(receiver)); + } ContactsManagerImpl(const ContactsManagerImpl&) = delete; ContactsManagerImpl& operator=(const ContactsManagerImpl&) = delete; @@ -35,6 +40,10 @@ SelectCallback mojom_callback) override; private: + explicit ContactsManagerImpl( + RenderFrameHostImpl& render_frame_host, + mojo::PendingReceiver<blink::mojom::ContactsManager> receiver); + std::unique_ptr<ContactsProvider> contacts_provider_; // The source id to use when reporting back UKM statistics.
diff --git a/content/browser/eye_dropper_chooser_impl.cc b/content/browser/eye_dropper_chooser_impl.cc index 10ec409..040efe6d 100644 --- a/content/browser/eye_dropper_chooser_impl.cc +++ b/content/browser/eye_dropper_chooser_impl.cc
@@ -19,7 +19,7 @@ void EyeDropperChooserImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::EyeDropperChooser> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); // Renderer process should already check for user activation before sending // this request. Double check in case of compromised renderer and consume @@ -33,11 +33,11 @@ return; } - new EyeDropperChooserImpl(render_frame_host, std::move(receiver)); + new EyeDropperChooserImpl(*render_frame_host, std::move(receiver)); } EyeDropperChooserImpl::EyeDropperChooserImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::EyeDropperChooser> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -47,16 +47,16 @@ } void EyeDropperChooserImpl::Choose(ChooseCallback callback) { - if (!render_frame_host() || callback_ || eye_dropper_) { + if (callback_ || eye_dropper_) { std::move(callback).Run(/*success=*/false, /*color=*/0); return; } callback_ = std::move(callback); WebContents* web_contents = - WebContents::FromRenderFrameHost(render_frame_host()); + WebContents::FromRenderFrameHost(&render_frame_host()); if (WebContentsDelegate* delegate = web_contents->GetDelegate()) - eye_dropper_ = delegate->OpenEyeDropper(render_frame_host(), this); + eye_dropper_ = delegate->OpenEyeDropper(&render_frame_host(), this); if (!eye_dropper_) { // Color selection wasn't successful since the eye dropper can't be opened.
diff --git a/content/browser/eye_dropper_chooser_impl.h b/content/browser/eye_dropper_chooser_impl.h index b4efa0e..67824ec 100644 --- a/content/browser/eye_dropper_chooser_impl.h +++ b/content/browser/eye_dropper_chooser_impl.h
@@ -35,7 +35,7 @@ void ColorSelectionCanceled() override; private: - EyeDropperChooserImpl(RenderFrameHost*, + EyeDropperChooserImpl(RenderFrameHost&, mojo::PendingReceiver<blink::mojom::EyeDropperChooser>); ~EyeDropperChooserImpl() override;
diff --git a/content/browser/hid/hid_service.cc b/content/browser/hid/hid_service.cc index 3c6a01b..3f3d42c 100644 --- a/content/browser/hid/hid_service.cc +++ b/content/browser/hid/hid_service.cc
@@ -83,7 +83,7 @@ : public content::DocumentService<blink::mojom::HidService> { public: DocumentHelper(std::unique_ptr<HidService> parent, - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::HidService> receiver) : DocumentService(render_frame_host, std::move(receiver)), parent_(std::move(parent)) { @@ -150,7 +150,7 @@ void HidService::Create( RenderFrameHostImpl* render_frame_host, mojo::PendingReceiver<blink::mojom::HidService> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); if (!render_frame_host->IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kHid)) { @@ -180,7 +180,7 @@ render_frame_host->GetBrowserContext(), render_frame_host->GetMainFrame()->GetLastCommittedOrigin(), render_frame_host), - render_frame_host, std::move(receiver)); + *render_frame_host, std::move(receiver)); } // static
diff --git a/content/browser/image_capture/image_capture_impl.cc b/content/browser/image_capture/image_capture_impl.cc index 1e06baa..68bb912a 100644 --- a/content/browser/image_capture/image_capture_impl.cc +++ b/content/browser/image_capture/image_capture_impl.cc
@@ -79,11 +79,11 @@ void ImageCaptureImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<media::mojom::ImageCapture> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); // ImageCaptureImpl owns itself. It will self-destruct when a Mojo interface // error occurs, the render frame host is deleted, or the render frame host // navigates to a new document. - new ImageCaptureImpl(render_frame_host, std::move(receiver)); + new ImageCaptureImpl(*render_frame_host, std::move(receiver)); } void ImageCaptureImpl::GetPhotoState(const std::string& source_id, @@ -149,7 +149,7 @@ } ImageCaptureImpl::ImageCaptureImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::ImageCapture> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -171,7 +171,7 @@ return MediaDevicesPermissionChecker:: HasPanTiltZoomPermissionGrantedOnUIThread( - render_frame_host()->GetProcess()->GetID(), - render_frame_host()->GetRoutingID()); + render_frame_host().GetProcess()->GetID(), + render_frame_host().GetRoutingID()); } } // namespace content
diff --git a/content/browser/image_capture/image_capture_impl.h b/content/browser/image_capture/image_capture_impl.h index ff7efc6..5d43557 100644 --- a/content/browser/image_capture/image_capture_impl.h +++ b/content/browser/image_capture/image_capture_impl.h
@@ -33,7 +33,7 @@ TakePhotoCallback callback) override; private: - ImageCaptureImpl(RenderFrameHost* render_frame_host, + ImageCaptureImpl(RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::ImageCapture> receiver); ~ImageCaptureImpl() override;
diff --git a/content/browser/installedapp/installed_app_provider_impl.cc b/content/browser/installedapp/installed_app_provider_impl.cc index 997381e..f519543 100644 --- a/content/browser/installedapp/installed_app_provider_impl.cc +++ b/content/browser/installedapp/installed_app_provider_impl.cc
@@ -39,7 +39,7 @@ InstalledAppProviderImpl::InstalledAppProviderImpl( RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::InstalledAppProvider> pending_receiver) - : DocumentService(&render_frame_host, std::move(pending_receiver)) {} + : DocumentService(render_frame_host, std::move(pending_receiver)) {} InstalledAppProviderImpl::~InstalledAppProviderImpl() = default; @@ -51,15 +51,13 @@ if (base::FeatureList::IsEnabled(features::kInstalledAppProvider)) { #if BUILDFLAG(IS_WIN) is_implemented = true; - bool is_off_the_record = render_frame_host() - ->GetProcess() - ->GetBrowserContext() - ->IsOffTheRecord(); + bool is_off_the_record = + render_frame_host().GetProcess()->GetBrowserContext()->IsOffTheRecord(); installed_app_provider_win::FilterInstalledAppsForWin( std::move(related_apps), base::BindOnce(&DidGetInstalledApps, is_off_the_record, std::move(callback)), - render_frame_host()->GetLastCommittedURL()); + render_frame_host().GetLastCommittedURL()); #endif }
diff --git a/content/browser/interest_group/ad_auction_service_impl.cc b/content/browser/interest_group/ad_auction_service_impl.cc index 9de711c..efe81f7 100644 --- a/content/browser/interest_group/ad_auction_service_impl.cc +++ b/content/browser/interest_group/ad_auction_service_impl.cc
@@ -78,11 +78,11 @@ void AdAuctionServiceImpl::CreateMojoService( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::AdAuctionService> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); // The object is bound to the lifetime of `render_frame_host` and the mojo // connection. See DocumentService for details. - new AdAuctionServiceImpl(render_frame_host, std::move(receiver)); + new AdAuctionServiceImpl(*render_frame_host, std::move(receiver)); } void AdAuctionServiceImpl::JoinInterestGroup( @@ -148,7 +148,7 @@ return; } - if (!render_frame_host()->IsNestedWithinFencedFrame()) { + if (!render_frame_host().IsNestedWithinFencedFrame()) { ReportBadMessageAndDeleteThis( "Unexpected request: LeaveInterestGroupForDocument only supported " "within fenced frames"); @@ -158,7 +158,7 @@ // Get interest group owner and name. AdAuctionDocumentData is created as // part of navigation to a mapped URN URL. We need to find the top-level // fenced frame, since only the top-level frame has the document data. - RenderFrameHost* rfh = render_frame_host(); + RenderFrameHost* rfh = &render_frame_host(); while (!rfh->IsFencedFrameRoot()) { rfh = rfh->GetParentOrOuterDocument(); if (!rfh) { @@ -184,7 +184,7 @@ void AdAuctionServiceImpl::UpdateAdInterestGroups() { // If the interest group API is not allowed for this context by Permissions // Policy, do nothing - if (!render_frame_host()->IsFeatureEnabled( + if (!render_frame_host().IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kJoinAdInterestGroup)) { ReportBadMessageAndDeleteThis("Unexpected request"); return; @@ -202,14 +202,14 @@ RunAdAuctionCallback callback) { // If the run ad auction API is not allowed for this context by Permissions // Policy, do nothing - if (!render_frame_host()->IsFeatureEnabled( + if (!render_frame_host().IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kRunAdAuction)) { ReportBadMessageAndDeleteThis("Unexpected request"); return; } - auto* auction_result_metrics = AdAuctionResultMetrics::GetOrCreateForPage( - render_frame_host()->GetPage()); + auto* auction_result_metrics = + AdAuctionResultMetrics::GetOrCreateForPage(render_frame_host().GetPage()); if (!auction_result_metrics->ShouldRunAuction()) { std::move(callback).Run(absl::nullopt); return; @@ -257,8 +257,8 @@ } FencedFrameURLMappingObserver obs; content::FencedFrameURLMapping& mapping = - static_cast<RenderFrameHostImpl*>(render_frame_host()) - ->GetPage() + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .GetPage() .fenced_frame_urls_map(); // FLEDGE URN URLs should already be mapped, so the observer will be called // synchronously. @@ -289,8 +289,8 @@ std::move(replacement->replacement)); } content::FencedFrameURLMapping& mapping = - static_cast<RenderFrameHostImpl*>(render_frame_host()) - ->GetPage() + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .GetPage() .fenced_frame_urls_map(); mapping.SubstituteMappedURL(urn_url, local_replacements); std::move(callback).Run(); @@ -326,7 +326,7 @@ AdAuctionServiceImpl::GetFrameURLLoaderFactory() { if (!frame_url_loader_factory_ || !frame_url_loader_factory_.is_connected()) { frame_url_loader_factory_.reset(); - render_frame_host()->CreateNetworkServiceDefaultFactory( + render_frame_host().CreateNetworkServiceDefaultFactory( frame_url_loader_factory_.BindNewPipeAndPassReceiver()); } return frame_url_loader_factory_.get(); @@ -345,17 +345,17 @@ // // TODO(mmenke): Hook up devtools. GetContentClient()->browser()->WillCreateURLLoaderFactory( - render_frame_host()->GetSiteInstance()->GetBrowserContext(), - render_frame_host(), render_frame_host()->GetProcess()->GetID(), + render_frame_host().GetSiteInstance()->GetBrowserContext(), + &render_frame_host(), render_frame_host().GetProcess()->GetID(), ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, url::Origin(), /*navigation_id=*/absl::nullopt, - ukm::SourceIdObj::FromInt64(render_frame_host()->GetPageUkmSourceId()), + ukm::SourceIdObj::FromInt64(render_frame_host().GetPageUkmSourceId()), &factory_receiver, /*header_client=*/nullptr, /*bypass_redirect_checks=*/nullptr, /*disable_secure_dns=*/nullptr, /*factory_override=*/nullptr); render_frame_host() - ->GetStoragePartition() + .GetStoragePartition() ->GetURLLoaderFactoryForBrowserProcess() ->Clone(std::move(factory_receiver)); @@ -376,11 +376,11 @@ } RenderFrameHostImpl* AdAuctionServiceImpl::GetFrame() { - return static_cast<RenderFrameHostImpl*>(render_frame_host()); + return static_cast<RenderFrameHostImpl*>(&render_frame_host()); } scoped_refptr<SiteInstance> AdAuctionServiceImpl::GetFrameSiteInstance() { - return render_frame_host()->GetSiteInstance(); + return render_frame_host().GetSiteInstance(); } network::mojom::ClientSecurityStatePtr @@ -389,12 +389,12 @@ } AdAuctionServiceImpl::AdAuctionServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::AdAuctionService> receiver) : DocumentService(render_frame_host, std::move(receiver)), main_frame_origin_( - render_frame_host->GetMainFrame()->GetLastCommittedOrigin()), - main_frame_url_(render_frame_host->GetMainFrame()->GetLastCommittedURL()), + render_frame_host.GetMainFrame()->GetLastCommittedOrigin()), + main_frame_url_(render_frame_host.GetMainFrame()->GetLastCommittedURL()), auction_worklet_manager_( &GetInterestGroupManager().auction_process_manager(), GetTopWindowOrigin(), @@ -415,7 +415,7 @@ const url::Origin& owner) { // If the interest group API is not allowed for this context by Permissions // Policy, do nothing - if (!render_frame_host()->IsFeatureEnabled( + if (!render_frame_host().IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kJoinAdInterestGroup)) { ReportBadMessageAndDeleteThis("Unexpected request"); return false; @@ -443,7 +443,7 @@ interest_group_api_operation, const url::Origin& origin) const { return GetContentClient()->browser()->IsInterestGroupAPIAllowed( - render_frame_host(), interest_group_api_operation, main_frame_origin_, + &render_frame_host(), interest_group_api_operation, main_frame_origin_, origin); } @@ -472,7 +472,7 @@ } auto* auction_result_metrics = - AdAuctionResultMetrics::GetForPage(render_frame_host()->GetPage()); + AdAuctionResultMetrics::GetForPage(render_frame_host().GetPage()); if (!render_url) { DCHECK(report_urls.empty()); @@ -515,13 +515,13 @@ InterestGroupManagerImpl& AdAuctionServiceImpl::GetInterestGroupManager() const { return *static_cast<InterestGroupManagerImpl*>( - render_frame_host()->GetStoragePartition()->GetInterestGroupManager()); + render_frame_host().GetStoragePartition()->GetInterestGroupManager()); } url::Origin AdAuctionServiceImpl::GetTopWindowOrigin() const { - if (!render_frame_host()->GetParent()) + if (!render_frame_host().GetParent()) return origin(); - return render_frame_host()->GetMainFrame()->GetLastCommittedOrigin(); + return render_frame_host().GetMainFrame()->GetLastCommittedOrigin(); } } // namespace content
diff --git a/content/browser/interest_group/ad_auction_service_impl.h b/content/browser/interest_group/ad_auction_service_impl.h index ca92845..701878f 100644 --- a/content/browser/interest_group/ad_auction_service_impl.h +++ b/content/browser/interest_group/ad_auction_service_impl.h
@@ -84,7 +84,7 @@ // `render_frame_host` must not be null, and DocumentService guarantees // `this` will not outlive the `render_frame_host`. AdAuctionServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::AdAuctionService> receiver); // `this` can only be destroyed by DocumentService.
diff --git a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc index 0c8b524..937eb3a 100644 --- a/content/browser/keyboard_lock/keyboard_lock_service_impl.cc +++ b/content/browser/keyboard_lock/keyboard_lock_service_impl.cc
@@ -39,22 +39,19 @@ } // namespace KeyboardLockServiceImpl::KeyboardLockServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::KeyboardLockService> receiver) - : DocumentService(render_frame_host, std::move(receiver)), - render_frame_host_(static_cast<RenderFrameHostImpl*>(render_frame_host)) { - DCHECK(render_frame_host_); -} + : DocumentService(render_frame_host, std::move(receiver)) {} // static void KeyboardLockServiceImpl::CreateMojoService( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::KeyboardLockService> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new KeyboardLockServiceImpl(render_frame_host, std::move(receiver)); + new KeyboardLockServiceImpl(*render_frame_host, std::move(receiver)); } void KeyboardLockServiceImpl::RequestKeyboardLock( @@ -65,12 +62,12 @@ else LogKeyboardLockMethodCalled(KeyboardLockMethods::kRequestSomeKeys); - if (render_frame_host_->GetParentOrOuterDocument()) { + if (render_frame_host().GetParentOrOuterDocument()) { std::move(callback).Run(KeyboardLockRequestResult::kChildFrameError); return; } - if (!render_frame_host_->IsActive()) { + if (!render_frame_host().IsActive()) { std::move(callback).Run(KeyboardLockRequestResult::kFrameDetachedError); return; } @@ -85,17 +82,20 @@ dom_codes.push_back(dom_code); } else { invalid_key_code_found = true; - render_frame_host_->AddMessageToConsole( + render_frame_host().AddMessageToConsole( blink::mojom::ConsoleMessageLevel::kWarning, "Invalid DOMString passed into keyboard.lock(): '" + code + "'"); } } + auto& frame_host_impl = + static_cast<RenderFrameHostImpl&>(render_frame_host()); + // If we are provided with a vector containing one or more invalid key codes, // then exit without enabling keyboard lock. Also cancel any previous // keyboard lock request since the most recent request failed. if (invalid_key_code_found) { - render_frame_host_->GetRenderWidgetHost()->CancelKeyboardLock(); + frame_host_impl.GetRenderWidgetHost()->CancelKeyboardLock(); std::move(callback).Run(KeyboardLockRequestResult::kNoValidKeyCodesError); return; } @@ -104,12 +104,12 @@ if (!dom_codes.empty()) dom_code_set = std::move(dom_codes); - if (render_frame_host_->GetRenderWidgetHost()->RequestKeyboardLock( + if (frame_host_impl.GetRenderWidgetHost()->RequestKeyboardLock( std::move(dom_code_set))) { std::move(callback).Run(KeyboardLockRequestResult::kSuccess); feature_handle_ = - static_cast<RenderFrameHostImpl*>(render_frame_host_) - ->RegisterBackForwardCacheDisablingNonStickyFeature( + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .RegisterBackForwardCacheDisablingNonStickyFeature( blink::scheduler::WebSchedulerTrackedFeature::kKeyboardLock); } else { std::move(callback).Run(KeyboardLockRequestResult::kRequestFailedError); @@ -118,24 +118,29 @@ void KeyboardLockServiceImpl::CancelKeyboardLock() { LogKeyboardLockMethodCalled(KeyboardLockMethods::kCancelLock); - render_frame_host_->GetRenderWidgetHost()->CancelKeyboardLock(); + auto& frame_host_impl = + static_cast<RenderFrameHostImpl&>(render_frame_host()); + frame_host_impl.GetRenderWidgetHost()->CancelKeyboardLock(); feature_handle_.reset(); } void KeyboardLockServiceImpl::GetKeyboardLayoutMap( GetKeyboardLayoutMapCallback callback) { + auto& frame_host_impl = + static_cast<RenderFrameHostImpl&>(render_frame_host()); + auto response = GetKeyboardLayoutMapResult::New(); // The keyboard layout map is only accessible from the outermost main frame or // with the permission policy enabled. - if (render_frame_host_->GetParentOrOuterDocument() && - !render_frame_host_->IsFeatureEnabled( + if (frame_host_impl.GetParentOrOuterDocument() && + !frame_host_impl.IsFeatureEnabled( blink::mojom::PermissionsPolicyFeature::kKeyboardMap)) { response->status = blink::mojom::GetKeyboardLayoutMapStatus::kDenied; std::move(callback).Run(std::move(response)); return; } response->status = blink::mojom::GetKeyboardLayoutMapStatus::kSuccess; - response->layout_map = render_frame_host_->GetPage().GetKeyboardLayoutMap(); + response->layout_map = frame_host_impl.GetPage().GetKeyboardLayoutMap(); std::move(callback).Run(std::move(response)); }
diff --git a/content/browser/keyboard_lock/keyboard_lock_service_impl.h b/content/browser/keyboard_lock/keyboard_lock_service_impl.h index a8ae6d4c..f8e4dc9b 100644 --- a/content/browser/keyboard_lock/keyboard_lock_service_impl.h +++ b/content/browser/keyboard_lock/keyboard_lock_service_impl.h
@@ -21,10 +21,6 @@ class KeyboardLockServiceImpl final : public DocumentService<blink::mojom::KeyboardLockService> { public: - KeyboardLockServiceImpl( - RenderFrameHost* render_frame_host, - mojo::PendingReceiver<blink::mojom::KeyboardLockService> receiver); - static void CreateMojoService( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::KeyboardLockService> receiver); @@ -36,10 +32,13 @@ void GetKeyboardLayoutMap(GetKeyboardLayoutMapCallback callback) override; private: + KeyboardLockServiceImpl( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::KeyboardLockService> receiver); + // |this| can only be destroyed by DocumentService. ~KeyboardLockServiceImpl() override; - const raw_ptr<RenderFrameHostImpl> render_frame_host_; RenderFrameHostImpl::BackForwardCacheDisablingFeatureHandle feature_handle_; };
diff --git a/content/browser/lock_screen/lock_screen_service_impl.cc b/content/browser/lock_screen/lock_screen_service_impl.cc index 65236cc..545ad874 100644 --- a/content/browser/lock_screen/lock_screen_service_impl.cc +++ b/content/browser/lock_screen/lock_screen_service_impl.cc
@@ -16,7 +16,7 @@ namespace content { LockScreenServiceImpl::LockScreenServiceImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::LockScreenService> receiver) : DocumentService(render_frame_host, std::move(receiver)), lock_screen_storage_(LockScreenStorageImpl::GetInstance()) {} @@ -27,9 +27,10 @@ void LockScreenServiceImpl::Create( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::LockScreenService> receiver) { + CHECK(render_frame_host); // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new LockScreenServiceImpl(render_frame_host, std::move(receiver)); + new LockScreenServiceImpl(*render_frame_host, std::move(receiver)); } void LockScreenServiceImpl::GetKeys(GetKeysCallback callback) { @@ -57,7 +58,7 @@ if (origin().opaque()) return false; return lock_screen_storage_->IsAllowedBrowserContext( - render_frame_host()->GetProcess()->GetBrowserContext()); + render_frame_host().GetProcess()->GetBrowserContext()); } -} // namespace content \ No newline at end of file +} // namespace content
diff --git a/content/browser/lock_screen/lock_screen_service_impl.h b/content/browser/lock_screen/lock_screen_service_impl.h index dcc42e5..9d5c63d 100644 --- a/content/browser/lock_screen/lock_screen_service_impl.h +++ b/content/browser/lock_screen/lock_screen_service_impl.h
@@ -24,9 +24,6 @@ class CONTENT_EXPORT LockScreenServiceImpl : public DocumentService<blink::mojom::LockScreenService> { public: - explicit LockScreenServiceImpl( - content::RenderFrameHost* render_frame_host, - mojo::PendingReceiver<blink::mojom::LockScreenService> receiver); LockScreenServiceImpl(const LockScreenServiceImpl&) = delete; LockScreenServiceImpl& operator=(const LockScreenServiceImpl&) = delete; @@ -43,6 +40,10 @@ private: friend class LockScreenServiceImplBrowserTest; + explicit LockScreenServiceImpl( + content::RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::LockScreenService> receiver); + // |this| can only be destructed as a DocumentService. ~LockScreenServiceImpl() override;
diff --git a/content/browser/media/webaudio/audio_context_manager_impl.cc b/content/browser/media/webaudio/audio_context_manager_impl.cc index 82c4696..560ae1e 100644 --- a/content/browser/media/webaudio/audio_context_manager_impl.cc +++ b/content/browser/media/webaudio/audio_context_manager_impl.cc
@@ -31,22 +31,24 @@ void AudioContextManagerImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new AudioContextManagerImpl(render_frame_host, std::move(receiver)); + new AudioContextManagerImpl(*render_frame_host, std::move(receiver)); +} + +AudioContextManagerImpl& AudioContextManagerImpl::CreateForTesting( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver) { + return *new AudioContextManagerImpl(render_frame_host, std::move(receiver)); } AudioContextManagerImpl::AudioContextManagerImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver) : DocumentService(render_frame_host, std::move(receiver)), - render_frame_host_impl_( - static_cast<RenderFrameHostImpl*>(render_frame_host)), - clock_(base::DefaultTickClock::GetInstance()) { - DCHECK(render_frame_host); -} + clock_(base::DefaultTickClock::GetInstance()) {} AudioContextManagerImpl::~AudioContextManagerImpl() { // Takes care pending "audible start" times. @@ -65,7 +67,8 @@ // Keeps track of the start audible time for this context. pending_audible_durations_[audio_context_id] = clock_->NowTicks(); - render_frame_host_impl_->AudioContextPlaybackStarted(audio_context_id); + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .AudioContextPlaybackStarted(audio_context_id); } void AudioContextManagerImpl::AudioContextAudiblePlaybackStopped( @@ -78,7 +81,8 @@ // Resets the context slot because the context is not audible. pending_audible_durations_[audio_context_id] = base::TimeTicks(); - render_frame_host_impl_->AudioContextPlaybackStopped(audio_context_id); + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .AudioContextPlaybackStopped(audio_context_id); } void AudioContextManagerImpl::RecordAudibleTime(base::TimeDelta audible_time) { @@ -87,10 +91,12 @@ ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get(); DCHECK(ukm_recorder); + // TODO(danakj): SetIsMainFrame(render_frame_host().IsInPrimaryMainFrame()) is + // simpler. ukm::builders::Media_WebAudio_AudioContext_AudibleTime( - render_frame_host_impl_->GetPageUkmSourceId()) - .SetIsMainFrame(WebContents::FromRenderFrameHost(render_frame_host()) - ->GetPrimaryMainFrame() == render_frame_host_impl_) + render_frame_host().GetPageUkmSourceId()) + .SetIsMainFrame(WebContents::FromRenderFrameHost(&render_frame_host()) + ->GetPrimaryMainFrame() == &render_frame_host()) .SetAudibleTime(GetBucketedTimeInMilliseconds(audible_time)) .Record(ukm_recorder); }
diff --git a/content/browser/media/webaudio/audio_context_manager_impl.h b/content/browser/media/webaudio/audio_context_manager_impl.h index 69c1350..452f5d1 100644 --- a/content/browser/media/webaudio/audio_context_manager_impl.h +++ b/content/browser/media/webaudio/audio_context_manager_impl.h
@@ -19,7 +19,6 @@ namespace content { class RenderFrameHost; -class RenderFrameHostImpl; // Implements the mojo interface between WebAudio and the browser so that // WebAudio can report when audible sounds from an AudioContext starts and @@ -30,18 +29,15 @@ class CONTENT_EXPORT AudioContextManagerImpl final : public content::DocumentService<blink::mojom::AudioContextManager> { public: - explicit AudioContextManagerImpl( - RenderFrameHost* render_frame_host, - mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver); - AudioContextManagerImpl(const AudioContextManagerImpl&) = delete; AudioContextManagerImpl& operator=(const AudioContextManagerImpl&) = delete; - ~AudioContextManagerImpl() override; - static void Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver); + static AudioContextManagerImpl& CreateForTesting( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver); // Notify observers that audible audio started/stopped playing from an // AudioContext. @@ -51,11 +47,14 @@ void set_clock_for_testing(base::TickClock* clock) { clock_ = clock; } private: + explicit AudioContextManagerImpl( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver); + ~AudioContextManagerImpl() override; + // Send measured audible duration to UKM database. void RecordAudibleTime(base::TimeDelta); - const raw_ptr<RenderFrameHostImpl> render_frame_host_impl_; - // To track pending audible time. Stores ID of AudioContext (int32_t) and // the start time of audible period (base::TimeTicks). base::flat_map<int32_t, base::TimeTicks> pending_audible_durations_;
diff --git a/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc b/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc index 04db783..7a6fee56 100644 --- a/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc +++ b/content/browser/media/webaudio/audio_context_manager_impl_unittest.cc
@@ -25,8 +25,8 @@ clock_.SetNowTicks(base::TimeTicks::Now()); mojo::Remote<blink::mojom::AudioContextManager> service_remote; - audio_context_manager_ = new AudioContextManagerImpl( - main_rfh(), service_remote.BindNewPipeAndPassReceiver()); + audio_context_manager_ = &AudioContextManagerImpl::CreateForTesting( + *main_rfh(), service_remote.BindNewPipeAndPassReceiver()); audio_context_manager_->set_clock_for_testing(&clock_); }
diff --git a/content/browser/payments/payment_app_provider_util.cc b/content/browser/payments/payment_app_provider_util.cc index 6e657f5..a99d017 100644 --- a/content/browser/payments/payment_app_provider_util.cc +++ b/content/browser/payments/payment_app_provider_util.cc
@@ -14,6 +14,7 @@ ukm::SourceId PaymentAppProviderUtil::GetSourceIdForPaymentAppFromScope( const GURL& sw_scope) { return ukm::UkmRecorder::GetSourceIdForPaymentAppFromScope( + base::PassKey<PaymentAppProviderUtil>(), sw_scope.DeprecatedGetOriginAsURL()); }
diff --git a/content/browser/picture_in_picture/picture_in_picture_service_impl.cc b/content/browser/picture_in_picture/picture_in_picture_service_impl.cc index c446d0ab..cb59101 100644 --- a/content/browser/picture_in_picture/picture_in_picture_service_impl.cc +++ b/content/browser/picture_in_picture/picture_in_picture_service_impl.cc
@@ -17,15 +17,16 @@ void PictureInPictureServiceImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::PictureInPictureService> receiver) { - DCHECK(render_frame_host); - new PictureInPictureServiceImpl(render_frame_host, std::move(receiver)); + CHECK(render_frame_host); + new PictureInPictureServiceImpl(*render_frame_host, std::move(receiver)); } // static PictureInPictureServiceImpl* PictureInPictureServiceImpl::CreateForTesting( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::PictureInPictureService> receiver) { - return new PictureInPictureServiceImpl(render_frame_host, + CHECK(render_frame_host); + return new PictureInPictureServiceImpl(*render_frame_host, std::move(receiver)); } @@ -42,7 +43,7 @@ mojo::PendingRemote<blink::mojom::PictureInPictureSession> session_remote; auto result = GetController().StartSession( - this, MediaPlayerId(render_frame_host()->GetGlobalId(), player_id), + this, MediaPlayerId(render_frame_host().GetGlobalId(), player_id), std::move(player_remote), surface_id, natural_size, show_play_pause_button, std::move(observer), source_bounds, &session_remote, &window_size); @@ -51,8 +52,8 @@ // Frames are to be blocklisted from the back-forward cache because the // picture-in-picture continues to be displayed while the page is in the // cache instead of closing. - static_cast<RenderFrameHostImpl*>(render_frame_host()) - ->OnBackForwardCacheDisablingStickyFeatureUsed( + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .OnBackForwardCacheDisablingStickyFeatureUsed( blink::scheduler::WebSchedulerTrackedFeature::kPictureInPicture); } @@ -60,7 +61,7 @@ } PictureInPictureServiceImpl::PictureInPictureServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::PictureInPictureService> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -73,7 +74,7 @@ VideoPictureInPictureWindowControllerImpl& PictureInPictureServiceImpl::GetController() { return *VideoPictureInPictureWindowControllerImpl::GetOrCreateForWebContents( - WebContents::FromRenderFrameHost(render_frame_host())); + WebContents::FromRenderFrameHost(&render_frame_host())); } } // namespace content
diff --git a/content/browser/picture_in_picture/picture_in_picture_service_impl.h b/content/browser/picture_in_picture/picture_in_picture_service_impl.h index 03e3149..15ed6e79 100644 --- a/content/browser/picture_in_picture/picture_in_picture_service_impl.h +++ b/content/browser/picture_in_picture/picture_in_picture_service_impl.h
@@ -55,7 +55,7 @@ friend class PictureInPictureSession; PictureInPictureServiceImpl( - RenderFrameHost*, + RenderFrameHost&, mojo::PendingReceiver<blink::mojom::PictureInPictureService>); ~PictureInPictureServiceImpl() override;
diff --git a/content/browser/picture_in_picture/picture_in_picture_session.cc b/content/browser/picture_in_picture/picture_in_picture_session.cc index 033a102..4152f500 100644 --- a/content/browser/picture_in_picture/picture_in_picture_session.cc +++ b/content/browser/picture_in_picture/picture_in_picture_session.cc
@@ -45,7 +45,7 @@ const gfx::Size& natural_size, bool show_play_pause_button) { player_id_ = - MediaPlayerId(service_->render_frame_host()->GetGlobalId(), player_id); + MediaPlayerId(service_->render_frame_host().GetGlobalId(), player_id); media_player_remote_.reset(); media_player_remote_.Bind(std::move(player_remote)); @@ -113,7 +113,7 @@ WebContentsImpl* PictureInPictureSession::GetWebContentsImpl() { return static_cast<WebContentsImpl*>( - WebContents::FromRenderFrameHost(service_->render_frame_host())); + WebContents::FromRenderFrameHost(&service_->render_frame_host())); } VideoPictureInPictureWindowControllerImpl&
diff --git a/content/browser/renderer_host/clipboard_host_impl.cc b/content/browser/renderer_host/clipboard_host_impl.cc index 1931c51..f0a70ff6 100644 --- a/content/browser/renderer_host/clipboard_host_impl.cc +++ b/content/browser/renderer_host/clipboard_host_impl.cc
@@ -109,23 +109,24 @@ } ClipboardHostImpl::ClipboardHostImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::ClipboardHost> receiver) : DocumentService(render_frame_host, std::move(receiver)) { clipboard_writer_ = std::make_unique<ui::ScopedClipboardWriter>( ui::ClipboardBuffer::kCopyPaste, - render_frame_host->GetBrowserContext()->IsOffTheRecord() + render_frame_host.GetBrowserContext()->IsOffTheRecord() ? nullptr : std::make_unique<ui::DataTransferEndpoint>( - render_frame_host->GetMainFrame()->GetLastCommittedURL())); + render_frame_host.GetMainFrame()->GetLastCommittedURL())); } void ClipboardHostImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::ClipboardHost> receiver) { + CHECK(render_frame_host); // The object is bound to the lifetime of |render_frame_host| and the mojo // connection. See DocumentService for details. - new ClipboardHostImpl(render_frame_host, std::move(receiver)); + new ClipboardHostImpl(*render_frame_host, std::move(receiver)); } ClipboardHostImpl::~ClipboardHostImpl() { @@ -203,7 +204,7 @@ void ClipboardHostImpl::ReadText(ui::ClipboardBuffer clipboard_buffer, ReadTextCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::u16string()); return; } @@ -240,7 +241,7 @@ void ClipboardHostImpl::ReadHtml(ui::ClipboardBuffer clipboard_buffer, ReadHtmlCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::u16string(), GURL(), 0, 0); return; } @@ -271,7 +272,7 @@ void ClipboardHostImpl::ReadSvg(ui::ClipboardBuffer clipboard_buffer, ReadSvgCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::u16string()); return; } @@ -294,7 +295,7 @@ void ClipboardHostImpl::ReadRtf(ui::ClipboardBuffer clipboard_buffer, ReadRtfCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::string()); return; } @@ -318,7 +319,7 @@ void ClipboardHostImpl::ReadPng(ui::ClipboardBuffer clipboard_buffer, ReadPngCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(mojo_base::BigBuffer()); return; } @@ -352,7 +353,7 @@ void ClipboardHostImpl::ReadFiles(ui::ClipboardBuffer clipboard_buffer, ReadFilesCallback callback) { blink::mojom::ClipboardFilesPtr result = blink::mojom::ClipboardFiles::New(); - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::move(result)); return; } @@ -368,14 +369,14 @@ // Call PrepareDataTransferFilenamesForChildProcess() to register files so // they can be accessed by the renderer. - RenderProcessHost* process = render_frame_host()->GetProcess(); + RenderProcessHost* process = render_frame_host().GetProcess(); result->file_system_id = PrepareDataTransferFilenamesForChildProcess( filenames, ChildProcessSecurityPolicyImpl::GetInstance(), process->GetID(), process->GetStoragePartition()->GetFileSystemContext()); // Convert to DataTransferFiles which creates the access token for each file. StoragePartitionImpl* storage_partition = static_cast<StoragePartitionImpl*>( - render_frame_host()->GetProcess()->GetStoragePartition()); + render_frame_host().GetProcess()->GetStoragePartition()); std::vector<blink::mojom::DataTransferFilePtr> files = FileInfosToDataTransferFiles( filenames, storage_partition->GetFileSystemAccessManager(), @@ -400,7 +401,7 @@ void ClipboardHostImpl::ReadCustomData(ui::ClipboardBuffer clipboard_buffer, const std::u16string& type, ReadCustomDataCallback callback) { - if (!IsRendererPasteAllowed(*render_frame_host())) { + if (!IsRendererPasteAllowed(render_frame_host())) { std::move(callback).Run(std::u16string()); return; } @@ -474,7 +475,7 @@ return false; } - if (render_frame_host()->HasTransientUserActivation()) + if (render_frame_host().HasTransientUserActivation()) return true; return false; } @@ -559,7 +560,7 @@ if (ui::DataTransferPolicyController::HasInstance()) { ui::DataTransferPolicyController::Get()->PasteIfAllowed( ui::Clipboard::GetForCurrentThread()->GetSource(clipboard_buffer), - CreateDataEndpoint().get(), data_size, render_frame_host(), + CreateDataEndpoint().get(), data_size, &render_frame_host(), std::move(policy_cb)); return; } @@ -600,8 +601,8 @@ const ui::ClipboardSequenceNumberToken& seqno, const ui::ClipboardFormatType& data_type, std::string data) { - static_cast<RenderFrameHostImpl*>(render_frame_host()) - ->IsClipboardPasteContentAllowed( + static_cast<RenderFrameHostImpl&>(render_frame_host()) + .IsClipboardPasteContentAllowed( data_type, data, base::BindOnce(&ClipboardHostImpl::FinishPasteIfContentAllowed, weak_ptr_factory_.GetWeakPtr(), seqno)); @@ -621,8 +622,8 @@ CopyAllowedCallback callback) { std::u16string replacement_data; if (GetContentClient()->browser()->IsClipboardCopyAllowed( - render_frame_host()->GetBrowserContext(), - render_frame_host()->GetLastCommittedURL(), data_size_in_bytes, + render_frame_host().GetBrowserContext(), + render_frame_host().GetLastCommittedURL(), data_size_in_bytes, replacement_data)) { std::move(callback).Run(); } else { @@ -641,11 +642,11 @@ std::unique_ptr<ui::DataTransferEndpoint> ClipboardHostImpl::CreateDataEndpoint() { - if (render_frame_host()->GetBrowserContext()->IsOffTheRecord()) { + if (render_frame_host().GetBrowserContext()->IsOffTheRecord()) { return nullptr; } return std::make_unique<ui::DataTransferEndpoint>( - render_frame_host()->GetMainFrame()->GetLastCommittedURL(), - render_frame_host()->HasTransientUserActivation()); + render_frame_host().GetMainFrame()->GetLastCommittedURL(), + render_frame_host().HasTransientUserActivation()); } } // namespace content
diff --git a/content/browser/renderer_host/clipboard_host_impl.h b/content/browser/renderer_host/clipboard_host_impl.h index 8001a04c..1de8bb5 100644 --- a/content/browser/renderer_host/clipboard_host_impl.h +++ b/content/browser/renderer_host/clipboard_host_impl.h
@@ -96,7 +96,7 @@ static const base::TimeDelta kIsPasteContentAllowedRequestTooOld; explicit ClipboardHostImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::ClipboardHost> receiver); // Performs a check to see if pasting `data` is allowed by data transfer
diff --git a/content/browser/renderer_host/clipboard_host_impl_unittest.cc b/content/browser/renderer_host/clipboard_host_impl_unittest.cc index 72406bf..d2d21811 100644 --- a/content/browser/renderer_host/clipboard_host_impl_unittest.cc +++ b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
@@ -50,7 +50,7 @@ class FakeClipboardHostImpl : public ClipboardHostImpl { public: FakeClipboardHostImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::ClipboardHost> receiver) : ClipboardHostImpl(render_frame_host, std::move(receiver)) {} @@ -296,7 +296,7 @@ RenderViewHostTestHarness::SetUp(); SetContents(CreateTestWebContents()); fake_clipboard_host_impl_ = - new FakeClipboardHostImpl(web_contents()->GetPrimaryMainFrame(), + new FakeClipboardHostImpl(*web_contents()->GetPrimaryMainFrame(), remote_.BindNewPipeAndPassReceiver()); } @@ -501,7 +501,7 @@ // `FakeClipboardHostImpl` is a `DocumentService` and manages its own // lifetime. raw_ptr<FakeClipboardHostImpl> fake_clipboard_host_impl_grandchild = - new FakeClipboardHostImpl(grandchild_rfh, + new FakeClipboardHostImpl(*grandchild_rfh, remote_grandchild.BindNewPipeAndPassReceiver()); // Policy controller accepts the paste request.
diff --git a/content/browser/renderer_host/document_service_browsertest.cc b/content/browser/renderer_host/document_service_browsertest.cc index cd3cda78f..5e54afe 100644 --- a/content/browser/renderer_host/document_service_browsertest.cc +++ b/content/browser/renderer_host/document_service_browsertest.cc
@@ -83,7 +83,7 @@ mojo::Remote<mojom::Echo> echo_remote; bool echo_deleted = false; new DocumentServiceEchoImpl( - prerendered_frame_host, echo_remote.BindNewPipeAndPassReceiver(), + *prerendered_frame_host, echo_remote.BindNewPipeAndPassReceiver(), base::BindOnce([](bool* deleted) { *deleted = true; }, &echo_deleted)); // Activate the prerendered page. @@ -125,7 +125,7 @@ mojo::Remote<mojom::Echo> echo_remote; bool echo_deleted = false; new DocumentServiceEchoImpl( - rfh_a, echo_remote.BindNewPipeAndPassReceiver(), + *rfh_a, echo_remote.BindNewPipeAndPassReceiver(), base::BindOnce([](bool* deleted) { *deleted = true; }, &echo_deleted)); // 2) Navigate to B.
diff --git a/content/browser/renderer_host/document_service_echo_impl.cc b/content/browser/renderer_host/document_service_echo_impl.cc index b91a473..8404967 100644 --- a/content/browser/renderer_host/document_service_echo_impl.cc +++ b/content/browser/renderer_host/document_service_echo_impl.cc
@@ -7,7 +7,7 @@ namespace content { DocumentServiceEchoImpl::DocumentServiceEchoImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::Echo> receiver, base::OnceClosure destruction_cb) : DocumentService(render_frame_host, std::move(receiver)),
diff --git a/content/browser/renderer_host/document_service_echo_impl.h b/content/browser/renderer_host/document_service_echo_impl.h index ee3a154..abaaa7a 100644 --- a/content/browser/renderer_host/document_service_echo_impl.h +++ b/content/browser/renderer_host/document_service_echo_impl.h
@@ -17,7 +17,7 @@ // Subclass of DocumentService for test. class DocumentServiceEchoImpl final : public DocumentService<mojom::Echo> { public: - DocumentServiceEchoImpl(RenderFrameHost* render_frame_host, + DocumentServiceEchoImpl(RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::Echo> receiver, base::OnceClosure destruction_cb); ~DocumentServiceEchoImpl() final;
diff --git a/content/browser/renderer_host/document_service_unittest.cc b/content/browser/renderer_host/document_service_unittest.cc index 4837c1b..95694cab 100644 --- a/content/browser/renderer_host/document_service_unittest.cc +++ b/content/browser/renderer_host/document_service_unittest.cc
@@ -62,7 +62,7 @@ main_rfh_ = SimulateNavigation(main_rfh, GURL(kFooOrigin)); } - void CreateEchoImpl(RenderFrameHost* rfh) { + void CreateEchoImpl(RenderFrameHost& rfh) { DCHECK(!is_echo_impl_alive_); new DocumentServiceEchoImpl( rfh, echo_remote_.BindNewPipeAndPassReceiver(), @@ -87,7 +87,7 @@ }; TEST_F(DocumentServiceTest, ConnectionError) { - CreateEchoImpl(main_rfh_); + CreateEchoImpl(*main_rfh_); ResetConnection(); EXPECT_FALSE(is_echo_impl_alive_); } @@ -96,7 +96,7 @@ // Needs to create a child frame so we can delete it using DetachFrame() // because it is not allowed to detach the main frame. RenderFrameHost* child_rfh = AddChildFrame(main_rfh_, GURL(kBarOrigin)); - CreateEchoImpl(child_rfh); + CreateEchoImpl(*child_rfh); DetachFrame(child_rfh); EXPECT_FALSE(is_echo_impl_alive_); } @@ -106,13 +106,13 @@ // deleted. web_contents()->GetController().GetBackForwardCache().DisableForTesting( BackForwardCache::TEST_REQUIRES_NO_CACHING); - CreateEchoImpl(main_rfh_); + CreateEchoImpl(*main_rfh_); SimulateNavigation(main_rfh_, GURL(kBarOrigin)); EXPECT_FALSE(is_echo_impl_alive_); } TEST_F(DocumentServiceTest, SameDocumentNavigation) { - CreateEchoImpl(main_rfh_); + CreateEchoImpl(*main_rfh_); // Must use the same origin to simulate same document navigation. auto navigation_simulator = @@ -124,7 +124,7 @@ } TEST_F(DocumentServiceTest, FailedNavigation) { - CreateEchoImpl(main_rfh_); + CreateEchoImpl(*main_rfh_); auto navigation_simulator = NavigationSimulator::CreateRendererInitiated(GURL(kFooOrigin), main_rfh_); @@ -135,7 +135,7 @@ } TEST_F(DocumentServiceTest, DeleteContents) { - CreateEchoImpl(main_rfh_); + CreateEchoImpl(*main_rfh_); DeleteContents(); EXPECT_FALSE(is_echo_impl_alive_); }
diff --git a/content/browser/renderer_host/media/media_resource_provider_fuchsia.cc b/content/browser/renderer_host/media/media_resource_provider_fuchsia.cc index a2e785f7..3f16dc7 100644 --- a/content/browser/renderer_host/media/media_resource_provider_fuchsia.cc +++ b/content/browser/renderer_host/media/media_resource_provider_fuchsia.cc
@@ -58,12 +58,13 @@ content::RenderFrameHost* frame_host, mojo::PendingReceiver<media::mojom::FuchsiaMediaResourceProvider> receiver) { + CHECK(frame_host); // The object will delete itself when connection to the frame is broken. - new MediaResourceProviderFuchsia(frame_host, std::move(receiver)); + new MediaResourceProviderFuchsia(*frame_host, std::move(receiver)); } MediaResourceProviderFuchsia::MediaResourceProviderFuchsia( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::FuchsiaMediaResourceProvider> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} MediaResourceProviderFuchsia::~MediaResourceProviderFuchsia() = default; @@ -81,7 +82,7 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory = render_frame_host() - ->GetStoragePartition() + .GetStoragePartition() ->GetURLLoaderFactoryForBrowserProcess(); media::CreateFetcherCB create_fetcher_cb = base::BindRepeating(
diff --git a/content/browser/renderer_host/media/media_resource_provider_fuchsia.h b/content/browser/renderer_host/media/media_resource_provider_fuchsia.h index da18db2..b6c0dba 100644 --- a/content/browser/renderer_host/media/media_resource_provider_fuchsia.h +++ b/content/browser/renderer_host/media/media_resource_provider_fuchsia.h
@@ -27,7 +27,7 @@ private: MediaResourceProviderFuchsia( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::FuchsiaMediaResourceProvider> receiver);
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 5915bb7..be33a7a 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -1753,7 +1753,12 @@ // Release the WebUI instances before all else as the WebUI may accesses the // RenderFrameHost during cleanup. + base::WeakPtr<RenderFrameHostImpl> self = GetWeakPtr(); ClearWebUI(); + // `ClearWebUI()` may indirectly call content's embedders and delete this. + // There are no known occurrences of it, so we assume this never happen and + // crash immediately if it does, because there are no easy ways to recover. + CHECK(self); SetLastCommittedSiteInfo(UrlInfo()); @@ -3174,7 +3179,7 @@ SetLifecycleState(LifecycleStateImpl::kReadyToBeDeleted); DCHECK(children_.empty()); - PendingDeletionCheckCompleted(); + PendingDeletionCheckCompleted(); // Can delete |this|. // |this| is deleted. Don't add any more code at this point in the function. return; } @@ -4203,7 +4208,8 @@ // and `~RenderFrameProxyHost()` sends a Mojo `DetachAndDispose()` IPC for // child frame proxies. node_to_delete.reset(); - PendingDeletionCheckCompleted(); + PendingDeletionCheckCompleted(); // Can delete |this|. + // |this| is potentially deleted. Do not add code after this. return; } } @@ -4277,6 +4283,7 @@ if (lifecycle_state() != LifecycleStateImpl::kReadyToBeDeleted) SetLifecycleState(LifecycleStateImpl::kReadyToBeDeleted); PendingDeletionCheckCompleted(); // Can delete |this|. + // |this| is potentially deleted. Do not add code after this. return; } @@ -4293,6 +4300,7 @@ // Some children with no unload handler may be eligible for immediate // deletion. Cut the dead branches now. This is a performance optimization. PendingDeletionCheckCompletedOnSubtree(); // Can delete |this|. + // |this| is potentially deleted. Do not add code after this. } void RenderFrameHostImpl::DidFailLoadWithError(const GURL& url, @@ -4797,6 +4805,7 @@ // Some children with no unload handler may be eligible for immediate // deletion. Cut the dead branches now. This is a performance optimization. PendingDeletionCheckCompletedOnSubtree(); // May delete |this|. + // |this| is potentially deleted. Do not add code after this. } void RenderFrameHostImpl::ProcessBeforeUnloadCompleted( @@ -5019,6 +5028,7 @@ DCHECK_EQ(LifecycleStateImpl::kRunningUnloadHandlers, lifecycle_state()); SetLifecycleState(LifecycleStateImpl::kReadyToBeDeleted); PendingDeletionCheckCompleted(); // Can delete |this|. + // |this| is potentially deleted. Do not add code after this. } void RenderFrameHostImpl::OnUnloaded() { @@ -5029,7 +5039,14 @@ if (unload_event_monitor_timeout_) unload_event_monitor_timeout_->Stop(); + base::WeakPtr<RenderFrameHostImpl> self = GetWeakPtr(); ClearWebUI(); + // See https://crbug.com/1308391. Calling `ClearWebUI()` indirectly call + // content's embedders via a chain of destructors. Some might destroy the + // whole WebContents. + if (!self) { + return; + } bool deleted = frame_tree_node_->render_manager()->DeleteFromPendingList(this); @@ -8416,16 +8433,19 @@ void RenderFrameHostImpl::PendingDeletionCheckCompleted() { if (lifecycle_state() == LifecycleStateImpl::kReadyToBeDeleted && children_.empty()) { - if (is_waiting_for_unload_ack_) - OnUnloaded(); - else + if (is_waiting_for_unload_ack_) { + OnUnloaded(); // Delete |this|. + // Do not add code after this. + } else { parent_->RemoveChild(frame_tree_node_); + } } } void RenderFrameHostImpl::PendingDeletionCheckCompletedOnSubtree() { if (children_.empty()) { PendingDeletionCheckCompleted(); + // |this| is potentially deleted. Do not add code after this. return; } @@ -9366,7 +9386,12 @@ if (entry_bindings != FrameNavigationEntry::kInvalidBindings && web_ui_->GetBindings() != entry_bindings) { RecordAction(base::UserMetricsAction("ProcessSwapBindingsMismatch_RVHM")); + base::WeakPtr<RenderFrameHostImpl> self = GetWeakPtr(); ClearWebUI(); + // `ClearWebUI()` may indirectly call content's embedders and delete this. + // There are no known occurrences of it, so we assume this never happen and + // crash immediately if it does, because there are no easy ways to recover. + CHECK(self); return false; } @@ -9391,7 +9416,8 @@ void RenderFrameHostImpl::ClearWebUI() { web_ui_type_ = WebUI::kNoWebUI; - web_ui_.reset(); + web_ui_.reset(); // This might delete `this`. + // DO NOT ADD CODE after this. } const mojo::Remote<blink::mojom::ImageDownloader>&
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h index 6352a730..85f06ee7 100644 --- a/content/browser/renderer_host/render_frame_host_impl.h +++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -1263,6 +1263,8 @@ bool CreateWebUI(const GURL& dest_url, int entry_bindings); // Destroys WebUI instance and resets related data. + // This indirectly calls content's embedders and may have arbitrary side + // effect, like deleting `this`. void ClearWebUI(); // Returns the Mojo ImageDownloader service.
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc index b924b993..8d9e53e 100644 --- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -6151,12 +6151,12 @@ : public DocumentService<blink::mojom::BrowserInterfaceBroker> { public: DestructorLifetimeDocumentService( - RenderFrameHostImpl* render_frame_host, + RenderFrameHostImpl& render_frame_host, mojo::PendingReceiver<blink::mojom::BrowserInterfaceBroker> receiver, bool& was_destroyed) : DocumentService(render_frame_host, std::move(receiver)), - render_frame_host_(render_frame_host->GetWeakPtr()), - page_(render_frame_host->GetPage().GetWeakPtr()), + render_frame_host_(render_frame_host.GetWeakPtr()), + page_(render_frame_host.GetPage().GetWeakPtr()), was_destroyed_(was_destroyed) {} ~DestructorLifetimeDocumentService() override { @@ -6225,7 +6225,7 @@ bool document_service_was_destroyed = false; mojo::Remote<blink::mojom::BrowserInterfaceBroker> remote; // This is self-owned so the bare new is OK. - new DestructorLifetimeDocumentService(main_frame, + new DestructorLifetimeDocumentService(*main_frame, remote.BindNewPipeAndPassReceiver(), document_service_was_destroyed); @@ -6269,7 +6269,7 @@ bool document_service_was_destroyed = false; mojo::Remote<blink::mojom::BrowserInterfaceBroker> remote; // This is self-owned so the bare new is OK. - new DestructorLifetimeDocumentService(main_frame, + new DestructorLifetimeDocumentService(*main_frame, remote.BindNewPipeAndPassReceiver(), document_service_was_destroyed); @@ -6307,7 +6307,7 @@ bool document_service_was_destroyed = false; mojo::Remote<blink::mojom::BrowserInterfaceBroker> remote; // This is self-owned so the bare new is OK. - new DestructorLifetimeDocumentService(child_frame, + new DestructorLifetimeDocumentService(*child_frame, remote.BindNewPipeAndPassReceiver(), document_service_was_destroyed); @@ -6349,7 +6349,7 @@ bool document_service_was_destroyed = false; mojo::Remote<blink::mojom::BrowserInterfaceBroker> remote; // This is self-owned so the bare new is OK. - new DestructorLifetimeDocumentService(child_frame, + new DestructorLifetimeDocumentService(*child_frame, remote.BindNewPipeAndPassReceiver(), document_service_was_destroyed); @@ -6387,7 +6387,7 @@ bool document_service_was_destroyed = false; mojo::Remote<blink::mojom::BrowserInterfaceBroker> remote; // This is self-owned so the bare new is OK. - new DestructorLifetimeDocumentService(child_frame, + new DestructorLifetimeDocumentService(*child_frame, remote.BindNewPipeAndPassReceiver(), document_service_was_destroyed);
diff --git a/content/browser/sms/sms_fetcher_impl.cc b/content/browser/sms/sms_fetcher_impl.cc index e029092..d19522a4 100644 --- a/content/browser/sms/sms_fetcher_impl.cc +++ b/content/browser/sms/sms_fetcher_impl.cc
@@ -40,49 +40,46 @@ } void SmsFetcherImpl::Subscribe(const OriginList& origin_list, - SmsQueue::Subscriber* subscriber) { + SmsQueue::Subscriber& subscriber) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(subscriber); // Should not be called multiple times for the same subscriber and origin. - DCHECK(!subscribers_.HasSubscriber(origin_list, subscriber)); + DCHECK(!subscribers_.HasSubscriber(origin_list, &subscriber)); - subscribers_.Push(origin_list, subscriber); + subscribers_.Push(origin_list, &subscriber); if (provider_) provider_->Retrieve(nullptr, SmsFetchType::kRemote); } void SmsFetcherImpl::Subscribe(const OriginList& origin_list, - SmsQueue::Subscriber* subscriber, - RenderFrameHost* render_frame_host) { + SmsQueue::Subscriber& subscriber, + RenderFrameHost& render_frame_host) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK(subscriber); - DCHECK(render_frame_host); // This function cannot get called during prerendering because // WebOTPService::Receive() calls this, but WebOTPService is deferred during // prerendering by MojoBinderPolicyApplier. This DCHECK proves we don't have // to worry about prerendering when using WebContents::FromRenderFrameHost() // below (see function comments for WebContents::FromRenderFrameHost() for // more details). - DCHECK_NE(render_frame_host->GetLifecycleState(), + DCHECK_NE(render_frame_host.GetLifecycleState(), RenderFrameHost::LifecycleState::kPrerendering); // Should not be called multiple times for the same subscriber. - DCHECK(!remote_cancel_callbacks_.count(subscriber)); - DCHECK(!subscribers_.HasSubscriber(origin_list, subscriber)); + DCHECK(!remote_cancel_callbacks_.count(&subscriber)); + DCHECK(!subscribers_.HasSubscriber(origin_list, &subscriber)); - subscribers_.Push(origin_list, subscriber); + subscribers_.Push(origin_list, &subscriber); // Fetches a remote SMS. base::OnceClosure cancel_callback = GetContentClient()->browser()->FetchRemoteSms( - WebContents::FromRenderFrameHost(render_frame_host), origin_list, + WebContents::FromRenderFrameHost(&render_frame_host), origin_list, base::BindOnce(&SmsFetcherImpl::OnRemote, weak_ptr_factory_.GetWeakPtr())); if (cancel_callback) - remote_cancel_callbacks_[subscriber] = std::move(cancel_callback); + remote_cancel_callbacks_[&subscriber] = std::move(cancel_callback); // Fetches a local SMS. if (provider_) - provider_->Retrieve(render_frame_host, SmsFetchType::kLocal); + provider_->Retrieve(&render_frame_host, SmsFetchType::kLocal); } void SmsFetcherImpl::Unsubscribe(const OriginList& origin_list,
diff --git a/content/browser/sms/sms_fetcher_impl.h b/content/browser/sms/sms_fetcher_impl.h index c9f92d93..08153fd 100644 --- a/content/browser/sms/sms_fetcher_impl.h +++ b/content/browser/sms/sms_fetcher_impl.h
@@ -42,12 +42,12 @@ // Called by devices that do not have telephony capabilities and exclusively // listen for SMSes received on other devices. void Subscribe(const OriginList& origin_list, - Subscriber* subscriber) override; + Subscriber& subscriber) override; // Called by |WebOTPService| to fetch SMSes retrieved by the SmsProvider from // the requested device. void Subscribe(const OriginList& origin_list, - Subscriber* subscriber, - RenderFrameHost* rfh) override; + Subscriber& subscriber, + RenderFrameHost& rfh) override; void Unsubscribe(const OriginList& origin_list, Subscriber* subscriber) override;
diff --git a/content/browser/sms/sms_fetcher_impl_unittest.cc b/content/browser/sms/sms_fetcher_impl_unittest.cc index 6cb87f9..af427c7d7 100644 --- a/content/browser/sms/sms_fetcher_impl_unittest.cc +++ b/content/browser/sms/sms_fetcher_impl_unittest.cc
@@ -107,7 +107,7 @@ EXPECT_CALL(subscriber, OnReceive(_, "123", UserConsent::kObtained)); - fetcher.Subscribe(OriginList{kOrigin}, &subscriber, main_rfh()); + fetcher.Subscribe(OriginList{kOrigin}, subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, ReceiveFromRemoteProvider) { @@ -129,7 +129,7 @@ EXPECT_CALL(subscriber, OnReceive(_, "123", _)); fetcher.Subscribe(OriginList{url::Origin::Create(GURL("https://a.com"))}, - &subscriber, main_rfh()); + subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, RemoteProviderTimesOut) { @@ -150,7 +150,7 @@ EXPECT_CALL(subscriber, OnReceive(_, _, _)).Times(0); fetcher.Subscribe(OriginList{url::Origin::Create(GURL("https://a.com"))}, - &subscriber, main_rfh()); + subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, ReceiveFromOtherOrigin) { @@ -172,7 +172,7 @@ EXPECT_CALL(subscriber, OnReceive(_, _, _)).Times(0); fetcher.Subscribe(OriginList{url::Origin::Create(GURL("https://a.com"))}, - &subscriber, main_rfh()); + subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, ReceiveFromBothProviders) { @@ -202,7 +202,7 @@ // Expects subscriber to be notified just once. EXPECT_CALL(subscriber, OnReceive(_, "123", UserConsent::kObtained)); - fetcher.Subscribe(OriginList{kOrigin}, &subscriber, main_rfh()); + fetcher.Subscribe(OriginList{kOrigin}, subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, OneOriginTwoSubscribers) { @@ -213,8 +213,8 @@ SmsFetcherImpl fetcher(provider()); - fetcher.Subscribe(OriginList{kOrigin}, &subscriber1, main_rfh()); - fetcher.Subscribe(OriginList{kOrigin}, &subscriber2, main_rfh()); + fetcher.Subscribe(OriginList{kOrigin}, subscriber1, *main_rfh()); + fetcher.Subscribe(OriginList{kOrigin}, subscriber2, *main_rfh()); EXPECT_CALL(subscriber1, OnReceive(_, "123", UserConsent::kObtained)); provider()->NotifyReceive(OriginList{kOrigin}, "123", UserConsent::kObtained); @@ -231,8 +231,8 @@ StrictMock<MockSubscriber> subscriber2; SmsFetcherImpl fetcher(provider()); - fetcher.Subscribe(OriginList{kOrigin1}, &subscriber1, main_rfh()); - fetcher.Subscribe(OriginList{kOrigin2}, &subscriber2, main_rfh()); + fetcher.Subscribe(OriginList{kOrigin1}, subscriber1, *main_rfh()); + fetcher.Subscribe(OriginList{kOrigin2}, subscriber2, *main_rfh()); EXPECT_CALL(subscriber2, OnReceive(_, "456", UserConsent::kObtained)); provider()->NotifyReceive(OriginList{kOrigin2}, "456", @@ -252,8 +252,8 @@ SmsFetcherImpl fetcher1(provider()); SmsFetcherImpl fetcher2(provider()); - fetcher1.Subscribe(OriginList{kOrigin}, &subscriber1, main_rfh()); - fetcher2.Subscribe(OriginList{kOrigin}, &subscriber2, main_rfh()); + fetcher1.Subscribe(OriginList{kOrigin}, subscriber1, *main_rfh()); + fetcher2.Subscribe(OriginList{kOrigin}, subscriber2, *main_rfh()); EXPECT_CALL(subscriber1, OnFailure(FailureType::kPromptTimeout)); EXPECT_CALL(subscriber2, OnFailure(FailureType::kPromptTimeout)).Times(0); @@ -279,7 +279,7 @@ EXPECT_CALL(subscriber, OnFailure(_)); fetcher.Subscribe(OriginList{url::Origin::Create(GURL("https://a.com"))}, - &subscriber, main_rfh()); + subscriber, *main_rfh()); } TEST_F(SmsFetcherImplTest, FetchRemoteSmsCancelled) { @@ -299,7 +299,7 @@ EXPECT_CALL(cancel_callback, Run).Times(0); OriginList origin_list = OriginList{url::Origin::Create(GURL("https://a.com"))}; - fetcher.Subscribe(origin_list, &subscriber, main_rfh()); + fetcher.Subscribe(origin_list, subscriber, *main_rfh()); testing::Mock::VerifyAndClearExpectations(&cancel_callback); EXPECT_CALL(cancel_callback, Run);
diff --git a/content/browser/sms/user_consent_handler.cc b/content/browser/sms/user_consent_handler.cc index d37ce105..39d61e6 100644 --- a/content/browser/sms/user_consent_handler.cc +++ b/content/browser/sms/user_consent_handler.cc
@@ -29,9 +29,9 @@ } PromptBasedUserConsentHandler::PromptBasedUserConsentHandler( - RenderFrameHost* frame_host, + RenderFrameHost& frame_host, const OriginList& origin_list) - : frame_host_{frame_host}, origin_list_{origin_list} {} + : frame_host_(frame_host), origin_list_(origin_list) {} PromptBasedUserConsentHandler::~PromptBasedUserConsentHandler() = default; void PromptBasedUserConsentHandler::RequestUserConsent( @@ -42,7 +42,7 @@ DCHECK_NE(frame_host_->GetLifecycleState(), RenderFrameHost::LifecycleState::kPrerendering); WebContents* web_contents = - content::WebContents::FromRenderFrameHost(frame_host_); + content::WebContents::FromRenderFrameHost(&*frame_host_); if (!web_contents->GetDelegate()) { std::move(on_complete).Run(UserConsentResult::kNoDelegate); return; @@ -60,7 +60,7 @@ on_complete_ = std::move(on_complete); is_prompt_open_ = true; web_contents->GetDelegate()->CreateSmsPrompt( - frame_host_, origin_list_, one_time_code, + &*frame_host_, origin_list_, one_time_code, base::BindOnce(&PromptBasedUserConsentHandler::OnConfirm, weak_ptr_factory_.GetWeakPtr()), base::BindOnce(&PromptBasedUserConsentHandler::OnCancel, @@ -83,4 +83,4 @@ std::move(on_complete_).Run(UserConsentResult::kDenied); } -} // namespace content \ No newline at end of file +} // namespace content
diff --git a/content/browser/sms/user_consent_handler.h b/content/browser/sms/user_consent_handler.h index 1a117920..88ae0d5 100644 --- a/content/browser/sms/user_consent_handler.h +++ b/content/browser/sms/user_consent_handler.h
@@ -6,7 +6,7 @@ #define CONTENT_BROWSER_SMS_USER_CONSENT_HANDLER_H_ #include "base/callback_forward.h" -#include "base/memory/raw_ptr.h" +#include "base/memory/raw_ref.h" #include "content/common/content_export.h" #include "third_party/blink/public/mojom/sms/webotp_service.mojom-shared.h" #include "url/origin.h" @@ -53,7 +53,7 @@ public: using OriginList = std::vector<url::Origin>; - PromptBasedUserConsentHandler(RenderFrameHost* frame_host, + PromptBasedUserConsentHandler(RenderFrameHost& frame_host, const OriginList& origin_list); ~PromptBasedUserConsentHandler() override; @@ -66,7 +66,7 @@ void OnCancel(); private: - raw_ptr<RenderFrameHost> frame_host_; + raw_ref<RenderFrameHost> frame_host_; const OriginList origin_list_; bool is_prompt_open_{false}; CompletionCallback on_complete_; @@ -76,4 +76,4 @@ } // namespace content -#endif // CONTENT_BROWSER_SMS_USER_CONSENT_HANDLER_H_ \ No newline at end of file +#endif // CONTENT_BROWSER_SMS_USER_CONSENT_HANDLER_H_
diff --git a/content/browser/sms/user_consent_handler_unittest.cc b/content/browser/sms/user_consent_handler_unittest.cc index 88a8b5b..b65a4d8b 100644 --- a/content/browser/sms/user_consent_handler_unittest.cc +++ b/content/browser/sms/user_consent_handler_unittest.cc
@@ -88,7 +88,8 @@ ExpectCreateSmsPrompt(main_rfh(), OriginList{origin}, "12345"); CompletionCallback callback; - PromptBasedUserConsentHandler consent_handler{main_rfh(), OriginList{origin}}; + PromptBasedUserConsentHandler consent_handler{*main_rfh(), + OriginList{origin}}; consent_handler.RequestUserConsent("12345", std::move(callback)); } @@ -99,7 +100,8 @@ web_contents()->GetPrimaryMainFrame()->GetLastCommittedOrigin(); ExpectCreateSmsPrompt(main_rfh(), OriginList{origin}, "12345"); - PromptBasedUserConsentHandler consent_handler{main_rfh(), OriginList{origin}}; + PromptBasedUserConsentHandler consent_handler{*main_rfh(), + OriginList{origin}}; EXPECT_FALSE(consent_handler.is_active()); bool succeed; auto callback = base::BindLambdaForTesting([&](UserConsentResult result) { @@ -119,7 +121,8 @@ web_contents()->GetPrimaryMainFrame()->GetLastCommittedOrigin(); ExpectCreateSmsPrompt(main_rfh(), OriginList{origin}, "12345"); - PromptBasedUserConsentHandler consent_handler{main_rfh(), OriginList{origin}}; + PromptBasedUserConsentHandler consent_handler{*main_rfh(), + OriginList{origin}}; EXPECT_FALSE(consent_handler.is_active()); bool cancelled; auto callback = base::BindLambdaForTesting([&](UserConsentResult result) { @@ -144,7 +147,8 @@ ExpectNoSmsPrompt(); - PromptBasedUserConsentHandler consent_handler{main_rfh(), OriginList{origin}}; + PromptBasedUserConsentHandler consent_handler{*main_rfh(), + OriginList{origin}}; bool cancelled; auto callback = base::BindLambdaForTesting([&](UserConsentResult result) { cancelled = (result == UserConsentResult::kNoDelegate); @@ -171,8 +175,8 @@ TEST_F(PromptBasedUserConsentHandlerAlwaysAllowedTest, CancelsWhenInactiveRFH) { NavigateAndCommit(GURL(kTestUrl)); - RenderFrameHost* old_main_frame_host = main_rfh(); - const url::Origin& origin = old_main_frame_host->GetLastCommittedOrigin(); + RenderFrameHost& old_main_frame_host = *main_rfh(); + const url::Origin& origin = old_main_frame_host.GetLastCommittedOrigin(); ExpectNoSmsPrompt();
diff --git a/content/browser/sms/webotp_service.cc b/content/browser/sms/webotp_service.cc index 211cf02..9c418ef5f 100644 --- a/content/browser/sms/webotp_service.cc +++ b/content/browser/sms/webotp_service.cc
@@ -46,12 +46,12 @@ // while the following are invalid: // A.com -> B.com -> A.com (calls WebOTP API) // A.com -> B.com -> C.com (calls WebOTP API) -bool ValidateAndCollectUniqueOrigins(RenderFrameHost* rfh, +bool ValidateAndCollectUniqueOrigins(RenderFrameHost& rfh, OriginList& origin_list) { - url::Origin current_origin = rfh->GetLastCommittedOrigin(); + url::Origin current_origin = rfh.GetLastCommittedOrigin(); origin_list.push_back(current_origin); - RenderFrameHost* parent = rfh->GetParent(); + RenderFrameHost* parent = rfh.GetParent(); while (parent) { url::Origin parent_origin = parent->GetLastCommittedOrigin(); if (!parent_origin.IsSameOriginWith(current_origin)) { @@ -65,11 +65,11 @@ return true; } -bool IsCrossOriginFrame(RenderFrameHost* rfh) { - if (!rfh->GetParent()) +bool IsCrossOriginFrame(RenderFrameHost& rfh) { + if (!rfh.GetParent()) return false; - url::Origin current_origin = rfh->GetLastCommittedOrigin(); - RenderFrameHost* parent = rfh->GetParent(); + url::Origin current_origin = rfh.GetLastCommittedOrigin(); + RenderFrameHost* parent = rfh.GetParent(); while (parent) { url::Origin parent_origin = parent->GetLastCommittedOrigin(); if (!parent_origin.IsSameOriginWith(current_origin)) @@ -121,7 +121,7 @@ WebOTPService::WebOTPService( SmsFetcher* fetcher, const OriginList& origin_list, - RenderFrameHost* host, + RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::WebOTPService> receiver) : DocumentService(host, std::move(receiver)), fetcher_(fetcher), @@ -142,22 +142,31 @@ SmsFetcher* fetcher, RenderFrameHost* host, mojo::PendingReceiver<blink::mojom::WebOTPService> receiver) { - DCHECK(host); + CHECK(host); OriginList origin_list; - if (!ValidateAndCollectUniqueOrigins(host, origin_list)) + if (!ValidateAndCollectUniqueOrigins(*host, origin_list)) return false; // WebOTPService owns itself. It will self-destruct when a mojo interface // error occurs, the render frame host is deleted, or the render frame host // navigates to a new document. - new WebOTPService(fetcher, origin_list, host, std::move(receiver)); + new WebOTPService(fetcher, origin_list, *host, std::move(receiver)); static_cast<RenderFrameHostImpl*>(host) ->OnBackForwardCacheDisablingStickyFeatureUsed( blink::scheduler::WebSchedulerTrackedFeature::kWebOTPService); return true; } +// static +WebOTPService& WebOTPService::CreateForTesting( + SmsFetcher* fetcher, + const OriginList& origins, + RenderFrameHost& frame_host, + mojo::PendingReceiver<blink::mojom::WebOTPService> receiver) { + return *new WebOTPService(fetcher, origins, frame_host, std::move(receiver)); +} + void WebOTPService::WillBeDestroyed(DocumentServiceDestructionReason) { // Resolve any pending callback and invoke clean up to unsubscribe this // service from fetcher. @@ -196,7 +205,7 @@ if (consent_handler && consent_handler->is_active()) return; - fetcher_->Subscribe(origin_list_, this, render_frame_host()); + fetcher_->Subscribe(origin_list_, *this, render_frame_host()); } void WebOTPService::OnReceive(const OriginList& origin_list, @@ -209,9 +218,9 @@ receive_time_ = base::TimeTicks::Now(); RecordSmsReceiveTime(receive_time_ - start_time_, - render_frame_host()->GetPageUkmSourceId()); + render_frame_host().GetPageUkmSourceId()); RecordSmsParsingStatus(SmsParsingStatus::kParsed, - render_frame_host()->GetPageUkmSourceId()); + render_frame_host().GetPageUkmSourceId()); one_time_code_ = one_time_code; // This function cannot get called during prerendering because WebOTPService @@ -219,10 +228,10 @@ // proves we don't have to worry about prerendering when using // WebContents::FromRenderFrameHost() below (see function comments for // WebContents::FromRenderFrameHost() for more details). - DCHECK_NE(render_frame_host()->GetLifecycleState(), + DCHECK_NE(render_frame_host().GetLifecycleState(), RenderFrameHost::LifecycleState::kPrerendering); WebContents* web_contents = - content::WebContents::FromRenderFrameHost(render_frame_host()); + content::WebContents::FromRenderFrameHost(&render_frame_host()); // With UserConsent API, users can see and interact with the permission prompt // when they are on the different page other than the one that calls WebOTP. // This is considered as a bad UX and we should measure how many successful @@ -282,7 +291,7 @@ // Records Sms parsing failures. DCHECK(status != SmsParsingStatus::kParsed); - RecordSmsParsingStatus(status, render_frame_host()->GetPageUkmSourceId()); + RecordSmsParsingStatus(status, render_frame_host().GetPageUkmSourceId()); } void WebOTPService::Abort() { @@ -372,7 +381,7 @@ } } - ukm::SourceId source_id = render_frame_host()->GetPageUkmSourceId(); + ukm::SourceId source_id = render_frame_host().GetPageUkmSourceId(); ukm::UkmRecorder* recorder = ukm::UkmRecorder::Get(); // For privacy, metrics from inner frames are recorded with the top frame's
diff --git a/content/browser/sms/webotp_service.h b/content/browser/sms/webotp_service.h index f61e909..619edc7 100644 --- a/content/browser/sms/webotp_service.h +++ b/content/browser/sms/webotp_service.h
@@ -42,11 +42,11 @@ static bool Create(SmsFetcher*, RenderFrameHost*, mojo::PendingReceiver<blink::mojom::WebOTPService>); - - WebOTPService(SmsFetcher*, - const OriginList&, - RenderFrameHost*, - mojo::PendingReceiver<blink::mojom::WebOTPService>); + static WebOTPService& CreateForTesting( + SmsFetcher*, + const OriginList&, + RenderFrameHost&, + mojo::PendingReceiver<blink::mojom::WebOTPService>); WebOTPService(const WebOTPService&) = delete; WebOTPService& operator=(const WebOTPService&) = delete; @@ -82,6 +82,11 @@ void OnUserConsentComplete(UserConsentResult); private: + WebOTPService(SmsFetcher*, + const OriginList&, + RenderFrameHost&, + mojo::PendingReceiver<blink::mojom::WebOTPService>); + void CleanUp(); UserConsentHandler* CreateConsentHandler(UserConsent); UserConsentHandler* GetConsentHandler();
diff --git a/content/browser/sms/webotp_service_unittest.cc b/content/browser/sms/webotp_service_unittest.cc index c5781bca..698ea59 100644 --- a/content/browser/sms/webotp_service_unittest.cc +++ b/content/browser/sms/webotp_service_unittest.cc
@@ -41,8 +41,8 @@ #include "third_party/blink/public/mojom/sms/webotp_service.mojom-shared.h" #include "third_party/blink/public/mojom/sms/webotp_service.mojom.h" -using base::BindLambdaForTesting; using absl::optional; +using base::BindLambdaForTesting; using blink::mojom::SmsStatus; using blink::mojom::WebOTPService; using std::string; @@ -90,9 +90,9 @@ // up `service_`. A normal std::unique_ptr<T> is not allowed here, since a // DocumentService implementation must be deleted by calling one of the // `*AndDeleteThis()` methods. - service_ = new WebOTPService(&fetcher_, OriginList{origin}, - web_contents->GetPrimaryMainFrame(), - service_remote_.BindNewPipeAndPassReceiver()); + service_ = &WebOTPService::CreateForTesting( + &fetcher_, OriginList{origin}, *web_contents->GetPrimaryMainFrame(), + service_remote_.BindNewPipeAndPassReceiver()); service_->SetConsentHandlerForTesting(consent_handler_.get()); }
diff --git a/content/browser/speculation_rules/speculation_host_impl.cc b/content/browser/speculation_rules/speculation_host_impl.cc index ee0f9a7..b22e979 100644 --- a/content/browser/speculation_rules/speculation_host_impl.cc +++ b/content/browser/speculation_rules/speculation_host_impl.cc
@@ -52,6 +52,7 @@ void SpeculationHostImpl::Bind( RenderFrameHost* frame_host, mojo::PendingReceiver<blink::mojom::SpeculationHost> receiver) { + CHECK(frame_host); // TODO(crbug.com/1190338): Allow SpeculationHostDelegate to participate in // this feature check. if (!base::FeatureList::IsEnabled( @@ -64,21 +65,21 @@ } // DocumentService will destroy this on pipe closure or frame destruction. - new SpeculationHostImpl(frame_host, std::move(receiver)); + new SpeculationHostImpl(*frame_host, std::move(receiver)); } SpeculationHostImpl::SpeculationHostImpl( - RenderFrameHost* frame_host, + RenderFrameHost& frame_host, mojo::PendingReceiver<blink::mojom::SpeculationHost> receiver) : DocumentService(frame_host, std::move(receiver)), - WebContentsObserver(WebContents::FromRenderFrameHost(frame_host)) { + WebContentsObserver(WebContents::FromRenderFrameHost(&frame_host)) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); delegate_ = GetContentClient()->browser()->CreateSpeculationHostDelegate( - *render_frame_host()); + render_frame_host()); if (blink::features::IsPrerender2Enabled()) { - auto* rfhi = static_cast<RenderFrameHostImpl*>(frame_host); - registry_ = rfhi->delegate()->GetPrerenderHostRegistry()->GetWeakPtr(); + auto& rfhi = static_cast<RenderFrameHostImpl&>(frame_host); + registry_ = rfhi.delegate()->GetPrerenderHostRegistry()->GetWeakPtr(); } } @@ -107,15 +108,15 @@ return; // Only handle messages from an active main frame. - if (!render_frame_host()->IsActive()) + if (!render_frame_host().IsActive()) return; - if (render_frame_host()->GetParent()) + if (render_frame_host().GetParent()) return; if (base::FeatureList::IsEnabled(features::kPrefetchUseContentRefactor)) { PrefetchDocumentManager* prefetch_document_manager = PrefetchDocumentManager::GetOrCreateForCurrentDocument( - render_frame_host()); + &render_frame_host()); prefetch_document_manager->ProcessCandidates(candidates); } @@ -207,7 +208,7 @@ } // Actually start the candidates once the diffing is done. - auto* rfhi = static_cast<RenderFrameHostImpl*>(render_frame_host()); + auto& rfhi = static_cast<RenderFrameHostImpl&>(render_frame_host()); for (const auto& it : candidates_to_start) { DCHECK_EQ(it->action, blink::mojom::SpeculationAction::kPrerender); @@ -218,33 +219,33 @@ << "cannot currently start a second prerender with the same URL"; GetContentClient()->browser()->LogWebFeatureForCurrentPage( - rfhi, blink::mojom::WebFeature::kSpeculationRulesPrerender); + &rfhi, blink::mojom::WebFeature::kSpeculationRulesPrerender); // TODO(crbug.com/1176054): Remove it after supporting cross-origin // prerender. - if (!rfhi->GetLastCommittedOrigin().IsSameOriginWith(it->url)) { - rfhi->AddMessageToConsole( + if (!rfhi.GetLastCommittedOrigin().IsSameOriginWith(it->url)) { + rfhi.AddMessageToConsole( blink::mojom::ConsoleMessageLevel::kWarning, base::StringPrintf( "The SpeculationRules API does not support cross-origin " "prerender yet. (initiator origin: %s, prerender origin: %s). " "https://crbug.com/1176054 tracks cross-origin support.", - rfhi->GetLastCommittedOrigin().Serialize().c_str(), + rfhi.GetLastCommittedOrigin().Serialize().c_str(), url::Origin::Create(it->url).Serialize().c_str())); } Referrer referrer(*(it->referrer)); WebContents* web_contents = - WebContents::FromRenderFrameHost(render_frame_host()); + WebContents::FromRenderFrameHost(&render_frame_host()); int prerender_host_id = registry_->CreateAndStartHost( - PrerenderAttributes( - it->url, PrerenderTriggerType::kSpeculationRule, - /*embedder_histogram_suffix=*/"", referrer, - rfhi->GetLastCommittedOrigin(), rfhi->GetLastCommittedURL(), - rfhi->GetProcess()->GetID(), rfhi->GetFrameToken(), - rfhi->GetFrameTreeNodeId(), rfhi->GetPageUkmSourceId(), - ui::PAGE_TRANSITION_LINK, - /*url_match_predicate=*/absl::nullopt), + PrerenderAttributes(it->url, PrerenderTriggerType::kSpeculationRule, + /*embedder_histogram_suffix=*/"", referrer, + rfhi.GetLastCommittedOrigin(), + rfhi.GetLastCommittedURL(), + rfhi.GetProcess()->GetID(), rfhi.GetFrameToken(), + rfhi.GetFrameTreeNodeId(), + rfhi.GetPageUkmSourceId(), ui::PAGE_TRANSITION_LINK, + /*url_match_predicate=*/absl::nullopt), *web_contents); started_prerenders_.insert(end, {.url = it->url, .referrer = referrer,
diff --git a/content/browser/speculation_rules/speculation_host_impl.h b/content/browser/speculation_rules/speculation_host_impl.h index 026c270..e426b0c 100644 --- a/content/browser/speculation_rules/speculation_host_impl.h +++ b/content/browser/speculation_rules/speculation_host_impl.h
@@ -30,8 +30,6 @@ RenderFrameHost* frame_host, mojo::PendingReceiver<blink::mojom::SpeculationHost> receiver); - ~SpeculationHostImpl() override; - SpeculationHostImpl(const SpeculationHostImpl&) = delete; SpeculationHostImpl& operator=(const SpeculationHostImpl&) = delete; SpeculationHostImpl(SpeculationHostImpl&&) = delete; @@ -42,8 +40,9 @@ private: SpeculationHostImpl( - RenderFrameHost* frame_host, + RenderFrameHost& frame_host, mojo::PendingReceiver<blink::mojom::SpeculationHost> receiver); + ~SpeculationHostImpl() override; void UpdateSpeculationCandidates( std::vector<blink::mojom::SpeculationCandidatePtr> candidates) override;
diff --git a/content/browser/wake_lock/wake_lock_service_impl.cc b/content/browser/wake_lock/wake_lock_service_impl.cc index c92846de..db3c2d5 100644 --- a/content/browser/wake_lock/wake_lock_service_impl.cc +++ b/content/browser/wake_lock/wake_lock_service_impl.cc
@@ -13,8 +13,8 @@ void WakeLockServiceImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::WakeLockService> receiver) { - DCHECK(render_frame_host); - new WakeLockServiceImpl(render_frame_host, std::move(receiver)); + CHECK(render_frame_host); + new WakeLockServiceImpl(*render_frame_host, std::move(receiver)); } void WakeLockServiceImpl::GetWakeLock( @@ -23,7 +23,7 @@ const std::string& description, mojo::PendingReceiver<device::mojom::WakeLock> receiver) { device::mojom::WakeLockContext* wake_lock_context = - WebContents::FromRenderFrameHost(render_frame_host()) + WebContents::FromRenderFrameHost(&render_frame_host()) ->GetWakeLockContext(); if (!wake_lock_context) @@ -34,7 +34,7 @@ } WakeLockServiceImpl::WakeLockServiceImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::WakeLockService> receiver) : DocumentService(render_frame_host, std::move(receiver)) {}
diff --git a/content/browser/wake_lock/wake_lock_service_impl.h b/content/browser/wake_lock/wake_lock_service_impl.h index 93e735d..54f864dd 100644 --- a/content/browser/wake_lock/wake_lock_service_impl.h +++ b/content/browser/wake_lock/wake_lock_service_impl.h
@@ -27,7 +27,7 @@ mojo::PendingReceiver<device::mojom::WakeLock>) final; private: - WakeLockServiceImpl(RenderFrameHost*, + WakeLockServiceImpl(RenderFrameHost&, mojo::PendingReceiver<blink::mojom::WakeLockService>); };
diff --git a/content/browser/webauth/authenticator_impl.cc b/content/browser/webauth/authenticator_impl.cc index b6b86c0..64588c1 100644 --- a/content/browser/webauth/authenticator_impl.cc +++ b/content/browser/webauth/authenticator_impl.cc
@@ -16,22 +16,29 @@ void AuthenticatorImpl::Create( RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::Authenticator> receiver) { + CHECK(render_frame_host); // Avoid creating the service if the RenderFrameHost isn't active, e.g. if a // request arrives during a navigation. if (!render_frame_host->IsActive()) { return; } - // AuthenticatorImpl owns itself. It self-destructs when the RenderFrameHost // navigates or is deleted. See DocumentService for details. - DCHECK(render_frame_host); new AuthenticatorImpl( - render_frame_host, std::move(receiver), + *render_frame_host, std::move(receiver), std::make_unique<AuthenticatorCommon>(render_frame_host)); } +void AuthenticatorImpl::CreateForTesting( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::Authenticator> receiver, + std::unique_ptr<AuthenticatorCommon> authenticator_common) { + new AuthenticatorImpl(render_frame_host, std::move(receiver), + std::move(authenticator_common)); +} + AuthenticatorImpl::AuthenticatorImpl( - RenderFrameHost* render_frame_host, + RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::Authenticator> receiver, std::unique_ptr<AuthenticatorCommon> authenticator_common) : DocumentService(render_frame_host, std::move(receiver)),
diff --git a/content/browser/webauth/authenticator_impl.h b/content/browser/webauth/authenticator_impl.h index fe6e5b9d..3aecd186 100644 --- a/content/browser/webauth/authenticator_impl.h +++ b/content/browser/webauth/authenticator_impl.h
@@ -28,6 +28,11 @@ RenderFrameHost* render_frame_host, mojo::PendingReceiver<blink::mojom::Authenticator> receiver); + static void CreateForTesting( + RenderFrameHost& render_frame_host, + mojo::PendingReceiver<blink::mojom::Authenticator> receiver, + std::unique_ptr<AuthenticatorCommon> authenticator_common); + AuthenticatorImpl(const AuthenticatorImpl&) = delete; AuthenticatorImpl& operator=(const AuthenticatorImpl&) = delete; @@ -35,7 +40,7 @@ friend class AuthenticatorImplTest; friend class AuthenticatorImplRequestDelegateTest; - AuthenticatorImpl(RenderFrameHost* render_frame_host, + AuthenticatorImpl(RenderFrameHost& render_frame_host, mojo::PendingReceiver<blink::mojom::Authenticator> receiver, std::unique_ptr<AuthenticatorCommon> authenticator_common); ~AuthenticatorImpl() override;
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc index edcf6fe2..44bb3c8 100644 --- a/content/browser/webauth/authenticator_impl_unittest.cc +++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -3718,10 +3718,10 @@ mojo::Remote<blink::mojom::Authenticator> authenticator; // AuthenticatorImpl owns itself. It self-destructs when the RenderFrameHost // navigates or is deleted. - new AuthenticatorImpl(main_rfh(), - authenticator.BindNewPipeAndPassReceiver(), - std::make_unique<FakeAuthenticatorCommon>( - main_rfh(), std::move(delegate))); + AuthenticatorImpl::CreateForTesting( + *main_rfh(), authenticator.BindNewPipeAndPassReceiver(), + std::make_unique<FakeAuthenticatorCommon>(main_rfh(), + std::move(delegate))); return authenticator; } };
diff --git a/content/browser/webid/federated_auth_request_impl.cc b/content/browser/webid/federated_auth_request_impl.cc index f3ea9ae..f8bc5df 100644 --- a/content/browser/webid/federated_auth_request_impl.cc +++ b/content/browser/webid/federated_auth_request_impl.cc
@@ -46,9 +46,9 @@ // TODO(yigu): We need to make sure the delay is greater than the time required // for a successful flow based on `Blink.FedCm.Timing.TurnaroundTime`. // https://crbug.com/1298316. -// TODO(crbug.com/1329633): We temporarily use 120s to make the UI more accessible. -// We should try not to dismiss it automatically if a user is interacting with it -// using keyboard or accessibility tools. +// TODO(crbug.com/1329633): We temporarily use 120s to make the UI more +// accessible. We should try not to dismiss it automatically if a user is +// interacting with it using keyboard or accessibility tools. static constexpr base::TimeDelta kRequestRejectionDelay = base::Seconds(120); // Maximum number of provider URLs in the manifest list. @@ -226,10 +226,9 @@ } // namespace FederatedAuthRequestImpl::FederatedAuthRequestImpl( - RenderFrameHostImpl* host, + RenderFrameHost& host, mojo::PendingReceiver<blink::mojom::FederatedAuthRequest> receiver) : DocumentService(host, std::move(receiver)), - render_frame_host_(host), delay_timer_(FROM_HERE, kRequestRejectionDelay, this, @@ -251,7 +250,7 @@ // closed or left the page while the UI is displayed. if (!errors_logged_to_console_) { RecordRequestTokenStatus(TokenStatus::kUnhandledRequest, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); } CompleteRequest(FederatedAuthRequestResult::kError, "", @@ -261,14 +260,21 @@ // static void FederatedAuthRequestImpl::Create( - RenderFrameHostImpl* host, + RenderFrameHost* host, mojo::PendingReceiver<blink::mojom::FederatedAuthRequest> receiver) { - DCHECK(host); + CHECK(host); // FederatedAuthRequestImpl owns itself. It will self-destruct when a mojo // interface error occurs, the RenderFrameHost is deleted, or the // RenderFrameHost navigates to a new document. - new FederatedAuthRequestImpl(host, std::move(receiver)); + new FederatedAuthRequestImpl(*host, std::move(receiver)); +} + +// static +FederatedAuthRequestImpl& FederatedAuthRequestImpl::CreateForTesting( + RenderFrameHost& host, + mojo::PendingReceiver<blink::mojom::FederatedAuthRequest> receiver) { + return *new FederatedAuthRequestImpl(host, std::move(receiver)); } void FederatedAuthRequestImpl::RequestToken(const GURL& provider, @@ -278,7 +284,7 @@ RequestTokenCallback callback) { if (HasPendingRequest()) { RecordRequestTokenStatus(TokenStatus::kTooManyRequests, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); std::move(callback).Run(RequestTokenStatus::kErrorTooManyRequests, ""); return; @@ -302,7 +308,7 @@ network_manager_ = CreateNetworkManager(provider); if (!network_manager_) { RecordRequestTokenStatus(TokenStatus::kNoNetworkManager, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); // TODO(yigu): this is due to provider url being non-secure. We should // reject early in the renderer process. @@ -343,7 +349,7 @@ if (error_token_status) { RecordRequestTokenStatus(*error_token_status, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(request_result, "", /*should_call_callback=*/false); return; @@ -361,7 +367,7 @@ // Dialog will be hidden by the destructor for request_dialog_controller_, // triggered by CompleteRequest. RecordRequestTokenStatus(TokenStatus::kAborted, - render_frame_host_->GetPageUkmSourceId(), provider_); + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(FederatedAuthRequestResult::kErrorCanceled, "", /*should_call_callback=*/true); } @@ -392,7 +398,7 @@ if (base::ranges::any_of(logout_requests, [](auto& request) { return !request->url.is_valid(); })) { - bad_message::ReceivedBadMessage(render_frame_host_->GetProcess(), + bad_message::ReceivedBadMessage(render_frame_host().GetProcess(), bad_message::FARI_LOGOUT_BAD_ENDPOINT); CompleteLogoutRequest(LogoutRpsStatus::kError); return; @@ -476,7 +482,7 @@ switch (status) { case IdpNetworkRequestManager::FetchStatus::kHttpNotFoundError: { RecordRequestTokenStatus(TokenStatus::kManifestListHttpNotFound, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestListHttpNotFound, @@ -486,7 +492,7 @@ } case IdpNetworkRequestManager::FetchStatus::kNoResponseError: { RecordRequestTokenStatus(TokenStatus::kManifestListNoResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestListNoResponse, "", @@ -495,7 +501,7 @@ } case IdpNetworkRequestManager::FetchStatus::kInvalidResponseError: { RecordRequestTokenStatus(TokenStatus::kManifestListInvalidResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestListInvalidResponse, @@ -514,7 +520,7 @@ if (urls.size() > kMaxProvidersInManifestList) { RecordRequestTokenStatus(TokenStatus::kManifestListTooBig, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(FederatedAuthRequestResult::kErrorManifestListTooBig, "", /*should_call_callback=*/false); @@ -546,7 +552,7 @@ if (!provider_url_is_valid) { RecordRequestTokenStatus(TokenStatus::kManifestNotInManifestList, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(FederatedAuthRequestResult::kErrorManifestNotInManifestList, "", /*should_call_callback=*/false); @@ -565,7 +571,7 @@ switch (status) { case IdpNetworkRequestManager::FetchStatus::kHttpNotFoundError: { RecordRequestTokenStatus(TokenStatus::kManifestHttpNotFound, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestHttpNotFound, "", @@ -574,7 +580,7 @@ } case IdpNetworkRequestManager::FetchStatus::kNoResponseError: { RecordRequestTokenStatus(TokenStatus::kManifestNoResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestNoResponse, "", @@ -583,7 +589,7 @@ } case IdpNetworkRequestManager::FetchStatus::kInvalidResponseError: { RecordRequestTokenStatus(TokenStatus::kManifestInvalidResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestInvalidResponse, "", @@ -622,10 +628,10 @@ if (!is_accounts_valid) { message += "\"accounts_endpoint\"\n"; } - render_frame_host_->AddMessageToConsole( + render_frame_host().AddMessageToConsole( blink::mojom::ConsoleMessageLevel::kError, message); RecordRequestTokenStatus(TokenStatus::kManifestInvalidResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingManifestInvalidResponse, "", @@ -667,7 +673,7 @@ switch (status) { case IdpNetworkRequestManager::FetchStatus::kHttpNotFoundError: { RecordRequestTokenStatus(TokenStatus::kAccountsHttpNotFound, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingAccountsHttpNotFound, "", @@ -676,7 +682,7 @@ } case IdpNetworkRequestManager::FetchStatus::kNoResponseError: { RecordRequestTokenStatus(TokenStatus::kAccountsNoResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingAccountsNoResponse, "", @@ -685,7 +691,7 @@ } case IdpNetworkRequestManager::FetchStatus::kInvalidResponseError: { RecordRequestTokenStatus(TokenStatus::kAccountsInvalidResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingAccountsInvalidResponse, "", @@ -694,7 +700,7 @@ } case IdpNetworkRequestManager::FetchStatus::kSuccess: { WebContents* rp_web_contents = - WebContents::FromRenderFrameHost(render_frame_host_); + WebContents::FromRenderFrameHost(&render_frame_host()); bool is_visible = rp_web_contents && (rp_web_contents->GetVisibility() == Visibility::VISIBLE); RecordWebContentsVisibilityUponReadyToShowDialog(is_visible); @@ -739,7 +745,7 @@ GURL(client_metadata_.privacy_policy_url)}; show_accounts_dialog_time_ = base::TimeTicks::Now(); RecordShowAccountsDialogTime(show_accounts_dialog_time_ - start_time_, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); request_dialog_controller_->ShowAccountsDialog( @@ -766,7 +772,7 @@ if (GetApiPermissionContext()->GetApiPermissionStatus(origin()) != FederatedApiPermissionStatus::GRANTED) { RecordRequestTokenStatus(TokenStatus::kDisabledInSettings, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(FederatedAuthRequestResult::kErrorDisabledInSettings, "", @@ -778,10 +784,10 @@ if (account_id.empty()) { base::TimeTicks dismiss_dialog_time = base::TimeTicks::Now(); RecordCancelOnDialogTime(dismiss_dialog_time - show_accounts_dialog_time_, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); RecordRequestTokenStatus(TokenStatus::kNotSelectAccount, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); if (should_embargo && GetApiPermissionContext()) { @@ -802,7 +808,7 @@ account_id_ = account_id; select_account_time_ = base::TimeTicks::Now(); RecordContinueOnDialogTime(select_account_time_ - show_accounts_dialog_time_, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); network_manager_->SendTokenRequest( @@ -845,7 +851,7 @@ switch (status) { case IdpNetworkRequestManager::FetchStatus::kHttpNotFoundError: { RecordRequestTokenStatus(TokenStatus::kIdTokenHttpNotFound, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingIdTokenHttpNotFound, "", @@ -854,7 +860,7 @@ } case IdpNetworkRequestManager::FetchStatus::kNoResponseError: { RecordRequestTokenStatus(TokenStatus::kIdTokenNoResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingIdTokenNoResponse, "", @@ -863,7 +869,7 @@ } case IdpNetworkRequestManager::FetchStatus::kInvalidRequestError: { RecordRequestTokenStatus(TokenStatus::kIdTokenInvalidRequest, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingIdTokenInvalidRequest, "", @@ -872,7 +878,7 @@ } case IdpNetworkRequestManager::FetchStatus::kInvalidResponseError: { RecordRequestTokenStatus(TokenStatus::kIdTokenInvalidResponse, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest( FederatedAuthRequestResult::kErrorFetchingIdTokenInvalidResponse, "", @@ -906,9 +912,9 @@ RecordTokenResponseAndTurnaroundTime( token_response_time_ - select_account_time_, token_response_time_ - start_time_, - render_frame_host_->GetPageUkmSourceId(), provider_); + render_frame_host().GetPageUkmSourceId(), provider_); RecordRequestTokenStatus(TokenStatus::kSuccess, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); CompleteRequest(FederatedAuthRequestResult::kSuccess, token, /*should_call_callback=*/true); @@ -1013,7 +1019,7 @@ blink::mojom::FederatedAuthRequestIssueDetails::New(result); details->federated_auth_request_details = std::move(federated_auth_request_details); - render_frame_host_->ReportInspectorIssue( + render_frame_host().ReportInspectorIssue( blink::mojom::InspectorIssueInfo::New( blink::mojom::InspectorIssueCode::kFederatedAuthRequestIssue, std::move(details))); @@ -1022,7 +1028,7 @@ void FederatedAuthRequestImpl::AddConsoleErrorMessage( FederatedAuthRequestResult result) { std::string message = GetConsoleErrorMessage(result); - render_frame_host_->AddMessageToConsole( + render_frame_host().AddMessageToConsole( blink::mojom::ConsoleMessageLevel::kError, message); } @@ -1044,7 +1050,8 @@ if (mock_network_manager_) return std::move(mock_network_manager_); - return IdpNetworkRequestManager::Create(provider, render_frame_host_); + return IdpNetworkRequestManager::Create( + provider, static_cast<RenderFrameHostImpl*>(&render_frame_host())); } std::unique_ptr<IdentityRequestDialogController> @@ -1102,7 +1109,8 @@ FederatedAuthRequestImpl::GetActiveSessionPermissionContext() { if (!active_session_permission_delegate_) { active_session_permission_delegate_ = - render_frame_host_->GetBrowserContext() + render_frame_host() + .GetBrowserContext() ->GetFederatedIdentityActiveSessionPermissionContext(); } return active_session_permission_delegate_; @@ -1111,7 +1119,8 @@ FederatedIdentityApiPermissionContextDelegate* FederatedAuthRequestImpl::GetApiPermissionContext() { if (!api_permission_delegate_) { - api_permission_delegate_ = render_frame_host_->GetBrowserContext() + api_permission_delegate_ = render_frame_host() + .GetBrowserContext() ->GetFederatedIdentityApiPermissionContext(); } return api_permission_delegate_; @@ -1121,7 +1130,8 @@ FederatedAuthRequestImpl::GetSharingPermissionContext() { if (!sharing_permission_delegate_) { sharing_permission_delegate_ = - render_frame_host_->GetBrowserContext() + render_frame_host() + .GetBrowserContext() ->GetFederatedIdentitySharingPermissionContext(); } return sharing_permission_delegate_; @@ -1140,7 +1150,7 @@ // and then time out without user interaction. if (!errors_logged_to_console_) { RecordRequestTokenStatus(TokenStatus::kUserInterfaceTimedOut, - render_frame_host_->GetPageUkmSourceId(), + render_frame_host().GetPageUkmSourceId(), provider_); } CompleteRequest(FederatedAuthRequestResult::kError, "",
diff --git a/content/browser/webid/federated_auth_request_impl.h b/content/browser/webid/federated_auth_request_impl.h index 16b7fda..17f11bab 100644 --- a/content/browser/webid/federated_auth_request_impl.h +++ b/content/browser/webid/federated_auth_request_impl.h
@@ -28,7 +28,7 @@ class FederatedIdentityActiveSessionPermissionContextDelegate; class FederatedIdentityApiPermissionContextDelegate; class FederatedIdentitySharingPermissionContextDelegate; -class RenderFrameHostImpl; +class RenderFrameHost; // FederatedAuthRequestImpl handles mojo connections from the renderer to // fulfill WebID-related requests. @@ -41,8 +41,11 @@ class CONTENT_EXPORT FederatedAuthRequestImpl : public DocumentService<blink::mojom::FederatedAuthRequest> { public: - static void Create(RenderFrameHostImpl*, + static void Create(RenderFrameHost*, mojo::PendingReceiver<blink::mojom::FederatedAuthRequest>); + static FederatedAuthRequestImpl& CreateForTesting( + RenderFrameHost&, + mojo::PendingReceiver<blink::mojom::FederatedAuthRequest>); FederatedAuthRequestImpl(const FederatedAuthRequestImpl&) = delete; FederatedAuthRequestImpl& operator=(const FederatedAuthRequestImpl&) = delete; @@ -78,7 +81,7 @@ friend class FederatedAuthRequestImplTest; FederatedAuthRequestImpl( - RenderFrameHostImpl*, + RenderFrameHost&, mojo::PendingReceiver<blink::mojom::FederatedAuthRequest>); bool HasPendingRequest() const; @@ -143,8 +146,6 @@ bool ShouldCompleteRequestImmediately(); - const raw_ptr<RenderFrameHostImpl> render_frame_host_ = nullptr; - std::unique_ptr<IdpNetworkRequestManager> network_manager_; std::unique_ptr<IdentityRequestDialogController> request_dialog_controller_;
diff --git a/content/browser/webid/federated_auth_request_impl_unittest.cc b/content/browser/webid/federated_auth_request_impl_unittest.cc index bbb933e..50927afd6 100644 --- a/content/browser/webid/federated_auth_request_impl_unittest.cc +++ b/content/browser/webid/federated_auth_request_impl_unittest.cc
@@ -516,8 +516,8 @@ static_cast<TestWebContents*>(web_contents()) ->NavigateAndCommit(GURL(kRpUrl), ui::PAGE_TRANSITION_LINK); - federated_auth_request_impl_ = new FederatedAuthRequestImpl( - main_test_rfh(), request_remote_.BindNewPipeAndPassReceiver()); + federated_auth_request_impl_ = &FederatedAuthRequestImpl::CreateForTesting( + *main_test_rfh(), request_remote_.BindNewPipeAndPassReceiver()); auto mock_dialog_controller = std::make_unique<NiceMock<MockIdentityRequestDialogController>>(); mock_dialog_controller_ = mock_dialog_controller.get();
diff --git a/content/browser/webui/web_ui_browsertest.cc b/content/browser/webui/web_ui_browsertest.cc index 8581c8b..21547f6d6 100644 --- a/content/browser/webui/web_ui_browsertest.cc +++ b/content/browser/webui/web_ui_browsertest.cc
@@ -29,6 +29,7 @@ #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_contents.h" +#include "content/public/browser/web_ui_controller.h" #include "content/public/browser/web_ui_data_source.h" #include "content/public/browser/web_ui_message_handler.h" #include "content/public/browser/webui_config_map.h" @@ -463,6 +464,48 @@ EXECUTE_SCRIPT_DEFAULT_OPTIONS, 1 /* world_id */)); } +// Regression test for: https://crbug.com/1308391 +// Check content/ supports its embedders closing WebContent during WebUI +// destruction, after the RenderFrameHost owning it has unloaded. +IN_PROC_BROWSER_TEST_F(WebUIImplBrowserTest, + SynchronousWebContentDeletionInUnload) { + static std::unique_ptr<WebContents> web_contents; + web_contents = WebContents::Create( + WebContents::CreateParams(shell()->web_contents()->GetBrowserContext())); + // Install a WebUI. When destroyed, it executes a callback releasing the + // WebContent. + class Config : public WebUIConfig { + public: + Config() : WebUIConfig(kChromeUIUntrustedScheme, "test-host") {} + std::unique_ptr<WebUIController> CreateWebUIController( + WebUI* web_ui) final { + class Controller : public WebUIController { + public: + explicit Controller(WebUI* web_ui) : WebUIController(web_ui) { + AddUntrustedDataSource(web_contents->GetBrowserContext(), + "test-host"); + } + ~Controller() override { web_contents.reset(); } + }; + return std::make_unique<Controller>(web_ui); + }; + }; + + content::WebUIConfigMap::GetInstance().AddUntrustedWebUIConfig( + std::make_unique<Config>()); + ASSERT_TRUE(NavigateToURL(web_contents.get(), + GetChromeUntrustedUIURL("test-host/title1.html"))); + RenderFrameHost* main_rfh = web_contents->GetPrimaryMainFrame(); + RenderFrameDeletedObserver rfh_deleted(web_contents->GetPrimaryMainFrame()); + RenderFrameDeletedObserver delete_observer(main_rfh); + ASSERT_TRUE(embedded_test_server()->Start()); + GURL dummy_url = embedded_test_server()->GetURL("/simple_page.html"); + web_contents->GetController().LoadURL( + dummy_url, content::Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); + delete_observer.WaitUntilDeleted(); + ASSERT_FALSE(web_contents); +} + class WebUIRequestSchemesTest : public ContentBrowserTest { public: WebUIRequestSchemesTest() = default;
diff --git a/content/common/partition_alloc_support.cc b/content/common/partition_alloc_support.cc index 66d91e4..cf99002 100644 --- a/content/common/partition_alloc_support.cc +++ b/content/common/partition_alloc_support.cc
@@ -449,7 +449,7 @@ if (base::FeatureList::IsEnabled( base::features::kPartitionAllocSortActiveSlotSpans)) { - partition_alloc::PartitionRoot< + base::PartitionRoot< partition_alloc::internal::ThreadSafe>::EnableSortActiveSlotSpans(); } }
diff --git a/content/public/browser/document_service.h b/content/public/browser/document_service.h index 8dfbad7..66651ae 100644 --- a/content/public/browser/document_service.h +++ b/content/public/browser/document_service.h
@@ -65,7 +65,7 @@ template <typename Interface> class DocumentService : public Interface, public internal::DocumentServiceBase { public: - DocumentService(RenderFrameHost* render_frame_host, + DocumentService(RenderFrameHost& render_frame_host, mojo::PendingReceiver<Interface> pending_receiver) : DocumentServiceBase(render_frame_host), receiver_(this, std::move(pending_receiver)) { @@ -117,7 +117,7 @@ // navigation, so it is always safe to simply call `GetLastCommittedOrigin()` // and `GetLastCommittedURL()` directly. const url::Origin& origin() const { - return render_frame_host()->GetLastCommittedOrigin(); + return render_frame_host().GetLastCommittedOrigin(); } // Reports a bad message and deletes `this`. @@ -137,8 +137,7 @@ delete this; } - // Returns the RenderFrameHost tracked by this object. Guaranteed to never be - // null. + // Returns a reference to the RenderFrameHost tracked by this object. using DocumentServiceBase::render_frame_host; // Subclasses can use this to check thread safety.
diff --git a/content/public/browser/document_service_internal.cc b/content/public/browser/document_service_internal.cc index 2432a25..bd9dbd51 100644 --- a/content/public/browser/document_service_internal.cc +++ b/content/public/browser/document_service_internal.cc
@@ -6,21 +6,17 @@ #include "content/browser/renderer_host/render_frame_host_impl.h" -namespace content { +namespace content::internal { -namespace internal { - -DocumentServiceBase::DocumentServiceBase(RenderFrameHost* render_frame_host) +DocumentServiceBase::DocumentServiceBase(RenderFrameHost& render_frame_host) : render_frame_host_(render_frame_host) { - static_cast<RenderFrameHostImpl*>(render_frame_host_) - ->AddDocumentService(this, {}); + static_cast<RenderFrameHostImpl&>(*render_frame_host_) + .AddDocumentService(this, {}); } DocumentServiceBase::~DocumentServiceBase() { - static_cast<RenderFrameHostImpl*>(render_frame_host_) - ->RemoveDocumentService(this, {}); + static_cast<RenderFrameHostImpl&>(*render_frame_host_) + .RemoveDocumentService(this, {}); } -} // namespace internal - -} // namespace content +} // namespace content::internal
diff --git a/content/public/browser/document_service_internal.h b/content/public/browser/document_service_internal.h index e245c32..0adb438 100644 --- a/content/public/browser/document_service_internal.h +++ b/content/public/browser/document_service_internal.h
@@ -5,7 +5,7 @@ #ifndef CONTENT_PUBLIC_BROWSER_DOCUMENT_SERVICE_INTERNAL_H_ #define CONTENT_PUBLIC_BROWSER_DOCUMENT_SERVICE_INTERNAL_H_ -#include "base/memory/raw_ptr.h" +#include "base/memory/raw_ref.h" #include "content/common/content_export.h" namespace content { @@ -38,12 +38,12 @@ virtual void WillBeDestroyed(DocumentServiceDestructionReason reason) {} protected: - explicit DocumentServiceBase(RenderFrameHost* render_frame_host); + explicit DocumentServiceBase(RenderFrameHost& render_frame_host); - RenderFrameHost* render_frame_host() const { return render_frame_host_; } + RenderFrameHost& render_frame_host() const { return *render_frame_host_; } private: - const raw_ptr<RenderFrameHost> render_frame_host_ = nullptr; + const raw_ref<RenderFrameHost> render_frame_host_; }; } // namespace internal
diff --git a/content/public/browser/sms_fetcher.h b/content/public/browser/sms_fetcher.h index 983d818..ad688f3a5 100644 --- a/content/public/browser/sms_fetcher.h +++ b/content/public/browser/sms_fetcher.h
@@ -82,14 +82,14 @@ // have telephony capabilities and exclusively listen for SMSes received // on other devices. virtual void Subscribe(const OriginList& origin_list, - Subscriber* subscriber) = 0; + Subscriber& subscriber) = 0; // Subscribes to incoming SMSes from SmsProvider for telephony // devices that can receive SMSes locally and can show a permission prompt. // TODO(yigu): This API is used in content/ only. We should move it to the // SmsFetcherImpl per guideline. https://crbug.com/1136062. virtual void Subscribe(const OriginList& origin_list, - Subscriber* subscriber, - RenderFrameHost* render_frame_host) = 0; + Subscriber& subscriber, + RenderFrameHost& render_frame_host) = 0; virtual void Unsubscribe(const OriginList& origin_list, Subscriber* subscriber) = 0; // TODO(yigu): This API is used in content/ only. We should move it to the
diff --git a/content/test/fuzzer/audio_context_manager_mojolpm_fuzzer.cc b/content/test/fuzzer/audio_context_manager_mojolpm_fuzzer.cc index 32f4773..9eb9660 100644 --- a/content/test/fuzzer/audio_context_manager_mojolpm_fuzzer.cc +++ b/content/test/fuzzer/audio_context_manager_mojolpm_fuzzer.cc
@@ -11,7 +11,7 @@ #include "base/no_destructor.h" #include "base/test/simple_test_tick_clock.h" #include "content/browser/media/webaudio/audio_context_manager_impl.h" // [nogncheck] -#include "content/browser/site_instance_impl.h" // nogncheck +#include "content/browser/site_instance_impl.h" // nogncheck #include "content/public/browser/audio_service.h" #include "content/public/browser/site_instance.h" #include "content/public/common/content_client.h" @@ -173,8 +173,8 @@ mojo::PendingReceiver<blink::mojom::AudioContextManager> receiver) { clock_.SetNowTicks(base::TimeTicks::Now()); - audio_context_manager_ = new content::AudioContextManagerImpl( - render_frame_host_, std::move(receiver)); + audio_context_manager_ = &content::AudioContextManagerImpl::CreateForTesting( + *render_frame_host_, std::move(receiver)); audio_context_manager_->set_clock_for_testing(&clock_); }
diff --git a/content/test/test_blink_web_unit_test_support.cc b/content/test/test_blink_web_unit_test_support.cc index 72c763b..4d8524c 100644 --- a/content/test/test_blink_web_unit_test_support.cc +++ b/content/test/test_blink_web_unit_test_support.cc
@@ -116,8 +116,9 @@ gin::V8Initializer::LoadV8Snapshot(kSnapshotType); #endif - // Test shell always exposes the GC. - std::string v8_flags("--expose-gc"); + // Test shell always exposes the GC, and some tests need to modify flags so do + // not freeze them on initialization. + std::string v8_flags("--expose-gc --no-freeze-flags-after-init"); blink::Platform::InitializeBlink(); scoped_refptr<base::SingleThreadTaskRunner> dummy_task_runner;
diff --git a/docs/webui_in_chrome.md b/docs/webui_in_chrome.md index 5b838397..ec1661c 100644 --- a/docs/webui_in_chrome.md +++ b/docs/webui_in_chrome.md
@@ -129,7 +129,7 @@ "hello_world.html.ts" ] deps = [ - "//third_party/polymer/v3_0:library," + "//third_party/polymer/v3_0:library", "//ui/webui/resources:library", ] extra_deps = [ @@ -161,8 +161,8 @@ ] input_files_base_dir = rebase_path(".", "//") deps = [ ":build_ts" ] - # build_ts below must match the target name for the TS build stage. - manifest_files = [ "$target_gen_dir/build_ts.manifest" ] + manifest_files = filter_include( + get_target_outputs(":build_ts"), [ "*.manifest" ]) } grit("resources") {
diff --git a/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.cc b/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.cc index 469d6df..e1f48cadb 100644 --- a/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.cc +++ b/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.cc
@@ -20,12 +20,13 @@ void WebEngineMediaResourceProviderImpl::Bind( content::RenderFrameHost* frame_host, mojo::PendingReceiver<mojom::WebEngineMediaResourceProvider> receiver) { + CHECK(frame_host); // The object will delete itself when connection to the frame is broken. - new WebEngineMediaResourceProviderImpl(frame_host, std::move(receiver)); + new WebEngineMediaResourceProviderImpl(*frame_host, std::move(receiver)); } WebEngineMediaResourceProviderImpl::WebEngineMediaResourceProviderImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::WebEngineMediaResourceProvider> receiver) : DocumentService(render_frame_host, std::move(receiver)) {} @@ -34,7 +35,7 @@ void WebEngineMediaResourceProviderImpl::ShouldUseAudioConsumer( ShouldUseAudioConsumerCallback callback) { - auto* frame_impl = FrameImpl::FromRenderFrameHost(render_frame_host()); + auto* frame_impl = FrameImpl::FromRenderFrameHost(&render_frame_host()); DCHECK(frame_impl); std::move(callback).Run( frame_impl->media_settings().has_audio_consumer_session_id()); @@ -53,7 +54,7 @@ auto factory = base::ComponentContextForProcess() ->svc() ->Connect<fuchsia::media::SessionAudioConsumerFactory>(); - auto* frame_impl = FrameImpl::FromRenderFrameHost(render_frame_host()); + auto* frame_impl = FrameImpl::FromRenderFrameHost(&render_frame_host()); DCHECK(frame_impl); if (!frame_impl->media_settings().has_audio_consumer_session_id()) {
diff --git a/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.h b/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.h index c0c6868c..e3941d2 100644 --- a/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.h +++ b/fuchsia_web/webengine/browser/web_engine_media_resource_provider_impl.h
@@ -34,7 +34,7 @@ private: WebEngineMediaResourceProviderImpl( - content::RenderFrameHost* render_frame_host, + content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<mojom::WebEngineMediaResourceProvider> receiver); // mojom::WebEngineMediaResourceProvider:
diff --git a/gin/v8_isolate_memory_dump_provider_unittest.cc b/gin/v8_isolate_memory_dump_provider_unittest.cc index 768156d8..f23e9510 100644 --- a/gin/v8_isolate_memory_dump_provider_unittest.cc +++ b/gin/v8_isolate_memory_dump_provider_unittest.cc
@@ -189,7 +189,8 @@ // Tests that a deterministic memory dump request performs a GC. // TODO(crbug.com/1318974): Fix the flakiness on Linux. -#if BUILDFLAG(IS_LINUX) +// TODO(crbug.com/1342599): Fix the falkiness on linux-chromeos-dbg. +#if BUILDFLAG(IS_LINUX) || (BUILDFLAG(IS_CHROMEOS) && !defined(NDEBUG)) #define MAYBE_Deterministic DISABLED_Deterministic #else #define MAYBE_Deterministic Deterministic
diff --git a/gin/v8_platform.cc b/gin/v8_platform.cc index b02ab8b6..9e79f7e4 100644 --- a/gin/v8_platform.cc +++ b/gin/v8_platform.cc
@@ -371,7 +371,7 @@ // We only have a reservation on 32-bit Windows systems. // TODO(bbudge) Make the #if's in BlinkInitializer match. #if BUILDFLAG(IS_WIN) && defined(ARCH_CPU_32_BITS) - partition_alloc::ReleaseReservation(); + base::ReleaseReservation(); #endif }
diff --git a/gin/v8_platform_page_allocator.cc b/gin/v8_platform_page_allocator.cc index 73dfd87..2345b2d7 100644 --- a/gin/v8_platform_page_allocator.cc +++ b/gin/v8_platform_page_allocator.cc
@@ -74,14 +74,13 @@ size_t length, size_t alignment, v8::PageAllocator::Permission permissions) { - partition_alloc::PageAccessibilityConfiguration config = - GetPageConfig(permissions); - return partition_alloc::AllocPages(address, length, alignment, config, - partition_alloc::PageTag::kV8); + base::PageAccessibilityConfiguration config = GetPageConfig(permissions); + return base::AllocPages(address, length, alignment, config, + base::PageTag::kV8); } bool PageAllocator::FreePages(void* address, size_t length) { - partition_alloc::FreePages(address, length); + base::FreePages(address, length); return true; } @@ -93,12 +92,12 @@ size_t release_size = length - new_length; #if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA) // On POSIX, we can unmap the trailing pages. - partition_alloc::FreePages(release_base, release_size); + base::FreePages(release_base, release_size); #elif BUILDFLAG(IS_WIN) // On Windows, we can only de-commit the trailing pages. FreePages() will // still free all pages in the region including the released tail, so it's // safe to just decommit the tail. - partition_alloc::DecommitSystemPages( + base::DecommitSystemPages( release_base, release_size, ::partition_alloc::PageAccessibilityDisposition::kRequireUpdate); #else @@ -116,39 +115,38 @@ // optimization, to avoid perf regression (see crrev.com/c/2563038 for // details). This may cause the memory region to still be accessible on // certain platforms, but at least the physical pages will be discarded. - partition_alloc::DecommitSystemPages( + base::DecommitSystemPages( address, length, ::partition_alloc::PageAccessibilityDisposition::kAllowKeepForPerf); return true; } else { - return partition_alloc::TrySetSystemPagesAccess(address, length, - GetPageConfig(permissions)); + return base::TrySetSystemPagesAccess(address, length, + GetPageConfig(permissions)); } } bool PageAllocator::RecommitPages(void* address, size_t length, Permission permissions) { - partition_alloc::RecommitSystemPages( + base::RecommitSystemPages( reinterpret_cast<uintptr_t>(address), length, GetPageConfig(permissions), - partition_alloc::PageAccessibilityDisposition::kAllowKeepForPerf); + base::PageAccessibilityDisposition::kAllowKeepForPerf); return true; } bool PageAllocator::DiscardSystemPages(void* address, size_t size) { - partition_alloc::DiscardSystemPages(address, size); + base::DiscardSystemPages(address, size); return true; } bool PageAllocator::DecommitPages(void* address, size_t size) { // V8 expects the pages to be inaccessible and zero-initialized upon next // access. - partition_alloc::DecommitAndZeroSystemPages(address, size); + base::DecommitAndZeroSystemPages(address, size); return true; } -partition_alloc::PageAccessibilityConfiguration -PageAllocator::GetPageConfigForTesting( +base::PageAccessibilityConfiguration PageAllocator::GetPageConfigForTesting( v8::PageAllocator::Permission permission) { return GetPageConfig(permission); }
diff --git a/infra/config/generated/builders/ci/mac12-arm64-rel-tests/properties.json b/infra/config/generated/builders/ci/mac12-arm64-rel-tests/properties.json index 4b6adcd..29a1d34 100644 --- a/infra/config/generated/builders/ci/mac12-arm64-rel-tests/properties.json +++ b/infra/config/generated/builders/ci/mac12-arm64-rel-tests/properties.json
@@ -81,5 +81,8 @@ ] }, "builder_group": "chromium.mac", - "recipe": "chromium" + "recipe": "chromium", + "sheriff_rotations": [ + "chromium" + ] } \ No newline at end of file
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index 77d3f3c..539f65a2 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -2305,6 +2305,9 @@ } properties: '{' + ' "$build/code_coverage": {' + ' "use_clang_coverage": true' + ' },' ' "$build/goma": {' ' "enable_ats": true,' ' "rpc_extra_params": "?prod",' @@ -2383,6 +2386,9 @@ } properties: '{' + ' "$build/code_coverage": {' + ' "use_clang_coverage": true' + ' },' ' "$build/goma": {' ' "enable_ats": true,' ' "rpc_extra_params": "?prod",' @@ -40813,7 +40819,10 @@ ' },' ' "builder_group": "chromium.mac",' ' "led_builder_is_bootstrapped": true,' - ' "recipe": "chromium"' + ' "recipe": "chromium",' + ' "sheriff_rotations": [' + ' "chromium"' + ' ]' '}' execution_timeout_secs: 10800 build_numbers: YES
diff --git a/infra/config/generated/sheriff-rotations/chromium.txt b/infra/config/generated/sheriff-rotations/chromium.txt index 727f503..e9e03f5 100644 --- a/infra/config/generated/sheriff-rotations/chromium.txt +++ b/infra/config/generated/sheriff-rotations/chromium.txt
@@ -93,6 +93,7 @@ ci/mac-arm64-rel ci/mac-official ci/mac11-arm64-rel-tests +ci/mac12-arm64-rel-tests ci/win-archive-rel ci/win-asan ci/win-official
diff --git a/infra/config/subprojects/chromium/ci/chromium.fyi.star b/infra/config/subprojects/chromium/ci/chromium.fyi.star index 156a562..3ede471 100644 --- a/infra/config/subprojects/chromium/ci/chromium.fyi.star +++ b/infra/config/subprojects/chromium/ci/chromium.fyi.star
@@ -1086,6 +1086,7 @@ os = os.LINUX_DEFAULT, cores = 16, ssd = True, + use_clang_coverage = True, ) # Sync specs with win10_chromium_x64_rel_ng-compilator @@ -1105,6 +1106,7 @@ os = os.WINDOWS_DEFAULT, cores = 32, ssd = True, + use_clang_coverage = True, ) ci.builder(
diff --git a/infra/config/subprojects/chromium/ci/chromium.mac.star b/infra/config/subprojects/chromium/ci/chromium.mac.star index 47fc799..a36e8491 100644 --- a/infra/config/subprojects/chromium/ci/chromium.mac.star +++ b/infra/config/subprojects/chromium/ci/chromium.mac.star
@@ -210,8 +210,6 @@ category = "release|arm64", short_name = "12", ), - # TODO(crbug.com/1334005): Add to rotation when it's stable. - sheriff_rotations = args.ignore_default(None), tree_closing = False, triggered_by = ["ci/mac-arm64-rel"], )
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 1c89e61c..0eb2be0d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -256,7 +256,7 @@ <translation id="3131206671572504478">Block all</translation> <translation id="313283613037595347">Create new Incognito tab.</translation> <translation id="3153862085237805241">Save Card</translation> -<translation id="3157387275655328056">Add to Reading List</translation> +<translation id="3157387275655328056">Add to reading list</translation> <translation id="3157684681743766797">Mark All…</translation> <translation id="3169472444629675720">Discover</translation> <translation id="3174662312949010067">You can also use saved passwords on your other devices.</translation> @@ -437,7 +437,7 @@ <translation id="4737560986434232178">Search recent tabs</translation> <translation id="473775607612524610">Update</translation> <translation id="4747097190499141774">Passphrase encryption doesn’t include payment methods and addresses from Google Pay. Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase or want to change this setting, you will need to reset sync. <ph name="BEGIN_LINK" />Find out more<ph name="END_LINK" /></translation> -<translation id="4751645464639803239">New Incognito tab</translation> +<translation id="4751645464639803239">New incognito tab</translation> <translation id="4775879719735953715">Default Browser</translation> <translation id="4778644898150334464">Use other password</translation> <translation id="4802417911091824046">Passphrase encryption doesn’t include payment methods and addresses from Google Pay. @@ -712,7 +712,7 @@ <translation id="683022620450280906">You can use saved passwords on any device. They're saved to Google Password Manager for <ph name="EMAIL" /></translation> <translation id="6831043979455480757">Translate</translation> <translation id="6842136130964845393">To make sure that you can always access your saved passwords, verify that it's you</translation> -<translation id="6851516051005285358">Request Desktop Site</translation> +<translation id="6851516051005285358">Request desktop site</translation> <translation id="6858855187367714033">Scanned</translation> <translation id="6859944681507688231">To scan a QR code or credit card, enable the camera from settings.</translation> <translation id="6867369562105931222">password</translation> @@ -757,7 +757,7 @@ <translation id="7207023858769244910">Sync to get content based on your interests.</translation> <translation id="7207383424303353046">New: Open sites in Chrome automatically by making it your default browser app. <ph name="BEGIN_LINK" />Open settings<ph name="END_LINK" /></translation> <translation id="721597782417389033">Invalid card nickname</translation> -<translation id="722454870747268814">New Incognito Tab</translation> +<translation id="722454870747268814">New incognito tab</translation> <translation id="7265758999917665941">Never for this site</translation> <translation id="7272437679830969316">Can't verify your identity. Password not copied.</translation> <translation id="7291368939935408496">Preparing Passwords…</translation> @@ -768,7 +768,7 @@ <translation id="734758817008927353">Options to save card</translation> <translation id="7348502496356775519">Bookmark</translation> <translation id="7353432112255316844">Verify that it's you</translation> -<translation id="7383797227493018512">Reading List</translation> +<translation id="7383797227493018512">Reading list</translation> <translation id="7398893703713203428">Create link</translation> <translation id="739941347996872055">Previous tab</translation> <translation id="7400418766976504921">URL</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 a69b25eb..40e81f3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -348,7 +348,7 @@ <translation id="3928666092801078803">Combinar os meus dados</translation> <translation id="3929457972718048006">Endereços</translation> <translation id="3943492037546055397">Palavras-passe</translation> -<translation id="3959736869653157332">Menu → Novo separador de navegação anónima</translation> +<translation id="3959736869653157332">Menu → Novo separador anónimo</translation> <translation id="3964173450954943920">Pode escolher o que quer sincronizar nas <ph name="BEGIN_LINK" />definições<ph name="END_LINK" />. A Google pode usar o seu histórico para personalizar a Pesquisa e outros serviços Google.</translation> <translation id="3967822245660637423">Transferência concluída</translation> <translation id="3968505803272650567">Gerir interesses</translation> @@ -437,7 +437,7 @@ <translation id="4737560986434232178">Pesquise separadores recentes</translation> <translation id="473775607612524610">Atualizar</translation> <translation id="4747097190499141774">A encriptação da frase de acesso não inclui métodos de pagamento nem endereços do Google Pay. Apenas alguém que conheça a sua frase de acesso pode ler os seus dados encriptados. A frase de acesso não é enviada para a Google nem armazenada pela mesma. Se se esquecer da frase de acesso ou pretender alterar esta definição, tem de repor a sincronização. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation> -<translation id="4751645464639803239">Novo separador de navegação anónima</translation> +<translation id="4751645464639803239">Novo separador anónimo</translation> <translation id="4775879719735953715">Navegador predefinido</translation> <translation id="4778644898150334464">Utilize outra palavra-passe</translation> <translation id="4802417911091824046">A encriptação da frase de acesso não inclui métodos de pagamento nem endereços do Google Pay. @@ -757,7 +757,7 @@ <translation id="7207023858769244910">Sincronize para obter conteúdo com base nos seus interesses.</translation> <translation id="7207383424303353046">Novidade: abra automaticamente os sites no Chrome ao torná-lo a sua app de navegador predefinida. <ph name="BEGIN_LINK" />Abra as Definições<ph name="END_LINK" /></translation> <translation id="721597782417389033">Alcunha do cartão inválido</translation> -<translation id="722454870747268814">Novo separador de navegação anónima</translation> +<translation id="722454870747268814">Novo separador anónimo</translation> <translation id="7265758999917665941">Nunca para este site</translation> <translation id="7272437679830969316">Não é possível validar a sua identidade. Palavra-passe não copiada.</translation> <translation id="7291368939935408496">A preparar palavras-passe…</translation> @@ -805,7 +805,7 @@ <translation id="7701040980221191251">Nenhuma</translation> <translation id="7720410380936703141">TENTAR NOVAMENTE</translation> <translation id="7726702057919861819">Menu → Histórico → Limpar dados de navegação</translation> -<translation id="7741325291586284254">Página Novo separador de navegação anónima</translation> +<translation id="7741325291586284254">Página Novo separador anónimo</translation> <translation id="7756478488453921771">Menu → Definições → Métodos de pagamento</translation> <translation id="7765158879357617694">Mover</translation> <translation id="7772032839648071052">Confirmar frase de acesso</translation>
diff --git a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm index 6927117..9b6ca2c0 100644 --- a/ios/chrome/browser/ui/browser_view/browser_coordinator.mm +++ b/ios/chrome/browser/ui/browser_view/browser_coordinator.mm
@@ -99,6 +99,7 @@ #import "ios/chrome/browser/ui/lens/lens_coordinator.h" #import "ios/chrome/browser/ui/main/default_browser_scene_agent.h" #import "ios/chrome/browser/ui/main/scene_state_browser_agent.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_coordinator.h" #import "ios/chrome/browser/ui/open_in/open_in_coordinator.h" #import "ios/chrome/browser/ui/overlays/overlay_container_coordinator.h" #import "ios/chrome/browser/ui/page_info/page_info_coordinator.h" @@ -340,6 +341,7 @@ BrowserViewControllerDependencies _viewControllerDependencies; PrerenderService* _prerenderService; BubblePresenter* _bubblePresenter; + NewTabPageCoordinator* _ntpCoordinator; ToolbarCoordinatorAdaptor* _toolbarCoordinatorAdaptor; PrimaryToolbarCoordinator* _primaryToolbarCoordinator; SecondaryToolbarCoordinator* _secondaryToolbarCoordinator; @@ -643,6 +645,11 @@ } } + _ntpCoordinator = + [[NewTabPageCoordinator alloc] initWithBrowser:self.browser]; + _ntpCoordinator.toolbarDelegate = _toolbarCoordinatorAdaptor; + _ntpCoordinator.bubblePresenter = _bubblePresenter; + _textZoomHandler = HandlerForProtocol(_dispatcher, TextZoomCommands); _helpHandler = HandlerForProtocol(_dispatcher, HelpCommands); _popupMenuCommandsHandler = @@ -657,7 +664,7 @@ _viewControllerDependencies.popupMenuCoordinator = self.popupMenuCoordinator; _viewControllerDependencies.downloadManagerCoordinator = self.downloadManagerCoordinator; - _viewControllerDependencies.toolbarInterface = _toolbarCoordinatorAdaptor; + _viewControllerDependencies.ntpCoordinator = _ntpCoordinator; _viewControllerDependencies.primaryToolbarCoordinator = _primaryToolbarCoordinator; _viewControllerDependencies.secondaryToolbarCoordinator = @@ -691,6 +698,8 @@ _primaryToolbarCoordinator.popupPresenterDelegate = self.viewController; [_primaryToolbarCoordinator start]; + _ntpCoordinator.baseViewController = self.viewController; + [_dispatcher startDispatchingToTarget:self.viewController forProtocol:@protocol(BrowserCommands)]; [_dispatcher startDispatchingToTarget:self.viewController @@ -703,7 +712,7 @@ _viewControllerDependencies.bubblePresenter = nil; _viewControllerDependencies.popupMenuCoordinator = nil; _viewControllerDependencies.downloadManagerCoordinator = nil; - _viewControllerDependencies.toolbarInterface = nil; + _viewControllerDependencies.ntpCoordinator = nil; _viewControllerDependencies.primaryToolbarCoordinator = nil; _viewControllerDependencies.secondaryToolbarCoordinator = nil; _viewControllerDependencies.tabStripCoordinator = nil; @@ -743,6 +752,9 @@ [self.browserContainerCoordinator stop]; self.browserContainerCoordinator = nil; + [_ntpCoordinator stop]; + _ntpCoordinator = nil; + _dispatcher = nil; }
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.h b/ios/chrome/browser/ui/browser_view/browser_view_controller.h index 26a2bb07..d8b8ab12 100644 --- a/ios/chrome/browser/ui/browser_view/browser_view_controller.h +++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.h
@@ -38,6 +38,7 @@ @class DownloadManagerCoordinator; @protocol HelpCommands; @class KeyCommandsProvider; +@class NewTabPageCoordinator; @protocol PopupMenuCommands; @class PopupMenuCoordinator; // TODO(crbug.com/1328039): Remove all use of the prerender service from BVC @@ -51,7 +52,6 @@ @class TabStripLegacyCoordinator; @protocol TextZoomCommands; @class ToolbarAccessoryPresenter; -@protocol ToolbarCoordinating; @protocol IncognitoReauthCommands; // TODO(crbug.com/1328039): Remove all use of the prerender service from BVC @@ -62,7 +62,7 @@ BubblePresenter* bubblePresenter; PopupMenuCoordinator* popupMenuCoordinator; DownloadManagerCoordinator* downloadManagerCoordinator; - id<ToolbarCoordinating> toolbarInterface; + NewTabPageCoordinator* ntpCoordinator; PrimaryToolbarCoordinator* primaryToolbarCoordinator; SecondaryToolbarCoordinator* secondaryToolbarCoordinator; TabStripCoordinator* tabStripCoordinator;
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm index fdedf6f..cdacb4c 100644 --- a/ios/chrome/browser/ui/browser_view/browser_view_controller.mm +++ b/ios/chrome/browser/ui/browser_view/browser_view_controller.mm
@@ -433,8 +433,6 @@ // Coordinator used to manage the secondary toolbar view. @property(nonatomic, strong) ToolbarContainerCoordinator* secondaryToolbarContainerCoordinator; -// Interface object with the toolbars. -@property(nonatomic, strong) id<ToolbarCoordinating> toolbarInterface; // Vertical offset for the primary toolbar, used for fullscreen. @property(nonatomic, strong) NSLayoutConstraint* primaryToolbarOffsetConstraint; @@ -469,11 +467,6 @@ // The coordinator for all NTPs in the BVC. Only used if kSingleNtp is enabled. @property(nonatomic, strong) NewTabPageCoordinator* ntpCoordinator; -// The thumb strip's pan gesture handler that will be added to the toolbar and -// tab strip. -@property(nonatomic, weak) - ViewRevealingVerticalPanHandler* thumbStripPanHandler; - @end @implementation BrowserViewController @@ -501,7 +494,6 @@ _keyCommandsProvider = keyCommandsProvider; // TODO(crbug.com/1328039): Remove all use of the prerender service from BVC _prerenderService = dependencies.prerenderService; - _bubblePresenter = dependencies.bubblePresenter; // TODO(crbug.com/1331229): Remove all use of the download manager // coordinator from BVC _downloadManagerCoordinator = dependencies.downloadManagerCoordinator; @@ -509,8 +501,9 @@ [_sideSwipeController setSnapshotDelegate:self]; [_sideSwipeController setSwipeDelegate:self]; _bookmarkInteractionController = dependencies.bookmarkInteractionController; + self.bubblePresenter = dependencies.bubblePresenter; + self.ntpCoordinator = dependencies.ntpCoordinator; self.popupMenuCoordinator = dependencies.popupMenuCoordinator; - self.toolbarInterface = dependencies.toolbarInterface; self.primaryToolbarCoordinator = dependencies.primaryToolbarCoordinator; self.secondaryToolbarCoordinator = dependencies.secondaryToolbarCoordinator; self.tabStripCoordinator = dependencies.tabStripCoordinator; @@ -1034,7 +1027,6 @@ self.secondaryToolbarContainerCoordinator = nil; [self.secondaryToolbarCoordinator stop]; self.secondaryToolbarCoordinator = nil; - self.toolbarInterface = nil; _sideSwipeController = nil; _webStateListObserver.reset(); _allWebStateObservationForwarder = nullptr; @@ -1254,7 +1246,6 @@ self.secondaryToolbarContainerCoordinator = nil; [self.secondaryToolbarCoordinator stop]; self.secondaryToolbarCoordinator = nil; - self.toolbarInterface = nil; _toolbarUIState = nil; _browserViewControllerHelper = nil; if (base::FeatureList::IsEnabled(kModernTabStrip)) { @@ -2409,7 +2400,6 @@ - (void)stopNTP { [self.ntpCoordinator stop]; - self.ntpCoordinator = nullptr; } #pragma mark - ** Protocol Implementations and Helpers ** @@ -2422,8 +2412,6 @@ DCHECK(panHandler); _thumbStripEnabled = YES; - self.thumbStripPanHandler = panHandler; - // Add self as animatee first to make sure that the BVC's view is loaded for // the rest of setup [panHandler addAnimatee:self]; @@ -2441,7 +2429,7 @@ self.view.backgroundColor = UIColor.clearColor; CGRect webStateViewFrame = self.contentArea.bounds; - if (self.thumbStripPanHandler.currentState == ViewRevealState::Revealed) { + if (panHandler.currentState == ViewRevealState::Revealed) { CGFloat toolbarHeight = [self expandedTopToolbarHeight]; webStateViewFrame = UIEdgeInsetsInsetRect( webStateViewFrame, UIEdgeInsetsMake(toolbarHeight, 0, 0, 0)); @@ -2449,6 +2437,7 @@ UIView* webStateView = [self viewForWebState:self.currentWebState]; webStateView.frame = webStateViewFrame; + self.ntpCoordinator.panGestureHandler = panHandler; [self.ntpCoordinator.thumbStripSupporting thumbStripEnabledWithPanHandler:panHandler]; } @@ -2467,18 +2456,13 @@ [self.tabStripView adjustTransformForRTL:CGAffineTransformIdentity]; } self.view.backgroundColor = [UIColor colorNamed:kBackgroundColor]; - self.thumbStripPanHandler = nil; CGRect webStateViewFrame = self.contentArea.bounds; - if (self.thumbStripPanHandler.currentState == ViewRevealState::Peeked) { - CGFloat toolbarHeight = [self expandedTopToolbarHeight]; - webStateViewFrame = UIEdgeInsetsInsetRect( - webStateViewFrame, UIEdgeInsetsMake(toolbarHeight, 0, 0, 0)); - } UIView* webStateView = [self viewForWebState:self.currentWebState]; webStateView.frame = webStateViewFrame; [self.ntpCoordinator.thumbStripSupporting thumbStripDisabled]; + self.ntpCoordinator.panGestureHandler = nil; _thumbStripEnabled = NO; } @@ -2495,7 +2479,7 @@ } - (void)reloadNTPForWebState:(web::WebState*)webState { - [_ntpCoordinator reload]; + [self.ntpCoordinator reload]; } #pragma mark - ViewRevealingAnimatee @@ -2592,7 +2576,7 @@ // Stop scrolling in the current web state when transitioning. if (self.currentWebState) { if (self.isNTPActiveForCurrentWebState) { - [_ntpCoordinator stopScrolling]; + [self.ntpCoordinator stopScrolling]; } else { CRWWebViewScrollViewProxy* scrollProxy = self.currentWebState->GetWebViewProxy().scrollViewProxy; @@ -4114,18 +4098,4 @@ } } -#pragma mark - Getters - -- (NewTabPageCoordinator*)ntpCoordinator { - if (!_ntpCoordinator) { - _ntpCoordinator = - [[NewTabPageCoordinator alloc] initWithBaseViewController:self - browser:self.browser]; - _ntpCoordinator.panGestureHandler = self.thumbStripPanHandler; - _ntpCoordinator.toolbarDelegate = self.toolbarInterface; - _ntpCoordinator.bubblePresenter = _bubblePresenter; - } - return _ntpCoordinator; -} - @end
diff --git a/ios/chrome/browser/ui/browser_view/browser_view_controller_unittest.mm b/ios/chrome/browser/ui/browser_view/browser_view_controller_unittest.mm index 920f02ba..f6a9359 100644 --- a/ios/chrome/browser/ui/browser_view/browser_view_controller_unittest.mm +++ b/ios/chrome/browser/ui/browser_view/browser_view_controller_unittest.mm
@@ -238,7 +238,6 @@ dependencies.bubblePresenter = bubble_presenter_; dependencies.popupMenuCoordinator = popup_menu_coordinator_; dependencies.downloadManagerCoordinator = download_manager_coordinator_; - dependencies.toolbarInterface = toolbar_coordinator_adaptor_; dependencies.primaryToolbarCoordinator = primary_toolbar_coordinator_; dependencies.secondaryToolbarCoordinator = secondary_toolbar_coordinator_; dependencies.tabStripCoordinator = tab_strip_coordinator_;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.h b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.h index f80c3bc..b51dfe0 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.h +++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.h
@@ -25,6 +25,16 @@ : ChromeCoordinator <LogoAnimationControllerOwnerOwner, NewTabPageConfiguring> +// Initializes this Coordinator with its `browser` and a nil base view +// controller. +- (instancetype)initWithBrowser:(Browser*)browser NS_DESIGNATED_INITIALIZER; + +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browser:(Browser*)browser NS_UNAVAILABLE; + +// The base view controller for this coordinator +@property(weak, nonatomic, readwrite) UIViewController* baseViewController; + // ViewController associated with this coordinator. @property(nonatomic, strong, readonly) UIViewController* viewController;
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm index 5fc00bb..cabb4788 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm +++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator.mm
@@ -218,12 +218,13 @@ // Synthesize NewTabPageConfiguring properties. @synthesize selectedFeed = _selectedFeed; @synthesize shouldScrollIntoFeed = _shouldScrollIntoFeed; +@synthesize baseViewController = _baseViewController; #pragma mark - ChromeCoordinator -- (instancetype)initWithBaseViewController:(UIViewController*)viewController - browser:(Browser*)browser { - self = [super initWithBaseViewController:viewController browser:browser]; +- (instancetype)initWithBrowser:(Browser*)browser { + DCHECK(browser); + self = [super initWithBaseViewController:nil browser:browser]; if (self) { _containerViewController = [[UIViewController alloc] init]; }
diff --git a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm index 2cca29dd1..311a877 100644 --- a/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm +++ b/ios/chrome/browser/ui/ntp/new_tab_page_coordinator_unittest.mm
@@ -74,9 +74,9 @@ SceneStateBrowserAgent::CreateForBrowser(browser_.get(), scene_state_); } NewTabPageTabHelper::CreateForWebState(&web_state_); - coordinator_ = [[NewTabPageCoordinator alloc] - initWithBaseViewController:base_view_controller_ - browser:browser_.get()]; + coordinator_ = + [[NewTabPageCoordinator alloc] initWithBrowser:browser_.get()]; + coordinator_.baseViewController = base_view_controller_; coordinator_.toolbarDelegate = toolbar_delegate_; coordinator_.webState = &web_state_; }
diff --git a/ios/chrome/browser/ui/omnibox/popup/shared/popup_view.swift b/ios/chrome/browser/ui/omnibox/popup/shared/popup_view.swift index d65300f..26ff1b8 100644 --- a/ios/chrome/browser/ui/omnibox/popup/shared/popup_view.swift +++ b/ios/chrome/browser/ui/omnibox/popup/shared/popup_view.swift
@@ -465,7 +465,7 @@ func onNewSections(sections: [PopupMatchSection], scrollProxy: ScrollViewProxy) { // Scroll to the very top of the list. - if !sections.isEmpty || !sections.first!.matches.isEmpty { + if sections.first?.matches.first != nil { scrollProxy.scrollTo(IndexPath(row: 0, section: 0), anchor: UnitPoint(x: 0, y: -.infinity)) } }
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 78b37033..0820d07 100644 --- a/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm +++ b/ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.mm
@@ -259,6 +259,16 @@ #pragma mark - UIAdaptivePresentationControllerDelegate +- (void)presentationControllerWillDismiss: + (UIPresentationController*)presentationController { + // Update the UI before dismissal starts. Technically, on iPhone, the user + // could be interactively dismissing a sheet, which they could then cancel + // (leading to state mismatch: visible menu, but UIUpdater with menu + // dismissed). However, the UIUpdater only modifies the toolbar, which is + // hidden behind the sheet anyway. + [self.UIUpdater updateUIForMenuDismissed]; +} + - (void)presentationControllerDidDismiss: (UIPresentationController*)presentationController { [self dismissPopupMenuAnimated:NO];
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm index 9dcb6de..2dd546b 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm
@@ -1443,28 +1443,8 @@ NSString* URL1String = base::SysUTF8ToNSString(_URL1.spec()); NSString* URL3String = base::SysUTF8ToNSString(_URL3.spec()); - // Copying can take a while, wait for it to happen. - GREYCondition* copyCondition = [GREYCondition - conditionWithName:@"test text copied condition" - block:^BOOL { - NSArray<NSString*>* URLStrings = - UIPasteboard.generalPasteboard.strings; - if (URLStrings.count != 2) { - return false; - } - - // Strings may appear in either order. - if (([URLStrings[0] isEqualToString:URL1String] && - [URLStrings[1] isEqualToString:URL3String]) || - ([URLStrings[0] isEqualToString:URL3String] && - [URLStrings[1] isEqualToString:URL1String])) { - return true; - } - - return false; - }]; - // Wait for copy to happen or timeout after 5 seconds. - GREYAssertTrue([copyCondition waitWithTimeout:5], @"Copying URLs failed"); + [ChromeEarlGrey verifyStringCopied:URL1String]; + [ChromeEarlGrey verifyStringCopied:URL3String]; } #pragma mark - Tab Grid Search
diff --git a/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_en-GB.xtb b/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_en-GB.xtb index fcd33de..c8dd2042 100644 --- a/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_en-GB.xtb +++ b/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_en-GB.xtb
@@ -3,7 +3,7 @@ <translationbundle lang="en-GB"> <translation id="1613742542373525524">APPLICATION_NAME cannot handle this link.</translation> <translation id="4655616150233109325">Open in Chrome</translation> -<translation id="601731541915429022">Add to Reading List</translation> +<translation id="601731541915429022">Add to reading list</translation> <translation id="6930009216791986919">Add to Bookmarks</translation> <translation id="6965382102122355670">OK</translation> <translation id="8258999165172757081">Added</translation>
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey.mm b/ios/chrome/test/earl_grey/chrome_earl_grey.mm index 353fb58..7b73cf395 100644 --- a/ios/chrome/test/earl_grey/chrome_earl_grey.mm +++ b/ios/chrome/test/earl_grey/chrome_earl_grey.mm
@@ -46,6 +46,27 @@ @"Error occurred during typed URL verification."; NSString* const kWaitForRestoreSessionToFinishError = @"Session restoration did not finish"; + +// Helper class to allow EarlGrey to match elements with isAccessible=N. +class ScopedMatchNonAccessibilityElements { + public: + ScopedMatchNonAccessibilityElements() { + original_value_ = GREY_CONFIG_BOOL(kGREYConfigKeyIgnoreIsAccessible); + [[GREYConfiguration sharedConfiguration] + setValue:@YES + forConfigKey:kGREYConfigKeyIgnoreIsAccessible]; + } + + ~ScopedMatchNonAccessibilityElements() { + [[GREYConfiguration sharedConfiguration] + setValue:[NSNumber numberWithBool:original_value_] + forConfigKey:kGREYConfigKeyIgnoreIsAccessible]; + } + + private: + BOOL original_value_; +}; + } // namespace namespace chrome_test_util { @@ -1376,8 +1397,15 @@ - (void)verifyStringCopied:(NSString*)text { ConditionBlock condition = ^{ - return !![[ChromeEarlGreyAppInterface pasteboardString] - containsString:text]; + NSArray<NSString*>* pasteboardStrings = + [ChromeEarlGreyAppInterface pasteboardStrings]; + for (NSString* paste in pasteboardStrings) { + if ([paste containsString:text]) { + return true; + } + } + + return false; }; GREYAssert(base::test::ios::WaitUntilConditionOrTimeout(kWaitForActionTimeout, condition), @@ -1449,6 +1477,9 @@ ScopedSynchronizationDisabler disabler; #endif + // On iOS 16, LPLinkView and LPTextView are marked isAccessible=N. + ScopedMatchNonAccessibilityElements enabler; + // Page title is added asynchronously, so wait for its appearance. NSString* hostString = base::SysUTF8ToNSString(URL.host()); [self waitForMatcher:grey_allOf(ActivityViewHeader(hostString, pageTitle),
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h index 79d5d73..6d37947 100644 --- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h +++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.h
@@ -609,9 +609,9 @@ // Clears the URLs stored in the pasteboard, from the tested app's perspective. + (void)clearPasteboardURLs; -// Retrieves the currently stored string on the pasteboard from the tested app's -// perspective. -+ (NSString*)pasteboardString; +// Retrieves the currently stored strings on the pasteboard from the tested +// app's perspective. ++ (NSArray<NSString*>*)pasteboardStrings; // Retrieves the currently stored URL on the pasteboard from the tested app's // perspective.
diff --git a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm index aa9d9cc9..a84ade32 100644 --- a/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm +++ b/ios/chrome/test/earl_grey/chrome_earl_grey_app_interface.mm
@@ -1230,8 +1230,8 @@ [[UIPasteboard generalPasteboard] setURLs:nil]; } -+ (NSString*)pasteboardString { - return [UIPasteboard generalPasteboard].string; ++ (NSArray<NSString*>*)pasteboardStrings { + return [UIPasteboard generalPasteboard].strings; } + (NSString*)pasteboardURLSpec {
diff --git a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm index 45bef42..681825c 100644 --- a/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm +++ b/ios/chrome/test/earl_grey/chrome_matchers_app_interface.mm
@@ -1190,27 +1190,29 @@ + (id<GREYMatcher>)activityViewHeaderWithURLHost:(NSString*)host title:(NSString*)pageTitle { -#if TARGET_IPHONE_SIMULATOR + // The title of the activity view starts as the URL, then asynchronously + // changes to the page title. Sometimes, the activity view fails to update + // the text to the page title, causing test flake. Allow matcher to pass + // with either value for the activity view title. + + GREYMatchesBlock matches = ^BOOL(id element) { + NSString* label = [element accessibilityLabel]; + NSLog(@"label is %@ %d %d", label, [label containsString:host], + [label containsString:pageTitle]); + return [label containsString:host] || [label containsString:pageTitle]; + }; + GREYDescribeToBlock describe = ^void(id<GREYDescription> description) { + [description + appendText:[NSString stringWithFormat: + @"accessibilityLabel containing %@ or %@", + host, pageTitle]]; + }; + return grey_allOf( - // The title of the activity view starts as the URL, then asynchronously - // changes to the page title. Sometimes, the activity view fails to update - // the text to the page title, causing test flake. Allow matcher to pass - // with either value for the activity view title. - grey_anyOf(grey_accessibilityLabel(host), - grey_accessibilityLabel(pageTitle), nil), - grey_ancestor( - grey_allOf(grey_accessibilityTrait(UIAccessibilityTraitHeader), - grey_kindOfClassName(@"LPLinkView"), nil)), + grey_kindOfClassName(@"LPLinkView"), + [[GREYElementMatcherBlock alloc] initWithMatchesBlock:matches + descriptionBlock:describe], nil); -#else - // Device tests tend to fail more often if the host is allowed in the - // grey_anyOf as above. - return grey_allOf(grey_accessibilityLabel(pageTitle), - grey_ancestor(grey_allOf( - grey_accessibilityTrait(UIAccessibilityTraitHeader), - grey_kindOfClassName(@"LPLinkView"), nil)), - nil); -#endif } + (id<GREYMatcher>)manualFallbackSuggestPasswordMatcher {
diff --git a/media/gpu/v4l2/v4l2_image_processor_backend.cc b/media/gpu/v4l2/v4l2_image_processor_backend.cc index cee8471..3dbd184 100644 --- a/media/gpu/v4l2/v4l2_image_processor_backend.cc +++ b/media/gpu/v4l2/v4l2_image_processor_backend.cc
@@ -7,7 +7,6 @@ #include <errno.h> #include <fcntl.h> #include <poll.h> -#include <stdio.h> #include <string.h> #include <sys/eventfd.h> #include <sys/ioctl.h> @@ -30,7 +29,6 @@ #include "media/gpu/chromeos/platform_video_frame_utils.h" #include "media/gpu/macros.h" #include "media/gpu/v4l2/v4l2_utils.h" -#include "media/gpu/video_frame_mapper_factory.h" namespace media { @@ -823,8 +821,6 @@ ProcessJobsTask(); } -int num_dumped_frames = 0; - void V4L2ImageProcessorBackend::Dequeue() { DVLOGF(4); DCHECK_CALLED_ON_VALID_SEQUENCE(backend_sequence_checker_); @@ -895,33 +891,6 @@ return; } - auto frame_mapper = VideoFrameMapperFactory::CreateMapper( - output_frame->format(), output_frame->storage_type(), true); - if (frame_mapper && output_frame->format() == PIXEL_FORMAT_NV12) { - output_frame = frame_mapper->Map(std::move(output_frame), PROT_READ); - char filename[256]; - snprintf(filename, 256, "/usr/local/out_frame%d", num_dumped_frames++); - FILE* out_file = fopen(filename, "w+"); - for (int i = 0; i < output_frame->visible_rect().width() * - output_frame->visible_rect().height(); - i++) - fputc(output_frame->visible_data(VideoFrame::kYPlane)[i], out_file); -#define ALIGN(x, y) ((x + (y - 1)) & (~(y - 1))) - for (int j = 0; - j < ALIGN(output_frame->visible_rect().width(), 2) / 2 * - ALIGN(output_frame->visible_rect().height(), 2) / 2; - j++) - fputc(output_frame->visible_data(VideoFrame::kUVPlane)[j * 2], - out_file); - for (int j = 0; - j < ALIGN(output_frame->visible_rect().width(), 2) / 2 * - ALIGN(output_frame->visible_rect().height(), 2) / 2; - j++) - fputc(output_frame->visible_data(VideoFrame::kUVPlane)[j * 2 + 1], - out_file); - fclose(out_file); - } - const auto timestamp = job_record->input_frame->timestamp(); auto iter = buffer_tracers_.find(timestamp); if (iter != buffer_tracers_.end()) {
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn index ea4e192..9a4e943 100644 --- a/media/gpu/vaapi/BUILD.gn +++ b/media/gpu/vaapi/BUILD.gn
@@ -373,12 +373,6 @@ "test/av1_decoder.cc", "test/av1_decoder.h", "test/decode.cc", - "test/h264_decoder.cc", - "test/h264_decoder.h", - "test/h264_dpb.cc", - "test/h264_dpb.h", - "test/h264_vaapi_wrapper.cc", - "test/h264_vaapi_wrapper.h", "test/macros.h", "test/scoped_va_config.cc", "test/scoped_va_config.h",
diff --git a/media/gpu/vaapi/test/av1_decoder.cc b/media/gpu/vaapi/test/av1_decoder.cc index 146d7c4..c7e2f7f 100644 --- a/media/gpu/vaapi/test/av1_decoder.cc +++ b/media/gpu/vaapi/test/av1_decoder.cc
@@ -531,7 +531,9 @@ Av1Decoder::Av1Decoder(std::unique_ptr<IvfParser> ivf_parser, const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy) - : VideoDecoder::VideoDecoder(va_device, fetch_policy), + : VideoDecoder::VideoDecoder(std::move(ivf_parser), + va_device, + fetch_policy), buffer_pool_(std::make_unique<libgav1::BufferPool>( /*on_frame_buffer_size_changed=*/nullptr, /*get_frame_buffer=*/nullptr, @@ -539,8 +541,7 @@ /*callback_private_data=*/nullptr)), state_(std::make_unique<libgav1::DecoderState>()), ref_frames_(kAv1NumRefFrames), - display_surfaces_(kAv1NumRefFrames), - ivf_parser_(std::move(ivf_parser)) {} + display_surfaces_(kAv1NumRefFrames) {} Av1Decoder::~Av1Decoder() { // We destroy the state explicitly to ensure it's destroyed before the
diff --git a/media/gpu/vaapi/test/av1_decoder.h b/media/gpu/vaapi/test/av1_decoder.h index a9a8abe..0c56f85 100644 --- a/media/gpu/vaapi/test/av1_decoder.h +++ b/media/gpu/vaapi/test/av1_decoder.h
@@ -79,9 +79,6 @@ // If film grain is applied, the film grain surface is stored in // |display_surfaces_|. Otherwise, matches |ref_frames_|. std::vector<scoped_refptr<SharedVASurface>> display_surfaces_; - - // Parser for the IVF stream to decode. - std::unique_ptr<IvfParser> ivf_parser_; }; } // namespace vaapi_test
diff --git a/media/gpu/vaapi/test/decode.cc b/media/gpu/vaapi/test/decode.cc index 187a0f1..526405b 100644 --- a/media/gpu/vaapi/test/decode.cc +++ b/media/gpu/vaapi/test/decode.cc
@@ -17,7 +17,6 @@ #include "build/chromeos_buildflags.h" #include "media/filters/ivf_parser.h" #include "media/gpu/vaapi/test/av1_decoder.h" -#include "media/gpu/vaapi/test/h264_decoder.h" #include "media/gpu/vaapi/test/shared_va_surface.h" #include "media/gpu/vaapi/test/vaapi_device.h" #include "media/gpu/vaapi/test/video_decoder.h" @@ -28,7 +27,6 @@ #include "ui/gfx/geometry/size.h" using media::vaapi_test::Av1Decoder; -using media::vaapi_test::H264Decoder; using media::vaapi_test::SharedVASurface; using media::vaapi_test::VaapiDevice; using media::vaapi_test::VideoDecoder; @@ -115,21 +113,14 @@ } // Creates the appropriate decoder for |stream_data| which is expected to point -// to H264 Annex B data of length |stream_len|. The decoder will use -// |va_device| to issue VAAPI calls. Returns nullptr on failure. +// to IVF data of length |stream_len|. The decoder will use |va_device| to issue +// VAAPI calls. Returns nullptr on failure. std::unique_ptr<VideoDecoder> CreateDecoder( const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy, const uint8_t* stream_data, size_t stream_len) { - if (*reinterpret_cast<const uint32_t*>(stream_data) == fourcc(0, 0, 0, 1) || - ((*reinterpret_cast<const uint32_t*>(stream_data)) & 0x00FFFFFF) == - fourcc(0, 0, 1, 0)) { - return std::make_unique<H264Decoder>(stream_data, stream_len, va_device, - fetch_policy); - } - - // Set up IVF parser. + // Set up video parser. auto ivf_parser = std::make_unique<media::IvfParser>(); media::IvfFileHeader file_header{}; if (!ivf_parser->Initialize(stream_data, stream_len, &file_header)) {
diff --git a/media/gpu/vaapi/test/h264_decoder.cc b/media/gpu/vaapi/test/h264_decoder.cc deleted file mode 100644 index 15131ae1..0000000 --- a/media/gpu/vaapi/test/h264_decoder.cc +++ /dev/null
@@ -1,1288 +0,0 @@ -// Copyright (c) 2021 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 "media/gpu/vaapi/test/h264_decoder.h" - -#include "base/notreached.h" -#include "media/base/subsample_entry.h" -#include "media/gpu/macros.h" -#include "media/gpu/vaapi/test/h264_dpb.h" -#include "media/gpu/vaapi/test/video_decoder.h" -#include "media/video/h264_parser.h" - -#include <va/va.h> - -namespace media::vaapi_test { - -namespace { - -struct PicNumDescCompare { - bool operator()(const scoped_refptr<H264Picture>& a, - const scoped_refptr<H264Picture>& b) const { - return a->pic_num > b->pic_num; - } -}; - -struct LongTermPicNumAscCompare { - bool operator()(const scoped_refptr<H264Picture>& a, - const scoped_refptr<H264Picture>& b) const { - return a->long_term_pic_num < b->long_term_pic_num; - } -}; - -struct POCAscCompare { - bool operator()(const scoped_refptr<H264Picture>& a, - const scoped_refptr<H264Picture>& b) const { - return a->pic_order_cnt < b->pic_order_cnt; - } -}; - -struct POCDescCompare { - bool operator()(const scoped_refptr<H264Picture>& a, - const scoped_refptr<H264Picture>& b) const { - return a->pic_order_cnt > b->pic_order_cnt; - } -}; - -bool FillH264PictureFromSliceHeader(const H264SPS* sps, - const H264SliceHeader& slice_hdr, - H264Picture* pic) { - DCHECK(pic); - - pic->idr = slice_hdr.idr_pic_flag; - if (pic->idr) - pic->idr_pic_id = slice_hdr.idr_pic_id; - - if (slice_hdr.field_pic_flag) { - pic->field = slice_hdr.bottom_field_flag ? H264Picture::FIELD_BOTTOM - : H264Picture::FIELD_TOP; - } else { - pic->field = H264Picture::FIELD_NONE; - } - - if (pic->field != H264Picture::FIELD_NONE) { - VLOG(1) << "Interlaced video not supported."; - return false; - } - - pic->nal_ref_idc = slice_hdr.nal_ref_idc; - pic->ref = slice_hdr.nal_ref_idc != 0; - // This assumes non-interlaced stream. - pic->frame_num = pic->pic_num = slice_hdr.frame_num; - - if (!sps) - return false; - - pic->pic_order_cnt_type = sps->pic_order_cnt_type; - switch (pic->pic_order_cnt_type) { - case 0: - pic->pic_order_cnt_lsb = slice_hdr.pic_order_cnt_lsb; - pic->delta_pic_order_cnt_bottom = slice_hdr.delta_pic_order_cnt_bottom; - break; - - case 1: - pic->delta_pic_order_cnt0 = slice_hdr.delta_pic_order_cnt0; - pic->delta_pic_order_cnt1 = slice_hdr.delta_pic_order_cnt1; - break; - - case 2: - break; - - default: - NOTREACHED(); - return false; - } - return true; -} - -} // namespace - -H264Decoder::H264Decoder(const uint8_t* stream_data, - size_t stream_len, - const VaapiDevice& va_device, - SharedVASurface::FetchPolicy fetch_policy) - : VideoDecoder::VideoDecoder(va_device, fetch_policy), - parser_(std::make_unique<H264Parser>()), - curr_sps_id_(-1), - curr_pps_id_(-1), - curr_slice_hdr_(nullptr), - curr_nalu_(nullptr), - curr_picture_(nullptr), - is_stream_over_(false), - va_wrapper_(va_device) { - parser_->SetStream(stream_data, stream_len); - - LOG_ASSERT(GetStreamMetadata()) << "Stream contains no Sequence Parameters!"; - - ExtractSliceHeader(); -} - -H264Decoder::~H264Decoder() { - dpb_.Clear(); - last_decoded_surface_.reset(); -} - -VideoDecoder::Result H264Decoder::DecodeNextFrame() { - while (!is_stream_over_ && output_queue.empty()) - DecodeNextFrameInStream(); - - if (is_stream_over_ && output_queue.empty()) - return VideoDecoder::kEOStream; - - last_decoded_surface_ = output_queue.front()->surface; - VLOG(4) << "Outputting frame poc: " << output_queue.front()->pic_order_cnt; - last_decoded_frame_visible_ = !output_queue.front()->nonexisting; - output_queue.pop(); - return VideoDecoder::kOk; -} - -// H264 does not guarantee frames appear in the order they need to be shown in. -// This method merely decodes the next frame in the stream, it's up to the -// caller to actually figure out how to order them. -void H264Decoder::DecodeNextFrameInStream() { - StartNewFrame(); - ProcessSlice(); - - while (true) { - curr_nalu_ = std::make_unique<H264NALU>(); - H264Parser::Result parser_result = - parser_->AdvanceToNextNALU(curr_nalu_.get()); - if (parser_result == H264Parser::kEOStream) { - is_stream_over_ = true; - break; - } - - if (curr_nalu_->nal_unit_type == H264NALU::kNonIDRSlice || - curr_nalu_->nal_unit_type == H264NALU::kIDRSlice) { - ExtractSliceHeader(); - - if (IsNewFrame()) - break; - - ProcessSlice(); - } else if (curr_nalu_->nal_unit_type == H264NALU::kSPS) { - UpdateSequenceParams(); - } else if (curr_nalu_->nal_unit_type == H264NALU::kPPS) { - UpdatePictureParams(); - } else { - VLOG(4) << "Skipping NALU type " << curr_nalu_->nal_unit_type; - } - } - - DecodeFrame(); - - FinishPicture(curr_picture_); - - if (is_stream_over_) { - FlushDPB(); - } -} - -void H264Decoder::ProcessSlice() { - if (!curr_slice_hdr_->field_pic_flag) { - max_pic_num_ = max_frame_num_; - } else { - max_pic_num_ = 2 * max_frame_num_; - } - - H264Picture::Vector ref_pic_list0, ref_pic_list1; - LOG_ASSERT(ModifyReferencePicLists(curr_slice_hdr_.get(), &ref_pic_list0, - &ref_pic_list1)) - << "Error modify reference pic lists!"; - - const H264PPS* pic_params = parser_->GetPPS(curr_pps_id_); - LOG_ASSERT(pic_params) << "No picture params for ID " << curr_pps_id_; - - va_wrapper_.SubmitSlice( - pic_params, curr_slice_hdr_.get(), ref_pic_list0, ref_pic_list1, - curr_picture_.get(), curr_slice_hdr_->nalu_data, - curr_slice_hdr_->nalu_size, parser_->GetCurrentSubsamples()); -} - -void H264Decoder::UpdateSequenceParams() { - LOG_ASSERT(parser_->ParseSPS(&curr_sps_id_) == H264Parser::kOk) - << "Error parsing SPS NALU"; - - const H264SPS* sps = parser_->GetSPS(curr_sps_id_); - LOG_ASSERT(sps) << "SPS not present for ID " << curr_sps_id_; - - const gfx::Rect new_visible_rect = - sps->GetVisibleRect().value_or(gfx::Rect()); - if (visible_rect_ != new_visible_rect) { - VLOG(2) << "New visible rect: " << new_visible_rect.ToString(); - visible_rect_ = new_visible_rect; - } - - const gfx::Size new_pic_size = sps->GetCodedSize().value_or(gfx::Size()); - LOG_ASSERT(!new_pic_size.IsEmpty()) << "Invalid picture size"; - - const int width_mb = base::checked_cast<int>(new_pic_size.width()) / 16; - const int height_mb = base::checked_cast<int>(new_pic_size.height()) / 16; - - LOG_ASSERT(std::numeric_limits<int>::max() / width_mb > height_mb) - << "Picture size is too big: " << new_pic_size.ToString(); - - // Spec A.3.1 and A.3.2 - // For Baseline, Constrained Baseline and Main profile, the indicated level is - // Level 1b if level_idc is equal to 11 and constraint_set3_flag is equal to 1 - uint8_t level = base::checked_cast<uint8_t>(sps->level_idc); - if ((sps->profile_idc == H264SPS::kProfileIDCBaseline || - sps->profile_idc == H264SPS::kProfileIDCConstrainedBaseline || - sps->profile_idc == H264SPS::kProfileIDCMain) && - level == 11 && sps->constraint_set3_flag) { - level = 9; // Level 1b - } - int max_dpb_mbs = base::checked_cast<int>(H264LevelToMaxDpbMbs(level)); - LOG_ASSERT(max_dpb_mbs) << "Invalid profile level " << level; - - // MaxDpbFrames from level limits per spec. - size_t max_dpb_frames = std::min(max_dpb_mbs / (width_mb * height_mb), - static_cast<int>(H264DPB::kDPBMaxSize)); - VLOG(1) << "MaxDpbFrames: " << max_dpb_frames - << ", max_num_ref_frames: " << sps->max_num_ref_frames - << ", max_dec_frame_buffering: " << sps->max_dec_frame_buffering; - - // Set DPB size to at least the level limit, or what the stream requires. - size_t max_dpb_size = - std::max(static_cast<int>(max_dpb_frames), - std::max(sps->max_num_ref_frames, sps->max_dec_frame_buffering)); - // Some non-conforming streams specify more frames are needed than the current - // level limit. Allow this, but only up to the maximum number of reference - // frames allowed per spec. - LOG_ASSERT(max_dpb_size <= max_dpb_frames) - << "Invalid stream, DPB size > MaxDpbFrames"; - LOG_ASSERT(max_dpb_size != 0 && max_dpb_size <= H264DPB::kDPBMaxSize) - << "Invalid DPB size: " << max_dpb_size; - - LOG_ASSERT(sps->chroma_format_idc == 1) << "Only YUV 4:2:0 is supported"; - - dpb_.set_max_num_pics(max_dpb_size); - - UpdateMaxNumReorderFrames(sps); -} - -void H264Decoder::UpdatePictureParams() { - LOG_ASSERT(parser_->ParsePPS(&curr_pps_id_) == H264Parser::kOk) - << "Error parsing PPS NALU"; -} - -void H264Decoder::DecodeFrame() { - va_wrapper_.SubmitDecode(curr_picture_); -} - -void H264Decoder::FinishPicture(scoped_refptr<H264Picture> pic) { - // Finish processing the picture. - // Start by storing previous picture data for later use. - if (pic->ref) { - ReferencePictureMarking(pic); - prev_ref_has_memmgmnt5_ = pic->mem_mgmt_5; - prev_ref_top_field_order_cnt_ = pic->top_field_order_cnt; - prev_ref_pic_order_cnt_msb_ = pic->pic_order_cnt_msb; - prev_ref_pic_order_cnt_lsb_ = pic->pic_order_cnt_lsb; - prev_ref_field_ = pic->field; - prev_ref_frame_num_ = pic->frame_num; - } - prev_frame_num_ = pic->frame_num; - prev_has_memmgmnt5_ = pic->mem_mgmt_5; - prev_frame_num_offset_ = pic->frame_num_offset; - - dpb_.DeleteUnused(); - - VLOG(4) << "Finishing picture frame_num: " << pic->frame_num - << ", poc: " << pic->pic_order_cnt - << ", entries in DPB: " << dpb_.size(); - if (recovery_frame_cnt_) { - // This is the first picture after the recovery point SEI message. Computes - // the frame_num of the frame that should be output from (Spec D.2.8). - recovery_frame_num_ = - (*recovery_frame_cnt_ + pic->frame_num) % max_frame_num_; - VLOG(3) << "recovery_frame_num_" << *recovery_frame_num_; - recovery_frame_cnt_.reset(); - } - - // Get all pictures that haven't been outputted yet. - H264Picture::Vector not_outputted; - dpb_.GetNotOutputtedPicsAppending(¬_outputted); - // Include the one we've just decoded. - not_outputted.push_back(pic); - - // Sort in output order. - std::sort(not_outputted.begin(), not_outputted.end(), POCAscCompare()); - - // Try to output as many pictures as we can. A picture can be output, - // if the number of decoded and not yet outputted pictures that would remain - // in DPB afterwards would at least be equal to max_num_reorder_frames. - // If the outputted picture is not a reference picture, it doesn't have - // to remain in the DPB and can be removed. - auto output_candidate = not_outputted.begin(); - size_t num_remaining = not_outputted.size(); - while (num_remaining > max_num_reorder_frames_ || - // If the condition below is used, this is an invalid stream. We should - // not be forced to output beyond max_num_reorder_frames in order to - // make room in DPB to store the current picture (if we need to do so). - // However, if this happens, ignore max_num_reorder_frames and try - // to output more. This may cause out-of-order output, but is not - // fatal, and better than failing instead. - ((dpb_.IsFull() && (!pic->outputted || pic->ref)) && num_remaining)) { - VLOG_IF(1, num_remaining <= max_num_reorder_frames_) - << "Invalid stream: max_num_reorder_frames not preserved"; - - if (!recovery_frame_num_ || - // If we are decoding ahead to reach a SEI recovery point, skip - // outputting all pictures before it, to avoid outputting corrupted - // frames. - (*output_candidate)->frame_num == *recovery_frame_num_) { - recovery_frame_num_ = absl::nullopt; - output_queue.push(*output_candidate); - (*output_candidate)->outputted = true; - } - - if (!(*output_candidate)->ref) { - // Current picture hasn't been inserted into DPB yet, so don't remove it - // if we managed to output it immediately. - int outputted_poc = (*output_candidate)->pic_order_cnt; - if (outputted_poc != pic->pic_order_cnt) { - dpb_.DeleteByPOC(outputted_poc); - } - } - - ++output_candidate; - --num_remaining; - } - - // If we haven't managed to output the picture that we just decoded, or if - // it's a reference picture, we have to store it in DPB. - if (!pic->outputted || pic->ref) { - if (dpb_.IsFull()) { - // If we haven't managed to output anything to free up space in DPB - // to store this picture, it's an error in the stream. - VLOG(1) << "Could not free up space in DPB!"; - } - - dpb_.StorePic(std::move(pic)); - } -} - -bool H264Decoder::GetStreamMetadata() { - bool found_sps = false; - while (true) { - curr_nalu_ = std::make_unique<H264NALU>(); - H264Parser::Result parser_result = - parser_->AdvanceToNextNALU(curr_nalu_.get()); - if (parser_result == H264Parser::kEOStream) - return found_sps; - - if (curr_nalu_->nal_unit_type == H264NALU::kNonIDRSlice || - curr_nalu_->nal_unit_type == H264NALU::kIDRSlice) { - return found_sps; - } else if (curr_nalu_->nal_unit_type == H264NALU::kSPS) { - found_sps = true; - UpdateSequenceParams(); - } else if (curr_nalu_->nal_unit_type == H264NALU::kPPS) { - UpdatePictureParams(); - } else { - VLOG(4) << "Skipping NALU type " << curr_nalu_->nal_unit_type; - } - } -} - -bool H264Decoder::IsNewFrame() { - if (curr_slice_hdr_->frame_num != curr_picture_->frame_num || - curr_slice_hdr_->pic_parameter_set_id != curr_pps_id_ || - curr_slice_hdr_->nal_ref_idc != curr_picture_->nal_ref_idc || - curr_slice_hdr_->idr_pic_flag != curr_picture_->idr || - (curr_slice_hdr_->idr_pic_flag && - (curr_slice_hdr_->idr_pic_id != curr_picture_->idr_pic_id || - curr_slice_hdr_->first_mb_in_slice == 0))) { - return true; - } - - const H264SPS* sequence_params = parser_->GetSPS(curr_sps_id_); - if (!sequence_params) - return false; - - if (sequence_params->pic_order_cnt_type == - curr_picture_->pic_order_cnt_type) { - if (curr_picture_->pic_order_cnt_type == 0) { - if (curr_slice_hdr_->pic_order_cnt_lsb != - curr_picture_->pic_order_cnt_lsb || - curr_slice_hdr_->delta_pic_order_cnt_bottom != - curr_picture_->delta_pic_order_cnt_bottom) { - return true; - } - } else if (curr_picture_->pic_order_cnt_type == 1) { - if (curr_slice_hdr_->delta_pic_order_cnt0 != - curr_picture_->delta_pic_order_cnt0 || - curr_slice_hdr_->delta_pic_order_cnt1 != - curr_picture_->delta_pic_order_cnt1) { - return true; - } - } - } - - return false; -} - -void H264Decoder::ExtractSliceHeader() { - curr_slice_hdr_ = std::make_unique<H264SliceHeader>(); - H264Parser::Result result = - parser_->ParseSliceHeader(*curr_nalu_, curr_slice_hdr_.get()); - LOG_ASSERT(result == H264Parser::kOk) - << "Error parsing slice header! Parser returned " << result; -} - -void H264Decoder::StartNewFrame() { - if (curr_slice_hdr_->idr_pic_flag) { - if (!curr_slice_hdr_->no_output_of_prior_pics_flag) - FlushDPB(); - - dpb_.Clear(); - } - - curr_pps_id_ = curr_slice_hdr_->pic_parameter_set_id; - const H264PPS* picture_params = parser_->GetPPS(curr_pps_id_); - LOG_ASSERT(picture_params) - << "Error extracting picture parameters for ID " << curr_pps_id_; - - curr_sps_id_ = picture_params->seq_parameter_set_id; - const H264SPS* sequence_params = parser_->GetSPS(curr_sps_id_); - LOG_ASSERT(sequence_params) - << "Error extracting sequence parameters for ID" << curr_sps_id_; - - curr_picture_ = va_wrapper_.CreatePicture(sequence_params); - - max_frame_num_ = 1 << (sequence_params->log2_max_frame_num_minus4 + 4); - int frame_num = curr_slice_hdr_->frame_num; - - if (curr_slice_hdr_->idr_pic_flag) - prev_ref_frame_num_ = 0; - - if (frame_num != prev_ref_frame_num_ && - frame_num != (prev_ref_frame_num_ + 1) % max_frame_num_) { - LOG_ASSERT(HandleFrameNumGap(frame_num)) << "Error handling frame num gap"; - } - - LOG_ASSERT(InitCurrPicture(curr_slice_hdr_.get())) << "Error initializing" - << " picture."; - - UpdatePicNums(frame_num); - ConstructReferencePicListsP(); - ConstructReferencePicListsB(); - - va_wrapper_.SubmitFrameMetadata(sequence_params, picture_params, dpb_, - ref_pic_list_p0_, ref_pic_list_b0_, - ref_pic_list_b1_, curr_picture_); -} - -bool H264Decoder::InitCurrPicture(const H264SliceHeader* slice_hdr) { - if (!FillH264PictureFromSliceHeader(parser_->GetSPS(curr_sps_id_), *slice_hdr, - curr_picture_.get())) { - return false; - } - - if (!CalculatePicOrderCounts(curr_picture_)) - return false; - - curr_picture_->long_term_reference_flag = slice_hdr->long_term_reference_flag; - curr_picture_->adaptive_ref_pic_marking_mode_flag = - slice_hdr->adaptive_ref_pic_marking_mode_flag; - - // If the slice header indicates we will have to perform reference marking - // process after this picture is decoded, store required data for that - // purpose. - if (slice_hdr->adaptive_ref_pic_marking_mode_flag) { - static_assert(sizeof(curr_picture_->ref_pic_marking) == - sizeof(slice_hdr->ref_pic_marking), - "Array sizes of ref pic marking do not match."); - memcpy(curr_picture_->ref_pic_marking, slice_hdr->ref_pic_marking, - sizeof(curr_picture_->ref_pic_marking)); - } - - curr_picture_->visible_rect = visible_rect_; - - return true; -} - -void H264Decoder::ConstructReferencePicListsP() { - // RefPicList0 (8.2.4.2.1) [[1] [2]], where: - // [1] shortterm ref pics sorted by descending pic_num, - // [2] longterm ref pics by ascending long_term_pic_num. - ref_pic_list_p0_.clear(); - - // First get the short ref pics... - dpb_.GetShortTermRefPicsAppending(&ref_pic_list_p0_); - size_t num_short_refs = ref_pic_list_p0_.size(); - - // and sort them to get [1]. - std::sort(ref_pic_list_p0_.begin(), ref_pic_list_p0_.end(), - PicNumDescCompare()); - - // Now get long term pics and sort them by long_term_pic_num to get [2]. - dpb_.GetLongTermRefPicsAppending(&ref_pic_list_p0_); - std::sort(ref_pic_list_p0_.begin() + num_short_refs, ref_pic_list_p0_.end(), - LongTermPicNumAscCompare()); -} - -void H264Decoder::ConstructReferencePicListsB() { - // RefPicList0 (8.2.4.2.3) [[1] [2] [3]], where: - // [1] shortterm ref pics with POC < curr_pic's POC sorted by descending POC, - // [2] shortterm ref pics with POC > curr_pic's POC by ascending POC, - // [3] longterm ref pics by ascending long_term_pic_num. - ref_pic_list_b0_.clear(); - ref_pic_list_b1_.clear(); - dpb_.GetShortTermRefPicsAppending(&ref_pic_list_b0_); - size_t num_short_refs = ref_pic_list_b0_.size(); - - // First sort ascending, this will put [1] in right place and finish [2]. - std::sort(ref_pic_list_b0_.begin(), ref_pic_list_b0_.end(), POCAscCompare()); - - // Find first with POC > curr_pic's POC to get first element in [2]... - H264Picture::Vector::iterator iter; - iter = std::upper_bound(ref_pic_list_b0_.begin(), ref_pic_list_b0_.end(), - curr_picture_.get(), POCAscCompare()); - - // and sort [1] descending, thus finishing sequence [1] [2]. - std::sort(ref_pic_list_b0_.begin(), iter, POCDescCompare()); - - // Now add [3] and sort by ascending long_term_pic_num. - dpb_.GetLongTermRefPicsAppending(&ref_pic_list_b0_); - std::sort(ref_pic_list_b0_.begin() + num_short_refs, ref_pic_list_b0_.end(), - LongTermPicNumAscCompare()); - - // RefPicList1 (8.2.4.2.4) [[1] [2] [3]], where: - // [1] shortterm ref pics with POC > curr_pic's POC sorted by ascending POC, - // [2] shortterm ref pics with POC < curr_pic's POC by descending POC, - // [3] longterm ref pics by ascending long_term_pic_num. - - dpb_.GetShortTermRefPicsAppending(&ref_pic_list_b1_); - num_short_refs = ref_pic_list_b1_.size(); - - // First sort by descending POC. - std::sort(ref_pic_list_b1_.begin(), ref_pic_list_b1_.end(), POCDescCompare()); - - // Find first with POC < curr_pic's POC to get first element in [2]... - iter = std::upper_bound(ref_pic_list_b1_.begin(), ref_pic_list_b1_.end(), - curr_picture_.get(), POCDescCompare()); - - // and sort [1] ascending. - std::sort(ref_pic_list_b1_.begin(), iter, POCAscCompare()); - - // Now add [3] and sort by ascending long_term_pic_num - dpb_.GetLongTermRefPicsAppending(&ref_pic_list_b1_); - std::sort(ref_pic_list_b1_.begin() + num_short_refs, ref_pic_list_b1_.end(), - LongTermPicNumAscCompare()); - - // If lists identical, swap first two entries in RefPicList1 (spec 8.2.4.2.3) - if (ref_pic_list_b1_.size() > 1 && - std::equal(ref_pic_list_b0_.begin(), ref_pic_list_b0_.end(), - ref_pic_list_b1_.begin())) - std::swap(ref_pic_list_b1_[0], ref_pic_list_b1_[1]); -} - -void H264Decoder::UpdatePicNums(int frame_num) { - for (auto& pic : dpb_) { - if (!pic->ref) - continue; - - // 8.2.4.1. Assumes non-interlaced stream. - DCHECK_EQ(pic->field, H264Picture::FIELD_NONE); - if (pic->long_term) { - pic->long_term_pic_num = pic->long_term_frame_idx; - } else { - if (pic->frame_num > frame_num) - pic->frame_num_wrap = pic->frame_num - max_frame_num_; - else - pic->frame_num_wrap = pic->frame_num; - - pic->pic_num = pic->frame_num_wrap; - } - } -} - -bool H264Decoder::InitNonexistingPicture(scoped_refptr<H264Picture> pic, - int frame_num, - bool ref) { - pic->nonexisting = true; - pic->nal_ref_idc = 1; - pic->frame_num = pic->pic_num = frame_num; - pic->adaptive_ref_pic_marking_mode_flag = false; - pic->ref = ref; - pic->long_term_reference_flag = false; - pic->field = H264Picture::FIELD_NONE; - - return CalculatePicOrderCounts(pic); -} - -bool H264Decoder::HandleFrameNumGap(int frame_num) { - const H264SPS* sps = parser_->GetSPS(curr_sps_id_); - if (!sps) - return false; - - if (!sps->gaps_in_frame_num_value_allowed_flag) { - VLOG(1) << "Invalid frame_num: " << frame_num; - // TODO(b:129119729, b:146914440): Youtube android app sometimes sends an - // invalid frame number after a seek. The sequence goes like: - // Seek, SPS, PPS, IDR-frame, non-IDR, ... non-IDR with invalid number. - // The only way to work around this reliably is to ignore this error. - // Video playback is not affected, no artefacts are visible. - // return false; - } - - VLOG(2) << "Handling frame_num gap: " << prev_ref_frame_num_ << "->" - << frame_num; - - // 7.4.3/7-23 - int unused_short_term_frame_num = (prev_ref_frame_num_ + 1) % max_frame_num_; - while (unused_short_term_frame_num != frame_num) { - scoped_refptr<H264Picture> pic = va_wrapper_.CreatePicture(sps); - if (!InitNonexistingPicture(pic, unused_short_term_frame_num, true)) - return false; - - UpdatePicNums(unused_short_term_frame_num); - - FinishPicture(pic); - - unused_short_term_frame_num++; - unused_short_term_frame_num %= max_frame_num_; - } - - return true; -} - -bool H264Decoder::CalculatePicOrderCounts(scoped_refptr<H264Picture> pic) { - const H264SPS* sps = parser_->GetSPS(curr_sps_id_); - if (!sps) - return false; - - switch (pic->pic_order_cnt_type) { - case 0: { - // See spec 8.2.1.1. - int prev_pic_order_cnt_msb, prev_pic_order_cnt_lsb; - - if (pic->idr) { - prev_pic_order_cnt_msb = prev_pic_order_cnt_lsb = 0; - } else { - if (prev_ref_has_memmgmnt5_) { - if (prev_ref_field_ != H264Picture::FIELD_BOTTOM) { - prev_pic_order_cnt_msb = 0; - prev_pic_order_cnt_lsb = prev_ref_top_field_order_cnt_; - } else { - prev_pic_order_cnt_msb = 0; - prev_pic_order_cnt_lsb = 0; - } - } else { - prev_pic_order_cnt_msb = prev_ref_pic_order_cnt_msb_; - prev_pic_order_cnt_lsb = prev_ref_pic_order_cnt_lsb_; - } - } - - int max_pic_order_cnt_lsb = - 1 << (sps->log2_max_pic_order_cnt_lsb_minus4 + 4); - DCHECK_NE(max_pic_order_cnt_lsb, 0); - if ((pic->pic_order_cnt_lsb < prev_pic_order_cnt_lsb) && - (prev_pic_order_cnt_lsb - pic->pic_order_cnt_lsb >= - max_pic_order_cnt_lsb / 2)) { - pic->pic_order_cnt_msb = prev_pic_order_cnt_msb + max_pic_order_cnt_lsb; - } else if ((pic->pic_order_cnt_lsb > prev_pic_order_cnt_lsb) && - (pic->pic_order_cnt_lsb - prev_pic_order_cnt_lsb > - max_pic_order_cnt_lsb / 2)) { - pic->pic_order_cnt_msb = prev_pic_order_cnt_msb - max_pic_order_cnt_lsb; - } else { - pic->pic_order_cnt_msb = prev_pic_order_cnt_msb; - } - - if (pic->field != H264Picture::FIELD_BOTTOM) { - pic->top_field_order_cnt = - pic->pic_order_cnt_msb + pic->pic_order_cnt_lsb; - } - - if (pic->field != H264Picture::FIELD_TOP) { - if (pic->field == H264Picture::FIELD_NONE) { - pic->bottom_field_order_cnt = - pic->top_field_order_cnt + pic->delta_pic_order_cnt_bottom; - } else { - pic->bottom_field_order_cnt = - pic->pic_order_cnt_msb + pic->pic_order_cnt_lsb; - } - } - break; - } - - case 1: { - // See spec 8.2.1.2. - if (prev_has_memmgmnt5_) { - prev_frame_num_offset_ = 0; - } - - if (pic->idr) { - pic->frame_num_offset = 0; - } else if (prev_frame_num_ > pic->frame_num) { - pic->frame_num_offset = prev_frame_num_offset_ + max_frame_num_; - } else { - pic->frame_num_offset = prev_frame_num_offset_; - } - - int abs_frame_num = 0; - if (sps->num_ref_frames_in_pic_order_cnt_cycle != 0) { - abs_frame_num = pic->frame_num_offset + pic->frame_num; - } else { - abs_frame_num = 0; - } - - if (pic->nal_ref_idc == 0 && abs_frame_num > 0) { - --abs_frame_num; - } - - int expected_pic_order_cnt = 0; - if (abs_frame_num > 0) { - if (sps->num_ref_frames_in_pic_order_cnt_cycle == 0) { - VLOG(1) << "Invalid num_ref_frames_in_pic_order_cnt_cycle " - << "in stream"; - return false; - } - - int pic_order_cnt_cycle_cnt = - (abs_frame_num - 1) / sps->num_ref_frames_in_pic_order_cnt_cycle; - int frame_num_in_pic_order_cnt_cycle = - (abs_frame_num - 1) % sps->num_ref_frames_in_pic_order_cnt_cycle; - - expected_pic_order_cnt = pic_order_cnt_cycle_cnt * - sps->expected_delta_per_pic_order_cnt_cycle; - // frame_num_in_pic_order_cnt_cycle is verified < 255 in parser - for (int i = 0; i <= frame_num_in_pic_order_cnt_cycle; ++i) { - expected_pic_order_cnt += sps->offset_for_ref_frame[i]; - } - } - - if (!pic->nal_ref_idc) { - expected_pic_order_cnt += sps->offset_for_non_ref_pic; - } - - if (pic->field == H264Picture::FIELD_NONE) { - pic->top_field_order_cnt = - expected_pic_order_cnt + pic->delta_pic_order_cnt0; - pic->bottom_field_order_cnt = pic->top_field_order_cnt + - sps->offset_for_top_to_bottom_field + - pic->delta_pic_order_cnt1; - } else if (pic->field != H264Picture::FIELD_BOTTOM) { - pic->top_field_order_cnt = - expected_pic_order_cnt + pic->delta_pic_order_cnt0; - } else { - pic->bottom_field_order_cnt = expected_pic_order_cnt + - sps->offset_for_top_to_bottom_field + - pic->delta_pic_order_cnt0; - } - break; - } - - case 2: { - // See spec 8.2.1.3. - if (prev_has_memmgmnt5_) { - prev_frame_num_offset_ = 0; - } - - if (pic->idr) { - pic->frame_num_offset = 0; - } else if (prev_frame_num_ > pic->frame_num) { - pic->frame_num_offset = prev_frame_num_offset_ + max_frame_num_; - } else { - pic->frame_num_offset = prev_frame_num_offset_; - } - - int temp_pic_order_cnt; - if (pic->idr) { - temp_pic_order_cnt = 0; - } else if (!pic->nal_ref_idc) { - temp_pic_order_cnt = 2 * (pic->frame_num_offset + pic->frame_num) - 1; - } else { - temp_pic_order_cnt = 2 * (pic->frame_num_offset + pic->frame_num); - } - - if (pic->field == H264Picture::FIELD_NONE) { - pic->top_field_order_cnt = temp_pic_order_cnt; - pic->bottom_field_order_cnt = temp_pic_order_cnt; - } else if (pic->field == H264Picture::FIELD_BOTTOM) { - pic->bottom_field_order_cnt = temp_pic_order_cnt; - } else { - pic->top_field_order_cnt = temp_pic_order_cnt; - } - break; - } - - default: - VLOG(1) << "Invalid pic_order_cnt_type: " << sps->pic_order_cnt_type; - return false; - } - - switch (pic->field) { - case H264Picture::FIELD_NONE: - pic->pic_order_cnt = - std::min(pic->top_field_order_cnt, pic->bottom_field_order_cnt); - break; - case H264Picture::FIELD_TOP: - pic->pic_order_cnt = pic->top_field_order_cnt; - break; - case H264Picture::FIELD_BOTTOM: - pic->pic_order_cnt = pic->bottom_field_order_cnt; - break; - } - - return true; -} - -void H264Decoder::UpdateMaxNumReorderFrames(const H264SPS* sps) { - if (sps->vui_parameters_present_flag && sps->bitstream_restriction_flag) { - max_num_reorder_frames_ = - base::checked_cast<size_t>(sps->max_num_reorder_frames); - } else if (sps->constraint_set3_flag) { - // max_num_reorder_frames not present, infer from profile/constraints - // (see VUI semantics in spec). - switch (sps->profile_idc) { - case 44: - case 86: - case 100: - case 110: - case 122: - case 244: - max_num_reorder_frames_ = 0; - break; - default: - max_num_reorder_frames_ = dpb_.max_num_pics(); - break; - } - } else { - max_num_reorder_frames_ = dpb_.max_num_pics(); - } -} - -bool H264Decoder::ModifyReferencePicLists(const H264SliceHeader* slice_hdr, - H264Picture::Vector* ref_pic_list0, - H264Picture::Vector* ref_pic_list1) { - ref_pic_list0->clear(); - ref_pic_list1->clear(); - - // Fill reference picture lists for B and S/SP slices. - if (slice_hdr->IsPSlice() || slice_hdr->IsSPSlice()) { - *ref_pic_list0 = ref_pic_list_p0_; - return ModifyReferencePicList(slice_hdr, 0, ref_pic_list0); - } else if (slice_hdr->IsBSlice()) { - *ref_pic_list0 = ref_pic_list_b0_; - *ref_pic_list1 = ref_pic_list_b1_; - return ModifyReferencePicList(slice_hdr, 0, ref_pic_list0) && - ModifyReferencePicList(slice_hdr, 1, ref_pic_list1); - } - - return true; -} - -bool H264Decoder::ModifyReferencePicList(const H264SliceHeader* slice_hdr, - int list, - H264Picture::Vector* ref_pic_listx) { - bool ref_pic_list_modification_flag_lX; - int num_ref_idx_lX_active_minus1; - const H264ModificationOfPicNum* list_mod; - - // This can process either ref_pic_list0 or ref_pic_list1, depending on - // the list argument. Set up pointers to proper list to be processed here. - if (list == 0) { - ref_pic_list_modification_flag_lX = - slice_hdr->ref_pic_list_modification_flag_l0; - num_ref_idx_lX_active_minus1 = slice_hdr->num_ref_idx_l0_active_minus1; - list_mod = slice_hdr->ref_list_l0_modifications; - } else { - ref_pic_list_modification_flag_lX = - slice_hdr->ref_pic_list_modification_flag_l1; - num_ref_idx_lX_active_minus1 = slice_hdr->num_ref_idx_l1_active_minus1; - list_mod = slice_hdr->ref_list_l1_modifications; - } - - // Resize the list to the size requested in the slice header. - // Note that per 8.2.4.2 it's possible for num_ref_idx_lX_active_minus1 to - // indicate there should be more ref pics on list than we constructed. - // Those superfluous ones should be treated as non-reference and will be - // initialized to nullptr, which must be handled by clients. - DCHECK_GE(num_ref_idx_lX_active_minus1, 0); - size_t original_size = ref_pic_listx->size(); - ref_pic_listx->resize(num_ref_idx_lX_active_minus1 + 1); - for (int i = original_size; i < num_ref_idx_lX_active_minus1 + 1; i++) { - scoped_refptr<H264Picture> nonref_pic = - base::WrapRefCounted(new H264Picture(nullptr)); - LOG_ASSERT(InitNonexistingPicture(nonref_pic, 0, false)); - (*ref_pic_listx)[i] = nonref_pic; - } - - if (!ref_pic_list_modification_flag_lX) - return true; - - // Spec 8.2.4.3: - // Reorder pictures on the list in a way specified in the stream. - int pic_num_lx_pred = curr_picture_->pic_num; - int ref_idx_lx = 0; - int pic_num_lx_no_wrap; - int pic_num_lx; - bool done = false; - scoped_refptr<H264Picture> pic; - for (int i = 0; i < H264SliceHeader::kRefListModSize && !done; ++i) { - switch (list_mod->modification_of_pic_nums_idc) { - case 0: - case 1: - // Modify short reference picture position. - if (list_mod->modification_of_pic_nums_idc == 0) { - // Subtract given value from predicted PicNum. - pic_num_lx_no_wrap = - pic_num_lx_pred - - (static_cast<int>(list_mod->abs_diff_pic_num_minus1) + 1); - // Wrap around max_pic_num_ if it becomes < 0 as result - // of subtraction. - if (pic_num_lx_no_wrap < 0) - pic_num_lx_no_wrap += max_pic_num_; - } else { - // Add given value to predicted PicNum. - pic_num_lx_no_wrap = - pic_num_lx_pred + - (static_cast<int>(list_mod->abs_diff_pic_num_minus1) + 1); - // Wrap around max_pic_num_ if it becomes >= max_pic_num_ as result - // of the addition. - if (pic_num_lx_no_wrap >= max_pic_num_) - pic_num_lx_no_wrap -= max_pic_num_; - } - - // For use in next iteration. - pic_num_lx_pred = pic_num_lx_no_wrap; - - if (pic_num_lx_no_wrap > curr_picture_->pic_num) - pic_num_lx = pic_num_lx_no_wrap - max_pic_num_; - else - pic_num_lx = pic_num_lx_no_wrap; - - DCHECK_LT(num_ref_idx_lX_active_minus1 + 1, - H264SliceHeader::kRefListModSize); - pic = dpb_.GetShortRefPicByPicNum(pic_num_lx); - if (!pic) { - VLOG(1) << "Malformed stream, no pic num " << pic_num_lx; - return false; - } - - if (ref_idx_lx > num_ref_idx_lX_active_minus1) { - VLOG(1) << "Bounds mismatch: expected " << ref_idx_lx - << " <= " << num_ref_idx_lX_active_minus1; - return false; - } - - ShiftRightAndInsert(ref_pic_listx, ref_idx_lx, - num_ref_idx_lX_active_minus1, pic); - ref_idx_lx++; - - for (int src = ref_idx_lx, dst = ref_idx_lx; - src <= num_ref_idx_lX_active_minus1 + 1; ++src) { - auto* src_pic = (*ref_pic_listx)[src].get(); - int src_pic_num_lx = src_pic ? PicNumF(*src_pic) : -1; - if (src_pic_num_lx != pic_num_lx) - (*ref_pic_listx)[dst++] = (*ref_pic_listx)[src]; - } - break; - - case 2: - // Modify long term reference picture position. - DCHECK_LT(num_ref_idx_lX_active_minus1 + 1, - H264SliceHeader::kRefListModSize); - pic = dpb_.GetLongRefPicByLongTermPicNum(list_mod->long_term_pic_num); - if (!pic) { - VLOG(1) << "Malformed stream, no pic num " - << list_mod->long_term_pic_num; - return false; - } - ShiftRightAndInsert(ref_pic_listx, ref_idx_lx, - num_ref_idx_lX_active_minus1, pic); - ref_idx_lx++; - - for (int src = ref_idx_lx, dst = ref_idx_lx; - src <= num_ref_idx_lX_active_minus1 + 1; ++src) { - if ((*ref_pic_listx)[src] && - LongTermPicNumF(*(*ref_pic_listx)[src]) != - static_cast<int>(list_mod->long_term_pic_num)) - (*ref_pic_listx)[dst++] = (*ref_pic_listx)[src]; - } - break; - - case 3: - // End of modification list. - done = true; - break; - - default: - // May be recoverable. - VLOG(1) << "Invalid modification_of_pic_nums_idc=" - << list_mod->modification_of_pic_nums_idc << " in position " - << i; - break; - } - - ++list_mod; - } - - // Per NOTE 2 in 8.2.4.3.2, the ref_pic_listx size in the above loop is - // temporarily made one element longer than the required final list. - // Resize the list back to its required size. - ref_pic_listx->resize(num_ref_idx_lX_active_minus1 + 1); - - return true; -} - -// This method ensures that DPB does not overflow, either by removing -// reference pictures as specified in the stream, or using a sliding window -// procedure to remove the oldest one. -// It also performs marking and unmarking pictures as reference. -// See spac 8.2.5.1. -bool H264Decoder::ReferencePictureMarking(scoped_refptr<H264Picture> pic) { - // If the current picture is an IDR, all reference pictures are unmarked. - if (pic->idr) { - dpb_.MarkAllUnusedForRef(); - - if (pic->long_term_reference_flag) { - pic->long_term = true; - pic->long_term_frame_idx = 0; - max_long_term_frame_idx_ = 0; - } else { - pic->long_term = false; - max_long_term_frame_idx_ = -1; - } - - return true; - } - - // Not an IDR. If the stream contains instructions on how to discard pictures - // from DPB and how to mark/unmark existing reference pictures, do so. - // Otherwise, fall back to default sliding window process. - if (pic->adaptive_ref_pic_marking_mode_flag) { - DCHECK(!pic->nonexisting); - return HandleMemoryManagementOps(pic); - } else { - return SlidingWindowPictureMarking(); - } -} - -bool H264Decoder::HandleMemoryManagementOps(scoped_refptr<H264Picture> pic) { - // 8.2.5.4 - for (size_t i = 0; i < std::size(pic->ref_pic_marking); ++i) { - // Code below does not support interlaced stream (per-field pictures). - H264DecRefPicMarking* ref_pic_marking = &pic->ref_pic_marking[i]; - scoped_refptr<H264Picture> to_mark; - int pic_num_x; - - switch (ref_pic_marking->memory_mgmnt_control_operation) { - case 0: - // Normal end of operations' specification. - return true; - - case 1: - // Mark a short term reference picture as unused so it can be removed - // if outputted. - pic_num_x = - pic->pic_num - (ref_pic_marking->difference_of_pic_nums_minus1 + 1); - to_mark = dpb_.GetShortRefPicByPicNum(pic_num_x); - if (to_mark) { - to_mark->ref = false; - } else { - VLOG(1) << "Invalid short ref pic num to unmark"; - return false; - } - break; - - case 2: - // Mark a long term reference picture as unused so it can be removed - // if outputted. - to_mark = dpb_.GetLongRefPicByLongTermPicNum( - ref_pic_marking->long_term_pic_num); - if (to_mark) { - to_mark->ref = false; - } else { - VLOG(1) << "Invalid long term ref pic num to unmark"; - return false; - } - break; - - case 3: - // Mark a short term reference picture as long term reference. - pic_num_x = - pic->pic_num - (ref_pic_marking->difference_of_pic_nums_minus1 + 1); - to_mark = dpb_.GetShortRefPicByPicNum(pic_num_x); - if (to_mark) { - DCHECK(to_mark->ref && !to_mark->long_term); - to_mark->long_term = true; - to_mark->long_term_frame_idx = ref_pic_marking->long_term_frame_idx; - } else { - VLOG(1) << "Invalid short term ref pic num to mark as long ref"; - return false; - } - break; - - case 4: { - // Unmark all reference pictures with long_term_frame_idx over new max. - max_long_term_frame_idx_ = - ref_pic_marking->max_long_term_frame_idx_plus1 - 1; - H264Picture::Vector long_terms; - dpb_.GetLongTermRefPicsAppending(&long_terms); - for (auto long_term_pic : long_terms) { - DCHECK(long_term_pic->ref && long_term_pic->long_term); - // Ok to cast, max_long_term_frame_idx is much smaller than 16bit. - if (long_term_pic->long_term_frame_idx > - static_cast<int>(max_long_term_frame_idx_)) - long_term_pic->ref = false; - } - break; - } - - case 5: - // Unmark all reference pictures. - dpb_.MarkAllUnusedForRef(); - max_long_term_frame_idx_ = -1; - pic->mem_mgmt_5 = true; - break; - - case 6: { - // Replace long term reference pictures with current picture. - // First unmark if any existing with this long_term_frame_idx... - H264Picture::Vector long_terms; - dpb_.GetLongTermRefPicsAppending(&long_terms); - for (auto long_term_pic : long_terms) { - DCHECK(long_term_pic->ref && long_term_pic->long_term); - // Ok to cast, long_term_frame_idx is much smaller than 16bit. - if (long_term_pic->long_term_frame_idx == - static_cast<int>(ref_pic_marking->long_term_frame_idx)) - long_term_pic->ref = false; - } - - // and mark the current one instead. - pic->ref = true; - pic->long_term = true; - pic->long_term_frame_idx = ref_pic_marking->long_term_frame_idx; - break; - } - - default: - // Would indicate a bug in parser. - NOTREACHED(); - } - } - - return true; -} - -bool H264Decoder::SlidingWindowPictureMarking() { - const H264SPS* sps = parser_->GetSPS(curr_sps_id_); - if (!sps) - return false; - - // 8.2.5.3. Ensure the DPB doesn't overflow by discarding the oldest picture. - int num_ref_pics = dpb_.CountRefPics(); - DCHECK_LE(num_ref_pics, std::max<int>(sps->max_num_ref_frames, 1)); - if (num_ref_pics == std::max<int>(sps->max_num_ref_frames, 1)) { - // Max number of reference pics reached, need to remove one of the short - // term ones. Find smallest frame_num_wrap short reference picture and mark - // it as unused. - scoped_refptr<H264Picture> to_unmark = - dpb_.GetLowestFrameNumWrapShortRefPic(); - if (!to_unmark) { - VLOG(1) << "Couldn't find a short ref picture to unmark"; - return false; - } - - to_unmark->ref = false; - } - - return true; -} - -// See 8.2.4 -int H264Decoder::PicNumF(const H264Picture& pic) const { - if (!pic.long_term) - return pic.pic_num; - else - return max_pic_num_; -} - -// See 8.2.4 -int H264Decoder::LongTermPicNumF(const H264Picture& pic) const { - if (pic.ref && pic.long_term) - return pic.long_term_pic_num; - else - return 2 * (max_long_term_frame_idx_ + 1); -} - -// Shift elements on the |v| starting from |from| to |to|, inclusive, -// one position to the right and insert pic at |from|. -void H264Decoder::ShiftRightAndInsert(H264Picture::Vector* v, - int from, - int to, - scoped_refptr<H264Picture> pic) { - // Security checks, do not disable in Debug mode. - CHECK(from <= to); - CHECK(to <= std::numeric_limits<int>::max() - 2); - // Additional checks. Debug mode ok. - DCHECK(v); - DCHECK(pic); - DCHECK((to + 1 == static_cast<int>(v->size())) || - (to + 2 == static_cast<int>(v->size()))); - - v->resize(to + 2); - - for (int i = to + 1; i > from; --i) - (*v)[i] = (*v)[i - 1]; - - (*v)[from] = std::move(pic); -} - -uint32_t H264Decoder::H264LevelToMaxDpbMbs(uint8_t level) { - switch (level) { - case H264SPS::kLevelIDC1p0: - case H264SPS::kLevelIDC1B: - return 396; - case H264SPS::kLevelIDC1p1: - return 900; - case H264SPS::kLevelIDC1p2: - case H264SPS::kLevelIDC1p3: - case H264SPS::kLevelIDC2p0: - return 2376; - case H264SPS::kLevelIDC2p1: - return 4752; - case H264SPS::kLevelIDC2p2: - case H264SPS::kLevelIDC3p0: - return 8100; - case H264SPS::kLevelIDC3p1: - return 18000; - case H264SPS::kLevelIDC3p2: - return 20480; - case H264SPS::kLevelIDC4p0: - case H264SPS::kLevelIDC4p1: - return 32768; - case H264SPS::kLevelIDC4p2: - return 34816; - case H264SPS::kLevelIDC5p0: - return 110400; - case H264SPS::kLevelIDC5p1: - case H264SPS::kLevelIDC5p2: - return 184320; - case H264SPS::kLevelIDC6p1: - case H264SPS::kLevelIDC6p2: - return 696320; - default: - return 0; - } -} - -void H264Decoder::FlushDPB() { - H264Picture::Vector not_outputted_vec; - dpb_.GetNotOutputtedPicsAppending(¬_outputted_vec); - std::sort(not_outputted_vec.begin(), not_outputted_vec.end(), - POCDescCompare()); - while (!not_outputted_vec.empty()) { - output_queue.push(not_outputted_vec.back()); - not_outputted_vec.back()->outputted = true; - not_outputted_vec.pop_back(); - } - dpb_.Clear(); -} - -} // namespace media::vaapi_test
diff --git a/media/gpu/vaapi/test/h264_decoder.h b/media/gpu/vaapi/test/h264_decoder.h deleted file mode 100644 index 76ff0bd..0000000 --- a/media/gpu/vaapi/test/h264_decoder.h +++ /dev/null
@@ -1,190 +0,0 @@ -// Copyright (c) 2021 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 MEDIA_GPU_VAAPI_TEST_H264_DECODER_H_ -#define MEDIA_GPU_VAAPI_TEST_H264_DECODER_H_ - -#include "media/gpu/vaapi/test/h264_dpb.h" -#include "media/gpu/vaapi/test/h264_vaapi_wrapper.h" -#include "media/gpu/vaapi/test/video_decoder.h" -#include "media/video/h264_parser.h" -#include "ui/gfx/geometry/rect.h" -#include "ui/gfx/geometry/size.h" - -#include <queue> - -namespace media { -namespace vaapi_test { - -class H264Decoder : public VideoDecoder { - public: - H264Decoder(const uint8_t* stream_data, - size_t stream_len, - const VaapiDevice& va_device, - SharedVASurface::FetchPolicy fetch_policy); - H264Decoder(const H264Decoder&) = delete; - H264Decoder& operator=(const H264Decoder&) = delete; - ~H264Decoder() override; - - // VideoDecoder implementation. - VideoDecoder::Result DecodeNextFrame() override; - - private: - // Decode the next frame in the bitstream. - void DecodeNextFrameInStream(); - - // Process a slice. - void ProcessSlice(); - - // Process an SPS NALU. - void UpdateSequenceParams(); - - // Process a PPS NALU. - void UpdatePictureParams(); - - // Issue the final commands to VAAPI to decode the slices we have been - // inputing. - void DecodeFrame(); - - // Finalize the picture and handle reference picture buffer memory management. - void FinishPicture(scoped_refptr<H264Picture> pic); - - // Process SPS and PPS NALUs until we hit a slice header. - bool GetStreamMetadata(); - - // Detects if the last slice header refers to a new frame. - bool IsNewFrame(); - - // Populate some local variables based on a slice NALU. - void ExtractSliceHeader(); - - // Create a new picture and hand some metadata to VAAPI. - void StartNewFrame(); - - // Initialize a picture. - bool InitCurrPicture(const H264SliceHeader* slice_hdr); - - // Some helper functions for preparing the reference picture buffers. H.264 - // has separate P and B frame reference picture buffers. - void ConstructReferencePicListsP(); - void ConstructReferencePicListsB(); - - // Re-order the reference frame buf based on the current frame number. - void UpdatePicNums(int frame_num); - - // Some helper functions for handling gaps in the frame data. - bool InitNonexistingPicture(scoped_refptr<H264Picture> pic, - int frame_num, - bool ref); - bool HandleFrameNumGap(int frame_num); - - // Calculate Pic Order Counts. This is approximately what we would intuitively - // think of as the frame number in display order, except it wraps around. - bool CalculatePicOrderCounts(scoped_refptr<H264Picture> pic); - void UpdateMaxNumReorderFrames(const H264SPS* sps); - - // Populate the reference lists that we send to VAAPI using data from the - // DPB. - bool ModifyReferencePicLists(const H264SliceHeader* slice_hdr, - H264Picture::Vector* ref_pic_list0, - H264Picture::Vector* ref_pic_list1); - bool ModifyReferencePicList(const H264SliceHeader* slice_hdr, - int list, - H264Picture::Vector* ref_pic_listx); - - // Helps manage the DPB and mark what we need to keep for reference and what - // we can mark as unused. Note that a frame might still be kept around even if - // it isn't being used as a reference because we might need to output it. - // Normal H.264 decoder implementations have finer grained cache control, but - // since we can only output one picture DecodeNextFrame() call, we have to - // keep a pretty big cache around until the output catches up to the decode. - bool ReferencePictureMarking(scoped_refptr<H264Picture> pic); - bool HandleMemoryManagementOps(scoped_refptr<H264Picture> pic); - bool SlidingWindowPictureMarking(); - int PicNumF(const H264Picture& pic) const; - int LongTermPicNumF(const H264Picture& pic) const; - static void ShiftRightAndInsert(H264Picture::Vector* v, - int from, - int to, - scoped_refptr<H264Picture> pic); - - // Used for computing how large the DPB should be for each level. - static uint32_t H264LevelToMaxDpbMbs(uint8_t level); - - // Output all remaining images in the DPB. - void FlushDPB(); - - // H.264 NALU parser - std::unique_ptr<H264Parser> parser_; - - // The last sequence param id. - int curr_sps_id_; - - // The last picture param id. - int curr_pps_id_; - - // The last slice header parsed. - std::unique_ptr<H264SliceHeader> curr_slice_hdr_; - - // The last NALU that was parsed. - std::unique_ptr<H264NALU> curr_nalu_; - - // Picture we are currently decoding. Not necessarily the one we will output - // since H.264 sends pictures out of order. - scoped_refptr<H264Picture> curr_picture_; - - // Set once we hit EOS. - bool is_stream_over_; - - // Reference picture lists. P = forward prediction, B = bidirectional - // prediction. - H264Picture::Vector ref_pic_list_p0_; - H264Picture::Vector ref_pic_list_b0_; - H264Picture::Vector ref_pic_list_b1_; - - // Some primitive related to frame number to help with the ordering of the - // reference pictures. Note that "frame_num" in this instance does not - // intuitively refer to the index of the frame when it gets output, but just - // the index of the frame in the bitstream. Pic order count is more closely - // related to output order, but it can also wrap. - int max_frame_num_; - int max_pic_num_; - int max_long_term_frame_idx_; - size_t max_num_reorder_frames_; - int prev_frame_num_; - int prev_ref_frame_num_; - int prev_frame_num_offset_; - bool prev_has_memmgmnt5_; - - // These are absl::nullopt unless get recovery point SEI message after Reset. - // A frame_num of the frame at output order that is correct in content. - absl::optional<int> recovery_frame_num_; - // A value in the recovery point SEI message to compute |recovery_frame_num_| - // later. - absl::optional<int> recovery_frame_cnt_; - - // Buffer object to keep track of our reference images. - H264DPB dpb_; - - // Some handy abstractions for issuing VAAPI calls. - H264VaapiWrapper va_wrapper_; - - // Values related to previously decoded reference picture. - bool prev_ref_has_memmgmnt5_; - int prev_ref_top_field_order_cnt_; - int prev_ref_pic_order_cnt_msb_; - int prev_ref_pic_order_cnt_lsb_; - H264Picture::Field prev_ref_field_; - - // The actual size of the output picture. - gfx::Rect visible_rect_; - - // Pictures to flush in descending POC order. - std::queue<scoped_refptr<H264Picture>> output_queue; -}; - -} // namespace vaapi_test -} // namespace media - -#endif // MEDIA_GPU_VAAPI_TEST_H264_DECODER_H_
diff --git a/media/gpu/vaapi/test/h264_dpb.cc b/media/gpu/vaapi/test/h264_dpb.cc deleted file mode 100644 index 05988116..0000000 --- a/media/gpu/vaapi/test/h264_dpb.cc +++ /dev/null
@@ -1,164 +0,0 @@ -// Copyright (c) 2021 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 "media/gpu/vaapi/test/h264_dpb.h" - -#include "media/gpu/macros.h" -#include "media/gpu/vaapi/test/macros.h" - -namespace media::vaapi_test { - -H264Picture::H264Picture(scoped_refptr<SharedVASurface> target_surface) - : pic_order_cnt_type(0), - top_field_order_cnt(0), - bottom_field_order_cnt(0), - pic_order_cnt(0), - pic_order_cnt_msb(0), - pic_order_cnt_lsb(0), - delta_pic_order_cnt_bottom(0), - delta_pic_order_cnt0(0), - delta_pic_order_cnt1(0), - pic_num(0), - long_term_pic_num(0), - frame_num(0), - frame_num_offset(0), - frame_num_wrap(0), - long_term_frame_idx(0), - type(H264SliceHeader::kPSlice), - nal_ref_idc(0), - idr(false), - idr_pic_id(0), - ref(false), - ref_pic_list_modification_flag_l0(0), - abs_diff_pic_num_minus1(0), - long_term(false), - outputted(false), - mem_mgmt_5(false), - nonexisting(false), - field(FIELD_NONE), - long_term_reference_flag(false), - adaptive_ref_pic_marking_mode_flag(false), - dpb_position(0), - surface(target_surface) {} - -H264Picture::~H264Picture() = default; - -H264DPB::H264DPB() : max_num_pics_(0) {} - -H264DPB::~H264DPB() = default; - -void H264DPB::set_max_num_pics(size_t max_num_pics) { - DCHECK_LE(max_num_pics, static_cast<size_t>(kDPBMaxSize)); - max_num_pics_ = max_num_pics; - if (pics_.size() > max_num_pics_) - pics_.resize(max_num_pics_); -} - -void H264DPB::Clear() { - pics_.clear(); -} - -void H264DPB::UpdatePicPositions() { - size_t i = 0; - for (auto& pic : pics_) { - pic->dpb_position = i; - ++i; - } -} - -void H264DPB::DeleteByPOC(int poc) { - for (auto it = pics_.begin(); it != pics_.end(); ++it) { - if ((*it)->pic_order_cnt == poc) { - pics_.erase(it); - UpdatePicPositions(); - return; - } - } - LOG_ASSERT(false) << "Missing POC: " << poc; -} - -void H264DPB::DeleteUnused() { - for (auto it = pics_.begin(); it != pics_.end();) { - if ((*it)->outputted && !(*it)->ref) - it = pics_.erase(it); - else - ++it; - } - UpdatePicPositions(); -} - -void H264DPB::StorePic(scoped_refptr<H264Picture> pic) { - VLOG(3) << "Adding PicNum: " << pic->pic_num - << " ref: " << static_cast<int>(pic->ref) - << " longterm: " << static_cast<int>(pic->long_term) << " to DPB"; - pic->dpb_position = pics_.size(); - pics_.push_back(std::move(pic)); -} - -int H264DPB::CountRefPics() { - int ret = 0; - for (auto pic : pics_) { - if (pic->ref) - ++ret; - } - return ret; -} - -void H264DPB::MarkAllUnusedForRef() { - for (auto pic : pics_) - pic->ref = false; -} - -scoped_refptr<H264Picture> H264DPB::GetShortRefPicByPicNum(int pic_num) { - for (const auto& pic : pics_) { - if (pic->ref && !pic->long_term && pic->pic_num == pic_num) - return pic; - } - - VLOG(1) << "Missing short ref pic num: " << pic_num; - return nullptr; -} - -scoped_refptr<H264Picture> H264DPB::GetLongRefPicByLongTermPicNum(int pic_num) { - for (const auto& pic : pics_) { - if (pic->ref && pic->long_term && pic->long_term_pic_num == pic_num) - return pic; - } - - VLOG(1) << "Missing long term pic num: " << pic_num; - return nullptr; -} - -scoped_refptr<H264Picture> H264DPB::GetLowestFrameNumWrapShortRefPic() { - scoped_refptr<H264Picture> ret; - for (const auto& pic : pics_) { - if (pic->ref && !pic->long_term && - (!ret || pic->frame_num_wrap < ret->frame_num_wrap)) - ret = pic; - } - return ret; -} - -void H264DPB::GetNotOutputtedPicsAppending(H264Picture::Vector* out) { - for (const auto& pic : pics_) { - if (!pic->outputted) - out->push_back(pic); - } -} - -void H264DPB::GetShortTermRefPicsAppending(H264Picture::Vector* out) { - for (const auto& pic : pics_) { - if (pic->ref && !pic->long_term) - out->push_back(pic); - } -} - -void H264DPB::GetLongTermRefPicsAppending(H264Picture::Vector* out) { - for (const auto& pic : pics_) { - if (pic->ref && pic->long_term) - out->push_back(pic); - } -} - -} // namespace media::vaapi_test
diff --git a/media/gpu/vaapi/test/h264_dpb.h b/media/gpu/vaapi/test/h264_dpb.h deleted file mode 100644 index 312ba2d..0000000 --- a/media/gpu/vaapi/test/h264_dpb.h +++ /dev/null
@@ -1,183 +0,0 @@ -// Copyright (c) 2021 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 MEDIA_GPU_VAAPI_TEST_H264_DPB_H_ -#define MEDIA_GPU_VAAPI_TEST_H264_DPB_H_ - -#include <stddef.h> - -#include <vector> - -#include "base/memory/ref_counted.h" -#include "media/gpu/vaapi/test/shared_va_surface.h" -#include "media/video/h264_parser.h" -#include "ui/gfx/geometry/rect.h" - -namespace media::vaapi_test { - -// Abstract reference of a decoded picture. Helpful for keeping track of not -// only the decoded surface, but metadata necessary for memory management. Note -// that this object owns both the surface of the decoded buffer and the -// compressed slice data buffers memory. -class H264Picture : public base::RefCountedThreadSafe<H264Picture> { - public: - using Vector = std::vector<scoped_refptr<H264Picture>>; - - enum Field { - FIELD_NONE, - FIELD_TOP, - FIELD_BOTTOM, - }; - - // Values calculated per H.264 specification or taken from slice header. - // See spec for more details on each (some names have been converted from - // CamelCase in spec to Chromium-style names). - int pic_order_cnt_type = 0; - int top_field_order_cnt = 0; - int bottom_field_order_cnt = 0; - int pic_order_cnt = 0; // note that this can wrap around - int pic_order_cnt_msb = 0; - int pic_order_cnt_lsb = 0; - int delta_pic_order_cnt_bottom = 0; - int delta_pic_order_cnt0 = 0; - int delta_pic_order_cnt1 = 0; - - int pic_num = 0; - int long_term_pic_num = 0; - int frame_num = 0; // from slice header, not picture order count - int frame_num_offset = 0; - int frame_num_wrap = 0; - int long_term_frame_idx = 0; - - // Keep the underlying data for the VAAPI buffers around as long as the - // surface is around. - std::vector<std::unique_ptr<uint8_t[]>> slice_data_buffers; - - H264SliceHeader::Type type; - int nal_ref_idc = 0; - bool idr = false; // IDR picture? - int idr_pic_id = 0; // Valid only if idr == true. - bool ref = false; // reference picture? - int ref_pic_list_modification_flag_l0 = 0; - int abs_diff_pic_num_minus1 = 0; - bool long_term = false; // long term reference picture? - bool outputted = false; - // Does memory management op 5 needs to be executed after this - // picture has finished decoding? - bool mem_mgmt_5 = false; - - // Created by the decoding process for gaps in frame_num. - // Not for decode or output. - bool nonexisting = false; - - Field field; - - // Values from slice_hdr to be used during reference marking and - // memory management after finishing this picture. - bool long_term_reference_flag = false; - bool adaptive_ref_pic_marking_mode_flag = false; - H264DecRefPicMarking ref_pic_marking[H264SliceHeader::kRefListSize]; - - // Position in DPB (i.e. index in DPB). - int dpb_position = 0; - - // Visible rectangle. Note that this may not match the size of the coded - // picture, since H.264 pads them to be 16 pixel aligned in all dimensions. - // This is the source of truth for the output image size however. - gfx::Rect visible_rect; - - scoped_refptr<SharedVASurface> surface; - - explicit H264Picture(scoped_refptr<SharedVASurface> target_surface); - - protected: - friend class base::RefCountedThreadSafe<H264Picture>; - - virtual ~H264Picture(); -}; - -// DPB - Decoded Picture Buffer. -// Stores decoded pictures that will be used for future display -// and/or reference. -class H264DPB { - public: - H264DPB(); - ~H264DPB(); - - H264DPB(const H264DPB&) = delete; - H264DPB& operator=(const H264DPB&) = delete; - - void set_max_num_pics(size_t max_num_pics); - size_t max_num_pics() const { return max_num_pics_; } - - // Remove unused (not reference and already outputted) pictures from DPB - // and free it. - void DeleteUnused(); - - // Remove a picture by its pic_order_cnt and free it. - void DeleteByPOC(int poc); - - // Clear DPB. - void Clear(); - - // Store picture in DPB. DPB takes ownership of its resources. - void StorePic(scoped_refptr<H264Picture> pic); - - // Return the number of reference pictures in DPB. - int CountRefPics(); - - // Mark all pictures in DPB as unused for reference. - void MarkAllUnusedForRef(); - - // Return a short-term reference picture by its pic_num. - scoped_refptr<H264Picture> GetShortRefPicByPicNum(int pic_num); - - // Return a long-term reference picture by its long_term_pic_num. - scoped_refptr<H264Picture> GetLongRefPicByLongTermPicNum(int pic_num); - - // Return the short reference picture with lowest frame_num. Used for sliding - // window memory management. - scoped_refptr<H264Picture> GetLowestFrameNumWrapShortRefPic(); - - // Append all pictures that have not been outputted yet to the passed |out| - // vector, sorted by lowest pic_order_cnt (in output order). - void GetNotOutputtedPicsAppending(H264Picture::Vector* out); - - // Append all short term reference pictures to the passed |out| vector. - void GetShortTermRefPicsAppending(H264Picture::Vector* out); - - // Append all long term reference pictures to the passed |out| vector. - void GetLongTermRefPicsAppending(H264Picture::Vector* out); - - // Iterators for direct access to DPB contents. - // Will be invalidated after any of Remove* calls. - H264Picture::Vector::iterator begin() { return pics_.begin(); } - H264Picture::Vector::iterator end() { return pics_.end(); } - H264Picture::Vector::const_iterator begin() const { return pics_.begin(); } - H264Picture::Vector::const_iterator end() const { return pics_.end(); } - H264Picture::Vector::const_reverse_iterator rbegin() const { - return pics_.rbegin(); - } - H264Picture::Vector::const_reverse_iterator rend() const { - return pics_.rend(); - } - - size_t size() const { return pics_.size(); } - bool IsFull() const { return pics_.size() >= max_num_pics_; } - - // Per H264 spec, increase to 32 if interlaced video is supported. - enum { - kDPBMaxSize = 16, - }; - - private: - void UpdatePicPositions(); - - H264Picture::Vector pics_; - size_t max_num_pics_ = 0; -}; - -} // namespace media::vaapi_test - -#endif // MEDIA_GPU_VAAPI_TEST_H264_DPB_H_
diff --git a/media/gpu/vaapi/test/h264_vaapi_wrapper.cc b/media/gpu/vaapi/test/h264_vaapi_wrapper.cc deleted file mode 100644 index c878795..0000000 --- a/media/gpu/vaapi/test/h264_vaapi_wrapper.cc +++ /dev/null
@@ -1,397 +0,0 @@ -// Copyright (c) 2021 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 "media/gpu/vaapi/test/h264_vaapi_wrapper.h" - -#include "base/cxx17_backports.h" -#include "base/trace_event/trace_event.h" -#include "media/gpu/macros.h" -#include "media/gpu/vaapi/test/h264_dpb.h" -#include "media/gpu/vaapi/test/macros.h" -#include "media/gpu/vaapi/test/scoped_va_config.h" -#include "media/gpu/vaapi/test/scoped_va_context.h" -#include "media/gpu/vaapi/test/shared_va_surface.h" -#include "media/gpu/vaapi/test/vaapi_device.h" -#include "media/video/h264_parser.h" - -#include <va/va.h> -#include <memory> - -namespace media::vaapi_test { - -namespace { - -// from ITU-T REC H.264 spec -// section 8.5.6 -// "Inverse scanning process for 4x4 transform coefficients and scaling lists" -static constexpr int kZigzagScan4x4[16] = {0, 1, 4, 8, 5, 2, 3, 6, - 9, 12, 13, 10, 7, 11, 14, 15}; - -// section 8.5.7 -// "Inverse scanning process for 8x8 transform coefficients and scaling lists" -static constexpr uint8_t kZigzagScan8x8[64] = { - 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, - 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, - 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, - 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63}; - -VAProfile GetProfile(const H264SPS* sps) { - switch (sps->profile_idc) { - case H264SPS::kProfileIDCBaseline: - return VAProfileH264ConstrainedBaseline; - case H264SPS::kProfileIDCMain: - return VAProfileH264Main; - case H264SPS::kProfileIDCHigh: - return VAProfileH264High; - case H264SPS::kProfileIDSMultiviewHigh: - return VAProfileH264MultiviewHigh; - case H264SPS::kProfileIDStereoHigh: - return VAProfileH264StereoHigh; - default: - LOG_ASSERT(false) << "Invalid IDC profile " << sps->profile_idc; - return VAProfileNone; - } -} - -unsigned int GetFormatForProfile(const VAProfile& profile) { - // VAAPI doesn't support H.264 10 bit color. - return VA_RT_FORMAT_YUV420; -} - -void InitVAPicture(VAPictureH264* va_pic) { - memset(va_pic, 0, sizeof(*va_pic)); - va_pic->picture_id = VA_INVALID_ID; - va_pic->flags = VA_PICTURE_H264_INVALID; -} - -void FillVAPicture(VAPictureH264* va_pic, scoped_refptr<H264Picture> pic) { - VASurfaceID va_surface_id = VA_INVALID_SURFACE; - - if (!pic->nonexisting) - va_surface_id = pic->surface->id(); - - va_pic->picture_id = va_surface_id; - va_pic->frame_idx = pic->frame_num; - va_pic->flags = 0; - - switch (pic->field) { - case H264Picture::FIELD_NONE: - break; - case H264Picture::FIELD_TOP: - va_pic->flags |= VA_PICTURE_H264_TOP_FIELD; - break; - case H264Picture::FIELD_BOTTOM: - va_pic->flags |= VA_PICTURE_H264_BOTTOM_FIELD; - break; - } - - if (pic->ref) { - va_pic->flags |= pic->long_term ? VA_PICTURE_H264_LONG_TERM_REFERENCE - : VA_PICTURE_H264_SHORT_TERM_REFERENCE; - } - - va_pic->TopFieldOrderCnt = pic->top_field_order_cnt; - va_pic->BottomFieldOrderCnt = pic->bottom_field_order_cnt; -} - -int FillVARefFramesFromDPB(const H264DPB& dpb, - VAPictureH264* va_pics, - int num_pics) { - H264Picture::Vector::const_reverse_iterator rit; - int i; - - // Return reference frames in reverse order of insertion. - // Libva does not document this, but other implementations (e.g. mplayer) - // do it this way as well. - for (rit = dpb.rbegin(), i = 0; rit != dpb.rend() && i < num_pics; ++rit) { - if ((*rit)->ref) - FillVAPicture(&va_pics[i++], *rit); - } - - return i; -} - -} // namespace - -H264VaapiWrapper::H264VaapiWrapper(const VaapiDevice& va_device) - : va_device_(va_device), va_config_(nullptr), va_context_(nullptr) {} - -H264VaapiWrapper::~H264VaapiWrapper() = default; - -scoped_refptr<H264Picture> H264VaapiWrapper::CreatePicture(const H264SPS* sps) { - const VAProfile profile = GetProfile(sps); - const gfx::Size size = sps->GetVisibleRect().value().size(); - - if (!va_config_) { - va_config_ = std::make_unique<ScopedVAConfig>(va_device_, profile, - GetFormatForProfile(profile)); - } - if (!va_context_) { - va_context_ = - std::make_unique<ScopedVAContext>(va_device_, *va_config_, size); - } - - VASurfaceAttrib attribute{}; - attribute.type = VASurfaceAttribUsageHint; - attribute.flags = VA_SURFACE_ATTRIB_SETTABLE; - attribute.value.type = VAGenericValueTypeInteger; - attribute.value.value.i = VA_SURFACE_ATTRIB_USAGE_HINT_DECODER; - - scoped_refptr<SharedVASurface> surface = SharedVASurface::Create( - va_device_, va_config_->va_rt_format(), size, attribute); - - return base::WrapRefCounted(new H264Picture(surface)); -} - -void H264VaapiWrapper::SubmitFrameMetadata( - const H264SPS* sps, - const H264PPS* pps, - const H264DPB& dpb, - const H264Picture::Vector& ref_pic_listp0, - const H264Picture::Vector& ref_pic_listb0, - const H264Picture::Vector& ref_pic_listb1, - scoped_refptr<H264Picture> pic) { - VAPictureParameterBufferH264 pic_param; - memset(&pic_param, 0, sizeof(pic_param)); - -#define FROM_SPS_TO_PP(a) pic_param.a = sps->a -#define FROM_SPS_TO_PP2(a, b) pic_param.b = sps->a - FROM_SPS_TO_PP2(pic_width_in_mbs_minus1, picture_width_in_mbs_minus1); - // This assumes non-interlaced video - FROM_SPS_TO_PP2(pic_height_in_map_units_minus1, picture_height_in_mbs_minus1); - FROM_SPS_TO_PP(bit_depth_luma_minus8); - FROM_SPS_TO_PP(bit_depth_chroma_minus8); -#undef FROM_SPS_TO_PP -#undef FROM_SPS_TO_PP2 - -#define FROM_SPS_TO_PP_SF(a) pic_param.seq_fields.bits.a = sps->a -#define FROM_SPS_TO_PP_SF2(a, b) pic_param.seq_fields.bits.b = sps->a - FROM_SPS_TO_PP_SF(chroma_format_idc); - FROM_SPS_TO_PP_SF2(separate_colour_plane_flag, - residual_colour_transform_flag); - FROM_SPS_TO_PP_SF(gaps_in_frame_num_value_allowed_flag); - FROM_SPS_TO_PP_SF(frame_mbs_only_flag); - FROM_SPS_TO_PP_SF(mb_adaptive_frame_field_flag); - FROM_SPS_TO_PP_SF(direct_8x8_inference_flag); - pic_param.seq_fields.bits.MinLumaBiPredSize8x8 = (sps->level_idc >= 31); - FROM_SPS_TO_PP_SF(log2_max_frame_num_minus4); - FROM_SPS_TO_PP_SF(pic_order_cnt_type); - FROM_SPS_TO_PP_SF(log2_max_pic_order_cnt_lsb_minus4); - FROM_SPS_TO_PP_SF(delta_pic_order_always_zero_flag); -#undef FROM_SPS_TO_PP_SF -#undef FROM_SPS_TO_PP_SF2 - -#define FROM_PPS_TO_PP(a) pic_param.a = pps->a - FROM_PPS_TO_PP(pic_init_qp_minus26); - FROM_PPS_TO_PP(pic_init_qs_minus26); - FROM_PPS_TO_PP(chroma_qp_index_offset); - FROM_PPS_TO_PP(second_chroma_qp_index_offset); -#undef FROM_PPS_TO_PP - -#define FROM_PPS_TO_PP_PF(a) pic_param.pic_fields.bits.a = pps->a -#define FROM_PPS_TO_PP_PF2(a, b) pic_param.pic_fields.bits.b = pps->a - FROM_PPS_TO_PP_PF(entropy_coding_mode_flag); - FROM_PPS_TO_PP_PF(weighted_pred_flag); - FROM_PPS_TO_PP_PF(weighted_bipred_idc); - FROM_PPS_TO_PP_PF(transform_8x8_mode_flag); - - pic_param.pic_fields.bits.field_pic_flag = 0; - FROM_PPS_TO_PP_PF(constrained_intra_pred_flag); - FROM_PPS_TO_PP_PF2(bottom_field_pic_order_in_frame_present_flag, - pic_order_present_flag); - FROM_PPS_TO_PP_PF(deblocking_filter_control_present_flag); - FROM_PPS_TO_PP_PF(redundant_pic_cnt_present_flag); - pic_param.pic_fields.bits.reference_pic_flag = pic->ref; -#undef FROM_PPS_TO_PP_PF -#undef FROM_PPS_TO_PP_PF2 - - pic_param.frame_num = pic->frame_num; - - InitVAPicture(&pic_param.CurrPic); - FillVAPicture(&pic_param.CurrPic, std::move(pic)); - - // Init reference pictures' array. - for (int i = 0; i < 16; ++i) - InitVAPicture(&pic_param.ReferenceFrames[i]); - - // And fill it with picture info from DPB. - FillVARefFramesFromDPB(dpb, pic_param.ReferenceFrames, - std::size(pic_param.ReferenceFrames)); - - pic_param.num_ref_frames = sps->max_num_ref_frames; - - VAIQMatrixBufferH264 iq_matrix_buf; - memset(&iq_matrix_buf, 0, sizeof(iq_matrix_buf)); - - if (pps->pic_scaling_matrix_present_flag) { - for (int i = 0; i < 6; ++i) { - for (int j = 0; j < 16; ++j) - iq_matrix_buf.ScalingList4x4[i][kZigzagScan4x4[j]] = - pps->scaling_list4x4[i][j]; - } - - for (int i = 0; i < 2; ++i) { - for (int j = 0; j < 64; ++j) - iq_matrix_buf.ScalingList8x8[i][kZigzagScan8x8[j]] = - pps->scaling_list8x8[i][j]; - } - } else { - for (int i = 0; i < 6; ++i) { - for (int j = 0; j < 16; ++j) - iq_matrix_buf.ScalingList4x4[i][kZigzagScan4x4[j]] = - sps->scaling_list4x4[i][j]; - } - - for (int i = 0; i < 2; ++i) { - for (int j = 0; j < 64; ++j) - iq_matrix_buf.ScalingList8x8[i][kZigzagScan8x8[j]] = - sps->scaling_list8x8[i][j]; - } - } - - VABufferID buffer_id; - VAStatus va_res = vaCreateBuffer( - va_device_.display(), va_context_->id(), VAPictureParameterBufferType, - sizeof(pic_param), 1, &pic_param, &buffer_id); - VA_LOG_ASSERT(va_res, "vaCreateBuffer"); - buffers_.push_back(buffer_id); - va_res = vaCreateBuffer(va_device_.display(), va_context_->id(), - VAIQMatrixBufferType, sizeof(iq_matrix_buf), 1, - &iq_matrix_buf, &buffer_id); - VA_LOG_ASSERT(va_res, "vaCreateBuffer"); - buffers_.push_back(buffer_id); -} - -void H264VaapiWrapper::SubmitSlice( - const H264PPS* pps, - const H264SliceHeader* slice_hdr, - const H264Picture::Vector& ref_pic_list0, - const H264Picture::Vector& ref_pic_list1, - scoped_refptr<H264Picture> pic, - const uint8_t* data, - size_t size, - const std::vector<SubsampleEntry>& subsamples) { - VASliceParameterBufferH264 slice_param; - memset(&slice_param, 0, sizeof(slice_param)); - - slice_param.slice_data_size = slice_hdr->nalu_size; - slice_param.slice_data_offset = 0; - slice_param.slice_data_flag = VA_SLICE_DATA_FLAG_ALL; - slice_param.slice_data_bit_offset = slice_hdr->header_bit_size; - -#define SHDRToSP(a) slice_param.a = slice_hdr->a - SHDRToSP(first_mb_in_slice); - slice_param.slice_type = slice_hdr->slice_type % 5; - SHDRToSP(direct_spatial_mv_pred_flag); - - SHDRToSP(num_ref_idx_l0_active_minus1); - SHDRToSP(num_ref_idx_l1_active_minus1); - SHDRToSP(cabac_init_idc); - SHDRToSP(slice_qp_delta); - SHDRToSP(disable_deblocking_filter_idc); - SHDRToSP(slice_alpha_c0_offset_div2); - SHDRToSP(slice_beta_offset_div2); - - if (((slice_hdr->IsPSlice() || slice_hdr->IsSPSlice()) && - pps->weighted_pred_flag) || - (slice_hdr->IsBSlice() && pps->weighted_bipred_idc == 1)) { - SHDRToSP(luma_log2_weight_denom); - SHDRToSP(chroma_log2_weight_denom); - - SHDRToSP(luma_weight_l0_flag); - SHDRToSP(luma_weight_l1_flag); - - SHDRToSP(chroma_weight_l0_flag); - SHDRToSP(chroma_weight_l1_flag); - - for (int i = 0; i <= slice_param.num_ref_idx_l0_active_minus1; ++i) { - slice_param.luma_weight_l0[i] = - slice_hdr->pred_weight_table_l0.luma_weight[i]; - slice_param.luma_offset_l0[i] = - slice_hdr->pred_weight_table_l0.luma_offset[i]; - - for (int j = 0; j < 2; ++j) { - slice_param.chroma_weight_l0[i][j] = - slice_hdr->pred_weight_table_l0.chroma_weight[i][j]; - slice_param.chroma_offset_l0[i][j] = - slice_hdr->pred_weight_table_l0.chroma_offset[i][j]; - } - } - - if (slice_hdr->IsBSlice()) { - for (int i = 0; i <= slice_param.num_ref_idx_l1_active_minus1; ++i) { - slice_param.luma_weight_l1[i] = - slice_hdr->pred_weight_table_l1.luma_weight[i]; - slice_param.luma_offset_l1[i] = - slice_hdr->pred_weight_table_l1.luma_offset[i]; - - for (int j = 0; j < 2; ++j) { - slice_param.chroma_weight_l1[i][j] = - slice_hdr->pred_weight_table_l1.chroma_weight[i][j]; - slice_param.chroma_offset_l1[i][j] = - slice_hdr->pred_weight_table_l1.chroma_offset[i][j]; - } - } - } - } - - static_assert( - std::size(slice_param.RefPicList0) == std::size(slice_param.RefPicList1), - "Invalid RefPicList sizes"); - - for (size_t i = 0; i < std::size(slice_param.RefPicList0); ++i) { - InitVAPicture(&slice_param.RefPicList0[i]); - InitVAPicture(&slice_param.RefPicList1[i]); - } - - for (size_t i = 0; - i < ref_pic_list0.size() && i < std::size(slice_param.RefPicList0); - ++i) { - if (ref_pic_list0[i]) - FillVAPicture(&slice_param.RefPicList0[i], ref_pic_list0[i]); - } - for (size_t i = 0; - i < ref_pic_list1.size() && i < std::size(slice_param.RefPicList1); - ++i) { - if (ref_pic_list1[i]) - FillVAPicture(&slice_param.RefPicList1[i], ref_pic_list1[i]); - } - - pic->slice_data_buffers.emplace_back(std::make_unique<uint8_t[]>(size)); - memcpy(pic->slice_data_buffers.back().get(), data, size); - - VABufferID buffer_id; - VAStatus va_res = vaCreateBuffer( - va_device_.display(), va_context_->id(), VASliceParameterBufferType, - sizeof(slice_param), 1, &slice_param, &buffer_id); - VA_LOG_ASSERT(va_res, "vaCreateBuffer"); - buffers_.push_back(buffer_id); - va_res = vaCreateBuffer(va_device_.display(), va_context_->id(), - VASliceDataBufferType, size, 1, - pic->slice_data_buffers.back().get(), &buffer_id); - VA_LOG_ASSERT(va_res, "vaCreateBuffer"); - buffers_.push_back(buffer_id); -} - -void H264VaapiWrapper::SubmitDecode(scoped_refptr<H264Picture> pic) { - CHECK(gfx::Rect(pic->surface->size()).Contains(pic->visible_rect)); - - VAStatus va_res = vaBeginPicture(va_device_.display(), va_context_->id(), - pic->surface->id()); - VA_LOG_ASSERT(va_res, "vaBeginPicture"); - - va_res = vaRenderPicture(va_device_.display(), va_context_->id(), - buffers_.data(), buffers_.size()); - VA_LOG_ASSERT(va_res, "vaRenderPicture"); - - va_res = vaEndPicture(va_device_.display(), va_context_->id()); - VA_LOG_ASSERT(va_res, "vaEndPicture"); - - for (auto id : buffers_) { - vaDestroyBuffer(va_device_.display(), id); - } - buffers_.clear(); -} - -} // namespace media::vaapi_test
diff --git a/media/gpu/vaapi/test/h264_vaapi_wrapper.h b/media/gpu/vaapi/test/h264_vaapi_wrapper.h deleted file mode 100644 index f1db94b..0000000 --- a/media/gpu/vaapi/test/h264_vaapi_wrapper.h +++ /dev/null
@@ -1,58 +0,0 @@ -// Copyright (c) 2021 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 MEDIA_GPU_VAAPI_TEST_H264_VAAPI_WRAPPER_H_ -#define MEDIA_GPU_VAAPI_TEST_H264_VAAPI_WRAPPER_H_ - -#include "base/sequence_checker.h" -#include "media/gpu/vaapi/test/h264_dpb.h" -#include "media/gpu/vaapi/test/scoped_va_config.h" -#include "media/gpu/vaapi/test/scoped_va_context.h" -#include "media/gpu/vaapi/test/vaapi_device.h" -#include "media/video/h264_parser.h" - -namespace media::vaapi_test { - -class H264VaapiWrapper { - public: - explicit H264VaapiWrapper(const VaapiDevice& va_device); - ~H264VaapiWrapper(); - - // Generates a picture object with a SharedVASurface. - scoped_refptr<H264Picture> CreatePicture(const H264SPS* sps); - - // Start a new frame. - void SubmitFrameMetadata(const H264SPS* sps, - const H264PPS* pps, - const H264DPB& dpb, - const H264Picture::Vector& ref_pic_listp0, - const H264Picture::Vector& ref_pic_listb0, - const H264Picture::Vector& ref_pic_listb1, - scoped_refptr<H264Picture> pic); - - // Add a slice to the current frame. - void SubmitSlice(const H264PPS* pps, - const H264SliceHeader* slice_header, - const H264Picture::Vector& ref_pic_list0, - const H264Picture::Vector& ref_pic_list1, - scoped_refptr<H264Picture> pic, - const uint8_t* data, - size_t size, - const std::vector<SubsampleEntry>& subsamples); - - // Perform the actual decoding process. - void SubmitDecode(scoped_refptr<H264Picture> pic); - - private: - const VaapiDevice& va_device_; - - std::unique_ptr<ScopedVAConfig> va_config_; - std::unique_ptr<ScopedVAContext> va_context_; - - std::vector<VABufferID> buffers_; -}; - -} // namespace media::vaapi_test - -#endif // MEDIA_GPU_VAAPI_TEST_H264_VAAPI_WRAPPER_H_
diff --git a/media/gpu/vaapi/test/video_decoder.cc b/media/gpu/vaapi/test/video_decoder.cc index c779534..47d3045 100644 --- a/media/gpu/vaapi/test/video_decoder.cc +++ b/media/gpu/vaapi/test/video_decoder.cc
@@ -9,9 +9,12 @@ namespace media { namespace vaapi_test { -VideoDecoder::VideoDecoder(const VaapiDevice& va_device, +VideoDecoder::VideoDecoder(std::unique_ptr<IvfParser> ivf_parser, + const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy) - : va_device_(va_device), fetch_policy_(fetch_policy) {} + : ivf_parser_(std::move(ivf_parser)), + va_device_(va_device), + fetch_policy_(fetch_policy) {} VideoDecoder::~VideoDecoder() { // The implementation should have destroyed everything in the right order,
diff --git a/media/gpu/vaapi/test/video_decoder.h b/media/gpu/vaapi/test/video_decoder.h index 3f2872a..6f80b318 100644 --- a/media/gpu/vaapi/test/video_decoder.h +++ b/media/gpu/vaapi/test/video_decoder.h
@@ -8,6 +8,9 @@ #include "media/gpu/vaapi/test/shared_va_surface.h" namespace media { + +class IvfParser; + namespace vaapi_test { class VaapiDevice; @@ -22,7 +25,8 @@ kEOStream, }; - VideoDecoder(const VaapiDevice& va_device, + VideoDecoder(std::unique_ptr<IvfParser> ivf_parser, + const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy); // Implementations of VideoDecoder are expected to handle the destruction of // |last_decoded_surface_| and in particular ensure it is done in the right @@ -54,6 +58,9 @@ bool LastDecodedFrameVisible() const { return last_decoded_frame_visible_; } protected: + // Parser for the IVF stream to decode. + const std::unique_ptr<IvfParser> ivf_parser_; + // VA handles. const VaapiDevice& va_device_; scoped_refptr<SharedVASurface> last_decoded_surface_;
diff --git a/media/gpu/vaapi/test/vp8_decoder.cc b/media/gpu/vaapi/test/vp8_decoder.cc index fa1220b..57fcd3f 100644 --- a/media/gpu/vaapi/test/vp8_decoder.cc +++ b/media/gpu/vaapi/test/vp8_decoder.cc
@@ -31,14 +31,13 @@ Vp8Decoder::Vp8Decoder(std::unique_ptr<IvfParser> ivf_parser, const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy) - : VideoDecoder(va_device, fetch_policy), + : VideoDecoder(std::move(ivf_parser), va_device, fetch_policy), va_config_( std::make_unique<ScopedVAConfig>(va_device_, VAProfile::VAProfileVP8Version0_3, VA_RT_FORMAT_YUV420)), vp8_parser_(std::make_unique<Vp8Parser>()), - ref_frames_(kNumVp8ReferenceBuffers), - ivf_parser_(std::move(ivf_parser)) { + ref_frames_(kNumVp8ReferenceBuffers) { std::fill(ref_frames_.begin(), ref_frames_.end(), nullptr); }
diff --git a/media/gpu/vaapi/test/vp8_decoder.h b/media/gpu/vaapi/test/vp8_decoder.h index a830d9f..821a1f9 100644 --- a/media/gpu/vaapi/test/vp8_decoder.h +++ b/media/gpu/vaapi/test/vp8_decoder.h
@@ -6,7 +6,6 @@ #define MEDIA_GPU_VAAPI_TEST_VP8_DECODER_H_ #include "base/memory/scoped_refptr.h" -#include "media/filters/ivf_parser.h" #include "media/gpu/vaapi/test/scoped_va_config.h" #include "media/gpu/vaapi/test/scoped_va_context.h" #include "media/gpu/vaapi/test/vaapi_device.h" @@ -56,9 +55,6 @@ // VP8-specific data. const std::unique_ptr<Vp8Parser> vp8_parser_; std::vector<scoped_refptr<SharedVASurface>> ref_frames_; - - // Parser for the IVF stream to decode. - const std::unique_ptr<IvfParser> ivf_parser_; }; } // namespace vaapi_test
diff --git a/media/gpu/vaapi/test/vp9_decoder.cc b/media/gpu/vaapi/test/vp9_decoder.cc index f3f9af6..f15395c 100644 --- a/media/gpu/vaapi/test/vp9_decoder.cc +++ b/media/gpu/vaapi/test/vp9_decoder.cc
@@ -53,11 +53,12 @@ Vp9Decoder::Vp9Decoder(std::unique_ptr<IvfParser> ivf_parser, const VaapiDevice& va_device, SharedVASurface::FetchPolicy fetch_policy) - : VideoDecoder::VideoDecoder(va_device, fetch_policy), + : VideoDecoder::VideoDecoder(std::move(ivf_parser), + va_device, + fetch_policy), vp9_parser_( std::make_unique<Vp9Parser>(/*parsing_compressed_header=*/false)), - ref_frames_(kVp9NumRefFrames), - ivf_parser_(std::move(ivf_parser)) {} + ref_frames_(kVp9NumRefFrames) {} Vp9Decoder::~Vp9Decoder() { // We destroy the VA handles explicitly to ensure the correct order.
diff --git a/media/gpu/vaapi/test/vp9_decoder.h b/media/gpu/vaapi/test/vp9_decoder.h index ff20b540..449ef1e 100644 --- a/media/gpu/vaapi/test/vp9_decoder.h +++ b/media/gpu/vaapi/test/vp9_decoder.h
@@ -50,9 +50,6 @@ // VP9-specific data. const std::unique_ptr<Vp9Parser> vp9_parser_; std::vector<scoped_refptr<SharedVASurface>> ref_frames_; - - // Parser for the IVF stream to decode. - const std::unique_ptr<IvfParser> ivf_parser_; }; } // namespace vaapi_test
diff --git a/mojo/core/shared_buffer_unittest.cc b/mojo/core/shared_buffer_unittest.cc index 5bf52f2..b9c9d95 100644 --- a/mojo/core/shared_buffer_unittest.cc +++ b/mojo/core/shared_buffer_unittest.cc
@@ -198,7 +198,9 @@ // Android multi-process tests are not executing the new process. This is flaky. #define MAYBE_PassHandleBetweenCousins DISABLED_PassHandleBetweenCousins #else -#define MAYBE_PassHandleBetweenCousins PassHandleBetweenCousins +// TODO(crbug.com/1287637): This test flakes frequently on various platforms, +// with failure return-codes from RunTestClientAndGetExitCode(). +#define MAYBE_PassHandleBetweenCousins DISABLED_PassHandleBetweenCousins #endif TEST_F(SharedBufferTest, MAYBE_PassHandleBetweenCousins) { const std::string message = "hello";
diff --git a/remoting/protocol/webrtc_event_log_data.cc b/remoting/protocol/webrtc_event_log_data.cc index e3a0696..3a4c409 100644 --- a/remoting/protocol/webrtc_event_log_data.cc +++ b/remoting/protocol/webrtc_event_log_data.cc
@@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/numerics/safe_conversions.h" +#include "base/strings/string_piece.h" namespace remoting { namespace protocol { @@ -40,12 +41,12 @@ return result; } -void WebrtcEventLogData::Write(const std::string& log_event) { +void WebrtcEventLogData::Write(base::StringPiece log_event) { if (base::checked_cast<int>(log_event.size()) > max_section_size_) { LOG(WARNING) << "Oversized RTC log event: size = " << log_event.size(); } - if (NeedNewSection(log_event)) { + if (NeedNewSection(log_event.size())) { CreateNewSection(); } @@ -59,13 +60,13 @@ sections_.reserve(max_sections_); } -bool WebrtcEventLogData::NeedNewSection(const std::string& log_event) const { +bool WebrtcEventLogData::NeedNewSection(size_t log_event_size) const { if (sections_.empty()) return true; // The event log entries are packet headers generated by WebRTC, and it is // assumed that the sizes are small enough to prevent integer overflow. - return base::checked_cast<int>(sections_.back().size() + log_event.size()) > + return base::checked_cast<int>(sections_.back().size() + log_event_size) > max_section_size_; }
diff --git a/remoting/protocol/webrtc_event_log_data.h b/remoting/protocol/webrtc_event_log_data.h index caef3b1..fd5436c 100644 --- a/remoting/protocol/webrtc_event_log_data.h +++ b/remoting/protocol/webrtc_event_log_data.h
@@ -9,6 +9,7 @@ #include <vector> #include "base/containers/circular_deque.h" +#include "base/strings/string_piece.h" namespace remoting { namespace protocol { @@ -43,14 +44,14 @@ // than RTCP packets). If that ever happens, the log_event will be stored in // a new section anyway - the buffer's reserved capacity may be exceeded and // re-allocation may occur. - void Write(const std::string& log_event); + void Write(base::StringPiece log_event); // Removes all event data, so the instance can be reused. void Clear(); private: // Returns true if a new section must be created to store the event. - bool NeedNewSection(const std::string& log_event) const; + bool NeedNewSection(size_t log_event_size) const; // Appends a new section of zero size to the end of the list, removing the // oldest one if necessary. On return, the section at the end (the list's
diff --git a/remoting/protocol/webrtc_transport.cc b/remoting/protocol/webrtc_transport.cc index 7b95637..827fb0f 100644 --- a/remoting/protocol/webrtc_transport.cc +++ b/remoting/protocol/webrtc_transport.cc
@@ -16,6 +16,7 @@ #include "base/cxx17_backports.h" #include "base/logging.h" #include "base/memory/ptr_util.h" +#include "base/strings/abseil_string_conversions.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" @@ -33,6 +34,7 @@ #include "remoting/protocol/transport.h" #include "remoting/protocol/transport_context.h" #include "remoting/protocol/webrtc_audio_module.h" +#include "third_party/abseil-cpp/absl/strings/string_view.h" #include "third_party/libjingle_xmpp/xmllite/xmlelement.h" #include "third_party/webrtc/api/audio_codecs/audio_decoder_factory_template.h" #include "third_party/webrtc/api/audio_codecs/audio_encoder_factory_template.h" @@ -252,7 +254,10 @@ // webrtc::RtcEventLogOutput interface bool IsActive() const override { return true; } bool Write(const std::string& output) override { - event_log_data_.Write(output); + return Write(absl::string_view(output)); + } + bool Write(absl::string_view output) override { + event_log_data_.Write(base::StringViewToStringPiece(output)); return true; }
diff --git a/remoting/resources/remoting_strings_hi.xtb b/remoting/resources/remoting_strings_hi.xtb index 0eb182a8..e849a1d 100644 --- a/remoting/resources/remoting_strings_hi.xtb +++ b/remoting/resources/remoting_strings_hi.xtb
@@ -9,7 +9,7 @@ <translation id="1480046233931937785">क्रेडिट</translation> <translation id="1520828917794284345">डेस्कटॉप को सटीक आकार में बदलें</translation> <translation id="1546934824884762070">एक अनपेक्षित गड़बड़ी आई. कृपया इस समस्या की रिपोर्ट डेवलपर से करें.</translation> -<translation id="1697532407822776718">आप बिल्कुल तैयार हैं!</translation> +<translation id="1697532407822776718">आप बिलकुल तैयार हैं!</translation> <translation id="1742469581923031760">कनेक्ट हो रहा है...</translation> <translation id="177040763384871009">रिमोट डिवाइस पर क्लिक किए गए लिंकों को क्लाइंट ब्राउज़र पर खोलने की अनुमति देने के लिए, आपको "<ph name="URL_FORWARDER_NAME" />" को सिस्टम का डिफ़ॉल्ट वेब ब्राउज़र बनाना होगा.</translation> <translation id="177096447311351977">क्लाइंट के लिए चैनल IP: <ph name="CLIENT_GAIA_IDENTIFIER" /> ip='<ph name="CLIENT_IP_ADDRESS_AND_PORT" />' host_ip='<ph name="HOST_IP_ADDRESS_AND_PORT" />' channel='<ph name="CHANNEL_TYPE" />' connection='<ph name="CONNECTION_TYPE" />'.</translation>
diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/public/cpp/ukm_recorder.cc index 082e96b..c2ac19b 100644 --- a/services/metrics/public/cpp/ukm_recorder.cc +++ b/services/metrics/public/cpp/ukm_recorder.cc
@@ -34,6 +34,7 @@ // static ukm::SourceId UkmRecorder::GetSourceIdForPaymentAppFromScope( + base::PassKey<content::PaymentAppProviderUtil>, const GURL& service_worker_scope) { return UkmRecorder::GetSourceIdFromScopeImpl(service_worker_scope, SourceIdType::PAYMENT_APP_ID); @@ -41,6 +42,7 @@ // static ukm::SourceId UkmRecorder::GetSourceIdForWebApkManifestUrl( + base::PassKey<WebApkUkmRecorder>, const GURL& manifest_url) { return UkmRecorder::GetSourceIdFromScopeImpl(manifest_url, SourceIdType::WEBAPK_ID); @@ -48,6 +50,7 @@ // static ukm::SourceId UkmRecorder::GetSourceIdForDesktopWebAppStartUrl( + base::PassKey<web_app::DesktopWebAppUkmRecorder>, const GURL& start_url) { return UkmRecorder::GetSourceIdFromScopeImpl( start_url, SourceIdType::DESKTOP_WEB_APP_ID);
diff --git a/services/metrics/public/cpp/ukm_recorder.h b/services/metrics/public/cpp/ukm_recorder.h index 44335fd..86bb2e9 100644 --- a/services/metrics/public/cpp/ukm_recorder.h +++ b/services/metrics/public/cpp/ukm_recorder.h
@@ -79,11 +79,24 @@ // session. static SourceId GetNewSourceID(); - // Add an entry to the UkmEntry list. - virtual void AddEntry(mojom::UkmEntryPtr entry) = 0; + // Gets new source Id for WEBAPK_ID type and updates the manifest url. This + // method should only be called by WebApkUkmRecorder class. + static SourceId GetSourceIdForWebApkManifestUrl( + base::PassKey<WebApkUkmRecorder>, + const GURL& manifest_url); - // Controls sampling for testing purposes. Sampling is 1-in-N (N==rate). - virtual void SetSamplingForTesting(int rate) {} + // Gets new source ID for a desktop web app, using the start_url from the web + // app manifest. This method should only be called by DailyMetricsHelper. + static SourceId GetSourceIdForDesktopWebAppStartUrl( + base::PassKey<web_app::DesktopWebAppUkmRecorder>, + const GURL& start_url); + + // Gets new source Id for PAYMENT_APP_ID type and updates the source url to + // the scope of the app. This method should only be called by + // PaymentAppProviderUtil class when the payment app window is opened. + static SourceId GetSourceIdForPaymentAppFromScope( + base::PassKey<content::PaymentAppProviderUtil>, + const GURL& service_worker_scope); // Gets a new SourceId for WEB_IDENTITY_ID type and updates the source url // from the identity provider. This method should only be called in the @@ -98,6 +111,12 @@ static SourceId GetSourceIdForRedirectUrl(base::PassKey<DIPSBounceDetector>, const GURL& redirect_url); + // Add an entry to the UkmEntry list. + virtual void AddEntry(mojom::UkmEntryPtr entry) = 0; + + // Controls sampling for testing purposes. Sampling is 1-in-N (N==rate). + virtual void SetSamplingForTesting(int rate) {} + protected: // Type-safe wrappers for Update<X> functions. void RecordOtherURL(ukm::SourceIdObj source_id, const GURL& url); @@ -105,23 +124,6 @@ const GURL& url, const AppType app_type); - // TODO(crbug.com/1340241): change all GetSourceId* methods to use PassKeys - // instead of relying on friend classes, as is currently done in - // GetSourceIdForWebIdentityFromScope(). Gets new SourceId for WEBAPK_ID type - // and updates the manifest url. This method should only be called by - // WebApkUkmRecorder class. - static SourceId GetSourceIdForWebApkManifestUrl(const GURL& manifest_url); - - // Gets new SourceId for a desktop web app, using the start_url from the web - // app manifest. This method should only be called by DailyMetricsHelper. - static SourceId GetSourceIdForDesktopWebAppStartUrl(const GURL& start_url); - - // Gets new SourceId for PAYMENT_APP_ID type and updates the source url to - // the scope of the app. This method should only be called by - // PaymentAppProviderUtil class when the payment app window is opened. - static SourceId GetSourceIdForPaymentAppFromScope( - const GURL& service_worker_scope); - // Returns a new SourceId for the given GURL and SourceIDType. static SourceId GetSourceIdFromScopeImpl(const GURL& scope_url, SourceIdType type); @@ -133,18 +135,8 @@ friend UkmBackgroundRecorderService; friend metrics::UkmRecorderInterface; friend PermissionUmaUtil; - friend content::PaymentAppProviderUtil; friend content::RenderFrameHostImpl; - // WebApkUkmRecorder and DesktopWebAppUkmRecorder record metrics about - // installed web apps. Instead of using - // the current main frame URL, we want to record the URL which identifies the - // current app: the web app manifest url or start url, respectively. - // Therefore, they need to be friends so that they can access the private - // GetSourceIdForWebApkManifestUrl() method. - friend WebApkUkmRecorder; - friend web_app::DesktopWebAppUkmRecorder; - // Associates the SourceId with a URL. Most UKM recording code should prefer // to use a shared SourceId that is already associated with a URL, rather // than using this API directly. New uses of this API must be audited to
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json index f5090923..24f55a3 100644 --- a/testing/buildbot/chrome.json +++ b/testing/buildbot/chrome.json
@@ -1918,7 +1918,7 @@ { "args": [], "cros_board": "atlas", - "cros_img": "atlas-release/R105-14945.0.0", + "cros_img": "atlas-release/R105-14959.0.0", "name": "lacros_all_tast_tests ATLAS_RELEASE_LKGM", "resultdb": { "enable": true, @@ -1966,7 +1966,7 @@ { "args": [], "cros_board": "atlas", - "cros_img": "atlas-release/R103-14816.82.0", + "cros_img": "atlas-release/R103-14816.99.0", "name": "lacros_all_tast_tests ATLAS_RELEASE_STABLE", "resultdb": { "enable": true, @@ -1982,7 +1982,7 @@ { "args": [], "cros_board": "eve", - "cros_img": "eve-release/R105-14945.0.0", + "cros_img": "eve-release/R105-14959.0.0", "name": "lacros_all_tast_tests EVE_RELEASE_LKGM", "resultdb": { "enable": true, @@ -2030,7 +2030,7 @@ { "args": [], "cros_board": "eve", - "cros_img": "eve-release/R103-14816.82.0", + "cros_img": "eve-release/R103-14816.99.0", "name": "lacros_all_tast_tests EVE_RELEASE_STABLE", "resultdb": { "enable": true, @@ -2091,7 +2091,7 @@ { "args": [], "cros_board": "hana", - "cros_img": "hana-release/R105-14945.0.0", + "cros_img": "hana-release/R105-14959.0.0", "name": "lacros_all_tast_tests HANA_RELEASE_LKGM", "resultdb": { "enable": true, @@ -2139,7 +2139,7 @@ { "args": [], "cros_board": "hana", - "cros_img": "hana-release/R103-14816.82.0", + "cros_img": "hana-release/R103-14816.99.0", "name": "lacros_all_tast_tests HANA_RELEASE_STABLE", "resultdb": { "enable": true, @@ -2155,7 +2155,7 @@ { "args": [], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R105-14945.0.0", + "cros_img": "jacuzzi-release/R105-14959.0.0", "name": "lacros_all_tast_tests JACUZZI_RELEASE_LKGM", "resultdb": { "enable": true, @@ -2205,7 +2205,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.ozone_unittests.filter" ], "cros_board": "hana", - "cros_img": "hana-release/R105-14945.0.0", + "cros_img": "hana-release/R105-14959.0.0", "name": "ozone_unittests HANA_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -2244,7 +2244,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.ozone_unittests.filter" ], "cros_board": "hana", - "cros_img": "hana-release/R103-14816.82.0", + "cros_img": "hana-release/R103-14816.99.0", "name": "ozone_unittests HANA_RELEASE_STABLE", "swarming": {}, "test": "ozone_unittests", @@ -2257,7 +2257,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.ozone_unittests.filter" ], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R105-14945.0.0", + "cros_img": "jacuzzi-release/R105-14959.0.0", "name": "ozone_unittests JACUZZI_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -2296,7 +2296,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.viz_unittests.filter" ], "cros_board": "hana", - "cros_img": "hana-release/R105-14945.0.0", + "cros_img": "hana-release/R105-14959.0.0", "name": "viz_unittests HANA_RELEASE_LKGM", "swarming": {}, "test": "viz_unittests", @@ -2335,7 +2335,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.viz_unittests.filter" ], "cros_board": "hana", - "cros_img": "hana-release/R103-14816.82.0", + "cros_img": "hana-release/R103-14816.99.0", "name": "viz_unittests HANA_RELEASE_STABLE", "swarming": {}, "test": "viz_unittests", @@ -2348,7 +2348,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.viz_unittests.filter" ], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R105-14945.0.0", + "cros_img": "jacuzzi-release/R105-14959.0.0", "name": "viz_unittests JACUZZI_RELEASE_LKGM", "swarming": {}, "test": "viz_unittests",
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json index 8464c7c..1695c61 100644 --- a/testing/buildbot/internal.chromeos.fyi.json +++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -1038,7 +1038,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R105-14945.0.0", + "cros_img": "octopus-release/R105-14959.0.0", "name": "lacros_fyi_tast_tests OCTOPUS_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1074,7 +1074,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R103-14816.82.0", + "cros_img": "octopus-release/R103-14816.99.0", "name": "lacros_fyi_tast_tests OCTOPUS_RELEASE_STABLE", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1086,7 +1086,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R105-14945.0.0", + "cros_img": "octopus-release/R105-14959.0.0", "name": "lacros_variations_tast_tests OCTOPUS_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"name:lacros.VariationSmoke\")", @@ -1122,7 +1122,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R103-14816.82.0", + "cros_img": "octopus-release/R103-14816.99.0", "name": "lacros_variations_tast_tests OCTOPUS_RELEASE_STABLE", "swarming": {}, "tast_expr": "(\"name:lacros.VariationSmoke\")", @@ -1134,7 +1134,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R105-14945.0.0", + "cros_img": "octopus-release/R105-14959.0.0", "name": "ozone_unittests OCTOPUS_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -1167,7 +1167,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R103-14816.82.0", + "cros_img": "octopus-release/R103-14816.99.0", "name": "ozone_unittests OCTOPUS_RELEASE_STABLE", "swarming": {}, "test": "ozone_unittests", @@ -1186,7 +1186,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R105-14945.0.0", + "cros_img": "strongbad-release/R105-14959.0.0", "name": "lacros_all_tast_tests STRONGBAD_RELEASE_LKGM", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1222,7 +1222,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R103-14816.82.0", + "cros_img": "strongbad-release/R103-14816.99.0", "name": "lacros_all_tast_tests STRONGBAD_RELEASE_STABLE", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1234,7 +1234,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R105-14945.0.0", + "cros_img": "strongbad-release/R105-14959.0.0", "name": "ozone_unittests STRONGBAD_RELEASE_LKGM", "swarming": {}, "test": "ozone_unittests", @@ -1267,7 +1267,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R103-14816.82.0", + "cros_img": "strongbad-release/R103-14816.99.0", "name": "ozone_unittests STRONGBAD_RELEASE_STABLE", "swarming": {}, "test": "ozone_unittests", @@ -1278,7 +1278,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R105-14945.0.0", + "cros_img": "strongbad-release/R105-14959.0.0", "name": "viz_unittests STRONGBAD_RELEASE_LKGM", "swarming": {}, "test": "viz_unittests", @@ -1311,7 +1311,7 @@ { "args": [], "cros_board": "strongbad", - "cros_img": "strongbad-release/R103-14816.82.0", + "cros_img": "strongbad-release/R103-14816.99.0", "name": "viz_unittests STRONGBAD_RELEASE_STABLE", "swarming": {}, "test": "viz_unittests",
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 58a880f..0f9d633 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -962,8 +962,8 @@ 'CROS_ATLAS_RELEASE_LKGM': { 'skylab': { 'cros_board': 'atlas', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'atlas-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'atlas-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'ATLAS_RELEASE_LKGM', @@ -989,8 +989,8 @@ 'CROS_ATLAS_RELEASE_STABLE': { 'skylab': { 'cros_board': 'atlas', - 'cros_chrome_version': '103.0.5060.64', - 'cros_img': 'atlas-release/R103-14816.82.0', + 'cros_chrome_version': '103.0.5060.114', + 'cros_img': 'atlas-release/R103-14816.99.0', }, 'enabled': True, 'identifier': 'ATLAS_RELEASE_STABLE', @@ -998,8 +998,8 @@ 'CROS_EVE_RELEASE_LKGM': { 'skylab': { 'cros_board': 'eve', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'eve-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'eve-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'EVE_RELEASE_LKGM', @@ -1025,8 +1025,8 @@ 'CROS_EVE_RELEASE_STABLE': { 'skylab': { 'cros_board': 'eve', - 'cros_chrome_version': '103.0.5060.64', - 'cros_img': 'eve-release/R103-14816.82.0', + 'cros_chrome_version': '103.0.5060.114', + 'cros_img': 'eve-release/R103-14816.99.0', }, 'enabled': True, 'identifier': 'EVE_RELEASE_STABLE', @@ -1043,8 +1043,8 @@ 'CROS_HANA_RELEASE_LKGM': { 'skylab': { 'cros_board': 'hana', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'hana-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'hana-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'HANA_RELEASE_LKGM', @@ -1070,8 +1070,8 @@ 'CROS_HANA_RELEASE_STABLE': { 'skylab': { 'cros_board': 'hana', - 'cros_chrome_version': '103.0.5060.64', - 'cros_img': 'hana-release/R103-14816.82.0', + 'cros_chrome_version': '103.0.5060.114', + 'cros_img': 'hana-release/R103-14816.99.0', }, 'enabled': True, 'identifier': 'HANA_RELEASE_STABLE', @@ -1079,8 +1079,8 @@ 'CROS_JACUZZI_RELEASE_LKGM': { 'skylab': { 'cros_board': 'jacuzzi', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'jacuzzi-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'jacuzzi-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'JACUZZI_RELEASE_LKGM', @@ -1115,8 +1115,8 @@ 'CROS_OCTOPUS_RELEASE_LKGM': { 'skylab': { 'cros_board': 'octopus', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'octopus-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'octopus-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'OCTOPUS_RELEASE_LKGM', @@ -1142,8 +1142,8 @@ 'CROS_OCTOPUS_RELEASE_STABLE': { 'skylab': { 'cros_board': 'octopus', - 'cros_chrome_version': '103.0.5060.64', - 'cros_img': 'octopus-release/R103-14816.82.0', + 'cros_chrome_version': '103.0.5060.114', + 'cros_img': 'octopus-release/R103-14816.99.0', }, 'enabled': True, 'identifier': 'OCTOPUS_RELEASE_STABLE', @@ -1151,8 +1151,8 @@ 'CROS_STRONGBAD_RELEASE_LKGM': { 'skylab': { 'cros_board': 'strongbad', - 'cros_chrome_version': '105.0.5140.0', - 'cros_img': 'strongbad-release/R105-14945.0.0', + 'cros_chrome_version': '105.0.5158.0', + 'cros_img': 'strongbad-release/R105-14959.0.0', }, 'enabled': True, 'identifier': 'STRONGBAD_RELEASE_LKGM', @@ -1178,8 +1178,8 @@ 'CROS_STRONGBAD_RELEASE_STABLE': { 'skylab': { 'cros_board': 'strongbad', - 'cros_chrome_version': '103.0.5060.64', - 'cros_img': 'strongbad-release/R103-14816.82.0', + 'cros_chrome_version': '103.0.5060.114', + 'cros_img': 'strongbad-release/R103-14816.99.0', }, 'enabled': True, 'identifier': 'STRONGBAD_RELEASE_STABLE',
diff --git a/testing/libfuzzer/fuzzers/BUILD.gn b/testing/libfuzzer/fuzzers/BUILD.gn index fc31d2f..41a4581 100644 --- a/testing/libfuzzer/fuzzers/BUILD.gn +++ b/testing/libfuzzer/fuzzers/BUILD.gn
@@ -7,6 +7,7 @@ import("//build/config/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") import("//third_party/protobuf/proto_library.gni") +import("//v8/gni/v8.gni") # root BUILD depends on this target. Needed for package discovery group("fuzzers") { @@ -211,103 +212,105 @@ environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] } -fuzzer_test("v8_multi_return_fuzzer") { - sources = [] - deps = [ "//v8:multi_return_fuzzer" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] -} +if (v8_enable_webassembly) { + fuzzer_test("v8_multi_return_fuzzer") { + sources = [] + deps = [ "//v8:multi_return_fuzzer" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } -fuzzer_test("v8_wasm_code_fuzzer") { - sources = [] - deps = [ "//v8:wasm_code_fuzzer" ] - libfuzzer_options = [ "max_len=500" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] -} + fuzzer_test("v8_wasm_code_fuzzer") { + sources = [] + deps = [ "//v8:wasm_code_fuzzer" ] + libfuzzer_options = [ "max_len=500" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } -fuzzer_test("v8_wasm_compile_fuzzer") { - sources = [] - deps = [ "//v8:wasm_compile_fuzzer" ] - libfuzzer_options = [ "max_len=500" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] -} + fuzzer_test("v8_wasm_compile_fuzzer") { + sources = [] + deps = [ "//v8:wasm_compile_fuzzer" ] + libfuzzer_options = [ "max_len=500" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } -fuzzer_test("v8_wasm_fuzzer") { - sources = [] - deps = [ "//v8:wasm_fuzzer" ] - dict = "dicts/v8_wasm.dict" - seed_corpus = "//v8/test/fuzzer/wasm_corpus/" - libfuzzer_options = [ "max_len=500" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] -} + fuzzer_test("v8_wasm_fuzzer") { + sources = [] + deps = [ "//v8:wasm_fuzzer" ] + dict = "dicts/v8_wasm.dict" + seed_corpus = "//v8/test/fuzzer/wasm_corpus/" + libfuzzer_options = [ "max_len=500" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } -fuzzer_test("v8_wasm_async_fuzzer") { - sources = [] - deps = [ "//v8:wasm_async_fuzzer" ] - dict = "dicts/v8_wasm.dict" - seed_corpus = "//v8/test/fuzzer/wasm_corpus/" - libfuzzer_options = [ "max_len=500" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] -} + fuzzer_test("v8_wasm_async_fuzzer") { + sources = [] + deps = [ "//v8:wasm_async_fuzzer" ] + dict = "dicts/v8_wasm.dict" + seed_corpus = "//v8/test/fuzzer/wasm_corpus/" + libfuzzer_options = [ "max_len=500" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } -fuzzer_test("v8_wasm_streaming_fuzzer") { - sources = [] - deps = [ "//v8:wasm_streaming_fuzzer" ] - libfuzzer_options = [ "max_len=500" ] - asan_options = [ - "allow_user_segv_handler=1", - "handle_sigtrap=1", - ] - msan_options = [ "handle_sigtrap=1" ] - ubsan_options = [ - "handle_sigtrap=1", - "handle_segv=1", - ] - environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + fuzzer_test("v8_wasm_streaming_fuzzer") { + sources = [] + deps = [ "//v8:wasm_streaming_fuzzer" ] + libfuzzer_options = [ "max_len=500" ] + asan_options = [ + "allow_user_segv_handler=1", + "handle_sigtrap=1", + ] + msan_options = [ "handle_sigtrap=1" ] + ubsan_options = [ + "handle_sigtrap=1", + "handle_segv=1", + ] + environment_variables = [ "AFL_DRIVER_DONT_DEFER=1" ] + } } fuzzer_test("convert_woff2ttf_fuzzer") {
diff --git a/testing/libfuzzer/fuzzers/dicts/math_transform.dict b/testing/libfuzzer/fuzzers/dicts/math_transform.dict new file mode 100644 index 0000000..7162af9 --- /dev/null +++ b/testing/libfuzzer/fuzzers/dicts/math_transform.dict
@@ -0,0 +1,187 @@ +# Copyright 2022 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. + +# ASCII digits and letters. +"0" +"1" +"2" +"3" +"4" +"5" +"6" +"7" +"8" +"9" +"A" +"B" +"C" +"D" +"E" +"F" +"G" +"H" +"I" +"J" +"K" +"L" +"M" +"N" +"O" +"P" +"Q" +"R" +"S" +"T" +"U" +"V" +"W" +"X" +"Y" +"Z" +"a" +"b" +"c" +"d" +"e" +"f" +"g" +"h" +"i" +"j" +"k" +"l" +"m" +"n" +"o" +"p" +"q" +"r" +"s" +"t" +"u" +"v" +"w" +"x" +"y" +"z" + +# GREEK CAPITAL LETTER +"\xCE\x91" +"\xCE\x92" +"\xCE\x93" +"\xCE\x94" +"\xCE\x95" +"\xCE\x96" +"\xCE\x97" +"\xCE\x98" +"\xCE\x99" +"\xCE\x9A" +"\xCE\x9B" +"\xCE\x9C" +"\xCE\x9D" +"\xCE\x9E" +"\xCE\x9F" +"\xCE\xA0" +"\xCE\xA1" +# U+03A2 is not a valid unicode character. +"\xCF\xB4" +"\xCE\xA3" +"\xCE\xA4" +"\xCE\xA5" +"\xCE\xA6" +"\xCE\xA7" +"\xCE\xA8" +"\xCE\xA9" + +# GREEK SMALL LETTER ALPHA +"\xCE\xB1" +"\xCE\xB2" +"\xCE\xB3" +"\xCE\xB4" +"\xCE\xB5" +"\xCE\xB6" +"\xCE\xB7" +"\xCE\xB8" +"\xCE\xB9" +"\xCE\xBA" +"\xCE\xBB" +"\xCE\xBC" +"\xCE\xBD" +"\xCE\xBE" +"\xCE\xBF" +"\xCF\x80" +"\xCF\x81" +"\xCF\x82" +"\xCF\x83" +"\xCF\x84" +"\xCF\x85" +"\xCF\x86" +"\xCF\x87" +"\xCF\x88" +"\xCF\x89" + +# U+2207 NABLA +"\xE2\x88\x87" + +# U+2202 PARTIAL DIFFERENTIAL +"\xE2\x88\x82" + +# U+03F5 GREEK LUNATE EPSILON SYMBOL +"\xCF\xB5" + +# U+03D1 GREEK THETA SYMBOL +"\xCF\x91" + +# U+03F0 GREEK KAPPA SYMBOL +"\xCF\xB0" + +# U+03D5 GREEK PHI SYMBOL +"\xCF\x95" + +# U+03F1 GREEK RHO SYMBOL +"\xCF\xB1" + +# U+03D6 GREEK PI SYMBOL +"\xCF\x96" + +# U+03DC GREEK LETTER DIGAMMA +"\xCF\x9C" + +# U+03DD GREEK SMALL LETTER DIGAMMA +"\xCF\x9D" + +# U+0131 LATIN SMALL LETTER DOTLESS I +"\xC4\xB1" + +# U+237 LATIN SMALL LETTER DOTLESS J +"\xC8\xB7" + +# ARABIC LETTERS +"\xD8\xA7" +"\xD8\xA8" +"\xD8\xAC" +"\xD8\xAF" +"\xD9\x87" +"\xD9\x88" +"\xD8\xB2" +"\xD8\xAD" +"\xD8\xB7" +"\xD9\x8A" +"\xD9\x84" +"\xD9\x85" +"\xD9\x86" +"\xD8\xB3" +"\xD8\xB9" +"\xD9\x81" +"\xD8\xB5" +"\xD9\x82" +"\xD8\xB1" +"\xD8\xB4" +"\xD8\xAA" +"\xD8\xAB" +"\xD8\xAE" +"\xD8\xB0" +"\xD8\xB6" +"\xD8\xB8" +"\xD8\xBA"
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index ca98f5f..5f14e4e 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -7908,7 +7908,7 @@ ], "experiments": [ { - "name": "Enabled_20220516", + "name": "Enabled_20220707", "enable_features": [ "ShutdownConfirmationBubble" ] @@ -9333,7 +9333,6 @@ { "name": "Enabled", "params": { - "base_url": "true", "gesture": "true", "http_status_code": "true", "intended_as_new_entry": "true", @@ -9341,7 +9340,9 @@ "method": "true", "origin": "true", "post_id": "true", + "should_replace_current_entry": "true", "should_update_history": "true", + "url": "true", "url_is_unreachable": "true" }, "enable_features": [
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc index 35ee20d..46db811 100644 --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc
@@ -155,6 +155,9 @@ const base::Feature kPrivacySandboxAdsAPIs{"PrivacySandboxAdsAPIs", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kPrivateNetworkAccessPermissionPrompt{ + "PrivateNetworkAccessPermissionPrompt", base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kMixedContentAutoupgrade{"AutoupgradeMixedContent", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -224,7 +227,7 @@ const base::FeatureParam<FencedFramesImplementationType> kFencedFramesImplementationTypeParam{ &kFencedFrames, "implementation_type", - FencedFramesImplementationType::kShadowDOM, + FencedFramesImplementationType::kMPArch, &fenced_frame_implementation_types}; // Enable the shared storage API. Note that enabling this feature does not
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h index 1d7e1a1f..0d252408 100644 --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h
@@ -67,6 +67,8 @@ BLINK_COMMON_EXPORT extern const base::Feature kFullUserAgent; BLINK_COMMON_EXPORT extern const base::Feature kPath2DPaintCache; BLINK_COMMON_EXPORT extern const base::Feature kPrivacySandboxAdsAPIs; +BLINK_COMMON_EXPORT extern const base::Feature + kPrivateNetworkAccessPermissionPrompt; enum class FencedFramesImplementationType { kShadowDOM,
diff --git a/third_party/blink/renderer/bindings/generated_in_core.gni b/third_party/blink/renderer/bindings/generated_in_core.gni index 2f14f20d..0d4ffd5 100644 --- a/third_party/blink/renderer/bindings/generated_in_core.gni +++ b/third_party/blink/renderer/bindings/generated_in_core.gni
@@ -47,6 +47,8 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_intersection_observer_callback.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_intrinsic_sizes_callback.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_intrinsic_sizes_callback.h", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_ip_address_space.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_ip_address_space.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_layout_callback.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_layout_callback.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_mojo_watch_callback.cc",
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc index f2c0662..b517c39 100644 --- a/third_party/blink/renderer/controller/blink_initializer.cc +++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -135,7 +135,7 @@ // Try to reserve as much address space as we reasonably can. const size_t kMB = 1024 * 1024; for (size_t size = 512 * kMB; size >= 32 * kMB; size -= 16 * kMB) { - if (partition_alloc::ReserveAddressSpace(size)) { + if (base::ReserveAddressSpace(size)) { break; } }
diff --git a/third_party/blink/renderer/core/OWNERS b/third_party/blink/renderer/core/OWNERS index 64c756b..4b1e78e7 100644 --- a/third_party/blink/renderer/core/OWNERS +++ b/third_party/blink/renderer/core/OWNERS
@@ -40,7 +40,6 @@ jarhar@chromium.org jbroman@chromium.org jfernandez@igalia.com -jochen@chromium.org junov@chromium.org kbr@chromium.org keishi@chromium.org
diff --git a/third_party/blink/renderer/core/fetch/fetch_request_data.cc b/third_party/blink/renderer/core/fetch/fetch_request_data.cc index b7bcdcfd..dea8329 100644 --- a/third_party/blink/renderer/core/fetch/fetch_request_data.cc +++ b/third_party/blink/renderer/core/fetch/fetch_request_data.cc
@@ -177,6 +177,7 @@ request->SetReferrerPolicy(fetch_api_request->referrer->policy); } request->SetMode(fetch_api_request->mode); + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kUnknown); request->SetCredentials(fetch_api_request->credentials_mode); request->SetCacheMode(fetch_api_request->cache_mode); request->SetRedirect(fetch_api_request->redirect_mode); @@ -215,6 +216,7 @@ request->referrer_string_ = referrer_string_; request->referrer_policy_ = referrer_policy_; request->mode_ = mode_; + request->target_address_space_ = target_address_space_; request->credentials_ = credentials_; request->cache_mode_ = cache_mode_; request->redirect_ = redirect_;
diff --git a/third_party/blink/renderer/core/fetch/fetch_request_data.h b/third_party/blink/renderer/core/fetch/fetch_request_data.h index 483518c..ad06c66 100644 --- a/third_party/blink/renderer/core/fetch/fetch_request_data.h +++ b/third_party/blink/renderer/core/fetch/fetch_request_data.h
@@ -87,6 +87,13 @@ } void SetMode(network::mojom::RequestMode mode) { mode_ = mode; } network::mojom::RequestMode Mode() const { return mode_; } + void SetTargetAddressSpace( + network::mojom::IPAddressSpace target_address_space) { + target_address_space_ = target_address_space; + } + network::mojom::IPAddressSpace TargetAddressSpace() const { + return target_address_space_; + } void SetCredentials(network::mojom::CredentialsMode credentials) { credentials_ = credentials; } @@ -176,6 +183,8 @@ // FIXME: Support m_authenticationFlag; // FIXME: Support m_synchronousFlag; network::mojom::RequestMode mode_ = network::mojom::RequestMode::kNoCors; + network::mojom::IPAddressSpace target_address_space_ = + network::mojom::IPAddressSpace::kUnknown; network::mojom::CredentialsMode credentials_ = network::mojom::CredentialsMode::kOmit; // TODO(yiyix): |cache_mode_| is exposed but does not yet affect fetch
diff --git a/third_party/blink/renderer/core/fetch/request.cc b/third_party/blink/renderer/core/fetch/request.cc index 221dfbf..d6400d1 100644 --- a/third_party/blink/renderer/core/fetch/request.cc +++ b/third_party/blink/renderer/core/fetch/request.cc
@@ -7,6 +7,7 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "services/network/public/cpp/request_destination.h" #include "services/network/public/cpp/request_mode.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink.h" #include "services/network/public/mojom/trust_tokens.mojom-blink.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "third_party/blink/public/common/blob/blob_utils.h" @@ -83,6 +84,7 @@ request->SetReferrerString(original->ReferrerString()); request->SetReferrerPolicy(original->GetReferrerPolicy()); request->SetMode(original->Mode()); + request->SetTargetAddressSpace(original->TargetAddressSpace()); request->SetCredentials(original->Credentials()); request->SetCacheMode(original->CacheMode()); request->SetRedirect(original->Redirect()); @@ -117,9 +119,10 @@ static bool AreAnyMembersPresent(const RequestInit* init) { return init->hasMethod() || init->hasHeaders() || init->hasBody() || init->hasReferrer() || init->hasReferrerPolicy() || init->hasMode() || - init->hasCredentials() || init->hasCache() || init->hasRedirect() || - init->hasIntegrity() || init->hasKeepalive() || init->hasPriority() || - init->hasSignal() || init->hasDuplex() || init->hasTrustToken(); + init->hasTargetAddressSpace() || init->hasCredentials() || + init->hasCache() || init->hasRedirect() || init->hasIntegrity() || + init->hasKeepalive() || init->hasPriority() || init->hasSignal() || + init->hasDuplex() || init->hasTrustToken(); } static BodyStreamBuffer* ExtractBody(ScriptState* script_state, @@ -463,6 +466,23 @@ request->SetCredentials(network::mojom::CredentialsMode::kSameOrigin); } + // The following code performs the following steps: + // - "Let |targetAddressSpace| be |init|'s targetAddressSpace member if it is + // present, and |unknown| otherwise." + if (init->hasTargetAddressSpace()) { + if (init->targetAddressSpace() == "local") { + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kLocal); + } else if (init->targetAddressSpace() == "private") { + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kPrivate); + } else if (init->targetAddressSpace() == "public") { + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kPublic); + } else if (init->targetAddressSpace() == "unknown") { + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kUnknown); + } + } else { + request->SetTargetAddressSpace(network::mojom::IPAddressSpace::kUnknown); + } + // "If |init|'s cache member is present, set |request|'s cache mode to it." if (init->hasCache()) { auto&& cache = init->cache(); @@ -960,6 +980,20 @@ bool Request::keepalive() const { return request_->Keepalive(); } +String Request::targetAddressSpace() const { + switch (request_->TargetAddressSpace()) { + case network::mojom::IPAddressSpace::kLocal: + return "local"; + case network::mojom::IPAddressSpace::kPrivate: + return "private"; + case network::mojom::IPAddressSpace::kPublic: + return "public"; + case network::mojom::IPAddressSpace::kUnknown: + return "unknown"; + } + NOTREACHED(); + return "unknown"; +} bool Request::isHistoryNavigation() const { return request_->IsHistoryNavigation();
diff --git a/third_party/blink/renderer/core/fetch/request.h b/third_party/blink/renderer/core/fetch/request.h index 226efa5..deed180 100644 --- a/third_party/blink/renderer/core/fetch/request.h +++ b/third_party/blink/renderer/core/fetch/request.h
@@ -82,6 +82,7 @@ bool keepalive() const; bool isHistoryNavigation() const; AbortSignal* signal() const { return signal_; } + String targetAddressSpace() const; // From Request.idl: // This function must be called with entering an appropriate V8 context.
diff --git a/third_party/blink/renderer/core/fetch/request.idl b/third_party/blink/renderer/core/fetch/request.idl index 644898e..707a356 100644 --- a/third_party/blink/renderer/core/fetch/request.idl +++ b/third_party/blink/renderer/core/fetch/request.idl
@@ -15,6 +15,7 @@ "only-if-cached" }; enum FetchPriority {"low", "auto", "high"}; enum RequestDuplex {"half"}; +enum IPAddressSpace {"local", "private", "public", "unknown"}; // https://w3c.github.io/webappsec-referrer-policy/#referrer-policies @@ -48,6 +49,7 @@ readonly attribute DOMString integrity; readonly attribute boolean keepalive; readonly attribute AbortSignal signal; + [RuntimeEnabled=PrivateNetworkAccessPermissionPrompt] readonly attribute IPAddressSpace targetAddressSpace; [MeasureAs=RequestIsHistoryNavigation] readonly attribute boolean isHistoryNavigation; [RaisesException, CallWith=ScriptState, DoNotTestNewObject, NewObject] Request clone();
diff --git a/third_party/blink/renderer/core/fetch/request_init.idl b/third_party/blink/renderer/core/fetch/request_init.idl index 5039d22..e996cbb9 100644 --- a/third_party/blink/renderer/core/fetch/request_init.idl +++ b/third_party/blink/renderer/core/fetch/request_init.idl
@@ -24,6 +24,7 @@ [RuntimeEnabled=PriorityHints] FetchPriority priority; AbortSignal? signal; [RuntimeEnabled=FetchUploadStreaming] RequestDuplex duplex; + [RuntimeEnabled=PrivateNetworkAccessPermissionPrompt] IPAddressSpace targetAddressSpace; // Even though Trust Tokens operations are only available in secure // contexts, this has to be enforced after the fact because the // SecureContext IDL attribute doesn't affect dictionary members.
diff --git a/third_party/blink/renderer/core/html/parser/html_construction_site.cc b/third_party/blink/renderer/core/html/parser/html_construction_site.cc index 0119977..cdb4268 100644 --- a/third_party/blink/renderer/core/html/parser/html_construction_site.cc +++ b/third_party/blink/renderer/core/html/parser/html_construction_site.cc
@@ -437,8 +437,7 @@ } SetAttributes(element, token, parser_content_policy_); AttachLater(attachment_root_, element); - open_elements_.PushHTMLHtmlElement( - MakeGarbageCollected<HTMLStackItem>(element, token)); + open_elements_.PushHTMLHtmlElement(HTMLStackItem::Create(element, token)); ExecuteQueuedTasks(); element->InsertedByParser(); @@ -687,7 +686,7 @@ void HTMLConstructionSite::InsertHTMLHeadElement(AtomicHTMLToken* token) { DCHECK(!ShouldFosterParent()); - head_ = MakeGarbageCollected<HTMLStackItem>( + head_ = HTMLStackItem::Create( CreateElement(token, html_names::xhtmlNamespaceURI), token); AttachLater(CurrentNode(), head_->GetElement()); open_elements_.PushHTMLHeadElement(head_); @@ -697,8 +696,7 @@ DCHECK(!ShouldFosterParent()); Element* body = CreateElement(token, html_names::xhtmlNamespaceURI); AttachLater(CurrentNode(), body); - open_elements_.PushHTMLBodyElement( - MakeGarbageCollected<HTMLStackItem>(body, token)); + open_elements_.PushHTMLBodyElement(HTMLStackItem::Create(body, token)); if (document_) document_->WillInsertBody(); } @@ -714,7 +712,7 @@ WebFeature::kDemotedFormElement); } AttachLater(CurrentNode(), form_element); - open_elements_.Push(MakeGarbageCollected<HTMLStackItem>(form_element, token)); + open_elements_.Push(HTMLStackItem::Create(form_element, token)); } void HTMLConstructionSite::InsertHTMLTemplateElement( @@ -724,14 +722,13 @@ CreateElement(token, html_names::xhtmlNamespaceURI)); template_element->SetDeclarativeShadowRootType(declarative_shadow_root_type); AttachLater(CurrentNode(), template_element); - open_elements_.Push( - MakeGarbageCollected<HTMLStackItem>(template_element, token)); + open_elements_.Push(HTMLStackItem::Create(template_element, token)); } void HTMLConstructionSite::InsertHTMLElement(AtomicHTMLToken* token) { Element* element = CreateElement(token, html_names::xhtmlNamespaceURI); AttachLater(CurrentNode(), element); - open_elements_.Push(MakeGarbageCollected<HTMLStackItem>(element, token)); + open_elements_.Push(HTMLStackItem::Create(element, token)); } void HTMLConstructionSite::InsertSelfClosingHTMLElementDestroyingToken( @@ -780,7 +777,7 @@ SetAttributes(element, token, parser_content_policy_); if (ScriptingContentIsAllowed(parser_content_policy_)) AttachLater(CurrentNode(), element); - open_elements_.Push(MakeGarbageCollected<HTMLStackItem>(element, token)); + open_elements_.Push(HTMLStackItem::Create(element, token)); } void HTMLConstructionSite::InsertForeignElement( @@ -796,8 +793,7 @@ AttachLater(CurrentNode(), element, token->SelfClosing()); } if (!token->SelfClosing()) { - open_elements_.Push( - MakeGarbageCollected<HTMLStackItem>(element, token, namespace_uri)); + open_elements_.Push(HTMLStackItem::Create(element, token, namespace_uri)); } } @@ -1059,11 +1055,16 @@ HTMLStackItem* item) { Element* element; // NOTE: Moving from item -> token -> item copies the Attribute vector twice! + Vector<Attribute> attributes; + attributes.ReserveInitialCapacity( + static_cast<wtf_size_t>(item->Attributes().size())); + for (Attribute& attr : item->Attributes()) { + attributes.push_back(std::move(attr)); + } AtomicHTMLToken fake_token(HTMLToken::kStartTag, item->LocalName(), - item->Attributes()); + std::move(attributes)); element = CreateElement(&fake_token, item->NamespaceURI()); - return MakeGarbageCollected<HTMLStackItem>(element, &fake_token, - item->NamespaceURI()); + return HTMLStackItem::Create(element, &fake_token, item->NamespaceURI()); } bool HTMLConstructionSite::IndexOfFirstUnopenFormattingElement(
diff --git a/third_party/blink/renderer/core/html/parser/html_formatting_element_list.cc b/third_party/blink/renderer/core/html/parser/html_formatting_element_list.cc index 8ade3c1..52df203 100644 --- a/third_party/blink/renderer/core/html/parser/html_formatting_element_list.cc +++ b/third_party/blink/renderer/core/html/parser/html_formatting_element_list.cc
@@ -125,7 +125,8 @@ // quickly ensuring the condition. HeapVector<Member<HTMLStackItem>, 10> candidates; - wtf_size_t new_item_attribute_count = new_item->Attributes().size(); + wtf_size_t new_item_attribute_count = + static_cast<wtf_size_t>(new_item->Attributes().size()); for (wtf_size_t i = entries_.size(); i;) { --i;
diff --git a/third_party/blink/renderer/core/html/parser/html_stack_item.h b/third_party/blink/renderer/core/html/parser/html_stack_item.h index 9fcf4500..aadac11 100644 --- a/third_party/blink/renderer/core/html/parser/html_stack_item.h +++ b/third_party/blink/renderer/core/html/parser/html_stack_item.h
@@ -37,6 +37,9 @@ class ContainerNode; +// NOTE: HTMLStackItem stores all of its attributes (if any) just after the end +// of the pointer itself, to reduce on the number of Alloc/Free calls. (This +// also saves a little bit of memory, as a side effect.) class HTMLStackItem final : public GarbageCollected<HTMLStackItem> { public: enum ItemType { kItemForContextElement, kItemForDocumentFragmentNode }; @@ -54,15 +57,42 @@ } } - HTMLStackItem( - ContainerNode* node, - AtomicHTMLToken* token, - const AtomicString& namespace_uri = html_names::xhtmlNamespaceURI) + // You cannot call this constructor directly (but it must be public + // so that MakeGarbageCollected() can); use Create() below instead. + HTMLStackItem(base::PassKey<HTMLStackItem>, + ContainerNode* node, + AtomicHTMLToken* token, + const AtomicString& namespace_uri) : node_(node), token_local_name_(token->GetName()), - token_attributes_(token->Attributes()), namespace_uri_(namespace_uri), - is_document_fragment_node_(false) {} + num_token_attributes_(token->Attributes().size()), + is_document_fragment_node_(false) { + // We rely on Create() allocating extra memory past our end for the + // attributes. + for (wtf_size_t i = 0; i < token->Attributes().size(); ++i) { + new (TokenAttributesData() + i) Attribute(token->Attributes()[i]); + } + } + + ~HTMLStackItem() { + // We need to clean up the attributes we initialized in the constructor + // manually, since they are not stored in a regular member. + if (num_token_attributes_ > 0) { + for (Attribute& attribute : Attributes()) { + attribute.~Attribute(); + } + } + } + + static HTMLStackItem* Create( + ContainerNode* node, + AtomicHTMLToken* token, + const AtomicString& namespace_uri = html_names::xhtmlNamespaceURI) { + return MakeGarbageCollected<HTMLStackItem>( + AdditionalBytes(token->Attributes().size() * sizeof(Attribute)), + base::PassKey<HTMLStackItem>(), node, token, namespace_uri); + } Element* GetElement() const { return To<Element>(node_.Get()); } ContainerNode* GetNode() const { return node_.Get(); } @@ -73,13 +103,17 @@ const AtomicString& NamespaceURI() const { return namespace_uri_; } const AtomicString& LocalName() const { return token_local_name_; } - const Vector<Attribute>& Attributes() const { + const base::span<Attribute> Attributes() { DCHECK(token_local_name_); - return token_attributes_; + return {TokenAttributesData(), num_token_attributes_}; + } + const base::span<const Attribute> Attributes() const { + DCHECK(token_local_name_); + return {TokenAttributesData(), num_token_attributes_}; } Attribute* GetAttributeItem(const QualifiedName& attribute_name) { DCHECK(token_local_name_); - return FindAttributeInVector(token_attributes_, attribute_name); + return FindAttributeInVector(Attributes(), attribute_name); } bool HasLocalName(const AtomicString& name) const { @@ -208,11 +242,23 @@ void Trace(Visitor* visitor) const { visitor->Trace(node_); } private: + // The attributes are stored directly after the HTMLStackItem in memory + // (using Oilpan's AdditionalBytes system). Space for this is guaranteed + // by Create(). + Attribute* TokenAttributesData() { + static_assert(alignof(HTMLStackItem) >= alignof(Attribute)); + return reinterpret_cast<Attribute*>(this + 1); + } + const Attribute* TokenAttributesData() const { + static_assert(alignof(HTMLStackItem) >= alignof(Attribute)); + return reinterpret_cast<const Attribute*>(this + 1); + } + Member<ContainerNode> node_; AtomicString token_local_name_; - Vector<Attribute> token_attributes_; AtomicString namespace_uri_; + wtf_size_t num_token_attributes_ = 0; bool is_document_fragment_node_; };
diff --git a/third_party/blink/renderer/core/html/parser/html_token.h b/third_party/blink/renderer/core/html/parser/html_token.h index 5d0eed0..cef48f9 100644 --- a/third_party/blink/renderer/core/html/parser/html_token.h +++ b/third_party/blink/renderer/core/html/parser/html_token.h
@@ -56,11 +56,11 @@ bool force_quirks_; }; -static inline Attribute* FindAttributeInVector(Vector<Attribute>& attributes, +static inline Attribute* FindAttributeInVector(base::span<Attribute> attributes, const QualifiedName& name) { for (unsigned i = 0; i < attributes.size(); ++i) { - if (attributes.at(i).GetName().Matches(name)) - return &attributes.at(i); + if (attributes[i].GetName().Matches(name)) + return &attributes[i]; } return nullptr; }
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn index f8d19c3..4f209ae 100644 --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -2429,6 +2429,17 @@ ] } +# Fuzzer for WTF::unicode::MathVariant. +fuzzer_test("math_transform_fuzzer") { + sources = [ "math_transform_fuzzer.cc" ] + deps = [ + ":blink_fuzzer_test_support", + ":platform", + ] + libfuzzer_options = [ "max_len=10" ] + dict = "//testing/libfuzzer/fuzzers/dicts/math_transform.dict" +} + # Fuzzer for blink::FindCategory. fuzzer_test("mathml_operator_dictionary_fuzzer") { sources = [ "text/mathml_operator_dictionary_fuzzer.cc" ]
diff --git a/third_party/blink/renderer/platform/math_transform_fuzzer.cc b/third_party/blink/renderer/platform/math_transform_fuzzer.cc new file mode 100644 index 0000000..775fb37 --- /dev/null +++ b/third_party/blink/renderer/platform/math_transform_fuzzer.cc
@@ -0,0 +1,30 @@ +// 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 "third_party/blink/renderer/platform/wtf/text/math_transform.h" + +#include <stddef.h> +#include <stdint.h> +#include "third_party/blink/renderer/platform/fonts/utf16_text_iterator.h" +#include "third_party/blink/renderer/platform/testing/blink_fuzzer_test_support.h" +#include "third_party/blink/renderer/platform/testing/fuzzed_data_provider.h" + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { + static blink::BlinkFuzzerTestSupport test_support = + blink::BlinkFuzzerTestSupport(); + blink::FuzzedDataProvider data_provider(data, size); + // TODO(crbug.com/1076420,crbug.com/1340884): When WTF::unicode::MathVariant + // support transforms other than "italic", use one byte from random data to + // select a transform keyword. + String content = data_provider.ConsumeRandomLengthString(size); + content.Ensure16Bit(); + blink::UTF16TextIterator text_iterator(content.Characters16(), + content.length()); + UChar32 code_point; + while (text_iterator.Consume(code_point)) { + WTF::unicode::MathVariant(code_point); + text_iterator.Advance(); + } + return 0; +}
diff --git a/third_party/blink/renderer/platform/media/key_system_config_selector.cc b/third_party/blink/renderer/platform/media/key_system_config_selector.cc index 0209629..ff5d451c 100644 --- a/third_party/blink/renderer/platform/media/key_system_config_selector.cc +++ b/third_party/blink/renderer/platform/media/key_system_config_selector.cc
@@ -624,10 +624,6 @@ // for cross-origin frames. We do not do this on Android because there is no // CDM selection available to Chrome that doesn't require a distinct // identifier. - // TODO(crbug.com/1318055): With MPArch there may be multiple main frames - // so we should use IsCrossOriginToOutermostMainFrame when we intend to check - // if any embedded frame (eg, iframe or fenced frame) is cross-origin with - // respect to the outermost main frame. Follow up to confirm correctness. if (web_frame_delegate_->IsCrossOriginToOutermostMainFrame()) { if (distinctive_identifier_support == EmeFeatureSupport::ALWAYS_ENABLED) return CONFIGURATION_NOT_SUPPORTED;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.cc b/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.cc index 8a586af..c5e63ec 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.h" #include "base/check.h" +#include "third_party/abseil-cpp/absl/strings/string_view.h" #include "third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -23,6 +24,10 @@ } bool RtcEventLogOutputSinkProxy::Write(const std::string& output) { + return Write(absl::string_view(output)); +} + +bool RtcEventLogOutputSinkProxy::Write(absl::string_view output) { WTF::Vector<uint8_t> converted_output; converted_output.AppendRange(output.begin(), output.end());
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.h b/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.h index 40b3886..7d07f77 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_event_log_output_sink_proxy.h
@@ -7,6 +7,7 @@ #include <memory> +#include "third_party/abseil-cpp/absl/strings/string_view.h" #include "third_party/blink/renderer/platform/heap/persistent.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/webrtc/api/rtc_event_log_output.h" @@ -28,6 +29,7 @@ bool IsActive() const override; bool Write(const std::string& output) override; + bool Write(absl::string_view output) override; private: CrossThreadWeakPersistent<RtcEventLogOutputSink> sink_;
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 86fd84cf..c219045 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1972,6 +1972,10 @@ status: "experimental", }, { + name: "PrivateNetworkAccessPermissionPrompt", + status: "test", + }, + { name: "PushMessaging", status: "stable", },
diff --git a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc index 1de3152..5d8ef2a 100644 --- a/third_party/blink/renderer/platform/wtf/allocator/partitions.cc +++ b/third_party/blink/renderer/platform/wtf/allocator/partitions.cc
@@ -421,7 +421,7 @@ // static void Partitions::HandleOutOfMemory(size_t size) { volatile size_t total_usage = TotalSizeOfCommittedPages(); - uint32_t alloc_page_error_code = partition_alloc::GetAllocPageErrorCode(); + uint32_t alloc_page_error_code = base::GetAllocPageErrorCode(); base::debug::Alias(&alloc_page_error_code); // Report the total mapped size from PageAllocator. This is intended to @@ -434,8 +434,7 @@ char value[24]; // %d works for 64 bit types as well with SafeSPrintf(), see its unit tests // for an example. - base::strings::SafeSPrintf(value, "%d", - partition_alloc::GetTotalMappedSize()); + base::strings::SafeSPrintf(value, "%d", base::GetTotalMappedSize()); static crash_reporter::CrashKeyString<24> g_page_allocator_mapped_size( "page-allocator-mapped-size"); g_page_allocator_mapped_size.Set(value);
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 82f8c4e..1816e49 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -7162,6 +7162,9 @@ crbug.com/1341090 external/wpt/webmessaging/with-ports/021.html [ Failure Pass ] crbug.com/1341090 external/wpt/webmessaging/without-ports/021.html [ Failure Pass ] +# Disable test to land a DevTools change +crbug.com/1299832 http/tests/devtools/extensions/extensions-api.js [ Skip ] + # Sheriff 2022-07-07 crbug.com/1339538 [ Mac ] fast/frames/002.html [ Failure Pass ] crbug.com/1339538 [ Linux ] fast/frames/002.html [ Failure Pass ] \ No newline at end of file
diff --git a/third_party/blink/web_tests/WebDriverExpectations b/third_party/blink/web_tests/WebDriverExpectations index ddf9e41..a499aa1 100644 --- a/third_party/blink/web_tests/WebDriverExpectations +++ b/third_party/blink/web_tests/WebDriverExpectations
@@ -17,6 +17,9 @@ crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/element_send_keys/user_prompts.py>>test_ignore[capabilities0-alert] [ Failure Pass ] crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/execute_script/user_prompts.py>>test_dismiss_and_notify[capabilities0-alert-None] [ Failure Pass ] crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/find_element/find.py>>test_no_browsing_context [ Failure Pass ] +crbug.com/1342590 [ Linux ] external/wpt/webdriver/tests/find_elements_from_element/user_prompts.py>>test_ignore[capabilities0-alert] [ Failure Pass ] +crbug.com/1342590 [ Linux ] external/wpt/webdriver/tests/find_elements_from_element/user_prompts.py>>test_ignore[capabilities0-confirm] [ Failure Pass ] +crbug.com/1342590 [ Linux ] external/wpt/webdriver/tests/find_elements_from_element/user_prompts.py>>test_ignore[capabilities0-prompt] [ Failure Pass ] crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/forward/user_prompts.py>>test_accept[capabilities0-alert] [ Failure Pass ] crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/get_element_attribute/user_prompts.py>>test_default[alert-None] [ Failure Pass ] crbug.com/977228 [ Linux ] external/wpt/webdriver/tests/get_element_rect/user_prompts.py>>test_default[alert-None] [ Failure Pass ]
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/network/navigate-iframe-out2in.js_ b/third_party/blink/web_tests/http/tests/inspector-protocol/network/navigate-iframe-out2in.js_ deleted file mode 100644 index 4d273da4..0000000 --- a/third_party/blink/web_tests/http/tests/inspector-protocol/network/navigate-iframe-out2in.js_ +++ /dev/null
@@ -1,52 +0,0 @@ -(async function(testRunner) { - const {page, session, dp} = await testRunner.startBlank( - `Verifies that navigating from a OOPIF to in-process iframe sets the right sessionId.\n`); - - await dp.Page.enable(); - await dp.Page.setLifecycleEventsEnabled({ enabled: true }); - dp.Page.onLifecycleEvent(onLifecycleEvent); - - await dp.Network.clearBrowserCache(); - await dp.Network.setCacheDisabled({cacheDisabled: true}); - await dp.Network.enable(); - - await dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: true, flatten: true}); - - await session.navigate('resources/page-out.html'); - const attachedEvent = await dp.Target.onceAttachedToTarget(); - const dp2 = session.createChild(attachedEvent.params.sessionId).protocol; - const iFrameEvents = Promise.all([ - dp2.Network.onceRequestWillBeSent(), - dp2.Network.onceResponseReceivedExtraInfo(), - dp2.Network.onceResponseReceived(), - dp2.Network.onceResponseReceivedExtraInfo() - ]); - await dp2.Page.enable(); - await dp2.Network.clearBrowserCache(); - await dp2.Network.setCacheDisabled({cacheDisabled: true}); - await dp2.Network.enable(); - await dp2.Page.setLifecycleEventsEnabled({enabled: true}); - dp2.Runtime.runIfWaitingForDebugger(); - - // There are two load events fired, one for the OOPIF frame, and one for - // page-out after setting the src property on the iframe. - await dp2.Page.onceLifecycleEvent((event) => event.params.name == "load")); - await dp2.Page.onceLifecycleEvent((event) => event.params.name == "load")); - - testRunner.log( - 'Loaded page-out with OOPIF, setting iframe src to in-process URL.'); - - dp.Network.onRequestWillBeSent(() => testRunner.log("unexpected RequestWillBeSent")); - dp.Network.onRequestWillBeSentExtraInfo(() => testRunner.log("unexpected RequestWillBeSentExtraInfo")); - dp.Network.onResponseReceivedExtraInfo(() => testRunner.log("unexpected ResponseReceivedExtraInfo")); - dp.Network.onResponseReceived(() => testRunner.log("unexpected ResponseReceived")); - - await session.evaluate( `document.getElementById('page-iframe').src = - 'http://127.0.0.1:8000/inspector-protocol/network/resources/inner-iframe.html'`); - - await dp2.Page.onceLifecycleEvent((event) => event.params.name == "load")); - await dp2.Page.onceLifecycleEvent((event) => event.params.name == "load")); - await iFrameEvents; - - testRunner.completeTest(); -})
diff --git a/third_party/blink/web_tests/platform/generic/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/blink/web_tests/platform/generic/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index b66e6bf2..b603384 100644 --- a/third_party/blink/web_tests/platform/generic/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/blink/web_tests/platform/generic/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -1324,6 +1324,7 @@ getter referrer getter referrerPolicy getter signal + getter targetAddressSpace getter url method arrayBuffer method blob
diff --git a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-dedicated-worker-expected.txt index 7c19ffd..f46da64 100644 --- a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -1360,6 +1360,7 @@ [Worker] getter referrer [Worker] getter referrerPolicy [Worker] getter signal +[Worker] getter targetAddressSpace [Worker] getter url [Worker] method arrayBuffer [Worker] method blob
diff --git a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt index 39965ec9..3441312 100644 --- a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-expected.txt
@@ -7133,6 +7133,7 @@ getter referrer getter referrerPolicy getter signal + getter targetAddressSpace getter url method arrayBuffer method blob
diff --git a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-shared-worker-expected.txt index 5744835..fc131b6f 100644 --- a/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/blink/web_tests/platform/generic/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -1216,6 +1216,7 @@ [Worker] getter referrer [Worker] getter referrerPolicy [Worker] getter signal +[Worker] getter targetAddressSpace [Worker] getter url [Worker] method arrayBuffer [Worker] method blob
diff --git a/third_party/blink/web_tests/wpt_internal/attribution-reporting/debug-key.sub.https.html b/third_party/blink/web_tests/wpt_internal/attribution-reporting/debug-key.sub.https.html index 5e746f6..d6abb0d 100644 --- a/third_party/blink/web_tests/wpt_internal/attribution-reporting/debug-key.sub.https.html +++ b/third_party/blink/web_tests/wpt_internal/attribution-reporting/debug-key.sub.https.html
@@ -1,5 +1,6 @@ <!doctype html> <meta charset=utf-8> +<meta name=timeout content=long> <meta name=variant content="?include=source"> <meta name=variant content="?include=trigger"> <script src="/resources/testharness.js"></script>
diff --git a/third_party/grpc/template/BUILD.chromium.gn.template b/third_party/grpc/template/BUILD.chromium.gn.template index afd74ce..ed18d729 100644 --- a/third_party/grpc/template/BUILD.chromium.gn.template +++ b/third_party/grpc/template/BUILD.chromium.gn.template
@@ -335,7 +335,7 @@ cares_sources = glob.glob('third_party/cares/cares/include/*.h') + \ glob.glob('third_party/cares/cares/src/lib/*.c') - # cares is only used in eureka. Use chromium/src/third_party/cares in eureka. + # cares is only used in chromecast. Use chromium/src/third_party/cares in chromecast cares_sources = gn_sort([s.replace('third_party/cares/cares', '//third_party/cares') for s in cares_sources]) cares_sources = [s for s in cares_sources if s not in (
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 478d52fc..e4b0ec65 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -5943,6 +5943,13 @@ <int value="3" label="Already installed"/> </enum> +<enum name="AutofillAssistantFlowFinishedState"> + <int value="0" label="Unknown"/> + <int value="1" label="Successful"/> + <int value="2" label="Failure"/> + <int value="3" label="Destroyed"/> +</enum> + <enum name="AutofillAssistantGetClientTokenResult"> <int value="0" label="Called"/> <int value="1" label="Success"/> @@ -24626,6 +24633,28 @@ <int value="5" label="Granted"/> </enum> +<enum name="DeviceSignalsWmiParsingError"> + <int value="0" label="Failed to iterate results"/> + <int value="1" label="Failed to get name"/> + <int value="2" label="Failed to get state"/> + <int value="3" label="State invalid"/> + <int value="4" label="Failed to get ID"/> +</enum> + +<enum name="DeviceSignalsWscParsingError"> + <int value="0" label="Failed to get item"/> + <int value="1" label="Failed to get state"/> + <int value="2" label="State invalid"/> + <int value="3" label="Failed to get name"/> + <int value="4" label="Failed to get ID"/> +</enum> + +<enum name="DeviceSignalsWscQueryError"> + <int value="0" label="Failed to create instance"/> + <int value="1" label="Failed to initialize product list"/> + <int value="2" label="Failed to get product count"/> +</enum> + <enum name="DevicesPageEvents"> <obsolete> Removed July 2019. @@ -56779,6 +56808,8 @@ <int value="-1134307340" label="stop-loading-in-background:enabled"/> <int value="-1132704128" label="AndroidPaymentAppsFilter:disabled"/> <int value="-1131726331" label="BackGestureRefactorAndroid:disabled"/> + <int value="-1130756844" + label="EnableBiometricAuthenticationInSettings:disabled"/> <int value="-1128981647" label="EnableOAuthIpp:enabled"/> <int value="-1128912963" label="MediaControlsExpandGesture:disabled"/> <int value="-1128221789" @@ -60134,6 +60165,8 @@ label="OmniboxTrendingZeroPrefixSuggestionsOnNTP:disabled"/> <int value="1057887829" label="AutofillScanThemeDialog:disabled"/> <int value="1059007599" label="enable-gpu-appcontainer"/> + <int value="1059157909" + label="EnableBiometricAuthenticationInSettings:enabled"/> <int value="1059283439" label="OmniboxClobberTriggersContextualWebZeroSuggest:disabled"/> <int value="1059698271" label="EnableZeroStateSuggestions:disabled"/> @@ -85284,6 +85317,11 @@ <int value="5" label="Request failed"/> <int value="6" label="Request cancelled"/> <int value="7" label="Request served"/> + <int value="8" label="Was served to prerender navigation stack"/> + <int value="9" + label="Serving to prerender navigation stack and user navigated to + search terms"/> + <int value="10" label="Upgraded to prerender and succeeded"/> </enum> <enum name="SearchPrefetchServingReason"> @@ -85297,6 +85335,8 @@ <int value="7" label="Prefetch request failed"/> <int value="8" label="Another reason (unexpected)"/> <int value="9" label="POST, reload, link, or other non-cache loads."/> + <int value="10" + label="A prerender navigation request has taken this response away."/> </enum> <enum name="SearchResultExtractorClientStatus"> @@ -103555,6 +103595,12 @@ <int value="2" label="People"/> </enum> +<enum name="WmiQueryError"> + <int value="0" label="Failed to create instance"/> + <int value="1" label="Failed to initialize product list"/> + <int value="2" label="Failed to get product count"/> +</enum> + <enum name="WMIRefresherInitStatus"> <obsolete> Removed from code 08/2019.
diff --git a/tools/metrics/histograms/metadata/content/histograms.xml b/tools/metrics/histograms/metadata/content/histograms.xml index c045a0f..d3264ba 100644 --- a/tools/metrics/histograms/metadata/content/histograms.xml +++ b/tools/metrics/histograms/metadata/content/histograms.xml
@@ -278,7 +278,7 @@ <owner>twellington@chromium.org</owner> <summary> The request desktop site content setting at profile open. Recorded for - Android only. + Android and iOS only. </summary> </histogram>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml index 0fdeb91..eae985c7d 100644 --- a/tools/metrics/histograms/metadata/enterprise/histograms.xml +++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -69,6 +69,11 @@ <variant name="Recommended" summary="Recommended Policy"/> </variants> +<variants name="WmiSystemSignal"> + <variant name="AntiVirus" summary="AntiVirus info"/> + <variant name="Hotfixes" summary="Hotfix info"/> +</variants> + <histogram name="Enterprise.AccountStatusCheckResult" enum="EnterpriseAccountStatus" expires_after="2022-10-01"> <owner>raleksandrov@google.com</owner> @@ -155,20 +160,6 @@ </histogram> <histogram - name="Enterprise.AutoEnrollmentExtraTime{EnterpriseAutoEnrollmentType}" - units="ms" expires_after="2021-03-01"> - <owner>pmarko@chromium.org</owner> - <owner>igorcov@chromium.org</owner> - <summary> - Time since the user logged in until the auto-enrollment protocol completed. - 0 is sampled when the protocol is done by the time the user logs in. - {EnterpriseAutoEnrollmentType} - </summary> - <token key="EnterpriseAutoEnrollmentType" - variants="EnterpriseAutoEnrollmentType"/> -</histogram> - -<histogram name="Enterprise.AutoEnrollmentHashDanceSuccessTime{EnterpriseAutoEnrollmentType}" units="ms" expires_after="2022-07-09"> <owner>amraboelkher@chromium.org</owner> @@ -2095,6 +2086,64 @@ <summary>Result of a single attempt to upload system logs.</summary> </histogram> +<histogram name="Enterprise.SystemSignals.Collection.WMI.{Signal}.ParsingError" + enum="DeviceSignalsWmiParsingError" expires_after="2023-03-01"> + <owner>seblalancette@chromium.org</owner> + <owner>cbe-device-trust-eng@google.com</owner> + <summary> + Captures the actual error whenever parsing of {Signal} from WMI results + failed. + </summary> + <token key="Signal" variants="WmiSystemSignal"/> +</histogram> + +<histogram name="Enterprise.SystemSignals.Collection.WMI.{Signal}.QueryError" + enum="WmiQueryError" expires_after="2023-03-01"> + <owner>seblalancette@chromium.org</owner> + <owner>cbe-device-trust-eng@google.com</owner> + <summary> + Captures the actual error whenever collection of {Signal} from WMI failed + with a query error. + </summary> + <token key="Signal" variants="WmiSystemSignal"/> +</histogram> + +<histogram + name="Enterprise.SystemSignals.Collection.WSC.AntiVirus.ParsingError" + enum="DeviceSignalsWscParsingError" expires_after="2023-03-01"> + <owner>seblalancette@chromium.org</owner> + <owner>cbe-device-trust-eng@google.com</owner> + <summary> + Captures the actual error whenever parsing of AntiVirus info from WSC + results failed. + </summary> +</histogram> + +<histogram name="Enterprise.SystemSignals.Collection.WSC.AntiVirus.QueryError" + enum="DeviceSignalsWscQueryError" expires_after="2023-03-01"> + <owner>seblalancette@chromium.org</owner> + <owner>cbe-device-trust-eng@google.com</owner> + <summary> + Captures the actual error whenever collection of AntiVirus info from WSC + failed with a query error. + </summary> +</histogram> + +<histogram + name="Enterprise.SystemSignals.Collection.{Signal}.ParsingError.Rate" + units="%" expires_after="2023-03-01"> + <owner>seblalancette@chromium.org</owner> + <owner>cbe-device-trust-eng@google.com</owner> + <summary> + Captures the response parsing error rate whenever collecting {Signal}. + </summary> + <token key="Signal"> + <variant name="WMI.AntiVirus" summary="AntiVirus info from WMI"/> + <variant name="WMI.Hotfixes" summary="Hotfixes info from WMI"/> + <variant name="WSC.AntiVirus" summary="AntiVirus info from WSC"/> + </token> +</histogram> + <histogram name="Enterprise.UserPolicyChromeOS.ChildUser.OAuthTokenError" enum="GoogleServiceAuthError" expires_after="2023-01-01"> <owner>agawronska@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/omnibox/histograms.xml b/tools/metrics/histograms/metadata/omnibox/histograms.xml index 1cc7e0f0..636cc3d 100644 --- a/tools/metrics/histograms/metadata/omnibox/histograms.xml +++ b/tools/metrics/histograms/metadata/omnibox/histograms.xml
@@ -1275,6 +1275,28 @@ </summary> </histogram> +<histogram name="Omnibox.SearchPrefetch.PrefetchServingReason.Prerender" + enum="SearchPrefetchServingReason" expires_after="2022-12-11"> + <owner>lingqi@chromium.org</owner> + <owner>ryansturm@chromium.org</owner> + <owner>chrome-prerendering@google.com</owner> + <summary> + Records whether a search prerender request uses the prefetched response. + SearchPrefetchService records this metric when + SearchPrefetchURLLoaderInterceptor attempts to intercept a prerendering main + resource request, for prerender main frame navigations with the feature flag + of SearchPrefetchUpgradeToPrerender enabled. + + Backgound: A search prerender request should use the prefetched response + instead of resending the same request, otherwise it will waste resources. + The search suggestion service may suggest to prefetch a result page, and + then ask the client to prerender the page. When the client attempts + prerender the page, it has received the response associated with the + prefetch request (by design), and should serve the prefetched response to + the prerender request. + </summary> +</histogram> + <histogram name="Omnibox.SearchPrefetch.StartTime.NavigationPrefetch" units="ms" expires_after="2022-10-30"> <owner>ryansturm@chromium.org</owner>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index 057f0da96..a0fa8c8 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -2466,6 +2466,84 @@ </metric> </event> +<event name="AutofillAssistant.FlowFinished"> + <owner>arbesser@google.com</owner> + <owner>fga@google.com</owner> + <owner>autofill_assistant@google.com</owner> + <summary> + A set of metrics that are recorded at the end of a flow. Once an autofill + assistant flow has started, this event will be recorded exactly once at the + end of it. Metrics in this event describe aggregated statistics of the flow. + </summary> + <metric name="FlowFinishedState" enum="AutofillAssistantFlowFinishedState"> + <summary> + An enum capturing whether the flow ended successfully or not. + </summary> + </metric> + <metric name="NumActions"> + <summary> + The total number of actions received, across all roundtrips of this flow. + </summary> + </metric> + <metric name="NumJsFlowActions"> + <summary> + The total number of JS flow actions received, summed over all GetActions + responses. + </summary> + </metric> + <metric name="NumRoundtrips"> + <summary> + The total number of roundtrips during this flow. + </summary> + </metric> + <metric name="TotalDecodedGetActionsSizeInBytes"> + <summary> + The total size of all received GetActions responses, summed over all + downloaded responses after decoding, in bytes. This number is + exponentially bucketed and uses the UKM GetExponentialBucketMinForBytes + method with a default value of 1.3 for spacing. + </summary> + <aggregation> + <history> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> + </metric> + <metric name="TotalDecodedJsFlowSizeInBytes"> + <summary> + The total size of all JS flow actions received, summed over all GetActions + responses, in bytes. This number is exponentially bucketed and uses the + UKM GetExponentialBucketMinForBytes method with a default value of 1.3 for + spacing. + </summary> + <aggregation> + <history> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> + </metric> + <metric name="TotalEncodedGetActionsSizeInBytes"> + <summary> + The total number of bytes that were received from the GetActions RPC, + summed over all downloaded responses before decoding, in bytes. This + number is exponentially bucketed and uses the UKM + GetExponentialBucketMinForBytes method with a default value of 1.3 for + spacing. + </summary> + <aggregation> + <history> + <statistics> + <quantiles type="std-percentiles"/> + </statistics> + </history> + </aggregation> + </metric> +</event> + <event name="AutofillAssistant.InChromeTriggering"> <owner>arbesser@google.com</owner> <owner>mcarlen@google.com</owner>
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 153574f..cc3cf47 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -6,7 +6,7 @@ }, "win": { "hash": "f9217c1f466ed74c5e6010c84150e3f8b6ec9634", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/84a3c77dcdf0c06d4b077a41e494a39024320b3a/trace_processor_shell.exe" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/4440655d1a4a407c4ae59157a588aaedbcfe685e/trace_processor_shell.exe" }, "linux_arm": { "hash": "58893933be305d3bfe0a72ebebcacde2ac3ca893", @@ -21,8 +21,8 @@ "full_remote_path": "perfetto-luci-artifacts/v25.0/mac-arm64/trace_processor_shell" }, "linux": { - "hash": "b6c389fe130356cefc891bff28b44fb7c7c1b040", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/84a3c77dcdf0c06d4b077a41e494a39024320b3a/trace_processor_shell" + "hash": "43056dc26144aa0c94240be9fb96e8112598ffd6", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/e535a96ea0270d6b5922b552b40e69d534d401e0/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/ui/chromeos/translations/ui_chromeos_strings_am.xtb b/ui/chromeos/translations/ui_chromeos_strings_am.xtb index 1b776e7..3e4dcc8 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_am.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">ሃንጉል ሮማጃ</translation> <translation id="112387589102719461">እንግሊዝኛ (አሜሪካ) በፕሮግራመር ድቮራክ ቁልፍ ሰሌዳ</translation> <translation id="1134697384939541955">እንግሊዝኛ (አሜሪካ) በተራዘመ ቁልፍ ሰሌዳ</translation> +<translation id="1138691154716715755">በዚህ ወር ቀደም ብሎ</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> ተገኝቷል። <ph name="LINE_BREAK1" /> በአካባቢያዊ ማከማቻ ውስጥ በቂ ቦታ የለም። ተጨማሪ <ph name="FILE_SIZE" /> ያስፈልጋል። @@ -378,6 +379,7 @@ <translation id="4380245540200674032">አውታረ መረብ <ph name="NETWORK_INDEX" /> ከ<ph name="NETWORK_COUNT" />፣ <ph name="NETWORK_NAME" />፣ <ph name="NETWORK_PROVIDER_NAME" />፣ <ph name="CONNECTION_STATUS" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />%፣ በእርስዎ አስተዳዳሪ የሚተዳደር፣ ዝርዝሮች</translation> <translation id="4387004326333427325">የማረጋገጫ ምስክር ወረቀት በርቀት ተቀባይነት አላገኘም</translation> <translation id="4394214039309501350">ውጫዊ አገናኝ</translation> +<translation id="4394980935660306080">በዚህ ሳምንት ቀደም ብሎ</translation> <translation id="4401287888955153199">ሁሉንም ያውጡ</translation> <translation id="4410695710508688828">የማውጣት ክወና አልተሳካም። <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">ለፋይሎችዎ አቋራጭ ይፍጠሩ</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">«<ph name="PATH" />»ን በመክፈት ላይ</translation> <translation id="4720185134442950733">የተንቀሳቃሽ ውሂብ አውታረ መረብ</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> ፎቶዎች በምትኬ ተቀምጠዋል</translation> +<translation id="4725096204469550614">በዚህ ዓመት ቀደም ብሎ</translation> <translation id="4725511304875193254">ኮርጂ</translation> <translation id="4737050008115666127">ማረፊያ</translation> <translation id="4747271164117300400">መቄዶኒያኛ</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> ንጥሎችን ወደ <ph name="FOLDER_NAME" /> በመውሰድ ላይ</translation> <translation id="509429900233858213">ስህተት አጋጥሟል።</translation> <translation id="5098629044894065541">ዕብራስጥ</translation> +<translation id="5102922915594634436">የሰመሩ ማቀፊያዎችን አስተዳድር</translation> <translation id="5109254780565519649">ስህተት አጋጥሟል። አንዳንድ ንጥሎች ወደነበሩበት አልተመለሱም።</translation> <translation id="5110329002213341433">እንግሊዝኛ (ካናዳ)</translation> <translation id="5123433949759960244">ቅርጫት ኳስ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb index d012252..b2f542a6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">الهانغولية روماجا</translation> <translation id="112387589102719461">الإنجليزية (الولايات المتحدة) باستخدام لوحة مفاتيح المطوّر الأمريكية Dvorak</translation> <translation id="1134697384939541955">الإنجليزية (الولايات المتحدة) باستخدام لوحة المفاتيح الموسَّعة</translation> +<translation id="1138691154716715755">في وقت سابق من هذا الشهر</translation> <translation id="1148097584170732637">تم العثور على <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> لا توجد مساحة كافية في مساحة التخزين المحلية. ويتطلب وجود <ph name="FILE_SIZE" /> إضافي. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">الشبكة <ph name="NETWORK_INDEX" /> من <ph name="NETWORK_COUNT" />، <ph name="NETWORK_NAME" />، <ph name="NETWORK_PROVIDER_NAME" />، <ph name="CONNECTION_STATUS" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />%، يدير المشرف هذه الشبكة، التفاصيل</translation> <translation id="4387004326333427325">تم رفض شهادة المصادقة عن بُعد</translation> <translation id="4394214039309501350">رابط خارجي</translation> +<translation id="4394980935660306080">في وقت سابق من هذا الأسبوع</translation> <translation id="4401287888955153199">استخراج الكل</translation> <translation id="4410695710508688828">تعذّرت عملية استخراج الملفات. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">إنشاء اختصار للملفات</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">جارٍ فتح "<ph name="PATH" />"</translation> <translation id="4720185134442950733">شبكة بيانات الجوّال</translation> <translation id="4724850507808590449">تم نسخ <ph name="FILE_COUNT" /> من الصور احتياطيًا</translation> +<translation id="4725096204469550614">في وقت سابق من هذا العام</translation> <translation id="4725511304875193254">كورجي</translation> <translation id="4737050008115666127">هبوط</translation> <translation id="4747271164117300400">المقدونية</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">جارٍ نقل <ph name="NUMBER_OF_ITEMS" /> عنصر إلى <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">حدث خطأ.</translation> <translation id="5098629044894065541">العبرية</translation> +<translation id="5102922915594634436">إدارة المجلدات التي تمت مزامنتها</translation> <translation id="5109254780565519649">حدث خطأ. وقد لا تتم استعادة بعض الملفات.</translation> <translation id="5110329002213341433">الإنجليزية (كندا)</translation> <translation id="5123433949759960244">كرة السلة</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb index 0c2cf2e..c73207ae 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">হাংগুল ৰ’মাজা</translation> <translation id="112387589102719461">প্ৰ’গ্ৰেমাৰ Dvorak কীব’ৰ্ডৰ সৈতে ইংৰাজী (যুক্তৰাষ্ট্ৰ)</translation> <translation id="1134697384939541955">বিস্তাৰিত কীব’ৰ্ডৰ সৈতে ইংৰাজী (যুক্তৰাষ্ট্ৰ)</translation> +<translation id="1138691154716715755">এই মাহটোৰ আৰম্ভণিতে</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" />টা ফাইল বিচাৰি পোৱা হৈছে। <ph name="LINE_BREAK1" /> স্থানীয় ষ্ট’ৰেজত পর্যাপ্ত খালী ঠাই নাই। অতিৰিক্ত <ph name="FILE_SIZE" /> আৱশ্যক। @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_COUNT" /> টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে, সবিশেষ</translation> <translation id="4387004326333427325">বিশ্বাসযোগ্যতাৰ প্ৰমাণপত্ৰ দূৰৰ পৰা অগ্ৰাহ্য কৰা হৈছে</translation> <translation id="4394214039309501350">বাহ্যিক লিংক</translation> +<translation id="4394980935660306080">এই সপ্তাহটোৰ আৰম্ভণিতে</translation> <translation id="4401287888955153199">আটাইবোৰ আহৰণ কৰক</translation> <translation id="4410695710508688828">আহৰণ কৰাটো বিফল হৈছে। <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">আপোনাৰ ফাইলৰ বাবে এটা শ্বৰ্টকাট সৃষ্টি কৰক</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" খুলি থকা হৈছে</translation> <translation id="4720185134442950733">ম’বাইল ডেটা নেটৱৰ্ক</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> খন ফট‘ৰ বেক আপ লোৱা হ‘ল</translation> +<translation id="4725096204469550614">এই বছৰটোৰ আৰম্ভণিতে</translation> <translation id="4725511304875193254">কৰ্গি</translation> <translation id="4737050008115666127">লেণ্ড হৈ আছে</translation> <translation id="4747271164117300400">Macedonian</translation> @@ -705,6 +708,7 @@ <translation id="7075931588889865715">TIS 820-2531 কীব’ৰ্ডৰ সৈতে থাই</translation> <translation id="708278670402572152">স্কেনিং সক্ষম কৰিবলৈ সংযোগ বিচ্ছিন্ন কৰক</translation> <translation id="7086590977277044826">InScript কীব’ৰ্ডৰ সৈতে তামিল</translation> +<translation id="7088615885725309056">অধিক পুৰণি</translation> <translation id="7103992300314999525">মেচিড’নিয়ান</translation> <translation id="7106346894903675391">ষ্ট’ৰ কৰাৰ অধিক ঠাই কিনক...</translation> <translation id="7126604456862387217">’<b><ph name="SEARCH_STRING" /></b>’ - <em>সন্ধানৰ ড্ৰাইভ</em></translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb index 35e0eff..90c1408 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hanqıl Romaca</translation> <translation id="112387589102719461">Proqramçı Dvorak klaviaturası ilə İngilis dili (ABŞ)</translation> <translation id="1134697384939541955">Genişləndirilmiş klaviatura ilə İngilis dili (ABŞ)</translation> +<translation id="1138691154716715755">Bu ayın əvvəlində</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> nəticə. <ph name="LINE_BREAK1" /> Lokal yaddaşda kifayət qədər yer yoxdur. Əlavə <ph name="FILE_SIZE" /> lazımdır. @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Administratorunuz tərəfindən idarə olunur, Detallar</translation> <translation id="4387004326333427325">Doğrulama təsdiqi uzaqdan ləğv edildi</translation> <translation id="4394214039309501350">Xarici keçid</translation> +<translation id="4394980935660306080">Bu həftənin əvvəlində</translation> <translation id="4401287888955153199">Hamısını çıxarın</translation> <translation id="4410695710508688828">Çıxarılma əməliyyatı alınmadı. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Fayllarınız üçün qısayol yaradın</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" açılır</translation> <translation id="4720185134442950733">Mobil data şəbəkəsi</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> foto yedəkləndi</translation> +<translation id="4725096204469550614">Bu ilin əvvəlində</translation> <translation id="4725511304875193254">Korqi</translation> <translation id="4737050008115666127">Eniş</translation> <translation id="4747271164117300400">Makedoniya</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> element <ph name="FOLDER_NAME" /> qovluğuna köçürülür</translation> <translation id="509429900233858213">Xəta baş verdi.</translation> <translation id="5098629044894065541">İvrit</translation> +<translation id="5102922915594634436">Sinxronlaşdırılmış qovluqları idarə edin</translation> <translation id="5109254780565519649">Xəta baş verdi. Bəzi elementlər bərpa edilməmiş ola bilər.</translation> <translation id="5110329002213341433">İngilis dili (Kanada)</translation> <translation id="5123433949759960244">Basketbol</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb index ac7c1c0..1a1ae42 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Хангъл, ромаджа</translation> <translation id="112387589102719461">Английски (САЩ) с клавиатура за програмисти (Дворак)</translation> <translation id="1134697384939541955">Английски (САЩ) с разширена клавиатура</translation> +<translation id="1138691154716715755">По-рано този месец</translation> <translation id="1148097584170732637">Намерихме <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> Мястото в локалното хранилище не е достатъчно. Има нужда от още <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Мрежа <ph name="NETWORK_INDEX" /> от <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />%, управлява се от администратора ви, подробности</translation> <translation id="4387004326333427325">Сертификатът за удостоверяване бе отхвърлен отдалечено</translation> <translation id="4394214039309501350">Външна връзка</translation> +<translation id="4394980935660306080">По-рано тази седмица</translation> <translation id="4401287888955153199">Извличане на всички</translation> <translation id="4410695710508688828">Извличането не бе успешно. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Създавайте преки пътища към файловете си</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">„<ph name="PATH" />“ се отваря</translation> <translation id="4720185134442950733">Мобилна мрежа за пренос на данни</translation> <translation id="4724850507808590449">На <ph name="FILE_COUNT" /> снимки бяха създадени резервни копия</translation> +<translation id="4725096204469550614">По-рано тази година</translation> <translation id="4725511304875193254">Корги</translation> <translation id="4737050008115666127">Приземяване</translation> <translation id="4747271164117300400">македонски</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb index 76383ca..2accc45 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
@@ -470,6 +470,7 @@ <translation id="508423945471810158">S'estan traslladant <ph name="NUMBER_OF_ITEMS" /> elements a la carpeta <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">S'ha produït un error.</translation> <translation id="5098629044894065541">Hebreu</translation> +<translation id="5102922915594634436">Gestiona les carpetes sincronitzades</translation> <translation id="5109254780565519649">S'ha produït un error. És possible que alguns elements no s'hagin restaurat.</translation> <translation id="5110329002213341433">Anglès (Canadà)</translation> <translation id="5123433949759960244">Pilota de bàsquet</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb index bbc4e167..ab64f0b 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_cy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_cy.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Wrthi'n symud <ph name="NUMBER_OF_ITEMS" /> eitem i <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Bu gwall.</translation> <translation id="5098629044894065541">Hebraeg</translation> +<translation id="5102922915594634436">Rheoli ffolderi sydd wedi'u cysoni</translation> <translation id="5109254780565519649">Bu gwall. Mae'n bosib na fydd rhai eitemau wedi'u hadfer.</translation> <translation id="5110329002213341433">Saesneg (Canada)</translation> <translation id="5123433949759960244">Pêl-fasged</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb index 12e25909..7e1d065 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Englisch (USA) mit „Programmer Dvorak“-Tastatur</translation> <translation id="1134697384939541955">Englisch (USA) mit erweiterter Tastatur</translation> +<translation id="1138691154716715755">Früher in diesem Monat</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> gefunden. <ph name="LINE_BREAK1" /> Nicht genügend Platz im lokalen Speicher. Zusätzlich <ph name="FILE_SIZE" /> erforderlich. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Netzwerk <ph name="NETWORK_INDEX" /> von <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" /> %, von deinem Administrator verwaltet, Details</translation> <translation id="4387004326333427325">Remote-Ablehnung des Authentifizierungszertifikats</translation> <translation id="4394214039309501350">Externer Link</translation> +<translation id="4394980935660306080">Früher in dieser Woche</translation> <translation id="4401287888955153199">Alles extrahieren</translation> <translation id="4410695710508688828">Fehler beim Extrahieren. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Verknüpfung zu Dateien erstellen</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">„<ph name="PATH" />“ wird geöffnet</translation> <translation id="4720185134442950733">Mobilfunknetz</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> Fotos gesichert</translation> +<translation id="4725096204469550614">Früher in diesem Jahr</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Landung</translation> <translation id="4747271164117300400">Mazedonisch</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> Elemente werden in den Ordner "<ph name="FOLDER_NAME" />" verschoben</translation> <translation id="509429900233858213">Ein Fehler ist aufgetreten.</translation> <translation id="5098629044894065541">Hebräisch</translation> +<translation id="5102922915594634436">Synchronisierte Ordner verwalten</translation> <translation id="5109254780565519649">Ein Fehler ist aufgetreten. Einige Elemente wurden möglicherweise nicht wiederhergestellt.</translation> <translation id="5110329002213341433">Englisch (Kanada)</translation> <translation id="5123433949759960244">Basketball</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_el.xtb b/ui/chromeos/translations/ui_chromeos_strings_el.xtb index 0a92089a..1622af8 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_el.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_el.xtb
@@ -484,6 +484,7 @@ <translation id="509429900233858213">Παρουσιάστηκε σφάλμα.</translation> <translation id="5098629044894065541">Εβραϊκά </translation> +<translation id="5102922915594634436">Διαχείριση συγχρονισμένων φακέλων</translation> <translation id="5109254780565519649">Παρουσιάστηκε σφάλμα. Ενδέχεται να μην έγινε επαναφορά ορισμένων στοιχείων.</translation> <translation id="5110329002213341433">Αγγλικά (Καναδά)</translation> <translation id="5123433949759960244">Μπάλα μπάσκετ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb index cd9b1da3..113e196 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Inglés (EE.UU.) con teclado Programmer Dvorak</translation> <translation id="1134697384939541955">Inglés (EE.UU.) con teclado extendido</translation> +<translation id="1138691154716715755">A comienzos de este mes</translation> <translation id="1148097584170732637">Se encontró un total de <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> No hay suficiente espacio en el almacenamiento local. Se necesita un espacio adicional de <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%, administrada por tu administrador, detalles</translation> <translation id="4387004326333427325">Certificado de autenticación rechazado de forma remota</translation> <translation id="4394214039309501350">Vínculo externo</translation> +<translation id="4394980935660306080">A principios de esta semana</translation> <translation id="4401287888955153199">Extraer todo</translation> <translation id="4410695710508688828">No se pudo completar la operación de extracción. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Crea un acceso directo a tus archivos</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Abriendo "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Red de datos móviles</translation> <translation id="4724850507808590449">Se guardaron <ph name="FILE_COUNT" /> fotos en una copia de seguridad.</translation> +<translation id="4725096204469550614">A principios de este año</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Aterrizaje</translation> <translation id="4747271164117300400">Macedonio</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_et.xtb b/ui/chromeos/translations/ui_chromeos_strings_et.xtb index d6031904..d5f1ac0 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_et.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_et.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> üksust teisaldatakse kausta <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Tekkis viga.</translation> <translation id="5098629044894065541">heebrea keel</translation> +<translation id="5102922915594634436">Sünkroonitud kaustade haldamine</translation> <translation id="5109254780565519649">Ilmnes viga. Mõnda üksust ei pruugitud taastada.</translation> <translation id="5110329002213341433">inglise (Kanada)</translation> <translation id="5123433949759960244">Korvpall</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb index 983e607..d95a5a57 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_eu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_eu.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> elementu <ph name="FOLDER_NAME" /> karpetara eramaten</translation> <translation id="509429900233858213">Errore bat gertatu da.</translation> <translation id="5098629044894065541">Hebrearra</translation> +<translation id="5102922915594634436">Kudeatu sinkronizatutako karpetak</translation> <translation id="5109254780565519649">Errore bat gertatu da. Agian ez dira leheneratu elementu batzuk.</translation> <translation id="5110329002213341433">Ingelesa (Kanada)</translation> <translation id="5123433949759960244">Saskibaloiko baloia</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb index 88b0333..8aa0325 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">درحال انتقال <ph name="NUMBER_OF_ITEMS" /> مورد به <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">خطایی روی داد.</translation> <translation id="5098629044894065541">عبری</translation> +<translation id="5102922915594634436">مدیریت پوشههای همگامسازیشده</translation> <translation id="5109254780565519649">خطایی روی داد. ممکن است برخی از موارد بازیابی نشده باشد.</translation> <translation id="5110329002213341433">انگلیسی (کانادا)</translation> <translation id="5123433949759960244">بسکتبال</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb index 60a46824..5a55e3d 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">englanti (Yhdysvallat), Dvorak-näppäimistö ohjelmoijille</translation> <translation id="1134697384939541955">englanti (Yhdysvallat), laajennettu näppäimistö</translation> +<translation id="1138691154716715755">Aiemmin tässä kuussa</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> löytyi. <ph name="LINE_BREAK1" /> Paikallinen tallennustila ei riitä. Tarvitaan vielä <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Verkko <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, signaalin voimakkuus <ph name="SIGNAL_STRENGTH" /> %, järjestelmänvalvojan ylläpitämä, lisätietoja</translation> <translation id="4387004326333427325">Todennusvarmenne on hylätty etäyhteyden kautta</translation> <translation id="4394214039309501350">Ulkoinen linkki</translation> +<translation id="4394980935660306080">Aiemmin tällä viikolla</translation> <translation id="4401287888955153199">Laajenna kaikki</translation> <translation id="4410695710508688828">Purkaminen epäonnistui. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Luo tiedostoille pikakuvake</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Avataan <ph name="PATH" /></translation> <translation id="4720185134442950733">Mobiiliverkko</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> kuvaa on varmuuskopioitu.</translation> +<translation id="4725096204469550614">Aiemmin tänä vuonna</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Kiitorata</translation> <translation id="4747271164117300400">makedonia</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">Siirretään <ph name="NUMBER_OF_ITEMS" /> kohdetta kansioon <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Tapahtui virhe.</translation> <translation id="5098629044894065541">heprea</translation> +<translation id="5102922915594634436">Ylläpidä synkronoituja kansioita</translation> <translation id="5109254780565519649">Tapahtui virhe. Kaikkia kohteita ei välttämättä palautettu.</translation> <translation id="5110329002213341433">englanti (Kanada)</translation> <translation id="5123433949759960244">Koripallo</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb index c8a362c9..a984cfda 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Inililipat ang <ph name="NUMBER_OF_ITEMS" /> (na) item sa <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">May naganap na error.</translation> <translation id="5098629044894065541">Hebrew</translation> +<translation id="5102922915594634436">Pamahalaan ang mga naka-sync na folder</translation> <translation id="5109254780565519649">Nagka-error. Posibleng hindi na-restore ang ilang item.</translation> <translation id="5110329002213341433">English (Canada)</translation> <translation id="5123433949759960244">Basketball</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb index ed83a2d4..508b25c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangûl romaja</translation> <translation id="112387589102719461">Anglais (É.-U.) avec clavier Dvorak pour développeurs</translation> <translation id="1134697384939541955">Anglais (É.-U.) avec clavier étendu</translation> +<translation id="1138691154716715755">Plus tôt ce mois-ci</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> trouvées. <ph name="LINE_BREAK1" /> Espace de stockage local disponible insuffisant. <ph name="FILE_SIZE" /> supplémentaires sont nécessaires. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, puissance du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, renseignements</translation> <translation id="4387004326333427325">Certificat d'authentification rejeté à distance.</translation> <translation id="4394214039309501350">Lien externe</translation> +<translation id="4394980935660306080">Plus tôt cette semaine</translation> <translation id="4401287888955153199">Tout extraire</translation> <translation id="4410695710508688828">Échec de l'opération d'extraction. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Créer un raccourci vers vos fichiers</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Ouverture de « <ph name="PATH" /> » en cours…</translation> <translation id="4720185134442950733">Réseau de données mobiles</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> photos sauvegardées</translation> +<translation id="4725096204469550614">Plus tôt cette année</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Piste d'atterrissage</translation> <translation id="4747271164117300400">Macédonien</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb index 0d03dd6..2c71544 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fr.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangûl romaja</translation> <translation id="112387589102719461">Anglais (États-Unis) avec clavier Dvorak pour programmeurs</translation> <translation id="1134697384939541955">Anglais (États-Unis) avec clavier étendu</translation> +<translation id="1138691154716715755">Plus tôt ce mois-ci</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> trouvées. <ph name="LINE_BREAK1" /> Espace disponible insuffisant dans le stockage local. <ph name="FILE_SIZE" /> supplémentaires requis. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, détails</translation> <translation id="4387004326333427325">Certificat d'authentification rejeté à distance.</translation> <translation id="4394214039309501350">Lien externe</translation> +<translation id="4394980935660306080">Plus tôt cette semaine</translation> <translation id="4401287888955153199">Tout extraire</translation> <translation id="4410695710508688828">Échec de l'opération d'extraction. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Créer un raccourci vers vos fichiers</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Ouverture de "<ph name="PATH" />"…</translation> <translation id="4720185134442950733">Réseau de données mobiles</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> photos ont été sauvegardées</translation> +<translation id="4725096204469550614">Plus tôt cette année</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Piste d'atterrissage</translation> <translation id="4747271164117300400">Macédonien</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb index c77dfec..11cc7cf 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_gl.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_gl.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Romaja hangul</translation> <translation id="112387589102719461">Inglés (EUA) con teclado Dvorak para programadores</translation> <translation id="1134697384939541955">Inglés (EUA) con teclado ampliado</translation> +<translation id="1138691154716715755">Máis cedo este mes</translation> <translation id="1148097584170732637">Atopáronse <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> Non hai espazo suficiente no almacenamento local. Precísase un espazo adicional de <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal do <ph name="SIGNAL_STRENGTH" /> %, xestionada polo teu administrador, detalles</translation> <translation id="4387004326333427325">Certificado de autenticación rexeitado de forma remota</translation> <translation id="4394214039309501350">Ligazón externa</translation> +<translation id="4394980935660306080">Máis cedo esta semana</translation> <translation id="4401287888955153199">Extraer todo</translation> <translation id="4410695710508688828">Produciuse un erro durante a extracción. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Crea un atallo para acceder aos teus ficheiros</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Abrindo <ph name="PATH" /></translation> <translation id="4720185134442950733">Rede de datos móbiles</translation> <translation id="4724850507808590449">Creouse unha copia de seguranza de <ph name="FILE_COUNT" /> fotos</translation> +<translation id="4725096204469550614">Máis cedo este ano</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Aterraxe</translation> <translation id="4747271164117300400">Macedonio</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">Movendo <ph name="NUMBER_OF_ITEMS" /> elementos a <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Produciuse un erro.</translation> <translation id="5098629044894065541">Hebreo</translation> +<translation id="5102922915594634436">Xestionar cartafoles sincronizados</translation> <translation id="5109254780565519649">Produciuse un erro. Pode que non se restaurasen algúns elementos.</translation> <translation id="5110329002213341433">Inglés (Canadá)</translation> <translation id="5123433949759960244">Baloncesto</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb index eedacac..a2cda9d 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_gu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_gu.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">હંગુલ રોમાજા</translation> <translation id="112387589102719461">અંગ્રેજી (યુએસ), પ્રોગ્રામર Dvorak કીબોર્ડ સાથે</translation> <translation id="1134697384939541955">અંગ્રેજી (યુએસ), વધારાની કી ધરાવતા કીબોર્ડ સાથે</translation> +<translation id="1138691154716715755">આ મહિનાની શરૂઆતમાં</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> મળી. <ph name="LINE_BREAK1" /> સ્થાનિક સ્ટોરેજમાં પર્યાપ્ત જગ્યા ઉપલબ્ધ નથી. વધારાના <ph name="FILE_SIZE" />ની જરૂર છે. @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_COUNT" />માંથી નેટવર્ક <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, સિગ્નલની સશક્તતા <ph name="SIGNAL_STRENGTH" />%, તમારા વ્યવસ્થાપક દ્વારા મેનેજ કરવામાં આવે છે, વિગતો</translation> <translation id="4387004326333427325">પ્રમાણીકરણ પ્રમાણપત્ર રિમોટલી નકારવામાં આવ્યું છે</translation> <translation id="4394214039309501350">બાહ્ય લિંક</translation> +<translation id="4394980935660306080">આ અઠવાડિયાની શરૂઆતમાં</translation> <translation id="4401287888955153199">બધું એક્સટ્રેક્ટ કરો</translation> <translation id="4410695710508688828">એક્સટ્રેક્ટ કરવામાં નિષ્ફ્ળ રહ્યાં. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">તમારી ફાઇલો માટે શૉર્ટકટ બનાવો</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" ખોલી રહ્યાં છીએ</translation> <translation id="4720185134442950733">મોબાઇલ ડેટા નેટવર્ક</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> ફોટાનો બેક અપ લેવાયો</translation> +<translation id="4725096204469550614">આ વર્ષની શરૂઆતમાં</translation> <translation id="4725511304875193254">કોર્ગી - કૂતરાની એક પ્રજાતિ</translation> <translation id="4737050008115666127">લેન્ડિંગ</translation> <translation id="4747271164117300400">મેસેડોનિયન</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> આઇટમને <ph name="FOLDER_NAME" />માં ખસેડી રહ્યાં છીએ</translation> <translation id="509429900233858213">કોઈ ભૂલ આવી છે.</translation> <translation id="5098629044894065541">હીબ્રુ</translation> +<translation id="5102922915594634436">સિંક કરેલા ફોલ્ડરો મેનેજ કરો</translation> <translation id="5109254780565519649">કોઈ ભૂલ આવી છે. અમુક આઇટમ રિસ્ટોર ન થઈ હોય તેવું બની શકે.</translation> <translation id="5110329002213341433">અંગ્રેજી (કેનેડા)</translation> <translation id="5123433949759960244">બાસ્કેટબૉલ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb index 669b763..d7133c6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> elem áthelyezése ide: <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Hiba történt.</translation> <translation id="5098629044894065541">héber</translation> +<translation id="5102922915594634436">Szinkronizált mappák kezelése</translation> <translation id="5109254780565519649">Hiba történt. Előfordulhat, hogy egyes elemek visszaállítására nem került sor.</translation> <translation id="5110329002213341433">angol (Kanada)</translation> <translation id="5123433949759960244">Kosárlabda</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb index 624c62de7..1c5ec33 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> տարր տեղափոխվում է «<ph name="FOLDER_NAME" />» պանակ</translation> <translation id="509429900233858213">Սխալ առաջացավ:</translation> <translation id="5098629044894065541">Եբրայական</translation> +<translation id="5102922915594634436">Կառավարել համաժամացված պանակները</translation> <translation id="5109254780565519649">Սխալ առաջացավ։ Հնարավոր է՝ որոշ տարրեր չեն վերականգնվել։</translation> <translation id="5110329002213341433">անգլերեն (Կանադա)</translation> <translation id="5123433949759960244">Բասկետբոլ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb index ac582e9..fe51bb4 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Memindahkan <ph name="NUMBER_OF_ITEMS" /> item ke <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Terjadi kesalahan.</translation> <translation id="5098629044894065541">Ibrani</translation> +<translation id="5102922915594634436">Kelola folder yang disinkronkan</translation> <translation id="5109254780565519649">Terjadi error. Beberapa item mungkin belum dipulihkan.</translation> <translation id="5110329002213341433">Inggris (Kanada)</translation> <translation id="5123433949759960244">Bola basket</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb index c98924c..c71b7c9 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Færir <ph name="NUMBER_OF_ITEMS" /> atriði í <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Villa kom upp.</translation> <translation id="5098629044894065541">Hebreskt</translation> +<translation id="5102922915594634436">Stjórna samstilltum möppum</translation> <translation id="5109254780565519649">Villa kom upp. Tiltekin atriði voru hugsanlega ekki endurheimt.</translation> <translation id="5110329002213341433">Enska (Kanada)</translation> <translation id="5123433949759960244">Körfubolti</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb index e2cd25ca..4e4e733 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">מקלדת Programmer Dvorak באנגלית (ארה"ב)</translation> <translation id="1134697384939541955">מקלדת מורחבת באנגלית (ארה"ב)</translation> +<translation id="1138691154716715755">מוקדם יותר החודש</translation> <translation id="1148097584170732637">נמצאו <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> אין מספיק מקום באחסון המקומי. יש צורך ב-<ph name="FILE_SIZE" /> נוספים. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />%, הרשת מנוהלת על ידי מנהל המערכת שלך, פרטים</translation> <translation id="4387004326333427325">אישור האימות נדחה מרחוק</translation> <translation id="4394214039309501350">קישור חיצוני</translation> +<translation id="4394980935660306080">מוקדם יותר השבוע</translation> <translation id="4401287888955153199">חילוץ הכול</translation> <translation id="4410695710508688828">פעולת החילוץ נכשלה. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">יצירת קיצור דרך לקבצים</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">הפתיחה של "<ph name="PATH" />" מתבצעת</translation> <translation id="4720185134442950733">חבילת הגלישה</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> תמונות גובו</translation> +<translation id="4725096204469550614">מוקדם יותר השנה</translation> <translation id="4725511304875193254">קורגי</translation> <translation id="4737050008115666127">נחיתה</translation> <translation id="4747271164117300400">מקדונית</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb index 0f5e1bd871..9a167b62 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -470,6 +470,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> 個のアイテムを <ph name="FOLDER_NAME" /> に移動しています</translation> <translation id="509429900233858213">エラーが発生しました。</translation> <translation id="5098629044894065541">ヘブライ語</translation> +<translation id="5102922915594634436">同期したフォルダを管理</translation> <translation id="5109254780565519649">エラーが発生しました。一部のアイテムは復元されていない可能性があります。</translation> <translation id="5110329002213341433">英語(カナダ)</translation> <translation id="5123433949759960244">バスケットボール</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb index ddbb83d3..54e3174 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">ჰანგული რომაული</translation> <translation id="112387589102719461">ინგლისური (აშშ) საერთაშორისო პროგრამისტთა Dvorak კლავიატურით</translation> <translation id="1134697384939541955">ინგლისური (აშშ) გაფართოებული კლავიატურით</translation> +<translation id="1138691154716715755">ამ თვის დასაწყისში</translation> <translation id="1148097584170732637">დისკი <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> ადგილობრივ მეხსიერებაში სივრცე არასაკმარისია. საჭიროა კიდევ <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">ქსელი <ph name="NETWORK_INDEX" /> / <ph name="NETWORK_COUNT" />-დან, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />%, მართავს თქვენი ადმინისტრატორი, დეტალები</translation> <translation id="4387004326333427325">ავთენტიფიკაციის სერტიფიკატი დისტანციურად უარყოფილი იქნა</translation> <translation id="4394214039309501350">გარე ბმული</translation> +<translation id="4394980935660306080">ამ კვირის დასაწყისში</translation> <translation id="4401287888955153199">ყველას ამოღება</translation> <translation id="4410695710508688828">ამოღების ოპერაცია ვერ შესრულდა. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">შექმენით თქვენი ფაილების მალსახმობი</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">მიმდინარეობს „<ph name="PATH" />“-ის გახსნა</translation> <translation id="4720185134442950733">მობილური ინტერნეტის ქსელი</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> ფოტოს სარეზერვო ასლი შენახულია</translation> +<translation id="4725096204469550614">ამ წლის დასაწყისში</translation> <translation id="4725511304875193254">კორგი</translation> <translation id="4737050008115666127">დაშვება</translation> <translation id="4747271164117300400">მაკედონიური</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">მიმდინარეობს <ph name="NUMBER_OF_ITEMS" /> ერთეულის გადატანა „<ph name="FOLDER_NAME" />“-ში</translation> <translation id="509429900233858213">შეცდომა მოხდა.</translation> <translation id="5098629044894065541">ებრაული</translation> +<translation id="5102922915594634436">სინქრონიზებული საქაღალდეების მართვა</translation> <translation id="5109254780565519649">მოხდა შეცდომა. შესაძლოა, ზოგიერთი ერთეულის აღდგენა ვერ მოხერხებულიყო.</translation> <translation id="5110329002213341433">ინგლისური (კანადა)</translation> <translation id="5123433949759960244">კალათბურთის ბურთი</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb index c40a612..8e1e060 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_kn.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_kn.xtb
@@ -469,6 +469,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> ಐಟಂಗಳನ್ನು <ph name="FOLDER_NAME" /> ಗೆ ಸರಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="509429900233858213">ದೋಷವೊಂದು ಕಾಣಿಸಿಕೊಂಡಿದೆ.</translation> <translation id="5098629044894065541">Hebrew</translation> +<translation id="5102922915594634436">ಸಿಂಕ್ ಮಾಡಿದ ಫೋಲ್ಡರ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation> <translation id="5109254780565519649">ದೋಷ ಎದುರಾಗಿದೆ. ಕೆಲವು ಐಟಂಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲು ಆಗದೇ ಇರಬಹುದು.</translation> <translation id="5110329002213341433">ಇಂಗ್ಲಿಷ್ (ಕೆನಡಾ)</translation> <translation id="5123433949759960244">ಬ್ಯಾಸ್ಕೆಟ್ಬಾಲ್</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb index 56d9bbb..176eb2f0 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ko.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ko.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">항목 <ph name="NUMBER_OF_ITEMS" />개를 <ph name="FOLDER_NAME" /> 폴더로 이동 중</translation> <translation id="509429900233858213">오류가 발생했습니다.</translation> <translation id="5098629044894065541">히브리어</translation> +<translation id="5102922915594634436">동기화된 폴더 관리</translation> <translation id="5109254780565519649">오류가 발생했습니다. 일부 항목은 복원되지 않았을 수 있습니다.</translation> <translation id="5110329002213341433">영어(캐나다)</translation> <translation id="5123433949759960244">농구공</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb index b2a1d7b2..374f015 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ky.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ky.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> нерсе <ph name="FOLDER_NAME" /> папкасына жылдырылууда</translation> <translation id="509429900233858213">Ката кетти.</translation> <translation id="5098629044894065541">Еврейче</translation> +<translation id="5102922915594634436">Шайкештирилген папкаларды тескөө</translation> <translation id="5109254780565519649">Ката кетти. Айрым нерселер калыбына келтирилбеши мүмкүн.</translation> <translation id="5110329002213341433">Англисче (Канада)</translation> <translation id="5123433949759960244">Баскетбол</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb index f83df2f1..c2be270 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_lo.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_lo.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">ຮາງກຸລ ໂຣມາຈາ</translation> <translation id="112387589102719461">ພາສາອັງກິດ (ສະຫະລັດ) ທີ່ໃຊ້ແປ້ນພິມ Dvorak ສຳລັບຜູ້ສ້າງໂປຣແກຣມ</translation> <translation id="1134697384939541955">ພາສາອັງກິດ (ສະຫະລັດ) ທີ່ໃຊ້ແປ້ນພິມແບບຂະຫຍາຍ</translation> +<translation id="1138691154716715755">ຕົ້ນເດືອນນີ້</translation> <translation id="1148097584170732637">ພົບ <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> ບໍ່ມີພື້ນທີ່ຫວ່າງພຽງພໍໃນບ່ອນເກັບຂໍ້ມູນໃນເຄື່ອງ. ຕ້ອງການເພີ່ມອີກ <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">ເຄືອຂ່າຍທີ <ph name="NETWORK_INDEX" /> ຈາກທັງໝົດ <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, ຄວາມແຮງສັນຍານ <ph name="SIGNAL_STRENGTH" />%, ຈັດການໂດຍຜູ້ເບິ່ງແຍງລະບົບຂອງທ່ານ, ລາຍລະອຽດ</translation> <translation id="4387004326333427325">ປະຕິເສດໃບຢັ້ງຢືນການຮັບຮອງທາງໄກແລ້ວ</translation> <translation id="4394214039309501350">ລິ້ງພາຍນອກ</translation> +<translation id="4394980935660306080">ຕົ້ນອາທິດນີ້</translation> <translation id="4401287888955153199">ແຕກໄຟລ໌ທັງໝົດ</translation> <translation id="4410695710508688828">ແຕກໄຟລ໌ບໍ່ສຳເລັດ. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">ສ້າງທາງລັດສຳລັບໄຟລ໌ຂອງທ່ານ</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">ກຳລັງເປີດ "<ph name="PATH" />"</translation> <translation id="4720185134442950733">ເຄືອຂ່າຍອິນເຕີເນັດມືຖື</translation> <translation id="4724850507808590449">ສຳຮອງ <ph name="FILE_COUNT" /> ຮູບແລ້ວ</translation> +<translation id="4725096204469550614">ຕົ້ນປີນີ້</translation> <translation id="4725511304875193254">ໝາຄໍກິ</translation> <translation id="4737050008115666127">ກຳລັງລົງຈອດ</translation> <translation id="4747271164117300400">ມາເຊໂດນີ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb index 0ffe8ac0..abcd81ea 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_lt.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_lt.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Tiek elementų perkeliama į aplanką „<ph name="FOLDER_NAME" />“: <ph name="NUMBER_OF_ITEMS" /></translation> <translation id="509429900233858213">Įvyko klaida.</translation> <translation id="5098629044894065541">Hebrajų</translation> +<translation id="5102922915594634436">Tvarkyti sinchronizuotus aplankus</translation> <translation id="5109254780565519649">Įvyko klaida. Gali būti, kad kai kurie elementai nebuvo atkurti.</translation> <translation id="5110329002213341433">Anglų k. (Kanada)</translation> <translation id="5123433949759960244">Krepšinis</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb index bdc4026b..90b7426 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_mr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_mr.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">हँगल Romaja</translation> <translation id="112387589102719461">ड्वोझॅक प्रोग्रामर कीबोर्डसह इंग्रजी (यूएस)</translation> <translation id="1134697384939541955">विस्तारित कीबोर्डसह इंग्रजी (यूएस)</translation> +<translation id="1138691154716715755">या महिन्याच्या सुरुवातीला</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> आढळले. <ph name="LINE_BREAK1" /> स्थानिक स्टोरेजमध्ये पुरेशी जागा उपलब्ध नाही. अतिरिक्त <ph name="FILE_SIZE" /> आवश्यक आहे. @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_COUNT" /> पैकी <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, सिग्नल क्षमता <ph name="SIGNAL_STRENGTH" />%, तुमच्या अॅडमिनिस्ट्रेटरने व्यवस्थापित केलेले, तपशील</translation> <translation id="4387004326333427325">ऑथेंटिकेशन प्रमाणपत्र रिमोट पद्धतीने नाकारले</translation> <translation id="4394214039309501350">बाह्य लिंक</translation> +<translation id="4394980935660306080">या आठवड्याच्या सुरुवातीला</translation> <translation id="4401287888955153199">सर्व काढा</translation> <translation id="4410695710508688828">काढून टाकता आले नाही. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">तुमच्या फाइलसाठी शॉर्टकट तयार करणे</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" उघडत आहे</translation> <translation id="4720185134442950733">मोबाइल डेटा नेटवर्क</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> फोटोंचा बॅकअप घेतला</translation> +<translation id="4725096204469550614">या वर्षाच्या सुरुवातीला</translation> <translation id="4725511304875193254">कॉर्गी</translation> <translation id="4737050008115666127">लँड करत आहे</translation> <translation id="4747271164117300400">मॅसेडोनियन</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb index 2b7ec809..5890529 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ms.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ms.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Inggeris (AS) dengan papan kekunci Dvorak Pengatur Cara</translation> <translation id="1134697384939541955">Inggeris (AS) dengan papan kekunci Lanjutan</translation> +<translation id="1138691154716715755">Awal bulan ini</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> ditemui. <ph name="LINE_BREAK1" /> Ruang pada storan setempat tidak mencukupi. Tambahan sebanyak <ph name="FILE_SIZE" /> diperlukan. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Rangkaian <ph name="NETWORK_INDEX" /> daripada <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" />%, Diurus oleh Pentadbir anda, Butiran</translation> <translation id="4387004326333427325">Sijil pengesahan ditolak dari jauh</translation> <translation id="4394214039309501350">Pautan luaran</translation> +<translation id="4394980935660306080">Awal minggu ini</translation> <translation id="4401287888955153199">Ekstrak semua</translation> <translation id="4410695710508688828">Operasi ekstrak gagal. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Buat pintasan untuk fail anda</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Membuka "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Rangkaian data mudah alih</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> foto disandarkan</translation> +<translation id="4725096204469550614">Awal tahun ini</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Mendarat</translation> <translation id="4747271164117300400">Macedonia</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">Mengalihkan <ph name="NUMBER_OF_ITEMS" /> item ke <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Ralat telah berlaku.</translation> <translation id="5098629044894065541">Bahasa Ibrani</translation> +<translation id="5102922915594634436">Urus folder yang disegerakkan</translation> <translation id="5109254780565519649">Ralat telah berlaku. Sesetengah item mungkin belum dipulihkan.</translation> <translation id="5110329002213341433">Inggeris (Kanada)</translation> <translation id="5123433949759960244">Bola Keranjang</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb index 7920dd5..64bfa48 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">हंगुल रोमाजा</translation> <translation id="112387589102719461">अङ्ग्रेजी (सं. रा. अमेरिकी) प्रोग्रामर ड्भोराक किबोर्ड</translation> <translation id="1134697384939541955">अङ्ग्रेजी (सं. रा. अमेरिकी) विस्तारित किबोर्ड</translation> +<translation id="1138691154716715755">यो महिनाको सुरुवातमा</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> फेला पर्यो। <ph name="LINE_BREAK1" /> स्थानीय भण्डारणमा पर्याप्त खाली ठाउँ उपलब्ध छैन। अतिरिक्त <ph name="FILE_SIZE" /> आवश्यक छ। @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_COUNT" /> मध्ये <ph name="NETWORK_INDEX" /> औँ नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, सिग्नलको क्षमता <ph name="SIGNAL_STRENGTH" />%, तपाईंका एड्मिनले व्यवस्थापन गर्नुभएको, विवरणहरू</translation> <translation id="4387004326333427325">प्रमाणीकरण प्रमाणपत्रलाई सीधै अस्वीकार गर्यो</translation> <translation id="4394214039309501350">बाह्य लिंक</translation> +<translation id="4394980935660306080">यो हप्ताको सुरुवातमा</translation> <translation id="4401287888955153199">सबै सामग्री एक्स्ट्र्याक्ट गर्नुहोस्</translation> <translation id="4410695710508688828">एक्स्ट्र्याक्ट गर्न सकिएन। <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">आफ्ना फाइलहरूको सर्टकट बनाउनुहोस्</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" खोलिँदै</translation> <translation id="4720185134442950733">मोबाइल डेटा नेटवर्क</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> तस्बिरहरू जगेडा गरियो</translation> +<translation id="4725096204469550614">यो वर्षको सुरुवातमा</translation> <translation id="4725511304875193254">कोर्गी</translation> <translation id="4737050008115666127">ल्यान्डिङ</translation> <translation id="4747271164117300400">म्यासेडोनेयाली</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158"><ph name="FOLDER_NAME" /> मा <ph name="NUMBER_OF_ITEMS" /> वटा वस्तु सारिँदै छन्</translation> <translation id="509429900233858213">त्रुटि भयो।</translation> <translation id="5098629044894065541">हिब्रू</translation> +<translation id="5102922915594634436">सिंक गरिएका फोल्डरहरू व्यवस्थापन गर्नुहोस्</translation> <translation id="5109254780565519649">कुनै त्रुटि भयो। केही वस्तुहरू रिस्टोर नभएका हुन सक्छन्।</translation> <translation id="5110329002213341433">अङ्ग्रेजी (क्यानाडा)</translation> <translation id="5123433949759960244">बास्केटबल</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_or.xtb b/ui/chromeos/translations/ui_chromeos_strings_or.xtb index c1a9b99..d17df87 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_or.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_or.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">ହଂଗୁଲ୍ ରୋମାଜା</translation> <translation id="112387589102719461">ପ୍ରୋଗାମର୍ ଡିଭୋରାକ୍ କୀବୋର୍ଡ ସହ ଇଂରାଜୀ (US)</translation> <translation id="1134697384939541955">ବିସ୍ତାରିତ କୀବୋର୍ଡ ସହ ଇଂରାଜୀ (US)</translation> +<translation id="1138691154716715755">ଏହି ମାସର ଆରମ୍ଭରେ</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" />ଟି ମିଳିଛି। <ph name="LINE_BREAK1" /> ସ୍ଥାନୀୟ ଷ୍ଟୋରେଜ୍ରେ ପର୍ଯ୍ୟାପ୍ତ ଖାଲି ସ୍ଥାନ ଉପଲବ୍ଧ ନାହିଁ। ଅତିରିକ୍ତ <ph name="FILE_SIZE" /> ଆବଶ୍ୟକ ଅଟେ। @@ -378,6 +379,7 @@ <translation id="4380245540200674032"><ph name="NETWORK_COUNT" />ଟିରୁ <ph name="NETWORK_INDEX" /> ନମ୍ବର ନେଟୱାର୍କ, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, ସିଗନାଲର କ୍ଷମତା <ph name="SIGNAL_STRENGTH" />%, ଆପଣଙ୍କର ଆଡମିନିଷ୍ଟ୍ରେଟରଙ୍କ ଦ୍ୱାରା ପରିଚାଳିତ, ବିବରଣୀ</translation> <translation id="4387004326333427325">ପ୍ରମାଣିକିକରଣ ସାର୍ଟିଫିକେଟ୍ ରିମୋଟ୍ ଭାବେ ଖାରଜ କରାଯାଇଛି</translation> <translation id="4394214039309501350">ଏକ୍ସଟର୍ନଲ୍ ଲିଙ୍କ୍</translation> +<translation id="4394980935660306080">ଏହି ସପ୍ତାହର ଆରମ୍ଭରେ</translation> <translation id="4401287888955153199">ସବୁ ଏକ୍ସଟ୍ରାକ୍ଟ କରନ୍ତୁ</translation> <translation id="4410695710508688828">ଏକ୍ସଟ୍ରାକ୍ଟ କରିବା ଅପରେସନ ବିଫଳ ହୋଇଛି। <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">ଆପଣଙ୍କ ଫାଇଲଗୁଡ଼ିକ ପାଇଁ ଏକ ସର୍ଟକଟ୍ ତିଆରି କରନ୍ତୁ</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" ଖୋଲାଯାଉଛି</translation> <translation id="4720185134442950733">ମୋବାଇଲ୍ ଡାଟା ନେଟ୍ୱାର୍କ</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" />ଟି ଫଟୋର ବ୍ୟାକ୍-ଅପ୍ ନିଆଯାଇଛି</translation> +<translation id="4725096204469550614">ଏହି ବର୍ଷର ଆରମ୍ଭରେ</translation> <translation id="4725511304875193254">କୋର୍ଗି</translation> <translation id="4737050008115666127">ଲ୍ୟାଣ୍ଡିଙ୍ଗ୍</translation> <translation id="4747271164117300400">ମାସିଡୋନିୟ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb index a5ae795..45623cb 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul romaja</translation> <translation id="112387589102719461">Inglês (EUA) com teclado Programmer Dvorak</translation> <translation id="1134697384939541955">Inglês (EUA) com teclado estendido</translation> +<translation id="1138691154716715755">No início deste mês</translation> <translation id="1148097584170732637">Arquivos encontrados: <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> Não há espaço suficiente disponível no armazenamento local. Você precisa de espaço adicional: <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />%, gerenciada pelo administrador, detalhes</translation> <translation id="4387004326333427325">Certificado de autenticação rejeitado remotamente</translation> <translation id="4394214039309501350">Link externo</translation> +<translation id="4394980935660306080">No início desta semana</translation> <translation id="4401287888955153199">Extrair tudo</translation> <translation id="4410695710508688828">A operação de extração falhou. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Criar um atalho para seus arquivos</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Abrindo "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Rede de dados móveis</translation> <translation id="4724850507808590449">Foi realizado o backup de <ph name="FILE_COUNT" /> fotos</translation> +<translation id="4725096204469550614">No início deste ano</translation> <translation id="4725511304875193254">Corgi</translation> <translation id="4737050008115666127">Pouso</translation> <translation id="4747271164117300400">Macedônio</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">Movendo <ph name="NUMBER_OF_ITEMS" /> itens para <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Ocorreu um erro.</translation> <translation id="5098629044894065541">Hebraico</translation> +<translation id="5102922915594634436">Gerenciar pastas sincronizadas</translation> <translation id="5109254780565519649">Ocorreu um erro. Alguns itens podem não ter sido restaurados.</translation> <translation id="5110329002213341433">Inglês (Canadá)</translation> <translation id="5123433949759960244">Basquete</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb index 470dd0e..dce35cb 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Se mută <ph name="NUMBER_OF_ITEMS" /> elemente în <ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">A apărut o eroare.</translation> <translation id="5098629044894065541">Ebraică</translation> +<translation id="5102922915594634436">Gestionează dosarele sincronizate</translation> <translation id="5109254780565519649">A apărut o eroare. Este posibil ca unele elemente să nu fi fost restabilite.</translation> <translation id="5110329002213341433">Engleză (Canada)</translation> <translation id="5123433949759960244">Baschet</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb index 9c40b8a..f1f42c73 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Перемещение объектов (<ph name="NUMBER_OF_ITEMS" />) в папку "<ph name="FOLDER_NAME" />"…</translation> <translation id="509429900233858213">Произошла ошибка.</translation> <translation id="5098629044894065541">Иврит</translation> +<translation id="5102922915594634436">Настроить синхронизированные папки</translation> <translation id="5109254780565519649">Произошла ошибка. Возможно, не все объекты были восстановлены.</translation> <translation id="5110329002213341433">Английский (Канада)</translation> <translation id="5123433949759960244">Баскетбол</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb index f237ba1..6db42f9 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sl.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sl.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Premikanje toliko elementov v mapo <ph name="FOLDER_NAME" />: <ph name="NUMBER_OF_ITEMS" /></translation> <translation id="509429900233858213">Napaka.</translation> <translation id="5098629044894065541">hebrejščina</translation> +<translation id="5102922915594634436">Upravljanje sinhroniziranih map</translation> <translation id="5109254780565519649">Prišlo je do napake. Nekateri elementi morda niso obnovljeni.</translation> <translation id="5110329002213341433">angleščina (Kanada)</translation> <translation id="5123433949759960244">Košarkarska žoga</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb index 1156e98..ca52213f 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sq.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sq.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Anglisht (SHBA) me tastierën Programmer Dvorak</translation> <translation id="1134697384939541955">Anglisht (SHBA) me tastierën e zgjeruar</translation> +<translation id="1138691154716715755">Më herët këtë muaj</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> të gjetura. <ph name="LINE_BREAK1" /> Nuk ka hapësirë të mjaftueshme në hapësirën ruajtëse lokale. Nevojiten edhe <ph name="FILE_SIZE" /> më shumë. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Rrjeti <ph name="NETWORK_INDEX" /> nga <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, fuqia e sinjalit <ph name="SIGNAL_STRENGTH" />%, menaxhuar nga administratori yt, detaje</translation> <translation id="4387004326333427325">Certifikata e vërtetimit u refuzua në largësi</translation> <translation id="4394214039309501350">Lidhje e jashtme</translation> +<translation id="4394980935660306080">Më herët këtë javë</translation> <translation id="4401287888955153199">Nxirri të gjitha</translation> <translation id="4410695710508688828">Veprimi i nxjerrjes nuk u krye. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Krijo një shkurtore për skedarët e tu</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Po hap "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Rrjeti i të dhënave celulare</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> fotografi u rezervuan</translation> +<translation id="4725096204469550614">Më herët këtë vit</translation> <translation id="4725511304875193254">Korgi</translation> <translation id="4737050008115666127">Zbritja</translation> <translation id="4747271164117300400">Maqedonisht</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb index dda68f4..29ee50ce 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sv.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sv.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">engelska (USA) med Dvorak-tangentbord för programmerare</translation> <translation id="1134697384939541955">engelska (USA) med utökat tangentbord</translation> +<translation id="1138691154716715755">Tidigare den här månaden</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> hittades. <ph name="LINE_BREAK1" /> Det finns inte tillräckligt med utrymme i det lokala lagringsutrymmet. Det behövs ytterligare <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Nätverk <ph name="NETWORK_INDEX" /> av <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, signalstyrka <ph name="SIGNAL_STRENGTH" /> %, hanteras av administratören, information</translation> <translation id="4387004326333427325">Autentiseringscertifikatet godkändes inte av fjärrvärden</translation> <translation id="4394214039309501350">Extern länk</translation> +<translation id="4394980935660306080">Tidigare den här veckan</translation> <translation id="4401287888955153199">Extrahera alla</translation> <translation id="4410695710508688828">Extraheringen misslyckades. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Skapa en genväg till dina filer</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Öppnar <ph name="PATH" /></translation> <translation id="4720185134442950733">Mobilt datanätverk</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> foton har säkerhetskopierats</translation> +<translation id="4725096204469550614">Tidigare i år</translation> <translation id="4725511304875193254">Welsh corgi</translation> <translation id="4737050008115666127">Landning</translation> <translation id="4747271164117300400">makedonska</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb index 4ebd819..76cb162 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sw.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Kiingereza (Marekani) kwenye kibodi ya Wasanidi Programu ya Dvorak</translation> <translation id="1134697384939541955">Kiingereza (Marekani) kwenye kibodi Pana</translation> +<translation id="1138691154716715755">Mapema mwezi huu</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> haikupatikana. <ph name="LINE_BREAK1" /> Nafasi haitoshi kwenye hifadhi ya ndani ya kifaa. <ph name="FILE_SIZE" /> zaidi inahitajika. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Mtandao wa <ph name="NETWORK_INDEX" /> kati ya <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Uthabiti wa Mtandao <ph name="SIGNAL_STRENGTH" />%, Unadhibitiwa na Msimamizi wako, Maelezo</translation> <translation id="4387004326333427325">Cheti cha uthibitishaji kimekataliwa kwa mbali</translation> <translation id="4394214039309501350">Kiungo cha nje</translation> +<translation id="4394980935660306080">Mapema wiki hii</translation> <translation id="4401287888955153199">Toa maudhui yote</translation> <translation id="4410695710508688828">Shughuli ya kuondoa faili haikufanikiwa. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Unda njia ya mkato ya faili zako</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Inafungua "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Mtandao wa data ya simu ya mkononi</translation> <translation id="4724850507808590449">Picha <ph name="FILE_COUNT" /> zimehifadhiwa nakala</translation> +<translation id="4725096204469550614">Mapema mwaka huu</translation> <translation id="4725511304875193254">Mbwa mlinzi</translation> <translation id="4737050008115666127">Uwanja wa kutua</translation> <translation id="4747271164117300400">Kimasedonia</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb index 4f6f99139..7f2e5d2f4c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ta.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ta.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">ஹாங்குல் ரோமஜா</translation> <translation id="112387589102719461">ஆங்கிலம் (யூஎஸ்) - புரோகிராமர் டிவோர்க் கீபோர்டு</translation> <translation id="1134697384939541955">ஆங்கிலம் (யூஎஸ்) - நீட்டிக்கப்பட்ட கீபோர்டு</translation> +<translation id="1138691154716715755">இந்த மாதத் தொடக்கத்தில்</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> உள்ளது. <ph name="LINE_BREAK1" /> அகச் சேமிப்பகத்தில் போதுமான இடம் இல்லை. கூடுதலாக <ph name="FILE_SIZE" /> தேவை. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">நெட்வொர்க்: <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, சிக்னல் வலிமை: <ph name="SIGNAL_STRENGTH" />%, உங்கள் நிர்வாகி நிர்வகிக்கிறார், விவரங்கள்</translation> <translation id="4387004326333427325">அங்கீகரிப்புச் சான்றிதழ் தொலைநிலையில் நிராகரிக்கப்பட்டது</translation> <translation id="4394214039309501350">வெளிப்புற இணைப்பு</translation> +<translation id="4394980935660306080">இந்த வாரத் தொடக்கத்தில்</translation> <translation id="4401287888955153199">அனைத்தையும் பிரி</translation> <translation id="4410695710508688828">பிரித்தெடுக்க முடியவில்லை. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">உங்கள் ஃபைல்களுக்கான ஷார்ட்கட்டை உருவாக்குதல்</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">"<ph name="PATH" />" காப்பகத்தைத் திறக்கிறது</translation> <translation id="4720185134442950733">மொபைல் டேட்டா நெட்வொர்க்</translation> <translation id="4724850507808590449"><ph name="FILE_COUNT" /> படங்கள் காப்புப் பிரதி எடுக்கப்பட்டன</translation> +<translation id="4725096204469550614">இந்த ஆண்டு தொடக்கத்தில்</translation> <translation id="4725511304875193254">கோர்கி</translation> <translation id="4737050008115666127">லேண்டிங்</translation> <translation id="4747271164117300400">மாஸிடோனியன்</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb index c578593..0d47c0e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_tr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_tr.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158"><ph name="NUMBER_OF_ITEMS" /> öğe <ph name="FOLDER_NAME" /> klasörüne taşınıyor</translation> <translation id="509429900233858213">Bir hata oluştu.</translation> <translation id="5098629044894065541">İbranice</translation> +<translation id="5102922915594634436">Senkronize edilen klasörleri yönet</translation> <translation id="5109254780565519649">Hata oluştu. Bazı öğeler geri yüklenmemiş olabilir.</translation> <translation id="5110329002213341433">İngilizce (Kanada)</translation> <translation id="5123433949759960244">Basketbol</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb index cdd00ae..0db9524 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Клавіатура хангул (ромаджа)</translation> <translation id="112387589102719461">Англійська (США), розкладка Дворака для програмістів</translation> <translation id="1134697384939541955">Англійська (США), розширена розкладка</translation> +<translation id="1138691154716715755">Раніше цього місяця</translation> <translation id="1148097584170732637">Знайдено: <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> Недостатньо місця в локальній пам’яті. Потрібно додати <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Мережа №<ph name="NETWORK_INDEX" />, загалом мереж: <ph name="NETWORK_COUNT" />, назва: <ph name="NETWORK_NAME" />, оператор: <ph name="NETWORK_PROVIDER_NAME" />, стан з'єднання: <ph name="CONNECTION_STATUS" />, рівень сигналу: <ph name="SIGNAL_STRENGTH" />%, мережею керує адміністратор, відомості</translation> <translation id="4387004326333427325">Сертифікат автентифікації відхилений дистанційно</translation> <translation id="4394214039309501350">Зовнішнє посилання</translation> +<translation id="4394980935660306080">Раніше цього тижня</translation> <translation id="4401287888955153199">Видобути все</translation> <translation id="4410695710508688828">Не вдалося виконати операцію видобування. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Створіть ярлики для своїх файлів</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Файл "<ph name="PATH" />" відкривається</translation> <translation id="4720185134442950733">Мережа мобільного передавання даних</translation> <translation id="4724850507808590449">Імпортовано <ph name="FILE_COUNT" /> фото</translation> +<translation id="4725096204469550614">Раніше цього року</translation> <translation id="4725511304875193254">Коргі</translation> <translation id="4737050008115666127">Посадка</translation> <translation id="4747271164117300400">Македонська</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb index 11767d4..de14155d 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_vi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_vi.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">Hangul Romaja</translation> <translation id="112387589102719461">Tiếng Anh (Mỹ) bằng bàn phím Dvorak cho lập trình viên</translation> <translation id="1134697384939541955">Tiếng Anh (Mỹ) bằng Bàn phím mở rộng</translation> +<translation id="1138691154716715755">Đầu tháng này</translation> <translation id="1148097584170732637">Đã tìm thấy <ph name="FILE_COUNT" />. <ph name="LINE_BREAK1" /> Không còn đủ dung lượng trong bộ nhớ cục bộ. Cần có thêm <ph name="FILE_SIZE" />. @@ -378,6 +379,7 @@ <translation id="4380245540200674032">Mạng <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, Cường độ tín hiệu <ph name="SIGNAL_STRENGTH" />%, Do quản trị viên của bạn quản lý, Thông tin chi tiết</translation> <translation id="4387004326333427325">Chứng chỉ xác thực bị từ chối từ xa</translation> <translation id="4394214039309501350">Đường liên kết ngoài</translation> +<translation id="4394980935660306080">Đầu tuần này</translation> <translation id="4401287888955153199">Trích xuất tất cả</translation> <translation id="4410695710508688828">Thao tác trích xuất không thành công. <ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">Tạo một lối tắt cho tệp của bạn</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">Đang mở "<ph name="PATH" />"</translation> <translation id="4720185134442950733">Mạng dữ liệu di động</translation> <translation id="4724850507808590449">Đã sao lưu <ph name="FILE_COUNT" /> ảnh</translation> +<translation id="4725096204469550614">Đầu năm nay</translation> <translation id="4725511304875193254">Chó Corgi</translation> <translation id="4737050008115666127">Hạ cánh</translation> <translation id="4747271164117300400">Tiếng Macedonia</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb index 8b761e19..b94a9d6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">韩语(罗马字)</translation> <translation id="112387589102719461">英语(美国)Programmer Dvorak 键盘</translation> <translation id="1134697384939541955">英语(美国)扩展键盘</translation> +<translation id="1138691154716715755">本月早些时候</translation> <translation id="1148097584170732637">找到了 <ph name="FILE_COUNT" />。 <ph name="LINE_BREAK1" /> 可用的本地存储空间不足。还需要 <ph name="FILE_SIZE" />。 @@ -378,6 +379,7 @@ <translation id="4380245540200674032">第 <ph name="NETWORK_INDEX" /> 个网络(共 <ph name="NETWORK_COUNT" /> 个),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,<ph name="CONNECTION_STATUS" />,信号强度为 <ph name="SIGNAL_STRENGTH" />%,由您的管理员管理,详细信息</translation> <translation id="4387004326333427325">身份验证证书遭到远程拒绝</translation> <translation id="4394214039309501350">外部链接</translation> +<translation id="4394980935660306080">本周早些时候</translation> <translation id="4401287888955153199">提取全部</translation> <translation id="4410695710508688828">提取操作失败。<ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">为您的文件创建快捷方式</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">正在打开“<ph name="PATH" />”</translation> <translation id="4720185134442950733">移动数据网络</translation> <translation id="4724850507808590449">已备份 <ph name="FILE_COUNT" /> 张照片</translation> +<translation id="4725096204469550614">今年早些时候</translation> <translation id="4725511304875193254">柯基犬</translation> <translation id="4737050008115666127">起落场</translation> <translation id="4747271164117300400">马其顿语</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb index fb365515..2d9c9af6 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-HK.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">韓文 (羅馬拼音)</translation> <translation id="112387589102719461">英文 (美國),Programmer Dvorak 鍵盤</translation> <translation id="1134697384939541955">英文 (美國),擴充鍵盤</translation> +<translation id="1138691154716715755">本月稍早</translation> <translation id="1148097584170732637">已找到 <ph name="FILE_COUNT" />。 <ph name="LINE_BREAK1" /> 可用的本機儲存空間不足。需要額外 <ph name="FILE_SIZE" />。 @@ -378,6 +379,7 @@ <translation id="4380245540200674032">第 <ph name="NETWORK_INDEX" /> 個網絡,一共有 <ph name="NETWORK_COUNT" /> 個網絡,<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,<ph name="CONNECTION_STATUS" />,訊號強度係 <ph name="SIGNAL_STRENGTH" />%,由管理員管理,詳情</translation> <translation id="4387004326333427325">遠端已拒絕驗證憑證</translation> <translation id="4394214039309501350">外部連結</translation> +<translation id="4394980935660306080">本週稍早</translation> <translation id="4401287888955153199">解壓縮全部</translation> <translation id="4410695710508688828">擷取操作失敗:<ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">為檔案建立捷徑</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">正在開啟「<ph name="PATH" />」</translation> <translation id="4720185134442950733">流動數據網絡</translation> <translation id="4724850507808590449">已備份 <ph name="FILE_COUNT" /> 張相片</translation> +<translation id="4725096204469550614">今年稍早</translation> <translation id="4725511304875193254">哥基</translation> <translation id="4737050008115666127">降落跑道</translation> <translation id="4747271164117300400">馬其頓文</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb index 7145b4c..95a648e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
@@ -11,6 +11,7 @@ <translation id="1120073797882051782">韓文羅馬拼音</translation> <translation id="112387589102719461">英文 (美國) 搭配 Programmer Dvorak 鍵盤</translation> <translation id="1134697384939541955">英文 (美國) 搭配改良鍵盤</translation> +<translation id="1138691154716715755">本月稍早</translation> <translation id="1148097584170732637">找到 <ph name="FILE_COUNT" />。 <ph name="LINE_BREAK1" /> 可用的本機儲存空間不足,還需要 <ph name="FILE_SIZE" />。 @@ -378,6 +379,7 @@ <translation id="4380245540200674032">第 <ph name="NETWORK_INDEX" /> 個網路 (共 <ph name="NETWORK_COUNT" /> 個),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,<ph name="CONNECTION_STATUS" />,訊號強度 <ph name="SIGNAL_STRENGTH" />%,由系統管理員管理,詳細資料</translation> <translation id="4387004326333427325">遠端已拒絕驗證憑證</translation> <translation id="4394214039309501350">外部連結</translation> +<translation id="4394980935660306080">本週稍早</translation> <translation id="4401287888955153199">解壓縮全部</translation> <translation id="4410695710508688828">擷取作業失敗:<ph name="ERROR_MESSAGE" /></translation> <translation id="4418686080762064601">為檔案建立捷徑</translation> @@ -421,6 +423,7 @@ <translation id="4712283082407695269">正在開啟「<ph name="PATH" />」</translation> <translation id="4720185134442950733">行動數據網路</translation> <translation id="4724850507808590449">已備份 <ph name="FILE_COUNT" /> 張相片</translation> +<translation id="4725096204469550614">今年稍早</translation> <translation id="4725511304875193254">柯基犬</translation> <translation id="4737050008115666127">降落跑道</translation> <translation id="4747271164117300400">馬其頓文</translation> @@ -470,6 +473,7 @@ <translation id="508423945471810158">正在將 <ph name="NUMBER_OF_ITEMS" /> 個項目移至「<ph name="FOLDER_NAME" />」</translation> <translation id="509429900233858213">發生錯誤。</translation> <translation id="5098629044894065541">希伯來文</translation> +<translation id="5102922915594634436">管理已同步的資料夾</translation> <translation id="5109254780565519649">發生錯誤,某些項目可能未順利還原。</translation> <translation id="5110329002213341433">英文 (加拿大)</translation> <translation id="5123433949759960244">籃球</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb index 6c37d184..660afdf5 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -473,6 +473,7 @@ <translation id="508423945471810158">Ihambisa izinto ezi-<ph name="NUMBER_OF_ITEMS" /> ku-<ph name="FOLDER_NAME" /></translation> <translation id="509429900233858213">Kuvele iphutha.</translation> <translation id="5098629044894065541">Hebrew</translation> +<translation id="5102922915594634436">Phatha amafolda avumelanisiwe</translation> <translation id="5109254780565519649">Kuvele iphutha. Ezinye zezinto kungenzeka azibuyiselwanga.</translation> <translation id="5110329002213341433">English (Canada)</translation> <translation id="5123433949759960244">I-Basketball</translation>
diff --git a/ui/ozone/common/gl_ozone_egl.cc b/ui/ozone/common/gl_ozone_egl.cc index 7fd7fea..ec67c6c 100644 --- a/ui/ozone/common/gl_ozone_egl.cc +++ b/ui/ozone/common/gl_ozone_egl.cc
@@ -12,7 +12,6 @@ #include "ui/gl/gl_share_group.h" #include "ui/gl/gl_surface.h" #include "ui/gl/gl_surface_egl.h" -#include "ui/ozone/common/native_pixmap_egl_binding.h" namespace ui { @@ -57,7 +56,7 @@ } bool GLOzoneEGL::CanImportNativePixmap() { - return gl::GLSurfaceEGL::GetGLDisplayEGL()->ext->b_EGL_KHR_image; + return false; } std::unique_ptr<NativePixmapGLBinding> GLOzoneEGL::ImportNativePixmap( @@ -68,8 +67,7 @@ const gfx::ColorSpace& color_space, GLenum target, GLuint texture_id) { - return NativePixmapEGLBinding::Create(pixmap, plane_format, plane, plane_size, - color_space, target, texture_id); + return nullptr; } bool GLOzoneEGL::GetGLWindowSystemBindingInfo(
diff --git a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc index f7b1577..fce88d6 100644 --- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc +++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
@@ -26,6 +26,7 @@ #include "ui/gl/gl_surface_egl.h" #include "ui/ozone/common/egl_util.h" #include "ui/ozone/common/gl_ozone_egl.h" +#include "ui/ozone/common/native_pixmap_egl_binding.h" #include "ui/ozone/platform/drm/common/drm_util.h" #include "ui/ozone/platform/drm/common/scoped_drm_types.h" #include "ui/ozone/platform/drm/gpu/drm_gpu_util.h" @@ -113,6 +114,24 @@ ~GLOzoneEGLGbm() override {} + bool CanImportNativePixmap() override { + return gl::GLSurfaceEGL::GetGLDisplayEGL() + ->ext->b_EGL_EXT_image_dma_buf_import; + } + + std::unique_ptr<NativePixmapGLBinding> ImportNativePixmap( + scoped_refptr<gfx::NativePixmap> pixmap, + gfx::BufferFormat plane_format, + gfx::BufferPlane plane, + gfx::Size plane_size, + const gfx::ColorSpace& color_space, + GLenum target, + GLuint texture_id) override { + return NativePixmapEGLBinding::Create(pixmap, plane_format, plane, + plane_size, color_space, target, + texture_id); + } + scoped_refptr<gl::GLSurface> CreateViewGLSurface( gfx::AcceleratedWidget window) override { return nullptr;
diff --git a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc index 5ba93b8..59ab6ab 100644 --- a/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc +++ b/ui/ozone/platform/wayland/gpu/wayland_surface_factory.cc
@@ -9,8 +9,11 @@ #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" #include "ui/gfx/linux/client_native_pixmap_dmabuf.h" +#include "ui/gl/gl_bindings.h" +#include "ui/gl/gl_surface_egl.h" #include "ui/ozone/common/egl_util.h" #include "ui/ozone/common/gl_ozone_egl.h" +#include "ui/ozone/common/native_pixmap_egl_binding.h" #include "ui/ozone/platform/wayland/common/wayland_object.h" #include "ui/ozone/platform/wayland/gpu/gl_surface_egl_readback_wayland.h" #include "ui/ozone/platform/wayland/gpu/gl_surface_wayland.h" @@ -45,6 +48,17 @@ ~GLOzoneEGLWayland() override {} + bool CanImportNativePixmap() override; + + std::unique_ptr<NativePixmapGLBinding> ImportNativePixmap( + scoped_refptr<gfx::NativePixmap> pixmap, + gfx::BufferFormat plane_format, + gfx::BufferPlane plane, + gfx::Size plane_size, + const gfx::ColorSpace& color_space, + GLenum target, + GLuint texture_id) override; + scoped_refptr<gl::GLSurface> CreateViewGLSurface( gfx::AcceleratedWidget widget) override; @@ -63,6 +77,23 @@ const raw_ptr<WaylandBufferManagerGpu> buffer_manager_; }; +bool GLOzoneEGLWayland::CanImportNativePixmap() { + return gl::GLSurfaceEGL::GetGLDisplayEGL() + ->ext->b_EGL_EXT_image_dma_buf_import; +} + +std::unique_ptr<NativePixmapGLBinding> GLOzoneEGLWayland::ImportNativePixmap( + scoped_refptr<gfx::NativePixmap> pixmap, + gfx::BufferFormat plane_format, + gfx::BufferPlane plane, + gfx::Size plane_size, + const gfx::ColorSpace& color_space, + GLenum target, + GLuint texture_id) { + return NativePixmapEGLBinding::Create(pixmap, plane_format, plane, plane_size, + color_space, target, texture_id); +} + scoped_refptr<gl::GLSurface> GLOzoneEGLWayland::CreateViewGLSurface( gfx::AcceleratedWidget widget) { // Only EGLGLES2 is supported with surfaceless view gl.
diff --git a/ui/ozone/platform/x11/BUILD.gn b/ui/ozone/platform/x11/BUILD.gn index 686a051b..a4edf63 100644 --- a/ui/ozone/platform/x11/BUILD.gn +++ b/ui/ozone/platform/x11/BUILD.gn
@@ -16,8 +16,6 @@ "client_native_pixmap_factory_x11.h", "gl_egl_utility_x11.cc", "gl_egl_utility_x11.h", - "gl_ozone_egl_x11.cc", - "gl_ozone_egl_x11.h", "gl_ozone_glx.cc", "gl_ozone_glx.h", "gl_surface_egl_readback_x11.cc",
diff --git a/ui/ozone/platform/x11/gl_ozone_egl_x11.cc b/ui/ozone/platform/x11/gl_ozone_egl_x11.cc deleted file mode 100644 index 099ee01..0000000 --- a/ui/ozone/platform/x11/gl_ozone_egl_x11.cc +++ /dev/null
@@ -1,33 +0,0 @@ -// Copyright 2022 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 "ui/ozone/platform/x11/gl_ozone_egl_x11.h" - -#include "ui/gl/gl_bindings.h" -#include "ui/gl/gl_surface_egl.h" -#include "ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h" - -namespace ui { - -GLOzoneEGLX11::GLOzoneEGLX11() = default; -GLOzoneEGLX11::~GLOzoneEGLX11() = default; - -bool GLOzoneEGLX11::CanImportNativePixmap() { - return gl::GLSurfaceEGL::GetGLDisplayEGL() - ->ext->b_EGL_NOK_texture_from_pixmap; -} - -std::unique_ptr<NativePixmapGLBinding> GLOzoneEGLX11::ImportNativePixmap( - scoped_refptr<gfx::NativePixmap> pixmap, - gfx::BufferFormat plane_format, - gfx::BufferPlane plane, - gfx::Size plane_size, - const gfx::ColorSpace& color_space, - GLenum target, - GLuint texture_id) { - return NativePixmapEGLX11Binding::Create(pixmap, plane_format, plane_size, - target, texture_id); -} - -} // namespace ui
diff --git a/ui/ozone/platform/x11/gl_ozone_egl_x11.h b/ui/ozone/platform/x11/gl_ozone_egl_x11.h deleted file mode 100644 index 664c415..0000000 --- a/ui/ozone/platform/x11/gl_ozone_egl_x11.h +++ /dev/null
@@ -1,38 +0,0 @@ -// Copyright 2022 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 UI_OZONE_PLATFORM_X11_GL_OZONE_EGL_X11_H_ -#define UI_OZONE_PLATFORM_X11_GL_OZONE_EGL_X11_H_ - -#include "ui/ozone/common/gl_ozone_egl.h" - -namespace ui { - -// A partial implementation of GLOzone for EGL on X11. This implementation is -// used when ANGLE supports pixmaps through eglCreatePixmapSurface and exposes -// it through EGL extension EGL_NOK_texture_from_pixmap to chrome. This can then -// be used to create native bindings using GLImageEGLPixmap. -class GLOzoneEGLX11 : public GLOzoneEGL { - public: - GLOzoneEGLX11(); - - GLOzoneEGLX11(const GLOzoneEGLX11&) = delete; - GLOzoneEGLX11& operator=(const GLOzoneEGLX11&) = delete; - - ~GLOzoneEGLX11() override; - - bool CanImportNativePixmap() override; - std::unique_ptr<NativePixmapGLBinding> ImportNativePixmap( - scoped_refptr<gfx::NativePixmap> pixmap, - gfx::BufferFormat plane_format, - gfx::BufferPlane plane, - gfx::Size plane_size, - const gfx::ColorSpace& color_space, - GLenum target, - GLuint texture_id) override; -}; - -} // namespace ui - -#endif // UI_OZONE_PLATFORM_X11_GL_OZONE_EGL_X11_H_
diff --git a/ui/ozone/platform/x11/x11_surface_factory.cc b/ui/ozone/platform/x11/x11_surface_factory.cc index 054344a4..9a122d1 100644 --- a/ui/ozone/platform/x11/x11_surface_factory.cc +++ b/ui/ozone/platform/x11/x11_surface_factory.cc
@@ -12,12 +12,14 @@ #include "ui/gfx/linux/gpu_memory_buffer_support_x11.h" #include "ui/gfx/linux/native_pixmap_dmabuf.h" #include "ui/gfx/x/connection.h" +#include "ui/gl/gl_bindings.h" #include "ui/gl/gl_surface_egl.h" #include "ui/gl/gl_surface_egl_x11_gles2.h" #include "ui/ozone/common/egl_util.h" #include "ui/ozone/common/gl_ozone_egl.h" #include "ui/ozone/platform/x11/gl_ozone_glx.h" #include "ui/ozone/platform/x11/gl_surface_egl_readback_x11.h" +#include "ui/ozone/platform/x11/native_pixmap_egl_x11_binding.h" #include "ui/ozone/platform/x11/x11_canvas_surface.h" #if BUILDFLAG(ENABLE_VULKAN) @@ -43,6 +45,27 @@ return GLOzoneEGL::InitializeStaticGLBindings(implementation); } + bool CanImportNativePixmap() override { + return gl::GLSurfaceEGL::GetGLDisplayEGL() + ->ext->b_EGL_NOK_texture_from_pixmap; + } + + // This implementation is used when ANGLE supports pixmaps through + // eglCreatePixmapSurface and exposes it through EGL extension + // EGL_NOK_texture_from_pixmap to chrome. This can then be used to create + // native bindings using GLImageEGLPixmap. + std::unique_ptr<NativePixmapGLBinding> ImportNativePixmap( + scoped_refptr<gfx::NativePixmap> pixmap, + gfx::BufferFormat plane_format, + gfx::BufferPlane plane, + gfx::Size plane_size, + const gfx::ColorSpace& color_space, + GLenum target, + GLuint texture_id) override { + return NativePixmapEGLX11Binding::Create(pixmap, plane_format, plane_size, + target, texture_id); + } + scoped_refptr<gl::GLSurface> CreateViewGLSurface( gfx::AcceleratedWidget window) override { if (is_swiftshader_) {
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb index 3465cfa..1a44c200 100644 --- a/ui/strings/translations/ui_strings_zh-TW.xtb +++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -62,7 +62,7 @@ <translation id="2586657967955657006">剪貼簿</translation> <translation id="2666092431469916601">置頂</translation> <translation id="2701330563083355633">透過 <ph name="DEVICE_NAME" /> 分享</translation> -<translation id="271033894570825754">新</translation> +<translation id="271033894570825754">全新</translation> <translation id="2824719307700604149">{YEARS,plural, =1{1 年前}other{# 年前}}</translation> <translation id="2878511608894704031">全部刪除</translation> <translation id="2907671656515444832">{DAYS,plural, =1{1 天內}other{# 天內}}</translation>
diff --git a/weblayer/browser/content_browser_client_impl.cc b/weblayer/browser/content_browser_client_impl.cc index 214354fff..82b9b3f 100644 --- a/weblayer/browser/content_browser_client_impl.cc +++ b/weblayer/browser/content_browser_client_impl.cc
@@ -259,7 +259,7 @@ void CreateMediaDrmStorage( content::RenderFrameHost* render_frame_host, mojo::PendingReceiver<::media::mojom::MediaDrmStorage> receiver) { - DCHECK(render_frame_host); + CHECK(render_frame_host); if (render_frame_host->GetLastCommittedOrigin().opaque()) { DVLOG(1) << __func__ << ": Unique origin."; @@ -269,7 +269,7 @@ // The object will be deleted on connection error, or when the frame navigates // away. new cdm::MediaDrmStorageImpl( - render_frame_host, base::BindRepeating(&CreateOriginId), + *render_frame_host, base::BindRepeating(&CreateOriginId), base::BindRepeating(&AllowEmptyOriginIdCB), std::move(receiver)); } #endif // BUILDFLAG(IS_ANDROID)