Version in base suite: 135.0.7049.95-1~deb12u1 Version in overlay suite: 137.0.7151.68-1~deb12u1 Base version: chromium_137.0.7151.68-1~deb12u1 Target version: chromium_137.0.7151.119-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/c/chromium/chromium_137.0.7151.68-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/c/chromium/chromium_137.0.7151.119-1~deb12u1.dsc DEPS | 10 ash/constants/ash_features.cc | 10 ash/constants/ash_features.h | 4 ash/strings/ash_strings_be.xtb | 2 ash/strings/ash_strings_cs.xtb | 4 ash/strings/ash_strings_de.xtb | 2 ash/strings/ash_strings_ja.xtb | 4 ash/strings/ash_strings_kn.xtb | 18 ash/strings/ash_strings_pt-BR.xtb | 2 ash/strings/ash_strings_sw.xtb | 12 ash/strings/ash_strings_zh-TW.xtb | 2 ash/system/palette/palette_tray.cc | 4 ash/webui/camera_app_ui/resources/strings/camera_strings_de.xtb | 2 ash/webui/camera_app_ui/resources/strings/camera_strings_fr.xtb | 2 ash/webui/camera_app_ui/resources/strings/camera_strings_it.xtb | 2 ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb | 2 ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb | 2 ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb | 2 base/profiler/module_cache.cc | 11 base/profiler/module_cache.h | 17 build/util/LASTCHANGE | 2 build/util/LASTCHANGE.committime | 2 chrome/VERSION | 2 chrome/app/resources/chromium_strings_de.xtb | 2 chrome/app/resources/chromium_strings_kn.xtb | 2 chrome/app/resources/generated_resources_ar.xtb | 4 chrome/app/resources/generated_resources_be.xtb | 8 chrome/app/resources/generated_resources_bg.xtb | 2 chrome/app/resources/generated_resources_da.xtb | 2 chrome/app/resources/generated_resources_de.xtb | 4 chrome/app/resources/generated_resources_en-GB.xtb | 6 chrome/app/resources/generated_resources_es-419.xtb | 4 chrome/app/resources/generated_resources_es.xtb | 4 chrome/app/resources/generated_resources_fa.xtb | 18 chrome/app/resources/generated_resources_fi.xtb | 2 chrome/app/resources/generated_resources_fr-CA.xtb | 8 chrome/app/resources/generated_resources_fr.xtb | 8 chrome/app/resources/generated_resources_hu.xtb | 2 chrome/app/resources/generated_resources_id.xtb | 8 chrome/app/resources/generated_resources_is.xtb | 2 chrome/app/resources/generated_resources_it.xtb | 2 chrome/app/resources/generated_resources_iw.xtb | 4 chrome/app/resources/generated_resources_ja.xtb | 4 chrome/app/resources/generated_resources_ka.xtb | 2 chrome/app/resources/generated_resources_kn.xtb | 44 chrome/app/resources/generated_resources_ko.xtb | 20 chrome/app/resources/generated_resources_ms.xtb | 4 chrome/app/resources/generated_resources_ne.xtb | 2 chrome/app/resources/generated_resources_no.xtb | 4 chrome/app/resources/generated_resources_pl.xtb | 8 chrome/app/resources/generated_resources_pt-BR.xtb | 22 chrome/app/resources/generated_resources_ro.xtb | 2 chrome/app/resources/generated_resources_ru.xtb | 6 chrome/app/resources/generated_resources_sr-Latn.xtb | 4 chrome/app/resources/generated_resources_sr.xtb | 4 chrome/app/resources/generated_resources_th.xtb | 2 chrome/app/resources/generated_resources_uz.xtb | 6 chrome/app/resources/generated_resources_vi.xtb | 8 chrome/app/resources/generated_resources_zh-CN.xtb | 18 chrome/app/resources/generated_resources_zh-TW.xtb | 10 chrome/app/resources/google_chrome_strings_ar.xtb | 4 chrome/app/resources/google_chrome_strings_de.xtb | 4 chrome/app/resources/google_chrome_strings_fr.xtb | 2 chrome/app/resources/google_chrome_strings_kn.xtb | 2 chrome/app/resources/google_chrome_strings_ko.xtb | 4 chrome/app/resources/google_chrome_strings_ms.xtb | 2 chrome/app/resources/google_chrome_strings_pt-BR.xtb | 12 chrome/app/resources/google_chrome_strings_vi.xtb | 4 chrome/app/resources/google_chrome_strings_zh-TW.xtb | 2 chrome/browser/BUILD.gn | 2 chrome/browser/about_flags.cc | 6 chrome/browser/ash/login/demo_mode/demo_session.cc | 8 chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.cc | 3 chrome/browser/extensions/api/cookies/cookies_api.cc | 5 chrome/browser/extensions/extension_service.cc | 86 chrome/browser/extensions/extension_service.h | 15 chrome/browser/extensions/extension_service_unittest.cc | 29 chrome/browser/extensions/service_worker_tracking_browsertest.cc | 55 chrome/browser/flag-metadata.json | 8 chrome/browser/flag_descriptions.cc | 6 chrome/browser/flag_descriptions.h | 5 chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h | 2 chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc | 18 chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h | 42 chrome/browser/os_crypt/app_bound_encryption_win.cc | 2 chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb | 4 chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb | 4 chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb | 2 chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb | 2 chrome/browser/safe_browsing/tailored_security/consented_message_android.cc | 18 chrome/browser/safe_browsing/tailored_security/consented_message_android.h | 8 chrome/browser/safe_browsing/tailored_security/consented_message_android_unittest.cc | 97 chrome/browser/ui/BUILD.gn | 1 chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb | 10 chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb | 8 chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb | 4 chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb | 10 chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb | 10 chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb | 4 chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb | 18 chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb | 8 chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb | 24 chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb | 4 chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb | 2 chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb | 10 chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb | 6 chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb | 6 chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb | 6 chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb | 2 chrome/browser/ui/browser_tab_strip_model_delegate.cc | 7 chrome/browser/ui/lens/lens_overlay_controller.cc | 5 chrome/browser/ui/omnibox/chrome_omnibox_client.cc | 12 chrome/browser/ui/tab_helpers.cc | 8 chrome/browser/ui/tabs/tab_strip_model.cc | 4 chrome/browser/ui/thumbnails/thumbnail_scheduler_impl.cc | 7 chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc | 11 chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.h | 1 chrome/browser/ui/views/frame/browser_view.cc | 11 chrome/browser/ui/web_applications/web_app_browsertest.cc | 18 chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager.cc | 7 chrome/browser/updater/check_updater_health_task.cc | 4 chrome/common/chrome_features.cc | 2 chromeos/CHROMEOS_LKGM | 2 chromeos/profiles/arm.afdo.newest.txt | 2 chromeos/profiles/atom.afdo.newest.txt | 2 chromeos/profiles/bigcore.afdo.newest.txt | 2 chromeos/strings/chromeos_strings_de.xtb | 2 chromeos/strings/chromeos_strings_es.xtb | 2 chromeos/strings/chromeos_strings_hu.xtb | 2 chromeos/strings/chromeos_strings_ja.xtb | 2 chromeos/strings/chromeos_strings_ko.xtb | 4 chromeos/strings/chromeos_strings_ms.xtb | 2 chromeos/strings/chromeos_strings_no.xtb | 2 chromeos/strings/chromeos_strings_pl.xtb | 2 chromeos/strings/chromeos_strings_pt-BR.xtb | 4 chromeos/strings/chromeos_strings_zh-CN.xtb | 4 chromeos/strings/chromeos_strings_zh-TW.xtb | 24 components/autofill/core/browser/payments/credit_card_otp_authenticator.cc | 41 components/autofill/core/browser/payments/credit_card_otp_authenticator.h | 4 components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb | 2 components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb | 4 components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb | 4 components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb | 2 components/certificate_transparency/data/log_list.json | 20 components/embedder_support/android/java/strings/translations/web_contents_delegate_android_strings_iw.xtb | 2 components/omnibox/common/omnibox_feature_configs.cc | 8 components/omnibox/common/omnibox_feature_configs.h | 4 components/optimization_guide/content/browser/page_context_eligibility.cc | 18 components/optimization_guide/content/browser/page_context_eligibility.h | 11 components/password_manager/core/browser/features/password_features.cc | 4 components/password_manager/core/browser/features/password_features.h | 3 components/password_manager/core/browser/sync/password_sync_bridge.cc | 36 components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc | 183 components/policy/resources/policy_templates_zh-CN.xtb | 2 components/policy/resources/policy_templates_zh-TW.xtb | 66 components/strings/components_strings_da.xtb | 2 components/strings/components_strings_de.xtb | 6 components/strings/components_strings_es.xtb | 4 components/strings/components_strings_fa.xtb | 10 components/strings/components_strings_fr.xtb | 2 components/strings/components_strings_id.xtb | 2 components/strings/components_strings_it.xtb | 4 components/strings/components_strings_iw.xtb | 4 components/strings/components_strings_ja.xtb | 12 components/strings/components_strings_kn.xtb | 10 components/strings/components_strings_ko.xtb | 6 components/strings/components_strings_mk.xtb | 2 components/strings/components_strings_pl.xtb | 8 components/strings/components_strings_pt-BR.xtb | 12 components/strings/components_strings_th.xtb | 2 components/strings/components_strings_tr.xtb | 6 components/strings/components_strings_vi.xtb | 5 components/strings/components_strings_zh-CN.xtb | 6 components/strings/components_strings_zh-HK.xtb | 2 components/strings/components_strings_zh-TW.xtb | 8 components/sync/model/processor_entity.cc | 54 components/sync/model/processor_entity.h | 26 content/browser/accessibility/browser_accessibility_android.cc | 5 content/browser/accessibility/browser_accessibility_android_unittest.cc | 127 content/browser/accessibility/browser_accessibility_manager_android.cc | 106 content/browser/accessibility/browser_accessibility_manager_android.h | 10 content/browser/accessibility/web_contents_accessibility_android.cc | 2 content/browser/accessibility/web_contents_accessibility_android.h | 4 content/browser/indexed_db/instance/leveldb/backing_store.cc | 5 content/browser/preloading/prerender/prerender_browsertest.cc | 82 content/browser/preloading/prerender/prerender_host.cc | 2 content/browser/preloading/prerender/prerender_host.h | 7 content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.cc | 12 content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.h | 2 content/public/test/prerender_test_util.cc | 2 debian/changelog | 36 debian/chromium-shell.install | 1 debian/control | 1 debian/patches/fixes/armhf-icf.patch | 20 debian/patches/series | 15 debian/rules | 4 extensions/browser/process_manager.cc | 3 extensions/browser/service_worker/service_worker_task_queue.cc | 34 extensions/browser/service_worker/service_worker_task_queue.h | 15 extensions/common/extension_resource.cc | 54 extensions/common/extension_resource_unittest.cc | 34 gpu/config/gpu_lists_version.h | 2 infra/config/generated/builders/ci/linux-chromeos-rel/targets/chromium.chromiumos.json | 1 infra/config/generated/builders/try/linux-chromeos-rel/targets/chromium.chromiumos.json | 1 infra/config/targets/mixins.star | 14 infra/config/targets/tests.star | 1 media/audio/win/audio_low_latency_input_win.cc | 61 media/audio/win/audio_low_latency_input_win.h | 8 media/audio/win/audio_low_latency_input_win_unittest.cc | 171 net/http/transport_security_state_static.pins | 4 net/http/transport_security_state_static_pins.json | 2 remoting/resources/remoting_strings_de.xtb | 2 third_party/blink/common/mediastream/media_stream_request.cc | 10 third_party/blink/public/strings/translations/blink_strings_ca.xtb | 2 third_party/blink/renderer/core/dom/scroll_button_pseudo_element.cc | 101 third_party/blink/renderer/core/dom/scroll_button_pseudo_element.h | 2 third_party/blink/renderer/core/view_transition/view_transition.cc | 7 third_party/blink/renderer/platform/media/web_audio_source_provider_impl.cc | 3 third_party/blink/renderer/platform/media/web_audio_source_provider_impl_test.cc | 42 third_party/blink/renderer/platform/runtime_enabled_features.json5 | 4 third_party/devtools-frontend/src/front_end/core/common/Settings.ts | 13 third_party/devtools-frontend/src/front_end/panels/network/RequestHTMLView.ts | 2 tools/metrics/histograms/enums.xml | 2 tools/metrics/histograms/metadata/extensions/enums.xml | 9 tools/metrics/histograms/metadata/extensions/histograms.xml | 11 tools/metrics/histograms/metadata/navigation/enums.xml | 2 tools/metrics/histograms/metadata/password/enums.xml | 4 tools/metrics/histograms/metadata/safe_browsing/enums.xml | 1 ui/accessibility/extensions/strings/accessibility_extensions_strings_de.xtb | 2 ui/accessibility/platform/test_ax_platform_tree_manager_delegate.cc | 2 ui/accessibility/platform/test_ax_platform_tree_manager_delegate.h | 7 ui/android/java/strings/translations/android_ui_strings_fr.xtb | 2 ui/android/java/strings/translations/android_ui_strings_ru.xtb | 2 ui/gtk/BUILD.gn | 2 ui/gtk/gtk_ui_platform.h | 5 ui/gtk/gtk_ui_platform_stub.cc | 4 ui/gtk/gtk_ui_platform_stub.h | 1 ui/gtk/gtk_util.cc | 11 ui/gtk/gtk_util.h | 2 ui/gtk/input_method_context_impl_gtk.cc | 50 ui/gtk/input_method_context_impl_gtk.h | 2 ui/gtk/wayland/gtk_ui_platform_wayland.cc | 6 ui/gtk/wayland/gtk_ui_platform_wayland.h | 1 ui/gtk/x/gtk_event_loop_x11.cc | 147 ui/gtk/x/gtk_event_loop_x11.h | 36 ui/gtk/x/gtk_ui_platform_x11.cc | 29 ui/gtk/x/gtk_ui_platform_x11.h | 5 ui/strings/translations/ax_strings_de.xtb | 2 ui/strings/translations/ax_strings_iw.xtb | 2 ui/strings/translations/ax_strings_pt-BR.xtb | 2 ui/strings/translations/ax_strings_zh-CN.xtb | 2 ui/strings/translations/ui_strings_de.xtb | 2 ui/strings/translations/ui_strings_fr.xtb | 2 ui/strings/translations/ui_strings_hi.xtb | 2 ui/strings/translations/ui_strings_ru.xtb | 2 ui/views/accessibility/view_accessibility.cc | 33 ui/views/accessibility/view_accessibility.h | 2 ui/views/accessibility/view_ax_platform_node_delegate.cc | 12 ui/views/accessibility/view_ax_platform_node_delegate.h | 1 ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc | 2 ui/views/widget/desktop_aura/desktop_window_tree_host_win.h | 1 ui/views/win/hwnd_message_handler.cc | 10 ui/views/win/hwnd_message_handler_delegate.h | 3 v8/include/v8-version.h | 2 v8/src/execution/isolate.cc | 2 v8/src/objects/js-regexp.cc | 30 v8/src/wasm/baseline/liftoff-assembler.cc | 7 v8/src/wasm/baseline/liftoff-compiler.cc | 2 v8/src/wasm/canonical-types.h | 3 v8/src/wasm/value-type.h | 4 v8/tools/builtins-pgo/profiles/meta.json | 2 v8/tools/builtins-pgo/profiles/x64-rl.profile | 3686 +- v8/tools/builtins-pgo/profiles/x64.profile | 3173 +- v8/tools/builtins-pgo/profiles/x86-rl.profile |15206 ++++------ v8/tools/builtins-pgo/profiles/x86.profile | 7633 ++--- 282 files changed, 16996 insertions(+), 15969 deletions(-) diff -Nru chromium-137.0.7151.68/DEPS chromium-137.0.7151.119/DEPS --- chromium-137.0.7151.68/DEPS 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/DEPS 2025-06-16 21:26:50.000000000 +0000 @@ -299,7 +299,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'src_internal_revision': '20e891874f9ef110be0818e240888408e4af4e1a', + 'src_internal_revision': '2ff49810e41d1e91464b7101d3265d6849422f79', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. @@ -307,7 +307,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'e398f9bf6d5c8a768ab736f46146d7349cf31547', + 'v8_revision': '075234cf3d7622d9d588a6f748fc4501aa23080c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. @@ -395,7 +395,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'fdc8ca697612f90e7ddf2621dffbc43733d2d238', + 'devtools_frontend_revision': 'afc8e923a37090445d6d97ca23fea49d9eb7b9cf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -1495,7 +1495,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - '26f5e76bae3c02c7fe01346d34526df109ec28ce', + '392b91ce5e15a07e945b608fb8f18877bbb96865', 'condition': 'checkout_android and checkout_src_internal', }, @@ -4689,7 +4689,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - '7c3fe3379137057f6c1addfe349067c06066b647', + 'e2355eb9049dcaf6f156fcaab368fd08e720fd82', 'condition': 'checkout_ios and checkout_src_internal', }, diff -Nru chromium-137.0.7151.68/ash/constants/ash_features.cc chromium-137.0.7151.119/ash/constants/ash_features.cc --- chromium-137.0.7151.68/ash/constants/ash_features.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/constants/ash_features.cc 2025-06-16 21:26:50.000000000 +0000 @@ -2850,6 +2850,11 @@ "DemoModeAppLandscapeLocked", base::FEATURE_ENABLED_BY_DEFAULT); +// The pref kSecondaryGoogleAccountSigninAllowed is set to false in Demo Mode. +BASE_FEATURE(kDemoModeSecondaryGoogleAccountSigninAllowedFalse, + "DemoModeSecondaryGoogleAccountSigninAllowedFalse", + base::FEATURE_ENABLED_BY_DEFAULT); + // Moves toasts to the bottom-side corner where the status area is instead of // the center when enabled. BASE_FEATURE(kSideAlignedToasts, @@ -3667,6 +3672,11 @@ return base::FeatureList::IsEnabled(kDemoModeAppLandscapeLocked); } +bool IsDemoModeSecondaryGoogleAccountSigninAllowedFalse() { + return base::FeatureList::IsEnabled( + kDemoModeSecondaryGoogleAccountSigninAllowedFalse); +} + bool IsEcheSWAEnabled() { return base::FeatureList::IsEnabled(kEcheSWA); } diff -Nru chromium-137.0.7151.68/ash/constants/ash_features.h chromium-137.0.7151.119/ash/constants/ash_features.h --- chromium-137.0.7151.68/ash/constants/ash_features.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/constants/ash_features.h 2025-06-16 21:26:50.000000000 +0000 @@ -922,6 +922,8 @@ BASE_DECLARE_FEATURE(kFeatureManagementFeatureAwareDeviceDemoMode); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kDemoModeAppLandscapeLocked); +COMPONENT_EXPORT(ASH_CONSTANTS) +BASE_DECLARE_FEATURE(kDemoModeSecondaryGoogleAccountSigninAllowedFalse); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSideAlignedToasts); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSmartDimExperimentalComponent); @@ -1130,6 +1132,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDemoModeSignInEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDemoModeWallpaperUpdateEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDemoModeSignInFileCleanupEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) +bool IsDemoModeSecondaryGoogleAccountSigninAllowedFalse(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDeskTemplateSyncEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsDisplayPerformanceModeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsInputDeviceSettingsSplitEnabled(); diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_be.xtb chromium-137.0.7151.119/ash/strings/ash_strings_be.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_be.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_be.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2528,7 +2528,7 @@ Перацягнуць спасылку на панэль закладак Адправіць водгук Адхіліць -Завяршыць працу прылады? +Завяршыць работу прылады? Файл "" не змяшчаецца ў сховішчы. Вызваліце месца. 30 хв Налады гульнявой панэлі diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_cs.xtb chromium-137.0.7151.119/ash/strings/ash_strings_cs.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_cs.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_cs.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -230,7 +230,7 @@ Zapnutí Synchronizace Wi-Fi Hotspot je vypnutý Přepnout na předchozího uživatele -Přepínejte mezi tmavým a světlým motivem. Podržte plochu a poté vyberte Tapeta a styl. +Přepínejte mezi tmavým a světlým motivem. Podržte plochu a poté vyberte Tapety a styl. Vybraná oblast, pomocí kláves se šipkami ji přesunete Adaptér je viditelný pro zařízení Bluetooth. Zavřít nastavení zobrazování oznámení z telefonu @@ -1345,7 +1345,7 @@ Tmavý motiv je zapnutý To může znamenat náklady na data. Nejsou připojena žádná zařízení. -Přepínejte mezi tmavým a světlým motivem. Klikněte pravým tlačítkem na plochu a vyberte Tapeta a styl. +Přepínejte mezi tmavým a světlým motivem. Klikněte pravým tlačítkem na plochu a vyberte Tapety a styl. Váš administrátor záznam zvuku nepovoluje. O další informace požádejte administrátora. Řečové soubory jazyka byly částečně staženy Přejít na tuto kartu diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_de.xtb chromium-137.0.7151.119/ash/strings/ash_strings_de.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1843,7 +1843,7 @@ „Smartphone stummschalten“ ist im Arbeitsprofil nicht verfügbar Die Tastenkombination Alt + Aufwärtspfeil hat sich geändert. Wenn du jetzt die Seite-nach-oben-Taste benötigst, drücke -Taste + Aufwärtspfeil. Die Kamerafunktion „Automatischer Bildausschnitt“ ist deaktiviert. -Ok +OK HID-Geräte Ok Google Drive diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_ja.xtb chromium-137.0.7151.119/ash/strings/ash_strings_ja.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_ja.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_ja.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -434,7 +434,7 @@ アドレスバーに「www.」と「.com」を追加してからウェブサイトを開く カレンダー、 ドリルダウン -バッテリーの状態 %、サイクル数 +バッテリー ヘルス %、サイクル数 解像度の確定 を挿入 エラーが発生しました @@ -1280,7 +1280,7 @@ ロック解除済み プライバシー設定 読み上げ速度 -バッテリーの状態 % | サイクル数 +バッテリー ヘルス % | サイクル数 デスクをテンプレートとして保存 キャスト デバイスを利用できます Google ToDo リストで編集 diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_kn.xtb chromium-137.0.7151.119/ash/strings/ash_strings_kn.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -335,7 +335,7 @@ ಗೇಮ್‌ಗಳು ನೆಟ್‌ವರ್ಕ್‌‍ಗೆ ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ ಇತರ ಬಟನ್ -ನಿಮ್ಮ USB-C, Thunderbolt ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಸಾಧನದ ಕಾರ್ಯಕ್ಷಮತೆ ಸೀಮಿತವಾಗಿರಬಹುದು. +ನಿಮ್ಮ USB-C, Thunderbolt ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಸಾಧನದ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಸೀಮಿತವಾಗಿರಬಹುದು. Alt + Backspace ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. Delete ಕೀ ಬಳಸಲು, ಕೀ + ಬ್ಯಾಕ್‍‍ಸ್ಪೇಸ್ ಅನ್ನು ಒತ್ತಿ. ಹೊಸ ಡೆಸ್ಕ್ ಫುಲ್‌ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡ್ ಮಾಡಿ @@ -463,7 +463,7 @@ ಸಾಧನ ನಿಧಾನ ಟ್ಯಾಬ್‌ ಅನ್ನು ಡ್ರ್ಯಾಗ್‌ ಮಾಡುವಾಗ, ಅನ್ನು ಒತ್ತಿರಿ Home ಅನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವಿರಾ? ಬಳಸಿ -ಆಯ್ದ ವಿಷಯವನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ +ಆಯ್ದ ವಿಷಯವನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಾಪಿ ಮಾಡಿ ಸುಧಾರಿತ ಲೈಟಿಂಗ್ ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭಿಸಿ Google Assistant ಸಾರ್ವಜನಿಕ ಸೆಶನ್‌ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ. @@ -515,7 +515,7 @@ ಪ್ರತ್ಯುತ್ತರಿಸಿ ಕಡಿಮೆ ವಿದ್ಯುತ್ ಚಾರ್ಜರ್‌ಗೆ ಪ್ಲಗ್ ಮಾಡಲಾಗಿದೆ. ಬ್ಯಾಟರಿ ಚಾರ್ಜಿಂಗ್ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಲ್ಲದಿರಬಹುದು. ಪ್ರಾರಂಭಿಸಿ -ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ +ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಾಪಿ ಮಾಡಿ , "ಅಳಿಸಿ" ಸಕ್ರಿಯ ವಿಂಡೋವನ್ನು ಅನ್‌ಡಾಕ್ ಮಾಡಲಾಗಿದೆ. @@ -774,7 +774,7 @@ ನಿಮ್ಮ ಫೋನ್‌ನ ಇತ್ತೀಚಿನ ಫೋಟೋಗಳು, ಮಾಧ್ಯಮ, ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ ExpressKey 1 ಪಕ್ಕದ ಬಟನ್ -ನಿಮ್ಮ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು + V ಅನ್ನು ಒತ್ತುವ ಮೂಲಕ ನಿಮ್ಮ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಇತಿಹಾಸವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಪ್ರಾರಂಭಿಸಲು, ಐಟಂ ಅನ್ನು ನಕಲಿಸಿ. +ನಿಮ್ಮ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು + V ಅನ್ನು ಒತ್ತುವ ಮೂಲಕ ನಿಮ್ಮ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಇತಿಹಾಸವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಪ್ರಾರಂಭಿಸಲು, ಐಟಂ ಅನ್ನು ಕಾಪಿ ಮಾಡಿ. ತೆರೆದಿರುವ ಆ್ಯಪ್‌ಗಳನ್ನು ನೋಡಲು, ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ, ಒತ್ತಿಹಿಡಿಯಿರಿ ಬ್ಯಾಟರಿ ಭರ್ತಿಯಾಗಿದೆ ಆ್ಯಪ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು @@ -870,7 +870,7 @@ ಡೌನ್‌ಲೋಡ್ ನಿರ್ವಾಹಕ ಇಂದು ತೆರೆಯಲಾಗಿದೆ ಸೈನ್ ಔಟ್ ಮಾಡಲು Ctrl+Shift+Q ಅನ್ನು ಎರಡುಬಾರಿ ಒತ್ತಿರಿ. -ಪಠ್ಯ ನಕಲಿಸಿ +ಪಠ್ಯ ಕಾಪಿ ಮಾಡಿ ChromeVox (ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆ) ಪಠ್ಯ ಪ್ರಶ್ನೆಯನ್ನು ತೋರಿಸಲು ಪ್ರಾರಂಭಿಸಿ ಸ್ಕ್ರೀನ್ ಅನ್ನು 90 ಡಿಗ್ರಿ ಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ ತಿರುಗಿಸಿ @@ -1134,7 +1134,7 @@ ಬಣ್ಣ ವಿಲೋಮ ಕೀಬೋರ್ಡ್ ಇನ್ನಷ್ಟು ಬ್ರೈಟ್ ಆಗಿ ಮಾಡಿ ಮುಂದಿನ ವಾರದ -ನಿಮ್ಮ USB-C, USB4 ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಸಾಧನದ ಕಾರ್ಯಕ್ಷಮತೆ ಸೀಮಿತವಾಗಿರಬಹುದು. +ನಿಮ್ಮ USB-C, USB4 ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಸಾಧನದ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಸೀಮಿತವಾಗಿರಬಹುದು. ಪದೇ ಪದೇ ಬಳಸಿರುವುದು ಪೋಷಕ ಆ್ಯಕ್ಸೆಸ್ ಬಟನ್‌ % (ಎಡಬದಿ) @@ -1454,7 +1454,7 @@ ಫೋನ್ ಹಬ್ ಬಳಸಿಕೊಂಡು, ನಿಮ್ಮ ಫೋನ್‌ನ ಸಂದೇಶಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕಳುಹಿಸಿ ಅಥವಾ ಪ್ರತ್ಯುತ್ತರಿಸಿ ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳು, ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಆ್ಯರೋ ಕೀಗಳನ್ನು ಬಳಸಿ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿ ಫೋಕಸ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ. ಟೈಮರ್‌ ಅನ್ನು ಗೆ ಸೆಟ್ ಮಾಡಲಾಗಿದೆ. -ನಿಮ್ಮ ಸಾಧನ ನಿಮ್ಮ ಕೇಬಲ್‌ಗಿಂತ ಹೆಚ್ಚಿನ ಡೇಟಾ ದರವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಸಾಧನದ ಕಾರ್ಯಕ್ಷಮತೆ ಸೀಮಿತವಾಗಿರಬಹುದು. +ನಿಮ್ಮ ಸಾಧನ ನಿಮ್ಮ ಕೇಬಲ್‌ಗಿಂತ ಹೆಚ್ಚಿನ ಡೇಟಾ ದರವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಸಾಧನದ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಸೀಮಿತವಾಗಿರಬಹುದು. ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್ ಆಗಿದೆ ಬಾಕಿಯಿದೆ ನಿಮ್ಮ ನಲ್ಲಿ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲವನ್ನೂ ಮಾಡಲು ಆ್ಯಪ್‌ಗಳನ್ನು ಬಳಸಿ. ಲಾಂಚರ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳನ್ನು ನೀವು ಕಾಣಬಹುದು. @@ -1757,7 +1757,7 @@ ಸ್ಥಳ ಸೇವೆಗಳು, ಸಾಧನದ ಮೈಕ್ರೊಫೋನ್, ಕ್ಯಾಮೆರಾ, ಅಥವಾ ಇತರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸಲು ವೆಬ್‌ಸೈಟ್‌ಗಳು, ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳಿಗೆ ಅನುಮತಿಯನ್ನು ನೀಡುವುದು ನಿಮ್ಮ ಫೋನ್‌ನ ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ, ನಿಶ್ಯಬ್ದಗೊಳಿಸಿ ಹಾಗೂ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಪತ್ತೆ ಮಾಡಿ ಮತ್ತು ಇತ್ತೀಚೆಗೆ ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿ ತೆರೆಯಲಾದ Chrome ಟ್ಯಾಬ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಡೆಸ್ಕ್ 3 -ಚಿತ್ರವನ್ನು ನಕಲಿಸಿ +ಚಿತ್ರವನ್ನು ಕಾಪಿ ಮಾಡಿ ನಿಮ್ಮ Chromebook ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಲು ಅಪ್‌ ಮತ್ತು ಡೌನ್‌ ಆ್ಯರೋಗಳನ್ನು ಬಳಸಿ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಿಂದ ವಿಷಯವನ್ನು ಅಂಟಿಸಿ @@ -2284,7 +2284,7 @@ ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಶೆಲ್ಫ್‌ನಲ್ಲಿ ಇನ್‌ಪುಟ್ ಆಯ್ಕೆಗಳ ಮೆನು ಬಬಲ್ ತೋರಿಸುವ ಶಾರ್ಟ್‌ಕಟ್ ಬದಲಾಗಿದೆ. ಬದಲಿಗೆ ಬಳಸಿ. ಪ್ರತಿಕ್ರಿಯೆ ಟೂಲ್‌ ತೆರೆಯಿರಿ -"ನಕಲಿಸಿ" +"ಕಾಪಿ ಮಾಡಿ" ಡೆಸ್ಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ + V diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_pt-BR.xtb chromium-137.0.7151.119/ash/strings/ash_strings_pt-BR.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1501,7 +1501,7 @@ O ponto de acesso do está ativado. Nenhum dispositivo conectado Para maximizar a janela, mantenha-a pressionada A rede não está ativada. -Desativada +Desativado Ativar Mostrar configurações do Quick Share. Visibilidade selecionada Bateria em % diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_sw.xtb chromium-137.0.7151.119/ash/strings/ash_strings_sw.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_sw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_sw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -170,7 +170,7 @@ Kizindua {NUM_APPS,plural, =1{Onyesha mipangilio ya arifa. Umezima arifa katika programu moja}other{Onyesha mipangilio ya arifa. Umezima arifa katika programu #}} Majedwali ya Google -Chaji ya betri ni asilimia | zimesalia ijae +Chaji ni % | zimesalia ijae ONDOA Fungua kichupo kipya katika dirisha jipya Ilibadilishwa wiki iliyopita @@ -577,7 +577,7 @@ Kikuzaji Kilichoambatishwa Nafasi ya rafu Ongeza muunganisho -Kiwango cha sasa cha chaji ya betri ni asilimia , zimesalia ijae +Kiwango cha sasa cha chaji ya betri ni %, zimesalia ijae Bonyeza na ubofye kiungo Unaweza kuzima vipengele hivi wakati wowote kwenye Mipangilio. Sauti ya kifaa @@ -1308,7 +1308,7 @@ Tafuta tarehe Imeshindwa kuzalisha manukuu Onyesha maudhui upya -Imeunganishwa kwenye kifaa kiitwacho , chaji ya betri ni % +Imeunganishwa na kifaa kiitwacho , chaji ya betri ni % Jaribu maikrofoni yako Hakuna maeneokazi yaliyohifadhiwa Eneokazi la 4 @@ -1504,7 +1504,7 @@ Kimezimwa Washa Onyesha mipangilio ya kipengele cha Kutuma Haraka. Umechagua uonekanaji wa -Chaji ya betri ni asilimia +Chaji ni % Inakusanya maelezo ya mtandao Msimamizi wako wa mfumo anafuatilia skrini zako Weka msimbo wa mzazi @@ -1778,7 +1778,7 @@ + Kamera na maikrofoni zinatumika NENDA KWENYE MIPANGILIO -Chaji ya betri ni asilimia . Kiokoa Betri kimewashwa. +Chaji ni asilimia . Kiokoa Betri kimewashwa. Kinadhibitiwa na msimamizi wako Kipengele cha ufuatiliaji wa utendaji kimewashwa Kiolesura cha kimeondolewa na kimeunganishwa na Kiolesura cha @@ -2016,7 +2016,7 @@ Inasasisha Breli na ChromeVox zimewashwa Ondoa kidokezo cha kuweka mipangilio ya kuangalia arifa na programu za simu yako -Chaji ya betri ni asilimia | zimesalia chaji iishe +Chaji ni % | zimesalia chaji iishe Dirisha linalotumika limepachikwa kulia. Kurekodi skrini Imenakiliwa kwenye ubao wa kunakili. diff -Nru chromium-137.0.7151.68/ash/strings/ash_strings_zh-TW.xtb chromium-137.0.7151.119/ash/strings/ash_strings_zh-TW.xtb --- chromium-137.0.7151.68/ash/strings/ash_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/strings/ash_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -479,7 +479,7 @@ 活動監測工具 一併複製格式 在應用程式排列顯示畫面中移動應用程式圖示 -Insert 鍵 +插入 導覽步驟 ,共 個步驟。你可以使用啟動器找出裝置的「設定」,然後在「設定」中試著自訂 ,例如變更桌布或設定螢幕保護程式。 搜尋、檔案、應用程式和其他內容... 系統 diff -Nru chromium-137.0.7151.68/ash/system/palette/palette_tray.cc chromium-137.0.7151.119/ash/system/palette/palette_tray.cc --- chromium-137.0.7151.68/ash/system/palette/palette_tray.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/system/palette/palette_tray.cc 2025-06-16 21:26:50.000000000 +0000 @@ -430,6 +430,10 @@ if (!GetVisible()) return; + // Also check preferred visibility. + if (!visible_preferred()) + return; + // Only respond on the internal display. if (!IsWidgetOnInternalDisplay()) return; diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_de.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_de.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -130,7 +130,7 @@ Fotoaufnahme nicht möglich Wird nach unten verschoben Alle zurücksetzen -Ok +OK Porträt 3 Sekunden 10-Sekunden-Timer diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_fr.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_fr.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_fr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_fr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -55,7 +55,7 @@ Vous pouvez désormais copier directement le texte de votre photo Rejoindre "" Micro -Le lien a bien été copié. +Lien copié Paramètres des photos Retardateur désactivé Impossible d'enregistrer la vidéo, car elle est trop courte diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_it.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_it.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_it.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_it.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -103,7 +103,7 @@ Medio Salva come PDF Attiva modalità Esperto -Esegui la scansione del documento +Scansiona documento Modalità Esperto Off Griglia diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -73,7 +73,7 @@ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲಾಗಿದೆ ಈ ಕ್ಯಾಮರಾ ರೆಸಲ್ಯೂಷನ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಪುಟದ ಥಂಬ್‌ನೇಲ್ -ಕಾರ್ಯಕ್ಷಮತೆ ಲಾಗ್‌ಗಳನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ +ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಲಾಗ್‌ಗಳನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಿ ಫೋಟೋ ತೆಗೆಯುವುದನ್ನು ನಿಲ್ಲಿಸಿ ಮುಂಬದಿ ಕ್ಯಾಮರಾ ಸಂಗ್ರಹಣೆ ನಿರ್ವಹಣೆ diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -105,7 +105,7 @@ Ativar o modo Especialista Digitalizar documento Modo Especialista -Desativada +Desativado Grade Ativado Diminuir zoom diff -Nru chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb --- chromium-137.0.7151.68/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/ash/webui/camera_app_ui/resources/strings/camera_strings_ru.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -55,7 +55,7 @@ Теперь можно копировать текст из фотографии. Подключиться к сети "" Микрофон -Готово +Ссылка скопирована. Настройки фотографий Таймер отключен Видео не сохранено, так как оно слишком короткое. diff -Nru chromium-137.0.7151.68/base/profiler/module_cache.cc chromium-137.0.7151.119/base/profiler/module_cache.cc --- chromium-137.0.7151.68/base/profiler/module_cache.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/base/profiler/module_cache.cc 2025-06-16 21:26:50.000000000 +0000 @@ -90,6 +90,7 @@ for (const std::unique_ptr& module : native_modules_) { result.push_back(module.get()); } + base::AutoLock locker(lock_); for (const std::unique_ptr& module : non_native_modules_) { result.push_back(module.get()); } @@ -103,6 +104,7 @@ flat_set defunct_modules_set(defunct_modules.begin(), defunct_modules.end()); + base::AutoLock locker(lock_); // Reorder the modules to be removed to the last slots in the set, then move // them to the inactive modules, then erase the moved-from modules from the // set. This is a variation on the standard erase-remove idiom, which is @@ -153,9 +155,12 @@ const ModuleCache::Module* ModuleCache::GetExistingModuleForAddress( uintptr_t address) const { - const auto non_native_module_loc = non_native_modules_.find(address); - if (non_native_module_loc != non_native_modules_.end()) { - return non_native_module_loc->get(); + { + base::AutoLock locker(lock_); + const auto non_native_module_loc = non_native_modules_.find(address); + if (non_native_module_loc != non_native_modules_.end()) { + return non_native_module_loc->get(); + } } const auto native_module_loc = native_modules_.find(address); diff -Nru chromium-137.0.7151.68/base/profiler/module_cache.h chromium-137.0.7151.119/base/profiler/module_cache.h --- chromium-137.0.7151.68/base/profiler/module_cache.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/base/profiler/module_cache.h 2025-06-16 21:26:50.000000000 +0000 @@ -15,6 +15,8 @@ #include "base/containers/flat_set.h" #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" +#include "base/synchronization/lock.h" +#include "base/thread_annotations.h" #include "build/build_config.h" #if BUILDFLAG(IS_WIN) @@ -94,8 +96,8 @@ // Gets the module containing |address| or nullptr if |address| is not within // a module. The returned module remains owned by and has the same lifetime as // the ModuleCache object. - const Module* GetModuleForAddress(uintptr_t address); - std::vector GetModules() const; + const Module* GetModuleForAddress(uintptr_t address) LOCKS_EXCLUDED(lock_); + std::vector GetModules() const LOCKS_EXCLUDED(lock_); // Updates the set of non-native modules maintained by the // ModuleCache. Non-native modules represent regions of non-native executable @@ -116,7 +118,8 @@ // the same call. void UpdateNonNativeModules( const std::vector& defunct_modules, - std::vector> new_modules); + std::vector> new_modules) + LOCKS_EXCLUDED(lock_); // Adds a custom native module to the cache. This is intended to support // native modules that require custom handling. In general, native modules @@ -144,7 +147,8 @@ // NOTE: Only users that create their own modules and need control over native // module creation should use this function. Everyone else should use // GetModuleForAddress(). - const Module* GetExistingModuleForAddress(uintptr_t address) const; + const Module* GetExistingModuleForAddress(uintptr_t address) const + LOCKS_EXCLUDED(lock_); private: // Heterogenously compares modules by base address, and modules and @@ -173,6 +177,9 @@ std::set, ModuleAndAddressCompare> native_modules_; + // Lock to guard |non_native_modules_|. + mutable base::Lock lock_; + // Set of non-native modules currently mapped into the address space, sorted // by base address. Represented as flat_set because std::set does not support // extracting move-only element types prior to C++17's @@ -182,7 +189,7 @@ // native_modules_ to support preferential lookup of non-native modules // embedded in native modules; see comment on UpdateNonNativeModules(). base::flat_set, ModuleAndAddressCompare> - non_native_modules_; + non_native_modules_ GUARDED_BY(lock_); // Unsorted vector of inactive non-native modules. Inactive modules are no // longer mapped in the address space and don't participate in address lookup, diff -Nru chromium-137.0.7151.68/build/util/LASTCHANGE chromium-137.0.7151.119/build/util/LASTCHANGE --- chromium-137.0.7151.68/build/util/LASTCHANGE 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/build/util/LASTCHANGE 2025-06-16 21:26:50.000000000 +0000 @@ -1,2 +1,2 @@ -LASTCHANGE=2989ffee9373ea8b8623bd98b3cb350a8e95cadc-refs/branch-heads/7151@{#1873} +LASTCHANGE=e0ac9d12dff5f2d33c935958b06bf1ded7f1c08c-refs/branch-heads/7151@{#2356} LASTCHANGE_YEAR=2025 diff -Nru chromium-137.0.7151.68/build/util/LASTCHANGE.committime chromium-137.0.7151.119/build/util/LASTCHANGE.committime --- chromium-137.0.7151.68/build/util/LASTCHANGE.committime 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/build/util/LASTCHANGE.committime 2025-06-16 21:26:50.000000000 +0000 @@ -1 +1 @@ -1748634632 \ No newline at end of file +1750109210 \ No newline at end of file diff -Nru chromium-137.0.7151.68/chrome/VERSION chromium-137.0.7151.119/chrome/VERSION --- chromium-137.0.7151.68/chrome/VERSION 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/VERSION 2025-06-16 21:26:50.000000000 +0000 @@ -1,4 +1,4 @@ MAJOR=137 MINOR=0 BUILD=7151 -PATCH=68 +PATCH=119 diff -Nru chromium-137.0.7151.68/chrome/app/resources/chromium_strings_de.xtb chromium-137.0.7151.119/chrome/app/resources/chromium_strings_de.xtb --- chromium-137.0.7151.68/chrome/app/resources/chromium_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/chromium_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -442,7 +442,7 @@ Wenn Tests aktiviert sind, können mithilfe der Anzeigenanalyse von dir besuchte Websites Informationen von Chromium anfordern, mit denen sie die Leistung ihrer Werbung analysieren können. Durch die Anzeigenanalyse wird das websiteübergreifende Tracking eingeschränkt, indem so wenig Informationen wie möglich zwischen Websites ausgetauscht werden. Wenn du eine Website besuchst, kann diese von Chromium dann deine Interessen anfordern, um die dir gezeigte Werbung zu personalisieren. Chromium kann bis zu drei Interessen teilen. Link in Chromium-Inkognitofenster öffnen -Ok +OK Schwache Passwörter sind einfach zu erraten. Erlaube Chromium, ein sicheres Passwort für deine Onlinekonten zu erstellen und zu speichern. Chromium OS-Nutzungsbedingungen Chromium benötigt für diese Website die Berechtigung, auf dein Mikrofon zuzugreifen diff -Nru chromium-137.0.7151.68/chrome/app/resources/chromium_strings_kn.xtb chromium-137.0.7151.119/chrome/app/resources/chromium_strings_kn.xtb --- chromium-137.0.7151.68/chrome/app/resources/chromium_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/chromium_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -211,7 +211,7 @@ ಭಾಷಾ ಪಿಕರ್‌ Chromium ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ನೀವು ಕೆಲವು ಸಂಗತಿಗಳ ಕುರಿತು ಗಮನಹರಿಸಬೇಕಿದೆ - ವಿವರಗಳಿಗಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ. Chromium ತೆರೆಯಲು ಮತ್ತು ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಿಮ್ಮ ಹೆಸರನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. -ಪಠ್ಯ ನಕಲಿಸಿ +ಪಠ್ಯ ಕಾಪಿ ಮಾಡಿ ಈ Chromium ಪ್ರೊಫೈಲ್‌ಗೆ ಈಗಾಗಲೇ ಅವರು ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿರಿಸಲು, Chromium ನಿಮಗಾಗಿ ನಿಮ್ಮ ಸ್ವಂತ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಬಹುದು. ಈ ವಿಸ್ತರಣೆಯು Chrome ವೆಬ್ ಸ್ಟೋರ್‌ನ ಕಾರ್ಯನೀತಿಯನ್ನು ಉಲ್ಲಂಘಿಸುತ್ತದೆ ಮತ್ತು ಸುರಕ್ಷಿತ ಆಗಿಲ್ಲದಿರಬಹುದು. Chromium ನಿಂದ ವಿಸ್ತರಣೆಯನ್ನು ತೆಗೆದುಹಾಕಿ ಇದರಿಂದ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಇನ್ನು ಮುಂದೆ ವೀಕ್ಷಿಸಲು ಮತ್ತು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ar.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ar.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ar.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ar.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -17,7 +17,7 @@ يمكن لهذه الإضافة قراءة بياناتك وتغييرها على المواقع. يمكنك التحكُّم في المواقع التي يمكن لهذه الإضافة الوصول إليها. ‏تفعيل "متجر Google Play" تصدير الإشارات المرجعية -يتذكّر "" طريقة تسجيل دخولك ويسجِّل دخولك تلقائيًا إن أمكن ذلك. وعندما يكون متوقفًا، سيُطلَب منك تأكيد البيانات في كل مرّة. +يتذكّر "" طريقة تسجيل دخولك ويسجِّل دخولك تلقائيًا إن أمكن ذلك. وعندما يكون هذا الخيار غير مفعّل، سيُطلَب منك تأكيد البيانات في كل مرّة. ليس الآن اسم الموقع الإلكتروني عناصر التحكُّم في الألعاب متاحة الآن @@ -10101,7 +10101,7 @@ جارٍ تنزيل قائمة جهات الاتصال... إذن الوصول إلى الميكروفون لـ "" م&دير الإشارات -يتذكّر "" طريقة تسجيل دخولك ويسجِّل دخولك تلقائيًا إن أمكن ذلك. وعندما يكون متوقفًا، سيُطلَب منك تأكيد البيانات في كل مرّة. +يتذكّر "" طريقة تسجيل دخولك ويسجِّل دخولك تلقائيًا إن أمكن ذلك. وعندما يكون هذا الخيار غير مفعّل، سيُطلَب منك تأكيد البيانات في كل مرّة. ‏تم إيقاف الإضافة بواسطة متصفح Chrome. ربما تكون هذه الإضافة غير آمنة. {EXTENSIONS_COUNT,plural, =1{إشارة مرجعية واحدة}zero{‫# إشارة مرجعية}two{إشارتان مرجعيتان}few{‫# إشارات مرجعية}many{‫# إشارة مرجعية}other{‫# إشارة مرجعية}} تعمل مؤسستك على إدارة متصفِّحك diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_be.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_be.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_be.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_be.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2507,7 +2507,7 @@ &Пошук відарыса праз Microsoft Edge Профілі падкантрольных карыстальнікаў выключаны адміністратарам. -Прылада завершыць працу праз Перш чым уключаць яе паўторна, выміце USB-прыладу. Пасля гэтага вы можаце пачаць працаваць з . +Прылада завершыць работу праз Перш чым уключаць яе паўторна, выміце USB-прыладу. Пасля гэтага вы можаце пачаць працаваць з . Ідэнтыфікатар: Адкрыць гасцявы профіль Лімонная цэдра @@ -3591,7 +3591,7 @@ Прылада USB ад кампаніі (прадукт ) Абагуліць дудл Адправіць на свае &прылады -Для змянення налад мікрафона неабходна завяршыць працу функцыі "". Каб працягнуць, завяршыце працу функцыі "". +Для змянення налад мікрафона неабходна завяршыць работу функцыі "". Каб працягнуць, завяршыце работу функцыі "". Не ўдалося падключыць абагулены рэсурс: падключана занадта шмат рэсурсаў SMB. Уключыць ізаляваныя вэб-праграмы Калі ў вас няма ўліковага запісу, стварыце яго, выбраўшы першы варыянт. @@ -4529,7 +4529,7 @@ Шлях занадта доўгі Ключ бяспекі скінуты Аднарог -Завяршыць працу: +Завяршыць работу: Супергерой Журнал прылады Згаджаюся @@ -6676,7 +6676,7 @@ Часавы пояс Некаторыя сайты могуць не рэагаваць на гэты запыт Chrome аўтаматычна выдаляе сайты, наведаныя больш чым 30 дзён таму назад. Сайт, які вы наведаеце паўторна, можа з’явіцца ў спісе зноў, але вы можаце забараніць яму прапаноўваць вам рэкламу. Даведайцеся больш пра кіраванне прыватнасцю ў рэкламе ў Chrome. -Упэўніцеся, што прылада падключана да сілкавання, і не выключайце яе. Усталяванне можа заняць да 20 хвілін. Пасля ўсталявання прылада аўтаматычна завершыць працу. +Упэўніцеся, што прылада падключана да сілкавання, і не выключайце яе. Усталяванне можа заняць да 20 хвілін. Пасля ўсталявання прылада аўтаматычна завершыць работу. Alt + Backspace Месцазнаходжанне Здаецца, работа функцыі Voice Match з Памочнікам ужо наладжана карыстальнікам на іншай прыладзе. Зробленыя пры наладцы запісы былі выкарыстаны для стварэння галасавой мадэлі на гэтай прыладзе. diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_bg.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_bg.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_bg.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_bg.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -9342,7 +9342,7 @@ Влизате в профила си… Създаване на резервно копие в Google Диск. По всяко време можете лесно да възстановите данните на устройството си или да го замените с друго. Резервното ви копие включва данните от приложенията. Резервните ви копия се качват в Google и се шифроват посредством паролата за профила ви в Google. При добавянето на профила възникна грешка -Устройството се регистрира... +Устрой­ството се регистрира... Сайтовете използват тази функция, за да записват и използват въведеното с мишката ви, например за игри или приложения за отдалечен работен плот Включване на Google Play Магазин Използване на по-малко натрапчиви съобщения diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_da.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_da.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_da.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_da.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -5546,7 +5546,7 @@ Synkronisering af notifikationer kunne ikke konfigureres Tjek din internetforbindelse på begge enheder, og aktivér Bluetooth. Prøv derefter igen. Rulning -Vis +Se Websites kan afspille lyd for at levere lyd til musik, videoer og andre medier Dataene er slettet. Administrer appnotifikationer diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_de.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_de.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -8437,7 +8437,7 @@ Textcursor hervorheben Held Aus Gruppe entfernen -Ok +OK Arbeitsspeicher auf Grundlage der Inaktivität von Tabs freigeben Port Gerät @@ -8840,7 +8840,7 @@ Gruppe teilen Sprachausgabe-Stimme des Systems Dieser Anmeldedienst wird von gehostet. -Dieses Profil wird von verwaltet – bestimmte Informationen sind für diese Person sichtbar, unter anderem: +Dieses Profil wird von verwaltet. Daher können andere Personen als du bestimmte Informationen in deinem Profil einsehen, wie z. B.: Immer die App verwenden, um unterstützte Weblinks zu öffnen? Die virtuelle Maschine konnte nicht installiert werden. Versuche es noch einmal oder wende dich an deinen Administrator. Fehlercode: . Lege den Finger immer wieder in leicht geänderter Position auf, bis der Abdruck vollständig erfasst ist diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_en-GB.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_en-GB.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_en-GB.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_en-GB.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2909,7 +2909,7 @@ {NUM_OF_FILES,plural, =1{Free up space in to move this file}other{Free up space in to move these files}} not attached DER-encoded binary, single certificate -Open in New Tab +Open in new tab Add Google Account For this change to take effect, reconnect your external accessories. Don't allow sites to use motion sensors @@ -4807,7 +4807,7 @@ No internet connection ctrl Show in finder -Close Other Tabs +Close other tabs File incomplete Uninstalling Storage and power @@ -8459,7 +8459,7 @@ Not detected Text cursor highlighter Hero -Remove From Group +Remove from group OK Free up memory based on tab inactivity Port diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_es-419.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_es-419.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_es-419.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_es-419.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -8847,7 +8847,7 @@ Compartir grupo Voz en la función de texto a voz del sistema El servicio de acceso a la cuenta está alojado en - administra este perfil, por lo que puede ver cierta información, lo que incluye + administra este perfil, por lo que puede ver cierta información, como la siguiente: ¿Deseas usar siempre la app de para abrir vínculos web compatibles? No se pudo instalar la máquina virtual. Inténtalo de nuevo o comunícate con el administrador. Código de error: . Sigue levantando el dedo para agregar diferentes partes de la huella dactilar. @@ -9756,7 +9756,7 @@ No permitir que los sitios descarguen varios archivos automáticamente En el futuro, asegúrate de quitar el dispositivo extraíble desde la aplicación Archivos antes de desconectarlo. De lo contario, es posible que pierdas datos. Traducir siempre -Para garantizar que este dispositivo se pueda usar de forma segura, tu organización puede consultar información sobre el sistema operativo, el navegador, la configuración y el software instalado en el dispositivo +Para garantizar que este dispositivo se pueda usar de forma segura, tu organización puede consultar información sobre el sistema operativo, el navegador, la configuración y el software instalado en el dispositivo. Phone Hub Haz clic para personalizar los controles de juego Usar el bloqueo de pantalla para completar contraseñas diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_es.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_es.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_es.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_es.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2846,7 +2846,7 @@ La navegación web debería ser rápida. Dedica un momento a revisar tus extensiones ahora. Ir a Un navegador web rápido, seguro y fácil de usar creado para la Web actual. -Quiero registrarme +Registrarme Este dispositivo no recibirá más actualizaciones de seguridad. Cambia a un nuevo Chromebook. no tiene permiso para enviar notificaciones. Se te volverá a preguntar la próxima vez que visites el sitio. Sección anidada dentro de un grupo: @@ -9767,7 +9767,7 @@ Permite que los puertos de Linux estén disponibles para otros dispositivos de tu red. Los datos locales se eliminarán Cambiar acceso -Destacar brevemente el objeto seleccionado +Destacar brevemente el objeto enfocado Lo sentimos, pero al menos una partición del dispositivo de almacenamiento externo no se ha podido montar. Eliminar los datos al cerrar todas las ventanas Cambiar el nombre de tu perfil diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_fa.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_fa.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_fa.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_fa.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -344,7 +344,7 @@ سرپرست شما توصیه می‌کند که مقدار خاصی را برای این گزینه وارد کنید. پردازش درخواست... پیدا کردن اسکنرهای سند -برگه‌های غیرفعال +زبانه‌های غیرفعال قلعه ویرایش گذرکلید محتوا پخش نشد. لطفاً دوباره امتحان کنید. @@ -1316,7 +1316,7 @@ برای تنظیم اثر انگشت، از فرزندتان بخواهید حسگر اثر انگشت را در پایین گوشه سمت راست صفحه‌کلید لمس کند. داده‌های اثر انگشت فرزندتان به‌صورت ایمن ذخیره می‌شود و هرگز از این خارج نمی‌شود. از گذرواژه قوی استفاده کنید اسکن انجام نشد -سؤالی درباره این صفحه بپرسید +سؤال درباره این صفحه ‏ممکن است برنامه‌های Google Play برای خواندن فایل‌های موجود در دستگاه‌های ذخیره‌سازی خارجی و نوشتن در آن‌ها، نیازمند دسترسی کامل به سیستم فایل باشند. فایل‌ها و پوشه‌های ایجادشده در دستگاه برای هر فردی که از درایو خارجی استفاده می‌کند، نمایان است. بیشتر بدانید از سرپرست بخواهید این برنامه را به‌روزرسانی کند انتخاب &همه @@ -2855,7 +2855,7 @@ مرور وب باید سریع باشد اکنون چندلحظه برایبررسی افزونه‌هایتان وقت بگذارید. رفتن به مرورگر وب سریع، ساده و ایمن که برای وب مدرن طراحی شده است. -من را ثبت‌نام کن +ثبت‌نام شوم ‏به‌روزرسانی‌های امنیتی به‌اتمام رسیده است. به Chromebook جدید ارتقا دهید. اعلان‌ها برای مجاز نیست. در بازدید بعدی دوباره از شما سؤال خواهد شد. بخش در گروه قرار گرفت: @@ -5738,7 +5738,7 @@ بازرسی صفحه &پس‌زمینه دوربینی دردسترس نیست در نظر گرفتن کلیدهای ردیف بالا به عنوان کلیدهای عملکرد -سؤالی درباره این سند بپرسید +سؤال درباره این سند ‏تنظیمات فایل Microsoft 365 ‏تأیید Powerwash سرپرست سیستم روش‌های ورودی دردسترس را محدود کرده است. @@ -6071,7 +6071,7 @@ ‏از «لنز Google» برای انجام تکالیف کمک بگیرید ‏درگاه اشکال‌زدایی NaCl شناسه فرایند -برگه جدید +زبانه جدید &جای‌گذاری ‏صفحه‌خوان در ChromeOS (یعنی ChromeVox) عمدتاً توسط افراد نابینا یا کم‌بینا استفاده می‌شود تا بتوانند نوشتار نمایش‌داده‌شده در صفحه را با ترکیب‌کننده گفتار یا نمایشگر بریل بخوانند. برای روشن کردن ChromeVox، کلید فاصله را فشار دهید. بعداز فعال شدن ChromeVox، به گشت سریعی هدایت می‌شوید. رد کردن @@ -6728,7 +6728,7 @@ ‏سایت‌ها می‌توانند برای اتصال به دستگاه‌های HID درخواست دهند ‏تنظیمات Android سبز و سفید -برگه‌های اخیر +زبانه‌های اخیر بدون برنامه‌های در حال اجرا در پس‌زمینه کوکی‌های طرف سوم در «حالت ناشناس» مسدود می‌شوند ارسال بازخورد برای «ساختن مضمون با هوش مصنوعی» @@ -8528,7 +8528,7 @@ تنظیم روشی سریع‌تر جهت باز کردن قفل دستگاه محصول نامشخص از ‏سایت می‌تواند از MIDI استفاده کند -برگه‌های جدید +زبانه‌های جدید فقط کشف رمز تا تخفیف اجازه‌های جانبی @@ -9271,7 +9271,7 @@ ‏درحال بررسی محتوی Linux گذرواژه‌تان را وارد کنید سرپرست این زبان را مجاز نکرده است -برگهٔ جدید +زبانه جدید ‏Smart Lock حساب شما را تأیید نکرد. برای ورود، گذرواژه‌تان را تایپ کنید. ‏متأسفانه قادر به بازیابی تنظیماتتان نیست. برای رفع این خطا، باید دستگاهتان را با Powerwash بازنشانی کند. ‏بازارسال درگاه Linux @@ -9780,7 +9780,7 @@ ‏درگاه‌های Linux را در دسترس دستگاه‌های دیگری که در شبکه‌تان موجود هستند قرار دهید. داده‌های محلی حذف خواهد شد تغییر دسترسی -شیء متمرکزشده سریع برجسته شود +نشان دادن یک تغییر رنگ سریع روی شیء متمرکزشده متأسفیم، حداقل یک بخش از دستگاه ذخیره‌سازی خارجی نصب نمی‌شود. با بسته شدن همه پنجره‌ها، داده‌ها حذف می‌شود تغییر نام نمایه diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_fi.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_fi.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_fi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_fi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -8393,7 +8393,7 @@ Käytetty muisti Mobiiliverkon SIM-lukituksen PIN-koodi Kokeile toista laitetta -Tekstitysvalinnat +Tekstitysasetukset Et enää näe Google Kalenteria tällä sivulla Älä näytä varoituksia ennen suojaamattomille sivustoille siirtymistä Hallinnoi laajennuksia diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_fr-CA.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_fr-CA.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_fr-CA.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_fr-CA.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -3031,7 +3031,7 @@ extensions URI Bloquée temporairement afin de protéger votre confidentialité -Déplacer l'écran pour laisser le pointeur de la souris au centre de l'écran +L'écran se déplace pour laisser le pointeur de la souris au centre de l'écran Autorisé à utiliser des témoins tiers est épinglée par votre administrateur Déposer pour installer @@ -7226,7 +7226,7 @@ Paramètres Pour ajouter cette page à votre liste de lecture, cliquez sur l'icône de favori Tritanomalie -Mises en garde ignorées +Avertissements ignorés Libérer de l'espace de stockage Partage correctement configuré. Supprimer le profil @@ -11243,7 +11243,7 @@ Sélectionnez l'onglet Plus de gestes, puis activez Naviguer d'une page à l'autre pour naviguer vers l'avant et l'arrière Le service Concierge n'est pas accessible. Double réservation -Déplacer l'écran lorsque le pointeur de la souris touche les rebords de l'écran +L'écran se déplace lorsque le pointeur de la souris touche les rebords de l'écran Turquoise foncé La barre de titre est maintenant masquée Paramètre&s @@ -11379,7 +11379,7 @@ Toujours afficher l'icône Diffuser cet onglet Notes de version -Déplacer l'écran en continu pour suivre le mouvement du pointeur de la souris +L'écran se déplace en continu pour suivre le mouvement du curseur de la souris Protège contre les sites, les téléchargements et les extensions qui sont réputés être dangereux. Si une page fait quelque chose de suspect, les URL et les éléments de contenu de la page sont envoyés à la navigation sécurisée Google. d'espace libre est nécessaire pour utiliser Linux. Pour libérer de l'espace, supprimez des fichiers sur votre appareil. Tutoriel de ChromeVox diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_fr.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_fr.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_fr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_fr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -17,7 +17,7 @@ Cette extension peut lire et modifier vos données sur les sites. Vous pouvez contrôler les sites auxquels elle a accès. Activer le Google Play Store Exporter les favoris -Le mémorise votre mode de connexion et vous connecte automatiquement quand c'est possible. Lorsque la connexion automatique est désactivée, une confirmation vous sera demandée à chaque fois. +Le mémorise votre mode de connexion et vous connecte automatiquement quand c'est possible. Lorsque la connexion automatique est désactivée, une confirmation vous est demandée à chaque fois. Pas maintenant Nom du site Commandes de jeu désormais disponibles @@ -3224,7 +3224,7 @@ Connexion et validation… Limite de temps supprimée pour Vous semblez être hors connexion. -Le lien a bien été copié. +Lien copié Cellules sur chaque ligne : Sélectionnez le répertoire racine de l'extension à empaqueter. Pour mettre à jour une extension, sélectionnez également le fichier de clé privée à réutiliser. Cette modification est définitive et irréversible. Les mises à jour étendues s'appliquent à tous les utilisateurs de cet appareil. En savoir plus @@ -3465,7 +3465,7 @@ Toujours afficher les URL en entier Rechercher dans les onglets Système horaire sur 24 heures -Vous ne pouvez pas vous connecter avec ce compte +Impossible de se connecter avec ce compte Une réinitialisation est requise pour la clé de sécurité interne Clé publique de la courbe elliptique Remarque : Il se peut qu'une voix similaire ou un enregistrement permettent d'accéder à vos résultats personnels ou à l'Assistant. @@ -10090,7 +10090,7 @@ Téléchargement de la liste de contacts… Autorisation d'accéder au micro de &Gestionnaire de favoris - mémorise votre mode de connexion et vous connecte automatiquement quand c'est possible. Lorsque la connexion automatique est désactivée, une confirmation vous sera demandée à chaque fois. + mémorise votre mode de connexion et vous connecte automatiquement quand c'est possible. Lorsque la connexion automatique est désactivée, une confirmation vous est demandée à chaque fois. Désactivée par Chrome. Cette extension est peut-être dangereuse. {EXTENSIONS_COUNT,plural, =1{# favori}one{# favori}other{# favoris}} Votre navigateur est géré par votre organisation diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_hu.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_hu.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_hu.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_hu.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -275,7 +275,7 @@ Szünet Biztonsági hardverkulcsát nem védi PIN-kód. A bejelentkezési adatok kezeléséhez előbb hozzon létre PIN-kódot. Az IBAN érvénytelen -Kövesse a telefonon megjelenő utasításokat, vagy használja a Fényképezőgép alkalmazást +Kövesse a telefonon megjelenő utasításokat, vagy használja a Kamera alkalmazást Ablakok visszaállítása az előző munkamenetből… Hatalmas megtakarítás Eltávolítás diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_id.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_id.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_id.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_id.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2533,7 +2533,7 @@ Ukuran Sebenarnya Maaf, terjadi error. Berikan masukan dan cantumkan #bruschetta di deskripsi. Kode error adalah . Pembersihan gagal, Anda mungkin perlu melakukannya secara manual. Akses dan kelola printer dengan mudah -Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat yang lebih akurat. Perkiraan lokasi perangkat yang lebih akurat tersebut digunakan oleh aplikasi dan layanan Android untuk menyediakan fitur berdasarkan lokasi. Untuk melakukannya, Google secara berkala mengumpulkan informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat ini untuk berkontribusi pada lokasi sinyal nirkabel yang diperoleh melalui crowdsource. +Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat dengan lebih akurat, yang kemudian dimanfaatkan aplikasi dan layanan untuk menyediakan fitur berbasis lokasi. Untuk melakukannya, Google secara berkala memproses informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat ini untuk ikut memberikan lokasi sinyal nirkabel secara crowdsource. Google menggunakan informasi yang dikumpulkan dari perangkat ini untuk: meningkatkan akurasi lokasi serta layanan yang berbasis lokasi; dan secara umum meningkatkan, menyediakan, serta mengelola layanan Google. Kami memproses informasi ini berdasarkan kepentingan sah Google dan pihak ketiga untuk melayani kebutuhan pengguna. Informasi ini tidak digunakan untuk mengidentifikasi individu mana pun. Anda dapat menonaktifkan Akurasi Lokasi kapan saja di setelan lokasi perangkat ini di bagian Setelan > Privasi dan keamanan > Kontrol privasi > Akses lokasi > Setelan lokasi lanjutan. Jika Akurasi Lokasi dinonaktifkan, data Akurasi Lokasi tidak akan dikumpulkan. Untuk aplikasi dan layanan Android, hanya alamat IP yang digunakan, jika tersedia, untuk menentukan lokasi perangkat ini, yang dapat memengaruhi ketersediaan dan akurasi lokasi untuk aplikasi dan layanan Android seperti Google Maps. Mencadangkan aplikasi dan file Linux @@ -4359,7 +4359,7 @@ Tab ini terhubung ke perangkat USB Pilih zona waktu Logout -Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat yang lebih akurat. Perkiraan lokasi perangkat yang lebih akurat tersebut digunakan oleh aplikasi dan layanan Android untuk menyediakan fitur berdasarkan lokasi. Untuk melakukannya, Google secara berkala mengumpulkan informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat ini untuk berkontribusi pada lokasi sinyal nirkabel yang diperoleh melalui crowdsource. +Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat dengan lebih akurat, yang kemudian dimanfaatkan aplikasi dan layanan untuk menyediakan fitur berbasis lokasi. Untuk melakukannya, Google secara berkala memproses informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat ini untuk ikut memberikan lokasi sinyal nirkabel secara crowdsource. Google menggunakan informasi yang dikumpulkan dari perangkat ini untuk: meningkatkan akurasi lokasi serta layanan yang berbasis lokasi; dan secara umum meningkatkan, menyediakan, serta mengelola layanan Google. Kami memproses informasi ini berdasarkan kepentingan sah Google dan pihak ketiga untuk melayani kebutuhan pengguna. Informasi ini tidak digunakan untuk mengidentifikasi individu mana pun. Anda dapat menonaktifkan Akurasi Lokasi kapan saja di setelan lokasi perangkat ini di bagian Setelan > Privasi dan keamanan > Kontrol privasi > Akses lokasi > Setelan lokasi lanjutan. Jika Akurasi Lokasi dinonaktifkan, data Akurasi Lokasi tidak akan dikumpulkan. Untuk aplikasi dan layanan Android, hanya alamat IP yang digunakan, jika tersedia, untuk menentukan lokasi perangkat ini, yang dapat memengaruhi ketersediaan dan akurasi lokasi untuk aplikasi dan layanan Android seperti Google Maps. Pelajari lebih lanjut Akurasi Lokasi @@ -4525,7 +4525,7 @@ Pulihkan peringatan (offline) Sandi file -Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat yang lebih akurat. Perkiraan lokasi perangkat yang lebih akurat tersebut digunakan oleh aplikasi dan layanan Android untuk menyediakan fitur berdasarkan lokasi. Untuk melakukannya, Google secara berkala mengumpulkan informasi tentang sensor perangkat dan sinyal nirkabel di dekat Anda untuk berkontribusi pada lokasi sinyal nirkabel yang diperoleh melalui crowdsource. +Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat dengan lebih akurat, yang kemudian dimanfaatkan aplikasi dan layanan untuk menyediakan fitur berbasis lokasi. Untuk melakukannya, Google secara berkala memproses informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat Anda untuk ikut memberikan lokasi sinyal nirkabel secara crowdsource. Google menggunakan informasi ini tanpa mengidentifikasi Anda untuk: meningkatkan akurasi lokasi serta layanan yang berbasis lokasi; dan secara umum meningkatkan, menyediakan, serta mengelola layanan Google. Kami memproses informasi ini berdasarkan kepentingan sah Google dan pihak ketiga untuk melayani kebutuhan pengguna. Anda dapat menonaktifkan Akurasi Lokasi kapan saja di setelan lokasi perangkat Anda di bagian Setelan > Privasi dan keamanan > Kontrol privasi > Akses lokasi > Setelan lokasi lanjutan. Jika Akurasi Lokasi dinonaktifkan, data Akurasi Lokasi tidak akan dikumpulkan. Untuk aplikasi dan layanan Android, hanya alamat IP yang digunakan, jika tersedia, untuk menentukan lokasi perangkat Anda, yang dapat memengaruhi ketersediaan dan akurasi lokasi untuk aplikasi dan layanan Android seperti Google Maps. Pelajari lebih lanjut Akurasi Lokasi @@ -11080,7 +11080,7 @@ Situs tidak berfungsi? Saat aktif Buka tab baru dengan sekali klik -Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat yang lebih akurat. Perkiraan lokasi perangkat yang lebih akurat tersebut digunakan oleh aplikasi dan layanan Android untuk menyediakan fitur berdasarkan lokasi. Untuk melakukannya, Google secara berkala mengumpulkan informasi tentang sensor perangkat dan sinyal nirkabel di dekat Anda untuk berkontribusi pada lokasi sinyal nirkabel yang diperoleh melalui crowdsource. +Jika Akurasi Lokasi diaktifkan, informasi tentang sinyal nirkabel, seperti titik akses Wi-Fi dan menara BTS, serta data sensor perangkat, seperti akselerometer dan giroskop, akan digunakan untuk memperkirakan lokasi perangkat dengan lebih akurat, yang kemudian dimanfaatkan aplikasi dan layanan untuk menyediakan fitur berbasis lokasi. Untuk melakukannya, Google secara berkala memproses informasi tentang sensor perangkat dan sinyal nirkabel di dekat perangkat Anda untuk ikut memberikan lokasi sinyal nirkabel secara crowdsource. Google menggunakan informasi ini tanpa mengidentifikasi Anda untuk: meningkatkan akurasi lokasi serta layanan yang berbasis lokasi; dan secara umum meningkatkan, menyediakan, serta mengelola layanan Google. Kami memproses informasi ini berdasarkan kepentingan sah Google dan pihak ketiga untuk melayani kebutuhan pengguna. Anda dapat menonaktifkan Akurasi Lokasi kapan saja di setelan lokasi perangkat Anda di bagian Setelan > Privasi dan keamanan > Kontrol privasi > Akses lokasi > Setelan lokasi lanjutan. Jika Akurasi Lokasi dinonaktifkan, data Akurasi Lokasi tidak akan dikumpulkan. Untuk aplikasi dan layanan Android, hanya alamat IP yang digunakan, jika tersedia, untuk menentukan lokasi perangkat Anda, yang dapat memengaruhi ketersediaan dan akurasi lokasi untuk aplikasi dan layanan Android seperti Google Maps. Buka di diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_is.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_is.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_is.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_is.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -10579,7 +10579,7 @@ Frekari upplýsingar Hafðu Ctrl eða Alt með Líma og para við stíl -Hafa umsjón með geymslu +Stjórna geymslurými Eyða og skrá út Opna allt í nýjum flipahóp Aðgangsorði deilt diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_it.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_it.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_it.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_it.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -8737,7 +8737,7 @@ Per consentire a di installare estensioni in futuro senza la tua approvazione, apri l'app Family Link sul tuo dispositivo e aggiorna le impostazioni di Google Chrome per . Partecipa al gruppo di schede con {NUM_OTHER_MEMBERS,plural, =0{Partecipa al gruppo di schede con }=1{Partecipa al gruppo di schede con e altri #}other{Partecipa al gruppo di schede con e altri #}} -Utilizza un account diverso +Usa un account diverso Hotspot istantaneo Sposta la password Per impedire ad altri di utilizzare la tua password, apri l'app per cambiare la password diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_iw.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_iw.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_iw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_iw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -644,7 +644,7 @@ לא ניתן להעלות את '' עבור עיצוב. צריך לבחור פעולה למקש הפעלת &הסנכרון… -כרטיס התצוגה המקדימה שמופיע כשמעבירים את העכבר מעל לכרטיסייה +כרטיס התצוגה המקדימה שמופיע כשמציבים את הסמן מעל לכרטיסייה ‏ניתן להשתמש בחשבון הזה עם אפליקציות ל-Android. כדי להוסיף חשבון של מישהו אחר, יש להוסיף במקום זאת משתמש חדש אל . יכול להיות שהרשאות שכבר ניתנו לאפליקציות יחולו על החשבון הזה. אפשר לקבוע את ההרשאות לאפליקציות ל-Android בהגדרות האפליקציות. @@ -2511,7 +2511,7 @@ ‏השדרוג הזה מאפס את ה-Chromebook ומסיר את נתוני המשתמש הנוכחיים. אי אפשר לפנות נפח אחסון כשסנכרון הקבצים פועל ההגדרה הזו מנוהלת על-ידי הורה. -התעלמות מתנועות סמן קטנות +התעלמות מתנועות קטנות של הסמן תאורת לילה תוכנת האנטי-וירוס זיהתה וירוס. ‏קובצי ה-Cookie הבאים נחסמו diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ja.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ja.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ja.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ja.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1655,7 +1655,7 @@ 入力したパスフレーズが正しくありません からの通知を許可しない 設定ボタン -電池の状態 +バッテリー ヘルス 別のユーザーとしてリンクを開く Google パスワード マネージャーの 6 桁のリカバリ PIN を作成(PIN の /6 桁)してください 最近使った Chrome タブを表示するには、Chrome 同期を有効にします。詳細 @@ -11012,7 +11012,7 @@ これには、インストールしたソフトウェア、ファイル、ブラウザ、デバイスのオペレーティング システム、IP アドレスに関する情報が含まれます。 デベロッパー ツール、IDE、エディタを実行します。詳細 拡張機能のルート ディレクトリ -選択箇所にリンクをコピーしました +選択箇所のリンクをコピーしました 復元を実行 上余白 無効なURL diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ka.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ka.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ka.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ka.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2845,7 +2845,7 @@ ვების დათვალიერება სწრაფი უნდა იყოს. დაუთმეთ დრო გამოყენებული გაფართოებების შემოწმებას. -ზე გადასვლა სწრაფი, მარტივი და უსაფრთხო ვებ-ბრაუზერი, შექმნილი სპეციალურად თანამედროვე ინტერნეტისთვის. -რეგისტრაცია +დამარეგისტრირე უსაფრთხოების განახლებებს აღარ მიიღებთ. გამოცვალეთ თქვენი Chromebook. შეტყობინებები არ არის დაშვებული -ისთვის. მომდევნო ვიზიტისას ხელახლა გაკითხავთ. სექცია ჩადგმულია ჯგუფში: diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_kn.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_kn.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -74,7 +74,7 @@ {NUM_PASSWORDS,plural, =1{ಈ ಸಾಧನದಲ್ಲಿ 1 ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಗೆ ಆಮದು ಮಾಡಲಾಗಿದೆ}one{ಈ ಸಾಧನದಲ್ಲಿ {NUM_PASSWORDS} ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಗೆ ಆಮದು ಮಾಡಲಾಗಿದೆ}other{ಈ ಸಾಧನದಲ್ಲಿ {NUM_PASSWORDS} ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಗೆ ಆಮದು ಮಾಡಲಾಗಿದೆ}} ವಿಂಡೋವನ್ನು ಮೇಲಕ್ಕೆ ಮತ್ತು ಎಡಕ್ಕೆ ಸರಿಸಲಾಗಿದೆ Linux ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೇ? -ಲಿಂಕ್ ಪ&ಠ್ಯ ನಕಲಿಸಿ +ಲಿಂಕ್ ಪ&ಠ್ಯ ಕಾಪಿ ಮಾಡಿ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಹಂಚಲಾಗಿದೆ {COUNT,plural, =1{ ಇಂದ ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}one{ ಇಂದ ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}other{ ಇಂದ ಅನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ}} ಅದೃಶ್ಯ @@ -97,7 +97,7 @@ ನಿಮ್ಮ ಗೆ ಸುಸ್ವಾಗತ ಈ ಲಿಂಕ್‌ಗಾಗಿ QR ಕೋಡ್ ಅನ್ನು ರಚಿಸಿ ಬಹುತೇಕ ವಿರಾಮದ ಸಮಯ -ಡಿಸ್‌ಪ್ಲೇ ಹೆಸರನ್ನು ನಕಲಿಸಿ +ಡಿಸ್‌ಪ್ಲೇ ಹೆಸರನ್ನು ಕಾಪಿ ಮಾಡಿ ಸ್ಥಾನಾಂತರಿಸು ಮಾಲ್‌ವೇರ್‌ಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸುವ ಮುನ್ನ ಅವುಗಳನ್ನು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ನೀವು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದು @@ -137,7 +137,7 @@ ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಯಾವಾಗ ಬೇಕಾದರೂ ನಲ್ಲಿ ಪರಿಶೀಲಿಸಿ. -ಲಿಂಕ್ ವಿಳಾ&ಸವನ್ನು ನಕಲಿಸಿ +ಲಿಂಕ್ ವಿಳಾ&ಸವನ್ನು ಕಾಪಿ ಮಾಡಿ ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಲ್ಲಿ ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ ಮತ್ತು ಇತರ ಸದಸ್ಯರೊಂದಿಗೆ ಟ್ಯಾಬ್ ಗುಂಪನ್ನು ಸೇರಿಕೊಳ್ಳಿ ಅನ್ನು ಆಯ್ಕೆಮಾಡಲಾಗಿಲ್ಲ. ರಲ್ಲಿ . ಆಯ್ಕೆಮಾಡಲು, Search ಜೊತೆಗೆ Space ಅನ್ನು ಒತ್ತಿರಿ. @@ -688,7 +688,7 @@ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಹಸ್ತಚಾಲಿತವಾಗಿ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ ಮೈಕ್ರೊಫೋನ್ ಸೆಟ್ಟಿಂಗ್‌ನಲ್ಲಿರುವ ಬದಲಾವಣೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು Parallels Desktop ‌ನ ಅಗತ್ಯವಿದೆ ಮುಂದುವರಿಯಲು, Parallels Desktop ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ. ಇತರ ಯಾವುದೇ ವರ್ಗಗಳಿಗೆ ಹೊಂದದಿರುವಂತಹ ಫೈಲ್‌ನಲ್ಲಿ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ -ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ನಕಲಿಸಿ +ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಕಾಪಿ ಮಾಡಿ Chrome ಪ್ರೊಫೈಲ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಿ &ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು @@ -829,7 +829,7 @@ ಅಧಿಸೂಚನೆಗಳನ್ನು ಅನ್‌ಮ್ಯೂಟ್ ಮಾಡಿ '' ಬುಕ್‌ಮಾರ್ಕ್ ಫೋಲ್ಡರ್ ರಚಿಸಲಾಗಿದೆ. ದುರ್ಬಲ ಅಥವಾ ಮರುಬಳಕೆ ಮಾಡಲಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ -ಬಳಕೆದಾರರಹೆಸರು ನಕಲಿಸಿ +ಬಳಕೆದಾರರಹೆಸರು ಕಾಪಿ ಮಾಡಿ ಟ್ಯಾಬ್ ನೋಡಿ (ಅತಿಥಿ) ವೈ-ಫೈ ಸಕ್ರಿಯ @@ -1017,7 +1017,7 @@ ಅಕ್ಷರವನ್ನು ಟೈಪ್ ಮಾಡಿ ಅಡ್ಡಹೆಸರು ಸಮೀಪದಲ್ಲಿರುವ ಪ್ರಿಂಟರ್‌ ಸೇರಿಸಿ -&URL ನಕಲಿಸಿ +&URL ಕಾಪಿ ಮಾಡಿ ಸ್ಪ್ಲಿಟ್ ಸ್ಕ್ರೀನ್ ಸೆಟಪ್ ಬೇರೊಂದು ಖಾತೆಯನ್ನು ಬಳಸಿ ಸಿಂಕ್‌ ಆನ್‌ ಆಗಿದೆ @@ -1370,7 +1370,7 @@ ಓದಲು ಮತ್ತು ಬದಲಾಯಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ನೋಡಲು ಈ ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಲಾಗಿದೆ ಬೆಂಬಲ ಟೂಲ್ -ಹೇಗಿದ್ದರೂ ನಕಲಿಸಿ +ಹೇಗಿದ್ದರೂ ಕಾಪಿ ಮಾಡಿ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ತೋರಿಸಿ {PAGES,plural, =1{ಓದುವ ಪಟ್ಟಿಗೆ ಪುಟವನ್ನು ಸೇರಿಸಲಾಗಿದೆ}one{ಓದುವ ಪಟ್ಟಿಗೆ ಪುಟಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ}other{ಓದುವ ಪಟ್ಟಿಗೆ ಪುಟಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ}} ಎಷ್ಟು ಪ್ರತಿಗಳನ್ನು ಪ್ರಿಂಟ್ ಮಾಡಬೇಕೆಂದು (1 ರಿಂದ ) ಸೂಚಿಸಲು ಸಂಖ್ಯೆಯನ್ನು ಬಳಸಿ. @@ -1696,7 +1696,7 @@ ನಿಮ್ಮ Gemini ಯೊಂದಿಗೆ ಬರುತ್ತದೆ ಒಂದೇ ರೀತಿಯ ಉತ್ಪನ್ನಗಳನ್ನು ಸುಲಭವಾಗಿ ಹೋಲಿಕೆ ಮಾಡಿ ವೈಯಕ್ತೀಕರಣ ಡೇಟಾವನ್ನು ಅಳಿಸಿ... -ಹೈಲೈಟ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಲಿಂಕ್ ಅನ್ನು ನಕಲಿಸಿ +ಹೈಲೈಟ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಲಿಂಕ್ ಅನ್ನು ಕಾಪಿ ಮಾಡಿ USB-C ಗೆ ಸಂಬಂಧಿಸಿದ ನ ಸ್ಕೋಪ್ ವೈ-ಫೈ ಸೇರಿಸಿ... @@ -2105,7 +2105,7 @@ Google Chrome ಹಾಗೂ ChromeOS Flex ನ ಹೆಚ್ಚುವರಿ ನಿಯಮಗಳು ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ತೋರಿಸಿ -&ಲಿಂಕ್ ನಕಲಿಸಿ +&ಲಿಂಕ್ ಕಾಪಿ ಮಾಡಿ ಡೇಟಾ ಹಂಚಿಕೊಳ್ಳುವಿಕೆ ಪ್ರಿಂಟರ್‌ಗೆ ಕನೆಕ್ಟ್ ಆಗಿಲ್ಲ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ರೀಸೆಟ್ ಮಾಡಿ @@ -2565,7 +2565,7 @@ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಹುಡುಕಲಾಗುತ್ತಿದೆ ಪ್ರಾರಂಭಿಸಿ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು Google Password Manager ನಲ್ಲಿ ಸೇವ್ ಮಾಡಲು, ಸ್ಥಳ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕ ಐಕಾನ್ -ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ +ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಾಪಿ ಮಾಡಿ ಆ್ಯಪ್‌ವೊಂದು ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಅನುಮತಿಸಲು ಗೌಪ್ಯತೆ ಸ್ವಿಚ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ. ಹಂಚಿಕೊಳ್ಳಲಾಗಿರುವುದು Microsoft Qualified Subordination @@ -3090,7 +3090,7 @@ ನಿಮ್ಮ ಬ್ರೌಸರ್‌ಗೆ ಹೊಸ ನೋಟವನ್ನು ನೀಡಲು Chrome ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ನೀವು ಅದನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡಬಹುದು ಮತ್ತು ಮೆನುವಿನಿಂದ ತೆರೆಯಬಹುದು Ctrl -ಚಾರ್ಜಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯಲು, ಹೊಂದಿಕೆಯಾಗುವ Dell ಅಥವಾ USB ಟೈಪ್-C ಪವರ್ ಅಡಾಪ್ಟರ್ ಬಳಸಿ. +ಚಾರ್ಜಿಂಗ್ ಮತ್ತು ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಸಮಸ್ಯೆಗಳನ್ನು ತಡೆಯಲು, ಹೊಂದಿಕೆಯಾಗುವ Dell ಅಥವಾ USB ಟೈಪ್-C ಪವರ್ ಅಡಾಪ್ಟರ್ ಬಳಸಿ. Linux ಡಿಸ್ಕ್ ಮರುಗಾತ್ರಗೊಳಿಸುವಿಕೆ ಇದು ಅತಿಥಿಗಳೊಂದಿಗೆ USB ಸಾಧನಗಳ ನಿರಂತರ ಹಂಚಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಇದು ಎಲ್ಲಾ ನಿರಂತರತೆಯನ್ನು ರೀಸೆಟ್ ಮಾಡುತ್ತದೆ. ನೀವು ಖಚಿತವಾಗಿರುವಿರಾ? ಎಡ ಅಂಚು @@ -3607,7 +3607,7 @@ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ರಚಿಸಿ, ಸೇವ್ ಮಾಡಿ ಹಾಗೂ ನಿರ್ವಹಿಸಿ. ಇದರಿಂದ ನೀವು ಸೈಟ್‌ಗಳು ಮತ್ತು ಆ್ಯಪ್‌ಗಳಿಗೆ ಸುಲಭವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು. ನಿಮ್ಮ iPhone ನಲ್ಲಿ ಈ ವಿಳಾಸವನ್ನು ಬಳಸಿ ಮರು-ಸ್ಕ್ಯಾನ್ -ಲಿಂಕ್ ವಿಳಾ&ಸವನ್ನು ನಕಲಿಸಿ +ಲಿಂಕ್ ವಿಳಾ&ಸವನ್ನು ಕಾಪಿ ಮಾಡಿ ಸ್ಥಿರ-ಅಗಲ ಫಾಂಟ್ ಶಾರ್ಟ್‌ ಸೇರಿಕೊಳ್ಳಿ ಮತ್ತು ತೆರೆಯಿರಿ @@ -4341,13 +4341,13 @@ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಸೇರಿಸಬೇಡಿ ಡೆಮೋ ಮೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ ಮುಂದಿನ ಪುಟ -ಹೈಲೈಟ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಲಿಂಕ್ ಅನ್ನು ನಕಲಿಸಿ +ಹೈಲೈಟ್ ಮಾಡುವುದಕ್ಕಾಗಿ ಲಿಂಕ್ ಅನ್ನು ಕಾಪಿ ಮಾಡಿ ತ್ವರಿತ ಉತ್ತರಗಳು ವಿವರಣೆ ನೀವು ಇಷ್ಟಪಡುವದನ್ನು ಊಹಿಸಬಹುದಾದ ಸೈಟ್‌ಗಳ ಪೂಲ್‌ನಲ್ಲಿ ನೀವು ಸೈಟ್ ಅನ್ನು ಬಯಸಿದರೆ, ಅದನ್ನು ಪುನಃ ಸೇರಿಸಿ ChromeOS ಬ್ಲೂಟೂತ್ ನಿರ್ಬಂಧಿಸಿ ಮತ್ತು ತೊರೆಯಿರಿ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸದಂತೆ ಈ ಸೈಟ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿ -ಲಿಂಕ್ ನಕಲಿಸಿ +ಲಿಂಕ್ ಕಾಪಿ ಮಾಡಿ ಈ ಟ್ಯಾಬ್ USB ಸಾಧನಕ್ಕೆ ಕನೆಕ್ಟ್ ಆಗಿದೆ ಸಮಯ ವಲಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ ಸೈನ್ ಔಟ್ @@ -4392,7 +4392,7 @@ ತಲೆಯನ್ನು ಕೊಂಚ ಮೂವ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಕರ್ಸರ್ ಜಂಪ್ ಆಗುವುದನ್ನು ನೀವು ತಡೆಯಬಹುದು, ಆದರೆ ಸ್ವಲ್ಪ ವಿಳಂಬವಾಗುತ್ತದೆ. (TCP) -ಬಿಲ್ಡ್ ವಿವರಗಳನ್ನು ನಕಲಿಸಿ +ಬಿಲ್ಡ್ ವಿವರಗಳನ್ನು ಕಾಪಿ ಮಾಡಿ ಎಡಬದಿಯಲ್ಲಿರುವ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ ನಿಘಂಟಿಗೆ &ಸೇರಿಸಿ ಪುಟಗಳನ್ನು ಗೆ ಮುದ್ರಿಸುತ್ತಿದೆ @@ -4774,7 +4774,7 @@ {COUNT,plural, =1{# ಸಂಪರ್ಕ ಲಭ್ಯವಿಲ್ಲ. ಅವರ ಜೊತೆಗೆ ಅನ್ನು ಬಳಸಲು, ಅವರ Google ಖಾತೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಇಮೇಲ್ ವಿಳಾಸಗಳನ್ನು ನಿಮ್ಮ ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸಿ.}one{# ಸಂಪರ್ಕಗಳು ಲಭ್ಯವಿಲ್ಲ. ಅವರೊಂದಿಗೆ ಅನ್ನು ಬಳಸಲು, ಅವರ Google ಖಾತೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಇಮೇಲ್ ವಿಳಾಸಗಳನ್ನು ನಿಮ್ಮ ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸಿ.}other{# ಸಂಪರ್ಕಗಳು ಲಭ್ಯವಿಲ್ಲ. ಅವರೊಂದಿಗೆ ಅನ್ನು ಬಳಸಲು, ಅವರ Google ಖಾತೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಇಮೇಲ್ ವಿಳಾಸಗಳನ್ನು ನಿಮ್ಮ ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸಿ.}} ನಿಮ್ಮ ಭದ್ರತೆ ಕೀಗಾಗಿ ಹೊಸ ಪಿನ್ ಸೆಟಪ್ ಮಾಡಿ ಪಾಸ್‌ವರ್ಡ್ ನಿರ್ವಾಹಕ - ಗೆ ನಕಲಿಸಿ + ಗೆ ಕಾಪಿ ಮಾಡಿ ಬದಲಿಸಿ "" ಪ್ರಕಾರದ ವಿಷಯದೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒದಗಿಸಬೇಕು ಈ ಸೈಟ್‌ನಿಂದ ಬರುವ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ಪ್ಯಾಮ್ ಎಂದು ಫ್ಲ್ಯಾಗ್ ಮಾಡುವುದನ್ನು Chrome ನಿಲ್ಲಿಸುತ್ತದೆ @@ -5747,7 +5747,7 @@ ಥರ್ಡ್-ಪಾರ್ಟಿ ಕುಕಿಗಳು ಸ್ಕ್ರಾಲ್ ಮೋಡ್ ಅನ್ನು ನಮೂದಿಸಲು ಗೆಸ್ಚರ್ ಬಳಸಿ, ನಂತರ ನೀವು ಸ್ಕ್ರಾಲ್ ಮಾಡಲು ಬಯಸುವ ದಿಕ್ಕಿನಲ್ಲಿ ನಿಮ್ಮ ತಲೆಯನ್ನು ಮೂವ್ ಮಾಡಿ. ಸ್ಕ್ರಾಲ್ ಮೋಡ್‌ನಿಂದ ನಿರ್ಗಮಿಸಲು ಗೆಸ್ಚರ್ ಅನ್ನು ಪುನಃ ಬಳಸಿ. ಮುಂದಿನ ವಾಕ್ಯ -ಪಾಸ್‌ವರ್ಡ್ ನಕಲಿಸಿ +ಪಾಸ್‌ವರ್ಡ್ ಕಾಪಿ ಮಾಡಿ Crostini Android ಆ್ಯಪ್ ADB ಮಿಂಚು ಪರಿಶೀಲಿಸಿ @@ -6315,7 +6315,7 @@ ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಪಾಸ್‌ವರ್ಡ್‌ನ ಅಗತ್ಯವಿದೆ ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳ ತೀಕ್ಷ್ಣತೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ () ಅವರು ತಕ್ಷಣವೇ "" ಟ್ಯಾಬ್ ಗುಂಪಿಗೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಾರೆ -&ಲಿಂಕ್ ನಕಲಿಸಿ +&ಲಿಂಕ್ ಕಾಪಿ ಮಾಡಿ ಪುನಃ ಸೈನ್ ಇನ್ ಮಾಡಿ ಕ್ಷಮಸಿ, ನಿಮ್ಮ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯ ಸಾಧನವನ್ನು ಗುರುತಿಸಲಾಗಲಿಲ್ಲ. Crostini @@ -10380,7 +10380,7 @@ ಮೆಮೊರಿ ಸೇವರ್ ಆಯ್ಕೆಗಳು ಆನ್ ಮಾಡಲಾಗುತ್ತಿದೆ... ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಸೇರಿಸಿ -ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಕಲಿಸಿ +ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಕಾಪಿ ಮಾಡಿ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ವರ್ಧಿತ ಪ್ರದೇಶವನ್ನು ನೋಡಲು ಸ್ಕ್ರೀನ್ ಬೇರ್ಪಡಿಸಿ ವೀಕ್ಷಣೆಯನ್ನು ಬಳಸಿ. ಡಾಕ್ ಮಾಡಿದ ಮ್ಯಾಗ್ನಿಫೈಯರ್ ಅನ್ನು ಆನ್ ಮತ್ತು ಆಫ್ ಮಾಡಲು ಹುಡುಕಾಟ + Ctrl + D ಬಳಸಿ. ವಿಸ್ತರಿತ ಕೀಲಿ ಬಳಕೆ ಇತ್ತೀಚಿನ ಚಟುವಟಿಕೆ @@ -10793,7 +10793,7 @@ : ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್‌ಗಳ ನೋಟ ನಿಮ್ಮ ಸಂಪೂರ್ಣ ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ -ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ +ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಾಪಿ ಮಾಡಿ : ChromeOS ಸಾಧನ ಮತ್ತು ಕಾಂಪೊನೆಂಟ್ ಕ್ರಮ ಸಂಖ್ಯೆಗಳನ್ನು ಓದಿ &ವಿಸ್ತರಣೆಗಳು @@ -11106,7 +11106,7 @@ ಬಳಸಲು ಸಿದ್ಧವಾಗಿದೆ. ಲಭ್ಯವಿರುವ ಯಾವುದೇ ಹಾಟ್‌ಸ್ಪಾಟ್‌ಗಳಿಲ್ಲ ಹೆಚ್ಚುವರಿ ಸುರಕ್ಷತೆಗಾಗಿ ಫರ್ಮ್‌ವೇರ್ ಅಪ್‌ಡೇಟ್‌‌ ಮಾಡಿ. -ಲಿಂಕ್ ಪ&ಠ್ಯ ನಕಲಿಸಿ +ಲಿಂಕ್ ಪ&ಠ್ಯ ಕಾಪಿ ಮಾಡಿ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಸೂಚಿಸಿ... ಪರ್ಯಾಯವಾಗಿ, ಪ್ರಿಂಟರ್ PPD ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ &ಪುಟ ಸೇರಿಸು... @@ -11167,7 +11167,7 @@ ಈ ಸಾಧನದಿಂದ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ ಹಂಚಿಕೊಂಡ ಕಂಪ್ಯೂಟರ್‌ ಬಳಸಲಾಗುತ್ತಿದೆಯೇ? ಅಜ್ಞಾತ ವಿಂಡೋವನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿ. ಟ್ಯಾಬ್‌ಗಳನ್ನು ಹುಡುಕಿ... -ಬಿಲ್ಡ್ ವಿವರಗಳನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ನಕಲಿಸಿ +ಬಿಲ್ಡ್ ವಿವರಗಳನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಕಾಪಿ ಮಾಡಿ ಡೆಮೋ ಮೋಡ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ ಬಳಕೆಯಲ್ಲಿದೆ ಸೆಲ್ಯುಲರ್ ವಿವರಗಳು diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ko.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ko.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ko.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ko.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -872,7 +872,7 @@ 블루투스가 사용 중지되어 있습니다. 사용 가능한 기기를 보려면 블루투스를 사용 설정하세요 - 하위 도메인 포함 음질을 개선하여 음성이 자연스럽고 또렷하게 들리도록 합니다. -(으)로 사용하기 +의 계정으로 사이트를 사용하세요 관리자가 업데이트를 사용 중지했습니다. 페이지 디버거 백엔드에 액세스 사이트 제외 @@ -2539,7 +2539,7 @@ Google은 이 기기에서 수집된 정보를 사용하여 위치 정확도 및 위치 기반 서비스를 개선하고, Google 서비스를 전반적으로 개선, 제공, 유지 관리합니다. Google은 사용자의 요구사항을 충족하기 위해 Google 및 서드 파티의 적법한 이익에 따라 이 정보를 처리합니다. 이 정보는 개인을 식별하는 데 사용되지 않습니다. 언제든지 이 기기의 위치 설정(설정 > 개인 정보 보호 및 보안 > 개인 정보 보호 설정 > 위치 정보 액세스 > 고급 위치 설정)에서 위치 정확도를 사용 중지할 수 있습니다. 위치 정확도를 사용 중지하면 위치 정확도 데이터가 수집되지 않습니다. Android 앱 및 서비스의 경우 IP 주소만 사용하여 기기 위치를 파악합니다(사용 가능한 경우). 이는 Android 앱 및 서비스(예: Google 지도)의 위치 사용 가능 여부와 정확성에 영향을 줄 수 있습니다. Linux 앱 및 파일 백업 중 -직장 프로필 정보 +직장 프로필 안내 내 비밀번호 선택 모든 개인 정보 포함 추천 그림 이모티콘 @@ -3566,7 +3566,7 @@ 태블릿 모드에서 버튼을 사용하여 홈이나 뒤로 이동하고 앱 간에 전환합니다. 화면 돋보기 새 단어는 99자 이하(영문 기준)여야 합니다. -(으)로 계속 + 계정으로 계속 메모리를 적당히 절약할 수 있습니다. 좀 더 긴 시간이 지나면 탭이 비활성화됩니다. 에서 카메라와 마이크에 액세스하도록 계속 허용 녹색약 @@ -3952,7 +3952,7 @@ Wi-Fi Direct 기능: 행에 오류가 있음 이 기기는 더 이상 자동 소프트웨어 업데이트를 수신하지 않습니다. 지속적인 보안, 안정성, 성능을 위해 보안 업데이트 연장을 사용 설정하세요. 일부 기능이 제한됩니다. 자세히 알아보기 -으로 로그인 + 계정으로 로그인 PIN은 63자 이하여야 합니다. 수동으로 전환 Google 어시스턴트 관련 정보 @@ -8864,7 +8864,7 @@ 그룹 공유 시스템 TTS(텍스트 음성 변환) 음성 이 로그인 서비스는 에서 호스팅됩니다. -에서 관리하는 프로필로 다음과 같은 정보를 볼 수 있습니다 +에서 이 프로필을 관리하며 다음과 같은 정보를 볼 수 있습니다 지원되는 웹 링크를 열 때 항상 앱을 사용할까요? 가상 머신을 설치할 수 없습니다. 다시 시도하거나 관리자에게 문의하세요. 오류 코드: 손가락을 뗀 후 다시 터치하여 지문의 다른 부분을 추가하세요. @@ -9100,7 +9100,7 @@ 에 실행 권한 필요 에너지 절약 모드 사용 설정됨 네트워크 추가됨 -작성 지원 기능 +글쓰기 도우미 백그라운드 페이지: 관리되는 프로필입니다 에서 전화 걸기 @@ -9496,7 +9496,7 @@ 에 전송 중지 작업 Play 스토어 열기 -작성 지원 기능 +글쓰기 도우미 북마크 모델을 로드하지 못했습니다. 다른 사람이 이 기기를 추적하지 못하도록 하드웨어 ID(BSSID)를 무작위로 선택합니다. VPN @@ -10365,7 +10365,7 @@ Microsoft 365 설치하기 HID 설정 이제 에서 휴대전화 알림을 받아 볼 수 있습니다. 에서 알림을 닫으면 휴대전화에서도 알림이 닫힙니다. 휴대전화가 근처에 있고 블루투스와 Wi-Fi가 켜져 있는지 확인하세요. -Google 비밀번호 관리자에 바로가기 추가 +Google 비밀번호 관리자 바로가기를 추가합니다. 현재 오프라인 상태 생산성 향상하기 Wi-Fi, 모바일 데이터 @@ -10824,7 +10824,7 @@ 탭 그룹을 유지하시겠습니까? 새로 고치는 중... 확장 프로그램 초기화 중... -여기로 더 빨리 이동하려면 에 바로가기를 추가하세요. +여기로 더 빨리 이동하려면 바로가기를 추가하세요. 사이트에서 팝업을 전송하거나 리디렉션을 사용할 수 없음 측면 패널 고정됨 시스템 업데이트 사용가능. 다운로드 준비 중… @@ -11577,7 +11577,7 @@ 네트워크에 연결 모든 내보내기 잘못된 모드를 입력했습니다. -계속하려면 에서 내 정보를 이 사이트와 공유해야 합니다. 이 사이트의 개인정보처리방침서비스 약관을 확인하세요. +계속하면 에서 내 정보를 이 사이트와 공유합니다. 이 사이트의 개인정보처리방침서비스 약관을 확인하세요. 그룹 이름 수정 이 사이트에 삽입된 콘텐츠에서는 나에 관해 저장된 정보를 사용할 수 없습니다. 차단된 사이트가 여기에 표시됩니다. diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ms.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ms.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ms.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ms.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -3041,7 +3041,7 @@ sambungan URI Disekat buat sementara waktu untuk melindungi keselamatan anda -Gerakkan skrin semasa tetikus dibiarkan di tengah-tengah skrin +Gerakkan skrin sambil membiarkan tetikus di tengah-tengah skrin Dibenarkan untuk menggunakan kuki pihak ketiga disematkan oleh Pentadbir anda Lepaskan untuk memasang @@ -10364,7 +10364,7 @@ Pasang Microsoft 365 Tetapan HID Kini anda boleh menerima pemberitahuan daripada telefon pada anda. Tindakan mengetepikan pemberitahuan pada anda akan mengetepikan pemberitahuan tersebut pada telefon anda juga. Pastikan telefon anda berada berdekatan dan Bluetooth serta Wi-Fi dihidupkan. -Tambahkan pintasan pada Google Password Manager +Tambahkan pintasan untuk Google Password Manager Anda kini di luar talian. Tingkatkan produktiviti anda Wi-Fi, data mudah alih diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ne.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ne.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ne.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ne.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2843,7 +2843,7 @@ वेब ब्राउजिङ तीव्र हुनु पर्छ। केही क्षण निकालेर अहिले नै आफ्ना एक्स्टेन्सनहरू जाँच्नुहोस् मा जानुहोस् आधुनिक वेबको लागि निर्मित एउटा छिटो, सरल, र सुरक्षित वेब ब्राउजर। -मलाई साइन अप गर्नुहोस् +साइन अप गर्नुहोस् तपाईं अब आफ्नो Chromebook मा सुरक्षासम्बन्धी अपडेटहरू प्राप्त गर्नु हुने छैन। यो Chromebook अपग्रेड गरी नयाँ Chromebook लिनुहोस्। का हकमा सूचना पठाउने अनुमति दिइएको छैन। तपाईंले अर्को पटक यो वेबसाइट खोल्दा तपाईंलाई फेरि सोधिने छ। समूहभित्र खण्ड छ: diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_no.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_no.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_no.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_no.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -7941,7 +7941,7 @@ Flere verktøy administreres allerede av . For å bruke foreldrekontroll med en annen Google-konto, logg ut etter konfigureringen og velg «Legg til person» på påloggingsskjermen. Tilbakestill eSIM-kortet -Mustaster +Musetaster For å konfigurere fingeravtrykk, få barnet ditt til å trykke på fingeravtrykkssensoren på høyre side av . Barnets fingeravtrykksdata lagres sikkert og sendes aldri fra . Påloggingsdata blir lagret på denne enheten når du går ut av Inkognitomodus. Du kan logge på dette nettstedet med enheten din igjen senere. Alternativer for oversettelse @@ -8058,7 +8058,7 @@ Be om å komme til datamaskinen. Barnet ditt skal lese noen fraser på denne skjermen for å lage stemmemodellen sin. Hvis trenger hjelp med å lese, kan du få barnet til å gjenta etter deg. Hvisk bort fra mikrofonen, slik at assistenten lærer seg barnets stemme og ikke din. -Mustaster +Musetaster Kan ikke parse filen: &Frem {COUNT,plural, =1{1 side}other{{COUNT} sider}} diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_pl.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_pl.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_pl.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_pl.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -810,7 +810,7 @@ Aktywność w tle i niektóre efekty wizualne (np. płynne przewijanie) mogą być ograniczone Nie można przenieść katalogu rozszerzenia do profilu. Utwórz profil -Klawisze powolne +Klawisze z opóźnioną reakcją Touchpad Wznów przesyłanie na urządzenie Z lokalizacji będą mogły korzystać aplikacje i strony, które mają odpowiednie uprawnienia, oraz usługi systemowe @@ -9067,7 +9067,7 @@ wymaga pozwolenia na uruchomienie Oszczędzanie energii włączone Dodano sieć -Pomóż mi w pisaniu +Pomóż mi pisać Strona w tle: Ten profil jest zarządzany Zadzwoń z urządzenia @@ -9463,7 +9463,7 @@ Zatrzymaj przesyłanie na urządzenie Zadanie Otwórz Sklep Play -Pomóż mi w pisaniu +Pomóż mi pisać Nie można wczytać modelu zakładek. Aby uniemożliwić innym śledzenie tego urządzenia, włącz randomizację jego identyfikatora (BSSID). VPN @@ -11007,7 +11007,7 @@ Mogą one obejmować informacje o zainstalowanym oprogramowaniu, plikach, przeglądarce, systemie operacyjnym urządzenia i adresach IP. Korzystaj z narzędzi dla programistów, IDE i edytorów. Więcej informacji Główny katalog rozszerzenia -Link został skopiowany do podświetlenia +Link do zaznaczonego tekstu został skopiowany Potwierdzenie przywrócenia danych Górny margines Nieprawidłowy URL diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_pt-BR.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_pt-BR.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1051,7 +1051,7 @@ nossos produtos ou serviços. Acesso rápido + Alt + Ponto de acesso desativado -(Inativa) +(inativa) Nenhum coletor de dados selecionado. Selecione pelo menos um coletor de dados. (código: ) Gerenciar notificações de apps, o modo "Não perturbe" e ícones de apps @@ -1180,7 +1180,7 @@ Redefinir Clique para ativar A guia em segundo plano está usando o microfone -Inspecionar visualizações +Inspecionar visualizações: Servidor de impressão Confirmar PIN Mudar para outro app aberto @@ -2858,7 +2858,7 @@ A navegação da Web deverá ser rápida. Aproveite para verificar suas extensões agora. Ir para a página Um navegador da Web rápido, simples e seguro, desenvolvido para a Web moderna. -Inscrever-me +Fazer inscrição As atualizações de segurança foram encerradas. Faça upgrade para um novo Chromebook. Notificações não permitidas para . Vamos perguntar novamente na próxima visita. Seção aninhada no grupo: @@ -3480,7 +3480,7 @@ Sempre mostrar URLs completos Pesquisar guias Relógio de 24 horas -Não é possível fazer login usando esta conta +Não é possível fazer login com esta conta A chave de segurança interna precisa ser redefinida Chave pública de curva elíptica Observação: uma voz parecida ou uma gravação pode conseguir acessar seus resultados personalizados ou o Google Assistente. @@ -6921,7 +6921,7 @@ Economize US$ 50 ou mais em um novo Chromebook fazendo upgrade hoje mesmo Terminal Meta externa -Desativada +Desativado Mostrar barra de título Pesquisa + Ctrl + Shift + Ativar @@ -8327,7 +8327,7 @@ Fechar outras guias Backup e restauração do Crostini Sem permissão para usar dispositivos ou dados de realidade virtual -Configure um perfil de trabalho para salvar e usar suas senhas e outros itens na sua conta +Crie um perfil de trabalho para salvar e usar senhas e outros itens na conta Configurar e ajustar a precisão da touchscreen Remover perfis de eSIM antes do Powerwash segundos @@ -9165,7 +9165,7 @@ Erro: Não foi possível decodificar a extensão Mais lenta Excluir os dados exibidos -Agora Não +Agora não Personalizar sua barra de ferramentas Restaurar todas {NUM_DAYS,plural, =1{Devolução imediata necessária}one{Devolva o em até {NUM_DAYS} dia}other{Devolva o em até {NUM_DAYS} dias}} @@ -9495,7 +9495,7 @@ Alguns itens estão bloqueados Impressoras e scanners Não, continuar usando este perfil para a escola -Não há +Nenhum Processamentos do USUÁRIO Parar de transmitir para Tarefa @@ -9776,7 +9776,7 @@ Não permitir que os sites façam o download automático de vários arquivos No futuro, não se esqueça de ejetar o dispositivo removível no aplicativo "Arquivos" antes de desconectá-lo. Caso contrário, você poderá perder dados. Sempre traduzir -Para garantir que o dispositivo seja usado com segurança, sua organização pode acessar informações sobre o sistema operacional, o navegador e as configurações, além do software que está instalado no dispositivo. +Para garantir que o dispositivo seja usado com segurança, sua organização pode acessar informações sobre o sistema operacional, o navegador, as configurações e qual o software instalado no dispositivo. Phone Hub Clique para personalizar os controles do jogo Usar o bloqueio de tela ao preencher senhas @@ -10535,7 +10535,7 @@ Permitidos: e mais Protege contra extensões, sites e downloads perigosos. Quando você acessa um site, o Chrome envia ao Google apenas uma parte ofuscada do URL por um servidor de privacidade que oculta seu endereço IP. Se um site fizer algo suspeito, o URL completo e partes do conteúdo da página também serão enviados. Você quer ativar o ChromeVox, o leitor de tela integrado do ChromeOS? -Fazer login no com +Fazer login em com % (estojo) Visualização da sua câmera Senha do familiar responsável @@ -11581,7 +11581,7 @@ Conectar à rede Exportar todos os Modo inválido inserido. -Para continuar, vai compartilhar seu com este site. Consulte a Política de Privacidade e os Termos de Serviço do site. +Para continuar, vai compartilhar seu com esse site. Consulte a Política de Privacidade e os Termos de Serviço do site. Editar nome do grupo O conteúdo incorporado neste site pode usar as informações salvas sobre você Os sites bloqueados aparecem aqui diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ro.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ro.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ro.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ro.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -4363,7 +4363,7 @@ Redă animația Creează un profil nou pentru serviciu și păstrează datele existente separate Fixează în bara de instrumente -Afișează imaginile de previzualizare a filei +Afișează imaginile de previzualizare a filelor Gestionează imprimantele Nu vei putea să folosești aplicațiile pentru Android sau Magazinul Google Play Evidențiază cursorul mouse-ului la mișcare diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_ru.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_ru.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_ru.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_ru.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -3227,7 +3227,7 @@ Подключение и проверка… Для приложения "" снято ограничение времени использования. Нет подключения к интернету -Готово +Ссылка скопирована. Ячеек в каждой строке: Выберите корневой каталог упаковываемого расширения. Для обновления расширения также укажите закрытый ключ. Это изменение нельзя отменить. Расширенная поддержка будет применена ко всем пользователям устройства. Подробнее… @@ -4673,7 +4673,7 @@ Открыть настройки Не удалось применить к устройству настройки политики: . Вашим браузером и профилем управляет . -Введите кодовую фразу +Ввести кодовую фразу Работа принтера приостановлена. , уровень Другие приложения для стилуса @@ -11706,7 +11706,7 @@ Диагностические данные системы Восстановить расширение Необычный файл -Введите кодовую фразу +Ввести кодовую фразу Новая папка &Найти и изменить Включить или отключить микрофон diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_sr-Latn.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_sr-Latn.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_sr-Latn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_sr-Latn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -5582,7 +5582,7 @@ Ne podsećaj me sledeći put Otvori Može da pristupa ovom sajtu -Sajtovi obično koriste mikrofon za potrebe funkcija za komunikaciju poput video ćaskanja +Sajtovi obično koriste mikrofon za potrebe funkcija za komunikaciju poput video četa Svi sajtovi &Menadžer zadataka Poboljšana zaštita je isključena @@ -9285,7 +9285,7 @@ Pomoć pri čitanju Nema dovoljno memorijskog prostora za ažuriranje Napunjenost baterije -Sajtovi obično koriste video kameru za potrebe funkcija komunikacije poput video ćaskanja +Sajtovi obično koriste video kameru za potrebe funkcija komunikacije poput video četa Kontrole za navigaciju Dozvoljeno je – . Povežite kameru sa uređajem. Upari diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_sr.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_sr.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_sr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_sr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -5582,7 +5582,7 @@ Не подсећај ме следећи пут Отвори Може да приступа овом сајту -Сајтови обично користе микрофон за потребе функција за комуникацију попут видео ћаскања +Сајтови обично користе микрофон за потребе функција за комуникацију попут видео чета Сви сајтови &Менаџер задатака Побољшана заштита је искључена @@ -9285,7 +9285,7 @@ Помоћ при читању Нема довољно меморијског простора за ажурирање Напуњеност батерије -Сајтови обично користе видео камеру за потребе функција комуникације попут видео ћаскања +Сајтови обично користе видео камеру за потребе функција комуникације попут видео чета Контроле за навигацију Дозвољено је – . Повежите камеру са уређајем. Упари diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_th.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_th.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_th.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_th.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -11689,7 +11689,7 @@ ข้อมูลวินิจฉัยระบบ ซ่อมส่วนขยาย ไฟล์ที่ไม่แพร่หลาย -ป้อนข้อความรหัสผ่าน +ป้อนรหัสผ่าน โฟลเดอร์ใหม่ ค้นหาและแก้ไข เปิด/ปิดไมโครโฟน diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_uz.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_uz.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_uz.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_uz.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2501,7 +2501,7 @@ Bu yangilanish Chromebook qurilmangizni ilk sozlamalarga qaytaradi va undagi foydalanuvchi ma’lumotlarini tozalaydi. Fayllarni sinxronlash yoniqligida joy ochilmaydi Bu sozlamani ota-ona boshqaradi. -Kursorning kichik harakatlari inkor etilsin +Kursorning kichik harakatlarini inkor etish Tungi rejim Antivirus dasturi virus aniqlandi. Quyidagi cookie fayllari bloklandi: @@ -4332,7 +4332,7 @@ Ayrim ilova maʼlumotlari tozalanishi mumkin noma’lum ishlab chiqaruvchining qurilmalari Play Market ilovalari bu qurilma bilan ishlay oladi. -Bosishdan avvalgi kutish vaqti +Klikdan oldingi kechikish Email manzil biriktirilmasin Demo rejimi ishga tushmadi Keyingi sahifa @@ -4426,7 +4426,7 @@ Mavjud emas USB4 Boshiga -Audio chiqishni tanlang +Audio chiqishini tanlang : jildda chiqarish Bu qurilma foydalanuvchilari parollaringizni koʻrmasligi uchun fayl yuklab olinganidan keyin uni oʻchirib tashlang. {COUNT,plural, =1{# ta kontakt aloqada emas. Ular bilan Nearby Share ishlatish uchun kontaktlaringizga ularning Google hisobidagi email manzilini kiriting.}other{# ta kontant aloqada emas. Ular bilan Nearby Share ishlatish uchun kontaktlaringizga ularning Google hisoblaridagi email manzillarini kiriting.}} diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_vi.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_vi.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_vi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_vi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -4355,7 +4355,7 @@ Bluetooth của ChromeOS Chặn và rời khỏi Tiếp tục chặn không cho trang web này truy cập thông tin vị trí của bạn -Sao chép liên kết +Sao chép đường liên kết Thẻ này đã kết nối với một thiết bị USB Chọn múi giờ Đăng xuất @@ -5129,7 +5129,7 @@ Trang web này đang sử dụng cảm biến chuyển động hoặc ánh sáng của thiết bị. Tuỳ chọn khác cho dấu trang Bạn chưa thay đổi quyền nào gần đây -Cài đặt các bản cập nhật và ứng dụng. Việc bạn tiếp tục có nghĩa là bạn đồng ý rằng thiết bị này cũng có thể tự động tải xuống và cài đặt các bản cập nhật và ứng dụng của Google, nhà mạng và nhà sản xuất thiết bị (có thể dùng dữ liệu di động). Một số ứng dụng trong số này có thể cung cấp hàng bán trong ứng dụng. Tìm hiểu thêm về tính năng tự động cài đặt qua PlayTìm hiểu thêm +Cài đặt các bản cập nhật và ứng dụng. Việc bạn tiếp tục có nghĩa là bạn đồng ý rằng thiết bị này cũng có thể tự động tải xuống và cài đặt các bản cập nhật và ứng dụng của Google, nhà mạng và nhà sản xuất thiết bị (có thể dùng dữ liệu di động). Một số ứng dụng trong số này có thể cung cấp lựa chọn mua hàng ứng dụng. Tìm hiểu thêm về tính năng tự động cài đặt qua PlayTìm hiểu thêm Thêm vân tay Đóng đề xuất Chặn các ứng dụng được cài đặt trên này. Để hạn chế việc tải ứng dụng hoặc nội dung xuống, hãy chuyển đến phần Cài đặt Google Play. Tìm hiểu thêm @@ -10963,7 +10963,7 @@ Hãy chọn một thiết bị. Sau đó, hãy mở Chrome trên thiết bị đó để xem trang. Thẻ nền đang sử dụng máy ảnh Bạn muốn xóa tất cả ứng dụng Linux và dữ liệu trong thư mục tệp Linux khỏi này? -Sao chép liên kết +Sao chép đường liên kết Đã phát hiện thấy màn hình cảm ứng Đang nghe các hoạt động của tiện ích... Sử dụng cử chỉ khuôn mặt để thực hiện các thao tác @@ -11046,7 +11046,7 @@ Thông tin này có thể bao gồm thông tin về phần mềm đã cài đặt, tệp, trình duyệt, hệ điều hành của thiết bị và địa chỉ IP. Chạy công cụ cho nhà phát triển, IDE và trình chỉnh sửa. Tìm hiểu thêm Thư mục gốc của tiện ích -Đã sao chép đường liên kết đến văn bản được đánh dấu +Đã sao chép đường liên kết đến văn bản được làm nổi bật Xác nhận khôi phục Lề trên URL không hợp lệ diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_zh-CN.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_zh-CN.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_zh-CN.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_zh-CN.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1165,7 +1165,7 @@ 重新调校 点击即可启用 背景标签页正在使用您的麦克风 -检查视图 +检查视图: 打印服务器 确认 PIN 码 切换到另一个已打开的应用 @@ -2246,7 +2246,7 @@ 会将电池电量保持在 80% 左右以延长电池寿命,并会在您通常切断电源的时间之前将电池电量充满。 正在准备设备… 在 ChromeOS Flex 设置中管理安全 DNS -高反差模式 +高对比度模式 已禁止此网站获取您的精确位置信息,因为您通常不会授予这种权限 暂停(&P) 该网站将能看到您屏幕上的内容 @@ -4870,7 +4870,7 @@ 小马 屏幕截图已复制到剪贴板 正在搜索蓝牙设备和 USB 设备 -{NUM_EXTENSIONS,plural, =1{此扩展程序已停用,因为它已不再受支持}other{这些扩展程序已停用,因为它们已不再受支持}} +{NUM_EXTENSIONS,plural, =1{此扩展程序不再受支持,因此已停用}other{这些扩展程序不再受支持,因此已停用}} 概览 已泄露的密码 请输入至少 8 个字符 @@ -6623,14 +6623,14 @@ “附近分享”功能的设备可侦测性 您有 台已保存的打印机。 详细了解在屏蔽第三方 Cookie 后可能无法正常运行的网站 -此扩展程序已停用,因为它已不再受支持 +此扩展程序不再受支持,因此已停用 {NUM_SITES,plural, =1{为保护您的隐私,已撤消某个网站的权限}other{为保护您的隐私,已撤消某些网站的权限}} 设备注册 调整屏幕显示颜色的方式 向 Google 发送反馈 该外部扩展程序需要安装 或更高版本的 Chrome。 正在安装最新更新 -电子邮件 +邮箱 为此 创建密码 自定义您的 Chrome(&U) 更改 Linux 应用的运行方式。 @@ -7667,7 +7667,7 @@ 您的管理员已登录,目的是调查一个问题。待管理员将控制权交还给您后,您可以继续使用此设备。 扫描新设备 可以升级至 Debian 11 (Bullseye) -加载已解压的扩展程序 +加载未打包的扩展程序 此设备(序列号:)已被所有者锁定。 文字转语音的语速 不允许播放声音 @@ -8171,7 +8171,7 @@ 扩展程序 用户名 仅会保存到此设备上。查看详情 键盘快捷键 -未封装的扩展程序 +未打包的扩展程序 水平分割 您必须在下一个屏幕中再次输入您的 Google 账号密码,才能完成恢复流程 播放 @@ -8430,7 +8430,7 @@ 未检测到 文本光标突出显示工具 英雄 -从组中移除 +从分组中移除 确定 在标签页处于闲置状态时释放内存 端口 @@ -11286,7 +11286,7 @@ 添加到阅读清单 卸载 Chrome 操作系统映像写入工具 -保存卡 +保存银行卡 选择要用于设置的账号 出了点问题。 转义 diff -Nru chromium-137.0.7151.68/chrome/app/resources/generated_resources_zh-TW.xtb chromium-137.0.7151.119/chrome/app/resources/generated_resources_zh-TW.xtb --- chromium-137.0.7151.68/chrome/app/resources/generated_resources_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/generated_resources_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -3463,7 +3463,7 @@ 一律顯示完整網址 搜尋分頁 24 小時制 -無法登入這個帳戶 +無法使用此帳戶登入 必須重設內部安全金鑰 橢圓曲線公開金鑰 注意:如果有人聲音與你相似或擁有你的聲音錄音檔,或許也能存取你的個人化搜尋結果或 Google 助理。 @@ -4929,7 +4929,7 @@ 一律啟用這些網站 請輸入有效的網址 {NUM_TABS,plural, =1{暫停這個分頁}other{暫停這些分頁}} -系統會根據你的提示和網頁內容提供撰寫建議 +系統會根據你的提示詞和網頁內容提供撰寫建議 毛毛 還原設定 露出所有牙齒 @@ -6527,7 +6527,7 @@ 示範註冊要求發生問題。 重設裝置並不會影響你的 Google 帳戶,以及任何與這些帳戶同步處理的資料。不過,所有儲存在裝置中的資料將會遭到刪除。 自動登入 -輸入自訂提示或選取文字,即可生成圖像 +輸入自訂提示詞或選取文字,即可生成圖像 翻譯為的作業已完成 Microsoft Windows 硬體驅動程式驗證 無法將裝置加入網域。請再試一次,或與裝置擁有者或系統管理員聯絡。錯誤代碼: @@ -8300,7 +8300,7 @@ 關閉其他分頁 Crostini 備份與還原 不得使用虛擬實境裝置或資料 -設定工作設定檔,以便將密碼等資料儲存到帳戶,或使用帳戶中的密碼等資料 +設定工作設定檔,以便將密碼等資料儲存到帳戶,並使用這些資料 設定及調整觸控螢幕精確度 在執行 Powerwash 前移除 eSIM 設定檔 @@ -9325,7 +9325,7 @@ 開啟 Play 商店 使用低擾式通知 維護作業已完成 -請選擇接下來要使用的帳戶 +請選擇帳戶繼續登入 系統無法儲存裝置設定。 如果忘記密碼或 PIN 碼,就無法復原本機資料。 充電中。 diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ar.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ar.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ar.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ar.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -91,7 +91,7 @@ إغلاق شاشة الترجمة ‏إعادة تشغيل نظام التشغيل Chrome ‏يُرجى إعادة تشغيل Chrome الآن -‏عليك إدخال عبارة المرور لاستخدام بيانات Chrome وحفظها في حسابك على Google +‏لاستخدام بيانات Chrome وحفظها في حسابك على Google، يجب أولاً إدخال عبارة المرور لم يكتمل التثبيت. هل تريد فعلاً الإلغاء؟ ‏عدسة Google خطأ في عملية التحقق من التحديث: . @@ -430,7 +430,7 @@ ‏يحتاج Chrome إلى إذن للوصول إلى الكاميرا من أجل إنشاء خريطة ثلاثية الأبعاد للمكان حولك. - إصدار قناة مطوري البرامج من Google Chrome ‏لاستخدام الموقع الجغرافي، يجب منح Chrome إذن الوصول في إعدادات النظام -‏تعديل كلمة المرور في "مدير كلمات المرور" من Google على هذا الجهاز +‏يمكن إجراء التعديل في "مدير كلمات المرور في Google" على هذا الجهاز ‏أصبح نظام التشغيل ChromeOS Flex متاحًا من خلال برنامج إضافي مفتوح المصدر. ‏سيتم تطبيق التغييرات في هذا الإعداد بعد إعادة تشغيل Chrome. ‏هل تريد تسجيل الدخول إلى Chrome؟ diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_de.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_de.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -89,7 +89,7 @@ Bildschirm „Übersetzen“ schließen Chrome OS neu starten Starte Chrome jetzt neu -Gib deine Passphrase ein, um Chrome-Daten in deinem Google-Konto zu verwenden und zu speichern +Gib deine Passphrase ein, um Chrome-Daten in deinem Google-Konto verwenden und speichern zu können Die Installation wurde nicht abgeschlossen. Möchtest du den Vorgang wirklich abbrechen? Google Lens Fehler bei der Prüfung auf Updates: . @@ -451,7 +451,7 @@ ChromeOS-System Du benötigst Windows 10 oder höher, um zukünftige Google Chrome-Updates zu erhalten. Dieser Computer verwendet Windows 8.1. Die Browserdaten dieser Person werden von diesem Gerät gelöscht. Um die Daten wiederherzustellen, melde dich als in Chrome an. -Ok +OK Eingangsregel für die Zulassung von mDNS-Verkehr in Google Chrome Beta. Gründe, warum Chrome einige Dateien blockiert, wird in neuem Tab geöffnet Google Lens-Verknüpfung immer anzeigen diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_fr.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_fr.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_fr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_fr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -188,7 +188,7 @@ Si vous enregistrez également vos favoris dans votre compte Google, vous pouvez suivre le prix de produits dans Chrome et être averti lorsqu'ils baissent Ajouter un profil Chrome Si vous partagez aussi les rapports d'utilisation Chrome, ceux-ci incluent les URL que vous consultez -Connectez-vous à Chrome +Se connecter à Chrome Redémarrer maintenant Vous devrez ensuite redémarrer Chrome. Plus tard, Chrome pourra vous demander si vous souhaitez utiliser les informations enregistrées pour remplir automatiquement des formulaires diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_kn.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_kn.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -231,7 +231,7 @@ ಲಿಂಕ್‌ ಅನ್ನು Chrome ಅ&ದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ ಭಾಷಾ ಪಿಕರ್‌ Google Chrome ಅನ್ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ -ಪಠ್ಯ ನಕಲಿಸಿ +ಪಠ್ಯ ಕಾಪಿ ಮಾಡಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ: ಇನ್‌ಸ್ಟಾಲರ್‌‌ ಫೈಲ್ ಹೆಸರು ಅಮಾನ್ಯವಾಗಿದೆ ಅಥವಾ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ. ಸಂರಕ್ಷಿತ ಪುಟಗಳನ್ನು ಓದಲಾಗುವುದಿಲ್ಲ. ಬೇರೆ ಪುಟವನ್ನು ಪ್ರಯತ್ನಿಸಿ. ನಿಮ್ಮ ಖಾತೆ ನಲ್ಲಿ Chrome ಡೇಟಾವನ್ನು ಸೇವ್ ಮಾಡಲು ಮತ್ತು ಬಳಸಲು ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ನಮೂದಿಸಿ diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ko.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ko.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ko.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ko.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -392,7 +392,7 @@ 고정되었습니다. 툴바의 새 버튼에서 Google 렌즈를 다시 이용할 수 있습니다 이미지로 복사 보안 강화를 위해 Chrome에서 사용자 데이터 암호화 -조직()에서 Chrome에 로그인할 것을 요구합니다 +조직()의 요청에 따라 Chrome에 로그인해야 합니다 이 브라우저에 직장 프로필 추가 더욱 업그레이드된 Chrome Chrome에서 메뉴, 설정, 알림, 기타 텍스트를 표시하는 데 사용되는 언어입니다 @@ -569,7 +569,7 @@ Chrome에서 발견한 보안 권장사항을 검토해 주세요 Chrome이 관리하는 인증서 Chrome에서 비밀번호를 표시하려고 합니다. 허용하려면 Windows 비밀번호를 입력하세요. -Google 비밀번호 관리자에 바로가기 추가 +Google 비밀번호 관리자 바로가기를 추가합니다. 시작 오류: . 이미지로 저장 사이트에서 페이지에 있는 링크를 비공개로 미리 로드해 달라고 요청하면 Chrome은 Google 서버를 사용합니다. 이렇게 하면 미리 로드된 사이트에서 사용자의 신원을 숨길 수 있지만 Google은 어떤 사이트가 미리 로드되는지 학습합니다. diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ms.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ms.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_ms.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_ms.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -562,7 +562,7 @@ Chrome menemukan beberapa syor keselamatan untuk semakan anda Sijil diurus oleh Chrome Google Chrome cuba menunjukkan kata laluan. Taip kata laluan Windows anda untuk membenarkannya. -Tambahkan pintasan pada Google Password Manager +Tambahkan pintasan untuk Google Password Manager Ralat permulaan: . Simpan sebagai imej Apabila laman meminta prapemuatan pautan secara peribadi pada halaman mereka, Chrome menggunakan pelayan Google. Tindakan ini akan menyembunyikan identiti anda daripada laman yang dipramuat, tetapi Google mengetahui laman yang dipramuat. diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_pt-BR.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_pt-BR.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -58,7 +58,7 @@ Verifique se sua conta está conectada ao Chrome no e tente fazer o envio novamente. Abrir atalhos no Chrome Essa extensão não é mais compatível. O Chrome recomenda que você a remova. -Desative essa opção para fazer login em sites do Google, como o Gmail, sem fazer login no Chrome +Desative essa opção para acessar sites do Google, como o Gmail, sem login no Chrome {NUM_TABS,plural, =1{O Chrome recomenda pausar a guia que está deixando o navegador mais lento}one{O Chrome recomenda pausar a guia que está deixando o navegador mais lento}other{O Chrome recomenda pausar as guias que estão deixando o navegador mais lento}} Limpar pesquisa O Chrome precisa de permissão para este site acessar sua câmera @@ -89,7 +89,7 @@ Fechar o tradutor Reiniciar o ChromeOS Reinicie o Chrome agora -Digite sua senha longa para usar e salvar dados do Chrome na sua Conta do Google +Digite sua senha longa para usar e salvar dados do Chrome na Conta do Google A instalação não foi concluída. Tem certeza de que quer cancelar? Google Lens Erro na verificação de atualização: . @@ -315,7 +315,7 @@ Google Chrome Canary Clique em "Gerenciador de senhas do Google" Digite a senha longa para usar e salvar os dados do Chrome na sua conta -Fazer login no Chrome ao se conectar a outros Serviços do Google +Fazer login no Chrome ao acessar Serviços do Google O Chrome pré-carrega mais páginas que você provavelmente vai visitar para que elas sejam carregadas mais rapidamente ao serem acessadas Descubra ótimos aplicativos, jogos, extensões e temas para o Google Chrome. Personalizar perfil do Chrome @@ -354,7 +354,7 @@ Personalize e controle o Google Chrome. Algo precisa da sua atenção. Clique para ver mais detalhes. Google LLC Não foi possível se conectar à Internet. O servidor proxy requer autenticação. -Definir o Chrome como seu navegador padrão +Defina o Chrome como seu navegador padrão Se o Chrome colocou você aleatoriamente em um teste ativo, seu histórico de navegação vai afetar os anúncios que você vê e os interesses estimados abaixo. Para proteger sua privacidade, o Chrome exclui seus interesses mais antigos do que um mês. Os interesses são atualizados, a menos que você os remova. Se um site tentar roubar sua senha ou se você fizer o download de um arquivo nocivo, o Chrome também poderá enviar os URLs, incluindo partes do conteúdo da página, para o Navegação segura Este dispositivo já tem um perfil do Chrome com essa conta @@ -385,7 +385,7 @@ Fixado. Você pode acessar o Google Lens de novo usando o novo botão na barra de ferramentas Copiar como imagem Para aumentar a segurança, seus dados serão criptografados pelo Google Chrome -Sua organização, , exige que você faça login no Chrome +Sua organização, , exige o login no Chrome Adicionar um perfil de trabalho a este navegador O Chrome ficou ainda melhor Este idioma é usado para mostrar menus, configurações, alertas e outros textos no Chrome @@ -602,7 +602,7 @@ Quando você digita na barra de endereço ou na caixa de pesquisa, o Chrome envia o conteúdo digitado ao mecanismo de pesquisa padrão para melhorar as sugestões. Essa opção fica desativada na navegação anônima. Para usar a câmera, permita o acesso ao Chrome nas configurações do sistema Erro de instalação: o administrador da rede aplicou uma política de grupo que impede a instalação: -Sua organização pode acessar e gerenciar dados de navegação, como favoritos, histórico e senhas. Ela não tem acesso a dados de navegação em outros perfis do Chrome. +Sua organização pode acessar e gerenciar dados de navegação, como favoritos, histórico e senhas, mas apenas do seu perfil do Chrome. V8 é o mecanismo JavaScript e WebAssembly do Chrome usado para melhorar o desempenho de sites Para receber as futuras atualizações do Google Chrome, você precisa do Windows 10 ou versão mais recente. Este computador está usando o Windows 7. O Google Chrome está desatualizado diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_vi.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_vi.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_vi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_vi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -91,7 +91,7 @@ Đóng màn hình dịch Khởi động lại ChromeOS Vui lòng khởi động lại Chrome ngay bây giờ -Nhập cụm mật khẩu của bạn để lưu dữ liệu Chrome vào Tài khoản Google và sử dụng dữ liệu đó +Để sử dụng và lưu dữ liệu Chrome vào Tài khoản Google của bạn, hãy nhập cụm mật khẩu Chưa cài đặt xong. Bạn có chắc chắn muốn huỷ không? Google Ống kính Lỗi khi kiểm tra bản cập nhật: . @@ -606,7 +606,7 @@ Khi bạn nhập vào thanh địa chỉ hoặc hộp tìm kiếm, Chrome sẽ gửi nội dung bạn nhập đến công cụ tìm kiếm mặc định để đề xuất cho bạn cụm từ phù hợp hơn. Tính năng này bị tắt trong chế độ ẩn danh. Để cho phép Chrome dùng camera, hãy cấp quyền sử dụng trong phần cài đặt hệ thống Lỗi cài đặt: Quản trị viên mạng của bạn đã áp dụng Chính sách nhóm ngăn chặn hoạt động cài đặt: -Tổ chức của bạn có thể xem và quản lý dữ liệu duyệt web (chẳng hạn như dấu trang, nhật ký và mật khẩu). Tổ chức không thể xem dữ liệu duyệt web trong các hồ sơ Chrome khác +Tổ chức của bạn có thể xem và quản lý dữ liệu duyệt web (chẳng hạn như dấu trang, nhật ký và mật khẩu). Tổ chức của bạn không thể xem dữ liệu duyệt web trong các hồ sơ khác trên Chrome V8 là công cụ WebAssembly và JavaScript của Chrome, có tác dụng cải thiện hiệu suất của trang web Để nhận các bản cập nhật Google Chrome sau này, máy tính của bạn cần sử dụng hệ điều hành Windows 10 trở lên. Hệ điều hành hiện tại là Windows 7. Chrome đã lỗi thời diff -Nru chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_zh-TW.xtb chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_zh-TW.xtb --- chromium-137.0.7151.68/chrome/app/resources/google_chrome_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/app/resources/google_chrome_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -355,7 +355,7 @@ 自訂及管理 Google Chrome。重要注意事項 - 按這裡瞭解詳情。 Google LLC 無法連線至網際網路。Proxy 伺服器需要驗證。 -將 Chrome 設為預設網路瀏覽器 +將 Chrome 設為預設瀏覽器 如果 Chrome 隨機讓你加入試用行列,你的瀏覽記錄會影響你所看到的廣告,以及系統推測下列的興趣喜好。為保護個人隱私,Chrome 每個月都會刪除你的興趣喜好。系統會重新整理這項資訊,除非你自行予以移除。 如果有網站試圖竊取你的密碼,或當你下載有害檔案時,Chrome 可能也會將網址 (包括部分網頁內容) 傳送至安全瀏覽功能 這部裝置已有與此帳戶相關聯的 Chrome 設定檔 diff -Nru chromium-137.0.7151.68/chrome/browser/BUILD.gn chromium-137.0.7151.119/chrome/browser/BUILD.gn --- chromium-137.0.7151.68/chrome/browser/BUILD.gn 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/BUILD.gn 2025-06-16 21:26:50.000000000 +0000 @@ -637,6 +637,8 @@ "lifetime/browser_shutdown.h", "loader/from_gws_navigation_and_keep_alive_request_observer.cc", "loader/from_gws_navigation_and_keep_alive_request_observer.h", + "loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc", + "loader/from_gws_navigation_and_keep_alive_request_tab_helper.h", "loader/from_gws_navigation_and_keep_alive_request_tracker.cc", "loader/from_gws_navigation_and_keep_alive_request_tracker.h", "loader/from_gws_navigation_and_keep_alive_request_tracker_factory.cc", diff -Nru chromium-137.0.7151.68/chrome/browser/about_flags.cc chromium-137.0.7151.119/chrome/browser/about_flags.cc --- chromium-137.0.7151.68/chrome/browser/about_flags.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/about_flags.cc 2025-06-16 21:26:50.000000000 +0000 @@ -12367,6 +12367,12 @@ FEATURE_VALUE_TYPE(chromeos::features::kNotebookLmAppShelfPinReset)}, #endif // !BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_WIN) + {"ui-automation-provider", flag_descriptions::kUiaProviderName, + flag_descriptions::kUiaProviderDescription, kOsWin, + FEATURE_VALUE_TYPE(features::kUiaProvider)}, +#endif + // Add new entries above this line. // NOTE: Adding a new flag requires adding a corresponding entry to enum diff -Nru chromium-137.0.7151.68/chrome/browser/ash/login/demo_mode/demo_session.cc chromium-137.0.7151.119/chrome/browser/ash/login/demo_mode/demo_session.cc --- chromium-137.0.7151.68/chrome/browser/ash/login/demo_mode/demo_session.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ash/login/demo_mode/demo_session.cc 2025-06-16 21:26:50.000000000 +0000 @@ -62,6 +62,7 @@ #include "chromeos/ash/components/install_attributes/install_attributes.h" #include "chromeos/ash/components/system/statistics_provider.h" #include "chromeos/constants/chromeos_features.h" +#include "components/account_manager_core/pref_names.h" #include "components/language/core/browser/pref_names.h" #include "components/policy/core/common/policy_pref_names.h" #include "components/prefs/pref_registry_simple.h" @@ -661,6 +662,13 @@ << current_locale_iso_code; } + if (features::IsDemoModeSecondaryGoogleAccountSigninAllowedFalse()) { + // Prevent users from signing in with their own account. + ProfileManager::GetActiveUserProfile()->GetPrefs()->SetBoolean( + account_manager::prefs::kSecondaryGoogleAccountSigninAllowed, + false); + } + RestoreDefaultLocaleForNextSession(); if (chromeos::PowerManagerClient::Get()) { diff -Nru chromium-137.0.7151.68/chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.cc chromium-137.0.7151.119/chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.cc --- chromium-137.0.7151.68/chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/enterprise/data_protection/data_protection_clipboard_utils.cc 2025-06-16 21:26:50.000000000 +0000 @@ -128,7 +128,10 @@ bool text_blocked = !result.text_results.empty() && !result.text_results[0]; + + // Image scan results are ignore for non local scans. bool image_blocked = + data.settings.cloud_or_local_settings.is_local_analysis() && !clipboard_paste_data.png.empty() && !result.image_result; if (text_blocked || image_blocked) { std::move(callback).Run(std::nullopt); diff -Nru chromium-137.0.7151.68/chrome/browser/extensions/api/cookies/cookies_api.cc chromium-137.0.7151.119/chrome/browser/extensions/api/cookies/cookies_api.cc --- chromium-137.0.7151.68/chrome/browser/extensions/api/cookies/cookies_api.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/extensions/api/cookies/cookies_api.cc 2025-06-16 21:26:50.000000000 +0000 @@ -161,7 +161,10 @@ } base::Value::List args; base::Value::Dict dict; - dict.Set(kRemovedKey, change.cause != net::CookieChangeCause::INSERTED); + dict.Set( + kRemovedKey, + change.cause != net::CookieChangeCause::INSERTED && + change.cause != net::CookieChangeCause::INSERTED_NO_CHANGE_OVERWRITE); Profile* profile = otr ? profile_->GetPrimaryOTRProfile(/*create_if_needed=*/false) diff -Nru chromium-137.0.7151.68/chrome/browser/extensions/extension_service.cc chromium-137.0.7151.119/chrome/browser/extensions/extension_service.cc --- chromium-137.0.7151.68/chrome/browser/extensions/extension_service.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/extensions/extension_service.cc 2025-06-16 21:26:50.000000000 +0000 @@ -353,27 +353,7 @@ LoadExtensionsFromCommandLineFlag(switches::kDisableExtensionsExcept); if (load_command_line_extensions) { - bool command_line_blocked = true; - if (base::FeatureList::IsEnabled( - extensions_features::kDisableLoadExtensionCommandLineSwitch)) { - LOG(WARNING) - << "--load-extension is not allowed in Google Chrome, ignoring."; - } else if (safe_browsing::IsEnhancedProtectionEnabled( - *profile_->GetPrefs())) { - VLOG(1) << "--load-extension is not allowed for users opted into " - << "Enhanced Safe Browsing, ignoring."; - } else if (ShouldBlockCommandLineExtension(*profile_)) { - // TODO(crbug.com/401529219): Deprecate this restriction once - // --load-extension switch is restricted on Chrome builds. - VLOG(1) - << "--load-extension is not allowed for users that have the policy " - << "ExtensionInstallTypeBlocklist::command_line, ignoring."; - } else { - LoadExtensionsFromCommandLineFlag(switches::kLoadExtension); - command_line_blocked = false; - } - base::UmaHistogramBoolean("Extensions.LoadingFromCommandLineBlocked", - command_line_blocked); + LoadExtensionsFromCommandLineFlag(switches::kLoadExtension); } EnabledReloadableExtensions(); delayed_install_manager_->FinishInstallationsDelayedByShutdown(); @@ -407,22 +387,58 @@ void ExtensionService::LoadExtensionsFromCommandLineFlag( const char* switch_name) { - if (command_line_->HasSwitch(switch_name)) { - base::CommandLine::StringType path_list = - command_line_->GetSwitchValueNative(switch_name); - base::StringTokenizerT - t(path_list, FILE_PATH_LITERAL(",")); - while (t.GetNext()) { - std::string extension_id; - UnpackedInstaller::Create(profile_)->LoadFromCommandLine( - base::FilePath(t.token_piece()), &extension_id, - false /*only-allow-apps*/); - if (switch_name == switches::kDisableExtensionsExcept) { - extension_registrar_->AddDisableFlagExemptedExtension(extension_id); - } + CHECK(switch_name == switches::kLoadExtension || + switch_name == switches::kDisableExtensionsExcept); + if (!command_line_->HasSwitch(switch_name)) { + return; + } + + // Check that --load-extension is allowed. + // TODO(crbug.com/419530940): Apply restrictions to + // --disable-extensions-except switch once the feature is approved and + // implemented. + if (switch_name == switches::kLoadExtension) { + if (base::FeatureList::IsEnabled( + extensions_features::kDisableLoadExtensionCommandLineSwitch)) { + LOG(WARNING) + << "--load-extension is not allowed in Google Chrome, ignoring."; + return; + } + if (safe_browsing::IsEnhancedProtectionEnabled(*profile_->GetPrefs())) { + VLOG(1) << "--load-extension is not allowed for users opted into " + << "Enhanced Safe Browsing, ignoring."; + return; + } + if (ShouldBlockCommandLineExtension(*profile_)) { + // TODO(crbug.com/401529219): Deprecate this restriction once + // --load-extension removal on Chrome builds is fully launched. + VLOG(1) + << "--load-extension is not allowed for users that have the policy " + << "ExtensionInstallTypeBlocklist::command_line, ignoring."; + return; } } + + base::CommandLine::StringType path_list = + command_line_->GetSwitchValueNative(switch_name); + base::StringTokenizerT + t(path_list, FILE_PATH_LITERAL(",")); + while (t.GetNext()) { + std::string extension_id; + UnpackedInstaller::Create(profile_)->LoadFromCommandLine( + base::FilePath(t.token_piece()), &extension_id, + /*only-allow-apps=*/false); + if (switch_name == switches::kDisableExtensionsExcept) { + extension_registrar_->AddDisableFlagExemptedExtension(extension_id); + } + } + + base::UmaHistogramEnumeration( + "Extensions.LoadingFromCommandLine", + switch_name == switches::kLoadExtension + ? ExtensionService::LoadExtensionFlag::kLoadExtension + : ExtensionService::LoadExtensionFlag::kDisableExtensionsExcept); } #if BUILDFLAG(IS_CHROMEOS) diff -Nru chromium-137.0.7151.68/chrome/browser/extensions/extension_service.h chromium-137.0.7151.119/chrome/browser/extensions/extension_service.h --- chromium-137.0.7151.68/chrome/browser/extensions/extension_service.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/extensions/extension_service.h 2025-06-16 21:26:50.000000000 +0000 @@ -246,6 +246,21 @@ } #endif + // Load Extension Flags. + // These values are persisted to logs. Entries should not be renumbered and + // numeric values should never be reused. + // + // LINT.IfChange(LoadExtensionFlag) + enum class LoadExtensionFlag { + // --load-extension flag. + kLoadExtension = 0, + // --disable-extensions-except flag. + kDisableExtensionsExcept = 1, + + kMaxValue = kDisableExtensionsExcept, + }; + // LINT.ThenChange(/tools/metrics/histograms/metadata/extensions/enums.xml:LoadExtensionFlag) + private: // Loads extensions specified via a command line flag/switch. void LoadExtensionsFromCommandLineFlag(const char* switch_name); diff -Nru chromium-137.0.7151.68/chrome/browser/extensions/extension_service_unittest.cc chromium-137.0.7151.119/chrome/browser/extensions/extension_service_unittest.cc --- chromium-137.0.7151.68/chrome/browser/extensions/extension_service_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/extensions/extension_service_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -5937,6 +5937,7 @@ // Tests that --load-extension is ignored for users opted in to Enhanced Safe // Browsing (ESB). TEST_F(ExtensionServiceTest, WillNotLoadFromCommandLineForESBUsers) { + base::HistogramTester histograms; InitializeEmptyExtensionServiceWithTestingPrefs(); // Enable ESB. profile()->GetPrefs()->SetBoolean(prefs::kSafeBrowsingEnabled, true); @@ -5950,6 +5951,8 @@ task_environment()->RunUntilIdle(); ASSERT_EQ(0u, loaded_extensions().size()); ValidatePrefKeyCount(0); + + histograms.ExpectTotalCount("Extensions.LoadingFromCommandLine", 0); } // Tests --load-extension works for non-ESB users. @@ -5970,14 +5973,16 @@ ASSERT_EQ(1u, loaded_extensions().size()); ValidatePrefKeyCount(1); - histograms.ExpectUniqueSample("Extensions.LoadingFromCommandLineBlocked", - false, 1); + histograms.ExpectUniqueSample( + "Extensions.LoadingFromCommandLine", + ExtensionService::LoadExtensionFlag::kLoadExtension, 1); } // Tests that --load-extension is ignored for users with policy // ExtensionInstallTypeBlocklist containing command_line. TEST_F(ExtensionServiceTest, WillNotLoadFromCommandLineForUsersWithPolicyFalse) { + base::HistogramTester histograms; InitializeEmptyExtensionServiceWithTestingPrefs(); profile()->GetPrefs()->SetList(pref_names::kExtensionInstallTypeBlocklist, @@ -5992,11 +5997,15 @@ task_environment()->RunUntilIdle(); ASSERT_EQ(0u, loaded_extensions().size()); ValidatePrefKeyCount(0); + + histograms.ExpectTotalCount("Extensions.LoadingFromCommandLine", 0); } -// Tests --load-extension works for users with policy -// ExtensionInstallTypeBlocklist not containing "command_line" (default value) +// Tests --load-extension and --disable-extensions-except work for users with +// policy ExtensionInstallTypeBlocklist not containing "command_line" (default +// value) TEST_F(ExtensionServiceTest, LoadsFromCommandLineForUsersWithoutPolicy) { + base::HistogramTester histograms; InitializeEmptyExtensionServiceWithTestingPrefs(); // Not setting pref as false is default value. // Try to load an extension from command line. @@ -6004,11 +6013,20 @@ base::MakeAbsoluteFilePath(data_dir().AppendASCII("good_unpacked")); base::CommandLine::ForCurrentProcess()->AppendSwitchPath( switches::kLoadExtension, path); + base::CommandLine::ForCurrentProcess()->AppendSwitchPath( + switches::kDisableExtensionsExcept, path); service()->Init(); task_environment()->RunUntilIdle(); EXPECT_EQ(0u, GetErrors().size()); ASSERT_EQ(1u, loaded_extensions().size()); ValidatePrefKeyCount(1); + + histograms.ExpectBucketCount( + "Extensions.LoadingFromCommandLine", + ExtensionService::LoadExtensionFlag::kLoadExtension, 1); + histograms.ExpectBucketCount( + "Extensions.LoadingFromCommandLine", + ExtensionService::LoadExtensionFlag::kDisableExtensionsExcept, 1); } TEST_F(ExtensionServiceTest, DisableLoadExtensionCommandLineSwitch) { @@ -6034,8 +6052,7 @@ ASSERT_EQ(0u, loaded_extensions().size()); ValidatePrefKeyCount(0); - histograms.ExpectUniqueSample("Extensions.LoadingFromCommandLineBlocked", - true, 1); + histograms.ExpectTotalCount("Extensions.LoadingFromCommandLine", 0); } // Tests that we generate IDs when they are not specified in the manifest for diff -Nru chromium-137.0.7151.68/chrome/browser/extensions/service_worker_tracking_browsertest.cc chromium-137.0.7151.119/chrome/browser/extensions/service_worker_tracking_browsertest.cc --- chromium-137.0.7151.68/chrome/browser/extensions/service_worker_tracking_browsertest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/extensions/service_worker_tracking_browsertest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -16,6 +16,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/service_worker_context.h" +#include "content/public/common/result_codes.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/service_worker_test_helpers.h" @@ -621,6 +622,60 @@ EXPECT_FALSE(worker_state); } +// Test that if a renderer process exit notification is received before +// a browser stop notification (since these things can be triggered +// independently) and a context stop notification, it updates the worker's +// renderer active state to inactive. +IN_PROC_BROWSER_TEST_F(ServiceWorkerStopTrackingBrowserTest, + RenderProcessExitedUpdatesRendererState) { + ASSERT_NO_FATAL_FAILURE(LoadServiceWorkerExtension()); + + // Get information about worker for extension that will be stopped soon. + ServiceWorkerTaskQueue::WorkerState* worker_state = GetWorkerState(); + ASSERT_TRUE(worker_state); + std::optional worker_id = worker_state->worker_id(); + ASSERT_TRUE(worker_id); + content::ServiceWorkerContext* sw_context = + GetServiceWorkerContext(profile()); + ASSERT_TRUE(sw_context); + ASSERT_TRUE(base::Contains(sw_context->GetRunningServiceWorkerInfos(), + worker_id->version_id)); + + ServiceWorkerTaskQueue* task_queue = ServiceWorkerTaskQueue::Get(profile()); + ASSERT_TRUE(task_queue); + // Confirm the worker is renderer state active. + ASSERT_EQ(worker_state->renderer_state(), + ServiceWorkerTaskQueue::RendererState::kActive); + + // Remove the task queue as an observer of `ServiceWorkerContext` so that + // the browser stop notification will not run immediately. + ServiceWorkerTaskQueue::Get(profile())->StopObservingContextForTest( + sw_context); + // Setup intercept of `ServiceWorkerHost::DidStopServiceWorkerContext()`. + // This simulates the worker renderer thread never informing that the worker + // context terminated. + ServiceWorkerHostInterceptorForWorkerStop stop_interceptor(*worker_id); + + // Kill the service worker's renderer. + content::RenderProcessHost* worker_render_process_host = + content::RenderProcessHost::FromID(worker_id->render_process_id); + ASSERT_TRUE(worker_render_process_host); + content::RenderProcessHostWatcher process_exit_observer( + worker_render_process_host, + content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); + worker_render_process_host->Shutdown(content::RESULT_CODE_KILLED); + process_exit_observer.Wait(); + + // Verify the service worker was stopped. + ASSERT_TRUE( + content::CheckServiceWorkerIsStopped(sw_context, worker_id->version_id)); + + // Confirm the worker state still exists and renderer state has been set to + // inactive by `ServiceWorkerHost::RenderProcessForWorkerExited`. + EXPECT_EQ(worker_state->renderer_state(), + ServiceWorkerTaskQueue::RendererState::kNotActive); +} + using ServiceWorkerRendererTrackingBrowserTest = ExtensionApiTest; // Tests that when reloading an extension that has a worker to a version of the diff -Nru chromium-137.0.7151.68/chrome/browser/flag-metadata.json chromium-137.0.7151.119/chrome/browser/flag-metadata.json --- chromium-137.0.7151.68/chrome/browser/flag-metadata.json 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/flag-metadata.json 2025-06-16 21:26:50.000000000 +0000 @@ -9323,6 +9323,14 @@ "expiry_milestone": 142 }, { + "name": "ui-automation-provider", + "owners": [ + "benjamin.beaudry@microsoft.com", + "//ui/accessibility/OWNERS" + ], + "expiry_milestone": 150 + }, + { "name": "ui-debug-tools", "owners": [ "//ui/views/OWNERS" ], "expiry_milestone": -1 diff -Nru chromium-137.0.7151.68/chrome/browser/flag_descriptions.cc chromium-137.0.7151.119/chrome/browser/flag_descriptions.cc --- chromium-137.0.7151.68/chrome/browser/flag_descriptions.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/flag_descriptions.cc 2025-06-16 21:26:50.000000000 +0000 @@ -4031,6 +4031,12 @@ "Forces use of high performance GPU if available. Warning: this flag may " "increase power consumption leading to shorter battery time."; +#if BUILDFLAG(IS_WIN) +const char kUiaProviderName[] = "UI Automation"; +const char kUiaProviderDescription[] = + "Enables native support of the UI Automation provider."; +#endif + const char kUiPartialSwapName[] = "Partial swap"; const char kUiPartialSwapDescription[] = "Sets partial swap behavior."; diff -Nru chromium-137.0.7151.68/chrome/browser/flag_descriptions.h chromium-137.0.7151.119/chrome/browser/flag_descriptions.h --- chromium-137.0.7151.68/chrome/browser/flag_descriptions.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/flag_descriptions.h 2025-06-16 21:26:50.000000000 +0000 @@ -2352,6 +2352,11 @@ extern const char kForceHighPerformanceGPUName[]; extern const char kForceHighPerformanceGPUDescription[]; +#if BUILDFLAG(IS_WIN) +extern const char kUiaProviderName[]; +extern const char kUiaProviderDescription[]; +#endif + extern const char kUiPartialSwapName[]; extern const char kUiPartialSwapDescription[]; diff -Nru chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h --- chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h 2025-06-16 21:26:50.000000000 +0000 @@ -50,7 +50,7 @@ const network::ResourceRequest& resource_request, content::RenderFrameHost* initiator_rfh) override; - private: + protected: explicit FromGWSNavigationAndKeepAliveRequestObserver( content::WebContents* web_contents); }; diff -Nru chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc --- chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc 1970-01-01 00:00:00.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.cc 2025-06-16 21:26:50.000000000 +0000 @@ -0,0 +1,18 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h" + +#include "content/public/browser/web_contents.h" + +FromGWSNavigationAndKeepAliveRequestTabHelper:: + FromGWSNavigationAndKeepAliveRequestTabHelper(content::WebContents* tab) + : FromGWSNavigationAndKeepAliveRequestObserver(tab), + content::WebContentsUserData< + FromGWSNavigationAndKeepAliveRequestTabHelper>(*tab) {} + +FromGWSNavigationAndKeepAliveRequestTabHelper:: + ~FromGWSNavigationAndKeepAliveRequestTabHelper() = default; + +WEB_CONTENTS_USER_DATA_KEY_IMPL(FromGWSNavigationAndKeepAliveRequestTabHelper); diff -Nru chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h --- chromium-137.0.7151.68/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h 1970-01-01 00:00:00.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h 2025-06-16 21:26:50.000000000 +0000 @@ -0,0 +1,42 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_LOADER_FROM_GWS_NAVIGATION_AND_KEEP_ALIVE_REQUEST_TAB_HELPER_H_ +#define CHROME_BROWSER_LOADER_FROM_GWS_NAVIGATION_AND_KEEP_ALIVE_REQUEST_TAB_HELPER_H_ + +#include "chrome/browser/loader/from_gws_navigation_and_keep_alive_request_observer.h" +#include "content/public/browser/web_contents_user_data.h" + +namespace content { +class WebContents; +} // namespace content + +// FromGWSNavigationAndKeepAliveRequestTabHelper observes eligible navigations +// and fetch keepalive requests made from Google search result pages (SRP). +// See parent class for more details. +// +// This should only be used on Android where TabFeatures is not available. +class FromGWSNavigationAndKeepAliveRequestTabHelper + : public FromGWSNavigationAndKeepAliveRequestObserver, + public content::WebContentsUserData< + FromGWSNavigationAndKeepAliveRequestTabHelper> { + public: + // Not copyable or movable. + FromGWSNavigationAndKeepAliveRequestTabHelper( + const FromGWSNavigationAndKeepAliveRequestTabHelper&) = delete; + FromGWSNavigationAndKeepAliveRequestTabHelper& operator=( + const FromGWSNavigationAndKeepAliveRequestTabHelper&) = delete; + ~FromGWSNavigationAndKeepAliveRequestTabHelper() override; + + private: + friend class content::WebContentsUserData< + FromGWSNavigationAndKeepAliveRequestTabHelper>; + + explicit FromGWSNavigationAndKeepAliveRequestTabHelper( + content::WebContents* tab); + + WEB_CONTENTS_USER_DATA_KEY_DECL(); +}; + +#endif // CHROME_BROWSER_LOADER_FROM_GWS_NAVIGATION_AND_KEEP_ALIVE_REQUEST_TAB_HELPER_H_ diff -Nru chromium-137.0.7151.68/chrome/browser/os_crypt/app_bound_encryption_win.cc chromium-137.0.7151.119/chrome/browser/os_crypt/app_bound_encryption_win.cc --- chromium-137.0.7151.68/chrome/browser/os_crypt/app_bound_encryption_win.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/os_crypt/app_bound_encryption_win.cc 2025-06-16 21:26:50.000000000 +0000 @@ -59,7 +59,7 @@ namespace features { BASE_FEATURE(kAppBoundDataReencrypt, "AppBoundDataReencrypt", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); } // namespace features SupportLevel GetAppBoundEncryptionSupportLevel(PrefService* local_state) { diff -Nru chromium-137.0.7151.68/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb chromium-137.0.7151.119/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb --- chromium-137.0.7151.68/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/readaloud/android/resources/translations/android_readaloud_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -6,7 +6,7 @@ Negrito Rio Relaxante -Quente +Gentil Rubi Avançar segundos Reprodução indisponível @@ -26,7 +26,7 @@ Pacífico Voltar segundos Costa -Claro +Animado Player "Ouvir esta página" minimizado. Nuvem Seletor do modo de reprodução diff -Nru chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb --- chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -74,7 +74,7 @@ ಯಾವುದೇ ಮುಂದಿನ ಎಡಿಟ್ ಮಾಡಬಹುದಾದ ಪಠ್ಯ ಫೀಲ್ಡ್ ಇಲ್ಲ ಲೇಖನ ಸಲಹೆ -ನಕಲಿಸಿ +ಕಾಪಿ ಮಾಡಿ ರೂಟಿಂಗ್ ಕೀ ಕೆಳಗಿರುವ ಐಟಂ ಕ್ಲಿಕ್ ಮಾಡಿ ಹುಬ್ಬುಗಳನ್ನು ಎತ್ತುವುದು ಮುಂದಿನ ಅಕ್ಷರಕ್ಕೆ ಸರಿಸಿ @@ -834,7 +834,7 @@ ಯಾವುದೇ ಮುಂದಿನ ಪಟ್ಟಿ ಐಟಂಯಿಲ್ಲ ಧ್ವನಿಗಳು ವ್ಯಾಕರಣ ತಪ್ಪು ಕಂಡುಬಂದಿದೆ - ಅನ್ನು ನಕಲಿಸಿ. + ಅನ್ನು ಕಾಪಿ ಮಾಡಿ. ಕಾಂಬೊ ಬಾಕ್ಸ್ ಮಬ್ಬು ಬೂದು {COUNT,plural, =1{ಬುಲೆಟ್}one{# ಬುಲೆಟ್‌ಗಳು}other{# ಬುಲೆಟ್‌ಗಳು}} diff -Nru chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb --- chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1022,7 +1022,7 @@ tlbar Botão de opção anterior passar para a próxima palavra -Não há +Nenhum autolst Nenhuma caixa de combinação a seguir Apertar o olho direito diff -Nru chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb --- chromium-137.0.7151.68/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -246,7 +246,7 @@ 輕觸兩下即可開始編輯 文法錯誤 移到下一個字元 -Insert 鍵 +插入 你也可以在螢幕畫面的各個部分間移動,例如在啟動器、檔案櫃和 Chrome 分頁之間移動。如要移至下一個部分,請用四指由左往右滑動。馬上試試看,接著再繼續吧! 開啟學習模式 可點擊 diff -Nru chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc --- chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android.cc 2025-06-16 21:26:50.000000000 +0000 @@ -38,7 +38,8 @@ // The user clicked the Turn On button on the disable dialog. kAcceptedTurnOn = 2, kDismissed = 3, - kMaxValue = kDismissed, + kAcceptedFailed = 4, + kMaxValue = kAcceptedFailed, }; // LINT.ThenChange(//tools/metrics/histograms/metadata/safe_browsing/enums.xml:SyncedEsbOutcome) @@ -186,15 +187,17 @@ void TailoredSecurityConsentedModalAndroid::HandleMessageDismissed( messages::DismissReason dismiss_reason) { LogOutcome(TailoredSecurityOutcome::kDismissed, is_enable_message_); - message_.reset(); - if (dismiss_callback_) - std::move(dismiss_callback_).Run(); if (is_requested_by_synced_esb_) { LogSyncedEsbDialogOutcome(is_enable_message_, SyncedEsbOutcome::kDismissed); base::UmaHistogramEnumeration( "SafeBrowsing.SyncedEsbDialogEnabledMessageDismissReason", dismiss_reason); } + message_.reset(); + if (dismiss_callback_) { + // The callback may delete `this`. Do not add code after running it. + std::move(dismiss_callback_).Run(); + } } void TailoredSecurityConsentedModalAndroid::HandleMessageAccepted() { @@ -202,6 +205,13 @@ // LogOutcome to record ChAI actions. LogOutcome(TailoredSecurityOutcome::kAccepted, is_enable_message_); if (base::FeatureList::IsEnabled(safe_browsing::kEsbAsASyncedSetting)) { + if (!web_contents_) { + // WebContents has been destroyed. The handler failed to finish running. + // Log this situation. + LogSyncedEsbDialogOutcome(is_enable_message_, + SyncedEsbOutcome::kAcceptedFailed); + return; + } Profile* profile = Profile::FromBrowserContext(web_contents_->GetBrowserContext()); SetSafeBrowsingState(profile->GetPrefs(), diff -Nru chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android.h chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android.h --- chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android.h 2025-06-16 21:26:50.000000000 +0000 @@ -30,6 +30,14 @@ private: friend class TailoredSecurityConsentedModalAndroidTest; + FRIEND_TEST_ALL_PREFIXES(TailoredSecurityConsentedModalAndroidTest, + HandleMessageDismissedWithSelfDeletingCallback); + FRIEND_TEST_ALL_PREFIXES( + TailoredSecurityConsentedModalAndroidTest, + HandleAccepted_EsbSynced_NullWebContents_EnabledMessage_LogsFailed); + FRIEND_TEST_ALL_PREFIXES( + TailoredSecurityConsentedModalAndroidTest, + HandleAccepted_EsbSynced_NullWebContents_DisabledMessage_LogsFailed); void DismissMessageInternal(messages::DismissReason dismiss_reason); void HandleSettingsClicked(); void HandleMessageAccepted(); diff -Nru chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android_unittest.cc chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android_unittest.cc --- chromium-137.0.7151.68/chrome/browser/safe_browsing/tailored_security/consented_message_android_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/safe_browsing/tailored_security/consented_message_android_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -17,6 +17,8 @@ #include "ui/android/window_android.h" namespace safe_browsing { +constexpr int kSyncedEsbOutcomeAcceptedFailed = 4; + class TailoredSecurityConsentedModalAndroidTest : public testing::Test { protected: TailoredSecurityConsentedModalAndroidTest() { @@ -195,4 +197,99 @@ 1); } +TEST_F(TailoredSecurityConsentedModalAndroidTest, + HandleMessageDismissedWithSelfDeletingCallback) { + // Create the ScopedWindowAndroidForTesting wrapper. + std::unique_ptr + scoped_window_wrapper = ui::WindowAndroid::CreateForTesting(); + ASSERT_TRUE(scoped_window_wrapper); + + // Get the actual WindowAndroid* from the wrapper. + ui::WindowAndroid* actual_window_android = scoped_window_wrapper->get(); + ASSERT_TRUE(actual_window_android); + ASSERT_TRUE(web_contents_.get()); + ui::ViewAndroid* web_contents_view = web_contents_->GetNativeView(); + ASSERT_TRUE(web_contents_view); + + // Call AddChild on the actual WindowAndroid instance + actual_window_android->AddChild(web_contents_view); + + EXPECT_CALL(message_dispatcher_bridge_, + EnqueueWindowScopedMessage(testing::_, actual_window_android, + testing::_)); + auto modal_ptr = std::make_unique( + web_contents_.get(), /*enable=*/true, + base::DoNothing(), // This will be overwritten + /*is_requested_by_synced_esb=*/false); + + auto* modal_raw_ptr = modal_ptr.get(); + modal_raw_ptr->dismiss_callback_ = base::BindOnce( + [](std::unique_ptr + modal_to_delete) { + modal_to_delete.reset(); // This triggers the destructor + }, + std::move(modal_ptr)); + + DoMessageDismissed(modal_raw_ptr, messages::DismissReason::TIMER); + + SUCCEED(); // If it reaches here without crashing, the test passes. +} + +TEST_F(TailoredSecurityConsentedModalAndroidTest, + HandleAccepted_EsbSynced_NullWebContents_EnabledMessage_LogsFailed) { + scoped_feature_list_.InitAndEnableFeature( + safe_browsing::kEsbAsASyncedSetting); + + // The modal constructor needs a valid WebContents and an associated window. + std::unique_ptr window = + ui::WindowAndroid::CreateForTesting(); + ASSERT_TRUE(window && window->get() && web_contents_ && + web_contents_->GetNativeView()); + window->get()->AddChild(web_contents_->GetNativeView()); + + TailoredSecurityConsentedModalAndroid consented_modal( + web_contents_.get(), /*enabled=*/true, base::DoNothing(), + /*is_requested_by_synced_esb=*/false); + + consented_modal.web_contents_ = nullptr; + + base::HistogramTester histogram_tester; + DoMessageAccepted(&consented_modal); + + histogram_tester.ExpectUniqueSample( + "SafeBrowsing.SyncedEsbDialogEnabledMessageOutcome", + kSyncedEsbOutcomeAcceptedFailed, 1); + // Ensure the other related histogram is not affected. + histogram_tester.ExpectTotalCount( + "SafeBrowsing.SyncedEsbDialogDisabledMessageOutcome", 0); +} + +TEST_F(TailoredSecurityConsentedModalAndroidTest, + HandleAccepted_EsbSynced_NullWebContents_DisabledMessage_LogsFailed) { + scoped_feature_list_.InitAndEnableFeature( + safe_browsing::kEsbAsASyncedSetting); + + std::unique_ptr window = + ui::WindowAndroid::CreateForTesting(); + ASSERT_TRUE(window && window->get() && web_contents_ && + web_contents_->GetNativeView()) + << "Test setup failed: window or web_contents issue."; + window->get()->AddChild(web_contents_->GetNativeView()); + + TailoredSecurityConsentedModalAndroid consented_modal( + web_contents_.get(), /*enabled=*/false, base::DoNothing(), + /*is_requested_by_synced_esb=*/false); + + consented_modal.web_contents_ = nullptr; + + base::HistogramTester histogram_tester; + DoMessageAccepted(&consented_modal); + + histogram_tester.ExpectUniqueSample( + "SafeBrowsing.SyncedEsbDialogDisabledMessageOutcome", + kSyncedEsbOutcomeAcceptedFailed, 1); + histogram_tester.ExpectTotalCount( + "SafeBrowsing.SyncedEsbDialogEnabledMessageOutcome", 0); +} + } // namespace safe_browsing diff -Nru chromium-137.0.7151.68/chrome/browser/ui/BUILD.gn chromium-137.0.7151.119/chrome/browser/ui/BUILD.gn --- chromium-137.0.7151.68/chrome/browser/ui/BUILD.gn 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/BUILD.gn 2025-06-16 21:26:50.000000000 +0000 @@ -966,6 +966,7 @@ "//components/page_info/android:android", "//components/page_info/core", "//components/page_info/core:proto", + "//components/page_load_metrics/browser:browser", "//components/password_manager/core/browser:browser", "//components/plus_addresses:hats_utils", "//components/plus_addresses:prefs", diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -247,7 +247,7 @@ ‏يتحقّق Chrome بانتظام من استخدام الإعدادات الأكثر أمانًا في متصفِّحك. وسنُعلمك في حال كان عليك اتخاذ إجراء. تعديل الإشارة ‏تعذّر على Chrome التحقُّق من كلمات المرور التي تخطّت الحدّ اليومي. -‏عليك إدخال عبارة المرور لاستخدام بيانات Chrome وحفظها في حسابك على Google +‏لاستخدام بيانات Chrome وحفظها في حسابك على Google، يجب أولاً إدخال عبارة المرور الإصدار ميزة أوصاف الصور غير مفعَّلة. هل تريد إغلاق النافذة؟ @@ -711,7 +711,7 @@ إزالة التثبيت ملفات تعريف الارتباط وذاكرة التخزين المؤقّت والبيانات الأخرى للمواقع الإلكترونية تفعيل قفل الشاشة في إعدادات Android -علامة تبويب جديدة للتصفُّح المتخفي +علامة تبويب للتصفّح المتخفي المواقع المرتبطة ‏chrome_لقطة شاشة_ الإعدادات الأساسية @@ -1113,7 +1113,7 @@ الانضمام إلى مجموعة علامات التبويب التي تضمّ "" المزيد من التفاصيل أُزيلَ عنصر -علامة التبويب "تصغير" +تصغير علامة التبويب {TAB_COUNT,plural, =1{علامة تبويب واحدة ()}zero{‫ علامة تبويب}two{علامتا تبويب ()}few{‫ علامات تبويب}many{‫ علامة تبويب}other{‫ علامة تبويب}} لغة يمكنك تغيير إعدادات الموقع الإلكتروني من هنا. @@ -1633,7 +1633,7 @@ يمكنك الآن التمرير سريعًا لليمين للرجوع إلى الصفحات السابقة التي زرتها، ويمكنك التمرير سريعًا لليسار للانتقال إلى الأمام الإضافة إلى الإشارات المرجعية إضافة اسم المستخدم -تخصيص صفحة علامة التبويب الجديدة +تخصيص علامة تبويب جديدة المستندات لا يمكن للمواقع الإلكترونية استخدام ملفات تعريف الارتباط إلا للاطّلاع على نشاط تصفّحك على تلك المواقع. ‏ألغى Chrome اشتراكك في خدمة تلقّي الإشعارات @@ -1826,7 +1826,7 @@ تعذر الدخول إلى الشبكة ‏للحصول على تجربة مخصَّصة أكثر، يمكنك تضمين Chrome في "النشاط على الويب وفي التطبيقات" وخدمات Google المرتبطة تستند مواضيع الإعلانات إلى سجلّ التصفُّح الخاص بك. هذا الإعداد غير مفعَّل. -عبارة المرور مطلوبة +يجب إدخال عبارة المرور الإدارة علامة تبويب المعاينة مفتوحة يمكن للمواقع الإلكترونية والمعلنين الاطّلاع على أداء إعلاناتهم. هذا الإعداد مفعَّل. diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_da.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -835,7 +835,7 @@ Åbn valgmuligheder for udskrivning af siden For at beskytte adgangskoderne yderligere krypteres de på din enhed, inden de gemmes i Googles Adgangs­kode­admin­istrator Brug din -konto -Vis +Se Logger ind\u2026 Ring op Logger ind... diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -247,7 +247,7 @@ Chrome prüft regelmäßig, ob dein Browser die sichersten Einstellungen hat. Solltest du etwas überprüfen müssen, informieren wir dich. Lesezeichen bearbeiten Chrome konnte nicht alle Passwörter prüfen -Gib deine Passphrase ein, um Chrome-Daten in deinem Google-Konto zu verwenden und zu speichern +Gib deine Passphrase ein, um Chrome-Daten in deinem Google-Konto verwenden und speichern zu können Version  Bildbeschreibungen sind deaktiviert Fenster schließen? @@ -309,7 +309,7 @@ Möchtest du den Download von noch einmal starten? Tracking Fertig -Auf Tabs suchen +In Tabs suchen Aktuell SEITE Dein Browser sieht sicher aus @@ -1333,7 +1333,7 @@ Lesezeichen löschen Aktuell ausgewählt: , . Wähle ein Konto aus. Inkognitomodus deaktivieren -Ok +OK {NUMBER_OF_TABS,plural, =1{ Tab mit neuer Aktivität in freigegebenen Tabgruppen ansehen}other{ Tabs mit neuer Aktivität in freigegebenen Tabgruppen ansehen}} Nicht genehmigen , neuer oder aktualisierter Tab @@ -1772,7 +1772,7 @@ Ablauf für die Berechtigung zum Senden von Benachrichtigungen geschlossen Berechtigungen wieder zugelassen für Chrome-Daten in meinem Konto -Tabs, die du  Tage lang nicht verwendet hast, werden hierher verschoben. Du kannst diese Einstellung jederzeit in den ändern. +Tabs, die du  Tage lang nicht verwendet hast, werden hierher verschoben. Du kannst dies jederzeit in den ändern. In meinen Inkognitotabs suchen URLs einiger von dir besuchter Seiten, eingeschränkte Systemdaten und manche Seiteninhalte werden an Google gesendet, um die Erkennung neuer Bedrohungen zu verbessern und Nutzer im Internet zu schützen. Teilen... diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1772,7 +1772,7 @@ El flujo de permisos de notificaciones está cerrado Se volvieron a otorgar permisos para Datos de Chrome de tu cuenta -Las pestañas que no usaste durante días se mueven aquí. Puedes cambiar este parámetro cuando lo desees en . +Las pestañas que no usaste durante días se mueven aquí . Puedes cambiar este parámetro cuando lo desees en . Buscar en tus pestañas de incógnito Envía a Google las URLs de algunas páginas que visitas, información limitada del sistema y parte del contenido de las páginas para ayudar a detectar nuevas amenazas y proteger a todos los usuarios en la Web. Compartir… @@ -1827,7 +1827,7 @@ Está abierta la pestaña de vista previa Los sitios y anunciantes pueden entender el rendimiento de los anuncios. Este parámetro de configuración está activado. Lista de dispositivos con los que se puede compartir una pestaña. -{INACTIVE_TIME_DAYS,plural, =1{No se usó durante 1 día o más}other{No se usó durante # días o más}} +{INACTIVE_TIME_DAYS,plural, =1{No se usó durante 1 día o más}other{No se usaron durante # días o más}} El flujo para guardar favoritos está cerrado Es posible que el DNS seguro no esté disponible en todo momento Ayudarme a solucionar este problema diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_es.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -145,7 +145,7 @@ {NUM_PASSWORDS,plural, =1{1 contraseña vulnerada en este dispositivo}other{# contraseñas vulneradas en este dispositivo}} elementos sugeridos en la lista siguiente. Usar con -Si se activa, usa y guarda los datos en tu cuenta de Google. Si se desactiva, los datos solo se guardan en este dispositivo. +Si está activado, usa y guarda los datos en tu cuenta de Google. Si está desactivado, los datos solo se guardan en este dispositivo. {NUM_SELECTED,plural, =1{Quitar 1 elemento seleccionado}other{Quitar # elementos seleccionados}} {BOOKMARKS_COUNT,plural, =1{1 marcador y otros elementos solo se guardan en este dispositivo. Para usarlos en tus otros dispositivos, guárdalos en tu cuenta de Google ().}other{# marcadores y otros elementos solo se guardan en este dispositivo. Para usarlos en tus otros dispositivos, guárdalos en tu cuenta de Google ().}} Cargando diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -89,7 +89,7 @@ ‏برای بررسی گذرواژه‌های لورفته، به «مدیر گذرواژه Google» بروید اضافه کردن پیوند به مورد برجسته‌شده مدیریت فعالیت -سابقه و برگه‌ها +سابقه و زبانه‌ها از سیستم خارج و همگام‌سازی خاموش شود؟ تراک وقتی روشن است @@ -923,7 +923,7 @@ خروج از سیستم هربار که از خودرو استفاده می‌کنید، باید قفل صفحه‌نمایش را باز کنید برای دیدن نتایج جستجو تک‌ضرب بزنید -برگه جدید +زبانه جدید هنگام ورود به سیستم مشکلی پیش آمد میان‌بر ویرایش نوار ابزار ۲۴ ساعت گذشته @@ -1022,7 +1022,7 @@ می‌خواهد به درگاه سریالی متصل شود کدهای امنیتی ذخیره‌شده حذف شود؟ ‏نشانک‌ها، سابقه، و سایر داده‌های Chrome، دیگر با «حساب Google» شما همگام‌سازی نمی‌شود -برگه‌های اخیر +زبانه‌های اخیر بزرگ‌تر کردن همه‌چیز در صفحه ‏سرویس‌های پیوندشده Google در اینجا صداهایی که می‌توانید برای خواندن صفحه‌های وب انتخاب کنید ارائه شده است. اگر این صدا را دوست دارید و می‌خواهید در ادامه از همین صدا استفاده کنم، کافی است روی نام آن تک‌ضرب بزنید. @@ -1629,7 +1629,7 @@ اکنون تند کشیدن به راست شما را به‌عقب می‌برد تا صفحه‌های قبلی را که بازدید کرده‌اید ببینید و تند کشیدن به چپ شما را صفحه بعدی می‌برد افزودن به نشانک‌ها نام کاربری‌تان را اضافه کنید -سفارشی‌سازی صفحه برگه جدید +سفارشی‌سازی صفحه زبانه جدید اسناد سایت‌ها فقط می‌توانند از کوکی‌هایتان برای دیدن فعالیت مرورتان در سایت خودشان استفاده کنند ‏‫Chrome اشتراک دریافت اعلان شما را لغو کرد @@ -1772,7 +1772,7 @@ جریان اجازه اعلان بسته شد اجازه‌ها دوباره به اعطا شد ‏داده‌های Chrome در حساب شما -برگه‌هایی که به‌مدت روز از آن‌ها استفاده نکرده‌اید به اینجا منتقل می‌شود. هرزمان بخواهید می‌توانید این گزینه را در تغییر دهید. +زبانه‌هایی که به‌مدت روز از آن‌ها استفاده نکرده‌اید به اینجا منتقل می‌شود. هرزمان بخواهید می‌توانید این گزینه را در تغییر دهید. جستجوی برگه‌های ناشناس ‏نشانی‌های وب بعضی از صفحه‌هایی که بازدید می‌کنید، اطلاعات محدودی از سیستم، و برخی از محتوای صفحه را به Google ارسال می‌کند تا به کشف تهدیدهای جدید و محافظت از همه افراد در وب کمک کند. هم‌رسانی… diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_fr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -492,7 +492,7 @@ Charger l'image Nous avons modifié la manière dont les mots de passe sont enregistrés sur cet appareil Recherche vocale -Connectez-vous à Chrome +Se connecter à Chrome {TAB_COUNT,plural, =1{,  onglet}one{,  onglet}other{,  onglets}} Votre historique de navigation reste privé sur votre appareil, et les rapports sont transmis avec un certain retard pour protéger votre identité Confirmation de la suggestion de mot de passe @@ -938,7 +938,7 @@ Votre administrateur a désactivé l'enregistrement des mots de passe Enregistrer Google recommande Chrome -Vous ne pouvez pas vous connecter avec ce compte +Impossible de se connecter avec ce compte Nom Utiliser avec Demandes d'autorisation @@ -1184,7 +1184,7 @@ Pour envoyer cet onglet sur un autre appareil, connectez-vous à Chrome sur cet autre appareil Modifier le favori Synchronisation -Utilisez les onglets pour consulter plusieurs pages en même temps +Ouvrez des onglets pour consulter plusieurs pages en même temps Impossible d'aller plus haut. Essayez de commencer plus haut sur la page. Imprimer… Sélectionnez votre moteur de recherche @@ -1511,7 +1511,7 @@ Ajouter une adresse Confirmez la phrase secrète Fermer -Conformément à une loi en vigueur dans votre région, vous devez choisir un navigateur et un moteur de recherche +Conformément à une loi en vigueur dans votre région, vous devez choisir un navigateur et un moteur de recherche. {PAYMENT_METHOD,plural, =1{\u2026 et de plus}one{\u2026 et de plus}other{\u2026 et de plus}} Lorsque vous êtes connecté, vous êtes protégé dans tous les services Google. Revenez plus tard pour découvrir d'autres événements @@ -1822,7 +1822,7 @@ Impossible d'accéder au réseau. Pour bénéficier de l'expérience la plus personnalisée, ajoutez Chrome à l'activité sur le Web et les applications, ainsi qu'aux services Google associés D'après votre historique de navigation. Ce paramètre est désactivé. -Veuillez saisir la phrase secrète. +Phrase secrète requise Gestion L'onglet "Aperçu" est ouvert Les sites et les annonceurs peuvent analyser les performances des annonces. Ce paramètre est activé. diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_it.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1376,7 +1376,7 @@ Puoi cambiarlo in un secondo momento nelle Impostazioni Impossibile creare il codice QR. L'URL contiene più di caratteri. Aggiorna -Utilizza un account diverso +Usa un account diverso Il foglio di filtro delle app è aperto. Controlla il modo in cui la cronologia di navigazione viene utilizzata con gli altri dati sui servizi Google Bloccare ? @@ -1511,7 +1511,7 @@ Aggiungi indirizzo Conferma passphrase Chiudi -In base a una legge della tua regione, devi scegliere il browser e il motore di ricerca +In base a una legge della tua regione, devi scegliere il browser e il motore di ricerca. {PAYMENT_METHOD,plural, =1{\u2026 e altri }other{\u2026 e altri }} Se hai eseguito l'accesso, ti protegge nei servizi Google. Ricontrolla più tardi se ci sono nuove notizie diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_iw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1231,7 +1231,7 @@ ‏שימוש ב-DNS מאובטח חיסכון של עד 60% בשימוש בחבילת הגלישה יש לוודא שהסיסמה שנשמרת זהה לסיסמה שלך עבור -אתר שמותאם למחשב +אתר מותאם למחשב אפשרויות למיון ולהצגה ‏התמונות נשלחות אל Google כדי לשפר את התיאורים לנוחיותך. ‏אחרי שנכנסים לחשבון ב-Chrome, הסיסמאות שנשמרות מאוחסנות בחשבון Google. אפשר להשבית את האפשרות הזו בהגדרות. diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -56,7 +56,7 @@ ಮುಂದೆ ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾದ ಉತ್ಪನ್ನಗಳು ಲಿಂಕ್ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ -ಲಿಂಕ್ ಪಠ್ಯವನ್ನು ನಕಲಿಸಿ +ಲಿಂಕ್ ಪಠ್ಯವನ್ನು ಕಾಪಿ ಮಾಡಿ ಸದ್ಯಕ್ಕೆ ಮರೆಮಾಡಿ ನ್ಯಾವಿಗೇಶನ್ ಇತಿಹಾಸ ಸಂಗ್ರಹ ಮಾಡಿದ ವಿಷಯವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ, ಪ್ರಸ್ತುತ ಪುಟ ಮರುಲೋಡ್ ಮಾಡಿ @@ -141,7 +141,7 @@ ನೀವು ಬಳಸುವ ರೀತಿಯಲ್ಲಿ Chrome ಅನ್ನು ಬಳಸುವ ಇತರ ಬಳಕೆದಾರರಿಗಾಗಿ ಅದನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ ಈ ಪುಟವನ್ನು ಆಲಿಸಿ ಈ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿಯಿರಿ. ದುರ್ಬಲ ಅಥವಾ ಮರುಬಳಕೆ ಮಾಡಲಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಲ್ಲ -ಬಳಕೆದಾರರಹೆಸರು ನಕಲಿಸಿ +ಬಳಕೆದಾರರಹೆಸರು ಕಾಪಿ ಮಾಡಿ {NUM_PASSWORDS,plural, =1{ಈ ಸಾಧನದಲ್ಲಿ 1 ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಇದೆ}one{ಈ ಸಾಧನದಲ್ಲಿ # ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿವೆ}other{ಈ ಸಾಧನದಲ್ಲಿ # ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿವೆ}} ಕೆಳಗಿನ ಪಟ್ಟಿಯಲ್ಲಿ ಸಲಹೆ ಮಾಡಿರುವ ಐಟಂಗಳಿವೆ. ಅನ್ನು ಜೊತೆ ಬಳಸಿ @@ -603,7 +603,7 @@ ಬಹುತೇಕ ಸೈಟ್‌ಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತದೆ ಈ ಸಾಧನದಲ್ಲಿ Google Password Manager ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ {TAB_COUNT,plural, =1{1 ಟ್ಯಾಬ್}one{# ಟ್ಯಾಬ್‌ಗಳು}other{# ಟ್ಯಾಬ್‌ಗಳು}} -ಚಿತ್ರವನ್ನು ಲಿಂಕ್‌ನೊಂದಿಗೆ ನಕಲಿಸಿ +ಚಿತ್ರವನ್ನು ಲಿಂಕ್‌ನೊಂದಿಗೆ ಕಾಪಿ ಮಾಡಿ ನಿರ್ವಹಿಸಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಅಳಿಸಿ ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ @@ -622,7 +622,7 @@ ಪರಿಶೀಲಿಸಿ ಪ್ರತಿಯೊಬ್ಬರೂ ತಕ್ಷಣವೇ "" ಟ್ಯಾಬ್ ಗುಂಪಿಗೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಾರೆ ಮತ್ತು ಅದನ್ನು ಎಲ್ಲಾ ಸಾಧನಗಳಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ ಮುಂದುವರಿಸಲು, ಈ ಸೈಟ್‌ನ ಜೊತೆಗೆ ನಿಮ್ಮ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಸೈಟ್‌ನ ಸೇವಾ ನಿಯಮಗಳನ್ನು ನೋಡಿ. -ಪಠ್ಯ ನಕಲಿಸಿ +ಪಠ್ಯ ಕಾಪಿ ಮಾಡಿ ನಿರ್ಬಂಧಿಸಿ ಮತ್ತು ತೊರೆಯಿರಿ ಎಲ್ಲಾ ಅಜ್ಞಾತ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮುಚ್ಚಿ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಎಕ್ಸ್‌ಪೋರ್ಟ್ ಮಾಡಿ @@ -646,7 +646,7 @@ ಈ ಶಾರ್ಟ್‌ಕಟ್‌ ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಮತ್ತು ಮರುರಚಿಸಿ ನೀವು ಇಷ್ಟಪಡುವದನ್ನು ಊಹಿಸಬಹುದಾದ ಸೈಟ್‌ಗಳ ಪೂಲ್‌ನಲ್ಲಿ ನೀವು ಸೈಟ್ ಅನ್ನು ಬಯಸಿದರೆ, ಅದನ್ನು ಪುನಃ ಸೇರಿಸಿ ಅನ್ನು ಮತ್ತೆ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ನೀವು ಬಯಸುವಿರಾ? -ಲಿಂಕ್ ನಕಲಿಸಿ +ಲಿಂಕ್ ಕಾಪಿ ಮಾಡಿ ಆಫ್‌ಲೈನ್ ಹೋಮ್ {NUM_PASSWORDS,plural, =1{ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ 1 ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್ ಇದೆ}one{ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ # ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಇವೆ}other{ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ # ಅಪಾಯಕ್ಕೀಡಾದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಇವೆ}} ಅನುಸರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಏನೋ ತಪ್ಪಾಗಿದೆ. @@ -701,7 +701,7 @@ ಓಪನ್ ಸೋರ್ಸ್ ಪರವಾನಗಿಗಳು Google Password Manager ನಿಂದ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಅಳಿಸಬೇಕೆ? ಈ IBAN ಅನ್ನು ಈ ಸಾಧನದಲ್ಲಿ ಮಾತ್ರವೇ ಉಳಿಸಲಾಗುತ್ತದೆ -ಲಿಂಕ್ ವಿಳಾಸವನ್ನು ನಕಲಿಸಿ +ಲಿಂಕ್ ವಿಳಾಸವನ್ನು ಕಾಪಿ ಮಾಡಿ ಉತ್ಪನ್ನವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ ಅಥವಾ ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಬೇರೊಂದು ಸಾಧನವನ್ನು ಬಳಸಿ ಹೊಸ ಟ್ಯಾಬ್ ಗುಂಪು @@ -871,7 +871,7 @@ ಸೂಚಿಸಲಾದ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬಳಸಬೇಕೆ? ಇಲ್ಲಿ ಈ ಸೈಟ್ ಅನ್ನು ಫಾಲೋ ಮಾಡಿ Google ಚಟುವಟಿಕೆ ನಿಯಂತ್ರಣಗಳು -ಪಾಸ್‌ವರ್ಡ್ ನಕಲಿಸಿ +ಪಾಸ್‌ವರ್ಡ್ ಕಾಪಿ ಮಾಡಿ ಪರಿಶೀಲಿಸಿ ವಿಷುವಲ್ ವೀಕ್ಷಣೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತದೆ @@ -1247,7 +1247,7 @@ ಚಿತ್ರವನ್ನು ಪೂರ್ವವೀಕ್ಷಿಸಿ ಹೊಸದು ಪಾಸ್‌ವರ್ಡ್ ರಲ್ಲಿ ತೆರೆಯಿರಿ -ಚಿತ್ರವನ್ನು ನಕಲಿಸಿ +ಚಿತ್ರವನ್ನು ಕಾಪಿ ಮಾಡಿ ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ನಮೂದಿಸಿ ಅನ್ನು ಸೇರಿಸಿ ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ನಮೂದಿಸಿ @@ -1743,7 +1743,7 @@ ಭದ್ರತಾ ಕೋಡ್ ಹೈಲೈಟ್ ಹಂಚಿಕೊಳ್ಳಿ ವಿಷಯಗಳನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ -ಲಿಂಕ್ ಇಲ್ಲದೆ ನಕಲಿಸಿ +ಲಿಂಕ್ ಇಲ್ಲದೆ ಕಾಪಿ ಮಾಡಿ ಪಾಸ್‌ವರ್ಡ್ ಅಪ್‌ಡೇಟ್ ಮಾಡಬೇಕೆ? ನೀವು ವಿಳಾಸ ಪಟ್ಟಿ ಅಥವಾ ಹುಡುಕಾಟ ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ಟೈಪ್ ಮಾಡಿದಾಗ, ಉತ್ತಮ ಸಲಹೆಗಳನ್ನು ಪಡೆಯಲು Chrome ನೀವು ಟೈಪ್ ಮಾಡಿದ್ದನ್ನು ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಸರ್ಚ್ ಎಂಜಿನ್‌ಗೆ ಕಳುಹಿಸುತ್ತದೆ. ಅಜ್ಞಾತ ಮೋಡ್‌ನಲ್ಲಿ ಇದು ಆಫ್ ಆಗಿರುತ್ತದೆ. {NUM_PASSWORDS,plural, =1{ನೀವು ಸುಧಾರಿಸಬಹುದಾದ ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು Chrome ಪತ್ತೆ ಮಾಡಿದೆ}one{ನೀವು ಸುಧಾರಿಸಬಹುದಾದ # ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು Chrome ಪತ್ತೆ ಮಾಡಿದೆ}other{ನೀವು ಸುಧಾರಿಸಬಹುದಾದ # ದುರ್ಬಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು Chrome ಪತ್ತೆ ಮಾಡಿದೆ}} diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ko.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -144,7 +144,7 @@ 사용자 이름 복사 {NUM_PASSWORDS,plural, =1{이 기기에서 비밀번호 1개 유출됨}other{이 기기에서 비밀번호 #개 유출됨}} 아래 리스트에 추천된 항목이 개 있습니다. -(으)로 사용하기 +의 계정으로 사이트를 사용하세요 이 설정을 사용하도록 설정하면 Google 계정을 통해 데이터를 사용하고 저장할 수 있습니다. 사용 중지하면 데이터가 이 기기에만 저장됩니다. {NUM_SELECTED,plural, =1{선택한 1개 항목 삭제}other{선택한 #개 항목 삭제}} {BOOKMARKS_COUNT,plural, =1{북마크 1개 및 기타 항목이 이 기기에만 저장됩니다. 다른 기기에서 사용하려면 Google 계정()에 저장하세요.}other{북마크 #개 및 기타 항목이 이 기기에만 저장됩니다. 다른 기기에서 사용하려면 Google 계정()에 저장하세요.}} @@ -526,7 +526,7 @@ AI로 페이지 요약 Chrome에서는 개인 정보 보호를 위해 이 입력란의 비밀번호를 자동 완성하지 않습니다. 광고 측정을 사용하면 광고 실적을 측정하기 위해 제한된 유형의 데이터(예: 사이트 방문 후 구매했는지)가 사이트 간에 공유됩니다. -(으)로 계속 + 계정으로 계속 검색엔진을 선택할 수 있습니다. 나중에 키보드, 음성, 시크릿 모드 또는 카메라를 사용하여 검색 @@ -1184,7 +1184,7 @@ 이 탭을 다른 기기로 보내려면 해당 기기에서 Chrome에 로그인하세요. 북마크 수정 동기화 -탭을 열어 동시에 다른 페이지를 방문합니다. +탭을 열어 동시에 여러 페이지를 방문할 수 있습니다. 더 이상 위로 올라갈 수 없습니다. 페이지 더 위쪽에서 시작해 보세요. 인쇄… 검색엔진 선택 @@ -1831,7 +1831,7 @@ 북마크 저장 흐름 닫힘 보안 DNS가 항상 제공되지는 않을 수도 있습니다. 이 문제 해결에 도움을 주세요. -계속하려면 에서 내 정보를 이 사이트와 공유해야 합니다. 이 사이트의 개인정보처리방침서비스 약관을 확인하세요. +계속하면 에서 내 정보를 이 사이트와 공유합니다. 이 사이트의 개인정보처리방침서비스 약관을 확인하세요. 차단된 사이트가 여기에 표시됩니다. 오프라인 탐색 계정으로 가입 diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -145,7 +145,7 @@ {NUM_PASSWORDS,plural, =1{1 senha comprometida neste dispositivo}one{# senha comprometida neste dispositivo}other{# senhas comprometidas neste dispositivo}} itens sugeridos na lista abaixo. Usar com -Quando essa opção está ativada, você usa e salva dados na sua Conta do Google. Quando está desativada, os dados são salvos apenas neste dispositivo. +Com essa opção ativada, você usa e salva dados na sua Conta do Google. Quando está desativada, os dados são salvos apenas neste dispositivo. {NUM_SELECTED,plural, =1{Remover 1 item selecionado}one{Remover # item selecionado}other{Remover # itens selecionados}} {BOOKMARKS_COUNT,plural, =1{1 favorito e outros itens foram salvos apenas neste dispositivo. Salve na sua Conta do Google para usar em outros dispositivos.}one{# favorito e outros itens foram salvos apenas neste dispositivo. Salve na sua Conta do Google para usar em outros dispositivos.}other{# favoritos e outros itens foram salvos apenas neste dispositivo. Salve na sua Conta do Google para usar em outros dispositivos.}} Carregando @@ -247,7 +247,7 @@ O Chrome verifica regularmente se o navegador tem as configurações mais seguras. Vamos avisar se algo precisar de análise. Editar favoritos Não foi possível verificar todas as senhas com o Chrome -Digite sua senha longa para usar e salvar dados do Chrome na sua Conta do Google +Digite sua senha longa para usar e salvar dados do Chrome na Conta do Google Versão As descrições de imagens estão desativadas Fechar a janela? @@ -939,7 +939,7 @@ O salvamento de senhas foi desativado pelo administrador Salvar O Google recomenda o Chrome -Não é possível fazer login usando esta conta +Não é possível fazer login com esta conta Nome Usar com Solicitações de permissão @@ -1056,7 +1056,7 @@ Refinar: Algo deu errado. Não foi possível atualizar o recurso Monitorar preço. Ele pode ser ativado ou desativado nas configurações -Desativada +Desativado Ativar Aguardando outro download… Envia estatísticas de uso e relatórios de erros automaticamente para o Google @@ -1266,7 +1266,7 @@ Você pode consultar ou excluir as páginas visitadas do histórico Fazendo o download... É comum que os sites que você visita se lembrem dos seus interesses para personalizar a experiência. Os sites também podem armazenar informações sobre seus interesses com o Chrome. -Analise os dados da sua conta +Analise os dados da conta Abrir rapidamente uma nova guia. Para editar este atalho, toque e pressione. Compartilhar feedback , . @@ -1512,7 +1512,7 @@ Adicionar endereço Confirmar senha Fechar -Com base na legislação da sua região, é necessário definir um navegador e um mecanismo de pesquisa +Com base nas leis da sua região, é necessário definir um navegador e um mecanismo de pesquisa {PAYMENT_METHOD,plural, =1{\u2026 e mais }one{\u2026 e mais }other{\u2026 e mais }} Protege você em todos os Serviços do Google quando sua conta está conectada. Volte mais tarde para ver novas matérias @@ -1553,7 +1553,7 @@ está desatualizado. A sincronização precisa confirmar sua identidade Sempre abrir PDFs baixados -O cartão virtual oculta o físico para proteger você contra possíveis tentativas de fraude. Saiba mais sobre cartões virtuais +Com o cartão virtual, você oculta o físico e se protege contra tentativas de fraude. Saiba mais sobre cartões virtuais. Guias neste dispositivo Você desativou o acesso ao armazenamento. Acesse as Configurações para reativá-lo. Fornecedor: @@ -1666,7 +1666,7 @@ Acessar "Seguindo" Mostrar histórico completo Protege contra extensões, sites e downloads perigosos. Quando você acessa um site, o Chrome envia ao Google apenas uma parte ofuscada do URL por um servidor de privacidade que oculta seu endereço IP. Se um site fizer algo suspeito, o URL completo e partes do conteúdo da página também serão enviados. -Fazer login no com +Fazer login em com Exclui o histórico, inclusive da caixa de pesquisa Incluir Nenhuma guia neste dispositivo @@ -1773,7 +1773,7 @@ Fluxo de permissão de notificações fechado Permissões concedidas novamente para Dados do Chrome na sua conta -As guias que você não usa há dias são movidas para cá. Você pode mudar essa opção quando quiser nas . +As guias que você não usa há dias são movidas para cá. Mude isso quando quiser nas . Pesquisar nas guias anônimas Envia ao Google URLs de algumas páginas que você visita, informações do sistema limitadas e parte do conteúdo das páginas para ajudar a descobrir novas ameaças e proteger todos os usuários na Web. Compartilhar... @@ -1794,7 +1794,7 @@ Fazer o download para a pasta padrão? Seus dados são criptografados com a senha longa. Digite-a para usar e salvar os dados do Chrome na sua Conta do Google. Abrir uma nova guia no modo de navegação anônima -Os apps escolhidos serão usados por padrão. Se um app ainda não estiver no dispositivo, ele será baixado em breve. +Os apps escolhidos serão usados por padrão. Os que não estiverem no dispositivo serão baixados em breve. Escolha outro provedor Indisponível no seu dispositivo Não foi possível minimizar a guia. Tente de novo mais tarde. @@ -1823,7 +1823,7 @@ Não foi possível acessar a rede Para ter uma experiência mais personalizada, inclua o Chrome na Atividade na Web e de apps e nos Serviços do Google vinculados Com base no seu histórico de navegação. Esta configuração está desativada. -Senha necessária +Senha longa necessária Gerenciamento A guia "Visualizar" está aberta Sites e anunciantes podem medir a performance dos anúncios. Esta configuração está ativada. @@ -1832,7 +1832,7 @@ Fluxo para adicionar aos favoritos fechado DNS seguro pode não estar disponível o tempo todo Ajude-me a corrigir isso -Para continuar, vai compartilhar seu com este site. Consulte a Política de Privacidade e os Termos de Serviço do site. +Para continuar, vai compartilhar seu com esse site. Consulte a Política de Privacidade e os Termos de Serviço do site. Os sites bloqueados aparecem aqui Navegar off-line Inscrever-se com diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_ru.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1117,7 +1117,7 @@ Изменить настройки сайта можно здесь Страна/регион Вы в любой момент можете изменить выбор в настройках. -и закрываются через дн +\u0020и закрываются через дн Видео Всегда разрешать уведомления от этого сайта Закладка сохранена @@ -1859,7 +1859,7 @@ Вы подписались на сайт "". Удалить историю, файлы cookie, данные сайтов, кеш и другие данные Ошибка -Введите кодовую фразу +Ввести кодовую фразу В Китае Chrome может использовать для поиска Sogou. Это можно изменить в Настройках. Удалить данные браузера Удаление данных из аккаунта diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr-Latn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1293,7 +1293,7 @@ Zatvorenih kartica: {FILE_COUNT,plural, =1{Audio fajlovi, 1 audio fajl na listi}one{Audio fajlovi, # audio fajl na listi}few{Audio fajlovi, # audio fajla na listi}other{Audio fajlovi, # audio fajlova na listi}} Google Discover – isključeno -Dugme za preklopni meni trake sa obeleživačima +Dugme za dodatne opcije trake sa obeleživačima Želite da izbrišete lozinku? Preuzmi sliku Tabela sa filterima aplikacija diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_sr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1293,7 +1293,7 @@ Затворених картица: {FILE_COUNT,plural, =1{Аудио фајлови, 1 аудио фајл на листи}one{Аудио фајлови, # аудио фајл на листи}few{Аудио фајлови, # аудио фајла на листи}other{Аудио фајлови, # аудио фајлова на листи}} Google Discover – искључено -Дугме за преклопни мени траке са обележивачима +Дугме за додатне опције траке са обележивачима Желите да избришете лозинку? Преузми слику Табела са филтерима апликација diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1049,7 +1049,7 @@ ไม่รู้จัก แชร์ลิงก์ ไดโนเสาร์ Chrome -เปิด PDF ด้วย ใช่ไหม +เปิด PDF ด้วย "" ใช่ไหม หยุดการแชร์ใช่ไหม หยุดชั่วคราว ปรับแต่ง "" @@ -1511,7 +1511,7 @@ เพิ่มที่อยู่ ยืนยันข้อความรหัสผ่าน ปิด -คุณต้องเลือกเบราว์เซอร์และเครื่องมือค้นหาตามกฎหมายในภูมิภาคของคุณ +ตามกฎหมายในภูมิภาคของคุณ คุณต้องเลือกเบราว์เซอร์และเครื่องมือค้นหาที่ต้องการใช้ {PAYMENT_METHOD,plural, =1{\u2026 และอีก วิธี}other{\u2026 และอีก วิธี}} เมื่อลงชื่อเข้าใช้ ฟีเจอร์จะปกป้องคุณในบริการต่างๆ ของ Google กลับมาดูเรื่องราวใหม่ๆ ภายหลัง @@ -1607,7 +1607,7 @@ แก้ไขหน้าแรก ข้อมูลการลงชื่อเข้าใช้ที่คุณเก็บไว้อาจล้าสมัย ดูข้อมูลเว็บไซต์ -PDF ที่ดาวน์โหลดจะเปิดด้วย โดยอัตโนมัติ +PDF ที่ดาวน์โหลดจะเปิดด้วย "" โดยอัตโนมัติ คุณไม่ต้องจำรหัสผ่านนี้ เพราะระบบจะบันทึกไว้ในเครื่องมือจัดการรหัสผ่านบน Google ไปที่ Lens โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกรหัสผ่านในบัญชี Google @@ -1827,7 +1827,7 @@ แท็บแสดงตัวอย่างเปิดอยู่ เว็บไซต์และผู้ลงโฆษณาจะรู้ได้ว่าโฆษณามีประสิทธิภาพเพียงใด การตั้งค่านี้เปิดอยู่ รายการอุปกรณ์ที่จะแชร์แท็บด้วย -{INACTIVE_TIME_DAYS,plural, =1{ไม่ได้ใช้งานเป็นเวลา 1 วันขึ้นไป}other{ไม่ได้ใช้งานเป็นเวลา # วันขึ้นไป}} +{INACTIVE_TIME_DAYS,plural, =1{ไม่ได้ใช้งานเป็นเวลาตั้งแต่ 1 วันขึ้นไป}other{ไม่ได้ใช้งานเป็นเวลาตั้งแต่ # วันขึ้นไป}} ขั้นตอนการบันทึกบุ๊กมาร์กปิดอยู่ DNS ที่ปลอดภัยอาจไม่พร้อมใช้งานในบางครั้ง ช่วยฉันแก้ไขปัญหานี้ @@ -1859,7 +1859,7 @@ กำลังติดตาม ลบประวัติการเข้าชม คุกกี้ ข้อมูลเว็บไซต์ แคช… ข้อผิดพลาด: -ป้อนข้อความรหัสผ่าน +ป้อนรหัสผ่าน Chrome สามารถใช้ Sogou สำหรับการค้นหาในประเทศจีน คุณสามารถเปลี่ยนเครื่องมือค้นหาเริ่มต้นนี้ได้ในการตั้งค่า ลบข้อมูลการท่องเว็บ กำลังลบข้อมูลบัญชี diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_tr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1617,7 +1617,7 @@ Cihazlarınız · En çok ziyaret edilen siteler {NUM_OTHER_MEMBERS,plural, =1{ ve diğer kullanıcının bulunduğu sekme grubuna katılın}other{ ve diğer kullanıcının bulunduğu sekme grubuna katılın}} -Resmi aç +Resmi Aç Sekmeleriniz burada gösterilir Bazı şifreler yakında çalışmayı durduracak Yan sayfa @@ -1629,7 +1629,7 @@ Artık sağa kaydırdığınızda geri giderek ziyaret ettiğiniz önceki sayfaları görecek, sola kaydırdığınızda ise ileri gideceksiniz Yer işaretlerine ekle Kullanıcı adınızı ekleyin -Yeni sekme sayfasını özelleştir +Yeni sekmeyi özelleştir Dokümanlar Siteler, çerezlerinizi yalnızca kendi sitelerindeki tarama etkinliğinizi görmek için kullanabilir Chrome, bildirim aboneliğinizi iptal etti @@ -1793,7 +1793,7 @@ Varsayılan klasöre indirilsin mi? Verileriniz parolanızla şifrelenir. Chrome verilerini kullanmak ve Google Hesabınıza kaydetmek için bu kodu girin. Gizli modda yeni bir sekme açar -Seçtiğiniz uygulamalar varsayılan olarak kullanılır. Bir uygulama bu cihazda yoksa kısa süre içinde indirilir. +Seçtiğiniz uygulamalar varsayılan olarak kullanılır. Cihazda yüklü olmayan uygulamalar kısa süre içinde indirilir. Başka bir sağlayıcı seçin: Cihazınızda kullanılamıyor Sekme küçültülemedi. Daha sonra tekrar deneyin. diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -247,7 +247,7 @@ Chrome thường xuyên kiểm tra để đảm bảo trình duyệt của bạn có các chế độ cài đặt an toàn nhất. Chúng tôi sẽ thông báo nếu có nội dung cần được xem xét. Chỉnh sửa dấu trang Chrome không thể kiểm tra một số mật khẩu -Nhập cụm mật khẩu của bạn để lưu dữ liệu Chrome vào Tài khoản Google và sử dụng dữ liệu đó +Để sử dụng và lưu dữ liệu Chrome vào Tài khoản Google của bạn, hãy nhập cụm mật khẩu Phiên bản Tính năng mô tả hình ảnh đang tắt Đóng cửa sổ? @@ -646,7 +646,7 @@ Xóa và tạo lại lối tắt này Thêm lại một trang web nếu bạn muốn thêm trang này vào nhóm những trang web có thể đoán sở thích của bạn Bạn có muốn tải lại xuống không? -Sao chép liên kết +Sao chép đường liên kết Nhà ở chế độ không kết nối Internet {NUM_PASSWORDS,plural, =1{1 mật khẩu bị lộ trong Tài khoản Google của bạn}other{# mật khẩu bị lộ trong Tài khoản Google của bạn}} Không thể theo dõi. Đã xảy ra lỗi. @@ -1793,7 +1793,7 @@ Tải xuống thư mục mặc định? Dữ liệu đã được mã hoá bằng cụm mật khẩu của bạn. Nhập cụm mật khẩu để lưu dữ liệu Chrome vào Tài khoản Google và sử dụng dữ liệu đó. Mở thẻ mới trong chế độ Ẩn danh -Theo mặc định, các ứng dụng bạn chọn sẽ được sử dụng. Nếu chưa có trên thiết bị này thì ứng dụng sẽ được tải xuống ngay. +Các ứng dụng bạn chọn sẽ được sử dụng theo mặc định. Nếu chưa có trên thiết bị này thì ứng dụng sẽ được tải xuống trong giây lát. Chọn nhà cung cấp khác Tính năng đăng nhập không hoạt động trên thiết bị của bạn Không thể thu nhỏ thẻ. Hãy thử lại sau. diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-CN.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -519,7 +519,7 @@ 打开了许多窗口?您可在此处管理它们 如需继续使用您的密码,请立即将其导出,更新 Google Play 服务,然后将其重新导入 Google 密码管理工具。查看完整说明 安全 -将标签页添加至新的分组 +向新分组添加标签页 此处会显示您近期关闭的标签页 重新加载当前网页 针对为网站开启深色主题分享反馈? @@ -1009,7 +1009,7 @@ 过去 7 天 搜索您的下载内容 为确保您的信息安全,已为您开启个人资料锁定 -电子邮件 +邮箱 中创建活动 Chrome 无法检查是否有更新 标签页分组 @@ -1135,7 +1135,7 @@ 广告隐私权设置 不是 正在预览此页 -向分组中添加标签页 +向分组添加标签页 需解锁才能导出您的密码 地址栏 如果您启用了“不跟踪”,您的浏览流量中将会包含一项请求。具体影响取决于网站是否会回应该请求以及如何解读该请求。 diff -Nru chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb --- chromium-137.0.7151.68/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1836,7 +1836,7 @@ 離線探索 註冊 帳戶 重新登入 -請選擇接下來要在「」上使用的帳戶 +請選擇帳戶繼續登入「 僅分享內容 你是否信任這個網站,願意提供個人資料? 將網址列移至底部 diff -Nru chromium-137.0.7151.68/chrome/browser/ui/browser_tab_strip_model_delegate.cc chromium-137.0.7151.119/chrome/browser/ui/browser_tab_strip_model_delegate.cc --- chromium-137.0.7151.68/chrome/browser/ui/browser_tab_strip_model_delegate.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/browser_tab_strip_model_delegate.cc 2025-06-16 21:26:50.000000000 +0000 @@ -233,13 +233,6 @@ CreateHistoricalGroup(group); if (tab_groups::IsTabGroupSyncServiceDesktopMigrationEnabled()) { - tab_groups::TabGroupSyncService* sync_service = - tab_groups::TabGroupSyncServiceFactory::GetForProfile( - browser_->profile()); - if (sync_service) { - sync_service->RemoveLocalTabGroupMapping( - group, tab_groups::ClosingSource::kClosedByUser); - } return; } diff -Nru chromium-137.0.7151.68/chrome/browser/ui/lens/lens_overlay_controller.cc chromium-137.0.7151.119/chrome/browser/ui/lens/lens_overlay_controller.cc --- chromium-137.0.7151.68/chrome/browser/ui/lens/lens_overlay_controller.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/lens/lens_overlay_controller.cc 2025-06-16 21:26:50.000000000 +0000 @@ -312,8 +312,9 @@ !lens::features::UseApcAsContext()) { return true; } - return page_context_eligibility->api().IsPageContextEligible( - main_frame_url.host(), main_frame_url.path(), std::move(frame_metadata)); + return optimization_guide::IsPageContextEligible( + main_frame_url.host(), main_frame_url.path(), std::move(frame_metadata), + page_context_eligibility); } } // namespace diff -Nru chromium-137.0.7151.68/chrome/browser/ui/omnibox/chrome_omnibox_client.cc chromium-137.0.7151.119/chrome/browser/ui/omnibox/chrome_omnibox_client.cc --- chromium-137.0.7151.68/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2025-06-16 21:26:50.000000000 +0000 @@ -473,6 +473,15 @@ show_happiness_survey ? kHatsSurveyTriggerOnFocusZpsSuggestionsHappiness : kHatsSurveyTriggerOnFocusZpsSuggestionsUtility; + const std::string& trigger_id = + show_happiness_survey + ? omnibox_feature_configs:: + HappinessTrackingSurveyForOmniboxOnFocusZps::Get() + .happiness_trigger_id + : omnibox_feature_configs:: + HappinessTrackingSurveyForOmniboxOnFocusZps::Get() + .utility_trigger_id; + HatsService* hats_service = HatsServiceFactory::GetForProfile(profile_, /*create_if_necessary=*/true); @@ -497,7 +506,8 @@ {{"page classification", metrics::OmniboxEventProto::PageClassification_Name( GetPageClassification(/*is_prefetch=*/false))}, - {"channel", channel}}); + {"channel", channel}}, + trigger_id, HatsService::SurveyOptions()); } } diff -Nru chromium-137.0.7151.68/chrome/browser/ui/tab_helpers.cc chromium-137.0.7151.119/chrome/browser/ui/tab_helpers.cc --- chromium-137.0.7151.68/chrome/browser/ui/tab_helpers.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/tab_helpers.cc 2025-06-16 21:26:50.000000000 +0000 @@ -173,6 +173,7 @@ #include "chrome/browser/fast_checkout/fast_checkout_tab_helper.h" #include "chrome/browser/fingerprinting_protection/chrome_fingerprinting_protection_web_contents_helper_factory.h" #include "chrome/browser/flags/android/chrome_feature_list.h" +#include "chrome/browser/loader/from_gws_navigation_and_keep_alive_request_tab_helper.h" #include "chrome/browser/plugins/plugin_observer_android.h" #include "chrome/browser/privacy_sandbox/tracking_protection_settings_factory.h" #include "chrome/browser/ui/android/context_menu_helper.h" @@ -180,6 +181,7 @@ #include "components/facilitated_payments/core/features/features.h" #include "components/fingerprinting_protection_filter/common/fingerprinting_protection_filter_features.h" #include "components/ip_protection/common/ip_protection_status.h" +#include "components/page_load_metrics/browser/features.h" #include "components/sensitive_content/android/android_sensitive_content_client.h" #include "components/sensitive_content/features.h" #include "components/webapps/browser/android/app_banner_manager_android.h" @@ -608,6 +610,12 @@ ContextMenuHelper::CreateForWebContents(web_contents); FastCheckoutTabHelper::CreateForWebContents(web_contents); + if (base::FeatureList::IsEnabled( + page_load_metrics::features::kBeaconLeakageLogging)) { + FromGWSNavigationAndKeepAliveRequestTabHelper::CreateForWebContents( + web_contents); + } + javascript_dialogs::TabModalDialogManager::CreateForWebContents( web_contents, std::make_unique( diff -Nru chromium-137.0.7151.68/chrome/browser/ui/tabs/tab_strip_model.cc chromium-137.0.7151.119/chrome/browser/ui/tabs/tab_strip_model.cc --- chromium-137.0.7151.68/chrome/browser/ui/tabs/tab_strip_model.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/tabs/tab_strip_model.cc 2025-06-16 21:26:50.000000000 +0000 @@ -817,6 +817,10 @@ for (const auto& group_id : groups_to_destroy) { delegate_->WillCloseGroup(group_id); + + for (TabStripModelObserver& observer : observers_) { + observer.OnTabGroupWillBeRemoved(group_id); + } } } diff -Nru chromium-137.0.7151.68/chrome/browser/ui/thumbnails/thumbnail_scheduler_impl.cc chromium-137.0.7151.119/chrome/browser/ui/thumbnails/thumbnail_scheduler_impl.cc --- chromium-137.0.7151.68/chrome/browser/ui/thumbnails/thumbnail_scheduler_impl.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/thumbnails/thumbnail_scheduler_impl.cc 2025-06-16 21:26:50.000000000 +0000 @@ -75,7 +75,12 @@ if (tab_node->is_capturing) { switch (old_data.priority) { case TabCapturePriority::kNone: - NOTREACHED(); + // TODO(crbug.com/347770670): ThumbnailSchedulerImpl may not correctly + // deschedule discarded tabs when their priority transitions to kNone. + // This should be corrected once WebContentsDiscard lands and the old + // discarding code path is cleaned up. + NOTREACHED(base::NotFatalUntil::M142); + return; case TabCapturePriority::kLow: lo_prio_capture_count_ -= 1; break; diff -Nru chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc --- chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.cc 2025-06-16 21:26:50.000000000 +0000 @@ -19,7 +19,6 @@ #include "base/win/windows_version.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/lifetime/application_lifetime_desktop.h" -#include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/profiles/profile_avatar_icon_util.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/themes/theme_service.h" @@ -301,16 +300,6 @@ browser_view_->UpdateLoadingAnimations(restored); } -void BrowserDesktopWindowTreeHostWin::HandleRequestClose() { - if (browser_shutdown::HasShutdownStarted()) { - return; - } - // Ignore unload handlers. - browser_shutdown::OnShutdownStarting( - browser_shutdown::ShutdownType::kSilentExit); - chrome::CloseAllBrowsersAndQuit(); -} - std::string BrowserDesktopWindowTreeHostWin::GetWorkspace() const { return virtual_desktop_helper_ ? virtual_desktop_helper_->GetWorkspace() : std::string(); diff -Nru chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.h chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.h --- chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_desktop_window_tree_host_win.h 2025-06-16 21:26:50.000000000 +0000 @@ -78,7 +78,6 @@ bool ShouldUseNativeFrame() const override; bool ShouldWindowContentsBeTransparent() const override; void HandleWindowMinimizedOrRestored(bool restored) override; - void HandleRequestClose() override; // ProfileAttributesStorage::Observer: void OnProfileAvatarChanged(const base::FilePath& profile_path) override; diff -Nru chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_view.cc chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_view.cc --- chromium-137.0.7151.68/chrome/browser/ui/views/frame/browser_view.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/views/frame/browser_view.cc 2025-06-16 21:26:50.000000000 +0000 @@ -2405,12 +2405,15 @@ // Enable immersive before the browser refreshes its list of enabled // commands. // Enable immersive mode when entering browser fullscreen, unless it's in - // app mode. + // app mode or requested by an extension. if (IsFullscreen()) { + auto* fullscreen_controller = + GetExclusiveAccessManager()->fullscreen_controller(); + bool enable_immersive = - !IsRunningInAppMode() && GetExclusiveAccessManager() - ->fullscreen_controller() - ->IsFullscreenForBrowser(); + !IsRunningInAppMode() && + !fullscreen_controller->IsExtensionFullscreenOrPending() && + fullscreen_controller->IsFullscreenForBrowser(); immersive_mode_controller_->SetEnabled(enable_immersive); } else if (!immersive_mode_controller_ ->ShouldStayImmersiveAfterExitingFullscreen()) { diff -Nru chromium-137.0.7151.68/chrome/browser/ui/web_applications/web_app_browsertest.cc chromium-137.0.7151.119/chrome/browser/ui/web_applications/web_app_browsertest.cc --- chromium-137.0.7151.68/chrome/browser/ui/web_applications/web_app_browsertest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/web_applications/web_app_browsertest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -850,7 +850,13 @@ /*expected_launch_display=*/DisplayMode::kMinimalUi)); } -IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, WithoutMinimalUiButtons) { +// TODO(https://crbug.com/413273037): Flaky. +#if BUILDFLAG(IS_MAC) +#define MAYBE_WithoutMinimalUiButtons DISABLED_WithoutMinimalUiButtons +#else +#define MAYBE_WithoutMinimalUiButtons WithoutMinimalUiButtons +#endif +IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, MAYBE_WithoutMinimalUiButtons) { EXPECT_FALSE(HasMinimalUiButtons( DisplayMode::kStandalone, std::nullopt, /*open_as_window=*/true, @@ -892,8 +898,16 @@ /*expected_launch_display=*/DisplayMode::kMinimalUi)); } +// TODO(https://crbug.com/413273037): Flaky. +#if BUILDFLAG(IS_MAC) +#define MAYBE_WithoutMinimalUiButtons_DisplayOverride \ + DISABLED_WithoutMinimalUiButtons_DisplayOverride +#else +#define MAYBE_WithoutMinimalUiButtons_DisplayOverride \ + WithoutMinimalUiButtons_DisplayOverride +#endif IN_PROC_BROWSER_TEST_F(WebAppBrowserTest, - WithoutMinimalUiButtons_DisplayOverride) { + MAYBE_WithoutMinimalUiButtons_DisplayOverride) { EXPECT_FALSE(HasMinimalUiButtons( DisplayMode::kStandalone, DisplayMode::kBrowser, /*open_as_window=*/true, diff -Nru chromium-137.0.7151.68/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager.cc chromium-137.0.7151.119/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager.cc --- chromium-137.0.7151.68/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/ui/webui/top_chrome/webui_contents_preload_manager.cc 2025-06-16 21:26:50.000000000 +0000 @@ -531,6 +531,13 @@ return false; } + // Only preloads for regular profiles because WebContents::GetWebUI() + // may crash due to dangling RFH if navigation fails. See crbug.com/409389408. + // TODO(crbug.com/424551539): remove after fixing dangling RFH. + if (!Profile::FromBrowserContext(browser_context)->IsRegularProfile()) { + return false; + } + // Don't preload if under heavy memory pressure. const auto* memory_monitor = base::MemoryPressureMonitor::Get(); if (memory_monitor && memory_monitor->GetCurrentPressureLevel() >= diff -Nru chromium-137.0.7151.68/chrome/browser/updater/check_updater_health_task.cc chromium-137.0.7151.119/chrome/browser/updater/check_updater_health_task.cc --- chromium-137.0.7151.68/chrome/browser/updater/check_updater_health_task.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/browser/updater/check_updater_health_task.cc 2025-06-16 21:26:50.000000000 +0000 @@ -68,6 +68,10 @@ // Scheduled task metrics. scoped_refptr task_scheduler = TaskScheduler::CreateInstance(scope_); + if (!task_scheduler) { + // Cannot get metrics without a TaskScheduler instance. + return; + } const std::wstring task_name = task_scheduler->FindFirstTaskName(GetTaskNamePrefix(scope_, version)); diff -Nru chromium-137.0.7151.68/chrome/common/chrome_features.cc chromium-137.0.7151.119/chrome/common/chrome_features.cc --- chromium-137.0.7151.68/chrome/common/chrome_features.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chrome/common/chrome_features.cc 2025-06-16 21:26:50.000000000 +0000 @@ -261,7 +261,7 @@ #if BUILDFLAG(IS_ANDROID) BASE_FEATURE(kDisplayEdgeToEdgeFullscreen, "DisplayEdgeToEdgeFullscreen", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); #endif #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) diff -Nru chromium-137.0.7151.68/chromeos/CHROMEOS_LKGM chromium-137.0.7151.119/chromeos/CHROMEOS_LKGM --- chromium-137.0.7151.68/chromeos/CHROMEOS_LKGM 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/CHROMEOS_LKGM 2025-06-16 21:26:50.000000000 +0000 @@ -1 +1 @@ -16267.33.0 \ No newline at end of file +16267.50.0 \ No newline at end of file diff -Nru chromium-137.0.7151.68/chromeos/profiles/arm.afdo.newest.txt chromium-137.0.7151.119/chromeos/profiles/arm.afdo.newest.txt --- chromium-137.0.7151.68/chromeos/profiles/arm.afdo.newest.txt 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/profiles/arm.afdo.newest.txt 2025-06-16 21:26:50.000000000 +0000 @@ -1 +1 @@ -chromeos-chrome-arm-none-137-7151.22-1748225636-benchmark-137.0.7151.59-r1-redacted.afdo.xz +chromeos-chrome-arm-none-137-7151.80-1749434931-benchmark-137.0.7151.111-r1-redacted.afdo.xz diff -Nru chromium-137.0.7151.68/chromeos/profiles/atom.afdo.newest.txt chromium-137.0.7151.119/chromeos/profiles/atom.afdo.newest.txt --- chromium-137.0.7151.68/chromeos/profiles/atom.afdo.newest.txt 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/profiles/atom.afdo.newest.txt 2025-06-16 21:26:50.000000000 +0000 @@ -1 +1 @@ -chromeos-chrome-amd64-atom-137-7151.22-1747621769-benchmark-137.0.7151.53-r1-redacted.afdo.xz +chromeos-chrome-amd64-atom-137-7151.80-1749437123-benchmark-137.0.7151.112-r1-redacted.afdo.xz diff -Nru chromium-137.0.7151.68/chromeos/profiles/bigcore.afdo.newest.txt chromium-137.0.7151.119/chromeos/profiles/bigcore.afdo.newest.txt --- chromium-137.0.7151.68/chromeos/profiles/bigcore.afdo.newest.txt 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/profiles/bigcore.afdo.newest.txt 2025-06-16 21:26:50.000000000 +0000 @@ -1 +1 @@ -chromeos-chrome-amd64-bigcore-137-7151.22-1747620938-benchmark-137.0.7151.53-r1-redacted.afdo.xz +chromeos-chrome-amd64-bigcore-137-7151.80-1749433839-benchmark-137.0.7151.112-r1-redacted.afdo.xz diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_de.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_de.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1345,7 +1345,7 @@ Pfeil nach rechts Blume Lege zuerst das Dokument in den Scanner -Ok +OK Gerät Ok mit (leuchtend) diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_es.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_es.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_es.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_es.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -328,7 +328,7 @@ verde Estado de la activación Añadir captura de pantalla -Restringir +Pulir Horario del modo Oscuro Contenido de ayuda destacado Graba y comparte tu audio fácilmente diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_hu.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_hu.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_hu.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_hu.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -946,7 +946,7 @@ Módosítás dátuma Memória Jelentkezzen be eszközén -Akkumulátor egészsége +Akkumulátor állapota Megjelenítés mappában A frissítési folyamat folytatásához húzza ki, majd csatlakoztassa újra a(z) tápkábelét majomkenyérfák diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ja.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ja.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ja.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ja.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -946,7 +946,7 @@ 更新日 メモリ にログインしてください -電池の状態 +バッテリー ヘルス フォルダを開く 更新プロセスを続行するには、 の電源ケーブルを取り外してから、もう一度差し込んでください バオバブの木々 diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ko.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ko.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ko.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ko.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -328,7 +328,7 @@ 녹색 활성화 상태 스크린샷 추가 -상세검색 +다듬기 어두운 모드 예약 상위 도움말 콘텐츠 오디오를 간편하게 녹음하고 공유하세요 @@ -1465,7 +1465,7 @@ 변환 HTTPS 지연 시간 매우 높음 단어가 너무 많아 간결하게 바꿀 수 없습니다. -작성 지원 기능 +글쓰기 도우미 스크립트 작성 모델 % 다운로드됨 MSCHAP 이 APN을 사용 중지하거나 삭제할 수 없습니다. 사용 설정된 APN이 사용 중지되거나 삭제되었는지 확인하세요. diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ms.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ms.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_ms.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_ms.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -583,7 +583,7 @@ Cermin skrin Pratonton Avatar -Tukar kertas dinding +Tukar hiasan latar Rangkaian Wi-Fi selamat dengan protokol lemah WEP 802.1x Kependaman tinggi ke laman web HTTPS Alihkan menu ini ke sebelah kiri diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_no.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_no.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_no.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_no.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1267,7 +1267,7 @@ IP-adresse Takk for tilbakemeldingen. Tilbakemeldingen din hjelper oss med å gjøre Chromebook-opplevelsen bedre, og den blir gjennomgått av teamet vårt. På grunn av det store antallet rapporter kan vi ikke sende svar. Transkripsjon er av. Slå det på i innstillingene eller på -menyen. -Mustaster +Musetaster Kjører Utskriftsjobber vises i loggen med mindre de fjernes manuelt Kan ikke laste opp filer som er større enn 10 MB diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_pl.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_pl.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_pl.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_pl.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1461,7 +1461,7 @@ przeliczanie Bardzo duże opóźnienie HTTP Zbyt wiele słów do uproszczenia -Pomóż mi w pisaniu +Pomóż mi pisać Pobrano % modelu transkrypcji w języku: MSCHAP Tego punktu APN nie można wyłączyć ani usunąć. Upewnij się, że włączone punkty APN typu zostały wyłączone lub usunięte. diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_pt-BR.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_pt-BR.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1084,7 +1084,7 @@ () Álbum da galeria de arte Atalho indisponível. Pressione um novo atalho sem . -Desativada +Desativado Ativar raio Baixar modelo de transcrição @@ -1518,7 +1518,7 @@ matiz do teclado Confirmar nova senha colinas de argila -Não há +Nenhum VPN WPA3 luz do teclado diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_zh-CN.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_zh-CN.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_zh-CN.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_zh-CN.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1050,7 +1050,7 @@ 调高键盘亮度 设备注册 无打印作业 -电子邮件 +邮箱 使用切换开关可启用或停用隐私保护屏幕 正在激活 BSSID @@ -1812,7 +1812,7 @@ 披萨 频率 霓虹灯 -电子邮件 +邮箱 花朵 全屏 用作个人设备 diff -Nru chromium-137.0.7151.68/chromeos/strings/chromeos_strings_zh-TW.xtb chromium-137.0.7151.119/chromeos/strings/chromeos_strings_zh-TW.xtb --- chromium-137.0.7151.68/chromeos/strings/chromeos_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/chromeos/strings/chromeos_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -41,7 +41,7 @@ 更新外部裝置韌體的視窗已開啟。 項可用的更新。 尋找說明文章,並回答 Chromebook 常見問題 你只能自訂 5 個快速鍵。如要新增快速鍵,請刪除現有快速鍵。 -輸入提示 +輸入提示詞 鳳梨 黎明到黑夜螢幕保護程式 開啟選單自訂按鍵,拖曳選單即可移動。 @@ -328,7 +328,7 @@ 綠色 啟用狀態 新增螢幕截圖 -修正搜尋 +調整文字 深色模式時間表 熱門說明內容 輕鬆錄音及分享 @@ -363,7 +363,7 @@ 浮點精確度 類型 課程工具組 -選取要建立的提示或查看提示指南 +選取要建立的提示詞或查看提示詞指南 「幫我寫」功能採用 Google AI 技術,歡迎用來建立草稿或修正現有作品 發生錯誤 螃蟹 @@ -445,7 +445,7 @@ 秒內放電 雲朵動態螢幕保護程式 自訂 AI 提示 -輸入提示,例如「撰寫感謝函」 +輸入提示詞,例如「撰寫感謝函」 熱帶島嶼 黑暗 稍後再重新啟動 @@ -494,7 +494,7 @@ 將文件放入掃描機 黎明到黑夜桌布 前衛主義 -輸入提示,例如「使用較堅定的語氣」 +輸入提示詞,例如「使用較堅定的語氣」 我的檔案 顯示圖片已變更 音訊檔 @@ -597,7 +597,7 @@ 選取溫度單位 自信地快速編寫 勃艮第酒紅和暗紅色 -已隨機顯示提示範例 +已隨機顯示提示詞範例 雲朵動態桌布 語言設定 @@ -695,7 +695,7 @@ 現在起,你可以使用全新的桌布 深色模式 倒轉 10 秒 -輸入提示,例如「畫出籠罩在薄霧下的森林」 +輸入提示詞,例如「畫出籠罩在薄霧下的森林」 將滑鼠游標懸停在上方,即可查看更多版面配置選項 我同意 黑白 @@ -729,13 +729,13 @@ 星期日 螢幕截圖 時尚辦公室 -選取「自製桌布」後,你可以自行輸入提示,也可以依序選取「選擇主題」和畫底線的字詞,打造個人化的 AI 桌布。 +選取「自製桌布」後,你可以自行輸入提示詞,也可以依序選取「選擇主題」和畫底線的字詞,打造個人化的 AI 桌布。 選取「給我靈感」可取得更多獨特而有變化的 AI 圖像選項。 - 自製桌布時,系統會將提示傳送到 Google 伺服器,以產生圖像及提升產品品質,過程中會遵守 Google 的《服務條款》和《隱私權政策》規定。請勿加入任何個人、敏感或機密資訊。 + 自製桌布時,系統會將提示詞傳送到 Google 伺服器,以產生圖像及提升產品品質,過程中會遵守 Google 的《服務條款》和《隱私權政策》規定。請勿加入任何個人、敏感或機密資訊。 生成式 AI 提供的內容未必準確 (包括人物相關資訊),因此請多加查證。瞭解詳情 @@ -1229,7 +1229,7 @@ 前往帳戶設定 現已啟用「新增 APN」按鈕 {PAGE_NUMBER,plural, =0{要重新掃描頁面嗎?}=1{要重新掃描第 {PAGE_NUMBER} 頁嗎?}other{要重新掃描第 {PAGE_NUMBER} 頁嗎?}} -這是你最近使用的 3 個提示和輸出內容。這些資料只能在使用「桌布和樣式」功能時存取。 +這是你最近使用的 3 個提示詞和輸出內容。這些資料只能在使用「桌布和樣式」功能時存取。 動態密碼 深紅 @@ -1737,7 +1737,7 @@ 請使用向左鍵或向右鍵管理這項功能。 我瞭解了 失敗 - 墨水用盡 -提示範例 +提示詞範例 非預設網路超過延遲門檻 再試一次 已停止 - 蓋子處於開啟狀態 @@ -1746,7 +1746,7 @@ 確認變更 攝影機背景 塔樓 -先前的提示 +先前的提示詞 下載並選取語音轉錄模型 WireGuard Google 相簿中的相簿 diff -Nru chromium-137.0.7151.68/components/autofill/core/browser/payments/credit_card_otp_authenticator.cc chromium-137.0.7151.119/components/autofill/core/browser/payments/credit_card_otp_authenticator.cc --- chromium-137.0.7151.68/components/autofill/core/browser/payments/credit_card_otp_authenticator.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/autofill/core/browser/payments/credit_card_otp_authenticator.cc 2025-06-16 21:26:50.000000000 +0000 @@ -36,7 +36,7 @@ otp_ = otp; unmask_request_ = std::make_unique(); - unmask_request_->card = *card_; + unmask_request_->card = card_; unmask_request_->billing_customer_number = billing_customer_number_; unmask_request_->context_token = context_token_; unmask_request_->otp = otp_; @@ -44,17 +44,17 @@ // Add appropriate ClientBehaviorConstants to the request based on the // user experience. - if (ShouldShowCardMetadata(*card_)) { + if (ShouldShowCardMetadata(card_)) { unmask_request_->client_behavior_signals.push_back( ClientBehaviorConstants::kShowingCardArtImageAndCardProductName); } - if (DidDisplayBenefitForCard(*card_, *autofill_client_)) { + if (DidDisplayBenefitForCard(card_, *autofill_client_)) { unmask_request_->client_behavior_signals.push_back( ClientBehaviorConstants::kShowingCardBenefits); } - if (card_->record_type() == CreditCard::RecordType::kVirtualCard || - card_->card_info_retrieval_enrollment_state() == + if (card_.record_type() == CreditCard::RecordType::kVirtualCard || + card_.card_info_retrieval_enrollment_state() == CreditCard::CardInfoRetrievalEnrollmentState::kRetrievalEnrolled) { std::optional last_committed_primary_main_frame_origin; if (autofill_client_->GetLastCommittedPrimaryMainFrameURL().is_valid()) { @@ -82,11 +82,8 @@ if (!user_closed_dialog) return; - // Adding the logs before calling `OnOtpAuthenticationComplete` because the - // `requester_` may reset the allocated memory for `card_` making it - // unavailable. autofill_metrics::LogOtpAuthResult( - card_->record_type(), autofill_metrics::OtpAuthEvent::kFlowCancelled, + card_.record_type(), autofill_metrics::OtpAuthEvent::kFlowCancelled, selected_challenge_option_.type); if (requester_) { @@ -130,13 +127,13 @@ // Store info for this session. These info will be shared for multiple // payments requests. Only |context_token_| will be changed during this // session. - card_ = card; + card_ = *card; selected_challenge_option_ = selected_challenge_option; requester_ = requester; context_token_ = context_token; billing_customer_number_ = billing_customer_number; - autofill_metrics::LogOtpAuthAttempt(card_->record_type(), + autofill_metrics::LogOtpAuthAttempt(card_.record_type(), selected_challenge_option_.type); // Asynchronously prepare `payments_network_interface`. This is only needed @@ -182,7 +179,7 @@ if (select_challenge_option_request_timestamp_.has_value()) { autofill_metrics::LogOtpAuthSelectChallengeOptionRequestLatency( - card_->record_type(), + card_.record_type(), base::TimeTicks::Now() - *select_challenge_option_request_timestamp_, selected_challenge_option_.type); } @@ -233,7 +230,7 @@ if (result == PaymentsRpcResult::kVcnRetrievalPermanentFailure || result == PaymentsRpcResult::kVcnRetrievalTryAgainFailure) { autofill_metrics::LogOtpAuthResult( - card_->record_type(), + card_.record_type(), autofill_metrics::OtpAuthEvent:: kSelectedChallengeOptionVirtualCardRetrievalError, selected_challenge_option_.type); @@ -241,7 +238,7 @@ OtpAuthenticationResponse::Result::kVirtualCardRetrievalError; } else { autofill_metrics::LogOtpAuthResult( - card_->record_type(), + card_.record_type(), autofill_metrics::OtpAuthEvent::kSelectedChallengeOptionGenericError, selected_challenge_option_.type); response.result = OtpAuthenticationResponse::Result::kAuthenticationError; @@ -263,7 +260,7 @@ } autofill_client_->GetPaymentsAutofillClient()->ShowCardUnmaskOtpInputDialog( - card_->record_type(), selected_challenge_option_, + card_.record_type(), selected_challenge_option_, weak_ptr_factory_.GetWeakPtr()); } @@ -294,7 +291,7 @@ const payments::UnmaskResponseDetails& response_details) { if (unmask_card_request_timestamp_.has_value()) { autofill_metrics::LogOtpAuthUnmaskCardRequestLatency( - card_->record_type(), + card_.record_type(), base::TimeTicks::Now() - *unmask_card_request_timestamp_, selected_challenge_option_.type); } @@ -315,7 +312,7 @@ autofill_client_->GetPaymentsAutofillClient() ->OnUnmaskOtpVerificationResult(OtpUnmaskResult::kOtpMismatch); autofill_metrics::LogOtpAuthRetriableError( - card_->record_type(), autofill_metrics::OtpAuthEvent::kOtpMismatch, + card_.record_type(), autofill_metrics::OtpAuthEvent::kOtpMismatch, selected_challenge_option_.type); } else { CHECK(response_details.flow_status.find("EXPIRED_OTP") != @@ -323,7 +320,7 @@ autofill_client_->GetPaymentsAutofillClient() ->OnUnmaskOtpVerificationResult(OtpUnmaskResult::kOtpExpired); autofill_metrics::LogOtpAuthRetriableError( - card_->record_type(), autofill_metrics::OtpAuthEvent::kOtpExpired, + card_.record_type(), autofill_metrics::OtpAuthEvent::kOtpExpired, selected_challenge_option_.type); } return; @@ -362,7 +359,7 @@ autofill_client_->GetPaymentsAutofillClient() ->OnUnmaskOtpVerificationResult(OtpUnmaskResult::kSuccess); - autofill_metrics::LogOtpAuthResult(card_->record_type(), + autofill_metrics::LogOtpAuthResult(card_.record_type(), autofill_metrics::OtpAuthEvent::kSuccess, selected_challenge_option_.type); Reset(); @@ -379,13 +376,13 @@ response.result = OtpAuthenticationResponse::Result::kVirtualCardRetrievalError; autofill_metrics::LogOtpAuthResult( - card_->record_type(), + card_.record_type(), autofill_metrics::OtpAuthEvent::kUnmaskCardVirtualCardRetrievalError, selected_challenge_option_.type); } else { response.result = OtpAuthenticationResponse::Result::kAuthenticationError; autofill_metrics::LogOtpAuthResult( - card_->record_type(), + card_.record_type(), autofill_metrics::OtpAuthEvent::kUnmaskCardAuthError, selected_challenge_option_.type); } @@ -423,7 +420,7 @@ autofill_client_->GetPaymentsAutofillClient() ->GetPaymentsNetworkInterface() ->CancelRequest(); - card_ = nullptr; + card_ = CreditCard(); selected_challenge_option_ = CardUnmaskChallengeOption(); otp_ = std::u16string(); context_token_ = std::string(); diff -Nru chromium-137.0.7151.68/components/autofill/core/browser/payments/credit_card_otp_authenticator.h chromium-137.0.7151.119/components/autofill/core/browser/payments/credit_card_otp_authenticator.h --- chromium-137.0.7151.68/components/autofill/core/browser/payments/credit_card_otp_authenticator.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/autofill/core/browser/payments/credit_card_otp_authenticator.h 2025-06-16 21:26:50.000000000 +0000 @@ -90,6 +90,8 @@ // |selected_challenge_option|. Will invoke // |SendSelectChallengeOptionRequest()| to send the selected challenge option // to server. + // TODO: tushartushar - Convert CreditCard* to a const CreditCard& as + // CreditCard can never be a nullptr, it shouldn't be raw pointer. virtual void OnChallengeOptionSelected( const CreditCard* card, const CardUnmaskChallengeOption& selected_challenge_option, @@ -141,7 +143,7 @@ void SendUnmaskCardRequest(); // Card being unmasked. - raw_ptr card_; + CreditCard card_; // User-entered OTP value. std::u16string otp_; diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -479,7 +479,7 @@ Websites dürfen keine Texte oder Bilder aus der Zwischenablage abrufen Auswählen Websites, die du besuchst, können Informationen zu deinen Aktivitäten speichern, um erwartungsgemäß zu funktionieren – beispielsweise um dafür zu sorgen, dass du angemeldet bleibst oder um Artikel in deinem Einkaufswagen zu speichern. Oft speichern Websites diese Informationen vorübergehend auf deinem Gerät. -Ok +OK Websitedaten löschen? Bedienungshilfen Nachfragen, bevor Websites auf mein Mikrofon zugreifen dürfen (empfohlen) diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_iw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -454,7 +454,7 @@ הביקור האחרון התבצע לפני ימים אפשרויות נוספות הצגת התראות שקטה יותר (למניעת הקפצה של חלוניות מפריעות) -אתר שמותאם למחשב +אתר מותאם למחשב {COUNT,plural, =1{‏קובצי cookie מותרים לאתר אחד () של }one{‏קובצי cookie מותרים ל- אתרים של }two{‏קובצי cookie מותרים ל- אתרים של }other{‏קובצי cookie מותרים ל- אתרים של }} GB תוכן מוגן diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -250,7 +250,7 @@ ನಿಮ್ಮ ಕುರಿತು ಸೈಟ್‌ಗಳು ಸೇವ್ ಮಾಡಿರುವ ಮಾಹಿತಿಯನ್ನು ಬಳಸಲು ಸೈಟ್‌ಗಳು ಕೇಳಬಹುದು ಡೌನ್‌ಲೋಡ್‌‌ ಪೂರ್ಣಗೊಂಡಿದೆ ಕಂಟೆಂಟ್ ಅಥವಾ ಸೇವೆಗಳನ್ನು ಶುಲ್ಕವಿಲ್ಲದೇ ಒದಗಿಸುವ ಸಲುವಾಗಿ ಸೈಟ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುತ್ತವೆ. ಆದರೆ, ಕೆಲವು ಸೈಟ್‌ಗಳು ಅನಪೇಕ್ಷಿತ ಅಥವಾ ತಪ್ಪುದಾರಿಗೆಳೆಯುವ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುತ್ತವೆ. -ಲಿಂಕ್ ನಕಲಿಸಿ +ಲಿಂಕ್ ಕಾಪಿ ಮಾಡಿ / ? ನೀವು ಈ ಸೈಟ್‌ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಬಳಸಬಹುದು ಈ ಪುಟದ ಕುರಿತು diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -394,7 +394,7 @@ Os sites podem pedir para editar arquivos e pastas no dispositivo Quando essa configuração está ativada, os sites podem pedir para acessar texto e imagens na sua área de transferência. Quando está desativada, os sites não podem acessar texto e imagens na sua área de transferência. Quando essa configuração está ativada, os sites podem pedir para enviar notificações. Quando está desativada, os sites não podem enviar notificações. -Desativada +Desativado Ativar Pausar vídeo Fechar todas as solicitações diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_sr-Latn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -310,7 +310,7 @@ Sačuvano zumiranje za sajtove Pitaj kada sajt želi da zna kada aktivno koristim ovaj uređaj Uvrsti sve sajtove u okviru ovog domena -Sajtovi obično koriste mikrofon za potrebe funkcija za komunikaciju poput video ćaskanja +Sajtovi obično koriste mikrofon za potrebe funkcija za komunikaciju poput video četa Podešavanja kojima se upravlja ne mogu da se resetuju Pre nego što dozvolite sajtovima da koriste uređaj i podatke virtuelne realnosti prikazuje se upit (preporučeno) Grupe ćete pronaći u odeljku za grupe kartica na svim uređajima @@ -520,7 +520,7 @@ Izađite iz pretrage u centru Sajt koristi mikrofon Uvek -Sajtovi obično koriste video kameru za potrebe funkcija komunikacije poput video ćaskanja +Sajtovi obično koriste video kameru za potrebe funkcija komunikacije poput video četa Blokiraj da sajtovi puštaju zaštićeni sadržaj Povezan je sa Bluetooth uređajem Možete da izbrišete delove ili celu istoriju, kolačiće, podatke o sajtovima i drugo diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_sr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -310,7 +310,7 @@ Сачувано зумирање за сајтове Питај када сајт жели да зна када активно користим овај уређај Уврсти све сајтове у оквиру овог домена -Сајтови обично користе микрофон за потребе функција за комуникацију попут видео ћаскања +Сајтови обично користе микрофон за потребе функција за комуникацију попут видео чета Подешавања којима се управља не могу да се ресетују Пре него што дозволите сајтовима да користе уређај и податке виртуелне реалности приказује се упит (препоручено) Групе ћете пронаћи у одељку за групе картица на свим уређајима @@ -520,7 +520,7 @@ Изађите из претраге у центру Сајт користи микрофон Увек -Сајтови обично користе видео камеру за потребе функција комуникације попут видео ћаскања +Сајтови обично користе видео камеру за потребе функција комуникације попут видео чета Блокирај да сајтови пуштају заштићени садржај Повезан је са Bluetooth уређајем Можете да избришете делове или целу историју, колачиће, податке о сајтовима и друго diff -Nru chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb --- chromium-137.0.7151.68/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/browser_ui/strings/android/translations/browser_ui_strings_vi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -251,7 +251,7 @@ Các trang web có thể yêu cầu bạn cho phép sử dụng thông tin mà trang web đã lưu về bạn Đã tải xuống xong Các trang web thường hiện quảng cáo để có thể cung cấp miễn phí nội dung hoặc dịch vụ. Tuy nhiên, một số trang web được xác định là hiện quảng cáo xâm nhập hoặc quảng cáo gây hiểu nhầm. -Sao chép liên kết +Sao chép đường liên kết /? có thể sử dụng thông tin của bạn khi bạn duyệt web Thông tin về trang này diff -Nru chromium-137.0.7151.68/components/certificate_transparency/data/log_list.json chromium-137.0.7151.119/components/certificate_transparency/data/log_list.json --- chromium-137.0.7151.68/components/certificate_transparency/data/log_list.json 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/certificate_transparency/data/log_list.json 2025-06-16 21:26:50.000000000 +0000 @@ -1,6 +1,6 @@ { - "version": "54.19", - "log_list_timestamp": "2025-05-30T12:58:08Z", + "version": "55.7", + "log_list_timestamp": "2025-06-16T12:53:26Z", "operators": [ { "name": "Google", @@ -359,22 +359,6 @@ ], "logs": [ { - "description": "Sectigo 'Sabre' CT log", - "log_id": "VYHUwhaQNgFK6gubVzxT8MDkOHhwJQgXL6OqHQcT0ww=", - "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8m/SiQ8/xfiHHqtls9m7FyOMBg4JVZY9CgiixXGz0akvKD6DEL8S0ERmFe9U4ZiA0M4kbT5nmuk3I85Sk4bagA==", - "url": "https://sabre.ct.comodo.com/", - "mmd": 86400, - "state": { - "readonly": { - "timestamp": "2024-05-06T12:53:20Z", - "final_tree_head": { - "sha256_root_hash": "rBTMeBSKemBB90yJ598PhN+iLHApXbJpHhlCuNcUfgg=", - "tree_size": 546099878 - } - } - } - }, - { "description": "Sectigo 'Sabre2025h1'", "log_id": "4JKz/AwdyOdoNh/eYbmWTQpSeBmKctZyxLBNpW1vVAQ=", "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfi858egjjrMyBK9NV/bbxXSkem07B1EMWvuAMAXGWgzEdtYGqFdN+9/kgpDCQa5wszGi4/o9XyxdBM20nVWrQQ==", diff -Nru chromium-137.0.7151.68/components/embedder_support/android/java/strings/translations/web_contents_delegate_android_strings_iw.xtb chromium-137.0.7151.119/components/embedder_support/android/java/strings/translations/web_contents_delegate_android_strings_iw.xtb --- chromium-137.0.7151.68/components/embedder_support/android/java/strings/translations/web_contents_delegate_android_strings_iw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/embedder_support/android/java/strings/translations/web_contents_delegate_android_strings_iw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -6,7 +6,7 @@ כחול ציאן לבן -רווייה +רוויה מג'נטה הצעות צהוב diff -Nru chromium-137.0.7151.68/components/omnibox/common/omnibox_feature_configs.cc chromium-137.0.7151.119/components/omnibox/common/omnibox_feature_configs.cc --- chromium-137.0.7151.68/components/omnibox/common/omnibox_feature_configs.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/omnibox/common/omnibox_feature_configs.cc 2025-06-16 21:26:50.000000000 +0000 @@ -402,5 +402,13 @@ base::FeatureParam(&kHappinessTrackingSurveyForOmniboxOnFocusZps, "SurveyDelay", 7000) .Get(); + happiness_trigger_id = base::FeatureParam( + &kHappinessTrackingSurveyForOmniboxOnFocusZps, + "HappinessTriggerId", "") + .Get(); + utility_trigger_id = + base::FeatureParam( + &kHappinessTrackingSurveyForOmniboxOnFocusZps, "UtilityTriggerId", "") + .Get(); } } // namespace omnibox_feature_configs diff -Nru chromium-137.0.7151.68/components/omnibox/common/omnibox_feature_configs.h chromium-137.0.7151.119/components/omnibox/common/omnibox_feature_configs.h --- chromium-137.0.7151.68/components/omnibox/common/omnibox_feature_configs.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/omnibox/common/omnibox_feature_configs.h 2025-06-16 21:26:50.000000000 +0000 @@ -338,6 +338,10 @@ size_t focus_threshold; // Number of ms before the survey may be shown. size_t survey_delay; + // Trigger ID of Intent and Satisfaction survey. + std::string happiness_trigger_id; + // Trigger ID of Usefulness and Distraction survey. + std::string utility_trigger_id; }; // Do not add new configs here at the bottom by default. They should be ordered diff -Nru chromium-137.0.7151.68/components/optimization_guide/content/browser/page_context_eligibility.cc chromium-137.0.7151.119/components/optimization_guide/content/browser/page_context_eligibility.cc --- chromium-137.0.7151.68/components/optimization_guide/content/browser/page_context_eligibility.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/optimization_guide/content/browser/page_context_eligibility.cc 2025-06-16 21:26:50.000000000 +0000 @@ -4,6 +4,7 @@ #include "components/optimization_guide/content/browser/page_context_eligibility.h" +#include "base/compiler_specific.h" #include "base/memory/ptr_util.h" #include "base/no_destructor.h" #include "components/optimization_guide/content/browser/page_context_eligibility_api.h" @@ -17,6 +18,7 @@ PageContextEligibility::~PageContextEligibility() = default; // static +DISABLE_CFI_DLSYM PageContextEligibility* PageContextEligibility::Get() { static base::NoDestructor> page_context_eligibility{Create()}; @@ -49,4 +51,20 @@ return base::WrapUnique(new PageContextEligibility(api)); } +DISABLE_CFI_DLSYM +bool IsPageContextEligible( + const std::string& host, + const std::string& path, + const std::vector& frame_metadata, + const PageContextEligibility* api_holder) { + // TODO(crbug.com/421932889): `api_holder` should not be provided by caller + // and instead be retrieved as part of this function call. + if (!api_holder) { + return true; + } + + return api_holder->api().IsPageContextEligible(host, path, + std::move(frame_metadata)); +} + } // namespace optimization_guide diff -Nru chromium-137.0.7151.68/components/optimization_guide/content/browser/page_context_eligibility.h chromium-137.0.7151.119/components/optimization_guide/content/browser/page_context_eligibility.h --- chromium-137.0.7151.68/components/optimization_guide/content/browser/page_context_eligibility.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/optimization_guide/content/browser/page_context_eligibility.h 2025-06-16 21:26:50.000000000 +0000 @@ -16,6 +16,8 @@ namespace optimization_guide { +// TODO(crbug.com/421932889): Forward declare PageContextEligibility so that +// callers cannot invoke api() directly. class PageContextEligibility { public: explicit PageContextEligibility(const PageContextEligibilityAPI* api); @@ -39,6 +41,15 @@ raw_ptr api_; }; +// Checks if the page is context eligible using the api provided in +// `api_holder`. This function must be called instead of the function in the API +// directly in order to have properly disabled CFI. +bool IsPageContextEligible( + const std::string& host, + const std::string& path, + const std::vector& frame_metadata, + const PageContextEligibility* api_holder); + } // namespace optimization_guide #endif // COMPONENTS_OPTIMIZATION_GUIDE_CONTENT_BROWSER_PAGE_CONTEXT_ELIGIBILITY_H_ diff -Nru chromium-137.0.7151.68/components/password_manager/core/browser/features/password_features.cc chromium-137.0.7151.119/components/password_manager/core/browser/features/password_features.cc --- chromium-137.0.7151.68/components/password_manager/core/browser/features/password_features.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/password_manager/core/browser/features/password_features.cc 2025-06-16 21:26:50.000000000 +0000 @@ -149,6 +149,10 @@ "TriggerPasswordResyncAfterDeletingUndecryptablePasswords", base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kTriggerPasswordResyncWhenUndecryptablePasswordsDetected, + "TriggerPasswordResyncWhenUndecryptablePasswordsDetected", + base::FEATURE_DISABLED_BY_DEFAULT); + #if BUILDFLAG(IS_ANDROID) BASE_FEATURE(kBiometricAuthIdentityCheck, "BiometricAuthIdentityCheck", diff -Nru chromium-137.0.7151.68/components/password_manager/core/browser/features/password_features.h chromium-137.0.7151.119/components/password_manager/core/browser/features/password_features.h --- chromium-137.0.7151.68/components/password_manager/core/browser/features/password_features.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/password_manager/core/browser/features/password_features.h 2025-06-16 21:26:50.000000000 +0000 @@ -136,6 +136,9 @@ // is enabled by default and should be treaded as a killswitch. BASE_DECLARE_FEATURE(kTriggerPasswordResyncAfterDeletingUndecryptablePasswords); +// Starts passwords resync when undecryptable passwords are detected. +BASE_DECLARE_FEATURE(kTriggerPasswordResyncWhenUndecryptablePasswordsDetected); + #if BUILDFLAG(IS_ANDROID) // The feature flag for the Identity Check feature. The feature makes biometric // authentication mandatory before password filling in untrusted locations. diff -Nru chromium-137.0.7151.68/components/password_manager/core/browser/sync/password_sync_bridge.cc chromium-137.0.7151.119/components/password_manager/core/browser/sync/password_sync_bridge.cc --- chromium-137.0.7151.68/components/password_manager/core/browser/sync/password_sync_bridge.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/password_manager/core/browser/sync/password_sync_bridge.cc 2025-06-16 21:26:50.000000000 +0000 @@ -60,7 +60,7 @@ // Reading successful, but the base entity specifics cache contains proto // fields supported in the current browser version. The cache is meant to only // preserve unsupported fields, hence the initial sync flow is forced to - // resolve this incosistency. + // resolve this inconsistency. kNewlySupportedFieldDetectedInUnsupportedFieldsCache = 4, // Reading successful, but the browser has been upgraded to a version that // supports @@ -72,8 +72,12 @@ // Reading successful, but suspicious bulk deletions were detected. To err on // the side of safety, drop all password sync metadata and start again. kPasswordsCleanupAccidentalBatchDeletions = 6, + // Reading successful, but undecryptable passwords were detected. This is + // logged when the password sync metadata is cleared to force resync in such + // case. + kReadSuccessButClearedDueToUndecryptablePasswords = 7, - kMaxValue = kPasswordsCleanupAccidentalBatchDeletions, + kMaxValue = kReadSuccessButClearedDueToUndecryptablePasswords, }; std::string ComputeClientTag( @@ -278,6 +282,18 @@ return false; } +// Returns true if the password store contains undecryptable passwords either +// because the encryption service failed or failed with partial data. +bool DoesPasswordStoreContainUndecryptablePasswords( + PasswordStoreSync* password_store_sync) { + PrimaryKeyToPasswordSpecificsDataMap key_to_specifics_map; + const FormRetrievalResult read_result = + password_store_sync->ReadAllCredentials(&key_to_specifics_map); + return read_result == FormRetrievalResult::kEncryptionServiceFailure || + read_result == + FormRetrievalResult::kEncryptionServiceFailureWithPartialData; +} + // A simple class for scoping a password store sync transaction. If the // transaction hasn't been committed, it will be rolled back when it goes out of // scope. @@ -390,6 +406,22 @@ batch = std::make_unique(); sync_metadata_read_error = SyncMetadataReadError::kPasswordsCleanupAccidentalBatchDeletions; + } else if ( + DoesPasswordStoreContainUndecryptablePasswords(password_store_sync_) && + ShouldRecoverPasswordsDuringMerge() && + base::FeatureList::IsEnabled( + features:: + kTriggerPasswordResyncWhenUndecryptablePasswordsDetected)) { + // Some locally undecryptable credentials were detected, force initial + // sync by dropping the sync metadata. This is only done if + // ShouldRecoverPasswordsDuringMerge() returns true to avoid triggering + // this logic on every startup if the undecryptable passwords are not + // deleted. + password_store_sync_->GetMetadataStore()->DeleteAllSyncMetadata( + syncer::PASSWORDS); + batch = std::make_unique(); + sync_metadata_read_error = SyncMetadataReadError:: + kReadSuccessButClearedDueToUndecryptablePasswords; } } base::UmaHistogramEnumeration("PasswordManager.SyncMetadataReadError2", diff -Nru chromium-137.0.7151.68/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc chromium-137.0.7151.119/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc --- chromium-137.0.7151.68/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/password_manager/core/browser/sync/password_sync_bridge_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -1091,7 +1091,6 @@ .WillOnce(Return(false)); EXPECT_CALL(*mock_sync_metadata_store_sync(), GetAllSyncMetadata(syncer::PASSWORDS)); - EXPECT_CALL(*mock_password_store_sync(), ReadAllCredentials).Times(0); EXPECT_CALL(*mock_sync_metadata_store_sync(), DeleteAllSyncMetadata(syncer::PASSWORDS)) .Times(0); @@ -1167,7 +1166,6 @@ EXPECT_CALL(*mock_sync_metadata_store_sync(), GetAllSyncMetadata(syncer::PASSWORDS)); - EXPECT_CALL(*mock_password_store_sync(), ReadAllCredentials).Times(0); EXPECT_CALL(*mock_sync_metadata_store_sync(), DeleteAllSyncMetadata(syncer::PASSWORDS)) .Times(0); @@ -1181,6 +1179,187 @@ 0, 1); } +TEST_F( + PasswordSyncBridgeTest, + ShouldRemoveSyncMetadataWhenUndecryptablePasswordsDetectedAndFeatureEnabled) { + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/ + {features::kClearUndecryptablePasswordsOnSync, + features::kTriggerPasswordResyncWhenUndecryptablePasswordsDetected}, + /*disabled_features=*/{}); + + // 1. Mock GetAllSyncMetadata to return a valid batch that wouldn't trigger + // other metadata clearing conditions. + ON_CALL(*mock_sync_metadata_store_sync(), GetAllSyncMetadata) + .WillByDefault([&]() { + auto metadata_batch = std::make_unique(); + sync_pb::DataTypeState data_type_state; + data_type_state.set_initial_sync_state( + sync_pb::DataTypeState_InitialSyncState_INITIAL_SYNC_DONE); + // Ensure notes_enabled flag is set to avoid triggering notes + // redownload. + data_type_state.set_notes_enabled_before_initial_sync_for_passwords( + true); + metadata_batch->SetDataTypeState(data_type_state); + // Add some metadata to ensure the batch isn't empty and to verify it + // gets cleared. This metadata should not trigger + // SyncMetadataCacheContainsSupportedFields or + // DoesPasswordStoreContainAccidentalBatchDeletions. + sync_pb::EntityMetadata dummy_entity_metadata; + metadata_batch->AddMetadata( + "some_storage_key", + std::make_unique(dummy_entity_metadata)); + return metadata_batch; + }); + + // 2. Mock ReadAllCredentials to simulate undecryptable passwords. + // This will make DoesPasswordStoreContainUndecryptablePasswords() return + // true. It will also make WereUndecryptablePasswordsDeleted() return false + // if called, avoiding that specific metadata clearing path. + ON_CALL(*mock_password_store_sync(), ReadAllCredentials(_)) + .WillByDefault(Return(FormRetrievalResult::kEncryptionServiceFailure)); + + // Expectations: + // - Metadata should be deleted. + EXPECT_CALL(*mock_sync_metadata_store_sync(), + DeleteAllSyncMetadata(syncer::PASSWORDS)); + // - ModelReadyToSync should be called with an empty batch. + EXPECT_CALL(mock_processor(), ModelReadyToSync(MetadataBatchContains( + /*state=*/syncer::HasNotInitialSyncDone(), + /*entities=*/testing::SizeIs(0)))); + + // Re-initialize the bridge to trigger Init() with the new mock setups. + auto bridge = std::make_unique( + mock_processor().CreateForwardingProcessor(), + syncer::WipeModelUponSyncDisabledBehavior::kNever); + bridge->Init(mock_password_store_sync(), base::DoNothing()); + + histogram_tester.ExpectUniqueSample( + "PasswordManager.SyncMetadataReadError2", + 7, // SyncMetadataReadError:: + // kReadSuccessButClearedDueToUndecryptablePasswords + 1); +} + +TEST_F( + PasswordSyncBridgeTest, + ShouldNotRemoveSyncMetadataWhenUndecryptablePasswordsDetectedAndFeatureDisabled) { + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/ + {features::kClearUndecryptablePasswordsOnSync}, + /*disabled_features=*/{ + features::kTriggerPasswordResyncWhenUndecryptablePasswordsDetected}); + + // 1. Mock GetAllSyncMetadata to return a valid batch that wouldn't trigger + // other metadata clearing conditions. + ON_CALL(*mock_sync_metadata_store_sync(), GetAllSyncMetadata) + .WillByDefault([&]() { + auto metadata_batch = std::make_unique(); + sync_pb::DataTypeState data_type_state; + data_type_state.set_initial_sync_state( + sync_pb::DataTypeState_InitialSyncState_INITIAL_SYNC_DONE); + // Ensure notes_enabled flag is set to avoid triggering notes + // redownload. + data_type_state.set_notes_enabled_before_initial_sync_for_passwords( + true); + metadata_batch->SetDataTypeState(data_type_state); + // Add some metadata to ensure the batch isn't empty and to verify it + // gets cleared. This metadata should not trigger + // SyncMetadataCacheContainsSupportedFields or + // DoesPasswordStoreContainAccidentalBatchDeletions. + sync_pb::EntityMetadata dummy_entity_metadata; + metadata_batch->AddMetadata( + "some_storage_key", + std::make_unique(dummy_entity_metadata)); + return metadata_batch; + }); + + // 2. Mock ReadAllCredentials to simulate undecryptable passwords. + // This will make DoesPasswordStoreContainUndecryptablePasswords() return + // true. It will also make WereUndecryptablePasswordsDeleted() return false + // if called, avoiding that specific metadata clearing path. + ON_CALL(*mock_password_store_sync(), ReadAllCredentials(_)) + .WillByDefault(Return(FormRetrievalResult::kEncryptionServiceFailure)); + + // Expectations: + // - Metadata should not be deleted. + EXPECT_CALL(*mock_sync_metadata_store_sync(), + DeleteAllSyncMetadata(syncer::PASSWORDS)) + .Times(0); + + // Re-initialize the bridge to trigger Init() with the new mock setups. + auto bridge = std::make_unique( + mock_processor().CreateForwardingProcessor(), + syncer::WipeModelUponSyncDisabledBehavior::kNever); + bridge->Init(mock_password_store_sync(), base::DoNothing()); + + histogram_tester.ExpectUniqueSample("PasswordManager.SyncMetadataReadError2", + 0, // SyncMetadataReadError::kNone + 1); +} + +TEST_F( + PasswordSyncBridgeTest, + ShouldNotRemoveSyncMetadataWhenUndecryptablePasswordsDetectedAndFeatureEnabledButShouldRecoverPasswordsDuringMergeIsFalse) { + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + /*enabled_features=*/ + {features::kTriggerPasswordResyncWhenUndecryptablePasswordsDetected}, + /*disabled_features=*/{features::kClearUndecryptablePasswordsOnSync}); + + // 1. Mock GetAllSyncMetadata to return a valid batch that wouldn't trigger + // other metadata clearing conditions. + ON_CALL(*mock_sync_metadata_store_sync(), GetAllSyncMetadata) + .WillByDefault([&]() { + auto metadata_batch = std::make_unique(); + sync_pb::DataTypeState data_type_state; + data_type_state.set_initial_sync_state( + sync_pb::DataTypeState_InitialSyncState_INITIAL_SYNC_DONE); + // Ensure notes_enabled flag is set to avoid triggering notes + // redownload. + data_type_state.set_notes_enabled_before_initial_sync_for_passwords( + true); + metadata_batch->SetDataTypeState(data_type_state); + // Add some metadata to ensure the batch isn't empty and to verify it + // gets cleared. This metadata should not trigger + // SyncMetadataCacheContainsSupportedFields or + // DoesPasswordStoreContainAccidentalBatchDeletions. + sync_pb::EntityMetadata dummy_entity_metadata; + metadata_batch->AddMetadata( + "some_storage_key", + std::make_unique(dummy_entity_metadata)); + return metadata_batch; + }); + + // 2. Mock ReadAllCredentials to simulate undecryptable passwords. + // This will make DoesPasswordStoreContainUndecryptablePasswords() return + // true. It will also make WereUndecryptablePasswordsDeleted() return false + // if called, avoiding that specific metadata clearing path. + ON_CALL(*mock_password_store_sync(), ReadAllCredentials(_)) + .WillByDefault(Return(FormRetrievalResult::kEncryptionServiceFailure)); + + // Expectations: + // - Metadata should not be deleted. + EXPECT_CALL(*mock_sync_metadata_store_sync(), + DeleteAllSyncMetadata(syncer::PASSWORDS)) + .Times(0); + + // Re-initialize the bridge to trigger Init() with the new mock setups. + auto bridge = std::make_unique( + mock_processor().CreateForwardingProcessor(), + syncer::WipeModelUponSyncDisabledBehavior::kNever); + bridge->Init(mock_password_store_sync(), base::DoNothing()); + + histogram_tester.ExpectUniqueSample("PasswordManager.SyncMetadataReadError2", + 0, // SyncMetadataReadError::kNone + 1); +} + // This tests that if adding logins to the store fails, // ShouldMergeSync() would return an error without crashing. TEST_F(PasswordSyncBridgeTest, diff -Nru chromium-137.0.7151.68/components/policy/resources/policy_templates_zh-CN.xtb chromium-137.0.7151.119/components/policy/resources/policy_templates_zh-CN.xtb --- chromium-137.0.7151.68/components/policy/resources/policy_templates_zh-CN.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/policy/resources/policy_templates_zh-CN.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -4260,7 +4260,7 @@ 如果此政策已启用,系统会在 中停用 Chrome 应用商店中处于未发布状态的扩展程序。 此政策仅适用于那些通过 Chrome 应用商店安装和更新的扩展程序。 -系统会忽略并非通过 Chrome 应用商店安装的扩展程序,例如:使用开发者模式安装的未封装扩展程序,以及使用命令行开关安装的扩展程序。 +系统会忽略并非通过 Chrome 应用商店安装的扩展程序,例如:使用开发者模式安装的未打包扩展程序,以及使用命令行开关安装的扩展程序。 系统还会忽略自主托管的强制安装扩展程序。所有已被固定了版本的扩展程序也会被忽略。 如果此政策设为 (0) 或未设置,系统将允许使用 Chrome 应用商店中处于未发布状态的扩展程序。 diff -Nru chromium-137.0.7151.68/components/policy/resources/policy_templates_zh-TW.xtb chromium-137.0.7151.119/components/policy/resources/policy_templates_zh-TW.xtb --- chromium-137.0.7151.68/components/policy/resources/policy_templates_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/policy/resources/policy_templates_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -197,9 +197,9 @@ 啟用音訊和影片的 HTTPS 自動升級功能,並針對圖片顯示「不安全」的警告。 有了 AI 輔助歷史記錄搜尋功能,使用者除了可以搜尋網頁標題和網址,還能根據網頁內容搜尋瀏覽記錄,並取得生成的解答。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -231,9 +231,9 @@ 此功能無法透過使用者設定操控,通常會提供給所有將預設搜尋引擎設為 Google 的使用者,除非這項政策設為停用。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -2197,9 +2197,9 @@ 如果不設定這項政策或其中的任何設定,系統會針對各項電源設定使用預設值。 這項政策會控管 的生成式 AI 相片編輯功能設定。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -3506,9 +3506,9 @@ 請注意,我們之前宣布將在 第 82 版中移除這項政策,但改為在第 84 版中移除。 這項政策會控管 的內嵌圖片功能設定。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改良 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改良 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改良 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改良 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改良模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改良模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -5361,9 +5361,9 @@ 每月應重新啟動的日期 [1-31] (根據裝置當地時區),僅適用於「frequency」設為「MONTHLY」的情況。如果這個值大於指定月份的天數上限,系統會選擇當月的最後一天。 生成式 AI VC 背景功能可讓使用者透過生成式 AI 功能,在 中建立個人化的視訊會議背景,展現自我風格。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -5393,9 +5393,9 @@ 如果將這項政策設為「」,系統將保留所有使用者資料。這個選項的失敗風險很高,必須恢復原廠設定才能復原。 生成式 AI 桌布可讓使用者透過生成式 AI 功能,在 中建立個人化桌布,展現自我風格。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -6228,9 +6228,9 @@ 「分頁比較」是 AI 輔助工具,可用於比較不同分頁的資訊。舉例來說,假如使用者開啟多個分頁,而且分頁中的商品類似,就可以使用這項功能比較商品資訊。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -6252,9 +6252,9 @@ 不要處理 這項政策會定義所有相關生成式 AI 功能的預設設定。舉例來說,如果將這項政策的值設為 1,1 就會是所有相關生成式 AI 功能的預設設定值。這不會影響任何手動設定的政策值。這項設定會定義 和相關的 Chrome 生成式 AI 功能預設值。如要查看相關功能的完整清單,請前往 https://support.google.com/chrome/a?p=generative_ai_settings。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改進 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改進 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改良模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改良模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -6577,9 +6577,9 @@ 啟用游標醒目顯示功能 這項政策會控管是否會為 建議以類似內容為依據的群組。內容可包含瀏覽器分頁和應用程式。使用者登入時,系統會顯示建議的群組。在工作階段中,系統會提供群組的建議桌面。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改進 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改進 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改進 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改進 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改進模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改進模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -7072,9 +7072,9 @@ 如果不設定這項政策,所有網站都將使用全域預設值 (不會自動取得存取權)。 分頁整理工具採用 AI 技術,可依據使用者開啟的分頁自動建立分頁群組。系統會根據開啟的分頁 (而非網頁內容) 提供建議。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -7429,9 +7429,9 @@ 允許隔離網頁應用程式來源使用受控頁框 這些 開發人員工具功能採用生成式 AI 模型,可提供額外偵錯資訊。如要使用這些功能, 必須收集錯誤訊息、堆疊追蹤、程式碼片段和網路要求等資料,再傳送到執行生成式 AI 模型的 Google 伺服器。傳送到伺服器的資料不會有網路要求中的回應內文、驗證和 Cookie 標頭。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -10322,9 +10322,9 @@ 禁止任何網頁應用程式透過 File Handling API 存取特定類型的檔案 這項政策會控管 的「幫我閱讀」功能設定。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -10363,11 +10363,11 @@ 如要設定這項政策,必須將 政策設為停用。 在登入畫面上停用隨選朗讀功能 PageUp/PageDown 設定採用含有搜尋輔助鍵的快速鍵 -「幫我寫」是採用 AI 技術的撰寫助理,適用於簡短格式的網頁內容。系統會根據使用者輸入的提示和網頁內容提供建議。 +「幫我寫」是採用 AI 技術的撰寫助理,適用於簡短格式的網頁內容。系統會根據使用者輸入的提示詞和網頁內容提供建議。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -10385,9 +10385,9 @@ 將 Android 應用程式安裝事件記錄分享給 Google 這項政策會控管 的掃描器功能設定。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -10953,9 +10953,9 @@ 啟用裝置系統資訊回報功能 使用者可透過「使用 AI 建立主題」功能,從選項清單中預先選取偏好設定,然後建立自訂主題/桌布。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。這些資料也可能會送交專人審查,以改善 AI 模型。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 @@ -11103,9 +11103,9 @@ 如果想進一步瞭解有效的網址模式,請參閱 https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns。 指定使用者能否讓 使用生成式 AI 來進一步辨識表單,協助填寫更多欄位。 -0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。預設值為 0,但以下註明的情形除外。 +0 = 允許使用這項功能,並允許 Google 運用相關資料改善 AI 模型。相關資料可能包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋 (視功能而定)。預設值為 0,但以下註明的情形除外。 -1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 +1 = 允許使用這項功能,但不允許 Google 運用使用者的內容 (包括提示詞、輸入內容、輸出內容、來源資料和文字意見回饋) 改善模型。如果是 管理的企業版使用者,以及 管理的教育版帳戶,預設值為 1。 2 = 不允許使用這項功能。 diff -Nru chromium-137.0.7151.68/components/strings/components_strings_da.xtb chromium-137.0.7151.119/components/strings/components_strings_da.xtb --- chromium-137.0.7151.68/components/strings/components_strings_da.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_da.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2227,7 +2227,7 @@ Rulning og zoom på delte faner Få rabat på og meget mere Brug enhedsoplåsning -Vis +Se Opret hurtigt en ny note i Google Keep Din administrator starter uploaden af dine filer til . Sørg for, at din enhed er forbundet, indtil din filupload er fuldført. Under uploaden kan du kun læse lokale filer. Verificerer koden... diff -Nru chromium-137.0.7151.68/components/strings/components_strings_de.xtb chromium-137.0.7151.119/components/strings/components_strings_de.xtb --- chromium-137.0.7151.68/components/strings/components_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -291,7 +291,7 @@ Extradünn Radfahren Senden -Dies ist eine experimentelle KI-Schreibhilfe, die nicht immer richtig funktioniert. +Dies ist eine experimentelle KI-Schreibhilfe, die Fehler machen kann. Weitere Informationen Passwörter suchen Richtlinien per Push-Benachrichtigung: @@ -1010,7 +1010,7 @@ Vollständigen Namen ausfüllen Seitenfach Das Serverzertifikat ist mit einem schwachen Signaturalgorithmus signiert. -Zahlungsdetails werden unter Einsatz von Sicherheitsmaßnahmen verifiziert… +Datenschutz ist uns wichtig, während wir deine Zahlungsdetails prüfen… Verbindungsdiagnose ausführen Weitere Informationen zu deiner Suchmaschine in Chromium 44 x 68 Zoll @@ -3448,7 +3448,7 @@ Ersetzt Stellen im öffentlichen Dienst Netzwerkkonfiguration konnte nicht geparst werden (ungültige JSON-Datei). -Ok +OK Gerät Perzeptiv 1 Datei wurde aufgrund des Inhalts blockiert diff -Nru chromium-137.0.7151.68/components/strings/components_strings_es.xtb chromium-137.0.7151.119/components/strings/components_strings_es.xtb --- chromium-137.0.7151.68/components/strings/components_strings_es.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_es.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -291,7 +291,7 @@ Extrafino Ciclismo Enviar -Se trata de una ayuda experimental de escritura con IA y no siempre acierta. +Esto es una ayuda experimental de escritura con IA y no siempre acierta. Más información Buscar contraseñas Envío de políticas: @@ -746,7 +746,7 @@ Esta política no debe tener más de entradas destacadas. Se aplican condiciones para las ventajas de la tarjeta Verificando tu identidad... -Restringir +Pulir Subir dentro de min Número de teléfono Base de impresión diff -Nru chromium-137.0.7151.68/components/strings/components_strings_fa.xtb chromium-137.0.7151.119/components/strings/components_strings_fa.xtb --- chromium-137.0.7151.68/components/strings/components_strings_fa.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_fa.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -341,7 +341,7 @@ وارد کردن تاریخ انقضا ‏Google Chrome می‌خواهد Windows Hello را برای پر کردن گذرواژه‌ها روشن کند. x اینچ -درحال تأیید روش پرداخت +درحال درستی‌سنجی روش پرداخت اطلاعات آماری خرید سازمانتان این سایت را مسدود کرده است CVC @@ -959,7 +959,7 @@ هیچ دستگاه سازگاری پیدا نشد. ، دسترسی به فایل رد شد -سابقه و برگه‌ها +سابقه و زبانه‌ها ارسال حمام ‏دکمه «بستن نکته Chrome»، کلید «ورود» را برای بستن فشار دهید @@ -2738,7 +2738,7 @@ کاربر کنونی رایانه رومیزی {count,plural, =1{‫{website_1}}=2{‫{website_1}،‏ {website_2}}=3{‫{website_1}،‏ {website_2}، و ۱ وب‌سایت دیگر}one{‫{website_1}،‏ {website_2}، و {more_count} وب‌سایت دیگر}other{‫{website_1}،‏ {website_2}، و {more_count} وب‌سایت دیگر}} -برگه‌های اخیر +زبانه‌های اخیر ‏کنترل و برنامه‌ریزی مجدد دستگاه‌های MIDI میان‌بر نمی‌تواند با نویسه @ شروع شود: «» می‌تواند برای استفاده از ویژگی‌های پیشرفته چاپگر درخواست دهد @@ -3473,7 +3473,7 @@ آموزش تناسب اندام و تعلیم شخصی فرش و قالیچه قطعات و لوازم جانبی خودرو -برگه‌های جدید +زبانه‌های جدید در هر حال فرستاده شود این کارت درحال‌حاضر دردسترس نیست. لطفاً بعداً دوباره امتحان کنید. غذا و نوشیدنی @@ -3801,7 +3801,7 @@ نکته‌های زیر را امتحان کنید: ازطرف سرپرست: «» بار کردن مجدد و نمایش درهرصورت -برگهٔ جدید +زبانه جدید علوم زیستی استفاده از گذرکلید ادغام و تملک diff -Nru chromium-137.0.7151.68/components/strings/components_strings_fr.xtb chromium-137.0.7151.119/components/strings/components_strings_fr.xtb --- chromium-137.0.7151.68/components/strings/components_strings_fr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_fr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1315,7 +1315,7 @@ Invite "Enregistrer l'IBAN" ouverte à pleine hauteur. {0,plural, =1{Une règle de l'administrateur déconseille d'ouvrir ce fichier dans }one{Une règle de l'administrateur déconseille d'ouvrir ce fichier dans }other{Une règle de l'administrateur déconseille d'ouvrir ces fichiers dans }} Votre organisation, , a envoyé des infos, comme des paramètres ou des règles, aux sites Web suivants. -Connectez-vous à Chrome +Se connecter à Chrome portrait Télécharger une fois connecté devra peut-être effectuer d'autres étapes pour valider votre paiement diff -Nru chromium-137.0.7151.68/components/strings/components_strings_id.xtb chromium-137.0.7151.119/components/strings/components_strings_id.xtb --- chromium-137.0.7151.68/components/strings/components_strings_id.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_id.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1417,7 +1417,7 @@ Jumlah percobaan ulang Musik Rap & Hip-hop ingin melihat teks dan gambar yang disalin ke papan klip -Stabilo +Penyorot Sembunyikan lanjutan PDF ini tidak dapat diakses. Teks diekstrak, didukung oleh Google AI Kimia diff -Nru chromium-137.0.7151.68/components/strings/components_strings_it.xtb chromium-137.0.7151.119/components/strings/components_strings_it.xtb --- chromium-137.0.7151.68/components/strings/components_strings_it.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_it.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -577,7 +577,7 @@ vuole memorizzare in modo definitivo grandi quantità di dati sul computer locale Carta (Leggera) Freeware e shareware -{COUNT,plural, =1{e un'altra}other{e altre #}} +{COUNT,plural, =1{e 1 altra}other{e altre #}} Si è verificato un problema. La modifica non è stata salvata. Puoi apportare modifiche nelle impostazioni di Chrome. Reimposta ora la password @@ -903,7 +903,7 @@ A questo sito è stato impedito di conoscere la tua posizione precisa perché di solito non lo permetti Visualizza i dettagli del codice promozionale Apri una nuova scheda di navigazione in incognito per navigare in privato -{COUNT,plural, =1{e 1 altro}other{e altro #}} +{COUNT,plural, =1{e 1 altra}other{e altre #}} Aggiungi indirizzo Le altre persone che usano questo dispositivo non vedranno la tua attività, di conseguenza potrai navigare in modo più privato. La modalità di raccolta dei dati da parte dei siti web visitati e dei servizi utilizzati, incluso Google, rimane invariata. I download e i preferiti verranno salvati. Rileva diff -Nru chromium-137.0.7151.68/components/strings/components_strings_iw.xtb chromium-137.0.7151.119/components/strings/components_strings_iw.xtb --- chromium-137.0.7151.68/components/strings/components_strings_iw.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_iw.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1339,7 +1339,7 @@ קרוואנים נגררים וקרוואנים ממונעים בסדר יורד גישה לקובץ ולשינויים שבוצעו לאחרונה, כולל שמות קבצים, טביעות אצבע דיגיטליות של תוכן הקובץ, מקור ההורדה ומטא-נתונים -רווייה +רוויה לא עומד בדרישות להגדרה ככרטיס וירטואלי ניתן ללחוץ על כפתור הטעינה מחדש כדי לאפשר חיבור למכשירים או לשרתים ברשת הפרטית שלך. מאובטח @@ -1416,7 +1416,7 @@ מספר ניסיונות חוזרים ראפ והיפ-הופ רוצה גישה אל טקסט ותמונות שהועתקו אל לוח העריכה. -כלי הדגשה +מרקר הסתרת פרטים מתקדמים ‏אין גישה לקובץ ה-PDF הזה. הטקסט חולץ באמצעות AI מבית Google. כימיה diff -Nru chromium-137.0.7151.68/components/strings/components_strings_ja.xtb chromium-137.0.7151.119/components/strings/components_strings_ja.xtb --- chromium-137.0.7151.68/components/strings/components_strings_ja.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_ja.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -376,7 +376,7 @@ イベント企画 合計 さんがグループに参加しました -短縮 +より短く 読み込んでいます ユーザー ポリシー サイトのホームページにアクセスしてみてください。 @@ -577,7 +577,7 @@ から、ローカルのパソコンに大きなデータを永続的に保存する許可を求められています 紙(軽量) フリーウェア、シェアウェア -{COUNT,plural, =1{他 1 個}other{他 # 個}} +{COUNT,plural, =1{他 1 件}other{他 # 件}} エラーが発生しました。変更は保存されませんでした。 これらの設定は Chrome の設定で変更できます。 今すぐパスワードを再設定してください @@ -820,7 +820,7 @@ Chrome の設定で Chrome を更新します サーバーの証明書は取り消されています。 確定申告、税務 -詳述 +より詳しく オープンカー 値が設定されていないポリシーを表示する この配送方法はご利用いただけません。別の方法を選択してください。 @@ -903,7 +903,7 @@ 通常、正確な位置情報の共有が許可されていないため、このサイトでも許可されていません プロモーション コードの詳細を確認 新しいシークレット タブを開いてシークレット モードでブラウジングします -{COUNT,plural, =1{、他 1 件}other{、他 # 件}} +{COUNT,plural, =1{他 1 件}other{他 # 件}} 住所を追加 あなたのアクティビティはこのデバイスを使用する他のユーザーに表示されないため、プライバシーを守りながらブラウジングできます。アクセスしたウェブサイトと、そのウェブサイトが使用するサービス(Google を含む)のデータ収集方法は変更されません。ダウンロードしたファイルとブックマークは保存されます。 検出 @@ -2982,7 +2982,7 @@ 履歴からすべて削除 配送方法と要件を確認するには、住所を選択してください 害虫駆除 -フォーマル +よりフォーマルに 広告のプライバシー機能を有効にする 住所を更新しますか? このサイトへのアクセスは保護者が許可していません。許可してもらうよう依頼できます。 @@ -3273,7 +3273,7 @@ 195x270 mm 管理者: Windows Hello を使用 -フォーマルに +よりフォーマルに ガラス(テクスチャ) パスワード この価格は低額です diff -Nru chromium-137.0.7151.68/components/strings/components_strings_kn.xtb chromium-137.0.7151.119/components/strings/components_strings_kn.xtb --- chromium-137.0.7151.68/components/strings/components_strings_kn.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_kn.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -533,7 +533,7 @@ ಕ್ಯಾಮರಾದ ಬಳಕೆ ಮತ್ತು ಚಲನೆ ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಈ ಸೈಟ್‌ಗೆ ಅನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ ಈ ವರ್ಚುವಲ್ ಕಾರ್ಡ್‌ಗಾಗಿ CVC ಬಳಸಿ -JSON ಫಾರ್ಮ್ಯಾಟ್ ರೀತಿಯಲ್ಲೇ ನಕಲಿಸಿ +JSON ಫಾರ್ಮ್ಯಾಟ್ ರೀತಿಯಲ್ಲೇ ಕಾಪಿ ಮಾಡಿ ಸೇವೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಿ ನಿರ್ದಿಷ್ಟ ದೋಷ ಸಂದೇಶಕ್ಕೆ ಸಹಾಯ ಪಡೆಯಿರಿ 400 x 600 ಮಿಮೀ @@ -542,7 +542,7 @@ ಹೊಸತು ಕೂದಲಿನ ಆರೈಕೆ AI ನಿಂದ ಚಾಲಿತವಾದ ಇತಿಹಾಸ ಹುಡುಕಾಟಕ್ಕಾಗಿ ಫೀಡ್‌ಬ್ಯಾಕ್ ಕಳುಹಿಸಿ -ಹೇಗಿದ್ದರೂ ನಕಲಿಸಿ +ಹೇಗಿದ್ದರೂ ಕಾಪಿ ಮಾಡಿ ಸ್ವಯಂಚಾಲಿತ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ಮೋಡ್ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಕೇಳಬಹುದು ಸೇವ್ ಮಾಡಲಾದ ಸೆಕ್ಯೂರಿಟಿ ಕೋಡ್‌ಗಳನ್ನು ಅಳಿಸಿ @@ -1279,7 +1279,7 @@ ಥಂಬ್‌ನೇಲ್‌ಗಳು ಮೈಕ್ರೋಫೋನ್ ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ಬ್ರೌಸರ್ ಕುರಿತು ಆವೃತ್ತಿಯ ಮಾಹಿತಿ -ಆವೃತ್ತಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ನಕಲಿಸಿ +ಆವೃತ್ತಿ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕಾಪಿ ಮಾಡಿ ಗೆ CVC ಅನ್ನು ನಮೂದಿಸಿ ಈ ಸೈಟ್‌ನಲ್ಲಿ ಯಾವಾಗೂ ಮುಖ್ಯ ವಿಷಯವನ್ನು ಹುಡುಕಿ ತಿಳಿ ಕೆಂಪು @@ -3039,7 +3039,7 @@ ಹೇಗಿದ್ದರೂ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ ಸುರಕ್ಷತೆಗೆ ಹಿಂದಿರುಗಿ Password Manager ಗೆ ಹೆಚ್ಚಿನ ಆ್ಯಕ್ಸೆಸ್‌ನ ಅಗತ್ಯವಿದೆ - ಕಾರ್ಯನೀತಿಯ ಮೌಲ್ಯವನ್ನು ನಕಲಿಸಿ + ಕಾರ್ಯನೀತಿಯ ಮೌಲ್ಯವನ್ನು ಕಾಪಿ ಮಾಡಿ ತಿಳಿ ಕೆನ್ನೀಲಿ ದೋಣಿ ವಿಹಾರ ನಿಮ್ಮ Chrome ಇತಿಹಾಸದಲ್ಲಿ ಸಂಬಂಧಿತ ಚಟುವಟಿಕೆಯನ್ನು ನೋಡಲು ನಿಮ್ಮ ಪ್ರಯಾಣವನ್ನು ಪುನರಾರಂಭಿಸಿ @@ -3915,7 +3915,7 @@ ವಿಂಗಡಿಸಿ Google Forms ನಲ್ಲಿ ಹೊಸ ಫಾರ್ಮ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ರಚಿಸಿ ಯಾವಾಗಲು ನಲ್ಲಿನ ಪುಟಗಳನ್ನು ಅನುವಾದ ಮಾಡಿ -ಲಿಂಕ್ ವಿಳಾಸವನ್ನು ನಕಲಿಸಿ +ಲಿಂಕ್ ವಿಳಾಸವನ್ನು ಕಾಪಿ ಮಾಡಿ ಪ್ರಮಾಣಿತ ಈ ಸೈಟ್ ಅತಿಕ್ರಮಣಕಾರಿ ಅಥವಾ ತಪ್ಪುದಾರಿಗೆಳೆಯುವ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುತ್ತದೆ. ಉಳಿಸಲಾದ ವಿಳಾಸಗಳ ಟೇಬಲ್ diff -Nru chromium-137.0.7151.68/components/strings/components_strings_ko.xtb chromium-137.0.7151.119/components/strings/components_strings_ko.xtb --- chromium-137.0.7151.68/components/strings/components_strings_ko.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_ko.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -746,7 +746,7 @@ 이 정책의 추천 제공업체는 개를 넘으면 안 됩니다. 카드 혜택에는 약관이 적용됩니다 본인 확인 중... -상세검색 +다듬기 분 후 업로드 전화번호 인쇄 베이스 @@ -3720,7 +3720,7 @@ 쿠키 관리 버튼, Chrome 설정에서 쿠키 환경설정을 관리하려면 활성화하세요. 직장 프로필에 설치된 앱 및 확장 프로그램 주소 삭제 옵션이 선택됨 -작성 지원 기능 +글쓰기 도우미 시각 예술 및 디자인 공유된 탭 어학 @@ -3901,7 +3901,7 @@ 컨트리 음악 업데이트 완료됨(오류 발생) (안전하지 않음)(으)로 이동 -작성 지원 기능 +글쓰기 도우미 광디스크(고광택) 복사하거나 이동한 파일은 분석을 위해 Google Cloud 또는 서드 파티로 전송됩니다. 예를 들어 파일에 민감한 정보 또는 멀웨어가 있는지 검사하며 회사 정책에 따라 파일을 저장할 수도 있습니다. 보험 diff -Nru chromium-137.0.7151.68/components/strings/components_strings_mk.xtb chromium-137.0.7151.119/components/strings/components_strings_mk.xtb --- chromium-137.0.7151.68/components/strings/components_strings_mk.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_mk.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -415,7 +415,7 @@ Нивоа на зумирање Криптографски клуч • „ {1,plural, =1{Серверот не може да докаже дека е ; неговиот безбедносен сертификат наводно е утрешен. Тоа можеби се должи на погрешна конфигурација или на напаѓач што ја пресретнува вашата врска.}one{Серверот не може да докаже дека е ; неговиот безбедносен сертификат наводно е после # ден во иднината. Тоа можеби се должи на погрешна конфигурација или на напаѓач што ја пресретнува вашата врска.}other{Серверот не може да докаже дека е ; неговиот безбедносен сертификат наводно е после # дена во иднината. Тоа можеби се должи на погрешна конфигурација или на напаѓач што ја пресретнува вашата врска.}} -ОС +OS Игнорирано бидејќи не е поставено на . сака трајно да складира податоци на вашиот локален компјутер Фиока 2 diff -Nru chromium-137.0.7151.68/components/strings/components_strings_pl.xtb chromium-137.0.7151.119/components/strings/components_strings_pl.xtb --- chromium-137.0.7151.68/components/strings/components_strings_pl.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_pl.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -291,7 +291,7 @@ Bardzo cienka Jazda na rowerze Wyślij -To eksperymentalne narzędzie AI do pisania, które nie zawsze działa dobrze. +To eksperymentalne narzędzie do pisania oparte na AI, które nie zawsze działa dobrze. Więcej informacji Szukaj haseł Przekazywanie zasad w trybie push: @@ -820,7 +820,7 @@ Aktualizuj Chrome z poziomu ustawień przeglądarki Certyfikat serwera został unieważniony. Pomoc i planowanie dotyczące rozliczeń podatkowych -Rozwiń twórczo +Rozwiń Kabriolety Pokaż zasady bez ustawionej wartości Ta metoda wysyłki jest niedostępna. Wybierz inną. @@ -3721,7 +3721,7 @@ Przycisk Zarządzaj plikami cookie; aktywuj, aby zarządzać opcjami plików cookie w ustawieniach Chrome aplikacje i rozszerzenia zainstalowane w profilu służbowym, Wybrano opcję usunięcia adresu -Pomóż mi w pisaniu +Pomóż mi pisać Sztuki wizualne i projektowanie Udostępnione karty Nauka języków obcych @@ -3902,7 +3902,7 @@ Muzyka country Aktualizacja zakończona z błędami Otwórz stronę (niebezpieczną) -Pomóż mi w pisaniu +Pomóż mi pisać Dysk optyczny (wysoki połysk) Kopiowane lub przenoszone pliki są wysyłane do Google Cloud albo innych firm w celu analizy. Na przykład mogą być skanowane pod kątem danych wrażliwych lub złośliwego oprogramowania i przechowywane zgodnie z zasadami firmy. Ubezpieczenia diff -Nru chromium-137.0.7151.68/components/strings/components_strings_pt-BR.xtb chromium-137.0.7151.119/components/strings/components_strings_pt-BR.xtb --- chromium-137.0.7151.68/components/strings/components_strings_pt-BR.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_pt-BR.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -291,7 +291,7 @@ Ultrafino De bicicleta Enviar -Esta é uma ferramenta experimental de escrita com tecnologia de IA que nem sempre acerta. +Esta é uma ferramenta experimental de escrita com tecnologia de IA. Sujeita a erros. Saiba mais Pesquise senhas Push de políticas: @@ -342,7 +342,7 @@ O Google Chrome está tentando ativar o Windows Hello para preencher senhas. x pol. Verificando a forma de pagamento -Shopping Insights +Insights de compras Este site foi bloqueado pela sua organização CVC Não expira @@ -1603,7 +1603,7 @@ Revise antes de copiar os arquivos Eletrônicos para atividade física Sincronização em segundo plano -Aumentar a segurança usando um cartão virtual na próxima vez? +Aumentar a segurança com um cartão virtual na próxima vez? Você não pode visitar agora porque o website enviou credenciais embaralhadas que o Chromium não consegue processar. Erros de rede e ataques são geralmente temporários, de modo que esta página provavelmente funcionará mais tarde. O texto, o conteúdo e o URL da página em que você está escrevendo serão enviados ao Google, revisados por humanos e usados para melhorar esse recurso. Evite inserir informações pessoais, como detalhes médicos ou financeiros. Evite também usar essa ferramenta em sites que contenham informações particulares ou sensíveis. Metal (alto brilho) @@ -3751,7 +3751,7 @@ O formulário não é seguro Informe o motivo da cópia (obrigatório) Informe o motivo da transferência (obrigatório) -Agora Não +Agora não Avançar Envelope italiano Material escolar e equipamento para salas de aula @@ -3898,7 +3898,7 @@ Iniciar atualização agora Eventos esportivos ao vivo Atualizar o Google Play Services para RA? -Não há +Nenhum Música country Atualização concluída com erros Ir para (não seguro) @@ -3971,7 +3971,7 @@ O Wi-Fi que você está usando () pode exigir a visita a uma página de login. O que é a lista de compras? A captura de tela foi iniciada -Shopping Insights +Insights de compras Formas de pagamento disponíveis para selecionar e continuar com o pagamento. Teclado oculto. Vamos lá Histórico agrupado diff -Nru chromium-137.0.7151.68/components/strings/components_strings_th.xtb chromium-137.0.7151.119/components/strings/components_strings_th.xtb --- chromium-137.0.7151.68/components/strings/components_strings_th.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_th.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -1602,7 +1602,7 @@ ต้องตรวจสอบก่อนคัดลอก ผลิตภัณฑ์เทคโนโลยีด้านการออกกำลังกาย ซิงค์ในแบ็กกราวด์ -ใช้บัตรเสมือนในครั้งถัดไปเพื่อทําให้ปลอดภัยขึ้นไหม +ใช้บัตรเสมือนในครั้งถัดไปเพื่อชำระเงินอย่างปลอดภัยขึ้นไหม คุณไม่สามารถไปที่ ได้ในขณะนี้เนื่องจากเว็บไซต์ได้ส่งข้อมูลรับรองที่มีการแปลงข้อมูลซึ่ง Chromium ไม่สามารถดำเนินการได้ ข้อผิดพลาดของเครือข่ายและการโจมตีมักจะเกิดขึ้นชั่วคราว ดังนั้นหน้านี้อาจจะใช้งานได้ในภายหลัง ระบบจะส่งข้อความ เนื้อหา และ URL ของหน้าที่คุณเขียนไปยัง Google เพื่อตรวจสอบจากเจ้าหน้าที่ และใช้เพื่อปรับปรุงฟีเจอร์นี้ หลีกเลี่ยงการป้อนข้อมูลส่วนบุคคล (เช่น รายละเอียดทางการแพทย์หรือการเงิน) หรือใช้เครื่องมือนี้กับเว็บไซต์ที่มีข้อมูลส่วนตัวหรือข้อมูลที่ละเอียดอ่อน โลหะ (เงามาก) diff -Nru chromium-137.0.7151.68/components/strings/components_strings_tr.xtb chromium-137.0.7151.119/components/strings/components_strings_tr.xtb --- chromium-137.0.7151.68/components/strings/components_strings_tr.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_tr.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -577,7 +577,7 @@ , yerel bilgisiayarınızda büyük miktarda veri depolamak istiyor Kağıt (İnce) Ücretsiz ve Paylaşımlı Yazılımlar -{COUNT,plural, =1{ve 1 uygulama daha}other{ve # uygulama daha}} +{COUNT,plural, =1{ve 1 tane daha}other{ve # diğer hesap için}} Bir hata oluştu. Yaptığınız değişiklik kaydedilmedi. Chrome ayarlarında değişiklik yapabilirsiniz. Şifrenizi şimdi sıfırlayın @@ -903,7 +903,7 @@ Genellikle bu izni vermediğiniz için bu sitenin tam konumunuzu öğrenmesi engellendi Promosyon kodu ayrıntılarını göster Gizli olarak göz atmak için yeni bir gizli sekme aç -{COUNT,plural, =1{ve 1 tane daha}other{ve # tane daha}} +{COUNT,plural, =1{ve 1 tane daha}other{ve # diğer hesap için}} Adres Ekle Etkinliğiniz bu cihazı kullanan diğer kullanıcılar tarafından görülmediğinden daha gizli bir şekilde göz atabilirsiniz. Bu durum, Google da dahil olmak üzere ziyaret ettiğiniz web siteleri ve kullandıkları hizmetler tarafından verilerin toplanma şeklini değiştirmez. İndirilenler ve yer işaretleri kaydedilir. Algıla @@ -3971,7 +3971,7 @@ Kullandığınız kablosuz bağlantı ağı () giriş sayfasını ziyaret etmenizi gerektiriyor olabilir. Alışveriş listesi nedir? Ekran görüntüsü başlatıldı -Shopping Insights +Alışveriş Analizleri Ödemede kullanılmak üzere seçilebilecek ödeme yöntemleri. Klavye gizli. Başlayalım Gruplandırılmış geçmiş diff -Nru chromium-137.0.7151.68/components/strings/components_strings_vi.xtb chromium-137.0.7151.119/components/strings/components_strings_vi.xtb --- chromium-137.0.7151.68/components/strings/components_strings_vi.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_vi.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -820,7 +820,7 @@ Cập nhật Chrome từ phần cài đặt của Chrome Chứng chỉ của máy chủ đã bị thu hồi. Lập kế hoạch và chuẩn bị hồ sơ thuế -Chi tiết +Trình bày chi tiết Xe mui trần Hiển thị chính sách không có giá trị được đặt Phương thức giao hàng này không có sẵn. Hãy thử một phương thức khác. @@ -4793,7 +4793,8 @@ Chỉnh sửa địa chỉ cảm biến chuyển động hoặc ánh sáng Giày dép -Thẻ ảo giúp ngụy trang thẻ thực của bạn để bảo vệ bạn khỏi nguy cơ bị lừa đảo. +Thẻ ảo giúp bạn ẩn thẻ thực, bảo vệ bạn trước nguy cơ bị lừa đảo. + Màu hồng "" đã được cài đặt không đúng trên máy tính hoặc mạng của bạn: diff -Nru chromium-137.0.7151.68/components/strings/components_strings_zh-CN.xtb chromium-137.0.7151.119/components/strings/components_strings_zh-CN.xtb --- chromium-137.0.7151.68/components/strings/components_strings_zh-CN.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_zh-CN.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -2699,7 +2699,7 @@ 牵引送纸 已上传的崩溃报告 ID: 下述网址未包含必需的替换字符串“”: -电子邮件 +邮箱 一个新的智能文件夹,可帮助您在一个地方集中保存所有购物页面,并自动跟踪价格、获取价格分析洞见,等等。 此设备的管理员已安装了一些扩展程序来提供更多功能。这些扩展程序有权访问您的部分数据。 有声读物 @@ -4583,7 +4583,7 @@ 转到网站设置 建议:确保有数据网络连接稍后重新加载此网页检查您输入的地址是否正确 您的本地文件将在 小时后被删除 -保存卡 +保存银行卡 出了点问题。 服务器的证书已过期。 包括电话号码、电子邮件地址和送货地址等信息 @@ -4608,7 +4608,7 @@ 现在,您可以使用 Affirm 或 Zip 分期付款 您访问的网站可请求 Chrome 提供相关信息,以便衡量各自的广告效果。Chrome 允许网站收集有限类型的数据,例如您在访问某个网站后是否购买了商品。 输入“”的安全码 -电子邮件 +邮箱 显示了信用卡详细信息的对话框 A8 ,依次按 Tab 键和 Enter 键即可通过分享链接、创建二维码、投放等操作分享此标签页 diff -Nru chromium-137.0.7151.68/components/strings/components_strings_zh-HK.xtb chromium-137.0.7151.119/components/strings/components_strings_zh-HK.xtb --- chromium-137.0.7151.68/components/strings/components_strings_zh-HK.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_zh-HK.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -3239,7 +3239,7 @@ 假日和節日活動 淺粉紅色 身體或臉部脫毛 -如果你嘗試瀏覽的網站被攻擊,攻擊者可能會在你的裝置上安裝有害軟件,以竊取或刪除密碼、相片、訊息或信用卡號碼等資料。Chrome 強烈建議你不要瀏覽這類網站。進一步瞭解此警告訊息 +你嘗試瀏覽的網站受到攻擊,攻擊者可能會在你的裝置上安裝有害軟件,以竊取或刪除密碼、相片、訊息或信用卡號碼等資料。Chrome 強烈建議你不要瀏覽此網站。進一步瞭解此警告訊息 B5 信封 您複製的連結 您的 未受管理 diff -Nru chromium-137.0.7151.68/components/strings/components_strings_zh-TW.xtb chromium-137.0.7151.119/components/strings/components_strings_zh-TW.xtb --- chromium-137.0.7151.68/components/strings/components_strings_zh-TW.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/strings/components_strings_zh-TW.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -291,7 +291,7 @@ 極細 單車運動 傳送 -這項 AI 撰寫輔助功能仍在實驗階段,提供的建議不一定符合需求。瞭解詳情 +這項 AI 撰寫輔助功能仍在實驗階段,內容可能不符合需求。瞭解詳情 搜尋密碼 政策通知推送: 返回分頁 @@ -745,7 +745,7 @@ 這項政策最多只能包含 個精選項目。 卡片福利依相關條款規定 正在驗證你的身分... -修正搜尋 +調整文字 分鐘後上傳 電話號碼 列印基底 @@ -945,7 +945,7 @@ 儲存在裝置和 Google 帳戶中的所有安全碼都會刪除 搜尋引擎最佳化與行銷 學術研討會與出版品 -Insert 鍵 +插入 你最近使用的分頁 你的時鐘時間過快 可以要求連線至 USB 裝置 @@ -1103,7 +1103,7 @@ 開啟連結 Envelope 9 x 12 in 伺服器無法證明其屬於 網域;其安全性憑證來自 網域。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。 -非正式 +輕鬆 資訊科技與技術相關工作 上傳時間: 你必須能夠登入 Chrome,才能分享或加入分頁群組 diff -Nru chromium-137.0.7151.68/components/sync/model/processor_entity.cc chromium-137.0.7151.119/components/sync/model/processor_entity.cc --- chromium-137.0.7151.68/components/sync/model/processor_entity.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/sync/model/processor_entity.cc 2025-06-16 21:26:50.000000000 +0000 @@ -33,7 +33,7 @@ } std::string HashSpecifics(const sync_pb::EntitySpecifics& specifics) { - CHECK_GT(specifics.ByteSizeLong(), 0u, base::NotFatalUntil::M141); + DCHECK_GT(specifics.ByteSizeLong(), 0u); return base::Base64Encode( base::SHA1HashString(specifics.SerializeAsString())); } @@ -64,7 +64,7 @@ std::unique_ptr ProcessorEntity::CreateFromMetadata( const std::string& storage_key, sync_pb::EntityMetadata metadata) { - CHECK(!storage_key.empty(), base::NotFatalUntil::M141); + DCHECK(!storage_key.empty()); if (!MetadataIsValid(metadata)) { return nullptr; } @@ -83,8 +83,8 @@ ProcessorEntity::~ProcessorEntity() = default; void ProcessorEntity::SetStorageKey(const std::string& storage_key) { - CHECK(storage_key_.empty(), base::NotFatalUntil::M141); - CHECK(!storage_key.empty(), base::NotFatalUntil::M141); + DCHECK(storage_key_.empty()); + DCHECK(!storage_key.empty()); storage_key_ = storage_key; } @@ -93,7 +93,7 @@ } void ProcessorEntity::SetCommitData(std::unique_ptr data) { - CHECK(data); + DCHECK(data); // Update data's fields from metadata. data->client_tag_hash = ClientTagHash::FromHashed(metadata_.client_tag_hash()); @@ -104,7 +104,7 @@ data->modification_time = ProtoTimeToTime(metadata_.modification_time()); commit_data_ = std::move(data); - CHECK(HasCommitData()); + DCHECK(HasCommitData()); } bool ProcessorEntity::HasCommitData() const { @@ -120,23 +120,20 @@ } // Do not check for unique position changes explicitly because they are // supposed to be in specifics. - CHECK_GT(data.specifics.ByteSizeLong(), 0u, base::NotFatalUntil::M141); - return HashSpecifics(data.specifics) == metadata_.specifics_hash(); + return MatchesSpecificsHash(data.specifics); } bool ProcessorEntity::MatchesOwnBaseData() const { - // The `base_specifics_hash` is only set if the entity is unsynced. - CHECK(IsUnsynced(), base::NotFatalUntil::M141); + DCHECK(IsUnsynced()); if (metadata_.is_deleted()) { return false; } - CHECK(!metadata_.specifics_hash().empty(), base::NotFatalUntil::M141); + DCHECK(!metadata_.specifics_hash().empty()); return metadata_.specifics_hash() == metadata_.base_specifics_hash(); } bool ProcessorEntity::MatchesBaseData(const EntityData& data) const { - // The `base_specifics_hash` is only set if the entity is unsynced. - CHECK(IsUnsynced(), base::NotFatalUntil::M141); + DCHECK(IsUnsynced()); if (data.is_deleted() || metadata_.base_specifics_hash().empty()) { return false; } @@ -165,18 +162,17 @@ void ProcessorEntity::RecordIgnoredRemoteUpdate( const UpdateResponseData& update) { - CHECK(metadata_.server_id().empty() || - metadata_.server_id() == update.entity.id, - base::NotFatalUntil::M141); + DCHECK(metadata_.server_id().empty() || + metadata_.server_id() == update.entity.id); metadata_.set_server_id(update.entity.id); metadata_.set_server_version(update.response_version); // Either these already matched, acked was just bumped to squash a pending // commit and this should follow, or the pending commit needs to be requeued. commit_requested_sequence_number_ = metadata_.acked_sequence_number(); - // If a local change was made while the server assigned a new id to the - // entity, update the id in cached commit data. + // If local change was made while server assigned a new id to the entity, + // update id in cached commit data. if (HasCommitData() && commit_data_->id != metadata_.server_id()) { - CHECK(commit_data_->id.empty(), base::NotFatalUntil::M141); + DCHECK(commit_data_->id.empty()); commit_data_->id = metadata_.server_id(); } } @@ -185,7 +181,7 @@ const UpdateResponseData& update, sync_pb::EntitySpecifics trimmed_specifics, std::optional unique_position) { - CHECK(!IsUnsynced(), base::NotFatalUntil::M141); + DCHECK(!IsUnsynced()); RecordIgnoredRemoteUpdate(update); metadata_.set_is_deleted(update.entity.is_deleted()); metadata_.set_modification_time( @@ -234,6 +230,8 @@ std::unique_ptr data, sync_pb::EntitySpecifics trimmed_specifics, std::optional unique_position) { + DCHECK(!metadata_.client_tag_hash().empty()); + // Update metadata fields from updated data. base::Time modification_time = !data->modification_time.is_null() ? data->modification_time @@ -318,11 +316,10 @@ void ProcessorEntity::InitializeCommitRequestData(CommitRequestData* request) { if (!metadata_.is_deleted()) { - CHECK(HasCommitData(), base::NotFatalUntil::M141); - CHECK_EQ(commit_data_->client_tag_hash.value(), metadata_.client_tag_hash(), - base::NotFatalUntil::M141); - CHECK_EQ(commit_data_->id, metadata_.server_id(), - base::NotFatalUntil::M141); + DCHECK(HasCommitData()); + DCHECK_EQ(commit_data_->client_tag_hash.value(), + metadata_.client_tag_hash()); + DCHECK_EQ(commit_data_->id, metadata_.server_id()); request->entity = std::move(commit_data_); } else { // Make an EntityData with empty specifics to indicate deletion. This is @@ -406,6 +403,13 @@ return memory_usage; } +bool ProcessorEntity::MatchesSpecificsHash( + const sync_pb::EntitySpecifics& specifics) const { + DCHECK(!metadata_.is_deleted()); + DCHECK_GT(specifics.ByteSizeLong(), 0u); + return HashSpecifics(specifics) == metadata_.specifics_hash(); +} + void ProcessorEntity::UpdateSpecificsHash( const sync_pb::EntitySpecifics& specifics) { if (specifics.ByteSizeLong() > 0) { diff -Nru chromium-137.0.7151.68/components/sync/model/processor_entity.h chromium-137.0.7151.119/components/sync/model/processor_entity.h --- chromium-137.0.7151.68/components/sync/model/processor_entity.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/components/sync/model/processor_entity.h 2025-06-16 21:26:50.000000000 +0000 @@ -44,9 +44,8 @@ const std::string& server_id, base::Time creation_time); - // Construct an instance representing an item loaded from storage on init. The - // passed-in `storage_key` must not be empty. May return nullptr if the - // passed-in `metadata` is invalid. + // Construct an instance representing an item loaded from storage on init. May + // return nullptr if the passed-in `metadata` is invalid. static std::unique_ptr CreateFromMetadata( const std::string& storage_key, sync_pb::EntityMetadata metadata); @@ -108,9 +107,8 @@ // previously committed to server and tombstone should be sent. bool RecordLocalDeletion(const DeletionOrigin& origin); - // Initializes a message representing this item's uncommitted state. Assumes - // that the message is forwarded to the sync engine for committing, i.e. - // clears local commit data. + // Initializes a message representing this item's uncommitted state + // and assumes that it is forwarded to the sync engine for committing. void InitializeCommitRequestData(CommitRequestData* request); // Receives a successful commit response. @@ -137,21 +135,20 @@ void ClearStorageKey(); // Takes the passed commit data updates its fields with values from metadata - // and caches it in the instance. `data` must not be null. + // and caches it in the instance. void SetCommitData(std::unique_ptr data); - // Checks if the instance has cached commit data. + // Check if the instance has cached commit data. bool HasCommitData() const; - // Checks whether `data` matches the stored specifics hash. + // Check whether `data` matches the stored specifics hash. bool MatchesData(const EntityData& data) const; - // Checks whether the current metadata matches the stored base specifics hash. - // Must only be called if `IsUnsynced()` is true. + // Check whether the current metadata of an unsynced entity matches the stored + // base specifics hash. bool MatchesOwnBaseData() const; - // Check whether `data` matches the stored base specifics hash. Must only be - // called if `IsUnsynced()` is true. + // Check whether `data` matches the stored base specifics hash. bool MatchesBaseData(const EntityData& data) const; // Increment sequence number in the metadata. This will also update the @@ -167,6 +164,9 @@ ProcessorEntity(const std::string& storage_key, sync_pb::EntityMetadata metadata); + // Check whether `specifics` matches the stored specifics_hash. + bool MatchesSpecificsHash(const sync_pb::EntitySpecifics& specifics) const; + // Updates hash string for EntitySpecifics in the metadata. void UpdateSpecificsHash(const sync_pb::EntitySpecifics& specifics); diff -Nru chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_android.cc chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_android.cc --- chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_android.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_android.cc 2025-06-16 21:26:50.000000000 +0000 @@ -2285,6 +2285,11 @@ auto* manager = static_cast(this->manager()); manager->ClearNodeInfoCacheForGivenId(GetUniqueId()); + + if (BrowserAccessibilityAndroid* parent = + static_cast(PlatformGetParent())) { + manager->ClearNodeInfoCacheForGivenId(parent->GetUniqueId()); + } } int BrowserAccessibilityAndroid::CountChildrenWithRole( diff -Nru chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_android_unittest.cc chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_android_unittest.cc --- chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_android_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_android_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -9,6 +9,7 @@ #include "base/test/scoped_feature_list.h" #include "build/build_config.h" #include "content/browser/accessibility/browser_accessibility_manager_android.h" +#include "content/browser/accessibility/web_contents_accessibility_android.h" #include "content/public/test/browser_task_environment.h" #include "content/test/test_content_client.h" #include "testing/gtest/include/gtest/gtest.h" @@ -48,6 +49,12 @@ } }; +class MockWebContentsAccessibilityAndroid + : public WebContentsAccessibilityAndroid { + public: + MockWebContentsAccessibilityAndroid() {} +}; + class BrowserAccessibilityAndroidTest : public ::testing::Test { public: BrowserAccessibilityAndroidTest(); @@ -63,6 +70,7 @@ std::unique_ptr test_browser_accessibility_delegate_; ui::TestAXNodeIdDelegate node_id_delegate_; + MockWebContentsAccessibilityAndroid mock_web_contents_accessibility_android_; private: void SetUp() override; @@ -80,7 +88,8 @@ void BrowserAccessibilityAndroidTest::SetUp() { test_browser_accessibility_delegate_ = std::make_unique(); - + test_browser_accessibility_delegate_->SetWebContentsAccessibility( + &mock_web_contents_accessibility_android_); SetContentClient(&client_); } @@ -691,4 +700,120 @@ image_succeeded_with_name->GetSupplementalDescription()); } +TEST_F(BrowserAccessibilityAndroidTest, TestJavaNodeCache_AttributeChange) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(2); + tree.nodes[0].id = 1; + tree.nodes[0].role = ax::mojom::Role::kRootWebArea; + tree.nodes[0].child_ids = {2}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kButton; + + std::unique_ptr manager( + BrowserAccessibilityManagerAndroid::Create( + tree, node_id_delegate_, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityManagerAndroid* android_manager = + ToBrowserAccessibilityManagerAndroid(manager.get()); + const auto& actual = android_manager->nodes_already_cleared_for_test(); + EXPECT_EQ(2, actual.size()); + EXPECT_TRUE(actual.contains(1)); + EXPECT_TRUE(actual.contains(2)); + + ui::AXUpdatesAndEvents updates_and_events; + updates_and_events.updates.resize(1); + updates_and_events.updates[0].nodes.resize(1); + updates_and_events.updates[0].nodes[0].id = 2; + updates_and_events.updates[0].nodes[0].AddStringAttribute( + ax::mojom::StringAttribute::kName, "hello"); + + manager->OnAccessibilityEvents(updates_and_events); + + EXPECT_EQ(2, actual.size()); + EXPECT_TRUE(actual.contains(1)); + EXPECT_TRUE(actual.contains(2)); +} + +TEST_F(BrowserAccessibilityAndroidTest, TestJavaNodeCache_NodeDeleted) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(2); + tree.nodes[0].id = 1; + tree.nodes[0].role = ax::mojom::Role::kRootWebArea; + tree.nodes[0].child_ids = {2}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kButton; + + std::unique_ptr manager( + BrowserAccessibilityManagerAndroid::Create( + tree, node_id_delegate_, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityManagerAndroid* android_manager = + ToBrowserAccessibilityManagerAndroid(manager.get()); + const auto& actual = android_manager->nodes_already_cleared_for_test(); + EXPECT_EQ(2, actual.size()); + EXPECT_TRUE(actual.contains(1)); + EXPECT_TRUE(actual.contains(2)); + + ui::AXUpdatesAndEvents updates_and_events; + updates_and_events.updates.resize(1); + updates_and_events.updates[0].nodes.resize(1); + updates_and_events.updates[0].nodes[0].id = 1; + updates_and_events.updates[0].nodes[0].role = ax::mojom::Role::kRootWebArea; + + manager->OnAccessibilityEvents(updates_and_events); + + EXPECT_EQ(2, actual.size()); + EXPECT_TRUE(actual.contains(1)); + EXPECT_TRUE(actual.contains(2)); +} + +TEST_F(BrowserAccessibilityAndroidTest, TestJavaNodeCache_NodeUnignored) { + ui::AXTreeUpdate tree; + tree.root_id = 1; + tree.nodes.resize(3); + tree.nodes[0].id = 1; + tree.nodes[0].role = ax::mojom::Role::kRootWebArea; + tree.nodes[0].child_ids = {2}; + + tree.nodes[1].id = 2; + tree.nodes[1].role = ax::mojom::Role::kButton; + tree.nodes[1].AddState(ax::mojom::State::kIgnored); + tree.nodes[1].child_ids = {3}; + + tree.nodes[2].id = 3; + tree.nodes[2].role = ax::mojom::Role::kStaticText; + + std::unique_ptr manager( + BrowserAccessibilityManagerAndroid::Create( + tree, node_id_delegate_, test_browser_accessibility_delegate_.get())); + + BrowserAccessibilityManagerAndroid* android_manager = + ToBrowserAccessibilityManagerAndroid(manager.get()); + const auto& actual = android_manager->nodes_already_cleared_for_test(); + EXPECT_EQ(3, actual.size()); + EXPECT_TRUE(actual.contains(1)); + EXPECT_TRUE(actual.contains(2)); + EXPECT_TRUE(actual.contains(3)); + + ui::AXUpdatesAndEvents updates_and_events; + updates_and_events.updates.resize(1); + updates_and_events.updates[0].nodes.resize(1); + updates_and_events.updates[0].nodes[0].id = 2; + updates_and_events.updates[0].nodes[0].role = ax::mojom::Role::kButton; + + manager->OnAccessibilityEvents(updates_and_events); + + EXPECT_EQ(3, actual.size()); + // From an AXEventGenerator::Event::CHILDREN_CHANGED. + EXPECT_TRUE(actual.contains(1)); + // From an AXTreeObserver::Change; the only actual tree update. + EXPECT_TRUE(actual.contains(2)); + // From an AXEventGenerator::Event::PARENT_CHANGED. + EXPECT_TRUE(actual.contains(3)); +} + } // namespace content diff -Nru chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_manager_android.cc chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_manager_android.cc --- chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_manager_android.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_manager_android.cc 2025-06-16 21:26:50.000000000 +0000 @@ -182,8 +182,7 @@ GetFromAXNode(GetLastFocusedNode())) { BrowserAccessibilityAndroid* android_last_focused_node = static_cast(last_focused_node); - wcax->ClearNodeInfoCacheForGivenId( - android_last_focused_node->GetUniqueId()); + ClearNodeInfoCacheForGivenId(android_last_focused_node->GetUniqueId()); } BrowserAccessibilityAndroid* android_node = @@ -249,10 +248,6 @@ BrowserAccessibilityAndroid* android_node = static_cast(wrapper); - if (event_type == ui::AXEventGenerator::Event::CHILDREN_CHANGED) { - BrowserAccessibilityAndroid::ResetLeafCache(); - } - // Always send AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED to notify // the Android system that the accessibility hierarchy rooted at this // node has changed. @@ -342,9 +337,6 @@ break; } case ui::AXEventGenerator::Event::NAME_CHANGED: { - // Clear node from cache whenever the name changes to ensure fresh data. - wcax->ClearNodeInfoCacheForGivenId(android_node->GetUniqueId()); - // If this is a simple text element, also send an event to the framework. if (ui::IsText(android_node->GetRole()) || android_node->IsAndroidTextView()) { @@ -387,6 +379,10 @@ } break; + case ui::AXEventGenerator::Event::CHILDREN_CHANGED: + wcax->ClearNodeInfoCacheForGivenId(android_node->GetUniqueId()); + break; + // Currently unused events on this platform. case ui::AXEventGenerator::Event::NONE: case ui::AXEventGenerator::Event::ACCESS_KEY_CHANGED: @@ -399,7 +395,6 @@ case ui::AXEventGenerator::Event::BUSY_CHANGED: case ui::AXEventGenerator::Event::CARET_BOUNDS_CHANGED: case ui::AXEventGenerator::Event::CHECKED_STATE_DESCRIPTION_CHANGED: - case ui::AXEventGenerator::Event::CHILDREN_CHANGED: case ui::AXEventGenerator::Event::CONTROLS_CHANGED: case ui::AXEventGenerator::Event::DETAILS_CHANGED: case ui::AXEventGenerator::Event::DESCRIBED_BY_CHANGED: @@ -629,36 +624,52 @@ } } -void BrowserAccessibilityManagerAndroid::OnNodeWillBeDeleted(ui::AXTree* tree, - ui::AXNode* node) { - // https://crbug.com/361196029 looks like a nullptr deref. It's unexpected - // that ui::AXTree would pass a null node to an observer, and that the - // manager would not have a BrowserAccessibility wrapper for it. - DUMP_WILL_BE_CHECK(node); - ui::BrowserAccessibility* wrapper = GetFromAXNode(node); - DUMP_WILL_BE_CHECK(wrapper); +std::unique_ptr +BrowserAccessibilityManagerAndroid::CreateBrowserAccessibility( + ui::AXNode* node) { + return ui::BrowserAccessibility::Create(this, node); +} - BrowserAccessibilityAndroid* android_node = - static_cast(wrapper); +void BrowserAccessibilityManagerAndroid::OnAtomicUpdateStarting( + ui::AXTree* tree, + const std::set& deleting_nodes, + const std::set& reparenting_nodes) { + WebContentsAccessibilityAndroid* wcax = GetWebContentsAXFromRootManager(); + if (wcax) { + // This set needs to start fresh. This secondary cache is of requests to + // java to clear that primary cache of Android objects. The idea being only + // such such request is needed for each atomic update to the tree and node + // data. + nodes_already_cleared_.clear(); - ClearNodeInfoCacheForGivenId(android_node->GetUniqueId()); + // Update the maximum number of nodes in the cache after each atomic update. + wcax->UpdateMaxNodesInCache(); - // When a node will be deleted, clear its parent from the cache as well, or - // the parent could erroneously report the cleared node as a child later on. - BrowserAccessibilityAndroid* parent_node = - static_cast( - android_node->PlatformGetParent()); - if (parent_node != nullptr) { - ClearNodeInfoCacheForGivenId(parent_node->GetUniqueId()); - } + for (ui::AXNodeID id : deleting_nodes) { + ui::BrowserAccessibility* wrapper = GetFromID(id); + if (!wrapper) { + continue; + } - BrowserAccessibilityManager::OnNodeWillBeDeleted(tree, node); -} + BrowserAccessibilityAndroid* android_node = + static_cast(wrapper); -std::unique_ptr -BrowserAccessibilityManagerAndroid::CreateBrowserAccessibility( - ui::AXNode* node) { - return ui::BrowserAccessibility::Create(this, node); + ClearNodeInfoCacheForGivenId(android_node->GetUniqueId()); + + // When a node will be deleted, clear its parent from the cache as well, + // or the parent could erroneously report the cleared node as a child + // later on. + BrowserAccessibilityAndroid* parent_node = + static_cast( + android_node->PlatformGetParent()); + if (parent_node != nullptr) { + ClearNodeInfoCacheForGivenId(parent_node->GetUniqueId()); + } + } + } + + BrowserAccessibilityManager::OnAtomicUpdateStarting(tree, deleting_nodes, + reparenting_nodes); } void BrowserAccessibilityManagerAndroid::OnAtomicUpdateFinished( @@ -676,9 +687,6 @@ // Reset content changed events counter every time we finish an atomic update. wcax->ResetContentChangedEventsCounter(); - // Clear unordered_set of nodes cleared from the cache after atomic update. - nodes_already_cleared_.clear(); - // When the root changes, send the new root id and a navigate signal to Java. if (root_changed) { auto* root_manager = static_cast( @@ -692,8 +700,26 @@ wcax->HandleNavigate(root->GetUniqueId()); } - // Update the maximum number of nodes in the cache after each atomic update. - wcax->UpdateMaxNodesInCache(); + // Invalidate java-side cache for structural generated events. This + // encompasses less nodes than `changes`, but includes unignored retargeted + // event targets that isn't in `changes`. Eventually, we should prefer + // invalidations of generated events to those in + // BrowserAccessibility::OnDataChanged. + for (const auto& targeted_event : event_generator()) { + BrowserAccessibilityAndroid* wrapper = + static_cast( + GetFromID(targeted_event.node_id)); + CHECK(wrapper); + + auto event_type = targeted_event.event_params->event; + if (event_type == ui::AXEventGenerator::Event::CHILDREN_CHANGED || + event_type == ui::AXEventGenerator::Event::PARENT_CHANGED) { + // Structural changes in the unignored/platform tree requires the leaf + // cache be invalidated. + BrowserAccessibilityAndroid::ResetLeafCache(); + ClearNodeInfoCacheForGivenId(wrapper->GetUniqueId()); + } + } } WebContentsAccessibilityAndroid* diff -Nru chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_manager_android.h chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_manager_android.h --- chromium-137.0.7151.68/content/browser/accessibility/browser_accessibility_manager_android.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/browser_accessibility_manager_android.h 2025-06-16 21:26:50.000000000 +0000 @@ -78,6 +78,10 @@ allow_image_descriptions_for_testing_ = is_allowed; } + const std::unordered_set& nodes_already_cleared_for_test() const { + return nodes_already_cleared_; + } + // By default, the tree is pruned for a better screen reading experience, // including: // * If the node has only static text children @@ -156,13 +160,15 @@ private: // AXTreeObserver overrides. + void OnAtomicUpdateStarting( + ui::AXTree* tree, + const std::set& deleting_nodes, + const std::set& reparenting_nodes) override; void OnAtomicUpdateFinished( ui::AXTree* tree, bool root_changed, const std::vector& changes) override; - void OnNodeWillBeDeleted(ui::AXTree* tree, ui::AXNode* node) override; - WebContentsAccessibilityAndroid* GetWebContentsAXFromRootManager(); // This gives BrowserAccessibilityManager::Create access to the class diff -Nru chromium-137.0.7151.68/content/browser/accessibility/web_contents_accessibility_android.cc chromium-137.0.7151.119/content/browser/accessibility/web_contents_accessibility_android.cc --- chromium-137.0.7151.68/content/browser/accessibility/web_contents_accessibility_android.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/web_contents_accessibility_android.cc 2025-06-16 21:26:50.000000000 +0000 @@ -1023,6 +1023,8 @@ return GetCanonicalJNIString(env, all_keys).AsLocalRef(env); } +WebContentsAccessibilityAndroid::WebContentsAccessibilityAndroid() {} + jint WebContentsAccessibilityAndroid::GetRootId(JNIEnv* env) { if (BrowserAccessibilityManagerAndroid* root_manager = GetRootBrowserAccessibilityManager()) { diff -Nru chromium-137.0.7151.68/content/browser/accessibility/web_contents_accessibility_android.h chromium-137.0.7151.119/content/browser/accessibility/web_contents_accessibility_android.h --- chromium-137.0.7151.68/content/browser/accessibility/web_contents_accessibility_android.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/accessibility/web_contents_accessibility_android.h 2025-06-16 21:26:50.000000000 +0000 @@ -407,6 +407,10 @@ base::WeakPtr GetWeakPtr(); private: + friend class MockWebContentsAccessibilityAndroid; + + WebContentsAccessibilityAndroid(); + BrowserAccessibilityManagerAndroid* GetRootBrowserAccessibilityManager(); BrowserAccessibilityAndroid* GetAXFromUniqueID(int32_t unique_id); diff -Nru chromium-137.0.7151.68/content/browser/indexed_db/instance/leveldb/backing_store.cc chromium-137.0.7151.119/content/browser/indexed_db/instance/leveldb/backing_store.cc --- chromium-137.0.7151.68/content/browser/indexed_db/instance/leveldb/backing_store.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/indexed_db/instance/leveldb/backing_store.cc 2025-06-16 21:26:50.000000000 +0000 @@ -93,10 +93,7 @@ std::unique_ptr& GetTransactionalLevelDBFactory() { static base::NoDestructor> - factory; - if (!*factory) { - *factory = std::make_unique(); - } + factory(std::make_unique()); return *factory; } diff -Nru chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_browsertest.cc chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_browsertest.cc --- chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_browsertest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_browsertest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -1190,6 +1190,88 @@ "Prerender.Experimental.MatchableHostCountOnActivation", 1, 1); } +// Tests the case where prerendering navigation fails while a potential +// activation navigation is waiting for the No-Vary-Search header. +// This is a regression test for crbug.com/420906968. +IN_PROC_BROWSER_TEST_F(NoVarySearchPrerenderBrowserTest, + FailureOnPrerenderNavigation) { + const std::string kTestingRelativeUrl = + "/delayed_with_no_vary_search?prerender"; + const std::string kPrerenderingRelativeUrl = kTestingRelativeUrl + "&a=5"; + // Create a HTTP response to control prerendering main-frame navigation. + net::test_server::ControllableHttpResponse main_prerender_response( + embedded_test_server(), kPrerenderingRelativeUrl); + + ASSERT_TRUE(embedded_test_server()->Start()); + + const GURL initial_url = embedded_test_server()->GetURL("/empty.html"); + const GURL prerendering_url = + embedded_test_server()->GetURL(kPrerenderingRelativeUrl); + const GURL navigation_url = + embedded_test_server()->GetURL(kTestingRelativeUrl + "&a=3"); + + // Navigate to an initial page. + ASSERT_TRUE(NavigateToURL(shell(), initial_url)); + ASSERT_EQ(web_contents()->GetLastCommittedURL(), initial_url); + + // Start prerendering with the No-Vary-Search hint. + content::test::PrerenderHostCreationWaiter host_creation_waiter; + AddPrerenderAsync(prerendering_url, R"(params=(\\\"a\\\"))"); + FrameTreeNodeId host_id = host_creation_waiter.Wait(); + auto* host = + web_contents_impl()->GetPrerenderHostRegistry()->FindNonReservedHostById( + host_id); + ASSERT_TRUE(host); + ASSERT_TRUE(host->no_vary_search_hint().has_value()); + + // Add a testing PrerenderHost::Observer to the prerender host that we'd like + // to monitor. + NoVarySearchHintPrerenderHostObserver observer(*host); + + // Start navigation in primary page. + TestActivationManager primary_page_manager(web_contents(), navigation_url); + std::unique_ptr nav_observer = + test::PrerenderTestHelper::NavigatePrimaryPageAsync(*web_contents_impl(), + navigation_url); + + // Wait until the navigation is deferred by CommitDeferringCondition. + ASSERT_TRUE(primary_page_manager.WaitForBeforeChecks()); + primary_page_manager.ResumeActivation(); + ASSERT_FALSE(host->were_headers_received()); + + auto* prerender_web_contents = + content::WebContents::FromFrameTreeNodeId(host_id); + content::test::PrerenderHostObserver host_observer(*prerender_web_contents, + host_id); + + // Abort the request. This fails the prerender navigation. + main_prerender_response.WaitForRequest(); + main_prerender_response.Done(); + + ASSERT_TRUE(primary_page_manager.WaitForAfterChecks()); + primary_page_manager.ResumeActivation(); + + // Wait for the navigation to finish. + nav_observer->Wait(); + primary_page_manager.WaitForNavigationFinished(); + + // Check that the prerender host was not activated. + ASSERT_FALSE(host_observer.was_activated()); + host_observer.WaitForDestroyed(); + + ASSERT_TRUE(observer.wait_for_headers_start_reason().has_value()); + ASSERT_TRUE(observer.wait_for_headers_finish_reason().has_value()); + + EXPECT_EQ(observer.wait_for_headers_start_reason().value(), + StartedReason::kWithTimeout); + EXPECT_EQ(observer.wait_for_headers_finish_reason().value(), + FinishedReason::kPrerenderNavigationFailed); + + histogram_tester().ExpectUniqueSample( + "Prerender.Experimental.WaitingForHeadersFinishedReason.SpeculationRule", + FinishedReason::kPrerenderNavigationFailed, 1); +} + // Test that the timer is enabled and cleared appropriately when navigating to // a No-Vary-Search hint matched prerender with timeout waiting for headers. // Flaky on android: crbug.com/395337644 diff -Nru chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_host.cc chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_host.cc --- chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_host.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_host.cc 2025-06-16 21:26:50.000000000 +0000 @@ -572,7 +572,7 @@ // ReadyToCommitNavigation is called when the headers are received. were_headers_received_ = true; for (auto& observer : observers_) { - observer.OnHeadersReceived(); + observer.OnHeadersReceived(*navigation_handle); } } diff -Nru chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_host.h chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_host.h --- chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_host.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_host.h 2025-06-16 21:26:50.000000000 +0000 @@ -119,7 +119,10 @@ kNoVarySearchHeaderReceivedButNotMatched = 7, kNoVarySearchHeaderReceivedButDefaultValue = 8, - kMaxValue = kNoVarySearchHeaderReceivedButDefaultValue, + kUnknownFailure = 9, + kPrerenderNavigationFailed = 10, + + kMaxValue = kPrerenderNavigationFailed, }; // LINT.ThenChange(//tools/metrics/histograms/metadata/navigation/enums.xml:PrerenderWaitingForHeadersFinishedReason) @@ -132,7 +135,7 @@ // Called from PrerenderHost::ReadyToCommitNavigation when headers are // received for the initial navigation. - virtual void OnHeadersReceived() {} + virtual void OnHeadersReceived(NavigationHandle& navigation_handle) {} // Called from PrerenderHost::OnWaitingForHeadersStarted when we start // blocking navigation waiting for headers. diff -Nru chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.cc chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.cc --- chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.cc 2025-06-16 21:26:50.000000000 +0000 @@ -177,7 +177,8 @@ return "PrerenderNoVarySearchHintCommitDeferringCondition"; } -void PrerenderNoVarySearchHintCommitDeferringCondition::OnHeadersReceived() { +void PrerenderNoVarySearchHintCommitDeferringCondition::OnHeadersReceived( + NavigationHandle& navigation_handle) { // Verify all conditions are met: // * headers should have been received and // * the prerender_frame_tree_node is still alive. @@ -199,9 +200,11 @@ if (waiting_on_headers_) { waiting_on_headers_ = false; + auto* navigation_request = NavigationRequest::From(&navigation_handle); + // Determine the finished reason. using FinishedReason = PrerenderHost::WaitingForHeadersFinishedReason; - std::optional reason; + FinishedReason reason = FinishedReason::kUnknownFailure; if (prerender_host.no_vary_search_parse_error().has_value()) { using ParseError = network::mojom::NoVarySearchParseError; switch (prerender_host.no_vary_search_parse_error().value()) { @@ -234,9 +237,10 @@ } else { reason = FinishedReason::kNoVarySearchHeaderReceivedButNotMatched; } + } else if (navigation_request->DidEncounterError()) { + reason = FinishedReason::kPrerenderNavigationFailed; } - CHECK(reason.has_value()); - prerender_host.OnWaitingForHeadersFinished(*reason); + prerender_host.OnWaitingForHeadersFinished(reason); } // We don't need the timer anymore. diff -Nru chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.h chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.h --- chromium-137.0.7151.68/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/browser/preloading/prerender/prerender_no_vary_search_hint_commit_deferring_condition.h 2025-06-16 21:26:50.000000000 +0000 @@ -49,7 +49,7 @@ NavigationRequest& navigation_request, FrameTreeNodeId candidate_prerender_frame_tree_node_id); // PrerenderHost::Observer - void OnHeadersReceived() override; + void OnHeadersReceived(NavigationHandle& navigation_handle) override; void OnHostDestroyed(PrerenderFinalStatus status) override; // Called when `block_until_head_timer_` fires. diff -Nru chromium-137.0.7151.68/content/public/test/prerender_test_util.cc chromium-137.0.7151.119/content/public/test/prerender_test_util.cc --- chromium-137.0.7151.68/content/public/test/prerender_test_util.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/content/public/test/prerender_test_util.cc 2025-06-16 21:26:50.000000000 +0000 @@ -299,7 +299,7 @@ std::move(waiting_for_activation_).Run(); } - void OnHeadersReceived() override { + void OnHeadersReceived(NavigationHandle& navigation_handle) override { received_headers_ = true; if (waiting_for_headers_) { std::move(waiting_for_headers_).Run(); diff -Nru chromium-137.0.7151.68/debian/changelog chromium-137.0.7151.119/debian/changelog --- chromium-137.0.7151.68/debian/changelog 2025-06-03 16:23:46.000000000 +0000 +++ chromium-137.0.7151.119/debian/changelog 2025-06-17 23:12:16.000000000 +0000 @@ -1,3 +1,39 @@ +chromium (137.0.7151.119-1~deb12u1) bookworm-security; urgency=high + + * New upstream security release. + - CVE-2025-6191: Integer overflow in V8. Reported by Shaheen Fazim. + - CVE-2025-6192: Use after free in Profiler. + Reported by Chaoyuan Peng (@ret2happy). + * Include libtest_trace_processor.so in chromium-shell package. + (closes: #1107837). + * d/patches: + - fixes/armhf-icf.patch: add workaround for build failure on armhf + (thanks Daniel Richard G!). + + -- Andres Salomon Tue, 17 Jun 2025 19:12:16 -0400 + +chromium (137.0.7151.103-1~deb12u1) bookworm-security; urgency=high + + * New upstream security release. + - CVE-2025-5958: Use after free in Media. + Reported by Huang Xilin of Ant Group Light-Year Security Lab. + - CVE-2025-5959: Type Confusion in V8. + Reported by Seunghyun Lee as part of TyphoonPWN 2025. + * Add build-dep on libc++-19-dev and switch to building statically + against clang's libc++ (instead of gcc's libstdc++). + * d/patches: + - fixes/absl-optional.patch: drop, only needed for libstdc++. + - fixes/font-gc-asan.patch: drop, only needed for libstdc++. + - fixes/stdatomic.patch: drop, only needed for libstdc++. + - fixes/make-pair.patch: drop, only needed for libstdc++. + - bookworm/constflatset.patch: drop, only needed for libstdc++. + - bookworm/constexpr2.patch: drop, only needed for libstdc++. + - bookworm/constexpr3.patch: drop, only needed for libstdc++. + - bookworm/foreach.patch: add patch from bookworm branch to fix + clang-19 build failure. + + -- Andres Salomon Tue, 10 Jun 2025 15:08:42 -0400 + chromium (137.0.7151.68-1~deb12u1) bookworm-security; urgency=high [ Andres Salomon] diff -Nru chromium-137.0.7151.68/debian/chromium-shell.install chromium-137.0.7151.119/debian/chromium-shell.install --- chromium-137.0.7151.68/debian/chromium-shell.install 2023-10-23 23:00:38.000000000 +0000 +++ chromium-137.0.7151.119/debian/chromium-shell.install 2025-06-17 23:12:16.000000000 +0000 @@ -1,6 +1,7 @@ debian/scripts/chromium-shell usr/bin out/Release/chromium-shell usr/lib/chromium +out/Release/libtest_trace_processor.so usr/lib/chromium out/Release/content_shell.pak usr/lib/chromium out/Release/shell_resources.pak usr/lib/chromium diff -Nru chromium-137.0.7151.68/debian/control chromium-137.0.7151.119/debian/control --- chromium-137.0.7151.68/debian/control 2025-05-28 18:28:47.000000000 +0000 +++ chromium-137.0.7151.119/debian/control 2025-06-11 07:14:03.000000000 +0000 @@ -17,6 +17,7 @@ clang-19:native, clang-format-19:native, libclang-rt-19-dev, + libc++-19-dev, rustc-web:any (>= 1.74), libstd-rust-dev (>= 1.74) , bindgen:native, diff -Nru chromium-137.0.7151.68/debian/patches/fixes/armhf-icf.patch chromium-137.0.7151.119/debian/patches/fixes/armhf-icf.patch --- chromium-137.0.7151.68/debian/patches/fixes/armhf-icf.patch 1970-01-01 00:00:00.000000000 +0000 +++ chromium-137.0.7151.119/debian/patches/fixes/armhf-icf.patch 2025-06-17 23:12:16.000000000 +0000 @@ -0,0 +1,20 @@ +description: disable ICF on armhf to avoid segfaults during build +author: Daniel Richard G. + +Work around a clang/lld bug of some type on armhf, as seen here: +https://buildd.debian.org/status/fetch.php?pkg=chromium&arch=armhf&ver=137.0.7151.103-1&stamp=1749630295&raw=0 + +This only happens when linking libc++ statically, so it can go away once +we've got libc++1/libc++abi1/libunwind packages sorted out. + + +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -204,6 +204,7 @@ declare_args() { + # Set to true to use icf, Identical Code Folding. + use_icf = (is_posix || is_fuchsia) && !is_debug && !using_sanitizer && + !use_clang_coverage && current_os != "zos" && ++ current_cpu != "arm" && + !(is_android && use_order_profiling) && use_lld + } + diff -Nru chromium-137.0.7151.68/debian/patches/series chromium-137.0.7151.119/debian/patches/series --- chromium-137.0.7151.68/debian/patches/series 2025-05-28 22:59:59.000000000 +0000 +++ chromium-137.0.7151.119/debian/patches/series 2025-06-17 23:12:16.000000000 +0000 @@ -16,14 +16,15 @@ fixes/fix-assert-in-vnc-sessions.patch fixes/armhf-timespec.patch fixes/updater-test.patch -fixes/absl-optional.patch -fixes/font-gc-asan.patch +#fixes/absl-optional.patch +#fixes/font-gc-asan.patch fixes/libsync-rk3588-panthor.patch fixes/headless-gn.patch -fixes/stdatomic.patch -fixes/make-pair.patch +#fixes/stdatomic.patch +#fixes/make-pair.patch fixes/media-cstdint.patch fixes/armhf-no-thumb.patch +fixes/armhf-icf.patch upstream/arm32-crel.patch upstream/cross-build-target.patch @@ -60,7 +61,7 @@ bookworm/dq-forward-iterator.patch bookworm/gn-revert-path-exists.patch bookworm/clang19.patch -bookworm/constflatset.patch +#bookworm/constflatset.patch bookworm/libxml-parseerr.patch bookworm/gn-allowlist.patch bookworm/adler1.patch @@ -69,8 +70,8 @@ bookworm/gn-absl.patch bookworm/partially-deployed-mseal-syscall.patch bookworm/constexpr.patch -bookworm/constexpr2.patch -bookworm/constexpr3.patch +#bookworm/constexpr2.patch +#bookworm/constexpr3.patch bookworm/bubble-contents.patch bookworm/rust-visibility.patch bookworm/less-void.patch diff -Nru chromium-137.0.7151.68/debian/rules chromium-137.0.7151.119/debian/rules --- chromium-137.0.7151.68/debian/rules 2025-06-03 16:23:46.000000000 +0000 +++ chromium-137.0.7151.119/debian/rules 2025-06-11 07:14:03.000000000 +0000 @@ -38,8 +38,8 @@ # initial flags from dpkg-buildflags export DEB_CXXFLAGS_MAINT_STRIP=-g -export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) -export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) +export CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) -stdlib=libc++ +export LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -stdlib=libc++ -static-libstdc++ # more verbose linker output export LDFLAGS+=-Wl,--stats diff -Nru chromium-137.0.7151.68/extensions/browser/process_manager.cc chromium-137.0.7151.119/extensions/browser/process_manager.cc --- chromium-137.0.7151.68/extensions/browser/process_manager.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/extensions/browser/process_manager.cc 2025-06-16 21:26:50.000000000 +0000 @@ -47,6 +47,7 @@ #include "extensions/browser/process_manager_factory.h" #include "extensions/browser/process_manager_observer.h" #include "extensions/browser/renderer_startup_helper.h" +#include "extensions/browser/service_worker/service_worker_task_queue.h" #include "extensions/browser/view_type_utils.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -1034,6 +1035,8 @@ all_running_extension_workers_.GetAllForExtension(extension_id, render_process_id)) { StopTrackingServiceWorkerRunningInstance(worker_id); + ServiceWorkerTaskQueue::Get(browser_context_) + ->RenderProcessForWorkerExited(worker_id); } } #if DCHECK_IS_ON() diff -Nru chromium-137.0.7151.68/extensions/browser/service_worker/service_worker_task_queue.cc chromium-137.0.7151.119/extensions/browser/service_worker/service_worker_task_queue.cc --- chromium-137.0.7151.68/extensions/browser/service_worker/service_worker_task_queue.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/extensions/browser/service_worker/service_worker_task_queue.cc 2025-06-16 21:26:50.000000000 +0000 @@ -95,14 +95,14 @@ DCHECK(!process_manager->HasServiceWorker(*worker_id_) || g_allow_multiple_workers_per_extension); // Clear stale renderer state if there's any. - renderer_state_ = RendererState::kInitial; + renderer_state_ = RendererState::kNotActive; } worker_id_ = worker_id; } bool ServiceWorkerTaskQueue::WorkerState::ready() const { return browser_state_ == BrowserState::kStarted && - renderer_state_ == RendererState::kStarted && worker_id_.has_value(); + renderer_state_ == RendererState::kActive && worker_id_.has_value(); } ServiceWorkerTaskQueue::TestObserver::TestObserver() = default; @@ -298,14 +298,32 @@ // // TODO(lazyboy): Update the renderer state in RenderProcessExited() and // uncomment the following DCHECK: - // DCHECK_NE(RendererState::kStarted, worker_state->renderer_state_) + // DCHECK_NE(RendererState::kActive, worker_state->renderer_state_) // << "Worker already started"; worker_state->SetWorkerId(worker_id, ProcessManager::Get(browser_context_)); - worker_state->SetRendererState(RendererState::kStarted); + worker_state->SetRendererState(RendererState::kActive); RunPendingTasksIfWorkerReady(context_id); } +void ServiceWorkerTaskQueue::RenderProcessForWorkerExited( + const WorkerId& worker_id) { + auto activation_token = GetCurrentActivationToken(worker_id.extension_id); + if (!activation_token) { + // Extension has been deactivated so worker state should already be erased. + return; + } + + const SequencedContextId context_id = { + worker_id.extension_id, browser_context_->UniqueId(), *activation_token}; + WorkerState* worker_state = GetWorkerState(context_id); + // If the extension is still activated, worker state should still exist. + CHECK(worker_state); + + worker_state->SetRendererState(RendererState::kNotActive); + worker_state->ResetWorkerId(); +} + void ServiceWorkerTaskQueue::DidStopServiceWorkerContext( int render_process_id, const ExtensionId& extension_id, @@ -334,8 +352,8 @@ return; } - DCHECK_NE(RendererState::kStopped, worker_state->renderer_state()); - worker_state->SetRendererState(RendererState::kStopped); + DCHECK_NE(RendererState::kNotActive, worker_state->renderer_state()); + worker_state->SetRendererState(RendererState::kNotActive); worker_state->ResetWorkerId(); if (g_test_observer) { @@ -405,7 +423,7 @@ if (worker_state->browser_state() != BrowserState::kReady) { return false; } - if (worker_state->renderer_state() != RendererState::kStarted) { + if (worker_state->renderer_state() != RendererState::kActive) { return false; } @@ -554,7 +572,7 @@ // receive tasks/events again and the renderer stop notifications are not 100% // reliable. worker_state->SetBrowserState(BrowserState::kInitial); - worker_state->SetRendererState(RendererState::kInitial); + worker_state->SetRendererState(RendererState::kNotActive); worker_state->ResetWorkerId(); } diff -Nru chromium-137.0.7151.68/extensions/browser/service_worker/service_worker_task_queue.h chromium-137.0.7151.119/extensions/browser/service_worker/service_worker_task_queue.h --- chromium-137.0.7151.68/extensions/browser/service_worker/service_worker_task_queue.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/extensions/browser/service_worker/service_worker_task_queue.h 2025-06-16 21:26:50.000000000 +0000 @@ -168,12 +168,10 @@ // Render process worker state of an activated extension. enum class RendererState { - // Initial state, neither started nor stopped. - kInitial, - // Worker thread has started. - kStarted, - // Worker thread has not started or has been stopped. - kStopped, + // Worker thread has not started or has been stopped/terminated. + kNotActive, + // Worker thread has started and it's running. + kActive, }; // The current worker related state of an activated extension. @@ -204,7 +202,7 @@ private: BrowserState browser_state_ = BrowserState::kInitial; - RendererState renderer_state_ = RendererState::kInitial; + RendererState renderer_state_ = RendererState::kNotActive; // Contains the worker's WorkerId associated with this WorkerState, once we // have discovered info about the worker. @@ -279,6 +277,9 @@ const GURL& service_worker_scope, int64_t service_worker_version_id, int thread_id); + // Called when the extension renderer process that was running an extension + // Service Worker has exited. + void RenderProcessForWorkerExited(const WorkerId& worker_id); // Returns the current activation token for an extension, if the extension // is currently activated. Returns std::nullopt if the extension isn't diff -Nru chromium-137.0.7151.68/extensions/common/extension_resource.cc chromium-137.0.7151.119/extensions/common/extension_resource.cc --- chromium-137.0.7151.68/extensions/common/extension_resource.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/extensions/common/extension_resource.cc 2025-06-16 21:26:50.000000000 +0000 @@ -53,25 +53,27 @@ const base::FilePath& extension_root, const base::FilePath& relative_path, SymlinkPolicy symlink_policy) { - // We need to normalize `extension_root` on its own because `IsParent` doesn't - // normalize file paths. Without normalization parent references, Windows - // short paths, or different path capitalization will cause `IsParent` to - // return false. - base::FilePath normalized_extension_root; - if (!base::NormalizeFilePath(extension_root, &normalized_extension_root)) { + // We need to resolve the parent references in the extension_root + // path on its own because IsParent doesn't like parent references. + base::FilePath clean_extension_root( + base::MakeAbsoluteFilePath(extension_root)); + if (clean_extension_root.empty()) return base::FilePath(); - } - base::FilePath full_path = normalized_extension_root.Append(relative_path); + base::FilePath full_path = clean_extension_root.Append(relative_path); // If we are allowing the file to be a symlink outside of the root, then the // path before resolving the symlink must still be within it. if (symlink_policy == FOLLOW_SYMLINKS_ANYWHERE) { + std::vector components = + relative_path.GetComponents(); int depth = 0; - for (const auto& component : relative_path.GetComponents()) { - if (component == base::FilePath::kParentDirectory) { + + for (std::vector::const_iterator + i = components.begin(); i != components.end(); i++) { + if (*i == base::FilePath::kParentDirectory) { depth--; - } else if (component != base::FilePath::kCurrentDirectory) { + } else if (*i != base::FilePath::kCurrentDirectory) { depth++; } if (depth < 0) { @@ -82,26 +84,16 @@ // We must resolve the absolute path of the combined path when // the relative path contains references to a parent folder (i.e., '..'). - // NormalizeFilePath will fail if the path doesn't exist. - if (base::FilePath full_path_normalized; - base::NormalizeFilePath(full_path, &full_path_normalized)) { - full_path = std::move(full_path_normalized); - } else { -#if BUILDFLAG(IS_WIN) - // On Windows, if `NormalizeFilePath` fails, fall back to - // `MakeAbsoluteFilePath` and proceed if the file exists. This can happen - // if, for example, the file isn't accessible due to permissions. - full_path = base::MakeAbsoluteFilePath(full_path); - if (full_path.empty() || !base::PathExists(full_path)) { - return base::FilePath(); - } -#else - return base::FilePath(); -#endif - } - - if (symlink_policy != FOLLOW_SYMLINKS_ANYWHERE && - !normalized_extension_root.IsParent(full_path)) { + // We also check if the path exists because the posix version of + // MakeAbsoluteFilePath will fail if the path doesn't exist, and we want the + // same behavior on Windows... So until the posix and Windows version of + // MakeAbsoluteFilePath are unified, we need an extra call to PathExists, + // unfortunately. + // TODO(mad): Fix this once MakeAbsoluteFilePath is unified. + full_path = base::MakeAbsoluteFilePath(full_path); + if (!base::PathExists(full_path) || + (symlink_policy != FOLLOW_SYMLINKS_ANYWHERE && + !clean_extension_root.IsParent(full_path))) { return base::FilePath(); } diff -Nru chromium-137.0.7151.68/extensions/common/extension_resource_unittest.cc chromium-137.0.7151.119/extensions/common/extension_resource_unittest.cc --- chromium-137.0.7151.68/extensions/common/extension_resource_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/extensions/common/extension_resource_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -19,10 +19,6 @@ #include "testing/gtest/include/gtest/gtest.h" #include "ui/base/l10n/l10n_util.h" -#if BUILDFLAG(IS_WIN) -#include "base/test/file_path_reparse_point_win.h" -#endif - namespace extensions { TEST(ExtensionResourceTest, CreateEmptyResource) { @@ -75,14 +71,6 @@ symlink_file); #endif -#if BUILDFLAG(IS_WIN) - base::FilePath reparse_dir = inner_dir.AppendASCII("reparse"); - ASSERT_TRUE(base::CreateDirectory(reparse_dir)); - auto reparse_point = - base::test::FilePathReparsePoint::Create(reparse_dir, temp.GetPath()); - ASSERT_TRUE(reparse_point.has_value()); -#endif - // A non-packing extension should be able to access the file within the // directory. ExtensionResource r1(extension_id, inner_dir, @@ -130,28 +118,6 @@ r6.set_follow_symlinks_anywhere(); EXPECT_FALSE(r6.GetFilePath().empty()); #endif - -#if BUILDFLAG(IS_WIN) - base::FilePath outer_via_reparse = - base::FilePath().AppendASCII("reparse").AppendASCII("outer"); - - // The non-packing extension should also not be able to access a resource that - // points out of the directory via a reparse point. - ExtensionResource r7(extension_id, inner_dir, outer_via_reparse); - EXPECT_TRUE(r7.GetFilePath().empty()); - - // ... but a packing extension can. - ExtensionResource r8(extension_id, inner_dir, outer_via_reparse); - r8.set_follow_symlinks_anywhere(); - EXPECT_FALSE(r8.GetFilePath().empty()); - - // Make sure that a non-normalized extension root path is supported. - base::FilePath inner_dir_non_normalized = - temp.GetPath().AppendASCII("dIrEcToRy"); - ExtensionResource r9(extension_id, inner_dir_non_normalized, - base::FilePath().AppendASCII("inner")); - EXPECT_FALSE(r9.GetFilePath().empty()); -#endif } TEST(ExtensionResourceTest, CreateWithAllResourcesOnDisk) { diff -Nru chromium-137.0.7151.68/gpu/config/gpu_lists_version.h chromium-137.0.7151.119/gpu/config/gpu_lists_version.h --- chromium-137.0.7151.68/gpu/config/gpu_lists_version.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/gpu/config/gpu_lists_version.h 2025-06-16 21:26:50.000000000 +0000 @@ -3,6 +3,6 @@ #ifndef GPU_CONFIG_GPU_LISTS_VERSION_H_ #define GPU_CONFIG_GPU_LISTS_VERSION_H_ -#define GPU_LISTS_VERSION "2989ffee9373ea8b8623bd98b3cb350a8e95cadc" +#define GPU_LISTS_VERSION "e0ac9d12dff5f2d33c935958b06bf1ded7f1c08c" #endif // GPU_CONFIG_GPU_LISTS_VERSION_H_ diff -Nru chromium-137.0.7151.68/infra/config/generated/builders/ci/linux-chromeos-rel/targets/chromium.chromiumos.json chromium-137.0.7151.119/infra/config/generated/builders/ci/linux-chromeos-rel/targets/chromium.chromiumos.json --- chromium-137.0.7151.68/infra/config/generated/builders/ci/linux-chromeos-rel/targets/chromium.chromiumos.json 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/infra/config/generated/builders/ci/linux-chromeos-rel/targets/chromium.chromiumos.json 2025-06-16 21:26:50.000000000 +0000 @@ -104,6 +104,7 @@ "swarming": { "dimensions": { "cpu": "x86-64", + "gce_has_external_ip": "1", "os": "Ubuntu-22.04" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", diff -Nru chromium-137.0.7151.68/infra/config/generated/builders/try/linux-chromeos-rel/targets/chromium.chromiumos.json chromium-137.0.7151.119/infra/config/generated/builders/try/linux-chromeos-rel/targets/chromium.chromiumos.json --- chromium-137.0.7151.68/infra/config/generated/builders/try/linux-chromeos-rel/targets/chromium.chromiumos.json 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/infra/config/generated/builders/try/linux-chromeos-rel/targets/chromium.chromiumos.json 2025-06-16 21:26:50.000000000 +0000 @@ -104,6 +104,7 @@ "swarming": { "dimensions": { "cpu": "x86-64", + "gce_has_external_ip": "1", "os": "Ubuntu-22.04" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", diff -Nru chromium-137.0.7151.68/infra/config/targets/mixins.star chromium-137.0.7151.119/infra/config/targets/mixins.star --- chromium-137.0.7151.68/infra/config/targets/mixins.star 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/infra/config/targets/mixins.star 2025-06-16 21:26:50.000000000 +0000 @@ -2139,6 +2139,20 @@ ) targets.mixin( + # Tests that reach out to Skia's gold instance slowdown substantially when + # ran on GCE bots without external IPs. By explicitly targeting bots with + # external IPs in such tests, we can roll out internal IPs more broadly + # without affecting these Skia gold tests. + name = "skia_gold_test_on_linux_gce", + generate_pyl_entry = False, + swarming = targets.swarming( + dimensions = { + "gce_has_external_ip": "1", + }, + ), +) + +targets.mixin( name = "swarming_containment_auto", generate_pyl_entry = targets.IGNORE_UNUSED, swarming = targets.swarming( diff -Nru chromium-137.0.7151.68/infra/config/targets/tests.star chromium-137.0.7151.119/infra/config/targets/tests.star --- chromium-137.0.7151.68/infra/config/targets/tests.star 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/infra/config/targets/tests.star 2025-06-16 21:26:50.000000000 +0000 @@ -171,6 +171,7 @@ name = "ash_pixeltests", mixins = [ "skia_gold_test", + "skia_gold_test_on_linux_gce", ], args = [ "--enable-pixel-output-in-tests", diff -Nru chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win.cc chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win.cc --- chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win.cc 2025-06-16 21:26:50.000000000 +0000 @@ -732,6 +732,13 @@ ErrorToString(hr).c_str()); } + if (SUCCEEDED(hr) && audio_render_client_for_loopback_.Get()) { + hr = audio_render_client_for_loopback_->Start(); + if (FAILED(hr)) + SendLogMessage("%s => (ERROR: IAudioClient::Start=[%s] (loopback))", + __func__, ErrorToString(hr).c_str()); + } + started_ = SUCCEEDED(hr); } @@ -1513,13 +1520,14 @@ DCHECK_EQ(OPEN_RESULT_OK, open_result_); SendLogMessage("%s()", __func__); - // Use event-driven mode for regular input devices and for loopback. - DWORD flags = - AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST; + DWORD flags; + // Use event-driven mode only for regular input devices. For loopback the + // EVENTCALLBACK flag is specified when initializing + // |audio_render_client_for_loopback_|. if (AudioDeviceDescription::IsLoopbackDevice(device_id_)) { - // Create a loopback stream that captures what the system is playing - // instead of the microphone input. - flags |= AUDCLNT_STREAMFLAGS_LOOPBACK; + flags = AUDCLNT_STREAMFLAGS_LOOPBACK | AUDCLNT_STREAMFLAGS_NOPERSIST; + } else { + flags = AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST; } // Initialize the audio stream between the client and the device. @@ -1591,7 +1599,46 @@ // Set the event handle that the audio engine will signal each time a buffer // becomes ready to be processed by the client. - hr = audio_client_->SetEventHandle(audio_samples_ready_event_.Get()); + // + // In loopback case the capture device doesn't receive any events, so we + // need to create a separate playback client to get notifications. According + // to MSDN: + // + // A pull-mode capture client does not receive any events when a stream is + // initialized with event-driven buffering and is loopback-enabled. To + // work around this, initialize a render stream in event-driven mode. Each + // time the client receives an event for the render stream, it must signal + // the capture client to run the capture thread that reads the next set of + // samples from the capture endpoint buffer. + // + // http://msdn.microsoft.com/en-us/library/windows/desktop/dd316551(v=vs.85).aspx + if (AudioDeviceDescription::IsLoopbackDevice(device_id_)) { + SendLogMessage("%s => (WARNING: loopback mode is selected)", __func__); + hr = endpoint_device_->Activate(__uuidof(IAudioClient), CLSCTX_ALL, nullptr, + &audio_render_client_for_loopback_); + if (FAILED(hr)) { + open_result_ = OPEN_RESULT_LOOPBACK_ACTIVATE_FAILED; + return hr; + } + + hr = audio_render_client_for_loopback_->Initialize( + AUDCLNT_SHAREMODE_SHARED, + AUDCLNT_STREAMFLAGS_EVENTCALLBACK | AUDCLNT_STREAMFLAGS_NOPERSIST, 0, 0, + reinterpret_cast(&input_format_), + AudioDeviceDescription::IsCommunicationsDevice(device_id_) + ? &kCommunicationsSessionId + : nullptr); + if (FAILED(hr)) { + open_result_ = OPEN_RESULT_LOOPBACK_INIT_FAILED; + return hr; + } + + hr = audio_render_client_for_loopback_->SetEventHandle( + audio_samples_ready_event_.Get()); + } else { + hr = audio_client_->SetEventHandle(audio_samples_ready_event_.Get()); + } + if (FAILED(hr)) { open_result_ = OPEN_RESULT_SET_EVENT_HANDLE; return hr; diff -Nru chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win.h chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win.h --- chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win.h 2025-06-16 21:26:50.000000000 +0000 @@ -273,6 +273,14 @@ // an audio stream between an audio application and the audio engine. Microsoft::WRL::ComPtr audio_client_; + // Loopback IAudioClient doesn't support event-driven mode, so a separate + // IAudioClient is needed to receive notifications when data is available in + // the buffer. For loopback input |audio_client_| is used to receive data, + // while |audio_render_client_for_loopback_| is used to get notifications + // when a new buffer is ready. See comment in InitializeAudioEngine() for + // details. + Microsoft::WRL::ComPtr audio_render_client_for_loopback_; + // The IAudioCaptureClient interface enables a client to read input data // from a capture endpoint buffer. Microsoft::WRL::ComPtr audio_capture_client_; diff -Nru chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win_unittest.cc chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win_unittest.cc --- chromium-137.0.7151.68/media/audio/win/audio_low_latency_input_win_unittest.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/media/audio/win/audio_low_latency_input_win_unittest.cc 2025-06-16 21:26:50.000000000 +0000 @@ -83,24 +83,16 @@ FakeAudioInputCallback& operator=(const FakeAudioInputCallback&) = delete; bool error() const { return error_; } - int num_callbacks() const { return num_callbacks_; } int num_received_audio_frames() const { return num_received_audio_frames_; } // Waits until OnData() is called on another thread. void WaitForData() { data_event_.Wait(); } - // Waits for OnData() to be called on another thread. - // Returns true if the event is signaled, false if it times out. - bool WaitForDataWithTimeout(base::TimeDelta timeout) { - return data_event_.TimedWait(timeout); - } - void OnData(const AudioBus* src, base::TimeTicks capture_time, double volume, const AudioGlitchInfo& glitch_info) override { EXPECT_GE(capture_time, base::TimeTicks()); - num_callbacks_++; num_received_audio_frames_ += src->frames(); data_event_.Signal(); } @@ -108,50 +100,11 @@ void OnError() override { error_ = true; } private: - int num_callbacks_ = 0; int num_received_audio_frames_; base::WaitableEvent data_event_; bool error_; }; -class FakeAudioOutputCallback : public AudioOutputStream::AudioSourceCallback { - public: - FakeAudioOutputCallback() - : num_rendered_audio_frames_(0), - data_event_(base::WaitableEvent::ResetPolicy::AUTOMATIC, - base::WaitableEvent::InitialState::NOT_SIGNALED), - error_(false) {} - - FakeAudioOutputCallback(const FakeAudioOutputCallback&) = delete; - FakeAudioOutputCallback& operator=(const FakeAudioOutputCallback&) = delete; - - bool error() const { return error_; } - int num_callbacks() const { return num_callbacks_; } - int num_rendered_audio_frames() const { return num_rendered_audio_frames_; } - - // Waits until OnMoreData() is called on another thread. - void WaitForMoreData() { data_event_.Wait(); } - - int OnMoreData(base::TimeDelta delay, - base::TimeTicks delay_timestamp, - const AudioGlitchInfo& glitch_info, - AudioBus* dest) override { - num_callbacks_++; - num_rendered_audio_frames_ += dest->frames(); - dest->Zero(); - data_event_.Signal(); - return dest->frames(); - } - - void OnError(ErrorType type) override { error_ = true; } - - private: - int num_callbacks_ = 0; - int num_rendered_audio_frames_; - base::WaitableEvent data_event_; - bool error_; -}; - // This audio sink implementation should be used for manual tests only since // the recorded data is stored on a raw binary data file. class WriteToFileAudioSink : public AudioInputStream::AudioInputCallback { @@ -296,7 +249,6 @@ class ScopedAudioInputStream { public: - ScopedAudioInputStream() : stream_(nullptr) {} explicit ScopedAudioInputStream(AudioInputStream* stream) : stream_(stream) {} ScopedAudioInputStream(const ScopedAudioInputStream&) = delete; @@ -328,41 +280,6 @@ raw_ptr stream_; }; -class ScopedAudioOutputStream { - public: - ScopedAudioOutputStream() : stream_(nullptr) {} - explicit ScopedAudioOutputStream(AudioOutputStream* stream) - : stream_(stream) {} - - ScopedAudioOutputStream(const ScopedAudioOutputStream&) = delete; - ScopedAudioOutputStream& operator=(const ScopedAudioOutputStream&) = delete; - - ~ScopedAudioOutputStream() { - if (stream_) { - stream_->Close(); - } - } - - void Close() { - if (stream_) { - stream_->Close(); - } - stream_ = nullptr; - } - - AudioOutputStream* operator->() { return stream_; } - - AudioOutputStream* get() const { return stream_; } - - void Reset(AudioOutputStream* new_stream) { - Close(); - stream_ = new_stream; - } - - private: - raw_ptr stream_; -}; - class WinAudioInputTest : public ::testing::Test { public: WinAudioInputTest() { @@ -721,81 +638,31 @@ } } -class WinAudioInputLoopbackTest : public WinAudioInputTest { - public: - WinAudioInputLoopbackTest() : device_info_accessor_(audio_manager_.get()) { - // Defer stream creation and parameter fetching to SetUp. - } - - void SetUp() override { - // Abort early if requirements are mot met. - bool prerequisites_met = device_info_accessor_.HasAudioOutputDevices() && - CoreAudioUtil::IsSupported(); - if (!prerequisites_met) { - GTEST_SKIP() << "Missing audio output devices or CoreAudio support"; - } - - CreateParameters(); - CreateStreams(); - } - - void CreateParameters() { - params_ = device_info_accessor_.GetInputStreamParameters( - AudioDeviceDescription::kLoopbackInputDeviceId); - output_params_ = - device_info_accessor_.GetOutputStreamParameters(std::string()); - } - - void CreateStreams() { - stream_.Reset(audio_manager_->MakeAudioInputStream( - params_, AudioDeviceDescription::kLoopbackInputDeviceId, - base::BindRepeating(&LogCallbackDummy))); - output_stream_.Reset(audio_manager_->MakeAudioOutputStream( - output_params_, std::string(), base::BindRepeating(&LogCallbackDummy))); - - ASSERT_THAT(stream_.get(), NotNull()); - ASSERT_THAT(stream_->Open(), Eq(AudioInputStream::OpenOutcome::kSuccess)); - ASSERT_THAT(output_stream_.get(), NotNull()); - ASSERT_TRUE(output_stream_->Open()); - } - - protected: - AudioDeviceInfoAccessorForTests device_info_accessor_; - AudioParameters params_; - AudioParameters output_params_; - ScopedAudioInputStream stream_; - ScopedAudioOutputStream output_stream_; -}; +// Test that we can capture a stream in loopback. +TEST_F(WinAudioInputTest, WASAPIAudioInputStreamLoopback) { + AudioDeviceInfoAccessorForTests device_info_accessor(audio_manager_.get()); + ABORT_AUDIO_TEST_IF_NOT(device_info_accessor.HasAudioOutputDevices() && + CoreAudioUtil::IsSupported()); + AudioParameters params = device_info_accessor.GetInputStreamParameters( + AudioDeviceDescription::kLoopbackInputDeviceId); + EXPECT_EQ(params.effects(), AudioParameters::NO_EFFECTS); -TEST_F(WinAudioInputLoopbackTest, ValidateMatchingInputOutputParameters) { - // Input parameters should be the same as default output parameters in - // loopback capturing mode. - ASSERT_THAT(params_.sample_rate(), Eq(output_params_.sample_rate())); - ASSERT_THAT(params_.channel_layout(), Eq(output_params_.channel_layout())); -} - -TEST_F(WinAudioInputLoopbackTest, - LoopbackEventsWhenDefaultOutputDeviceIsRenderingAudio) { - // Start a silent output stream and ensure that rendering starts. - FakeAudioOutputCallback source; - output_stream_->Start(&source); - output_stream_->SetVolume(0.0); - source.WaitForMoreData(); - - EXPECT_EQ(source.num_callbacks(), 1); - EXPECT_GT(source.num_rendered_audio_frames(), 0); - EXPECT_FALSE(source.error()); + AudioParameters output_params = + device_info_accessor.GetOutputStreamParameters(std::string()); + EXPECT_EQ(params.sample_rate(), output_params.sample_rate()); + EXPECT_EQ(params.channel_layout(), output_params.channel_layout()); - // Start the loopback stream and verify that loopback events are now fired - // since the default audio output device plays out audio. + ScopedAudioInputStream stream(audio_manager_->MakeAudioInputStream( + params, AudioDeviceDescription::kLoopbackInputDeviceId, + base::BindRepeating(&LogCallbackDummy))); + EXPECT_EQ(stream->Open(), AudioInputStream::OpenOutcome::kSuccess); FakeAudioInputCallback sink; - stream_->Start(&sink); + stream->Start(&sink); ASSERT_FALSE(sink.error()); + sink.WaitForData(); - sink.WaitForData(); - stream_.Close(); + stream.Close(); - EXPECT_EQ(sink.num_callbacks(), 2); EXPECT_GT(sink.num_received_audio_frames(), 0); EXPECT_FALSE(sink.error()); } diff -Nru chromium-137.0.7151.68/net/http/transport_security_state_static.pins chromium-137.0.7151.119/net/http/transport_security_state_static.pins --- chromium-137.0.7151.68/net/http/transport_security_state_static.pins 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/net/http/transport_security_state_static.pins 2025-06-16 21:26:50.000000000 +0000 @@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2025-05-30 12:58 UTC +# Last updated: 2025-06-15 13:01 UTC PinsListTimestamp -1748609888 +1749992496 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= diff -Nru chromium-137.0.7151.68/net/http/transport_security_state_static_pins.json chromium-137.0.7151.119/net/http/transport_security_state_static_pins.json --- chromium-137.0.7151.68/net/http/transport_security_state_static_pins.json 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/net/http/transport_security_state_static_pins.json 2025-06-16 21:26:50.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: 2025-05-30 12:58 UTC +// Last updated: 2025-06-15 13:01 UTC // { "pinsets": [ diff -Nru chromium-137.0.7151.68/remoting/resources/remoting_strings_de.xtb chromium-137.0.7151.119/remoting/resources/remoting_strings_de.xtb --- chromium-137.0.7151.68/remoting/resources/remoting_strings_de.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/remoting/resources/remoting_strings_de.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -129,7 +129,7 @@ Hilfs-App für das Öffnen einer URL mit dem -Client Tastatur ein-/ausblenden Verbindungen zum Remote-Computer sind vorübergehend blockiert, da jemand versucht hat, eine Verbindung mit einer ungültigen PIN herzustellen. Bitte versuche es später noch einmal. -Ok +OK Möchtest du die Remote-Verbindung zu wirklich deaktivieren? Wenn du die Verbindung später erneut aktivieren möchtest, musst du dies von dem betreffenden Computer aus tun. Nicht erkannter Hostfehler: Remote-Unterstützung diff -Nru chromium-137.0.7151.68/third_party/blink/common/mediastream/media_stream_request.cc chromium-137.0.7151.119/third_party/blink/common/mediastream/media_stream_request.cc --- chromium-137.0.7151.68/third_party/blink/common/mediastream/media_stream_request.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/common/mediastream/media_stream_request.cc 2025-06-16 21:26:50.000000000 +0000 @@ -13,12 +13,14 @@ namespace blink { namespace { -// TODO(crbug.com/410466097): Remove this kill switch once it's been confirmed -// that there are no issues with classifying DISPLAY_AUDIO_CAPTURE as a desktop -// capture type. +// TODO(crbug.com/410466097): Disable the kill switch and remove it once +// restrictOwnAudio has been launched. See +// https://www.w3.org/TR/screen-capture/#dfn-restrictownaudio. +// Note: The implementation of this kill switch is inverted, meaning that the +// kill switch is active when the feature is enabled. BASE_FEATURE(kDisplayAudioCaptureKillSwitch, "DisplayAudioCaptureKillSwitch", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); } // namespace bool IsAudioInputMediaType(mojom::MediaStreamType type) { diff -Nru chromium-137.0.7151.68/third_party/blink/public/strings/translations/blink_strings_ca.xtb chromium-137.0.7151.119/third_party/blink/public/strings/translations/blink_strings_ca.xtb --- chromium-137.0.7151.68/third_party/blink/public/strings/translations/blink_strings_ca.xtb 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/public/strings/translations/blink_strings_ca.xtb 2025-06-16 21:26:50.000000000 +0000 @@ -8,7 +8,7 @@ El valor ha de ser . Normal Aquest mes -Trieu els fitxers +Tria els fitxers Introduïu una adreça electrònica. Altres... dd diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.cc chromium-137.0.7151.119/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.cc --- chromium-137.0.7151.68/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.cc 2025-06-16 21:26:50.000000000 +0000 @@ -63,6 +63,52 @@ PseudoElement::Trace(v); } +void ScrollButtonPseudoElement::HandleButtonActivation() { + Element& scrolling_element = UltimateOriginatingElement(); + LayoutBox* scroller = scrolling_element.GetLayoutBox(); + PaintLayerScrollableArea* scrollable_area = + scroller->IsDocumentElement() ? scroller->GetFrameView()->LayoutViewport() + : scroller->GetScrollableArea(); + CHECK(scrollable_area); + + LogicalToPhysical mapping( + scrolling_element.GetComputedStyle()->GetWritingDirection(), + GetPseudoId() == kPseudoIdScrollButtonInlineStart, + GetPseudoId() == kPseudoIdScrollButtonInlineEnd, + GetPseudoId() == kPseudoIdScrollButtonBlockStart, + GetPseudoId() == kPseudoIdScrollButtonBlockEnd); + gfx::Vector2dF displacement; + if (mapping.Top()) { + displacement.set_y(-scrollable_area->ScrollStep( + ui::ScrollGranularity::kScrollByPage, kVerticalScrollbar)); + } else if (mapping.Bottom()) { + displacement.set_y(scrollable_area->ScrollStep( + ui::ScrollGranularity::kScrollByPage, kVerticalScrollbar)); + } else if (mapping.Left()) { + displacement.set_x(-scrollable_area->ScrollStep( + ui::ScrollGranularity::kScrollByPage, kHorizontalScrollbar)); + } else if (mapping.Right()) { + displacement.set_x(scrollable_area->ScrollStep( + ui::ScrollGranularity::kScrollByPage, kHorizontalScrollbar)); + } + if (!displacement.IsZero()) { + gfx::PointF current_position = scrollable_area->ScrollPosition(); + std::unique_ptr strategy = + cc::SnapSelectionStrategy::CreateForEndAndDirection( + current_position, displacement, + RuntimeEnabledFeatures::FractionalScrollOffsetsEnabled()); + gfx::PointF new_position = + scrollable_area->GetSnapPositionAndSetTarget(*strategy).value_or( + current_position + displacement); + scrollable_area->ScrollToAbsolutePosition( + new_position, mojom::blink::ScrollBehavior::kAuto); + } + GetDocument().SetFocusedElement(this, + FocusParams(SelectionBehaviorOnFocus::kNone, + mojom::blink::FocusType::kNone, + /*capabilities=*/nullptr)); +} + void ScrollButtonPseudoElement::DefaultEventHandler(Event& event) { bool is_click = event.IsMouseEvent() && event.type() == event_type_names::kClick; @@ -71,59 +117,10 @@ bool is_enter_or_space = is_key_down && (To(event).keyCode() == VKEY_RETURN || To(event).keyCode() == VKEY_SPACE); - - Element& scrolling_element = UltimateOriginatingElement(); - auto* scroller = DynamicTo(scrolling_element.GetLayoutObject()); - - bool is_originating_element_scroller = - scroller && - (scroller->IsScrollContainer() || scroller->IsDocumentElement()); - bool should_intercept = is_originating_element_scroller && - event.target() == this && - (is_click || is_enter_or_space); + bool should_intercept = + event.target() == this && (is_click || is_enter_or_space); if (should_intercept) { - PaintLayerScrollableArea* scrollable_area = - scroller->IsDocumentElement() - ? scroller->GetFrameView()->LayoutViewport() - : scroller->GetScrollableArea(); - CHECK(scrollable_area); - - LogicalToPhysical mapping( - scrolling_element.GetComputedStyle()->GetWritingDirection(), - GetPseudoId() == kPseudoIdScrollButtonInlineStart, - GetPseudoId() == kPseudoIdScrollButtonInlineEnd, - GetPseudoId() == kPseudoIdScrollButtonBlockStart, - GetPseudoId() == kPseudoIdScrollButtonBlockEnd); - gfx::Vector2dF displacement; - if (mapping.Top()) { - displacement.set_y(-scrollable_area->ScrollStep( - ui::ScrollGranularity::kScrollByPage, kVerticalScrollbar)); - } else if (mapping.Bottom()) { - displacement.set_y(scrollable_area->ScrollStep( - ui::ScrollGranularity::kScrollByPage, kVerticalScrollbar)); - } else if (mapping.Left()) { - displacement.set_x(-scrollable_area->ScrollStep( - ui::ScrollGranularity::kScrollByPage, kHorizontalScrollbar)); - } else if (mapping.Right()) { - displacement.set_x(scrollable_area->ScrollStep( - ui::ScrollGranularity::kScrollByPage, kHorizontalScrollbar)); - } - if (!displacement.IsZero()) { - gfx::PointF current_position = scrollable_area->ScrollPosition(); - std::unique_ptr strategy = - cc::SnapSelectionStrategy::CreateForEndAndDirection( - current_position, displacement, - RuntimeEnabledFeatures::FractionalScrollOffsetsEnabled()); - gfx::PointF new_position = - scrollable_area->GetSnapPositionAndSetTarget(*strategy).value_or( - current_position + displacement); - scrollable_area->ScrollToAbsolutePosition( - new_position, mojom::blink::ScrollBehavior::kAuto); - } - GetDocument().SetFocusedElement(this, - FocusParams(SelectionBehaviorOnFocus::kNone, - mojom::blink::FocusType::kNone, - /*capabilities=*/nullptr)); + HandleButtonActivation(); event.SetDefaultHandled(); } PseudoElement::DefaultEventHandler(event); diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.h chromium-137.0.7151.119/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.h --- chromium-137.0.7151.68/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.h 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/core/dom/scroll_button_pseudo_element.h 2025-06-16 21:26:50.000000000 +0000 @@ -35,6 +35,8 @@ private: bool UpdateSnapshotInternal(); + void HandleButtonActivation(); + bool enabled_ = true; }; diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/core/view_transition/view_transition.cc chromium-137.0.7151.119/third_party/blink/renderer/core/view_transition/view_transition.cc --- chromium-137.0.7151.68/third_party/blink/renderer/core/view_transition/view_transition.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/core/view_transition/view_transition.cc 2025-06-16 21:26:50.000000000 +0000 @@ -598,6 +598,13 @@ break; } + if (RuntimeEnabledFeatures:: + ViewTransitionUpdateLifecycleBeforeReadyEnabled()) { + document_->View()->UpdateAllLifecyclePhasesExceptPaint( + DocumentUpdateReason::kViewTransition); + style_tracker_->RunPostPrePaintSteps(); + } + delegate_->AddPendingRequest( ViewTransitionRequest::CreateAnimateRenderer( transition_token_, MaybeCrossFrameSink())); diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/platform/media/web_audio_source_provider_impl.cc chromium-137.0.7151.119/third_party/blink/renderer/platform/media/web_audio_source_provider_impl.cc --- chromium-137.0.7151.68/third_party/blink/renderer/platform/media/web_audio_source_provider_impl.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/platform/media/web_audio_source_provider_impl.cc 2025-06-16 21:26:50.000000000 +0000 @@ -24,9 +24,10 @@ namespace blink { +// TODO(crbug.com/420150619): Re-enable this feature. BASE_FEATURE(kDelayStopForMediaElementSourceNode, "DelayStopForMediaElementSourceNode", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); // TeeFilter is a RenderCallback implementation that allows for a client to get // a copy of the data being rendered by the |renderer_| on Render(). This class diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/platform/media/web_audio_source_provider_impl_test.cc chromium-137.0.7151.119/third_party/blink/renderer/platform/media/web_audio_source_provider_impl_test.cc --- chromium-137.0.7151.68/third_party/blink/renderer/platform/media/web_audio_source_provider_impl_test.cc 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/platform/media/web_audio_source_provider_impl_test.cc 2025-06-16 21:26:50.000000000 +0000 @@ -13,6 +13,7 @@ #include "base/memory/scoped_refptr.h" #include "base/run_loop.h" +#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "media/base/audio_glitch_info.h" #include "media/base/audio_parameters.h" @@ -36,6 +37,10 @@ const float kTestVolume = 0.25; const int kTestSampleRate = 48000; + +// TODO(crbug.com/420150619): Re-enable this and make it a global feature. +constexpr bool kDelayStopForMediaElementSourceNode = false; + } // namespace class WebAudioSourceProviderImplTest : public testing::Test, @@ -79,12 +84,17 @@ testing::Mock::VerifyAndClear(mock_sink_.get()); } - void SetClient(WebAudioSourceProviderClient* client) { + void SetClient(WebAudioSourceProviderClient* client, + bool expect_format = true) { testing::InSequence s; if (client) { - EXPECT_CALL(*mock_sink_, Stop()).Times(0); - EXPECT_CALL(*this, SetFormat(params_.channels(), params_.sample_rate())); + EXPECT_CALL(*mock_sink_, Stop()) + .Times(kDelayStopForMediaElementSourceNode ? 0 : 1); + if (expect_format) { + EXPECT_CALL(*this, + SetFormat(params_.channels(), params_.sample_rate())); + } } wasp_impl_->SetClient(client); base::RunLoop().RunUntilIdle(); @@ -134,12 +144,7 @@ // setClient() with a nullptr client should do nothing if no client is set. wasp_impl_->SetClient(nullptr); - // `mock_sink_` should not be stopped during setClient(this). - if (mock_sink_) - EXPECT_CALL(*mock_sink_.get(), Stop()).Times(0); - - wasp_impl_->SetClient(this); - base::RunLoop().RunUntilIdle(); + SetClient(this, /*expect_format=*/false); wasp_impl_->SetClient(nullptr); base::RunLoop().RunUntilIdle(); @@ -172,7 +177,7 @@ // Removing the client should cause WASP to revert to the underlying sink. SetClient(nullptr); - CallAllSinkMethodsAndVerify(true); + CallAllSinkMethodsAndVerify(kDelayStopForMediaElementSourceNode); } // Test tainting effects on Render(). @@ -365,9 +370,7 @@ wasp_impl_->Initialize(params_, &fake_callback_); base::RunLoop().RunUntilIdle(); - // `mock_sink_` should not be stopped during setClient(this). - if (mock_sink_) - EXPECT_CALL(*mock_sink_.get(), Stop()).Times(0); + SetClient(this, /*expect_format=*/false); // setClient() with the same client should do nothing. wasp_impl_->SetClient(this); @@ -458,10 +461,7 @@ // SetClient when called with a valid client should trigger the callback once. EXPECT_CALL(*this, OnClientSet()).Times(1); - EXPECT_CALL(*mock_sink_, Stop()).Times(0); - wasp_impl_->SetClient(this); - base::RunLoop().RunUntilIdle(); - ::testing::Mock::VerifyAndClearExpectations(this); + SetClient(this, /*expect_format=*/false); // Future calls to set client should not trigger the callback. EXPECT_CALL(*this, OnClientSet()).Times(0); @@ -485,13 +485,11 @@ wasp_impl_->ConnectToDestinationReady(); EXPECT_CALL(*this, OnClientSet()).Times(1); - EXPECT_CALL(*mock_sink_, Stop()).Times(0); - wasp_impl_->SetClient(this); - base::RunLoop().RunUntilIdle(); - ::testing::Mock::VerifyAndClearExpectations(this); + SetClient(this, /*expect_format=*/false); // ConnectToDestinationReady after client calls sink stop() - EXPECT_CALL(*mock_sink_, Stop()).Times(1); + EXPECT_CALL(*mock_sink_, Stop()) + .Times(kDelayStopForMediaElementSourceNode ? 1 : 0); wasp_impl_->ConnectToDestinationReady(); base::RunLoop().RunUntilIdle(); diff -Nru chromium-137.0.7151.68/third_party/blink/renderer/platform/runtime_enabled_features.json5 chromium-137.0.7151.119/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- chromium-137.0.7151.68/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/blink/renderer/platform/runtime_enabled_features.json5 2025-06-16 21:26:50.000000000 +0000 @@ -4960,6 +4960,10 @@ status: "stable", }, { + name: "ViewTransitionUpdateLifecycleBeforeReady", + status: "stable", + }, + { name: "VisibilityCollapseColumn", }, { diff -Nru chromium-137.0.7151.68/third_party/devtools-frontend/src/front_end/core/common/Settings.ts chromium-137.0.7151.119/third_party/devtools-frontend/src/front_end/core/common/Settings.ts --- chromium-137.0.7151.68/third_party/devtools-frontend/src/front_end/core/common/Settings.ts 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/devtools-frontend/src/front_end/core/common/Settings.ts 2025-06-16 21:26:50.000000000 +0000 @@ -441,11 +441,14 @@ } #maybeLogAccess(value: V): void { - const valueToLog = typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' ? - value : - this.#serializer?.stringify(value); - if (valueToLog !== undefined && this.#logSettingAccess) { - void this.#logSettingAccess(this.name, valueToLog); + try { + const valueToLog = typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' ? + value : + this.#serializer?.stringify(value); + if (valueToLog !== undefined && this.#logSettingAccess) { + void this.#logSettingAccess(this.name, valueToLog); + } + } catch { } } diff -Nru chromium-137.0.7151.68/third_party/devtools-frontend/src/front_end/panels/network/RequestHTMLView.ts chromium-137.0.7151.119/third_party/devtools-frontend/src/front_end/panels/network/RequestHTMLView.ts --- chromium-137.0.7151.68/third_party/devtools-frontend/src/front_end/panels/network/RequestHTMLView.ts 2025-05-30 19:50:32.000000000 +0000 +++ chromium-137.0.7151.119/third_party/devtools-frontend/src/front_end/panels/network/RequestHTMLView.ts 2025-06-16 21:26:50.000000000 +0000 @@ -45,7 +45,7 @@ // clang-format off render(html` -
+
${input.dataURL ? html`