Version in base suite: 121.0.6167.139-1~deb12u1 Version in overlay suite: 123.0.6312.105-1~deb12u1 Base version: chromium_123.0.6312.105-1~deb12u1 Target version: chromium_123.0.6312.122-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/chromium/chromium_123.0.6312.105-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/chromium/chromium_123.0.6312.122-1~deb12u1.dsc DEPS | 10 ash/login/ui/login_auth_user_view.cc | 8 ash/shortcut_viewer/strings/shortcut_viewer_strings_my.xtb | 2 ash/strings/ash_strings_am.xtb | 2 ash/strings/ash_strings_eu.xtb | 2 ash/strings/ash_strings_ja.xtb | 2 ash/strings/ash_strings_ky.xtb | 6 ash/strings/ash_strings_mn.xtb | 2 ash/strings/ash_strings_ne.xtb | 2 ash/strings/ash_strings_pa.xtb | 2 ash/strings/ash_strings_ru.xtb | 2 ash/webui/camera_app_ui/BUILD.gn | 1 ash/webui/camera_app_ui/DEPS | 1 ash/webui/camera_app_ui/camera_app_helper.mojom | 14 ash/webui/camera_app_ui/camera_app_helper_impl.cc | 18 + ash/webui/camera_app_ui/camera_app_helper_impl.h | 14 ash/webui/camera_app_ui/resources/js/device/camera_manager.ts | 34 -- ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts | 6 ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts | 15 ash/webui/camera_app_ui/resources/js/mojo/type.ts | 1 ash/webui/camera_app_ui/resources/js/type.ts | 1 ash/wm/splitview/split_view_controller.cc | 33 +- ash/wm/splitview/split_view_controller.h | 3 ash/wm/splitview/split_view_controller_unittest.cc | 57 +++ build/util/LASTCHANGE | 2 build/util/LASTCHANGE.committime | 2 chrome/LACROS_QA_QUALIFIED_VERSION | 2 chrome/VERSION | 2 chrome/app/resources/generated_resources_ar.xtb | 2 chrome/app/resources/generated_resources_de.xtb | 2 chrome/app/resources/generated_resources_es-419.xtb | 2 chrome/app/resources/generated_resources_es.xtb | 2 chrome/app/resources/generated_resources_eu.xtb | 8 chrome/app/resources/generated_resources_fr.xtb | 4 chrome/app/resources/generated_resources_hr.xtb | 6 chrome/app/resources/generated_resources_hy.xtb | 20 - chrome/app/resources/generated_resources_id.xtb | 28 - chrome/app/resources/generated_resources_is.xtb | 2 chrome/app/resources/generated_resources_iw.xtb | 2 chrome/app/resources/generated_resources_ky.xtb | 10 chrome/app/resources/generated_resources_mk.xtb | 2 chrome/app/resources/generated_resources_mn.xtb | 2 chrome/app/resources/generated_resources_my.xtb | 8 chrome/app/resources/generated_resources_ne.xtb | 22 - chrome/app/resources/generated_resources_nl.xtb | 4 chrome/app/resources/generated_resources_pa.xtb | 2 chrome/app/resources/generated_resources_ro.xtb | 2 chrome/app/resources/generated_resources_ru.xtb | 6 chrome/app/resources/generated_resources_sk.xtb | 2 chrome/app/resources/generated_resources_sv.xtb | 8 chrome/app/resources/generated_resources_th.xtb | 2 chrome/app/resources/generated_resources_vi.xtb | 6 chrome/app/resources/generated_resources_zh-CN.xtb | 4 chrome/app/resources/generated_resources_zh-TW.xtb | 2 chrome/app/resources/google_chrome_strings_fr-CA.xtb | 2 chrome/browser/first_run/upgrade_util_win.cc | 17 + chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb | 2 chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb | 2 chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hy.xtb | 4 chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb | 4 chrome/updater/app/server/win/BUILD.gn | 2 chrome/updater/app/server/win/com_classes_legacy.h | 4 chrome/updater/app/server/win/updater_legacy_idl.template | 12 chrome/updater/branding.gni | 4 chrome/updater/test/integration_tests_win.cc | 17 - chrome/updater/win/setup/setup_util.cc | 4 chromeos/CHROMEOS_LKGM | 2 chromeos/strings/chromeos_strings_eu.xtb | 2 chromeos/strings/chromeos_strings_fr.xtb | 4 chromeos/strings/chromeos_strings_ja.xtb | 2 chromeos/strings/chromeos_strings_ne.xtb | 2 chromeos/strings/chromeos_strings_ru.xtb | 2 chromeos/strings/chromeos_strings_vi.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb | 2 components/policy/resources/policy_templates_vi.xtb | 8 components/strings/components_strings_es-419.xtb | 4 components/strings/components_strings_fr-CA.xtb | 2 components/strings/components_strings_hy.xtb | 6 components/strings/components_strings_it.xtb | 2 components/strings/components_strings_ne.xtb | 2 components/strings/components_strings_pl.xtb | 2 components/strings/components_strings_sk.xtb | 4 content/renderer/media/renderer_webaudiodevice_impl.cc | 153 +++------ content/renderer/media/renderer_webaudiodevice_impl.h | 18 - content/renderer/media/renderer_webaudiodevice_impl_unittest.cc | 79 +---- content/renderer/renderer_blink_platform_impl.cc | 14 content/renderer/renderer_blink_platform_impl.h | 1 debian/changelog | 11 gpu/config/gpu_lists_version.h | 2 gpu/webgpu/DAWN_VERSION | 2 infra/config/generated/testing/variants.pyl | 24 - infra/config/targets/lacros-version-skew-variants.json | 24 - net/http/transport_security_state_static.pins | 4 net/http/transport_security_state_static_pins.json | 2 services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc | 4 testing/buildbot/chromium.chromiumos.json | 48 +-- testing/buildbot/chromium.coverage.json | 48 +-- testing/buildbot/chromium.fyi.json | 144 ++++----- testing/buildbot/chromium.memory.json | 48 +-- testing/buildbot/variants.pyl | 24 - third_party/angle/src/compiler/translator/ParseContext.cpp | 33 +- third_party/angle/src/tests/gl_tests/GLSLTest.cpp | 139 ++++++++- third_party/angle/src/tests/gl_tests/PixelLocalStorageTest.cpp | 3 third_party/blink/public/platform/platform.h | 4 third_party/blink/public/strings/translations/blink_strings_mk.xtb | 4 third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc | 107 ++---- third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h | 38 -- third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc | 154 ---------- third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc | 1 third_party/blink/renderer/modules/webaudio/audio_context_test.cc | 1 third_party/blink/renderer/platform/audio/audio_destination.cc | 88 +++++ third_party/blink/renderer/platform/audio/audio_destination.h | 13 third_party/blink/renderer/platform/audio/audio_destination_test.cc | 12 third_party/blink/renderer/platform/audio/push_pull_fifo.h | 4 third_party/dawn/DEPS | 2 third_party/dawn/src/dawn/native/Device.cpp | 4 third_party/dawn/src/dawn/native/Device.h | 1 third_party/dawn/src/dawn/native/Toggles.cpp | 5 third_party/dawn/src/dawn/native/Toggles.h | 1 third_party/dawn/src/dawn/native/d3d12/D3D12Info.cpp | 22 - third_party/dawn/src/dawn/native/d3d12/D3D12Info.h | 13 third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.cpp | 20 + third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.h | 5 third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp | 87 ++++- third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.h | 4 third_party/dawn/src/dawn/native/d3d12/ShaderModuleD3D12.cpp | 5 third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp | 8 third_party/dawn/third_party/dxc/tools/clang/test/DXC/unreferenced_struct_selft_assignment_crash.hlsl | 24 + ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc | 5 ui/accessibility/platform/ax_platform_node_delegate.cc | 12 ui/accessibility/platform/ax_platform_node_win_unittest.cc | 3 135 files changed, 1152 insertions(+), 856 deletions(-) diff -Nru chromium-123.0.6312.105/DEPS chromium-123.0.6312.122/DEPS --- chromium-123.0.6312.105/DEPS 2024-04-02 23:52:22.000000000 +0000 +++ chromium-123.0.6312.122/DEPS 2024-04-10 21:24:35.000000000 +0000 @@ -318,7 +318,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'bbf1e1ea6bcf61e5e8e403870fd88df4e5e3a892', + 'angle_revision': 'f6672dbbe223e68396d6dfab11edc342aa435719', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -425,7 +425,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': 'c8cf7442e43c1088c839eba17117b1ac29bf4e28', + 'dawn_revision': '512c28cc16c40d32973a60b44ae2ffd1ee077195', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -825,7 +825,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - 'a70e288235a5afae6592e6e2fcf01fb4d8c699cc', + 'a5f3223533763e00380fd33a4182eae9cfe8bde3', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1162,7 +1162,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'e3bbb537f1b360f2bfd33543f13dffed1437a7cc', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '56a7b02b7acfc75ae4ee6a59ec6eec0c047ff2f9', 'condition': 'checkout_chromeos', }, @@ -4094,7 +4094,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - '6c5287d7adda0ea7efec7575cc51d6df4c3ac2b5', + '04d6c6b4931c437f56e238455de1440922e10d7b', 'condition': 'checkout_ios and checkout_src_internal', }, diff -Nru chromium-123.0.6312.105/ash/login/ui/login_auth_user_view.cc chromium-123.0.6312.122/ash/login/ui/login_auth_user_view.cc --- chromium-123.0.6312.105/ash/login/ui/login_auth_user_view.cc 2024-04-02 23:52:22.000000000 +0000 +++ chromium-123.0.6312.122/ash/login/ui/login_auth_user_view.cc 2024-04-10 21:24:36.000000000 +0000 @@ -1177,6 +1177,14 @@ // Tapping anywhere in the user view is the same with tapping the message. OnOnlineSignInMessageTap(); } else { + if (Shell::Get()->login_screen_controller()->IsAuthenticating()) { + // TODO(b/330738798): We should prevent starting a + // new authentication process if one is already running. + LOG(WARNING) << "LoginAuthUserView::OnUserViewTap called during " + "Authentication. To avoid double authentication we " + "skip to run the on_tap_ callback."; + return; + } on_tap_.Run(); } } diff -Nru chromium-123.0.6312.105/ash/shortcut_viewer/strings/shortcut_viewer_strings_my.xtb chromium-123.0.6312.122/ash/shortcut_viewer/strings/shortcut_viewer_strings_my.xtb --- chromium-123.0.6312.105/ash/shortcut_viewer/strings/shortcut_viewer_strings_my.xtb 2024-04-02 23:52:22.000000000 +0000 +++ chromium-123.0.6312.122/ash/shortcut_viewer/strings/shortcut_viewer_strings_my.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -158,7 +158,7 @@ သို့မဟုတ် ဝင်းဒိုးကို ဘယ်ဘက်တွင် နေရာချ၍ ဖွင့်ရန် Files အက်ပ်တွင် ဖိုင်ကို အစမ်းကြည့်ရန် -သော့ချထားသော မျက်နှာပြင် +လော့ခ်မျက်နှာပြင် ပြီးခဲ့သော အခြမ်း နောက် စကားလုံး သို့မဟုတ် စာလုံးကို ရွေးရန် နောက်ဆုံး အသုံးပြုထားသော လက်ကွက်သို့ ပြောင်းရန် diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_am.xtb chromium-123.0.6312.122/ash/strings/ash_strings_am.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_am.xtb 2024-04-02 23:52:22.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_am.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -881,7 +881,7 @@ የእርስዎን Chromebook ለመክፈት መጀመሪያ ስልክዎን ይክፈቱ የብሉቱዝ መሣሪያ «» ለመጣመር ፍቃድ ይፈልጋል። የእርስዎን የባትሪ ዕድሜ በማራዘም ላይ። ባትሪ እስከ ድረስ ሙሉ ኃይል ይሞላል። - ሙሉ እስከሚሆን ድረስ + ሙሉ ለመሆን የሙሉ ማያ ገፅ ቅጽበታዊ ገፅ ዕይታን ያንሱ የአሁኑን ገፅ ያትሙ መገለጫን በማስወገድ ላይ። ይህ ጥቂት ደቂቃዎችን ሊወስድ ይችላል። diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_eu.xtb chromium-123.0.6312.122/ash/strings/ash_strings_eu.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_eu.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_eu.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -780,7 +780,7 @@  + eskuinera egiteko gezi-tekla Joan hurrengo hitzaren amaierara Erreproduzitu musika -Pantaila +Bistaratzea Bateriari %  geratzen zaio ( inguru). Bateriaren iraupena luzatzeko, eginbide batzuk mugatu dira. Baliteke kablea pantailekin bateragarria ez izatea diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_ja.xtb chromium-123.0.6312.122/ash/strings/ash_strings_ja.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_ja.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_ja.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -1533,7 +1533,7 @@ 、Google アシスタント ステータス領域を表示しない テンプレートを置き換えますか? - さんが接続を解除しました + の接続が解除されました タッチペンが 1 週間以上使用されていません カメラをプレビューしています。別の方向をプレビューするには、Ctrl と矢印キーを押します このネットワークは管理者によって無効にされています。 diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_ky.xtb chromium-123.0.6312.122/ash/strings/ash_strings_ky.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_ky.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_ky.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -109,7 +109,7 @@ Оң Менюну жыйыштыруу Баракты издеп жатканда мурунку дал келген нерсеге өтүү -Профиль өчүрүлүүдө. Бул бир нече мүнөткө созулушу мүмкүн. +Профиль өчүрүлүүдө. Бир нече мүнөткө созулушу мүмкүн. Chromebook'тун кулпусун манжаңыздын изи менен ачыңыз Автоматтык жаңыртууларды алуу Иш тактаны кийинкиге сактоо @@ -606,7 +606,7 @@ Чычкан курсору баса белгиленсин Аккаунтту башкарган: {0,plural, =1{Түзмөктү 1 мүнөттүн ичинде жаңыртыңыз}other{Түзмөктү # мүнөттүн ичинде жаңыртыңыз}} -Жеткиликтүү профилдер изделүүдө. Бул бир нече мүнөткө созулушу мүмкүн. +Жеткиликтүү профилдер изделүүдө. Бир нече мүнөткө созулушу мүмкүн. Шилтемени жаңы өтмөктө ачып, учурдагы өтмөктө калуу түзмөккө туташты Текчедеги колдонмолор @@ -1581,7 +1581,7 @@ Ыкчам коштомо жазуулар өчүк. Башка түзмөктөн жооп берилип жатат. EDGE -Администраторуңуз eSIM-картаны баштапкы абалга келтирүүдө. Бул бир нече мүнөткө созулушу мүмкүн. +Администраторуңуз eSIM-картаны баштапкы абалга келтирүүдө. Бир нече мүнөткө созулушу мүмкүн. Камераны жайып көрсөтүү Жаңы иш кошуу Текстти айтып терүү үчүн текст талаасына өтүңүз diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_mn.xtb chromium-123.0.6312.122/ash/strings/ash_strings_mn.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_mn.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_mn.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -928,7 +928,7 @@ Төхөөрөмжийн түгжээг эцэг эхийн кодоор тайлна уу Нууцлалын дэлгэц унтраалттай байна Таталтыг дараа оролдоно. Яриаг одоогоор Google-д боловсруулахаар илгээнэ. -Өнгө хувиргалт +Өнгө урвуулах Гарыг илүү гэрэлтэй болгох Таны USB-C кабель USB4-ийг дэмждэггүй. Төхөөрөмжийн гүйцэтгэл хязгаарлагдмал байж магадгүй. БАЙНГА АШИГЛАГДДАГ diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_ne.xtb chromium-123.0.6312.122/ash/strings/ash_strings_ne.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_ne.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_ne.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -1301,7 +1301,7 @@ AI प्रयोग गरी सिर्जना गर्नुहोस् भाषाका वाक् पहिचानसम्बन्धी फाइलहरू डाउनलोड गरिएका छन् -रङ सच्याउने सुविधा +कलर करेक्सन को डाउनलोड पुष्टि गर्नुहोस् Google सहायक अतिथिको सत्रमा उपलब्ध हुँदैन। क्षेत्र diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_pa.xtb chromium-123.0.6312.122/ash/strings/ash_strings_pa.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_pa.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_pa.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -409,7 +409,7 @@ ਮਾਈਕ ਨੂੰ ਟੌਗਲ ਕਰੋ। ਉੱਪਰ ਵਿੰਡੋ ਨੂੰ ਲਾਕ ਕਰੋ -ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ +ਨਾਈਟ ਲਾਈਟ ਹੌਟਸਪੌਟ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਤੁਹਾਡੇ ਫ਼ੋਨ ਵਿੱਚ ਮੋਬਾਈਲ ਡਾਟਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ ਜਵਾਬ ਦਿਓ ਇੱਕ ਘੱਟ-ਪਾਵਰ ਦੇ ਚਾਰਜਰ ਨਾਲ ਪਲੱਗ-ਇਨ ਕੀਤਾ ਗਿਆ। ਬੈਟਰੀ ਚਾਰਜਿੰਗ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਵੀ ਹੋ ਸਕਦੀ। diff -Nru chromium-123.0.6312.105/ash/strings/ash_strings_ru.xtb chromium-123.0.6312.122/ash/strings/ash_strings_ru.xtb --- chromium-123.0.6312.105/ash/strings/ash_strings_ru.xtb 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/strings/ash_strings_ru.xtb 2024-04-10 21:24:36.000000000 +0000 @@ -508,7 +508,7 @@ Перезагрузите, чтобы обновить Воспользуйтесь обновленным сочетанием клавиш Рабочий стол 1 -Мобильное подключение +Мобильный интернет Ориентация Для множественного входа можно использовать не более  аккаунтов. Администратору устройства доступна информация о том, какие страницы вы просматриваете в браузере. diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/BUILD.gn chromium-123.0.6312.122/ash/webui/camera_app_ui/BUILD.gn --- chromium-123.0.6312.105/ash/webui/camera_app_ui/BUILD.gn 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/BUILD.gn 2024-04-10 21:24:36.000000000 +0000 @@ -41,6 +41,7 @@ "//ash/webui/common:trusted_types_util", "//ash/webui/system_apps/public:system_web_app_config", "//ash/webui/web_applications", + "//chromeos/ash/components/dbus/session_manager:session_manager", "//chromeos/utils", "//components/arc", "//components/media_device_salt", diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/DEPS chromium-123.0.6312.122/ash/webui/camera_app_ui/DEPS --- chromium-123.0.6312.105/ash/webui/camera_app_ui/DEPS 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/DEPS 2024-04-10 21:24:36.000000000 +0000 @@ -1,4 +1,5 @@ include_rules = [ + "+chromeos/ash/components/dbus/session_manager", "+chromeos/utils/pdf_conversion.h", "+components/arc/intent_helper", "+components/content_settings/core/common", diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper.mojom chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper.mojom --- chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper.mojom 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper.mojom 2024-04-10 21:24:36.000000000 +0000 @@ -74,6 +74,14 @@ Update(ScreenState state); }; +// Interface for monitoring lock state of screen. The state is detected from +// Chrome browser process and is notified to Chrome Camera App in renderer +// process. +interface ScreenLockedMonitor { + // Updates when the lock state of screen got changed. + Update(bool is_screen_locked); +}; + // Interface for monitoring the existence of external screen. The state is // detected from Chrome browser process and is notified to Chrome Camera App in // renderer process. @@ -307,4 +315,10 @@ // connection directly, no error message will be returned when the config is // incorrect. OpenWifiDialog(WifiConfig config); + + // Registers a ScreenLockedMonitor instance and returns the initial lock + // state of screen. + // Calling the Update() whenever the screen is locked/unlocked. + SetScreenLockedMonitor(pending_remote monitor) + => (bool is_screen_locked); }; diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper_impl.cc chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper_impl.cc --- chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper_impl.cc 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper_impl.cc 2024-04-10 21:24:36.000000000 +0000 @@ -202,9 +202,11 @@ DCHECK(window); window->SetProperty(kCanConsumeSystemKeysKey, true); ScreenBacklight::Get()->AddObserver(this); + ash::SessionManagerClient::Get()->AddObserver(this); } CameraAppHelperImpl::~CameraAppHelperImpl() { + ash::SessionManagerClient::Get()->RemoveObserver(this); ScreenBacklight::Get()->RemoveObserver(this); if (pending_intent_id_.has_value()) { @@ -580,4 +582,20 @@ FromMojoWifiConfig(std::move(wifi_config))); } +void CameraAppHelperImpl::SetScreenLockedMonitor( + mojo::PendingRemote monitor, + SetScreenLockedMonitorCallback callback) { + screen_locked_monitor_ = + mojo::Remote(std::move(monitor)); + std::move(callback).Run(ash::SessionManagerClient::Get()->IsScreenLocked()); +} + +void CameraAppHelperImpl::ScreenLockedStateUpdated() { + if (!screen_locked_monitor_.is_bound()) { + return; + } + screen_locked_monitor_->Update( + ash::SessionManagerClient::Get()->IsScreenLocked()); +} + } // namespace ash diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper_impl.h chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper_impl.h --- chromium-123.0.6312.105/ash/webui/camera_app_ui/camera_app_helper_impl.h 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/camera_app_helper_impl.h 2024-04-10 21:24:36.000000000 +0000 @@ -15,6 +15,7 @@ #include "ash/webui/camera_app_ui/document_scanner_service_client.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "chromeos/ash/components/dbus/session_manager/session_manager_client.h" #include "chromeos/services/machine_learning/public/mojom/document_scanner.mojom.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" @@ -29,6 +30,7 @@ namespace ash { class CameraAppHelperImpl : public ScreenBacklightObserver, + public SessionManagerClient::Observer, public display::DisplayObserver, public camera_app::mojom::CameraAppHelper { public: @@ -45,6 +47,7 @@ using CameraUsageOwnershipMonitor = camera_app::mojom::CameraUsageOwnershipMonitor; using StorageMonitor = camera_app::mojom::StorageMonitor; + using ScreenLockedMonitor = camera_app::mojom::ScreenLockedMonitor; CameraAppHelperImpl(CameraAppUI* camera_app_ui, CameraResultCallback camera_result_callback, @@ -104,6 +107,8 @@ void StopStorageMonitor() override; void OpenStorageManagement() override; void OpenWifiDialog(camera_app::mojom::WifiConfigPtr wifi_config) override; + void SetScreenLockedMonitor(mojo::PendingRemote monitor, + SetScreenLockedMonitorCallback callback) override; private: void CheckExternalScreenState(); @@ -124,6 +129,9 @@ void OnScreenBacklightStateChanged( ScreenBacklightState screen_backlight_state) override; + // ash::SessionManagerClient::Observer overrides; + void ScreenLockedStateUpdated() override; + // display::DisplayObserver overrides; void OnDisplayAdded(const display::Display& new_display) override; void OnDisplayRemoved(const display::Display& old_display) override; @@ -151,8 +159,6 @@ mojo::Remote storage_monitor_; StartStorageMonitorCallback storage_callback_; - mojo::Receiver receiver_{this}; - std::unique_ptr window_state_controller_; display::ScopedDisplayObserver display_observer_{this}; @@ -162,6 +168,10 @@ raw_ptr const holding_space_client_; + mojo::Remote screen_locked_monitor_; + + mojo::Receiver receiver_{this}; + base::WeakPtrFactory weak_factory_{this}; }; diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/device/camera_manager.ts chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/device/camera_manager.ts --- chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/device/camera_manager.ts 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/device/camera_manager.ts 2024-04-10 21:24:36.000000000 +0000 @@ -5,13 +5,10 @@ import { assert, assertExists, - assertInstanceof, } from '../assert.js'; -import * as error from '../error.js'; import * as expert from '../expert.js'; import {Point} from '../geometry.js'; import * as metrics from '../metrics.js'; -import {isLocalDev} from '../models/load_time_data.js'; import {ChromeHelper} from '../mojo/chrome_helper.js'; import {ScreenState} from '../mojo/type.js'; import * as nav from '../nav.js'; @@ -19,8 +16,6 @@ import * as state from '../state.js'; import { AspectRatioSet, - ErrorLevel, - ErrorType, Facing, Mode, PerfEvent, @@ -123,25 +118,6 @@ modeConstraints, ); - // Monitors the states to stop camera when locked/minimized. - // TODO(pihsun): The IdleDetector permission is auto-granted on CrOS. For - // local dev, we can request it by IdleDetector.requestPermission(), but - // that needs to be done in a user gesture and can't be done here. - if (!isLocalDev()) { - const idleDetector = new IdleDetector(); - idleDetector.addEventListener('change', async () => { - this.locked = idleDetector.screenState === 'locked'; - if (this.locked) { - await this.reconfigure(); - } - }); - idleDetector.start().catch((e) => { - error.reportError( - ErrorType.IDLE_DETECTOR_FAILURE, ErrorLevel.ERROR, - assertInstanceof(e, Error)); - }); - } - document.addEventListener('visibilitychange', async () => { const recording = state.get(state.State.TAKING) && state.get(Mode.VIDEO); if (this.isTabletBackground() && !recording) { @@ -267,6 +243,16 @@ const isTablet = await helper.initTabletModeMonitor(setTablet); setTablet(isTablet); + const handleScreenLockedChange = async (isScreenLocked: boolean) => { + this.locked = isScreenLocked; + if (this.locked) { + await this.reconfigure(); + } + }; + + this.locked = + await helper.initScreenLockedMonitor(handleScreenLockedChange); + const handleScreenStateChange = async () => { if (this.screenOff) { await this.reconfigure(); diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts --- chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts 2024-04-10 21:24:36.000000000 +0000 @@ -160,6 +160,12 @@ override openWifiDialog(_config: WifiConfig): void { /* Do nothing. */ } + + override async initScreenLockedMonitor( + _onChange: (isScreenLocked: boolean) => void): Promise { + return false; + } + /* eslint-enable @typescript-eslint/require-await */ } diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts --- chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts 2024-04-10 21:24:36.000000000 +0000 @@ -21,6 +21,7 @@ ExternalScreenMonitorCallbackRouter, FileMonitorResult, Rotation, + ScreenLockedMonitorCallbackRouter, ScreenState, ScreenStateMonitorCallbackRouter, StorageMonitorCallbackRouter, @@ -228,6 +229,9 @@ abstract openWifiDialog(config: WifiConfig): void; + abstract initScreenLockedMonitor(onChange: (isScreenLocked: boolean) => void): + Promise; + /** * Creates a new instance of ChromeHelper if it is not set. Returns the * existing instance. @@ -468,4 +472,15 @@ override openWifiDialog(config: WifiConfig): void { this.remote.openWifiDialog(config); } + + override async initScreenLockedMonitor( + onChange: (isScreenLocked: boolean) => void): Promise { + const monitorCallbackRouter = + wrapEndpoint(new ScreenLockedMonitorCallbackRouter()); + monitorCallbackRouter.update.addListener(onChange); + + const {isScreenLocked} = await this.remote.setScreenLockedMonitor( + monitorCallbackRouter.$.bindNewPipeAndPassRemote()); + return isScreenLocked; + } } diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/mojo/type.ts chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/mojo/type.ts --- chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/mojo/type.ts 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/mojo/type.ts 2024-04-10 21:24:36.000000000 +0000 @@ -18,6 +18,7 @@ DocumentOutputFormat, ExternalScreenMonitorCallbackRouter, FileMonitorResult, + ScreenLockedMonitorCallbackRouter, ScreenState, ScreenStateMonitorCallbackRouter, StorageMonitorCallbackRouter, diff -Nru chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/type.ts chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/type.ts --- chromium-123.0.6312.105/ash/webui/camera_app_ui/resources/js/type.ts 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/webui/camera_app_ui/resources/js/type.ts 2024-04-10 21:24:36.000000000 +0000 @@ -332,7 +332,6 @@ FILE_SYSTEM_FAILURE = 'file-system-failure', FRAME_ROTATION_NOT_DISABLED = 'frame-rotation-not-disabled', HANDLE_CAMERA_RESULT_FAILURE = 'handle-camera-result-failure', - IDLE_DETECTOR_FAILURE = 'idle-detector-failure', INVALID_REVIEW_UI_STATE = 'invalid-review-ui-state', METADATA_MAPPING_FAILURE = 'metadata-mapping-failure', MULTI_WINDOW_HANDLING_FAILURE = 'multi-window-handling-failure', diff -Nru chromium-123.0.6312.105/ash/wm/splitview/split_view_controller.cc chromium-123.0.6312.122/ash/wm/splitview/split_view_controller.cc --- chromium-123.0.6312.105/ash/wm/splitview/split_view_controller.cc 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/wm/splitview/split_view_controller.cc 2024-04-10 21:24:36.000000000 +0000 @@ -1279,15 +1279,16 @@ void SplitViewController::OnWindowDestroyed(aura::Window* window) { DCHECK(InSplitViewMode()); DCHECK(IsWindowInSplitView(window)); - auto iter = snapping_window_transformed_bounds_map_.find(window); - if (iter != snapping_window_transformed_bounds_map_.end()) { - snapping_window_transformed_bounds_map_.erase(iter); - } OnSnappedWindowDetached(window, WindowDetachedReason::kWindowDestroyed); +} - if (to_be_activated_window_ == window) { - to_be_activated_window_ = nullptr; +void SplitViewController::OnWindowRemovingFromRootWindow( + aura::Window* window, + aura::Window* new_root) { + if (new_root != root_window_) { + OnSnappedWindowDetached(window, + WindowDetachedReason::kWindowMovedToAnotherDisplay); } } @@ -2008,7 +2009,7 @@ window_state, WindowState::BoundsChangeAnimationType::kAnimate); } } else { - const gfx::Rect requested_bounds = GetSnappedWindowBoundsInScreen( + const gfx::Rect requested_bounds = GetSnappedWindowBoundsInParent( GetPositionOfSnappedWindow(window), window, window_util::GetSnapRatioForWindow(window)); const SetBoundsWMEvent event(requested_bounds, /*animate=*/true); @@ -2203,8 +2204,18 @@ void SplitViewController::OnSnappedWindowDetached(aura::Window* window, WindowDetachedReason reason) { - const bool is_window_destroyed = - reason == WindowDetachedReason::kWindowDestroyed; + auto iter = snapping_window_transformed_bounds_map_.find(window); + if (iter != snapping_window_transformed_bounds_map_.end()) { + snapping_window_transformed_bounds_map_.erase(iter); + } + + if (to_be_activated_window_ == window) { + to_be_activated_window_ = nullptr; + } + + const bool is_window_destroyed_or_moved = + reason == WindowDetachedReason::kWindowDestroyed || + reason == WindowDetachedReason::kWindowMovedToAnotherDisplay; const SnapPosition position_of_snapped_window = GetPositionOfSnappedWindow(window); @@ -2213,7 +2224,7 @@ // the window that is not going to be destroyed, we still need its bounds and // state to be updated to match the updated divider position before detaching // it from splitview. - if (is_window_destroyed) { + if (is_window_destroyed_or_moved) { StopObserving(position_of_snapped_window); } @@ -2227,7 +2238,7 @@ EndResizeWithDividerImpl(); } - if (!is_window_destroyed) { + if (!is_window_destroyed_or_moved) { StopObserving(position_of_snapped_window); } diff -Nru chromium-123.0.6312.105/ash/wm/splitview/split_view_controller.h chromium-123.0.6312.122/ash/wm/splitview/split_view_controller.h --- chromium-123.0.6312.105/ash/wm/splitview/split_view_controller.h 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/wm/splitview/split_view_controller.h 2024-04-10 21:24:36.000000000 +0000 @@ -351,6 +351,8 @@ const gfx::Rect& new_bounds, ui::PropertyChangeReason reason) override; void OnWindowDestroyed(aura::Window* window) override; + void OnWindowRemovingFromRootWindow(aura::Window* window, + aura::Window* new_root) override; // WindowStateObserver: void OnPostWindowStateTypeChange(WindowState* window_state, @@ -407,6 +409,7 @@ kWindowDestroyed, kWindowDragged, kWindowFloated, + kWindowMovedToAnotherDisplay, }; // These functions return |primary_window_| and |secondary_window_|, swapped diff -Nru chromium-123.0.6312.105/ash/wm/splitview/split_view_controller_unittest.cc chromium-123.0.6312.122/ash/wm/splitview/split_view_controller_unittest.cc --- chromium-123.0.6312.105/ash/wm/splitview/split_view_controller_unittest.cc 2024-04-02 23:52:23.000000000 +0000 +++ chromium-123.0.6312.122/ash/wm/splitview/split_view_controller_unittest.cc 2024-04-10 21:24:36.000000000 +0000 @@ -3940,6 +3940,63 @@ Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false); } +// Tests that snap across multi-displays works correctly. Regression test for +// b/331663949. +TEST_F(SplitViewControllerTest, SnapToCorrectDisplay) { + Shell::Get()->tablet_mode_controller()->SetEnabledForTest(false); + UpdateDisplay("800x600,800x600"); + display::test::DisplayManagerTestApi display_manager_test(display_manager()); + + auto get_drag_point = [](aura::Window* window) -> gfx::Point { + const gfx::Rect window_bounds = window->GetBoundsInScreen(); + return {window_bounds.CenterPoint().x(), window_bounds.y() + 10}; + }; + + // Create 2 test windows with non-overlapping bounds so we can drag them. + std::unique_ptr w1(CreateTestWindow(gfx::Rect(0, 0, 400, 400))); + std::unique_ptr w2( + CreateTestWindow(gfx::Rect(400, 0, 400, 400))); + + // Drag to snap `w1` on display 1. + auto* event_generator = GetEventGenerator(); + event_generator->set_current_screen_location(get_drag_point(w1.get())); + event_generator->DragMouseTo(0, 100); + const gfx::Rect work_area1 = + display::Screen::GetScreen()->GetPrimaryDisplay().work_area(); + EXPECT_EQ(gfx::Rect(0, 0, work_area1.width() / 2, work_area1.height()), + w1->GetBoundsInScreen()); + + // Drag to snap `w2` on display 1. + event_generator->set_current_screen_location(get_drag_point(w2.get())); + event_generator->DragMouseTo(799, 100); + EXPECT_EQ(gfx::Rect(work_area1.width() / 2, 0, work_area1.width() / 2, + work_area1.height()), + w2->GetBoundsInScreen()); + + // Drag to snap `w2` on display 2. + event_generator->set_current_screen_location(get_drag_point(w2.get())); + event_generator->DragMouseTo(800, 100); + const gfx::Rect work_area2 = + display_manager_test.GetSecondaryDisplay().work_area(); + EXPECT_EQ( + gfx::Rect(work_area2.x(), 0, work_area2.width() / 2, work_area2.height()), + w2->GetBoundsInScreen()); + + // Drag to snap `w2` back on display 1. + event_generator->set_current_screen_location(get_drag_point(w2.get())); + event_generator->DragMouseTo(799, 100); + EXPECT_EQ(gfx::Rect(work_area1.width() / 2, 0, work_area1.width() / 2, + work_area1.height()), + w2->GetBoundsInScreen()); + + // Drag to snap `w2` back on display 2. Test the bounds are correct. + event_generator->set_current_screen_location(get_drag_point(w2.get())); + event_generator->DragMouseTo(800, 100); + EXPECT_EQ( + gfx::Rect(work_area2.x(), 0, work_area2.width() / 2, work_area2.height()), + w2->GetBoundsInScreen()); +} + // The test class that enables the feature flag of portrait mode split view // virtual keyboard improvement and the virtual keyboard. class SplitViewKeyboardTest : public SplitViewControllerTest { diff -Nru chromium-123.0.6312.105/build/util/LASTCHANGE chromium-123.0.6312.122/build/util/LASTCHANGE --- chromium-123.0.6312.105/build/util/LASTCHANGE 2024-04-02 23:55:00.000000000 +0000 +++ chromium-123.0.6312.122/build/util/LASTCHANGE 2024-04-10 21:27:07.000000000 +0000 @@ -1,2 +1,2 @@ -LASTCHANGE=399174dbe6eff0f59de9a6096129c0c827002b3a-refs/branch-heads/6312@{#761} +LASTCHANGE=31f8248cdd90acbac59f700b603fed0b5967ca50-refs/branch-heads/6312@{#824} LASTCHANGE_YEAR=2024 diff -Nru chromium-123.0.6312.105/build/util/LASTCHANGE.committime chromium-123.0.6312.122/build/util/LASTCHANGE.committime --- chromium-123.0.6312.105/build/util/LASTCHANGE.committime 2024-04-02 23:55:00.000000000 +0000 +++ chromium-123.0.6312.122/build/util/LASTCHANGE.committime 2024-04-10 21:27:07.000000000 +0000 @@ -1 +1 @@ -1711994566 \ No newline at end of file +1712603633 \ No newline at end of file diff -Nru chromium-123.0.6312.105/chrome/LACROS_QA_QUALIFIED_VERSION chromium-123.0.6312.122/chrome/LACROS_QA_QUALIFIED_VERSION --- chromium-123.0.6312.105/chrome/LACROS_QA_QUALIFIED_VERSION 2024-04-02 23:52:24.000000000 +0000 +++ chromium-123.0.6312.122/chrome/LACROS_QA_QUALIFIED_VERSION 2024-04-10 21:24:37.000000000 +0000 @@ -1 +1 @@ -123.0.6312.86 \ No newline at end of file +123.0.6312.105 \ No newline at end of file diff -Nru chromium-123.0.6312.105/chrome/VERSION chromium-123.0.6312.122/chrome/VERSION --- chromium-123.0.6312.105/chrome/VERSION 2024-04-02 23:52:24.000000000 +0000 +++ chromium-123.0.6312.122/chrome/VERSION 2024-04-10 21:24:37.000000000 +0000 @@ -1,4 +1,4 @@ MAJOR=123 MINOR=0 BUILD=6312 -PATCH=105 +PATCH=122 diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_ar.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_ar.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_ar.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_ar.xtb 2024-04-10 21:24:38.000000000 +0000 @@ -5271,7 +5271,7 @@ ‏تفعيل شبكة Wi-Fi عدم إظهار هذه الإشعارات مرة أخرى شهادة البريد الإلكتروني -تثبيت إضافة +تثبيت الإضافة الإضافات محظورة على هذا الموقع الإلكتروني. تم ضبط كلمة المرور ‏تعذّر التحقّق من الأجهزة الافتراضية (VM). diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_de.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_de.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_de.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_de.xtb 2024-04-10 21:24:38.000000000 +0000 @@ -10257,7 +10257,7 @@ Link in neuem &Fenster öffnen Mobilfunknetz aktivieren {NUM_DAYS,plural, =1{Gemäß ist es notwendig, ein Daten-Backup zu erstellen und dieses heute zurückzugeben.}other{Gemäß ist es notwendig, ein Daten-Backup zu erstellen und dieses vor Ablauf der Frist zurückzugeben.}} -Einstellungen für "Vorlesen" öffnen +Einstellungen für „Vorlesen“ öffnen Mikrofonzugriff blockiert Quelle ändern Wähle ein Land aus diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_es-419.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_es-419.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_es-419.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_es-419.xtb 2024-04-10 21:24:38.000000000 +0000 @@ -7539,7 +7539,7 @@ Se produjo un error al autenticar Kerberos Dejar de fijar Tocar para hacer clic del panel táctil -En la barra de direcciones, puedes abrir la información de la página para ver información adicional sobre la página que estás visitando +En la barra de direcciones, puedes abrir la información de la página para ver datos adicionales sobre la página que estás visitando Copiar la dir&ección de correo electrónico Analizar elementos Administrar idiomas diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_es.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_es.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_es.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_es.xtb 2024-04-10 21:24:38.000000000 +0000 @@ -10109,7 +10109,7 @@ Nueva pestaña en el grupo Apagar cuando la tapa esté cerrada Se ha cancelado el inicio de la aplicación del kiosco. -Escribe el código de emparejamiento por Bluetooth y, a continuación, pulsa Intro. +Escribe el código de emparejamiento por Bluetooth y pulsa Intro. Ayuda contextual en funciones Media de datos agrupados Lápiz óptico diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_eu.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_eu.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_eu.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_eu.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -62,7 +62,7 @@ {NUM_PASSWORDS,plural, =1{1 pasahitz inportatu da zerbitzura gailu honetan}other{{NUM_PASSWORDS} pasahitz inportatu dira zerbitzura gailu honetan}} Linux berrabiarazi nahi duzu? Kopiatu estekaren te&stua -Pantaila +Bistaratzea Dinamikoki esleituta {COUNT,plural, =1{ jasotzen gailutik}other{ jasotzen gailutik}} Ezkutuko modua @@ -1275,7 +1275,7 @@ Hirugarrenen cookieak aldi baterako erabiltzeko baimena eman diozu webgune honi. Babes txikiagoa izango duzu, baina webgunearen eginbideek espero bezala funtzionatzeko probabilitate handiagoa izango dute. Erakutsi teklen esleipena Edozein webgunetan dauzkazun datu guztiak irakurri eta aldatu -Bluetooth bidezko konexioaren parekatze-kodea: +Bluetooth bidez konektatzeko parekatze-kodea: Ez dago sarbide-gakorik erabilgarri Eguneratzea aurkitu da Aukera honi esker, identitate-zerbitzu bateko kontuaren bidez webguneetan saioa has dezakezu @@ -4172,7 +4172,7 @@ webguneak zure informazioa erabil dezake hauek arakatu bitartean: Saioa hasteko aukera erabiltzaile jakin batzuei soilik emateko aukera duzu. Saioa hasteko pantailako "Gehitu pertsona bat" aukera kenduko da. Gainera, jadanik dauden erabiltzaileak ken ditzakezu. Instalatzen… -Pantaila +Bistaratzea Konektatu kamera bat Pantailaren testuingurua Esan iezaguzu nola funtzionatu duten jokoek azkenaldian @@ -10103,7 +10103,7 @@ Gehitu fitxa bat taldean Itzali estalkia itxiz gero Aplikazio espezializatua exekutatzeari utzi zaio. -Idatzi Bluetooth bidezko konexioaren parekatze-kodea eta sakatu Itzuli edo Sartu. +Idatzi Bluetooth bidez konektatzeko parekatze-kodea eta sakatu Itzuli edo Sartu. Eginbideen testuinguruaren araberako laguntza Denbora-tartetan adierazitako batezbestekoa Arkatza diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_fr.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_fr.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_fr.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_fr.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -5706,7 +5706,7 @@ Modifier le Règles Enterprise modifiées. Bouton de tests ajouté à la barre d'outils. Cliquez dessus pour pouvoir activer les tests. Les applis et sites Web autorisés à accéder à l'appareil photo, ainsi que les services système, peuvent l'utiliser. Pour utiliser l'appareil photo, vous devrez peut-être redémarrer l'appli ou actualiser la page. -{NUM_SITES,plural, =1{1 site trouvé avec de nombreuses notifications}one{{NUM_SITES} site trouvé avec de nombreuses notifications}other{{NUM_SITES} sites trouvés avec de nombreuses notifications}} +{NUM_SITES,plural, =1{1 site avec de nombreuses notifications trouvé}one{{NUM_SITES} site avec de nombreuses notifications trouvé}other{{NUM_SITES} sites avec de nombreuses notifications trouvés}} Associé Les sites ne peuvent pas vous demander d'utiliser les informations qu'ils ont enregistrées vous concernant Voir des avertissements avant d'accéder à des sites non sécurisés (recommandé) @@ -6594,7 +6594,7 @@ Conseils et actualités sur Parler pour saisir votre texte {0,plural, =1{Invité}one{# fenêtre en mode Invité ouverte}other{# fenêtres en mode Invité ouvertes}} -Ajouter raccourci +Ajouter un raccourci La connectivité sur "" peut être limitée Veuillez vérifier le volume de votre micro et le volume audio. Aucun réseau trouvé. Veuillez insérer votre carte SIM et réessayer. diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_hr.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_hr.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_hr.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_hr.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -199,7 +199,7 @@ Sunčane naočale Hostu uvijek dopusti pristup senzorima Ponovo unesite zaporku da biste potvrdili račun. -Googleov program Napredne zaštite +Googleov Program napredne zaštite Ne, samo na ovom uređaju Povezivanje s vašim telefonom Zatvorite bočnu ploču Google pretraživanja @@ -4124,7 +4124,7 @@ Možete ga omogućiti kasnije u odjeljku Postavke > Sigurnost i privatnost > Zaključavanje zaslona i prijava Idemo organizirati vaše kartice Prepoznaj i izbaci uređaje za pohranu -Otvorite sigurnosnu provjeru +Provjeri sad Prati Premjesti prozor korisniku () Vrati upozorenje @@ -6046,7 +6046,7 @@ Dopusti web-lokaciji da sprema podatke Pronađite proširenja i teme u Chrome Web Storeu Ponovo učitajte ovu stranicu, zadržite da biste vidjeli više opcija -Upravljajte sigurnosnim ključevima +Upravljanje sigurnosnim ključevima Zaporka se sprema samo na ovaj uređaj. Da biste je upotrebljavali na svojim drugim uređajima, spremite je na svoj Google račun. Počnite upotrebljavati Uređivač snimki zaslona diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_hy.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_hy.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_hy.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_hy.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -1311,7 +1311,7 @@ CRL բաշխման կետեր Լրացուցիչ Նույն աուդիոն բոլոր բարձրախոսներով -Chrome-ը պահել է ձեր գաղտնաբառն այս սարքում, սակայն դուք կարող եք պահել այն ձեր Google հաշվում։ Google հաշվում պահվող բոլոր գաղտնաբառերն ու անցաբառերը նույնպես հասանելի կլինեն, եթե մտնեք հաշիվ։ +Chrome-ը պահել է ձեր գաղտնաբառն այս սարքում, սակայն դուք կարող եք պահել այն ձեր Google հաշվում։ Google հաշվում պահվող բոլոր գաղտնաբառերն ու մուտքի բանալիները նույնպես հասանելի կլինեն, եթե մտնեք հաշիվ։ Հեռացնել… Մուտք անվտանգության սարք Մեծ տնտեսում @@ -1683,7 +1683,7 @@ Անվտանգ դիտում (բետա) Չհաջողվեց բեռնել տպիչի PPD ֆայլը։ Ընտրեք՝ ինչ տվյալներով կիսվել հավելվածի հետ -Ցույց տալ գաղտնաբառերն ու անցաբառերը ձեր Google հաշվից +Ցույց տալ գաղտնաբառերն ու մուտքի բանալիները ձեր Google հաշվից Այս սարքն արդեն կողպվել է այլ տիրույթում կամ ռեժիմում։ Microsoft ժամադրոշմ Վերագործարկել հիմա @@ -2353,7 +2353,7 @@ Միացում ինտերնետին «» սարքի միջոցով Սեղմված Եղավ -Այս անցաբառերը պահվում են միայն այս սարքում։ Դրանք չեն պահվում ձեր Google հաշվում։ +Այս մուտքի բանալիները պահվում են միայն այս սարքում։ Դրանք չեն պահվում ձեր Google հաշվում։ Բացել վերականգնման տերմինալը Ցուցադրել միջերեսը մուտքի էկրանին -ն այս պահին հասանելի չէ։ @@ -3524,7 +3524,7 @@ Ներկառուցված հպահարթակ Բացել որոնումը կողային վահանակում Տեքստի հնչեցման ձայնը -Ցուցադրել պատուհանների առաջարկներ կիսված էկրանը գործարկելիս +Ցուցադրել պատուհանների առաջարկներ տրոհված էկրանը գործարկելիս Շնորհակալություն կարծիք հայտնելու համար: Դուք ներկայումս միացած չեք ցանցին, և ձեր հաղորդումը կուղարկվի ավելի ուշ: Ընդգծման օղակ Էկրանի համօգտագործման հարցում -ից @@ -4729,7 +4729,7 @@ Համակարգի մասին է՞ջն եք փնտրում։ Անցեք Հավելվածներն ու ընդլայնումները միայն կառավարիչը () կարող է փոփոխել: Դուք ունեք որոշ հավաստագրեր, որոնք նույնականացնում են այս սերվերները -Կառավարել անցաբառերը +Կառավարել մուտքի բանալիները Ինկոգնիտո ռեժիմում կայքերը չեն կարող օգտագործել քուքիներ՝ տեսնելու ձեր գործողությունները դիտարկիչում, նույնիսկ առնչվող կայքերում։ Ձեր գործողությունները դիտարկիչում չեն օգտագործվում, օրինակ, գովազդներն անհատականացնելու համար։ Որոշ կայքերում գործառույթները կարող են չաշխատել։ Հիշողության կառավարում Մի քանի սարքերի միջոցով հասանելի են Wi-Fi ցանցեր @@ -5248,7 +5248,7 @@ Հավաստագրման կենտրոն «Kiosk_only» մանիֆեստի հատկանիշով հավելվածը պետք է տեղադրվի ChromeOS Flex-ի կրպակի ռեժիմում Վիզուալ տեսք -Կառավարել գաղտնաբառերն ու անցաբառերը +Կառավարել գաղտնաբառերն ու մուտքի բանալիները Մարտկոցի ցածր լիցքի ձայնային ազդանշան Պրոքսի-սերվերի լուծում… Կապելով ձեր հեռախոսը՝ դուք կարող եք՝ @@ -5830,7 +5830,7 @@ Չի թույլատրվում ավտոմատ ներբեռնել մի քանի ֆայլ Ավելացնել մոտակա տպիչներ Մուտք գործեք, որպեսզի թույլատրեք Chrome-ին առաջարկել ներդիրների խմբեր և դասավորված պահել ձեր ներդիրները -Երբ այս գործառույթը միացված է, անցաբառերը ստեղծվում են iCloud Keychain-ում և հասանելի են ձեր բոլոր Apple սարքերում։ Անջատելու դեպքում անցաբառերը ստեղծվում են Chrome-ի պրոֆիլում այս սարքում։ +Երբ այս գործառույթը միացված է, մուտքի բանալիները ստեղծվում են iCloud Keychain-ում և հասանելի են ձեր բոլոր Apple սարքերում։ Անջատելու դեպքում մուտքի բանալիները ստեղծվում են Chrome-ի պրոֆիլում այս սարքում։ {NUM_DAYS,plural, =1{Գործող կանոնի համաձայն (աղբյուրը՝ )՝ դուք պետք է պահուստավորեք ձեր տվյալները և այսօր վերադարձնեք այս սարքը։ Դիտել մանրամասները}one{Գործող կանոնի համաձայն (աղբյուրը՝ )՝ դուք պետք է պահուստավորեք ձեր տվյալները և {NUM_DAYS} օրվա ընթացքում վերադարձնեք այս սարքը։Դիտել մանրամասները}other{Գործող կանոնի համաձայն (աղբյուրը՝ )՝ դուք պետք է պահուստավորեք ձեր տվյալները և {NUM_DAYS} օրվա ընթացքում վերադարձնեք այս սարքը։Դիտել մանրամասները}} Ավելացնել հավելված Ենթագրերի նախընտրած լեզու @@ -8136,7 +8136,7 @@ Տվյալներ փոխանակել տեղային ցանցի կամ համացանցի ցանկացած սարքի հետ Բացեք կարգավորումները՝ սարքը վիրտուալ մեքենային () միացնելու համար Դադարեցված է -Google հաշվում պահվող գաղտնաբառերն ու անցաբառերը հասանելի կլինեն այս սարքում, եթե մուտք գործեք ձեր հաշիվ +Google հաշվում պահվող գաղտնաբառերն ու մուտքի բանալիները հասանելի կլինեն այս սարքում, եթե մուտք գործեք ձեր հաշիվ Կայքերի լեզուներ Չհաջողվեց մտնել հաշիվ: Սերվերը չի աջակցում Kerberos գաղտնագրման նշված տեսակները: Կապվեք ձեր ադմինիստրատորի հետ: Աշխատեք Google Drive-ի ձեր ֆայլերով, նույնիսկ երբ օֆլայն եք @@ -9688,7 +9688,7 @@ Պրոքսի-սերվեր Գաղտնաբառեր չեն գտնվել Չհաջողվեց թույլատրել -Կառավարել անցաբառերը Chrome-ի իմ պրոֆիլում +Կառավարել մուտքի բանալիները Chrome-ի իմ պրոֆիլում Ներբեռնումների գոտի -ն անջատված է: Գործարկել ChromeOS Flex-ի դիագնոստիկ թեստեր @@ -10669,7 +10669,7 @@ Ընտրեք սարքը Սեղմեք իջնող ցանկը՝ այլ վահանակ ընտրելու համար Ստիլուսի միջոցով նշումների ստեղծում կողպէկրանից -Եթե պատուհանը մի կողմի հետ կապեք՝ կիսված էկրանի ռեժիմն օգտագործելու համար, կտեսնեք պատուհանների առաջարկներ մյուս կողմի համար +Եթե պատուհանը մի կողմի հետ կապեք՝ տրոհված էկրանի ռեժիմն օգտագործելու համար, կտեսնեք պատուհանների առաջարկներ մյուս կողմի համար Լինուքսի կոնտեյների կարգավորումները ստուգվում են Ցավոք, եղադրման ժամանակի հատկանիշների սկզբնավորումը ժամասպառվեց: Կապվեք ձեր աջակցման կենտրոնի ներկայացուցչի հետ: Կեքս diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_id.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_id.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_id.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_id.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -2638,7 +2638,7 @@ Buka, edit, serta simpan file Word, Excel, dan PowerPoint. Langganan mungkin diperlukan untuk beberapa fitur. Pilih Playbook Ansible atau file cadangan Crostini Mengubah tata letak keyboard sistem -Kirim data penggunaan dan diagnostik. Bantuan sempurnakan pengalaman Android Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta peningkatan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda. Pelajari Lebih Lanjut +Kirim data penggunaan dan diagnostik. Bantuan tingkatkan pengalaman penggunaan Android dengan mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google secara otomatis. Data ini akan membantu meningkatkan performa sistem, stabilitas aplikasi, dan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini dapat disimpan ke Akun Google Anda. Pelajari Lebih Lanjut Buka file Tambahkan koneksi Batas layar @@ -3285,7 +3285,7 @@ Kaca pembesar layar Gunakan maksimal 99 huruf untuk kata baru Lanjutkan sebagai -Kirim data penggunaan dan diagnostik. Bantu sempurnakan pengalaman Android Anak Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirim data diagnostik dan penggunaan untuk perangkat ini ke Google. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. Pelajari Lebih Lanjut +Kirim data penggunaan dan diagnostik. Bantu tingkatkan pengalaman penggunaan Android oleh anak Anda dengan mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google secara otomatis. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda dan akan membantu meningkatkan performa sistem, stabilitas aplikasi, dan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirimkan data diagnostik dan penggunaan perangkat ini ke Google. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini dapat disimpan ke akun Google miliknya. Pelajari Lebih Lanjut Terus izinkan untuk mengakses kamera dan mikrofon Anda Deuteranomali Jangan sekarang @@ -4255,7 +4255,7 @@ Mendownload mesin virtual Alasan: ditemukan dalam daftar "". &Tampilkan Bilah Bookmark -Kirim data penggunaan dan diagnostik. Bantuan sempurnakan pengalaman Android Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta peningkatan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirim data diagnostik dan penggunaan untuk perangkat ini ke Google. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda. Pelajari Lebih Lanjut +Kirim data penggunaan dan diagnostik. Bantuan tingkatkan pengalaman penggunaan Android dengan mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google secara otomatis. Data ini akan membantu meningkatkan performa sistem, stabilitas aplikasi, dan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Setelan ini diterapkan oleh pemilik. Pemilik dapat memilih untuk mengirimkan data diagnostik dan penggunaan perangkat ini ke Google. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini dapat disimpan ke Akun Google Anda. Pelajari Lebih Lanjut Hentikan penggunaan dengan aplikasi Android Ekspor Akses ke sumber daya ini tidak diizinkan oleh server. @@ -4462,7 +4462,7 @@ Ada masalah dengan sertifikat server. Umumkan gaya teks Ponsel -Scrolling maju +Scroll maju Menghubungkan... Permintaan perangkat Situs juga dapat menyematkan konten dari situs lain, misalnya gambar, iklan, dan teks. Situs lain tersebut juga dapat menyimpan data. @@ -5274,7 +5274,7 @@ 15 menit terakhir Anda dapat membuka halaman dengan kursor teks. Tekan Ctrl+Search+7 untuk menonaktifkan. Buka situs ekstensi -Kirimkan data penggunaan dan diagnostik. Bantu sempurnakan pengalaman penggunaan Android Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web & Aplikasi tambahan Anda diaktifkan, data ini mungkin akan disimpan ke Akun Google Anda. +Kirimkan data penggunaan dan diagnostik. Bantu tingkatkan pengalaman penggunaan Android dengan mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google secara otomatis. Data ini akan membantu meningkatkan performa sistem, stabilitas aplikasi, dan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini dapat disimpan ke Akun Google Anda. Pilih jendela lain Aktifkan penyimpanan log ucapan Belum diperbarui @@ -5986,10 +5986,10 @@ Backspace Simpan nama pengguna? Saat Memulai -Ini adalah informasi umum tentang perangkat Anda dan cara Anda menggunakannya (seperti tingkat daya baterai, aktivitas aplikasi dan sistem, serta error). Data tersebut akan digunakan untuk menyempurnakan Android, dan beberapa informasi yang digabungkan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. - Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda untuk mengirim informasi yang diperlukan untuk layanan penting seperti keamanan dan update sistem. +Data ini berisi informasi umum tentang perangkat Anda dan penggunaannya (seperti tingkat daya baterai, aktivitas aplikasi dan sistem, serta error). Data ini akan digunakan untuk meningkatkan performa Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. + Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda mengirim informasi yang diperlukan untuk layanan penting seperti update sistem dan keamanan. Pemilik dapat mengontrol fitur ini dari Setelan > Lanjutan > Otomatis kirimkan data diagnostik dan penggunaan ke Google. - Jika setelan Aktivitas Web & Aplikasi tambahan Anda diaktifkan, data ini dapat disimpan ke Akun Google Anda. Anda dapat melihat data, menghapusnya, dan mengubah setelan akun di account.google.com. + Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan, data ini dapat disimpan ke Akun Google Anda. Anda dapat melihat data, menghapusnya, dan mengubah setelan akun di account.google.com. Kartu Tidak dapat membuat folder bookmark. Buka halaman tertentu atau rangkaian halaman @@ -9446,10 +9446,10 @@ {COUNT,plural, =1{Jendela Samaran Anda tidak akan dibuka setelah diluncurkan kembali}other{{COUNT} jendela Samaran Anda tidak akan dibuka lagi setelah diluncurkan kembali}} Semua metode input Tambahkan printer -Ini adalah informasi umum tentang perangkat ini dan cara penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk menyempurnakan Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. - Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat ini dalam mengirim informasi yang diperlukan untuk layanan penting seperti keamanan dan update sistem. +Data ini berisi informasi umum tentang perangkat ini dan penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk meningkatkan performa Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. + Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat ini mengirim informasi yang diperlukan untuk layanan penting seperti update sistem dan keamanan. Pemilik dapat mengontrol fitur ini dari Setelan > Lanjutan > Otomatis kirimkan data diagnostik dan penggunaan ke Google. - Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini dapat disimpan ke Akun Google-nya. Pelajari lebih lanjut setelan ini dan cara menyesuaikannya di families.google.com. + Jika setelan Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini dapat disimpan ke Akun Google miliknya. Pelajari lebih lanjut setelan ini dan cara menyesuaikannya di families.google.com. Sertifikat klien tidak valid Drive Histori Download Terbaru @@ -9859,7 +9859,7 @@ 1 detik Jangan tampilkan notifikasi sama sekali Situs ini telah diblokir agar tidak dapat mengakses lokasi Anda. -Kirim data penggunaan dan diagnostik. Bantu sempurnakan pengalaman Android Anak Anda dengan otomatis mengirim data diagnostik, perangkat, dan penggunaan aplikasi ke Google. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda serta akan membantu sistem dan stabilitas aplikasi serta penyempurnaan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. Pelajari Lebih Lanjut +Kirim data penggunaan dan diagnostik. Bantu tingkatkan pengalaman penggunaan Android oleh anak Anda dengan mengirimkan data diagnostik, perangkat, dan penggunaan aplikasi ke Google secara otomatis. Data ini tidak akan digunakan untuk mengidentifikasi anak Anda dan akan membantu meningkatkan performa sistem, stabilitas aplikasi, dan lainnya. Beberapa data gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android. Jika Aktivitas Web & Aplikasi tambahan diaktifkan untuk anak Anda, data ini mungkin akan disimpan ke akun Google miliknya. Pelajari Lebih Lanjut Anda tidak akan dapat membuka file di Microsoft 365 sampai penyiapan selesai. File Khusus Format properti: @@ -10072,7 +10072,7 @@ Perlu update ChromeOS Flex Panduan penyiapan Tombol Akses Gagal menginstal, membersihkan -Ini adalah informasi umum tentang perangkat Anda dan cara Anda menggunakannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk menyempurnakan Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. +Data ini berisi informasi umum tentang perangkat Anda dan penggunaannya (seperti tingkat daya baterai, aktivitas sistem dan aplikasi, serta error). Data ini akan digunakan untuk meningkatkan performa perangkat Android. Beberapa informasi gabungan juga akan membantu aplikasi dan partner Google, seperti developer Android, membuat aplikasi dan produk mereka menjadi lebih baik. Lingkungan Pengembangan Terkelola () Romaji Tidak diizinkan menyimpan data ke perangkat Anda @@ -10445,7 +10445,7 @@ Situs dan pengiklan dapat mengukur performa iklannya Bookmark tab ini... Pindai Kode QR menggunakan kamera perangkat Anda atau masukkan kode aktivasi yang diberikan oleh operator Anda. -Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda dalam mengirimkan informasi yang diperlukan bagi layanan penting seperti keamanan dan update sistem. +Menonaktifkan fitur ini tidak memengaruhi kemampuan perangkat Anda mengirim informasi yang diperlukan untuk layanan penting seperti update sistem dan keamanan. &Buka di Tab Baru Error saat memasang URL berbagi. Periksa URL berbagi file dan coba lagi. Anda dapat menggunakan pintasan di kolom URL untuk menelusuri situs tertentu dengan cepat atau untuk menggunakan mesin telusur lain diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_is.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_is.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_is.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_is.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -4524,7 +4524,7 @@ Villa kom upp við að fjarlægja . Reyndu aftur. Þú getur byrjað að nota . Engin tæki fundust. Opnaðu grein hjálparmiðstöðvarinnar í nýjum flipa. -Stjórna Google reikningnum +Stjórna Google-reikningnum SECG sporger ferill secp384r1 (e.þ.s. NIST P-384) Halda þessum vefsvæðum ávallt virkum Sláðu inn gilda vefslóð diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_iw.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_iw.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_iw.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_iw.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -6825,7 +6825,7 @@ ‏פרטי גישה של מכשירי Bluetooth המותאמים למערכת שלך ומגלים מכשירי Bluetooth קרובים. אין צורך בגישה המערכת בודקת אם הקובץ עומד בדרישות של מדיניות האבטחה של הארגון. -איפוס מפתח האבטחה שלך +איפוס מפתח האבטחה הדפדפן והפרופיל שלך מנוהלים הדגשת הכרטיסייה הזו השרת אינו זמין diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_ky.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_ky.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_ky.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_ky.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -2255,7 +2255,7 @@ Кештелген барак: Жөнөкөй режимде тезирээк серептеп, трафикти үнөмдөңүз. Толук маалымат алуу үчүн, чыкылдатыңыз. Chrome Желе дүкөнү -eSIM профили кошулууда. Бул бир нече мүнөткө созулушу мүмкүн. +eSIM профили кошулууда. Бир нече мүнөткө созулушу мүмкүн. Тил Жаңы сөз кошуу Мөөнөтү бүткөн @@ -3349,7 +3349,7 @@ үчүн сакталган маалыматты жок кылуу Дисктин өлчөмүн өзгөртүү Дискте бош орун өтө аз. Орун бошотуп, кайра аракет кылыңыз. -Жеткиликтүү профилдер изделүүдө. Бул бир нече мүнөткө созулушу мүмкүн. +Жеткиликтүү профилдер изделүүдө. Бир нече мүнөткө созулушу мүмкүн. Жергиликтүү тармагыңыздан принтерлер сыяктуу түзмөктөрдү табуу Экспорттоо аракеттери Жөндөлгөндөн кийин түзмөктү шайкештирүүнү текшерүү @@ -7572,7 +7572,7 @@ Дайындарды шайкештирүү үчүн өткөрүүчү сүйлөмдү киргизиңиз QuickFix Бардык колдонуучулар үчүн автоматтык жаңыртуулар орнотулбай калды (аткаруу катасы: ) -Google купуялык саясаты +Google купуялык эрежелери Офлайн түзөткүчтө ачуу Которуу Солго тегиздөө @@ -8159,7 +8159,7 @@ Аккаунтка кирбей калды. Сервер Kerberos шифрлөөсүнүн мындай түрлөрүн колдоого албайт. Администраторуңузга кайрылыңыз. Google Drive файлдарыңызга офлайн режиминде кириңиз Эч нерсе табылган жок -Администраторуңуз eSIM-картаны баштапкы абалга келтирүүдө. Бул бир нече мүнөткө созулушу мүмкүн. +Администраторуңуз eSIM-картаны баштапкы абалга келтирүүдө. Бир нече мүнөткө созулушу мүмкүн. Окуу жайын каттоо Эгер cookie файлдарын колдонгон сайтка өтсөңүз, сайттын бардык функцияларын иштетүү үчүн cookie файлдарын убактылуу иштетишиңиз керек болушу мүмкүн. Тармакты демейки катары коюу @@ -10589,7 +10589,7 @@ Колдонмолоруңузду башкарыңыз Бул функциялар ЖИни колдонот. Алар иштеп чыгуунун алгачкы баскычында болгондуктан, дайыма эле туура иштей бербеши мүмкүн. Орнотуу процесси аягына чыккан жок. Кайталап көрүңүз же бул терезени жабыңыз -Майнаптуу иштеши үчүн түзмөгүн ички дискиңизге орнотуп алыңыз. Аны кийинчерээк кирүү экранынан да орното аласыз. +Жакшыраак иштеши үчүн түзмөгүн ички дискиңизге орнотуп алыңыз. Аны кийинчерээк кирүү экранынан да орното аласыз. Орнотууга даяр эмес болсоңуз, аны байкап көрүү үчүн USB түзмөгүнөн иштете аласыз. Учурдагы OS системаңыз жана дайын-даректериңиз өчпөйт, бирок сактагыч жана иштин майнаптуулугу чектелиши мүмкүн. Кадалган өтмөк катары ачуу Түзмөгүңүз жаңыртылган эмес diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_mk.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_mk.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_mk.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_mk.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -7676,7 +7676,7 @@ Бришење криптографски клуч за корисничко име: Избришано Потребна меморија -PIN за мобичлната SIM-картичка +PIN за SIM-картичката Пробајте со друг уред Поставки за титлови Не прикажувај предупредувања пред одење на небезбедни сајтови diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_mn.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_mn.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_mn.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_mn.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -4883,7 +4883,7 @@ (автоматаар эхлүүлсэн) Эцэг эхийн нэвтрэлт Өчигдөр үзсэн -Өнгө хувиргалт +Өнгө урвуулах Бүх сайт дээр үргэлж -аас гарах Мөн табын аудиог зөвшөөрөх diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_my.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_my.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_my.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_my.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -1285,7 +1285,7 @@ သင်သည် ဤဝဘ်ဆိုက်အား ပြင်ပကုမ္ပဏီ၏ကွတ်ကီးများသုံးရန် ယာယီခွင့်ပြုထားသောကြောင့် ဘရောက်စ်လုပ်ချိန် ကာကွယ်မှုနည်းသွားသော်လည်း ဝဘ်ဆိုက်အင်္ဂါရပ်များသည် မျှော်လင့်ထားသည့်အတိုင်း အလုပ်လုပ်နိုင်ခြေ ပိုများသွားသည်။ ကီးနေရာချခြင်း ပြရန် ဝဘ်ဆိုက်အားလုံးပေါ်ရှိ သင့်ဒေတာအားလုံးကို ဖတ်ရှုခြင်းနှင့် ပြောင်းခြင်း -ဘလူးတုသ် တွဲချိတ်ရန်ကုဒ်- +ဘလူးတုသ် တွဲချိတ်ကုဒ်- လျှို့ဝှက်ကီး မရနိုင်ပါ မွမ်းမံမှု တွေ့ထား အထောက်အထား ဝန်ဆောင်မှုဖြင့် သင့်အကောင့်ကို သုံးပြီး ဝဘ်ဆိုက်များသို့ လက်မှတ်ထိုးဝင်ခွင့်ပြုသည် @@ -4810,7 +4810,7 @@ အရောင် ရွေးသူ ခွင့်ပြုချက်များ မလုံလောက် မှတ်ဉာဏ် ချွေတာထားသည် -စက်စနစ် မူရင်း +စနစ်မူရင်း သင်၏ ကို သင့်ဖုန်းနှင့် ချိတ်ဆက်မှု ဖြုတ်မည် သရုပ်ပြမုဒ်အရင်းအမြစ်များဖြင့် အွန်လိုင်းအစိတ်အပိုင်းကို ဖွင့်၍မရပါ။ ဤအကောင့်ဖြင့် လက်မှတ်ထိုးဝင်၍ မရပါ @@ -7404,7 +7404,7 @@ သင်၏ Linux အပလီကေးရှင်းကို ထည့်သွင်းနေစဉ် အမှားအယွင်း ဖြစ်ပေါ်ခဲ့သည်။ အသေးစိတ်အချက်အလက်များအတွက် အကြောင်းကြားချက်များပေါ်တွင် နှိပ်ပါ။ ကွန်ရက်ချိတ်ဆက်မှု မရှိတော့ပါ။ သင့်ကွန်ရက်ချိတ်ဆက်မှုကို စစ်ဆေးပါ (သို့) Wi-Fi ကွန်ရက် နောက်တစ်ခုကို ချိတ်ဆက်ပါ။ အမှောင်မုဒ်၊ အလင်းမုဒ် နှစ်မျိုးလုံးတွင် လူတိုင်းအတွက် ပိုကောင်းစေရန် Chrome အပြင်အဆင် အရောင်များကို အပ်ဒိတ်လုပ်ထားသည် -သော့ချထားသော မျက်နှာပြင် +လော့ခ်မျက်နှာပြင် နောက်ထပ်အချက်အလက်များ (သို့) အပ်ဒိတ်များအတွက် သင့်ကို အီးမေးလ်ပို့နိုင်သည် &ဖိုင် နောက်တစ်ကြိမ်တွင် ဤဝဘ်ဆိုက်က ထပ်မံခွင့်တောင်းပါမည်။ @@ -10119,7 +10119,7 @@ အုပ်စုတွင် တဘ်အသစ်ထည့်ခြင်း အဖုံးကို ပိတ်လိုက်သည့်အခါ စက်ပိတ်လိုက်ရန် Kiosk အပလီကေးရှင်း စတင်မှု ပယ်ဖျက်လိုက်ပါသည်။ -ဘလူးတုသ် တွဲချိတ်ရန်ကုဒ်ကို ထည့်ပြီး Return သို့မဟုတ် Enter ကို နှိပ်ပါ။ +ဘလူးတုသ် တွဲချိတ်ကုဒ်ကို ထည့်ပြီး Return ခလုတ် (သို့) Enter ခလုတ်ကို နှိပ်ပါ။ ဝန်ဆောင်မှုများရှိ အကြောင်းအရာအလိုက် အကူအညီ ပျမ်းမျှ အမှိုက်ပုံး စတိုင်လပ်စ်ခဲတံ diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_ne.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_ne.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_ne.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_ne.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -3812,7 +3812,7 @@ ARC++ सम्बन्धी कुनै समस्या भयो। Google सहायक अन गर्नुहोस् ब्राउजरको नयाँ ट्याबमा खुल्ने बनाइएको छ। खोल्न मिल्ने लिंकहरू पनि ब्राउजरमा नै खुल्ने छन्। थप जान्नुहोस् - को यन्त्रमा खाता प्रयोग गरी नजिकैका डिभाइससँग सेयर गर्ने सुविधाका सेटिङ। + को डिभाइसमा खाता प्रयोग गरी नजिकैका डिभाइससँग सेयर गर्ने सुविधाका सेटिङ। यो साइटबाट कपी गर्ने अनुमति दिइएको छैन डाउनलोड म्यानेजर तपाईंले खोल्ने केही पेजहरू प्रिलोड गरिन्छन् @@ -4577,7 +4577,7 @@ Ctrl, Alt वा ⌘ समावेश गर्नुहोस् तपाईं यो साइटमा खाता प्रयोग गर्न सक्नुहुन्छ। जारी राख्न मा साइन इन गर्नुहोस्। यसको रूपमा लिङ्&कलाई बचत गर्नुहोस्... -kiosk अनुप्रयोगहरूको व्यवस्थापन गर्नुहोस् +kiosk एपहरूको व्यवस्थापन गर्नुहोस् इथरनेट भर्चुअल मेसिन कन्फिगर गर्दै। यस कार्यमा केही मिनेट लाग्न सक्छ। तपाईंको अनपेक्षित रूपमा रिस्टार्ट भयो @@ -5932,7 +5932,7 @@ अगाडि र पछाडिको क्यामेरा अदलबदल गर्नुहोस् Safe Browsing को आफूले चाहेको सुरक्षा प्रणाली छनौट गर्नुहोस् हटस्पट अफ गर्नुहोस् -रङ उल्ट्याउने कार्य, रङ सच्याउने कार्य, म्याग्निफायर, र डिस्प्लेसम्बन्धी सेटिङ +रङ उल्ट्याउने कार्य, कलर करेक्सन, म्याग्निफायर, र डिस्प्लेसम्बन्धी सेटिङ अन गर्नुहोस् पुन: लोड गर्नुहोस् जुम &इन @@ -6287,7 +6287,7 @@ सम्बन्धको विन्याससम्बन्धी त्रुटि: कुनै पनि छाया छैन साइटलाई दिइएका अनुमतिहरू व्यवस्थापन गर्नुहोस् -रङहरू पृथक देखिऊन् भन्ने कुरा सुनिश्चित गर्न रङ सच्याउने सुविधासम्बन्धी सेटिङ मिलाउनुहोस् +रङहरू पृथक देखिऊन् भन्ने कुरा सुनिश्चित गर्न कलर करेक्सनको सेटिङ मिलाउनुहोस् एप र तिनका अद्यावधिकहरू स्थापना गर्नुहोस्। जारी राखेर, तपाईं यस यन्त्रले Google, तपाईंका सेवा प्रदायक र तपाईंको डिभाइसका उत्पादकहरूका एप र तिनका अद्यावधिकहरू स्वत: डाउनलोड गरी स्थापना गर्न पनि सक्छ तथा यो काममा सम्भवतः मोबाइल इन्टरनेटको प्रयोग पनि हुन सक्छ भन्ने कुरामा सहमति जनाउनुहुन्छ। यीमध्ये केही एपहरूले एपभित्र किनमेल गर्ने सुविधा प्रदान गर्न सक्छन्। पहिल्यै थपिएको छ Google Drive उपलब्ध नभएका बेला खोल्न सकिँदैन @@ -6588,7 +6588,7 @@  बारे सुझाव र अद्यावधिकहरू बोलेर टाइप गर्ने सुविधा {0,plural, =1{अतिथि}other{# वटा अतिथि विन्डो खुला छन्}} -सर्टकट थप्नुहोस् +सर्टकट हाल्नुहोस् "" को कनेक्टिभिटी सीमित हुन सक्छ कृपया आफ्नो माइक्रोफोन र अडियोको स्तर जाँच गर्नुहोस्। कुनै पनि नेटवर्क भेट्टिएन। कृपया डिभाइसमा आफ्नो SIM हाल्नुहोस् र फेरि प्रयास गर्नुहोस्। @@ -6638,7 +6638,7 @@ भाषा र इनपुट सेटिङहरू परिवर्तन गर्नुहोस् कुनै पनि प्रिन्टर उपलब्ध छैन यो डिभाइसको नाम राख्नुहोस् -रङ सच्याउने सुविधा +कलर करेक्सन तपाईं आफूले पाकविधिका बारेमा गरेका हालसालैका खोज गतिविधिका आधारमा सिफारिस गरिएका पाकविधिहरू देख्दै हुनुहुन्छ। @@ -6877,7 +6877,7 @@ सबै साइटहरू सुरक्षित गर्दै... यसले यहाँ सूचीबद्ध गरिएका साइटहरूमा प्रभाव पार्छ। डोमेन नेमअघि “[*.]” हाल्दा सम्पूर्ण डोमेनमा अपवाद बनाउँछ। उदाहरणका लागि, तपाईंले यो सूचीमा “[*.]google.com” हाल्नुभयो भने mail.google.com मा पनि तेस्रो पक्षीय कुकीहरू चल्न सक्छन्। उक्त सबडोमेन google.com अन्तर्गत नै पर्ने भएकाले यसो भएको हो। -Android का अनुप्रयोगहरूको स्थापना गर्न Google Play को प्रयोग गर्नुहोस् +Android का एपहरूको स्थापना गर्न Google Play को प्रयोग गर्नुहोस् डेटा पठाउने वा प्राप्त गर्ने कार्य पूरा गर्न अनुमति नदिइएका साइटहरू पासवर्ड परिवर्तन गर्नुहोस् बा&हिर निस्कनुहोस् @@ -7019,7 +7019,7 @@ डिफल्ट व्यवहार को अघिल्लो स्थापित संस्करणमा फिर्ता जाँदै पेज अप -सबै अनुप्रयोगहरूको लागि दूर पहुँच स्थायी रूपमा हटाउनुहोस् +सबै एपहरूको लागि दूर पहुँच स्थायी रूपमा हटाउनुहोस् महत्वपूर्ण अद्यावधिक स्थापना गर्नुहोस् तपाईंका एड्मिनले कुनै समस्या समाधान गर्ने प्रयोजनका लागि लग इन गर्नुभएको छ। तपाईंका एड्मिनले तपाईंलाई तपाईंको डिभाइस नियन्त्रण गर्ने अनुमति दिएपछि मात्र तपाईं सो डिभाइस प्रयोग गरिराख्न सक्नुहुन्छ। नयाँ डिभाइसहरू खोज्नुहोस् @@ -7288,7 +7288,7 @@ तल दिइएका अन्य सेटिङ मिलाउनुहोस् वा समीक्षा गर्ने कार्य अहिले नै पूरा गर्नुहोस् SQLite मेमोरी ट्याब खोल्नुहोस् -खुलेका सबै अनुप्रयोगहरूको विन्डो हेर्न तलबाट माथितिर स्वाइप गरी थिचिराख्नुहोस्। +खुलेका सबै एपहरूको विन्डो हेर्न तलबाट माथितिर स्वाइप गरी थिचिराख्नुहोस्। नेटवर्कको चयन खालि गर्नुहोस् पासवर्डहरू सुरक्षित गर्ने प्रस्ताव गर्नुहोस् @@ -10566,11 +10566,11 @@ यो सेटिङका कारणले गर्दा Google Translate वा लेन्सको उपलब्धता परिवर्तन हुँदैन कुनै विषय चयन गर्नुहोस् टिपोट लिने एप -आफ्ना अनुप्रयोगहरूको व्यवस्थापन गर्नुहोस् +आफ्ना एपहरूको व्यवस्थापन गर्नुहोस् यी सुविधाहरूले AI प्रयोग गर्छन्, यी सुविधाहरू पूर्ण रूपमा तयार भइसकेका छैनन् र यी सुविधाहरूले सधैँ सही ढङ्गले काम नगर्न सक्छन्। इन्स्टल गर्ने प्रक्रिया पूरा गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस् वा यो विन्डो बन्द गर्नुहोस् तपाईं उत्कृष्ट अनुभव प्राप्त गर्न चाहनुहुन्छ भने आफ्नो डिभाइसको इन्टर्नल डिस्कमा इन्स्टल गर्नुहोस्। तपाईं पछि लग इन गर्ने स्क्रिनबाट पनि यो OS इन्स्टल गर्न सक्नुहुन्छ। - तपाईं यो OS इन्स्टल गर्न तयार हुनुहुन्न भने तपाईं USB मार्फत पनि यो OS चलाई हेर्न सक्नुहुन्छ। तपाईंले यसो गर्नुभयो भने तपाईंको डिभाइसमा हाल इन्स्टल गरिएको OS र डेटा रहिरहने छ तर तपाईंको डिभाइसको भण्डारण सीमित रूपमा उपलब्ध हुन र डिभाइसको कार्यसम्पादनमा प्रभाव पर्न सक्छ। + तपाईं यो OS इन्स्टल गर्न तयार हुनुहुन्न भने तपाईं USB मार्फत पनि यो OS चलाई हेर्न सक्नुहुन्छ। तपाईंले यसो गर्नुभयो भने तपाईंको डिभाइसमा हाल इन्स्टल गरिएको OS र डेटा रहिरहने छ तर तपाईंको डिभाइसको भण्डारण सीमित रूपमा उपलब्ध हुन र डिभाइसको पर्फर्मेन्समा प्रभाव पर्न सक्छ। छापिएको ट्याबको रूपमा खोल्नुहोस् तपाईंको डिभाइस अप टु डेट छ स्वतः अनुवाद गरिएका भाषाहरूको सूचीबाट हटाउनुहोस् diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_nl.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_nl.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_nl.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_nl.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -6057,7 +6057,7 @@ Meer informatie over sites die misschien niet werken als cookies van derden worden geblokkeerd Als je dit netwerk vergeet, verwijder je ook het Passpoint-abonnement en de bijbehorende netwerken. Apparaatinschrijving -Pas aan hoe kleuren worden getoond op je telefoon +Pas aan hoe kleuren worden getoond op je scherm Feedback sturen naar Google Voor de externe extensie moet Chrome-versie of hoger zijn geïnstalleerd. De nieuwste update installeren @@ -10294,7 +10294,7 @@ USB-C-apparaat (poort rechts aan de achterkant) Je computer voert op dit moment te veel acties tegelijk uit. Probeer het later opnieuw. Uit je Google Foto's -Opties voor inloggen +Inlogopties Het recht '' intrekken staat uit Maak sterke wachtwoorden diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_pa.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_pa.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_pa.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_pa.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -2323,7 +2323,7 @@ ਫ਼ਾਈਲ ਸਿੰਕ ਚਾਲੂ ਹੋਣ 'ਤੇ ਸਟੋਰੇਜ ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਇਸ ਸੈਟਿੰਗ ਦਾ ਪ੍ਰਬੰਧਨ ਮਾਂ-ਪਿਓ ਵੱਲੋਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਮਾਮੂਲੀ ਕਰਸਰ ਹਿਲਜੁਲ ਨੂੰ ਅਣਡਿੱਠ ਕਰੋ -ਰਾਤ ਦੀ ਰੋਸ਼ਨੀ +ਨਾਈਟ ਲਾਈਟ ਐਂਟੀ-ਵਾਇਰਸ ਸਾਫਟਵੇਅਰ ਵਿੱਚ ਇੱਕ ਵਾਇਰਸ ਮਿਲਿਆ। ਅੱਗੇ ਦਿੱਤੀਆਂ ਕੁਕੀਜ਼ ਬਲਾਕ ਕੀਤੀਆਂ ਗਈਆਂ ਚਿੱਤਰ ਨੂੰ 'ਤੇ &ਖੋਜੋ diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_ro.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_ro.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_ro.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_ro.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -10113,7 +10113,7 @@ Filă nouă în grup Când capacul este închis: oprire Lansarea aplicațiilor de tip chioșc a fost anulată. -Introdu codul de asociere prin Bluetooth, apoi apasă pe Revino sau pe Enter. +Introdu codul de asociere prin Bluetooth, apoi apasă pe Return sau pe Enter. Ajutor contextual pentru funcții Medie limitată Creion diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_ru.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_ru.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_ru.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_ru.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -2876,7 +2876,7 @@ Приложения Chrome Запустить проверку безопасности Жесткая перезагрузка -Мобильное подключение +Мобильный интернет Время начала Удалить файлы cookie и данные сайтов, очистить историю и кеш Ориентация @@ -8509,7 +8509,7 @@ Правила настроены верно. Инструмент очистки Предпочитать эту сеть -Мобильный модем +Мобильный интернет Количество Проверка на соответствие правилам безопасности вашей организации… Браузер будет продолжать работать, пока вы не закроете приложения Chrome. @@ -9666,7 +9666,7 @@ Порт отладки NaCl Войдите в аккаунт и включите синхронизацию, чтобы получать рекомендации Chrome по группировке вкладок. США -Помогать улучшить просмотр страниц и поиск +Помогать улучшать просмотр страниц и поиск Предлагать перевести страницы на этом языке Начать трансляцию видеофайлов с вашего устройства на другой экран Приложения для Linux diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_sk.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_sk.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_sk.xtb 2024-04-02 23:52:25.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_sk.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -8307,7 +8307,7 @@ potrebuje na spustenie povolenie Šetrič energie je zapnutý Bola pridaná sieť -Asistent písania +Asistent pri písaní vaše dnešné spomienky Stránka na pozadí: Volať zo zariadenia diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_sv.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_sv.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_sv.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_sv.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -4438,7 +4438,7 @@ Enheten är uppdaterad Installerades på grund av ett eller flera tillägg som är beroende av detta tillägg. Cityscape -Snabböversikt över säkerheten +Säkerhetsöversikt Det här klientcertifikatets privata nyckel saknas eller är tom Öppna som en flik är standardkontot på din @@ -7004,7 +7004,7 @@ Ingen åtkomst till mobilkontot Organisera flikar Flytta fliken till ett nytt fönster -Enhetens IMEI-kod är . Detta nummer kan användas för att aktivera tjänsten. +Enhetens IMEI-nummer är . Detta nummer kan användas för att aktivera tjänsten. Föreslå ett starkt lösenord Får visa osäkert innehåll Skicka systeminformation och statistik @@ -8588,7 +8588,7 @@ Tryck på fingeravtryckssensorn högst upp till höger på tangentbordet bredvid av/på-knappen. Fingeravtrycksdata lagras på ett säkert sätt och lämnar aldrig din . Det finns inte tillräckligt med utrymme på hårddisken Det gick inte att hämta SAML-omdirigeringsadressen från servern -Enhetens IMEI-kod är och enhetens serienummer är . Dessa nummer kan användas för att aktivera tjänsten. +Enhetens IMEI-nummer är och enhetens serienummer är . Dessa nummer kan användas för att aktivera tjänsten. Du har återställt till en tidigare version av ChromeOS. Om du vill få uppdateringar väntar du tills nästa version är tillgänglig. Nytt profilnamn har lagts till @@ -9340,7 +9340,7 @@ Det gick inte att ansluta till domänen. Kontrollera att du använder ett konto med behörighet att lägga till enheter. Appen svarar inte. Klicka här om du vill radera all data från denna . -Enhetens EID är och IMEI-kod är . Dessa nummer kan användas för att aktivera tjänsten. +Enhetens EID är och IMEI-nummer är . Dessa nummer kan användas för att aktivera tjänsten. Växla till Mer info Jämnhög diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_th.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_th.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_th.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_th.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -2152,7 +2152,7 @@ ไม่ต้องแสดงไฟล์ในไดรฟ์ ออกจากโหมดผู้อ่าน ตรวจสอบว่าคุณได้สำรองข้อมูลไว้แล้วก่อนที่จะเริ่ม การติดตั้ง จะเขียนทับข้อมูลในฮาร์ดไดรฟ์ ดูข้อมูลเพิ่มเติมที่ g.co/flex/InstallGuide -จัดการการรักษาความปลอดภัยของ V8 +จัดการความปลอดภัย V8 ค้นหาด้วย Google หรือพิมพ์ URL การแชร์ใกล้เคียงใช้การสแกนหาบลูทูธเพื่อค้นหาอุปกรณ์ที่อยู่ใกล้เคียง Chrome เวอร์ชันใหม่พร้อมใช้งานแล้ว diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_vi.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_vi.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_vi.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_vi.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -418,7 +418,7 @@ Bạn đang truyền một thẻ. Bạn có thể tạm dừng hoặc ngừng truyền bất cứ lúc nào. Tạo từ một Ansible Playbook hoặc một tệp sao lưu Crostini Mật khẩu bạn đã lưu sẽ xuất hiện tại đây. Để nhập mật khẩu vào trên thiết bị này, hãy chọn một tệp CSV. -Đã thu hồi truy cập , , +Đã thu hồi quyền truy cập , , Cấu hình proxy tự động Caps Lock Bạn sẽ bị đăng xuất khỏi tất cả trang web, bao gồm cả các trang web trên thẻ đang mở @@ -7248,7 +7248,7 @@ Duyệt với tư cách khách Nói "Ok Google" khi bạn muốn dùng Trợ lý. Hoán đổi nút chuột chính -Sử dụng hệ thống tên miền (DNS) bảo mật +Sử dụng DNS bảo mật Đã hoàn tất kiểm tra an toàn. Đổi tên thư mục Đã ghi nhật ký WebRTC vào @@ -10785,7 +10785,7 @@ – Camera và micrô đang ghi Phương thức thanh toán Thêm các ngôn ngữ được kiểm tra lỗi chính tả -Khổ ngang +Phong cảnh Parallels Desktop: Chung Các gói ngôn ngữ được dùng cho tính năng Phụ đề trực tiếp và được lưu trữ trên thiết bị diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_zh-CN.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_zh-CN.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_zh-CN.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_zh-CN.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -4202,7 +4202,7 @@ 在进行初始设置时,您需要连接到互联网才能将文件同步到 Chromebook 突出显示键盘焦点 要接收来自“”的内容吗? -{NUM_SITES,plural, =1{撤消了 1 个未使用的网站的权限}other{撤消了 {NUM_SITES} 个未使用的网站的权限}} +{NUM_SITES,plural, =1{撤消了 1 个未使用网站的权限}other{撤消了 {NUM_SITES} 个未使用网站的权限}} 可信 CA 显示卡片 无法删除此个人资料 @@ -10729,7 +10729,7 @@ {NUM_APLLICATIONS,plural, =1{应用}other{应用}} 屏幕排列方式 报告与 Google Cast 有关的问题 -{NUM_SITES,plural, =1{查看最近发送了很多通知的 1 个网站}other{查看最近发送了很多通知的 {NUM_SITES} 个网站}} +{NUM_SITES,plural, =1{查看最近发送了大量通知的 1 个网站}other{查看最近发送了大量通知的 {NUM_SITES} 个网站}} 选择蓝牙盲文显示屏 {NUM_PROFILES,plural, =1{关闭这份个人资料(&C)}other{关闭这份已打开 # 个窗口的个人资料(&C)}} 禁止任何网站访问 HID 设备 diff -Nru chromium-123.0.6312.105/chrome/app/resources/generated_resources_zh-TW.xtb chromium-123.0.6312.122/chrome/app/resources/generated_resources_zh-TW.xtb --- chromium-123.0.6312.105/chrome/app/resources/generated_resources_zh-TW.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/generated_resources_zh-TW.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -4210,7 +4210,7 @@ 如要進行初始設定,請先連上網際網路,才能將檔案同步至 Chromebook 醒目顯示鍵盤焦點 要用功能接收嗎? -{NUM_SITES,plural, =1{已從 1 個未使用的網站移除權限}other{已從 {NUM_SITES} 個未使用的網站移除權限}} +{NUM_SITES,plural, =1{已移除 1 個未使用網站的權限}other{已移除 {NUM_SITES} 個未使用網站的權限}} 信任的 CA 顯示資訊卡 無法刪除這個設定檔 diff -Nru chromium-123.0.6312.105/chrome/app/resources/google_chrome_strings_fr-CA.xtb chromium-123.0.6312.122/chrome/app/resources/google_chrome_strings_fr-CA.xtb --- chromium-123.0.6312.105/chrome/app/resources/google_chrome_strings_fr-CA.xtb 2024-04-02 23:52:26.000000000 +0000 +++ chromium-123.0.6312.122/chrome/app/resources/google_chrome_strings_fr-CA.xtb 2024-04-10 21:24:39.000000000 +0000 @@ -247,7 +247,7 @@ Google Chrome essaie de remplacer les mots de passe existants. Tapez votre mot de passe Windows pour autoriser cela. Chrome OS Flex n'a pas pu synchroniser vos données parce que cette fonctionnalité n'est pas offerte pour votre domaine. Vous devez disposer de macOS 11 ou d'une version ultérieure pour recevoir les futures mises à jour de Google Chrome. Cet ordinateur fonctionne sous macOS 10.15. -Passer en revue les principaux paramètres de confidentialité et de sécurité dans Chrome +Passez en revue les principaux paramètres de confidentialité et de sécurité dans Chrome Laisser Google Chrome s'exécuter en arrière-plan Ouvrir le lien dans un nouvel ongle&t Chrome Chrome vous recommande d'examiner cette extension diff -Nru chromium-123.0.6312.105/chrome/browser/first_run/upgrade_util_win.cc chromium-123.0.6312.122/chrome/browser/first_run/upgrade_util_win.cc --- chromium-123.0.6312.105/chrome/browser/first_run/upgrade_util_win.cc 2024-04-02 23:52:27.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/first_run/upgrade_util_win.cc 2024-04-10 21:24:41.000000000 +0000 @@ -65,11 +65,15 @@ // events below try to shine a light on each steps. crbug.com/1252004 TRACE_EVENT0("startup", "upgrade_util::InvokeGoogleUpdateForRename"); + // Chrome queries for the SxS IIDs first, with a fallback to the legacy IID, + // to make sure that marshaling loads the proxy/stub from the correct (HKLM) + // hive. Microsoft::WRL::ComPtr ipl; { TRACE_EVENT0("startup", "InvokeGoogleUpdateForRename CoCreateInstance"); + Microsoft::WRL::ComPtr unknown; HRESULT hr = ::CoCreateInstance(__uuidof(ProcessLauncherClass), nullptr, - CLSCTX_ALL, IID_PPV_ARGS(&ipl)); + CLSCTX_ALL, IID_PPV_ARGS(&unknown)); if (FAILED(hr)) { TRACE_EVENT0("startup", "InvokeGoogleUpdateForRename CoCreateInstance failed"); @@ -77,6 +81,17 @@ << hr; return false; } + hr = unknown.CopyTo(__uuidof(IProcessLauncherSystem), + IID_PPV_ARGS_Helper(&ipl)); + if (FAILED(hr)) { + hr = unknown.As(&ipl); + } + if (FAILED(hr)) { + TRACE_EVENT0("startup", + "InvokeGoogleUpdateForRename QueryInterface failed"); + LOG(ERROR) << "QueryInterface failed; hr = " << std::hex << hr; + return false; + } } ULONG_PTR process_handle = 0; diff -Nru chromium-123.0.6312.105/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb chromium-123.0.6312.122/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb --- chromium-123.0.6312.105/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb 2024-04-02 23:52:28.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_id.xtb 2024-04-10 21:24:42.000000000 +0000 @@ -512,7 +512,7 @@ Hentikan ucapan Melihat Grafik Sebagai Braille Umumkan gaya teks -Scrolling maju +Scroll maju Tanya Jawab cntntinfo Deep Sky Blue diff -Nru chromium-123.0.6312.105/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb chromium-123.0.6312.122/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb --- chromium-123.0.6312.105/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb 2024-04-02 23:52:28.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_km.xtb 2024-04-10 21:24:42.000000000 +0000 @@ -1125,7 +1125,7 @@ colhdr សកម្មភាព​ដែលអាច​ធ្វើបាន។ ចុច Search+Ctrl+A ដើម្បី​មើល intlnk -ប៊ូតុងឧបករណ៍សម្រួល +គ្រាប់ចុចកែសម្រួល លឿងខ្ចី បានធីកមួយផ្នែក ជួរដេកទី ជួរឈរទី diff -Nru chromium-123.0.6312.105/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hy.xtb chromium-123.0.6312.122/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hy.xtb --- chromium-123.0.6312.105/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hy.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/touch_to_fill/password_manager/android/internal/java/strings/translations/android_touch_to_fill_strings_hy.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -11,10 +11,10 @@ Դուք մուտք կգործեք կայք Մուտք գործել Այլ անցաբառեր -Կառավարել անցաբառերը +Կառավարել մուտքի բանալիները Գաղտնաբառ -ի համար Օգտագործել էկրանի կողպումը -Կառավարել գաղտնաբառերն ու անցաբառերը +Կառավարել գաղտնաբառերն ու մուտքի բանալիները Մուտքի տվյալները, որոնք պետք է լրացվեն հպումով, ցուցադրված են ամբողջ էկրանով: Օգտագործե՞լ պահված գաղտնաբառ կամ անցաբառ Կառավարել գաղտնաբառերը diff -Nru chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb --- chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -1109,7 +1109,7 @@ Comparte esta página de forma rápida. Para editar este atajo, mantenlo presionado. Accede para ver tu contenido de Google en distintos dispositivos CVC -En la barra de direcciones, puedes abrir la información de la página para ver información adicional sobre la página que estás visitando +En la barra de direcciones, puedes abrir la información de la página para ver datos adicionales sobre la página que estás visitando Dejar de seguir el precio No seguro Traducir diff -Nru chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb --- chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_is.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -622,7 +622,7 @@ Færa í… Fjarlægja sýndarkortið þitt? Leitarvélin þín er . Skoðaðu leiðbeiningar hennar um að eyða leitarferlinum ef það á við. -Stjórna Google reikningnum +Stjórna Google-reikningnum Vaktar verð. Fáðu tilkynningu ef verðlækkun verður á einhverju vefsvæði. Staðfestingarblað aðgangslykils Þú munt ekki lengur geta notað sýndarkortið þitt með Google Pay. Nánar um sýndarkort diff -Nru chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb --- chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_my.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -666,7 +666,7 @@ စကားဝှက်ကို အသုံးပြုရန် {NUM_PASSWORDS,plural, =1{ကျိုးပေါက်ထားသည့် စကားဝှက် 1 ခု}other{ကျိုးပေါက်ထားသည့် စကားဝှက် # ခု}} ‘ရုပ်ဖျက်မုဒ်’ သုံးနေစဉ် ဥပမာ- ကြော်ငြာများကို ပုဂ္ဂိုလ်ရေးသီးသန့်ပြုလုပ်ရန်အတွက် မတူညီသည့် ဝဘ်ဆိုက်များတစ်လျှောက်ရှိ သင့်ကြည့်ရှုခြင်းများကို မြင်ရရန် ဝဘ်ဆိုက်များက သင်၏ကွတ်ကီးများကို မသုံးနိုင်ပါ။ အချို့ဝဘ်ဆိုက်များပေါ်ရှိ ဝန်ဆောင်မှုများ ရပ်သွားနိုင်သည်။ -စက်စနစ် မူရင်း +စနစ်မူရင်း 'လုံခြုံစွာ ဖွင့်ကြည့်ခြင်း' က သင့်ကို လှည့်ဖြားတတ်သော ဝဘ်ဆိုက်များမှ ကာကွယ်ပေးသည်။ ၎င်းကိုပိတ်လိုက်ပါက ဖွင့်ကြည့်ချိန်တွင် အထူးသဖြင့် စကားဝှက်မထည့်မီတွင် အထူးဂရုစိုက်ပါ။ ကိန်းဂဏန်းများ မပါဝင်ရပါ စာညှပ် တွေ့ရှိပါသည် diff -Nru chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb --- chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -1451,7 +1451,7 @@ Вкладка предпросмотра открыта на половину высоты Настройки Поделиться только скриншотом -Помогать улучшить просмотр страниц и поиск +Помогать улучшать просмотр страниц и поиск  – языковой пакет скачан. Перезапустите . Нет рекомендаций Не удалось обновить Chrome diff -Nru chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb --- chromium-123.0.6312.105/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb 2024-04-02 23:52:29.000000000 +0000 +++ chromium-123.0.6312.122/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb 2024-04-10 21:24:43.000000000 +0000 @@ -402,7 +402,7 @@ Thông báo Trang chủ của Chrome Sắp xếp thủ công -Phím tắt dành cho thẻ và cửa sổ +Lối tắt cho thẻ và cửa sổ Chrome hiện đang chạy trên trang này. Bạn có thể yêu cầu trang web dành cho thiết bị di động cho Khám phá @@ -1052,7 +1052,7 @@ Luôn cho phép Các thẻ bạn đã mở trong Chrome trên thiết bị khác sẽ xuất hiện tại đây. Đánh dấu trang hiện tại -Sử dụng hệ thống tên miền (DNS) bảo mật +Sử dụng DNS bảo mật Tiết kiệm tới 60% dữ liệu Đảm bảo mật khẩu bạn đang lưu khớp với mật khẩu dùng cho Trang web cho máy tính diff -Nru chromium-123.0.6312.105/chrome/updater/app/server/win/BUILD.gn chromium-123.0.6312.122/chrome/updater/app/server/win/BUILD.gn --- chromium-123.0.6312.105/chrome/updater/app/server/win/BUILD.gn 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/app/server/win/BUILD.gn 2024-04-10 21:24:46.000000000 +0000 @@ -195,8 +195,10 @@ "PLACEHOLDER-GUID-CC2CCD05-119C-44E1-852D-6DCC2DFB72EC=$IPolicyStatusValueSystemGUID", "PLACEHOLDER-GUID-4779D540-F6A3-455F-A929-7ADFE85B6F09=$IProcessLauncherGUID", + "PLACEHOLDER-GUID-FFBAEC45-C5EC-4287-85CD-A831796BE952=$IProcessLauncherSystemGUID", "PLACEHOLDER-GUID-74F243B8-75D1-4E2D-BC89-5689798EEF3E=$IProcessLauncher2GUID", + "PLACEHOLDER-GUID-5F41DC50-029C-4F5A-9860-EF352A0B66D2=$IProcessLauncher2SystemGUID", ] updater_legacy_idl_guids = string_join(",", updater_legacy_idl_guids) diff -Nru chromium-123.0.6312.105/chrome/updater/app/server/win/com_classes_legacy.h chromium-123.0.6312.122/chrome/updater/app/server/win/com_classes_legacy.h --- chromium-123.0.6312.105/chrome/updater/app/server/win/com_classes_legacy.h 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/app/server/win/com_classes_legacy.h 2024-04-10 21:24:46.000000000 +0000 @@ -191,7 +191,9 @@ : public Microsoft::WRL::RuntimeClass< Microsoft::WRL::RuntimeClassFlags, IProcessLauncher, - IProcessLauncher2> { + IProcessLauncherSystem, + IProcessLauncher2, + IProcessLauncher2System> { public: LegacyProcessLauncherImpl(); LegacyProcessLauncherImpl(const LegacyProcessLauncherImpl&) = delete; diff -Nru chromium-123.0.6312.105/chrome/updater/app/server/win/updater_legacy_idl.template chromium-123.0.6312.122/chrome/updater/app/server/win/updater_legacy_idl.template --- chromium-123.0.6312.105/chrome/updater/app/server/win/updater_legacy_idl.template 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/app/server/win/updater_legacy_idl.template 2024-04-10 21:24:46.000000000 +0000 @@ -581,7 +581,11 @@ BEGIN_INTERFACE( { - "addToLibrary": [""], + "uuid": { + "system":"PLACEHOLDER-GUID-FFBAEC45-C5EC-4287-85CD-A831796BE952" + }, + "tokensToSuffix": ["IProcessLauncher"], + "addToLibrary": ["", "system"], "includeFor": ["system"] } ) @@ -605,7 +609,11 @@ BEGIN_INTERFACE( { - "addToLibrary": [""], + "uuid": { + "system":"PLACEHOLDER-GUID-5F41DC50-029C-4F5A-9860-EF352A0B66D2" + }, + "tokensToSuffix": ["IProcessLauncher2", "IProcessLauncher"], + "addToLibrary": ["", "system"], "includeFor": ["system"] } ) diff -Nru chromium-123.0.6312.105/chrome/updater/branding.gni chromium-123.0.6312.122/chrome/updater/branding.gni --- chromium-123.0.6312.105/chrome/updater/branding.gni 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/branding.gni 2024-04-10 21:24:46.000000000 +0000 @@ -82,8 +82,10 @@ IPolicyStatusValueSystemGUID = "4DC034A8-4BFC-4D43-9250-914163356BB0" IProcessLauncherGUID = "128C2DA6-2BC0-44C0-B3F6-4EC22E647964" + IProcessLauncherSystemGUID = "F4FE76BC-62B9-49FC-972F-C81FC3A926DB" IProcessLauncher2GUID = "D106AB5F-A70E-400E-A21B-96208C1D8DBB" + IProcessLauncher2SystemGUID = "6430040A-5EBD-4E63-A56F-C71D5990F827" if (is_mac) { legacy_google_update_appid = keystone_bundle_identifier @@ -167,8 +169,10 @@ IPolicyStatusValueSystemGUID = "CFF9AE0F-C5C5-4D53-8394-7602758A52BA" IProcessLauncherGUID = "EED70106-3604-4385-866E-6D540E99CA1A" + IProcessLauncherSystemGUID = "437174A3-B9A5-4835-B896-7DE8C1FE2638" IProcessLauncher2GUID = "BAEE6326-C925-4FA4-AFE9-5FA69902B021" + IProcessLauncher2SystemGUID = "E1C53EEF-2BAB-4420-BDD7-256B91C49D0C" if (is_mac) { legacy_google_update_appid = keystone_bundle_identifier diff -Nru chromium-123.0.6312.105/chrome/updater/test/integration_tests_win.cc chromium-123.0.6312.122/chrome/updater/test/integration_tests_win.cc --- chromium-123.0.6312.105/chrome/updater/test/integration_tests_win.cc 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/test/integration_tests_win.cc 2024-04-10 21:24:46.000000000 +0000 @@ -1434,9 +1434,22 @@ return; } - Microsoft::WRL::ComPtr process_launcher; + Microsoft::WRL::ComPtr unknown; ASSERT_HRESULT_SUCCEEDED( - CreateLocalServer(__uuidof(ProcessLauncherClass), process_launcher)); + CreateLocalServer(__uuidof(ProcessLauncherClass), unknown)); + Microsoft::WRL::ComPtr process_launcher; + EXPECT_HRESULT_SUCCEEDED(unknown.As(&process_launcher)); + process_launcher.Reset(); + EXPECT_HRESULT_SUCCEEDED( + unknown.CopyTo(__uuidof(IProcessLauncherSystem), + IID_PPV_ARGS_Helper(&process_launcher))); + + Microsoft::WRL::ComPtr process_launcher2; + EXPECT_HRESULT_SUCCEEDED(unknown.As(&process_launcher2)); + process_launcher2.Reset(); + EXPECT_HRESULT_SUCCEEDED( + unknown.CopyTo(__uuidof(IProcessLauncher2System), + IID_PPV_ARGS_Helper(&process_launcher2))); static constexpr wchar_t kAppId1[] = L"{831EF4D0-B729-4F61-AA34-91526481799D}"; diff -Nru chromium-123.0.6312.105/chrome/updater/win/setup/setup_util.cc chromium-123.0.6312.122/chrome/updater/win/setup/setup_util.cc --- chromium-123.0.6312.105/chrome/updater/win/setup/setup_util.cc 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chrome/updater/win/setup/setup_util.cc 2024-04-10 21:24:46.000000000 +0000 @@ -172,7 +172,9 @@ INTERFACE_PAIR(IPolicyStatus3System), INTERFACE_PAIR(IPolicyStatusValueSystem), INTERFACE_PAIR(IProcessLauncher), + INTERFACE_PAIR(IProcessLauncherSystem), INTERFACE_PAIR(IProcessLauncher2), + INTERFACE_PAIR(IProcessLauncher2System), }; } }(), @@ -607,6 +609,8 @@ {__uuidof(IPolicyStatus2System), kUpdaterLegacySystemIndex}, {__uuidof(IPolicyStatus3System), kUpdaterLegacySystemIndex}, {__uuidof(IPolicyStatusValueSystem), kUpdaterLegacySystemIndex}, + {__uuidof(IProcessLauncherSystem), kUpdaterLegacySystemIndex}, + {__uuidof(IProcessLauncher2System), kUpdaterLegacySystemIndex}, }; const auto index = kTypeLibIndexes.find(iid); CHECK(index != kTypeLibIndexes.end()) << base::win::WStringFromGUID(iid); diff -Nru chromium-123.0.6312.105/chromeos/CHROMEOS_LKGM chromium-123.0.6312.122/chromeos/CHROMEOS_LKGM --- chromium-123.0.6312.105/chromeos/CHROMEOS_LKGM 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/CHROMEOS_LKGM 2024-04-10 21:24:47.000000000 +0000 @@ -1 +1 @@ -15786.19.0 \ No newline at end of file +15786.51.0 \ No newline at end of file diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_eu.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_eu.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_eu.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_eu.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -487,7 +487,7 @@ Zuri-beltzez HTTP protokolorako suebakia Google Argazkiak -Pantaila +Bistaratzea Ziurtatu eskanerra piztuta dagoela eta sarearen edo konexio zuzenaren bidez erabilgarri dagoela Partziala Morea diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_fr.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_fr.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_fr.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_fr.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -801,7 +801,7 @@ Échec des requêtes HTTPS baisser la luminosité du clavier (Android) Latence HTTP -Ajouter raccourci +Ajouter un raccourci jaune Numérisation annulée Pour terminer, saisissez votre ancien mot de passe @@ -975,7 +975,7 @@ marche/arrêt Nom du point d'accès (APN) {0,plural, =1{Serveur de noms}one{Serveur de noms}other{Serveurs de noms}} -Raccourcis de recherche +Rechercher des raccourcis Connexion Réessayer pagode diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ja.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ja.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ja.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ja.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -1277,7 +1277,7 @@ 充電率 再実行 HSPA -{NUMBER_OF_PAGES,plural, =0{スキャン}=1{{NUMBER_OF_PAGES} ページをスキャン}other{ ページ{NUMBER_OF_PAGES}をスキャン}} +{NUMBER_OF_PAGES,plural, =0{スキャン}=1{{NUMBER_OF_PAGES} ページを目をスキャン}other{ {NUMBER_OF_PAGES} ページ目をスキャン}} デバイスのバッテリー残量は % です。 お使いのデバイスではご利用いただけません diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ne.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ne.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ne.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ne.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -801,7 +801,7 @@ HTTP अनुरोधहरू पठाउन सकिएन "किबोर्डको चमक घटाउनुहोस्" जनाउने आइकन (Android) HTTP को विलम्बता -सर्टकट थप्नुहोस् +सर्टकट हाल्नुहोस् पहेँलो स्क्यान गर्ने कार्य रद्द गरिएको छ यो कार्य पूरा गर्न आफ्नो पुरानो पासवर्ड प्रविष्टि गर्नुहोस् diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ru.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ru.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_ru.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_ru.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -340,7 +340,7 @@ Устройство подключено. {PAGE_NUMBER,plural, =0{Удалить страницу?}=1{Удалить страницу {PAGE_NUMBER}?}one{Удалить страницу {PAGE_NUMBER}?}few{Удалить страницу {PAGE_NUMBER}?}many{Удалить страницу {PAGE_NUMBER}?}other{Удалить страницу {PAGE_NUMBER}?}} Эксклюзивно для -Мобильное подключение +Мобильный интернет Сканирование страницы Обнаружена страница входа Отправить сведения о системе и приложениях, а также статистику diff -Nru chromium-123.0.6312.105/chromeos/strings/chromeos_strings_vi.xtb chromium-123.0.6312.122/chromeos/strings/chromeos_strings_vi.xtb --- chromium-123.0.6312.105/chromeos/strings/chromeos_strings_vi.xtb 2024-04-02 23:52:33.000000000 +0000 +++ chromium-123.0.6312.122/chromeos/strings/chromeos_strings_vi.xtb 2024-04-10 21:24:47.000000000 +0000 @@ -1332,7 +1332,7 @@ menu Hồng nhạt Chạy quá trình Kiểm tra mức xả pin -Khổ ngang +Phong cảnh Chung Không được dùng chữ cái có dấu, bảng chữ cái không phải chữ Latinh hoặc biểu tượng \ No newline at end of file diff -Nru chromium-123.0.6312.105/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb chromium-123.0.6312.122/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb --- chromium-123.0.6312.105/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb 2024-04-02 23:52:34.000000000 +0000 +++ chromium-123.0.6312.122/components/browser_ui/strings/android/translations/browser_ui_strings_ko.xtb 2024-04-10 21:24:48.000000000 +0000 @@ -467,7 +467,7 @@ 허용(권장) 위로 이동 사용 설정하면 웹사이트 데스크톱 뷰가 표시됩니다. 사용 중지하면 웹사이트 모바일 뷰가 표시됩니다. -Chrome은 대부분의 사이트에 대해 서드 파티 쿠키를 사용하여 탐색 중인 사용자를 추적하는 것을 제한합니다. 설정으로 이동하여 추적 보호 조치를 관리하세요. +Chrome은 대부분의 사이트에 대해 서드 파티 쿠키를 사용하여 탐색 중인 사용자를 추적하지 못하도록 제한합니다. 설정으로 이동하여 추적 방지 기능을 관리하세요. 입력내용 지우기 방해가 되거나 사용자를 현혹하는 광고를 표시하는 것으로 알려진 사이트에서 광고가 차단됩니다. 연락처 검색 diff -Nru chromium-123.0.6312.105/components/policy/resources/policy_templates_vi.xtb chromium-123.0.6312.122/components/policy/resources/policy_templates_vi.xtb --- chromium-123.0.6312.105/components/policy/resources/policy_templates_vi.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/policy/resources/policy_templates_vi.xtb 2024-04-10 21:24:49.000000000 +0000 @@ -1970,7 +1970,7 @@ Dùng mức ưu tiên cao cho tiến trình âm thanh Hiển thị lối tắt ứng dụng trong thanh dấu trang Định cấu hình danh sách cho phép cài đặt tiện ích -Bật phím tắt hỗ trợ tiếp cận trên màn hình đăng nhập +Bật lối tắt hỗ trợ tiếp cận trên màn hình đăng nhập Định cấu hình danh sách các ứng dụng và tiện ích buộc phải cài đặt Thời gian chờ cảnh báo trạng thái không sử dụng khi chạy trên nguồn AC Nếu bạn đặt chính sách này thành Bật, các yêu cầu xác thực gnubby sẽ được chuyển tiếp qua proxy trên một đường kết nối máy chủ từ xa. @@ -3316,7 +3316,7 @@ Nếu bạn không đặt chính sách này, thì ban đầu, tính năng chọn để nói sẽ tắt nhưng người dùng có thể bật bất cứ lúc nào. Tất cả -Tắt phím tắt hỗ trợ tiếp cận +Tắt lối tắt hỗ trợ tiếp cận Không cho phép hệ thống gửi các mô-đun WebAssembly trên nhiều nguồn gốc Bật tính năng Hỗ trợ trình duyệt cũ. Định cấu hình hành vi xác thực thông tin đăng nhập @@ -3888,7 +3888,7 @@ Để biết thông tin chi tiết về các mẫu hợp lệ, vui lòng xem tại https://support.google.com/chrome/a?p=url_blocklist_filter_format. Khác -Tắt phím tắt hỗ trợ tiếp cận trên màn hình đăng nhập +Tắt lối tắt hỗ trợ tiếp cận trên màn hình đăng nhập Đặt giá ở bên trái màn hình Kiểm soát khả năng sử dụng đối với người dùng này. @@ -4237,7 +4237,7 @@ Tập lệnh dành cho trình chạy (Trình chạy web, Trình chạy dịch vụ, v.v.) sử dụng tính năng kiểm tra loại MIME nới lỏng. Tập lệnh trình chạy có loại MIME cũ, như , sẽ hoạt động. Không cho phép gửi tên người dùng và tên tệp đến máy in gốc Không cho phép người dùng doanh nghiệp là một phần của đa cấu hình (chính hoặc phụ) -Bật phím tắt hỗ trợ tiếp cận +Bật lối tắt hỗ trợ tiếp cận Cho phép các trang web cuộn đến đoạn văn bản cụ thể qua URL Cho phép tất cả các trang web hiển thị tất cả hình ảnh Chưa đặt chính sách, không cho phép di chuyển dữ liệu và ARC diff -Nru chromium-123.0.6312.105/components/strings/components_strings_es-419.xtb chromium-123.0.6312.122/components/strings/components_strings_es-419.xtb --- chromium-123.0.6312.105/components/strings/components_strings_es-419.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_es-419.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -738,7 +738,7 @@ Continuar 275 × 395 mm Menú para cambio de tamaño -Ingresa el +Ingresa Se bloqueó 1 archivo por la política Muebles de exteriores Carne y mariscos @@ -1444,7 +1444,7 @@ No puedes visitar en este momento porque el sitio web envió credenciales encriptadas que Chromium no puede procesar. Los ataques y errores de red generalmente son temporales, por lo que esta página probablemente funcionará de nuevo más tarde. El texto, el contenido y la URL de la página en la que escribas se enviarán a Google, serán revisados por personas y se usarán para mejorar esta función. No ingreses información personal (como datos médicos o financieros) ni uses esta herramienta en sitios que contengan información privada o sensible. Metal (brillo intenso) -Es posible que los atacantes en intenten engañarte para que realices alguna acción peligrosa, como instalar software o revelar información personal (p. ej., contraseñas, números de teléfono o tarjetas de crédito). Más información +Es posible que los atacantes de intenten engañarte para que realices alguna acción peligrosa, como instalar software o revelar información personal (p. ej., contraseñas, números de teléfono o tarjetas de crédito). Más información Se ignoró porque no se estableció . Salir del modo de pantalla en pantalla No has notificado ningún bloqueo recientemente. Los bloqueos que se hayan producido mientras la función de notificación de bloqueos estaba desactivada no aparecerán en esta página. diff -Nru chromium-123.0.6312.105/components/strings/components_strings_fr-CA.xtb chromium-123.0.6312.122/components/strings/components_strings_fr-CA.xtb --- chromium-123.0.6312.105/components/strings/components_strings_fr-CA.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_fr-CA.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -961,7 +961,7 @@ Effacer le contenu du formulaire souhaite utiliser les informations à votre sujet qui ont été enregistrées Notifications bloquées -Cette URL mène à un site faux +Cette URL mène à un faux site Vous êtes hors ligne Les cyberpirates peuvent essayer de voler vos données à partir de (par exemple, des mots de passe, des messages ou des numéros de carte de crédit). En savoir plus 200 mm x 300 mm diff -Nru chromium-123.0.6312.105/components/strings/components_strings_hy.xtb chromium-123.0.6312.122/components/strings/components_strings_hy.xtb --- chromium-123.0.6312.105/components/strings/components_strings_hy.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_hy.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -2367,7 +2367,7 @@ Մուտք գործեք Chrome, որպեսզի վերջինս կարողանա ստուգել՝ արդյոք դուք այս կայքը բացելու թույլտվություն ունեք։ Ծառայություններ մատուցողներ Ստուգեք սպառման ամիսը և նորից փորձեք -Կառավարել գաղտնաբառերն ու անցաբառերը… +Կառավարել գաղտնաբառերն ու մուտքի բանալիները… Պահված հասցեներ չկան Որոնեք Հարթակի օգտատեր @@ -4257,7 +4257,7 @@ Ինչ տվյալներ են օգտագործվում. Գովազդի ձեր թեմաները հիմնված են ձեր վերջին այցելությունների պատմության վրա, որն այն կայքերի ցանկն է, որոնք դուք այցելել եք այս սարքում Chrome-ի միջոցով։ Տվյալներն ուղարկվեցին ադմինիստրատորի վահանակին Նոր պանակ -Օգտագործել Google հաշվում պահված գաղտնաբառերն ու անցաբառերը +Օգտագործել Google հաշվում պահված գաղտնաբառերն ու մուտքի բանալիները Chrome-ն արգելափակում է՝ ձեր գործողությունները դիտարկիչում հետագծելու նպատակով կայքերի կողմից երրորդ կողմի քուքիների օգտագործումը։ Ստուգեք ստորև ներկայացված տեղեկությունները և ջնջեք անվավեր քարտերը ։ Google Կայքերում արագ կայք ստեղծելու համար սեղմեք Tab, ապա՝ Enter։ @@ -4268,7 +4268,7 @@ Տրվել է տեղադրության տվյալներն օգտագործելու մեկանգամյա թույլտվություն Այս բովանդակությունը կարող է փորձել կեղծ հավելվածներ տեղադրել կամ տվյալներ հավաքել՝ ձեզ հետևելու համար։ Միևնույն է ցուցադրել Բոլոր օգտատերերը -Կառավարել գաղտնաբառերն ու անցաբառերը… +Կառավարել գաղտնաբառերն ու մուտքի բանալիները… Պաշտոնական տարբերակ {COUNT,plural, =0{Ոչինչ չկա}=1{1 տարր}one{# տարր}other{# տարր}} 5 x 8 դյույմ diff -Nru chromium-123.0.6312.105/components/strings/components_strings_it.xtb chromium-123.0.6312.122/components/strings/components_strings_it.xtb --- chromium-123.0.6312.105/components/strings/components_strings_it.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_it.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -1440,7 +1440,7 @@ Al momento non puoi visitare il sito perché tale sito web ha inviato credenziali criptate che Chromium non è riuscito a elaborare. Gli attacchi e gli errori di rete in genere sono temporanei, pertanto è possibile che questa pagina funzioni più tardi. Il testo, i contenuti e l'URL della pagina su cui stai scrivendo verranno inviati a Google, esaminati da persone e utilizzati per migliorare questa funzionalità. Evita di inserire informazioni personali (come dettagli medici o finanziari) o di utilizzare questo strumento su siti che contengono informazioni private o sensibili. Metallo (lucido) -Gli utenti malintenzionati presenti sul sito potrebbero indurti con l'inganno a effettuare operazioni pericolose, come installare software o rivelare informazioni personali (ad esempio password, numeri di telefono o carte di credito). Ulteriori informazioni +Gli utenti malintenzionati presenti sul sito potrebbero indurti con l'inganno a effettuare operazioni pericolose, come installare software o rivelare informazioni personali (ad esempio password, numeri di telefono o carte di credito). Scopri di più Ignorato perché il criterio non è stato configurato. Esci da Picture in picture Non hai segnalato arresti anomali di recente. Quelli che si sono verificati quando la segnalazione degli arresti anomali era disabilitata non verranno visualizzati qui. diff -Nru chromium-123.0.6312.105/components/strings/components_strings_ne.xtb chromium-123.0.6312.122/components/strings/components_strings_ne.xtb --- chromium-123.0.6312.105/components/strings/components_strings_ne.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_ne.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -4252,7 +4252,7 @@ सिरानमा तीन प्वाल फेदको बाइन्ड अहिले लोकेसन प्रयोग गर्ने अनुमति दिइएको छ -यो सामग्रीले आफूलाई अर्कै रूपमा प्रस्तुत गर्ने भ्रामक अनुप्रयोगहरूको स्थापना गर्न वा तपाईंलाई ट्र्याक गर्ने कार्यमा प्रयोग गर्न सकिने डेटाको सङ्कलन गर्ने प्रयास गर्न सक्छ। जे भए पनि देखाउनुहोस् +यो सामग्रीले आफूलाई अर्कै रूपमा प्रस्तुत गर्ने भ्रामक एपहरूको स्थापना गर्न वा तपाईंलाई ट्र्याक गर्ने कार्यमा प्रयोग गर्न सकिने डेटाको सङ्कलन गर्ने प्रयास गर्न सक्छ। जे भए पनि देखाउनुहोस् सबै प्रयोगकर्ताहरू पासवर्ड तथा पासकीहरू व्यवस्थापन गर्नुहोस्… आधिकारिक निर्माण diff -Nru chromium-123.0.6312.105/components/strings/components_strings_pl.xtb chromium-123.0.6312.122/components/strings/components_strings_pl.xtb --- chromium-123.0.6312.105/components/strings/components_strings_pl.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_pl.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -1777,7 +1777,7 @@ Telefon A4x3 Krawędź -Zawsze sprawdzaj, gdy używasz autouzupełniania +Zawsze weryfikuj, gdy używasz autouzupełniania Napisy na żywo wyniki wyszukiwania Pliki cookie () diff -Nru chromium-123.0.6312.105/components/strings/components_strings_sk.xtb chromium-123.0.6312.122/components/strings/components_strings_sk.xtb --- chromium-123.0.6312.105/components/strings/components_strings_sk.xtb 2024-04-02 23:52:36.000000000 +0000 +++ chromium-123.0.6312.122/components/strings/components_strings_sk.xtb 2024-04-10 21:24:50.000000000 +0000 @@ -3298,7 +3298,7 @@ Štítky (bezpečnostné) Tlačidlo Spravovať súbory cookie, ktorého aktivovaním môžete spravovať predvoľby súborov cookie v nastaveniach Chromu Bola vybraná možnosť Odstrániť adresu -Asistent písania +Asistent pri písaní Výtvarné umenie a dizajn Štúdium cudzích jazykov Executive @@ -3468,7 +3468,7 @@ Country hudba Aktualizácia bola dokončená s chybami Prejsť na stránky (nebezpečné) -Asistent písania +Asistent pri písaní Optický disk (vysoký lesk) Súbory, ktoré skopírujete alebo presuniete, sa odošlú službe Google Cloud alebo tretím stranám na analýzu. V rámci toho môžu byť napríklad podrobené kontrole prítomnosti citlivých údajov alebo malvéru a podľa firemných pravidiel môžu byť uložené. Poistenie diff -Nru chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl.cc chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl.cc --- chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl.cc 2024-04-02 23:52:39.000000000 +0000 +++ chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl.cc 2024-04-10 21:24:52.000000000 +0000 @@ -13,7 +13,6 @@ #include "base/command_line.h" #include "base/feature_list.h" #include "base/functional/bind.h" -#include "base/metrics/histogram_functions.h" #include "base/notreached.h" #include "base/strings/stringprintf.h" #include "base/task/bind_post_task.h" @@ -66,26 +65,29 @@ NOTREACHED_NORETURN(); } -int GetOutputBufferSize( - const blink::WebAudioLatencyHint& latency_hint, - int sample_rate, - int device_frames_per_buffer, - media::AudioParameters::HardwareCapabilities hardware_capabilities) { +int GetOutputBufferSize(const blink::WebAudioLatencyHint& latency_hint, + media::AudioLatency::Type latency, + const media::AudioParameters& hardware_params) { + media::AudioParameters::HardwareCapabilities hardware_capabilities = + hardware_params.hardware_capabilities().value_or( + media::AudioParameters::HardwareCapabilities()); + // Adjust output buffer size according to the latency requirement. - switch (latency_hint.Category()) { - case WebAudioLatencyHint::kCategoryInteractive: + switch (latency) { + case media::AudioLatency::Type::kInteractive: return media::AudioLatency::GetInteractiveBufferSize( - device_frames_per_buffer); - case WebAudioLatencyHint::kCategoryBalanced: - return media::AudioLatency::GetRtcBufferSize(sample_rate, - device_frames_per_buffer); - case WebAudioLatencyHint::kCategoryPlayback: + hardware_params.frames_per_buffer()); + case media::AudioLatency::Type::kRtc: + return media::AudioLatency::GetRtcBufferSize( + hardware_params.sample_rate(), hardware_params.frames_per_buffer()); + case media::AudioLatency::Type::kPlayback: return media::AudioLatency::GetHighLatencyBufferSize( - sample_rate, device_frames_per_buffer); - case WebAudioLatencyHint::kCategoryExact: + hardware_params.sample_rate(), hardware_params.frames_per_buffer()); + case media::AudioLatency::Type::kExactMS: return media::AudioLatency::GetExactBufferSize( - base::Seconds(latency_hint.Seconds()), sample_rate, - device_frames_per_buffer, hardware_capabilities.min_frames_per_buffer, + base::Seconds(latency_hint.Seconds()), hardware_params.sample_rate(), + hardware_params.frames_per_buffer(), + hardware_capabilities.min_frames_per_buffer, hardware_capabilities.max_frames_per_buffer, media::limits::kMaxWebAudioBufferSize); default: @@ -103,39 +105,6 @@ .output_params(); } -void ReportUma(const media::AudioParameters& device_params, - const media::AudioParameters& sink_params, - bool sample_rate_provided) { - base::UmaHistogramSparse("WebAudio.AudioDestination.HardwareBufferSize", - device_params.frames_per_buffer()); - - // The actual callback size used. - base::UmaHistogramSparse("WebAudio.AudioDestination.CallbackBufferSize", - sink_params.frames_per_buffer()); - - base::UmaHistogramSparse("WebAudio.AudioContext.HardwareSampleRate", - device_params.sample_rate()); - - // Record the selected sample rate and ratio if the sample rate was given. The - // ratio is recorded as a percentage, rounded to the nearest percent. - if (sample_rate_provided) { - // The actual supplied `context_sample_rate` is probably a small set - // including 44100, 48000, 22050, and 2400 Hz. Other valid values range - // from 3000 to 384000 Hz, but are not expected to be used much. - base::UmaHistogramSparse("WebAudio.AudioContextOptions.sampleRate", - sink_params.sample_rate()); - - int32_t scale_factor = static_cast( - (sink_params.sample_rate() * 100 + 0.5) / device_params.sample_rate()); - - // From the expected values above and the common HW sample rates, we expect - // the most common ratios to be the set 0.5, 44100/48000, and 48000/44100. - // Other values are possible but seem unlikely. - base::UmaHistogramSparse("WebAudio.AudioContextOptions.sampleRateRatio", - scale_factor); - } -} - scoped_refptr GetNullAudioSink( const scoped_refptr& task_runner) { return base::MakeRefCounted(task_runner); @@ -145,22 +114,22 @@ std::unique_ptr RendererWebAudioDeviceImpl::Create( const WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayoutConfig channel_layout_config, + media::ChannelLayout layout, + int number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* callback) { return std::unique_ptr( - new RendererWebAudioDeviceImpl(sink_descriptor, channel_layout_config, - latency_hint, sample_rate, callback, - base::BindOnce(&GetOutputDeviceParameters), - base::BindRepeating(&GetNullAudioSink))); + new RendererWebAudioDeviceImpl( + sink_descriptor, layout, number_of_output_channels, latency_hint, + callback, base::BindOnce(&GetOutputDeviceParameters), + base::BindRepeating(&GetNullAudioSink))); } RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl( const WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayoutConfig channel_layout_config, + media::ChannelLayout layout, + int number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* callback, OutputDeviceParamsCallback device_params_cb, CreateSilentSinkCallback create_silent_sink_cb) @@ -185,43 +154,37 @@ break; } - media::AudioParameters device_params = + original_sink_params_ = std::move(device_params_cb).Run(frame_token_, device_id); // On systems without audio hardware the returned parameters may be invalid. // In which case just choose whatever we want for the fake device. - if (!device_params.IsValid()) { - // TODO(https://crbug.com/1522759): Bubble up this sink failure to the JS - // API surface. - device_params.Reset(media::AudioParameters::AUDIO_FAKE, - media::ChannelLayoutConfig::Stereo(), 48000, 480); - } - SendLogMessage( - base::StringPrintf("%s => (hardware_params=[%s])", __func__, - device_params.AsHumanReadableString().c_str())); - - max_channel_count_ = device_params.channels(); - - const int sink_sample_rate = - sample_rate ? *sample_rate : device_params.sample_rate(); - - const int output_buffer_size = GetOutputBufferSize( - latency_hint_, sink_sample_rate, device_params.frames_per_buffer(), - device_params.hardware_capabilities().value_or( - media::AudioParameters::HardwareCapabilities())); - - sink_params_.Reset(device_params.format(), channel_layout_config, - sink_sample_rate, output_buffer_size); + if (!original_sink_params_.IsValid()) { + original_sink_params_.Reset(media::AudioParameters::AUDIO_FAKE, + media::ChannelLayoutConfig::Stereo(), 48000, + 480); + } + SendLogMessage(base::StringPrintf( + "%s => (hardware_params=[%s])", __func__, + original_sink_params_.AsHumanReadableString().c_str())); + + const media::AudioLatency::Type latency = + AudioDeviceFactory::GetSourceLatencyType( + GetLatencyHintSourceType(latency_hint_.Category())); + + const int output_buffer_size = + GetOutputBufferSize(latency_hint_, latency, original_sink_params_); + DCHECK_NE(0, output_buffer_size); + + current_sink_params_.Reset( + original_sink_params_.format(), {layout, number_of_output_channels}, + original_sink_params_.sample_rate(), output_buffer_size); // Specify the latency info to be passed to the browser side. - sink_params_.set_latency_tag(AudioDeviceFactory::GetSourceLatencyType( - GetLatencyHintSourceType(latency_hint_.Category()))); - - CHECK(sink_params_.IsValid()); - + current_sink_params_.set_latency_tag(latency); SendLogMessage( base::StringPrintf("%s => (sink_params=[%s])", __func__, - sink_params_.AsHumanReadableString().c_str())); + current_sink_params_.AsHumanReadableString().c_str())); if (base::FeatureList::IsEnabled(media::kLiveCaptionWebAudio)) { auto* web_local_frame = WebLocalFrame::FromFrameToken(frame_token_); @@ -229,12 +192,10 @@ speech_recognition_client_ = web_local_frame->Client()->CreateSpeechRecognitionClient(); if (speech_recognition_client_) { - speech_recognition_client_->Reconfigure(sink_params_); + speech_recognition_client_->Reconfigure(current_sink_params_); } } } - - ReportUma(device_params, sink_params_, sample_rate.has_value()); } RendererWebAudioDeviceImpl::~RendererWebAudioDeviceImpl() { @@ -289,15 +250,15 @@ } double RendererWebAudioDeviceImpl::SampleRate() { - return sink_params_.sample_rate(); + return current_sink_params_.sample_rate(); } int RendererWebAudioDeviceImpl::FramesPerBuffer() { - return sink_params_.frames_per_buffer(); + return current_sink_params_.frames_per_buffer(); } int RendererWebAudioDeviceImpl::MaxChannelCount() { - return max_channel_count_; + return original_sink_params_.channels(); } void RendererWebAudioDeviceImpl::SetDetectSilence( @@ -373,13 +334,13 @@ // since it has special connotations for Blink and garbage collection. // Timeout value chosen to be highly unlikely in the normal case. silent_sink_suspender_ = std::make_unique( - this, base::Seconds(30), sink_params_, sink_, + this, base::Seconds(30), current_sink_params_, sink_, GetSilentSinkTaskRunner()); - sink_->Initialize(sink_params_, silent_sink_suspender_.get()); + sink_->Initialize(current_sink_params_, silent_sink_suspender_.get()); break; case blink::WebAudioSinkDescriptor::kSilent: sink_ = create_silent_sink_cb_.Run(GetSilentSinkTaskRunner()); - sink_->Initialize(sink_params_, this); + sink_->Initialize(current_sink_params_, this); break; } } diff -Nru chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl.h chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl.h --- chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl.h 2024-04-02 23:52:39.000000000 +0000 +++ chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl.h 2024-04-10 21:24:52.000000000 +0000 @@ -47,9 +47,9 @@ static std::unique_ptr Create( const blink::WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayoutConfig channel_layout_config, + media::ChannelLayout layout, + int number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* webaudio_callback); // blink::WebAudioDevice implementation. @@ -77,7 +77,7 @@ scoped_refptr task_runner); const media::AudioParameters& get_sink_params_for_testing() { - return sink_params_; + return current_sink_params_; } // Creates a new sink and return its device status. If the status is OK, @@ -96,9 +96,9 @@ RendererWebAudioDeviceImpl( const blink::WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayoutConfig channel_layout_config, + media::ChannelLayout layout, + int number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* webaudio_callback, OutputDeviceParamsCallback device_params_cb, CreateSilentSinkCallback create_silent_sink_cb); @@ -114,10 +114,10 @@ // This is queried from the underlying sink device and then modified according // to the WebAudio renderer's needs. - media::AudioParameters sink_params_; - - // Maximum channel count. - int max_channel_count_; + media::AudioParameters current_sink_params_; + // This is the unmodified parameters obtained from the underlying sink device. + // Used to provide the original hardware capacity. + media::AudioParameters original_sink_params_; // To cache the device identifier for sink creation. const blink::WebAudioSinkDescriptor sink_descriptor_; diff -Nru chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc --- chromium-123.0.6312.105/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc 2024-04-02 23:52:39.000000000 +0000 +++ chromium-123.0.6312.122/content/renderer/media/renderer_webaudiodevice_impl_unittest.cc 2024-04-10 21:24:52.000000000 +0000 @@ -78,16 +78,16 @@ public: RendererWebAudioDeviceImplUnderTest( const blink::WebAudioSinkDescriptor& sink_descriptor, - media::ChannelLayoutConfig channel_layout_config, + media::ChannelLayout layout, + int number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* callback, CreateSilentSinkCallback silent_sink_callback) : RendererWebAudioDeviceImpl( sink_descriptor, - channel_layout_config, + layout, + number_of_output_channels, latency_hint, - sample_rate, callback, base::BindOnce(&MockGetOutputDeviceParameters), std::move(silent_sink_callback)) {} @@ -124,9 +124,7 @@ blink::WebAudioSinkDescriptor sink_descriptor( blink::WebString::FromUTF8(std::string()), kFrameToken); webaudio_device_ = std::make_unique( - sink_descriptor, - media::ChannelLayoutConfig(media::CHANNEL_LAYOUT_MONO, 1), latencyHint, - user_context_sample_rate_, this, + sink_descriptor, media::CHANNEL_LAYOUT_MONO, 1, latencyHint, this, base::BindRepeating( &RendererWebAudioDeviceImplTest::CreateMockSilentSink, // Guaranteed to be valid because |this| owns |webaudio_device_| and @@ -140,10 +138,10 @@ blink::WebAudioSinkDescriptor sink_descriptor( blink::WebString::FromUTF8(std::string()), kFrameToken); webaudio_device_ = std::make_unique( - sink_descriptor, media::ChannelLayoutConfig(layout, channels), + sink_descriptor, layout, channels, blink::WebAudioLatencyHint( blink::WebAudioLatencyHint::kCategoryInteractive), - user_context_sample_rate_, this, + this, base::BindRepeating( &RendererWebAudioDeviceImplTest::CreateMockSilentSink, // Guaranteed to be valid because |this| owns |webaudio_device_| and @@ -155,11 +153,10 @@ void SetupDevice(blink::WebAudioSinkDescriptor sink_descriptor) { webaudio_device_ = std::make_unique( - sink_descriptor, - media::ChannelLayoutConfig(media::CHANNEL_LAYOUT_MONO, 1), + sink_descriptor, media::CHANNEL_LAYOUT_MONO, 1, blink::WebAudioLatencyHint( blink::WebAudioLatencyHint::kCategoryInteractive), - user_context_sample_rate_, this, + this, base::BindRepeating( &RendererWebAudioDeviceImplTest::CreateMockSilentSink, // Guaranteed to be valid because |this| owns |webaudio_device_| and @@ -181,21 +178,9 @@ std::unique_ptr webaudio_device_; base::test::SingleThreadTaskEnvironment task_environment_; scoped_refptr mock_audio_renderer_sink_; - std::optional user_context_sample_rate_; }; -class RendererWebAudioDeviceImplWithSampleRateTest - : public RendererWebAudioDeviceImplTest, - public testing::WithParamInterface { - protected: - void SetUp() override { - if (GetParam()) { - user_context_sample_rate_ = static_cast(GetParam()); - } - } -}; - -TEST_P(RendererWebAudioDeviceImplWithSampleRateTest, ChannelLayout) { +TEST_F(RendererWebAudioDeviceImplTest, ChannelLayout) { for (int ch = 1; ch < static_cast(media::limits::kMaxChannels); ++ch) { SCOPED_TRACE(base::StringPrintf("ch == %d", ch)); @@ -212,94 +197,86 @@ } } -TEST_P(RendererWebAudioDeviceImplWithSampleRateTest, TestLatencyHintValues) { +TEST_F(RendererWebAudioDeviceImplTest, TestLatencyHintValues) { blink::WebAudioLatencyHint interactiveLatencyHint( blink::WebAudioLatencyHint::kCategoryInteractive); - int context_sample_rate = - user_context_sample_rate_.value_or(kHardwareSampleRate); int interactiveBufferSize = media::AudioLatency::GetInteractiveBufferSize(kHardwareBufferSize); SetupDevice(interactiveLatencyHint); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), interactiveBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), interactiveBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), interactiveBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), interactiveBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), interactiveBufferSize); blink::WebAudioLatencyHint balancedLatencyHint( blink::WebAudioLatencyHint::kCategoryBalanced); int balancedBufferSize = media::AudioLatency::GetRtcBufferSize( - context_sample_rate, kHardwareBufferSize); + kHardwareSampleRate, kHardwareBufferSize); SetupDevice(balancedLatencyHint); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), balancedBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), balancedBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), balancedBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), balancedBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), balancedBufferSize); blink::WebAudioLatencyHint playbackLatencyHint( blink::WebAudioLatencyHint::kCategoryPlayback); int playbackBufferSize = media::AudioLatency::GetHighLatencyBufferSize( - context_sample_rate, kHardwareBufferSize); + kHardwareSampleRate, kHardwareBufferSize); SetupDevice(playbackLatencyHint); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), playbackBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), playbackBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), playbackBufferSize); webaudio_device_->Start(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), playbackBufferSize); webaudio_device_->Stop(); - EXPECT_EQ(webaudio_device_->SampleRate(), context_sample_rate); + EXPECT_EQ(webaudio_device_->SampleRate(), kHardwareSampleRate); EXPECT_EQ(webaudio_device_->FramesPerBuffer(), playbackBufferSize); EXPECT_GE(playbackBufferSize, balancedBufferSize); EXPECT_GE(balancedBufferSize, interactiveBufferSize); } -INSTANTIATE_TEST_SUITE_P( - All, - RendererWebAudioDeviceImplWithSampleRateTest, - // User provided sample rate; 0 means no sample rate provided. - testing::ValuesIn({0, 16000, 44100, 48000, 96000})); - TEST_F(RendererWebAudioDeviceImplTest, NullSink_RenderWorks) { { InSequence s; diff -Nru chromium-123.0.6312.105/content/renderer/renderer_blink_platform_impl.cc chromium-123.0.6312.122/content/renderer/renderer_blink_platform_impl.cc --- chromium-123.0.6312.105/content/renderer/renderer_blink_platform_impl.cc 2024-04-02 23:52:39.000000000 +0000 +++ chromium-123.0.6312.122/content/renderer/renderer_blink_platform_impl.cc 2024-04-10 21:24:52.000000000 +0000 @@ -71,7 +71,6 @@ #include "gpu/config/gpu_info.h" #include "gpu/ipc/client/gpu_channel_host.h" #include "media/audio/audio_output_device.h" -#include "media/base/limits.h" #include "media/base/media_permission.h" #include "media/base/media_switches.h" #include "media/filters/stream_parser_factory.h" @@ -458,7 +457,6 @@ const WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* callback) { // The `number_of_output_channels` does not manifest the actual channel // layout of the audio output device. We use the best guess to the channel @@ -471,15 +469,9 @@ layout = media::CHANNEL_LAYOUT_DISCRETE; } - if (sample_rate && !(media::limits::kMinSampleRate <= *sample_rate && - *sample_rate <= media::limits::kMaxSampleRate)) { - return nullptr; - } - - return RendererWebAudioDeviceImpl::Create( - sink_descriptor, - media::ChannelLayoutConfig(layout, number_of_output_channels), - latency_hint, sample_rate, callback); + return RendererWebAudioDeviceImpl::Create(sink_descriptor, layout, + number_of_output_channels, + latency_hint, callback); } bool RendererBlinkPlatformImpl::DecodeAudioFileData( diff -Nru chromium-123.0.6312.105/content/renderer/renderer_blink_platform_impl.h chromium-123.0.6312.122/content/renderer/renderer_blink_platform_impl.h --- chromium-123.0.6312.105/content/renderer/renderer_blink_platform_impl.h 2024-04-02 23:52:39.000000000 +0000 +++ chromium-123.0.6312.122/content/renderer/renderer_blink_platform_impl.h 2024-04-10 21:24:52.000000000 +0000 @@ -126,7 +126,6 @@ const blink::WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const blink::WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback* callback) override; bool DecodeAudioFileData(blink::WebAudioBus* destination_bus, const char* audio_file_data, diff -Nru chromium-123.0.6312.105/debian/changelog chromium-123.0.6312.122/debian/changelog --- chromium-123.0.6312.105/debian/changelog 2024-04-02 22:28:18.000000000 +0000 +++ chromium-123.0.6312.122/debian/changelog 2024-04-11 01:21:05.000000000 +0000 @@ -1,3 +1,14 @@ +chromium (123.0.6312.122-1~deb12u1) bookworm-security; urgency=high + + * New upstream security release. + - CVE-2024-3157: Out of bounds write in Compositing. + Reported by DarkNavy. + - CVE-2024-3516: Heap buffer overflow in ANGLE. + Reported by Bao (zx) Pham and Toan (suto) Pham of Qrious Secure. + - CVE-2024-3515: Use after free in Dawn. Reported by wgslfuzz. + + -- Andres Salomon Wed, 10 Apr 2024 21:21:05 -0400 + chromium (123.0.6312.105-1~deb12u1) bookworm-security; urgency=high * New upstream security release. diff -Nru chromium-123.0.6312.105/gpu/config/gpu_lists_version.h chromium-123.0.6312.122/gpu/config/gpu_lists_version.h --- chromium-123.0.6312.105/gpu/config/gpu_lists_version.h 2024-04-02 23:55:00.000000000 +0000 +++ chromium-123.0.6312.122/gpu/config/gpu_lists_version.h 2024-04-10 21:27:07.000000000 +0000 @@ -3,6 +3,6 @@ #ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_ #define GPU_CONFIG_GPU_LISTS_VERSION_H_ -#define GPU_LISTS_VERSION "399174dbe6eff0f59de9a6096129c0c827002b3a" +#define GPU_LISTS_VERSION "31f8248cdd90acbac59f700b603fed0b5967ca50" #endif // GPU_CONFIG_GPU_LISTS_VERSION_H_ diff -Nru chromium-123.0.6312.105/gpu/webgpu/DAWN_VERSION chromium-123.0.6312.122/gpu/webgpu/DAWN_VERSION --- chromium-123.0.6312.105/gpu/webgpu/DAWN_VERSION 2024-04-02 23:55:01.000000000 +0000 +++ chromium-123.0.6312.122/gpu/webgpu/DAWN_VERSION 2024-04-10 21:27:08.000000000 +0000 @@ -1 +1 @@ -c8cf7442e43c1088c839eba17117b1ac29bf4e28 \ No newline at end of file +512c28cc16c40d32973a60b44ae2ffd1ee077195 \ No newline at end of file diff -Nru chromium-123.0.6312.105/infra/config/generated/testing/variants.pyl chromium-123.0.6312.122/infra/config/generated/testing/variants.pyl --- chromium-123.0.6312.105/infra/config/generated/testing/variants.pyl 2024-04-02 23:52:41.000000000 +0000 +++ chromium-123.0.6312.122/infra/config/generated/testing/variants.pyl 2024-04-10 21:24:54.000000000 +0000 @@ -291,32 +291,32 @@ }, 'LACROS_VERSION_SKEW_BETA': { 'identifier': 'Lacros version skew testing ash beta', - 'description': 'Run with ash-chrome version 123.0.6312.79', + 'description': 'Run with ash-chrome version 124.0.6367.24', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v123.0.6312.79', - 'revision': 'version:123.0.6312.79', + 'location': 'lacros_version_skew_tests_v124.0.6367.24', + 'revision': 'version:124.0.6367.24', }, ], }, }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 125.0.6391.0', + 'description': 'Run with ash-chrome version 125.0.6405.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v125.0.6391.0', - 'revision': 'version:125.0.6391.0', + 'location': 'lacros_version_skew_tests_v125.0.6405.0', + 'revision': 'version:125.0.6405.0', }, ], }, @@ -339,16 +339,16 @@ }, 'LACROS_VERSION_SKEW_STABLE': { 'identifier': 'Lacros version skew testing ash stable', - 'description': 'Run with ash-chrome version 122.0.6261.137', + 'description': 'Run with ash-chrome version 123.0.6312.94', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v122.0.6261.137', - 'revision': 'version:122.0.6261.137', + 'location': 'lacros_version_skew_tests_v123.0.6312.94', + 'revision': 'version:123.0.6312.94', }, ], }, diff -Nru chromium-123.0.6312.105/infra/config/targets/lacros-version-skew-variants.json chromium-123.0.6312.122/infra/config/targets/lacros-version-skew-variants.json --- chromium-123.0.6312.105/infra/config/targets/lacros-version-skew-variants.json 2024-04-02 23:52:41.000000000 +0000 +++ chromium-123.0.6312.122/infra/config/targets/lacros-version-skew-variants.json 2024-04-10 21:24:54.000000000 +0000 @@ -1,16 +1,16 @@ { "LACROS_VERSION_SKEW_CANARY": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "identifier": "Lacros version skew testing ash canary", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ] } @@ -33,32 +33,32 @@ }, "LACROS_VERSION_SKEW_BETA": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "identifier": "Lacros version skew testing ash beta", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ] } }, "LACROS_VERSION_SKEW_STABLE": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "identifier": "Lacros version skew testing ash stable", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ] } diff -Nru chromium-123.0.6312.105/net/http/transport_security_state_static.pins chromium-123.0.6312.122/net/http/transport_security_state_static.pins --- chromium-123.0.6312.105/net/http/transport_security_state_static.pins 2024-04-02 23:52:44.000000000 +0000 +++ chromium-123.0.6312.122/net/http/transport_security_state_static.pins 2024-04-10 21:24:57.000000000 +0000 @@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2024-04-01 12:55 UTC +# Last updated: 2024-04-08 12:56 UTC PinsListTimestamp -1711976134 +1712580974 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= diff -Nru chromium-123.0.6312.105/net/http/transport_security_state_static_pins.json chromium-123.0.6312.122/net/http/transport_security_state_static_pins.json --- chromium-123.0.6312.105/net/http/transport_security_state_static_pins.json 2024-04-02 23:52:44.000000000 +0000 +++ chromium-123.0.6312.122/net/http/transport_security_state_static_pins.json 2024-04-10 21:24:57.000000000 +0000 @@ -31,7 +31,7 @@ // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets' // refer to, and the timestamp at which the pins list was last updated. // -// Last updated: 2024-04-01 12:55 UTC +// Last updated: 2024-04-08 12:56 UTC // { "pinsets": [ diff -Nru chromium-123.0.6312.105/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc chromium-123.0.6312.122/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc --- chromium-123.0.6312.105/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc 2024-04-02 23:52:45.000000000 +0000 +++ chromium-123.0.6312.122/services/viz/public/cpp/compositing/bitmap_in_shared_memory_mojom_traits.cc 2024-04-10 21:24:58.000000000 +0000 @@ -105,6 +105,10 @@ if (!mapping_ptr->IsValid()) return false; + if (mapping_ptr->size() < image_info.computeByteSize(data.row_bytes())) { + return false; + } + if (!sk_bitmap->installPixels(image_info, mapping_ptr->memory(), data.row_bytes(), &DeleteSharedMemoryMapping, mapping_ptr.get())) { diff -Nru chromium-123.0.6312.105/testing/buildbot/chromium.chromiumos.json chromium-123.0.6312.122/testing/buildbot/chromium.chromiumos.json --- chromium-123.0.6312.105/testing/buildbot/chromium.chromiumos.json 2024-04-02 23:52:46.000000000 +0000 +++ chromium-123.0.6312.122/testing/buildbot/chromium.chromiumos.json 2024-04-10 21:24:59.000000000 +0000 @@ -5283,9 +5283,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5295,8 +5295,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -5313,9 +5313,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5325,8 +5325,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -5373,9 +5373,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5385,8 +5385,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -5439,9 +5439,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5451,8 +5451,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -5469,9 +5469,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5481,8 +5481,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -5529,9 +5529,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5541,8 +5541,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { diff -Nru chromium-123.0.6312.105/testing/buildbot/chromium.coverage.json chromium-123.0.6312.122/testing/buildbot/chromium.coverage.json --- chromium-123.0.6312.105/testing/buildbot/chromium.coverage.json 2024-04-02 23:52:46.000000000 +0000 +++ chromium-123.0.6312.122/testing/buildbot/chromium.coverage.json 2024-04-10 21:24:59.000000000 +0000 @@ -20435,9 +20435,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20447,8 +20447,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -20464,9 +20464,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20476,8 +20476,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -20522,9 +20522,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20534,8 +20534,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -20585,9 +20585,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20597,8 +20597,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -20614,9 +20614,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20626,8 +20626,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -20672,9 +20672,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20684,8 +20684,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { diff -Nru chromium-123.0.6312.105/testing/buildbot/chromium.fyi.json chromium-123.0.6312.122/testing/buildbot/chromium.fyi.json --- chromium-123.0.6312.105/testing/buildbot/chromium.fyi.json 2024-04-02 23:52:46.000000000 +0000 +++ chromium-123.0.6312.122/testing/buildbot/chromium.fyi.json 2024-04-10 21:24:59.000000000 +0000 @@ -41436,9 +41436,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41447,8 +41447,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -41465,9 +41465,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41476,8 +41476,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -41523,9 +41523,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41534,8 +41534,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -41586,9 +41586,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41597,8 +41597,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -41615,9 +41615,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41626,8 +41626,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -41673,9 +41673,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41684,8 +41684,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -42959,9 +42959,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -42971,8 +42971,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -42989,9 +42989,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43001,8 +43001,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -43049,9 +43049,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43061,8 +43061,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -43115,9 +43115,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43127,8 +43127,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -43145,9 +43145,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43157,8 +43157,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -43205,9 +43205,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43217,8 +43217,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -44471,9 +44471,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44482,8 +44482,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -44500,9 +44500,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44511,8 +44511,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -44558,9 +44558,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44569,8 +44569,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -44621,9 +44621,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44632,8 +44632,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -44650,9 +44650,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44661,8 +44661,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -44708,9 +44708,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44719,8 +44719,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { diff -Nru chromium-123.0.6312.105/testing/buildbot/chromium.memory.json chromium-123.0.6312.122/testing/buildbot/chromium.memory.json --- chromium-123.0.6312.105/testing/buildbot/chromium.memory.json 2024-04-02 23:52:46.000000000 +0000 +++ chromium-123.0.6312.122/testing/buildbot/chromium.memory.json 2024-04-10 21:24:59.000000000 +0000 @@ -16474,12 +16474,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16489,8 +16489,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -16507,12 +16507,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16522,8 +16522,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -16573,12 +16573,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16588,8 +16588,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { @@ -16650,12 +16650,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 123.0.6312.79", + "description": "Run with ash-chrome version 124.0.6367.24", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16665,8 +16665,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v123.0.6312.79", - "revision": "version:123.0.6312.79" + "location": "lacros_version_skew_tests_v124.0.6367.24", + "revision": "version:124.0.6367.24" } ], "dimensions": { @@ -16683,12 +16683,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 125.0.6391.0", + "description": "Run with ash-chrome version 125.0.6405.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16698,8 +16698,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v125.0.6391.0", - "revision": "version:125.0.6391.0" + "location": "lacros_version_skew_tests_v125.0.6405.0", + "revision": "version:125.0.6405.0" } ], "dimensions": { @@ -16749,12 +16749,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 122.0.6261.137", + "description": "Run with ash-chrome version 123.0.6312.94", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16764,8 +16764,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v122.0.6261.137", - "revision": "version:122.0.6261.137" + "location": "lacros_version_skew_tests_v123.0.6312.94", + "revision": "version:123.0.6312.94" } ], "dimensions": { diff -Nru chromium-123.0.6312.105/testing/buildbot/variants.pyl chromium-123.0.6312.122/testing/buildbot/variants.pyl --- chromium-123.0.6312.105/testing/buildbot/variants.pyl 2024-04-02 23:52:46.000000000 +0000 +++ chromium-123.0.6312.122/testing/buildbot/variants.pyl 2024-04-10 21:24:59.000000000 +0000 @@ -291,32 +291,32 @@ }, 'LACROS_VERSION_SKEW_BETA': { 'identifier': 'Lacros version skew testing ash beta', - 'description': 'Run with ash-chrome version 123.0.6312.79', + 'description': 'Run with ash-chrome version 124.0.6367.24', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.79/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v124.0.6367.24/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v123.0.6312.79', - 'revision': 'version:123.0.6312.79', + 'location': 'lacros_version_skew_tests_v124.0.6367.24', + 'revision': 'version:124.0.6367.24', }, ], }, }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 125.0.6391.0', + 'description': 'Run with ash-chrome version 125.0.6405.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6391.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v125.0.6405.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v125.0.6391.0', - 'revision': 'version:125.0.6391.0', + 'location': 'lacros_version_skew_tests_v125.0.6405.0', + 'revision': 'version:125.0.6405.0', }, ], }, @@ -339,16 +339,16 @@ }, 'LACROS_VERSION_SKEW_STABLE': { 'identifier': 'Lacros version skew testing ash stable', - 'description': 'Run with ash-chrome version 122.0.6261.137', + 'description': 'Run with ash-chrome version 123.0.6312.94', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v122.0.6261.137/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v123.0.6312.94/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v122.0.6261.137', - 'revision': 'version:122.0.6261.137', + 'location': 'lacros_version_skew_tests_v123.0.6312.94', + 'revision': 'version:123.0.6312.94', }, ], }, diff -Nru chromium-123.0.6312.105/third_party/angle/src/compiler/translator/ParseContext.cpp chromium-123.0.6312.122/third_party/angle/src/compiler/translator/ParseContext.cpp --- chromium-123.0.6312.105/third_party/angle/src/compiler/translator/ParseContext.cpp 2024-04-02 23:54:10.000000000 +0000 +++ chromium-123.0.6312.122/third_party/angle/src/compiler/translator/ParseContext.cpp 2024-04-10 21:26:13.000000000 +0000 @@ -34,27 +34,39 @@ const int kWebGLMaxStructNesting = 4; -bool ContainsSampler(const TStructure *structType); +struct IsSamplerFunc +{ + bool operator()(TBasicType type) { return IsSampler(type); } +}; +struct IsOpaqueFunc +{ + bool operator()(TBasicType type) { return IsOpaqueType(type); } +}; + +template +bool ContainsOpaque(const TStructure *structType); -bool ContainsSampler(const TType &type) +template +bool ContainsOpaque(const TType &type) { - if (IsSampler(type.getBasicType())) + if (OpaqueFunc{}(type.getBasicType())) { return true; } if (type.getBasicType() == EbtStruct) { - return ContainsSampler(type.getStruct()); + return ContainsOpaque(type.getStruct()); } return false; } -bool ContainsSampler(const TStructure *structType) +template +bool ContainsOpaque(const TStructure *structType) { for (const auto &field : structType->fields()) { - if (ContainsSampler(*field->type())) + if (ContainsOpaque(*field->type())) return true; } return false; @@ -1120,7 +1132,7 @@ { if (pType.type == EbtStruct) { - if (ContainsSampler(pType.userDef)) + if (ContainsOpaque(pType.userDef)) { std::stringstream reasonStream = sh::InitializeStream(); reasonStream << reason << " (structure contains a sampler)"; @@ -4994,12 +5006,9 @@ { TField *field = (*fieldList)[memberIndex]; TType *fieldType = field->type(); - if (IsOpaqueType(fieldType->getBasicType())) + if (ContainsOpaque(*fieldType)) { - std::string reason("unsupported type - "); - reason += fieldType->getBasicString(); - reason += " types are not allowed in interface blocks"; - error(field->line(), reason.c_str(), fieldType->getBasicString()); + error(field->line(), "Opaque types are not allowed in interface blocks", blockName); } const TQualifier qualifier = fieldType->getQualifier(); diff -Nru chromium-123.0.6312.105/third_party/angle/src/tests/gl_tests/GLSLTest.cpp chromium-123.0.6312.122/third_party/angle/src/tests/gl_tests/GLSLTest.cpp --- chromium-123.0.6312.105/third_party/angle/src/tests/gl_tests/GLSLTest.cpp 2024-04-02 23:54:10.000000000 +0000 +++ chromium-123.0.6312.122/third_party/angle/src/tests/gl_tests/GLSLTest.cpp 2024-04-10 21:26:14.000000000 +0000 @@ -6716,7 +6716,34 @@ gl_FragColor = vec4(f(us), 0, 0, 1); })"; - CompileShader(GL_FRAGMENT_SHADER, kFS); + GLuint fs = CompileShader(GL_FRAGMENT_SHADER, kFS); + EXPECT_NE(fs, 0u); + ASSERT_GL_NO_ERROR(); +} + +// Test that structs with samplers are not allowed in interface blocks. This is forbidden per +// GLES3: +// +// > Types and declarators are the same as for other uniform variable declarations outside blocks, +// > with these exceptions: +// > * opaque types are not allowed +TEST_P(GLSLTest_ES3, StructWithSamplersDisallowedInInterfaceBlock) +{ + const char kFS[] = R"(#version 300 es +precision mediump float; +struct S { sampler2D samp; bool b; }; + +layout(std140) uniform Buffer { S s; } buffer; + +out vec4 color; + +void main() +{ + color = texture(buffer.s.samp, vec2(0)); +})"; + + GLuint fs = CompileShader(GL_FRAGMENT_SHADER, kFS); + EXPECT_EQ(fs, 0u); ASSERT_GL_NO_ERROR(); } @@ -18430,6 +18457,116 @@ EXPECT_EQ(0u, shader); } +// Same as TooManyFieldsInStruct, but with samplers in the struct. +TEST_P(GLSLTest_ES3, TooManySamplerFieldsInStruct) +{ + std::ostringstream fs; + fs << R"(#version 300 es +precision highp float; +struct TooManyFields +{ +)"; + for (uint32_t i = 0; i < (1 << 16); ++i) + { + fs << " sampler2D field" << i << ";\n"; + } + fs << R"(}; +uniform TooManyFields s; +out vec4 color; +void main() { + color = texture(s.field0, vec2(0)); +})"; + + GLuint shader = CompileShader(GL_FRAGMENT_SHADER, fs.str().c_str()); + EXPECT_EQ(0u, shader); +} + +// More complex variation of ManySamplerFieldsInStruct. This one compiles fine. +TEST_P(GLSLTest_ES3, ManySamplerFieldsInStructComplex) +{ + // D3D and OpenGL may be more restrictive about this many samplers. + ANGLE_SKIP_TEST_IF(IsD3D() || IsOpenGL()); + + std::ostringstream fs; + fs << R"(#version 300 es +precision highp float; + +struct X { + mediump sampler2D a[0xf00]; + mediump sampler2D b[0xf00]; + mediump sampler2D c[0xf000]; + mediump sampler2D d[0xf00]; +}; + +struct Y { + X s1; + mediump sampler2D a[0xf00]; + mediump sampler2D b[0xf000]; + mediump sampler2D c[0x14000]; +}; + +struct S { + Y s1; +}; + +struct structBuffer { S s; }; + +uniform structBuffer b; + +out vec4 color; +void main() +{ + color = texture(b.s.s1.s1.c[0], vec2(0)); +})"; + + GLuint shader = CompileShader(GL_FRAGMENT_SHADER, fs.str().c_str()); + EXPECT_NE(0u, shader); +} + +// Make sure a large array of samplers works. +TEST_P(GLSLTest, ManySamplers) +{ + // D3D and OpenGL may be more restrictive about this many samplers. + ANGLE_SKIP_TEST_IF(IsD3D() || IsOpenGL()); + + std::ostringstream fs; + fs << R"(precision highp float; + +uniform mediump sampler2D c[0x12000]; + +void main() +{ + gl_FragColor = texture2D(c[0], vec2(0)); +})"; + + GLuint shader = CompileShader(GL_FRAGMENT_SHADER, fs.str().c_str()); + EXPECT_NE(0u, shader); +} + +// Make sure a large array of samplers works when declared in a struct. +TEST_P(GLSLTest, ManySamplersInStruct) +{ + // D3D and OpenGL may be more restrictive about this many samplers. + ANGLE_SKIP_TEST_IF(IsD3D() || IsOpenGL()); + + std::ostringstream fs; + fs << R"(precision highp float; + +struct X { + mediump sampler2D c[0x12000]; +}; + +uniform X x; + +void main() +{ + gl_FragColor = texture2D(x.c[0], vec2(0)); +})"; + + GLuint shader = CompileShader(GL_FRAGMENT_SHADER, fs.str().c_str()); + EXPECT_NE(0u, shader); +} + // Test that passing large arrays to functions are compiled correctly. Regression test for the // SPIR-V generator that made a copy of the array to pass to the function, by decomposing and // reconstructing it (in the absence of OpCopyLogical), but the reconstruction instruction has a diff -Nru chromium-123.0.6312.105/third_party/angle/src/tests/gl_tests/PixelLocalStorageTest.cpp chromium-123.0.6312.122/third_party/angle/src/tests/gl_tests/PixelLocalStorageTest.cpp --- chromium-123.0.6312.105/third_party/angle/src/tests/gl_tests/PixelLocalStorageTest.cpp 2024-04-02 23:54:10.000000000 +0000 +++ chromium-123.0.6312.122/third_party/angle/src/tests/gl_tests/PixelLocalStorageTest.cpp 2024-04-10 21:26:14.000000000 +0000 @@ -5574,8 +5574,7 @@ EXPECT_FALSE(log.compileFragmentShader(kPLSInStruct)); EXPECT_TRUE(log.has("ERROR: 0:5: 'pixelLocalANGLE' : disallowed type in struct")); EXPECT_TRUE( - log.has("ERROR: 0:10: 'pixelLocalANGLE' : unsupported type - pixelLocalANGLE types are not " - "allowed in interface blocks")); + log.has("ERROR: 0:10: 'PLSBlock' : Opaque types are not allowed in interface blocks")); ASSERT_GL_NO_ERROR(); } diff -Nru chromium-123.0.6312.105/third_party/blink/public/platform/platform.h chromium-123.0.6312.122/third_party/blink/public/platform/platform.h --- chromium-123.0.6312.105/third_party/blink/public/platform/platform.h 2024-04-02 23:52:47.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/public/platform/platform.h 2024-04-10 21:25:00.000000000 +0000 @@ -207,14 +207,10 @@ virtual base::TimeDelta GetHungRendererDelay() { return base::TimeDelta(); } // Creates an audio output device platform interface for Web Audio API. - // If `sample_rate` is not provided, the default sample rate of the sink will - // be used. If the provided `sample_rate` is not supported, the method will - // return nullptr. virtual std::unique_ptr CreateAudioDevice( const WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback*) { return nullptr; } diff -Nru chromium-123.0.6312.105/third_party/blink/public/strings/translations/blink_strings_mk.xtb chromium-123.0.6312.122/third_party/blink/public/strings/translations/blink_strings_mk.xtb --- chromium-123.0.6312.105/third_party/blink/public/strings/translations/blink_strings_mk.xtb 2024-04-02 23:52:47.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/public/strings/translations/blink_strings_mk.xtb 2024-04-10 21:25:00.000000000 +0000 @@ -38,7 +38,7 @@ Ден Пополнете го ова поле. повеќе опции за избор, ниедна не е избрана. -прикажи повеќе контроли на аудио-визуелни содржини +прикажи повеќе контроли на аудиовизуелни содржини репродуцирај Внесете важечка вредност. Најблиската важечка вредност е . Зелен канал @@ -138,7 +138,7 @@ Спектар на бои со дводимензионален лизгач за избор на заситеноста и осветленоста исклучи тон 1,5 -преземи аудио-визуелни содржини +преземи аудиовизуелни содржини Проширено. Продолжете го текстот на знаци или повеќе (во моментов користите 1 знак). Споделувањето локација е дозволено diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc --- chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.cc 2024-04-10 21:25:01.000000000 +0000 @@ -14,6 +14,10 @@ #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/renderer/platform/media/web_audio_source_provider_client.h" +namespace { +static const size_t kMaxNumberOfAudioFifoBuffers = 10; +} + namespace blink { // Size of the buffer that WebAudio processes each time, it is the same value @@ -25,17 +29,19 @@ MediaStreamComponent* component, int context_sample_rate, uint32_t context_buffer_size) - : is_enabled_(false), - component_(component), - track_stopped_(false), - sink_context_buffer_size_(context_buffer_size), - sink_params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, - media::ChannelLayoutConfig::Stereo(), - context_sample_rate, - kWebAudioRenderBufferSize) { - CHECK(sink_params_.IsValid()); - CHECK(sink_context_buffer_size_); - + : is_enabled_(false), component_(component), track_stopped_(false) { + // Get the native audio output hardware sample-rate for the sink. + // We need to check if there is a valid frame since the unittests + // do not have one and they will inject their own |sink_params_| for testing. + + // TODO(1502522): Use the parameter `context_buffer_size` to estimate the FIFO + // size. + WebLocalFrame* const web_frame = WebLocalFrame::FrameForCurrentContext(); + if (web_frame) { + sink_params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, + media::ChannelLayoutConfig::Stereo(), + context_sample_rate, kWebAudioRenderBufferSize); + } // Connect the source provider to the track as a sink. WebMediaStreamAudioSink::AddToAudioTrack( this, WebMediaStreamTrack(component_.Get())); @@ -55,51 +61,22 @@ void WebAudioMediaStreamAudioSink::OnSetFormat( const media::AudioParameters& params) { - CHECK(params.IsValid()); + DCHECK(params.IsValid()); base::AutoLock auto_lock(lock_); + DCHECK(sink_params_.IsValid()); source_params_ = params; // Create the audio converter with |disable_fifo| as false so that the // converter will request source_params.frames_per_buffer() each time. // This will not increase the complexity as there is only one client to // the converter. - audio_converter_ = std::make_unique( - source_params_, sink_params_, false); + audio_converter_ = + std::make_unique(params, sink_params_, false); audio_converter_->AddInput(this); - - // `fifo_` receives audio in OnData() in buffers of a size defined by - // `source_params_`. It is consumed by `audio_converter_` in buffers of the - // same size. `audio_converter_` resamples from source_params_.sample_rate() - // to sink_params_.sample_rate() and rebuffers into kWebAudioRenderBufferSize - // chunks. However `audio_converter_->Convert()` are not spaced evenly: they - // will come in batches as the audio context is filling up the output buffer - // of `sink_context_buffer_size_' while rendering the media stream via - // AudioContext. - - // To ensure ChunkSize() is correct: see AudioConverter documentation. - audio_converter_->PrimeWithSilence(); - const int chunk_size = audio_converter_->ChunkSize(); - CHECK_GT(chunk_size, 0); - const int max_batch_read_count = - ceil(static_cast(sink_context_buffer_size_) / chunk_size); - - // Due to resampling/rebuffering, audio consumption irregularities, and - // possible misalignments of audio production/consumption callbacks, we should - // be able to store audio for multiple batch-pulls. - const size_t kMaxNumberOfBatchReads = 5; fifo_ = std::make_unique( - source_params_.channels(), kMaxNumberOfBatchReads * max_batch_read_count * - source_params_.frames_per_buffer()); - - DVLOG(1) << "FIFO size: " << fifo_->max_frames() - << " source buffer size: " << source_params_.frames_per_buffer() - << " sink context buffer size: " << sink_context_buffer_size_ - << " chunk size " << chunk_size - << " max batch read count: " << max_batch_read_count - << " FIFO duration: " - << fifo_->max_frames() * 1000 / source_params_.sample_rate() - << " ms "; + params.channels(), + kMaxNumberOfAudioFifoBuffers * params.frames_per_buffer()); } void WebAudioMediaStreamAudioSink::OnReadyStateChanged( @@ -125,9 +102,9 @@ TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("mediastream"), "WebAudioMediaStreamAudioSink::OnData under lock"); - CHECK(fifo_.get()); - CHECK_EQ(audio_bus.channels(), source_params_.channels()); - CHECK_EQ(audio_bus.frames(), source_params_.frames_per_buffer()); + DCHECK(fifo_.get()); + DCHECK_EQ(audio_bus.channels(), source_params_.channels()); + DCHECK_EQ(audio_bus.frames(), source_params_.frames_per_buffer()); if (fifo_->frames() + audio_bus.frames() <= fifo_->max_frames()) { fifo_->Push(&audio_bus); @@ -137,14 +114,7 @@ } else { // This can happen if the data in FIFO is too slowly consumed or // WebAudio stops consuming data. - - DVLOG(2) << "WARNING: Overrun, FIFO has available " - << (fifo_->max_frames() - fifo_->frames()) << " samples but " - << audio_bus.frames() << " samples are needed"; - if (fifo_stats_) { - fifo_stats_->overruns++; - } - + DVLOG(3) << "Local source provicer FIFO is full" << fifo_->frames(); TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("mediastream"), "WebAudioMediaStreamAudioSink::OnData FIFO full"); } @@ -186,16 +156,6 @@ audio_converter_->Convert(output_wrapper_.get()); } -void WebAudioMediaStreamAudioSink::ResetFifoStatsForTesting() { - fifo_stats_ = std::make_unique(); -} - -const WebAudioMediaStreamAudioSink::FifoStats& -WebAudioMediaStreamAudioSink::GetFifoStatsForTesting() { - CHECK(fifo_stats_) << "Call ResetFifoStatsForTesting() to enable"; - return *fifo_stats_; -} - // |lock_| needs to be acquired before this function is called. It's called by // AudioConverter which in turn is called by the above ProvideInput() function. // Thus thread safety analysis is disabled here and |lock_| acquire manually @@ -208,26 +168,27 @@ "WebAudioMediaStreamAudioSink::ProvideInput 2"); lock_.AssertAcquired(); - CHECK(fifo_); if (fifo_->frames() >= audio_bus->frames()) { fifo_->Consume(audio_bus, 0, audio_bus->frames()); TRACE_COUNTER_ID1(TRACE_DISABLED_BY_DEFAULT("mediastream"), "WebAudioMediaStreamAudioSink fifo space", this, fifo_->max_frames() - fifo_->frames()); } else { - DVLOG(2) << "WARNING: Underrun, FIFO has data " << fifo_->frames() - << " samples but " << audio_bus->frames() << " samples are needed"; audio_bus->Zero(); - if (fifo_stats_) { - fifo_stats_->underruns++; - } TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("mediastream"), "WebAudioMediaStreamAudioSink::ProvideInput underrun", "frames missing", audio_bus->frames() - fifo_->frames()); + DVLOG(1) << "WARNING: Underrun, FIFO has data " << fifo_->frames() + << " samples but " << audio_bus->frames() << " samples are needed"; } return 1.0; } +void WebAudioMediaStreamAudioSink::SetSinkParamsForTesting( + const media::AudioParameters& sink_params) { + base::AutoLock auto_lock(lock_); + sink_params_ = sink_params; +} } // namespace blink diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h --- chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink.h 2024-04-10 21:25:01.000000000 +0000 @@ -47,9 +47,9 @@ public: static const int kWebAudioRenderBufferSize; - WebAudioMediaStreamAudioSink(MediaStreamComponent* component, - int context_sample_rate, - uint32_t context_buffer_size); + explicit WebAudioMediaStreamAudioSink(MediaStreamComponent* component, + int context_sample_rate, + uint32_t context_buffer_size); WebAudioMediaStreamAudioSink(const WebAudioMediaStreamAudioSink&) = delete; WebAudioMediaStreamAudioSink& operator=(const WebAudioMediaStreamAudioSink&) = @@ -68,17 +68,16 @@ void ProvideInput(const WebVector& audio_data, int number_of_frames) override; - private: - FRIEND_TEST_ALL_PREFIXES(WebAudioMediaStreamAudioSinkFifoTest, VerifyFifo); - - struct FifoStats { - int overruns = 0; - int underruns = 0; - }; - - void ResetFifoStatsForTesting(); - const FifoStats& GetFifoStatsForTesting(); + // Method to allow the unittests to inject its own sink parameters to avoid + // query the hardware. + // TODO(xians,tommi): Remove and instead offer a way to inject the sink + // parameters so that the implementation doesn't rely on the global default + // hardware config but instead gets the parameters directly from the sink + // (WebAudio in this case). Ideally the unit test should be able to use that + // same mechanism to inject the sink parameters for testing. + void SetSinkParamsForTesting(const media::AudioParameters& sink_params); + private: // media::AudioConverter::InputCallback implementation. // This function is triggered by the above ProvideInput() on the WebAudio // audio thread, so it has be called under the protection of |lock_|. @@ -90,6 +89,7 @@ std::unique_ptr fifo_ GUARDED_BY(lock_); bool is_enabled_ GUARDED_BY(lock_); media::AudioParameters source_params_ GUARDED_BY(lock_); + media::AudioParameters sink_params_ GUARDED_BY(lock_); // Protects the above variables. base::Lock lock_; @@ -108,18 +108,6 @@ // and OnReadyStateChanged(). bool track_stopped_; - // Buffer size of the audio context the sink delivers audio to. Affects how - // many public ProvideInput() calls can be received in one batch, and thus - // needs to be taken into account when configuring `fifo_`. - const uint32_t sink_context_buffer_size_; - - // Parameters at which audio is delivered to the WebAudio graph, i.e. of the - // public ProvideInput() call. - const media::AudioParameters sink_params_; - - // For testing. Instantiated only if ResetFifoStatsForTesting() is called. - std::unique_ptr fifo_stats_; - // Used to assert that OnData() is only accessed by one thread at a time. We // can't use a thread checker since thread may change. REENTRANCY_CHECKER(capture_reentrancy_checker_); diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc --- chromium-123.0.6312.105/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/modules/mediastream/webaudio_media_stream_audio_sink_test.cc 2024-04-10 21:25:01.000000000 +0000 @@ -8,11 +8,8 @@ #include -#include "base/test/bind.h" #include "media/base/audio_bus.h" -#include "media/base/audio_latency.h" #include "media/base/audio_parameters.h" -#include "media/base/audio_pull_fifo.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/web/web_heap.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h" @@ -23,21 +20,12 @@ namespace blink { class WebAudioMediaStreamAudioSinkTest : public testing::Test { - public: - void TearDown() override { - source_provider_.reset(); - component_ = nullptr; - WebHeap::CollectAllGarbageForTesting(); - } - protected: - void Configure(int source_sample_rate, - int source_buffer_size, - int context_sample_rate, - int context_buffer_size) { + void SetUp() override { source_params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, - media::ChannelLayoutConfig::Mono(), source_sample_rate, - source_buffer_size); + media::ChannelLayoutConfig::Mono(), 48000, 480); + const int context_sample_rate = 44100; + const int context_buffer_size = 100; sink_params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, media::ChannelLayoutConfig::Stereo(), context_sample_rate, @@ -52,9 +40,16 @@ std::make_unique(true)); source_provider_ = std::make_unique( component_, context_sample_rate, context_buffer_size); + source_provider_->SetSinkParamsForTesting(sink_params_); source_provider_->OnSetFormat(source_params_); } + void TearDown() override { + source_provider_.reset(); + component_ = nullptr; + WebHeap::CollectAllGarbageForTesting(); + } + test::TaskEnvironment task_environment_; media::AudioParameters source_params_; media::AudioParameters sink_params_; @@ -64,9 +59,6 @@ }; TEST_F(WebAudioMediaStreamAudioSinkTest, VerifyDataFlow) { - Configure(/*source_sample_rate=*/48000, /*source_buffer_size=*/480, - /*context_sample_rate=*/44100, /*context_buffer_size=*/100); - // Point the WebVector into memory owned by |sink_bus_|. WebVector audio_data(static_cast(sink_bus_->channels())); for (int i = 0; i < sink_bus_->channels(); ++i) @@ -122,9 +114,6 @@ TEST_F(WebAudioMediaStreamAudioSinkTest, DeleteSourceProviderBeforeStoppingTrack) { - Configure(/*source_sample_rate=*/48000, /*source_buffer_size=*/480, - /*context_sample_rate=*/44100, /*context_buffer_size=*/100); - source_provider_.reset(); // Stop the audio track. @@ -133,9 +122,6 @@ TEST_F(WebAudioMediaStreamAudioSinkTest, StopTrackBeforeDeletingSourceProvider) { - Configure(/*source_sample_rate=*/48000, /*source_buffer_size=*/480, - /*context_sample_rate=*/44100, /*context_buffer_size=*/100); - // Stop the audio track. MediaStreamAudioTrack::From(component_.Get())->Stop(); @@ -143,122 +129,4 @@ source_provider_.reset(); } -class WebAudioMediaStreamAudioSinkFifoTest - : public WebAudioMediaStreamAudioSinkTest, - public testing::WithParamInterface< - std::tuple> {}; - -TEST_P(WebAudioMediaStreamAudioSinkFifoTest, VerifyFifo) { - int source_sample_rate = std::get<0>(GetParam()); - int context_sample_rate = std::get<1>(GetParam()); - float device_callback_irregularity_coefficient = std::get<2>(GetParam()); - float produce_offset_coefficient = std::get<3>(GetParam()); - int source_buffer_size = std::get<4>(GetParam()); - - int context_buffer_size = - media::AudioLatency::GetHighLatencyBufferSize(context_sample_rate, 0); - - Configure(source_sample_rate, source_buffer_size, context_sample_rate, - context_buffer_size); - - // 1. Source preparation. - std::unique_ptr source_bus = - media::AudioBus::Create(source_params_); - - // 2. Sink preparation. - - // Point the WebVector into memory owned by |sink_bus_|. - WebVector audio_data(static_cast(sink_bus_->channels())); - for (int i = 0; i < sink_bus_->channels(); ++i) { - audio_data[i] = sink_bus_->channel(i); - } - - // FIFO simulating callbacks from AudioContext output. - auto pull_cb = base::BindLambdaForTesting( - [&](int frame_delay, media::AudioBus* audio_bus) { - source_provider_->ProvideInput(audio_data, - sink_params_.frames_per_buffer()); - sink_bus_->CopyTo(audio_bus); - }); - media::AudioPullFifo pull_fifo(sink_params_.channels(), - sink_params_.frames_per_buffer(), pull_cb); - - media::AudioParameters output_params( - sink_params_.format(), sink_params_.channel_layout_config(), - sink_params_.sample_rate(), context_buffer_size); - - std::unique_ptr output_bus = - media::AudioBus::Create(output_params); - - // 3. Testing. - - // Enable the |source_provider_| by asking for data. This will result in FIFO - // underruns, since the source data has been rejected until now. - pull_fifo.Consume(output_bus.get(), output_params.frames_per_buffer()); - - // Calculating time in integers, rather than TimeDelta, to avoid rounding - // errors. - uint64_t counts_in_second = - static_cast(source_params_.sample_rate()) * - output_params.sample_rate(); - - // Values below are, in other words, frames_per_buffer() * counts_in_second / - // sample_rate(). - uint64_t produce_step = - static_cast(source_params_.frames_per_buffer()) * - output_params.sample_rate(); - uint64_t consume_step = - static_cast(output_params.frames_per_buffer()) * - source_params_.sample_rate(); - - uint64_t consume_counter = consume_step; - uint64_t consume_delay = - (1 + device_callback_irregularity_coefficient) * consume_step; - uint64_t counter = produce_offset_coefficient * produce_step; - - uint64_t test_duration_seconds = 5; - uint64_t max_count = test_duration_seconds * counts_in_second; - - // Enable FIFO stats. - source_provider_->ResetFifoStatsForTesting(); - - // Note: this is an artifitical perfect scheduling; in general, - // `source_provider_` is not resilient to underruns, and in extreme cases - to - // overruns. - for (; counter < max_count; counter += produce_step) { - // Produce. - source_provider_->OnData(*source_bus, base::TimeTicks::Min()); - - if (consume_counter + consume_delay > counter) { - continue; - } - - // It's time to consume! - while (consume_counter <= counter) { - pull_fifo.Consume(output_bus.get(), output_params.frames_per_buffer()); - consume_counter += consume_step; - } // while - } // for - - EXPECT_EQ(0, source_provider_->GetFifoStatsForTesting().underruns); - EXPECT_EQ(0, source_provider_->GetFifoStatsForTesting().overruns); -} - -INSTANTIATE_TEST_SUITE_P( - All, - WebAudioMediaStreamAudioSinkFifoTest, - testing::Combine( - // source_sample_rate - testing::ValuesIn({16000, 44100, 48000, 96000}), - // context_sample_rate; 41000 may cause underruns on platforms which - // do not use power of 2 as a high latency buffer size, since the - // scheduling in tests won't be ideal. - testing::ValuesIn({16000, 48000, 96000}), - // device_callback_irregularity_coefficient - testing::ValuesIn({0.0f, 1.5f}), - // produce_offset_coefficient, 0..1 - testing::ValuesIn({0.0f, 0.1f}), - // source_buffer_size - testing::ValuesIn({128, 512, 480}))); - } // namespace blink diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc chromium-123.0.6312.122/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc --- chromium-123.0.6312.105/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/modules/webaudio/audio_context_autoplay_test.cc 2024-04-10 21:25:01.000000000 +0000 @@ -66,7 +66,6 @@ const WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback*) override { return std::make_unique( AudioHardwareSampleRate(), AudioHardwareBufferSize()); diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/modules/webaudio/audio_context_test.cc chromium-123.0.6312.122/third_party/blink/renderer/modules/webaudio/audio_context_test.cc --- chromium-123.0.6312.105/third_party/blink/renderer/modules/webaudio/audio_context_test.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/modules/webaudio/audio_context_test.cc 2024-04-10 21:25:01.000000000 +0000 @@ -57,7 +57,6 @@ const WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback*) override { double buffer_size = 0; const double interactive_size = AudioHardwareBufferSize(); diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination.cc chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination.cc --- chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination.cc 2024-04-10 21:25:01.000000000 +0000 @@ -33,6 +33,7 @@ #include #include "base/feature_list.h" +#include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h" #include "base/numerics/safe_conversions.h" #include "base/task/single_thread_task_runner.h" @@ -305,7 +306,7 @@ } double AudioDestination::SampleRate() const { - return web_audio_device_->SampleRate(); + return context_sample_rate_; } uint32_t AudioDestination::CallbackBufferSize() const { @@ -347,16 +348,18 @@ Platform::Current()->CreateAudioDevice(sink_descriptor, number_of_output_channels, latency_hint, - context_sample_rate, this)), callback_buffer_size_( web_audio_device_ ? web_audio_device_->FramesPerBuffer() : 0), number_of_output_channels_(number_of_output_channels), render_quantum_frames_(render_quantum_frames), - fifo_(std::make_unique( - number_of_output_channels, - std::max(kFIFOSize, callback_buffer_size_ + render_quantum_frames), - render_quantum_frames)), + context_sample_rate_( + context_sample_rate.has_value() + ? context_sample_rate.value() + : (web_audio_device_ ? web_audio_device_->SampleRate() : 0)), + fifo_(std::make_unique(number_of_output_channels, + kFIFOSize, + render_quantum_frames)), output_bus_(AudioBus::Create(number_of_output_channels, render_quantum_frames, false)), @@ -396,6 +399,63 @@ fifo_->Push(render_bus_.get()); } } + + // Check if the requested buffer size is too large. + DCHECK_LE(callback_buffer_size_ + render_quantum_frames, kFIFOSize); + + double scale_factor = 1.0; + + if (context_sample_rate_ != web_audio_device_->SampleRate()) { + scale_factor = context_sample_rate_ / web_audio_device_->SampleRate(); + SendLogMessage(String::Format("%s => (resampling from %0.f Hz to %0.f Hz)", + __func__, context_sample_rate.value(), + web_audio_device_->SampleRate())); + + resampler_ = std::make_unique( + number_of_output_channels, scale_factor, render_quantum_frames, + CrossThreadBindRepeating(&AudioDestination::ProvideResamplerInput, + CrossThreadUnretained(this))); + resampler_bus_ = + media::AudioBus::CreateWrapper(render_bus_->NumberOfChannels()); + for (unsigned int i = 0; i < render_bus_->NumberOfChannels(); ++i) { + resampler_bus_->SetChannelData(i, render_bus_->Channel(i)->MutableData()); + } + resampler_bus_->set_frames(render_bus_->length()); + } else { + SendLogMessage(String::Format( + "%s => (no resampling: context sample rate set to %0.f Hz)", __func__, + context_sample_rate_)); + } + + // Record the sizes if we successfully created an output device. + // Histogram for audioHardwareBufferSize + base::UmaHistogramSparse( + "WebAudio.AudioDestination.HardwareBufferSize", + static_cast(Platform::Current()->AudioHardwareBufferSize())); + + // Histogram for the actual callback size used. Typically, this is the same + // as audioHardwareBufferSize, but can be adjusted depending on some + // heuristics below. + base::UmaHistogramSparse("WebAudio.AudioDestination.CallbackBufferSize", + callback_buffer_size_); + + base::UmaHistogramSparse("WebAudio.AudioContext.HardwareSampleRate", + web_audio_device_->SampleRate()); + + // Record the selected sample rate and ratio if the sampleRate was given. The + // ratio is recorded as a percentage, rounded to the nearest percent. + if (context_sample_rate.has_value()) { + // The actual supplied `context_sample_rate` is probably a small set + // including 44100, 48000, 22050, and 2400 Hz. Other valid values range + // from 3000 to 384000 Hz, but are not expected to be used much. + base::UmaHistogramSparse("WebAudio.AudioContextOptions.sampleRate", + context_sample_rate.value()); + // From the expected values above and the common HW sample rates, we expect + // the most common ratios to be the set 0.5, 44100/48000, and 48000/44100. + // Other values are possible but seem unlikely. + base::UmaHistogramSparse("WebAudio.AudioContextOptions.sampleRateRatio", + static_cast(100.0 * scale_factor + 0.5)); + } } void AudioDestination::SetDeviceState(DeviceState state) { @@ -465,9 +525,13 @@ output_position_.position = 0.0; } - // Process WebAudio graph and push the rendered output to FIFO. - callback_->Render(render_bus_.get(), RenderQuantumFrames(), - output_position_, metric_reporter_.GetMetric()); + if (resampler_) { + resampler_->ResampleInternal(RenderQuantumFrames(), resampler_bus_.get()); + } else { + // Process WebAudio graph and push the rendered output to FIFO. + callback_->Render(render_bus_.get(), RenderQuantumFrames(), + output_position_, metric_reporter_.GetMetric()); + } fifo_->Push(render_bus_.get()); } @@ -477,6 +541,12 @@ metric_reporter_.EndTrace(); } +void AudioDestination::ProvideResamplerInput(int resampler_frame_delay, + AudioBus* dest) { + callback_->Render(dest, RenderQuantumFrames(), output_position_, + metric_reporter_.GetMetric()); +} + void AudioDestination::SendLogMessage(const String& message) const { WebRtcLogMessage(String::Format("[WA]AD::%s [state=%s]", message.Utf8().c_str(), diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination.h chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination.h --- chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination.h 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination.h 2024-04-10 21:25:01.000000000 +0000 @@ -42,6 +42,7 @@ #include "third_party/blink/public/platform/web_vector.h" #include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_io_callback.h" +#include "third_party/blink/renderer/platform/audio/media_multi_channel_resampler.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/scheduler/public/thread.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -114,7 +115,7 @@ bool IsPlaying(); - // This is the context sample rate, not the hardware one. + // This is the context sample rate, not the device one. double SampleRate() const; uint32_t CallbackBufferSize() const; @@ -159,6 +160,8 @@ double delay, double delay_timestamp); + // Provide input to the resampler (if used). + void ProvideResamplerInput(int resampler_frame_delay, AudioBus* dest); void SendLogMessage(const String& message) const; @@ -171,6 +174,9 @@ const unsigned render_quantum_frames_; + // The sample rate used for rendering the Web Audio graph. + const float context_sample_rate_; + // Can be accessed by both threads: resolves the buffer size mismatch between // the WebAudio engine and the callback function from the actual audio device. std::unique_ptr fifo_; @@ -189,6 +195,11 @@ // Accessed by rendering thread. size_t frames_elapsed_ = 0; + // Used for resampling if the Web Audio sample rate differs from the platform + // one. + std::unique_ptr resampler_; + std::unique_ptr resampler_bus_; + // Required for RequestRender and also in the resampling callback (if used). AudioIOPosition output_position_; diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination_test.cc chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination_test.cc --- chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/audio_destination_test.cc 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/audio_destination_test.cc 2024-04-10 21:25:01.000000000 +0000 @@ -59,7 +59,6 @@ const WebAudioSinkDescriptor& sink_descriptor, unsigned number_of_output_channels, const WebAudioLatencyHint& latency_hint, - std::optional sample_rate, media::AudioRendererSink::RenderCallback*) override { CHECK(webaudio_device_ != nullptr) << "Calling CreateAudioDevice (via AudioDestination::Create) multiple " @@ -126,7 +125,16 @@ // Calculate the expected number of frames to be consumed to produce // |request_frames| frames. int exact_frames_required = request_frames; - + if (destination->SampleRate() != + Platform::Current()->AudioHardwareSampleRate()) { + exact_frames_required = + std::ceil(request_frames * destination->SampleRate() / + Platform::Current()->AudioHardwareSampleRate()); + // The internal resampler requires media::SincResampler::KernelSize() / 2 + // more frames to flush the output. See sinc_resampler.cc for details. + exact_frames_required += + media::SincResampler::KernelSizeFromRequestFrames(request_frames) / 2; + } const int expected_frames_processed = std::ceil(exact_frames_required / static_cast(destination->RenderQuantumFrames())) * diff -Nru chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/push_pull_fifo.h chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/push_pull_fifo.h --- chromium-123.0.6312.105/third_party/blink/renderer/platform/audio/push_pull_fifo.h 2024-04-02 23:52:48.000000000 +0000 +++ chromium-123.0.6312.122/third_party/blink/renderer/platform/audio/push_pull_fifo.h 2024-04-10 21:25:01.000000000 +0000 @@ -42,6 +42,10 @@ USING_FAST_MALLOC(PushPullFIFO); public: + // Maximum FIFO length. (512 render quanta) + static const uint32_t kMaxFIFOLength; + + // |fifo_length| cannot exceed |kMaxFIFOLength|. Otherwise it crashes. // ||render_quantum_frames| is the render size used by the audio graph. It // |defaults to 128, the original and default render size. explicit PushPullFIFO(unsigned number_of_channels, diff -Nru chromium-123.0.6312.105/third_party/dawn/DEPS chromium-123.0.6312.122/third_party/dawn/DEPS --- chromium-123.0.6312.105/third_party/dawn/DEPS 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/DEPS 2024-04-10 21:25:59.000000000 +0000 @@ -197,7 +197,7 @@ }, 'third_party/dxc': { - 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@701a2b1da0387ac6abf73bdbaf7864b9615db033', + 'url': '{chromium_git}/external/github.com/microsoft/DirectXShaderCompiler@a65e511a14b4bffda1b24052732b09ca130359d1', }, 'third_party/dxheaders': { diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Device.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Device.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Device.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Device.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -2100,6 +2100,10 @@ return mToggles.IsEnabled(toggle); } +const TogglesState& DeviceBase::GetTogglesState() const { + return mToggles; +} + void DeviceBase::ForceSetToggleForTesting(Toggle toggle, bool isEnabled) { mToggles.ForceSet(toggle, isEnabled); } diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Device.h chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Device.h --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Device.h 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Device.h 2024-04-10 21:25:59.000000000 +0000 @@ -379,6 +379,7 @@ std::vector GetTogglesUsed() const; const tint::wgsl::AllowedFeatures& GetWGSLAllowedFeatures() const; bool IsToggleEnabled(Toggle toggle) const; + const TogglesState& GetTogglesState() const; bool IsValidationEnabled() const; bool IsRobustnessEnabled() const; bool IsCompatibilityMode() const; diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Toggles.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Toggles.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Toggles.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Toggles.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -537,6 +537,11 @@ "Use the StorageInputOutput16 SPIR-V capability for f16 shader IO types when the device " "supports it.", "https://crbug.com/tint/2161", ToggleStage::Device}}, + {Toggle::D3D12DontUseShaderModel66OrHigher, + {"d3d12_dont_use_shader_model_66_or_higher", + "Only use shader model 6.5 or less for D3D12 backend, to workaround issues on some Intel " + "devices.", + "https://crbug.com/dawn/2470", ToggleStage::Adapter}}, {Toggle::NoWorkaroundSampleMaskBecomesZeroForAllButLastColorTarget, {"no_workaround_sample_mask_becomes_zero_for_all_but_last_color_target", "MacOS 12.0+ Intel has a bug where the sample mask is only applied for the last color " diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Toggles.h chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Toggles.h --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/Toggles.h 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/Toggles.h 2024-04-10 21:25:59.000000000 +0000 @@ -131,6 +131,7 @@ DisablePolyfillsOnIntegerDivisonAndModulo, EnableImmediateErrorHandling, VulkanUseStorageInputOutput16, + D3D12DontUseShaderModel66OrHigher, // Unresolved issues. NoWorkaroundSampleMaskBecomesZeroForAllButLastColorTarget, diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/D3D12Info.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/D3D12Info.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/D3D12Info.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/D3D12Info.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -86,6 +86,10 @@ // featureOptions4.MSAA64KBAlignedTextureSupported indicates whether 64KB-aligned MSAA // textures are supported. info.use64KBAlignedMSAATexture = featureOptions4.MSAA64KBAlignedTextureSupported; + + // To support shader f16 feature, both featureOptions4.Native16BitShaderOpsSupported and + // using shader model version >= 6.2 are required. + info.supportsNative16BitShaderOps = featureOptions4.Native16BitShaderOpsSupported; } // Windows builds 1809 and above can use the D3D12 render pass API. If we query @@ -155,23 +159,7 @@ DAWN_ASSERT(shaderModelMajor < 10); DAWN_ASSERT(shaderModelMinor < 10); - info.shaderModel = 10 * shaderModelMajor + shaderModelMinor; - - // Profiles are always s__ so we build the s__major and add - // it to each of the stage's suffix. - std::wstring profileSuffix = L"s_M_n"; - profileSuffix[2] = wchar_t('0' + shaderModelMajor); - profileSuffix[4] = wchar_t('0' + shaderModelMinor); - - info.shaderProfiles[SingleShaderStage::Vertex] = L"v" + profileSuffix; - info.shaderProfiles[SingleShaderStage::Fragment] = L"p" + profileSuffix; - info.shaderProfiles[SingleShaderStage::Compute] = L"c" + profileSuffix; - - info.supportsShaderF16 = - driverShaderModel >= D3D_SHADER_MODEL_6_2 && featureOptions4.Native16BitShaderOpsSupported; - - info.supportsPacked4x8IntegerDotProduct = driverShaderModel >= D3D_SHADER_MODEL_6_4; - info.supportsPackUnpack4x8Intrinsics = driverShaderModel >= D3D_SHADER_MODEL_6_6; + info.highestSupportedShaderModel = 10 * shaderModelMajor + shaderModelMinor; // Device support wave intrinsics if shader model >= SM6.0 and capabilities flag WaveOps is set. // https://github.com/Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/D3D12Info.h chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/D3D12Info.h --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/D3D12Info.h 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/D3D12Info.h 2024-04-10 21:25:59.000000000 +0000 @@ -41,14 +41,13 @@ bool isCacheCoherentUMA; uint32_t resourceHeapTier; bool supportsRenderPass; - bool supportsShaderF16; - // shaderModel indicates the maximum supported shader model, for example, the value 62 - // indicates that current driver supports the maximum shader model is shader model 6.2. - uint32_t shaderModel; - PerStage shaderProfiles; + // Whether the device support native 16bit shader ops, required for shader f16 feature. Note + // that the feature also requires using shader model version >= 6.2. + bool supportsNative16BitShaderOps; + // highestSupportedShaderModel indicates the maximum supported shader model, for example, the + // value 62 indicates that current driver supports the maximum shader model is shader model 6.2. + uint32_t highestSupportedShaderModel; bool supportsSharedResourceCapabilityTier1; - bool supportsPacked4x8IntegerDotProduct; - bool supportsPackUnpack4x8Intrinsics; bool supportsCastingFullyTypedFormat; uint32_t programmableSamplePositionsTier; bool supportsRootSignatureVersion1_1; diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -173,6 +173,22 @@ // Ensure DXC if use_dxc toggle is set. DAWN_TRY(EnsureDXCIfRequired()); + // Set up shader profile for DXC. + if (IsToggleEnabled(Toggle::UseDXC)) { + uint32_t appliedShaderModel = + ToBackend(GetPhysicalDevice())->GetAppliedShaderModelUnderToggles(GetTogglesState()); + uint32_t shaderModelMajor = appliedShaderModel / 10; + uint32_t shaderModelMinor = appliedShaderModel % 10; + // Profiles are always s__ so we build the s__major and add + // it to each of the stage's suffix. + std::wstring profileSuffix = L"s_M_n"; + profileSuffix[2] = wchar_t('0' + shaderModelMajor); + profileSuffix[4] = wchar_t('0' + shaderModelMinor); + mDxcShaderProfiles[SingleShaderStage::Vertex] = L"v" + profileSuffix; + mDxcShaderProfiles[SingleShaderStage::Fragment] = L"p" + profileSuffix; + mDxcShaderProfiles[SingleShaderStage::Compute] = L"c" + profileSuffix; + } + DAWN_TRY(CreateZeroBuffer()); SetLabelImpl(); @@ -771,4 +787,8 @@ return ToBackend(GetPhysicalDevice())->GetBackend()->GetDxcCompiler(); } +const PerStage& Device::GetDxcShaderProfiles() const { + return mDxcShaderProfiles; +} + } // namespace dawn::native::d3d12 diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.h chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.h --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.h 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/DeviceD3D12.h 2024-04-10 21:25:59.000000000 +0000 @@ -173,6 +173,8 @@ ComPtr GetDxcLibrary() const; ComPtr GetDxcCompiler() const; + const PerStage& GetDxcShaderProfiles() const; + private: using Base = d3d::Device; @@ -282,6 +284,9 @@ // The number of nanoseconds required for a timestamp query to be incremented by 1 float mTimestampPeriod = 1.0f; + + // Shader profiles used for compiling shader with DXC + PerStage mDxcShaderProfiles; }; } // namespace dawn::native::d3d12 diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -61,6 +61,15 @@ return true; } +uint32_t PhysicalDevice::GetAppliedShaderModelUnderToggles(const TogglesState& toggles) const { + uint32_t appliedShaderModel = GetDeviceInfo().highestSupportedShaderModel; + if ((appliedShaderModel >= 66) && + toggles.IsEnabled(Toggle::D3D12DontUseShaderModel66OrHigher)) { + appliedShaderModel = 65; + } + return appliedShaderModel; +} + const D3D12DeviceInfo& PhysicalDevice::GetDeviceInfo() const { return mDeviceInfo; } @@ -97,7 +106,7 @@ if (GetInstance()->IsAdapterBlocklistEnabled()) { #if DAWN_PLATFORM_IS(I386) DAWN_INVALID_IF( - mDeviceInfo.shaderModel >= 60, + mDeviceInfo.highestSupportedShaderModel >= 60, "D3D12 x86 SM6.0+ adapter is blocklisted. See https://crbug.com/tint/1753."); DAWN_INVALID_IF( @@ -152,9 +161,10 @@ EnableFeature(Feature::ChromiumExperimentalTimestampQueryInsidePasses); } - // ShaderF16 features require DXC version being 1.4 or higher + // ShaderF16 features require DXC version being 1.4 or higher, shader model supporting 6.2 or + // higher, and native supporting F16 shader ops. if (GetBackend()->IsDXCAvailableAndVersionAtLeast(1, 4, 1, 4) && - mDeviceInfo.supportsShaderF16) { + mDeviceInfo.highestSupportedShaderModel >= 62 && mDeviceInfo.supportsNative16BitShaderOps) { EnableFeature(Feature::ShaderF16); } @@ -380,12 +390,37 @@ FeatureValidationResult PhysicalDevice::ValidateFeatureSupportedWithTogglesImpl( wgpu::FeatureName feature, const TogglesState& toggles) const { - // The feature `shader-f16` requires DXC 1.4 or higher. Note that DXC version is checked in - // InitializeSupportedFeaturesImpl. - if (feature == wgpu::FeatureName::ShaderF16 && !toggles.IsEnabled(Toggle::UseDXC)) { - return FeatureValidationResult(absl::StrFormat( - "Feature %s requires DXC for D3D12.", GetInstance()->GetFeatureInfo(feature)->name)); + // Toggle states of adapters and devices can change whether DXC is used and which shader model + // version is applied. Validate features that requires DXC and/or specific shader model + // version here. + if (!toggles.IsEnabled(Toggle::UseDXC)) { + // Disable features that require DXC. Note that required DXC version for each feature is + // checked in InitializeSupportedFeaturesImpl. + switch (feature) { + case wgpu::FeatureName::ShaderF16: + case wgpu::FeatureName::ChromiumExperimentalSubgroups: + return FeatureValidationResult( + absl::StrFormat("Feature %s requires DXC for D3D12.", + GetInstance()->GetFeatureInfo(feature)->name)); + default: + break; + } } + // Validate applied shader version. + switch (feature) { + // The feature `shader-f16` requires using shader model 6.2 or higher. + case wgpu::FeatureName::ShaderF16: { + if (!(GetAppliedShaderModelUnderToggles(toggles) >= 62)) { + return FeatureValidationResult( + absl::StrFormat("Feature %s requires shader model 6.2 or higher for D3D12.", + GetInstance()->GetFeatureInfo(feature)->name)); + } + break; + } + default: + break; + } + return {}; } @@ -509,7 +544,7 @@ // Check for use_dxc toggle #ifdef DAWN_USE_BUILT_DXC // Default to using DXC. If shader model < 6.0, though, we must use FXC. - if (GetDeviceInfo().shaderModel <= 60) { + if (GetDeviceInfo().highestSupportedShaderModel < 60) { adapterToggles->ForceSet(Toggle::UseDXC, false); } @@ -523,6 +558,29 @@ } adapterToggles->Default(Toggle::UseDXC, false); #endif + + uint32_t deviceId = GetDeviceId(); + uint32_t vendorId = GetVendorId(); + + // On Intel Gen12 GPU, using shader model 6.6 will cause unexpected result when + // adding/subtracting I32/U32 vector/scalar with vector/scalar in constant initialized array. + // See https://crbug.com/tint/2189 and https://crbug.com/dawn/2470 for more information. + if (gpu_info::IsIntelGen12HP(vendorId, deviceId) || + gpu_info::IsIntelGen12LP(vendorId, deviceId)) { + adapterToggles->Default(Toggle::D3D12DontUseShaderModel66OrHigher, true); + } + + // Workaround for textureDimensions() produces incorrect results with shader model 6.6 on Intel + // D3D driver > 27.20.100.8935 and < 27.20.100.9684 on Intel Gen9, Gen9.5 and Gen11 GPUs. + // See https://crbug.com/dawn/2448 for more information. + if (gpu_info::IsIntelGen9(vendorId, deviceId) || gpu_info::IsIntelGen11(vendorId, deviceId)) { + if (gpu_info::CompareWindowsDriverVersion(vendorId, GetDriverVersion(), + {27, 20, 100, 8935}) == 1 && + gpu_info::CompareWindowsDriverVersion(vendorId, GetDriverVersion(), + {27, 20, 100, 9684}) == -1) { + adapterToggles->ForceSet(Toggle::D3D12DontUseShaderModel66OrHigher, true); + } + } } void PhysicalDevice::SetupBackendDeviceToggles(TogglesState* deviceToggles) const { @@ -577,13 +635,17 @@ deviceToggles->Default(Toggle::D3D12CreateNotZeroedHeap, GetDeviceInfo().supportsHeapFlagCreateNotZeroed); - if (!GetDeviceInfo().supportsPacked4x8IntegerDotProduct || + // Native support of packed 4x8 integer dot product required shader model 6.4 or higher, and + // DXC 1.4 or higher. + if (!(GetAppliedShaderModelUnderToggles(*deviceToggles) >= 64) || !deviceToggles->IsEnabled(Toggle::UseDXC) || !GetBackend()->IsDXCAvailableAndVersionAtLeast(1, 4, 1, 4)) { deviceToggles->ForceSet(Toggle::PolyFillPacked4x8DotProduct, true); } - if (!GetDeviceInfo().supportsPackUnpack4x8Intrinsics || + // Native support of pack/unpack 4x8 intrinsics required shader model 6.6 or higher, and + // DXC 1.4 or higher. + if (!(GetAppliedShaderModelUnderToggles(*deviceToggles) >= 66) || !deviceToggles->IsEnabled(Toggle::UseDXC) || !GetBackend()->IsDXCAvailableAndVersionAtLeast(1, 6, 1, 6)) { deviceToggles->ForceSet(Toggle::D3D12PolyFillPackUnpack4x8, true); @@ -767,7 +829,8 @@ } } if (auto* d3dProperties = properties.Get()) { - d3dProperties->shaderModel = GetDeviceInfo().shaderModel; + // Report highest supported shader model version, instead of actual applied version. + d3dProperties->shaderModel = GetDeviceInfo().highestSupportedShaderModel; } } diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.h chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.h --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.h 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/PhysicalDeviceD3D12.h 2024-04-10 21:25:59.000000000 +0000 @@ -47,6 +47,10 @@ bool SupportsExternalImages() const override; bool SupportsFeatureLevel(FeatureLevel featureLevel) const override; + // Get the applied shader model version under the given adapter or device toggle state, which + // may be lower than the shader model reported in mDeviceInfo. + uint32_t GetAppliedShaderModelUnderToggles(const TogglesState& toggles) const; + const D3D12DeviceInfo& GetDeviceInfo() const; Backend* GetBackend() const; ComPtr GetDevice() const; diff -Nru chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/ShaderModuleD3D12.cpp chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/ShaderModuleD3D12.cpp --- chromium-123.0.6312.105/third_party/dawn/src/dawn/native/d3d12/ShaderModuleD3D12.cpp 2024-04-02 23:53:49.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/src/dawn/native/d3d12/ShaderModuleD3D12.cpp 2024-04-10 21:25:59.000000000 +0000 @@ -139,7 +139,8 @@ d3d::D3DCompilationRequest req = {}; req.tracePlatform = UnsafeUnkeyedValue(device->GetPlatform()); - req.hlsl.shaderModel = device->GetDeviceInfo().shaderModel; + req.hlsl.shaderModel = ToBackend(device->GetPhysicalDevice()) + ->GetAppliedShaderModelUnderToggles(device->GetTogglesState()); req.hlsl.disableSymbolRenaming = device->IsToggleEnabled(Toggle::DisableSymbolRenaming); req.hlsl.dumpShaders = device->IsToggleEnabled(Toggle::DumpShaders); req.hlsl.maxSubgroupSizeForFullSubgroups = maxSubgroupSizeForFullSubgroups; @@ -159,7 +160,7 @@ req.bytecode.dxcLibrary = device->GetDxcLibrary().Get(); req.bytecode.dxcCompiler = device->GetDxcCompiler().Get(); req.bytecode.compilerVersion = dxcVersionInfo.DxcCompilerVersion; - req.bytecode.dxcShaderProfile = device->GetDeviceInfo().shaderProfiles[stage]; + req.bytecode.dxcShaderProfile = device->GetDxcShaderProfiles()[stage]; } else { req.bytecode.compiler = d3d::Compiler::FXC; req.bytecode.d3dCompile = device->GetFunctions()->d3dCompile; diff -Nru chromium-123.0.6312.105/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp chromium-123.0.6312.122/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp --- chromium-123.0.6312.105/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp 2024-04-02 23:53:56.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/third_party/dxc/lib/Transforms/Scalar/ScalarReplAggregatesHLSL.cpp 2024-04-10 21:26:05.000000000 +0000 @@ -1003,9 +1003,11 @@ if (op0->user_empty()) op0->eraseFromParent(); } - if (Instruction *op1 = dyn_cast(Op1)) { - if (op1->user_empty()) - op1->eraseFromParent(); + if (Op0 != Op1) { + if (Instruction *op1 = dyn_cast(Op1)) { + if (op1->user_empty()) + op1->eraseFromParent(); + } } } diff -Nru chromium-123.0.6312.105/third_party/dawn/third_party/dxc/tools/clang/test/DXC/unreferenced_struct_selft_assignment_crash.hlsl chromium-123.0.6312.122/third_party/dawn/third_party/dxc/tools/clang/test/DXC/unreferenced_struct_selft_assignment_crash.hlsl --- chromium-123.0.6312.105/third_party/dawn/third_party/dxc/tools/clang/test/DXC/unreferenced_struct_selft_assignment_crash.hlsl 1970-01-01 00:00:00.000000000 +0000 +++ chromium-123.0.6312.122/third_party/dawn/third_party/dxc/tools/clang/test/DXC/unreferenced_struct_selft_assignment_crash.hlsl 2024-04-10 21:26:06.000000000 +0000 @@ -0,0 +1,24 @@ +// RUN: %dxc -T cs_6_0 %s | FileCheck %s + +// Validate that self-assignment of a static struct instance that is not +// referenced does not crash the compiler. This was resulting in an ASAN +// use-after-free in ScalarReplAggregatesHLSL because DeleteMemcpy would +// attempt to delete both source and target, even if both were the same. +// CHECK: define void @main() { +// CHECK-NEXT: ret void +// CHECK-NEXT: } + +struct MyStruct { + int m0; +}; + +static MyStruct s; + +void foo() { + s = s; +} + +[numthreads(1, 1, 1)] +void main() { + foo(); +} diff -Nru chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc --- chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc 2024-04-02 23:53:09.000000000 +0000 +++ chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_auralinux_unittest.cc 2024-04-10 21:25:24.000000000 +0000 @@ -2267,7 +2267,8 @@ AXNodeData root; root.id = 1; root.role = ax::mojom::Role::kRootWebArea; - root.AddIntListAttribute(ax::mojom::IntListAttribute::kDetailsIds, {2}); + // Add 999 as a target relation id to test that invalid relations are dropped. + root.AddIntListAttribute(ax::mojom::IntListAttribute::kDetailsIds, {2, 999}); AXNodeData child1; child1.id = 2; @@ -2278,7 +2279,7 @@ AXNodeData child2; child2.id = 3; child2.role = ax::mojom::Role::kStaticText; - std::vector labelledby_ids = {1, 4}; + std::vector labelledby_ids = {1, 999, 4}; child2.AddIntListAttribute(ax::mojom::IntListAttribute::kLabelledbyIds, labelledby_ids); diff -Nru chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_delegate.cc chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_delegate.cc --- chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_delegate.cc 2024-04-02 23:53:09.000000000 +0000 +++ chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_delegate.cc 2024-04-10 21:25:24.000000000 +0000 @@ -514,8 +514,7 @@ std::vector nodes; for (int32_t target_id : target_ids) { ui::AXPlatformNode* target = GetFromNodeID(target_id); - if (target && IsValidRelationTarget(target) && - !base::Contains(nodes, target)) { + if (IsValidRelationTarget(target) && !base::Contains(nodes, target)) { nodes.push_back(target); } } @@ -547,7 +546,7 @@ for (AXNodeID node_id : ids) { ui::AXPlatformNode* node = GetFromNodeID(node_id); - if (node && IsValidRelationTarget(node)) { + if (IsValidRelationTarget(node)) { nodes.push_back(node); } } @@ -556,6 +555,13 @@ bool AXPlatformNodeDelegate::IsValidRelationTarget( AXPlatformNode* target) const { + if (!target) { + // This can occur when the target of the relation was not included in the + // tree, e.g. it was display:none or role="none". + // By returning false here, the relation will not be included in the + // relations reported via platform APIs. + return false; + } DCHECK_GT(GetUniqueId(), kInvalidAXUniqueId); DCHECK(target); DCHECK_GT(target->GetUniqueId(), kInvalidAXUniqueId); diff -Nru chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_win_unittest.cc chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_win_unittest.cc --- chromium-123.0.6312.105/ui/accessibility/platform/ax_platform_node_win_unittest.cc 2024-04-02 23:53:09.000000000 +0000 +++ chromium-123.0.6312.122/ui/accessibility/platform/ax_platform_node_win_unittest.cc 2024-04-10 21:25:24.000000000 +0000 @@ -1917,7 +1917,8 @@ root.id = 1; root.role = ax::mojom::Role::kRootWebArea; - std::vector describedby_ids = {1, 2, 3}; + // Add 999 as a target relation id to test that invalid relations are dropped. + std::vector describedby_ids = {1, 2, 3, 999}; root.AddIntListAttribute(ax::mojom::IntListAttribute::kDescribedbyIds, describedby_ids);